From 8393d4b915e655de8697950cbd7fcc57b8c2d868 Mon Sep 17 00:00:00 2001 From: Markus Humm Date: Fri, 23 Dec 2022 09:58:29 +0100 Subject: [PATCH] First work on fixing issue #46 about BPKDF2 Started to implement regression test. Removed compatibility with compiler versions < 28.0 (XE7) --- Demos/Cipher_Console/Cipher_Console.dproj | 781 +- .../Cipher_Console_KDF.dproj | 405 +- .../Cipher_Console_KDF/Cipher_Console_KDF.res | Bin 96 -> 96 bytes Demos/Cipher_FMX/Cipher_FMX.dproj | 1579 +- Demos/Format_Console/Format_Console.dproj | 660 +- Demos/HashBenchmark_FMX/HashBenchmark.dproj | 595 +- Demos/Hash_Console/Hash_Console.dproj | 660 +- Demos/Hash_FMX/Hash_FMX.dproj | 1706 +- Demos/Password_Console/Password_Console.dproj | 404 +- Demos/Password_Console/Password_Console.res | Bin 96 -> 96 bytes Demos/Progress_VCL/ProgressDemoVCL.dproj | 419 +- Demos/Random_Console/Random_Console.dproj | 420 +- .../Random_Console/Random_Console.identcache | Bin 925 -> 925 bytes .../RandomComparison_VCL.dproj | 404 +- Install/SetIDEPaths.dproj | 414 +- Source/DEC60.dproj | 680 +- Source/DEC60.todo | 2 +- Source/DEC60Complete.groupproj | 408 +- Source/DECCipherModesGCM.pas | 2 - Source/DECHashAuthentication.pas | 10 +- Unit Tests/CodeCoverage/DECCodeCoverage.dccp | 59 + .../DECCodeCoverage_dcov_execute.bat | 1 + .../DECCodeCoverage_dcov_paths.lst | 0 .../DECCodeCoverage_dcov_units.lst | 23 + .../Output/CodeCoverage_summary.html | 80 + .../DECBaseClass(DECBaseClass.pas).html | 490 + .../Output/DECCRC(DECCRC.pas).html | 1011 + .../DECCipherBase(DECCipherBase.pas).html | 1326 + ...ECCipherFormats(DECCipherFormats.pas).html | 1265 + .../DECCipherModes(DECCipherModes.pas).html | 1382 + ...CipherModesGCM(DECCipherModesGCM.pas).html | 833 + .../Output/DECCiphers(DECCiphers.pas).html | 6946 ++ ...ECCodeCoverage_DelphiCodeCoverageDebug.log | 76161 ++++++++++++++++ .../Output/DECFormat(DECFormat.pas).html | 2229 + .../DECFormatBase(DECFormatBase.pas).html | 760 + .../Output/DECHash(DECHash.pas).html | 5804 ++ ...entication(DECHashAuthentication.pas).html | 1756 + .../Output/DECHashBase(DECHashBase.pas).html | 898 + .../DECHashBitBase(DECHashBitBase.pas).html | 203 + .../Output/DECRandom(DECRandom.pas).html | 561 + .../Output/DECTypes(DECTypes.pas).html | 301 + .../Output/DECUtil(DECUtil.pas).html | 736 + ...elper(DECUtilRawByteStringHelper.pas).html | 240 + .../{ => U}/CodeCoverage_Summary.xml | 8676 +- .../{ => U}/CodeCoverage_summary.html | 118 +- .../DECBaseClass(DECBaseClass.pas).html | 836 +- .../CodeCoverage/{ => U}/DECBaseClass.html | 88 +- .../{ => U}/DECCRC(DECCRC.pas).html | 1900 +- .../DECCipherBase(DECCipherBase.pas).html | 2478 +- ...ECCipherFormats(DECCipherFormats.pas).html | 2182 +- .../DECCipherModes(DECCipherModes.pas).html | 2544 +- ...CipherModesGCM(DECCipherModesGCM.pas).html | 1496 +- .../{ => U}/DECCiphers(DECCiphers.pas).html | 13406 +-- .../{ => U}/DECFormat(DECFormat.pas).html | 3864 +- .../DECFormatBase(DECFormatBase.pas).html | 1374 +- .../{ => U}/DECHash(DECHash.asm86.inc).html | 59142 ++++++------ .../{ => U}/DECHash(DECHash.pas).html | 9734 +- .../DECHash(DECHash.sha3_mmx.inc).html | 838 +- Unit Tests/CodeCoverage/{ => U}/DECHash.html | 90 +- ...entication(DECHashAuthentication.pas).html | 1846 +- .../{ => U}/DECHashBase(DECHashBase.pas).html | 1974 +- .../DECHashBitBase(DECHashBitBase.pas).html | 268 +- .../{ => U}/DECRandom(DECRandom.pas).html | 1000 +- .../{ => U}/DECTypes(DECTypes.pas).html | 466 +- .../{ => U}/DECUtil(DECUtil.pas).html | 1360 +- ...elper(DECUtilRawByteStringHelper.pas).html | 358 +- Unit Tests/DECDUnitTestSuite.dproj | 649 +- Unit Tests/DECDUnitXTestSuite.dproj | 532 +- Unit Tests/DECDUnitXTestSuite.dproj.local | 33 + .../HashTestDataGenerator/GenerateData.dproj | 404 +- Unit Tests/Tests/TestDECHashMAC.pas | 21 + 71 files changed, 164877 insertions(+), 65414 deletions(-) create mode 100644 Unit Tests/CodeCoverage/DECCodeCoverage.dccp create mode 100644 Unit Tests/CodeCoverage/DECCodeCoverage_dcov_execute.bat create mode 100644 Unit Tests/CodeCoverage/DECCodeCoverage_dcov_paths.lst create mode 100644 Unit Tests/CodeCoverage/DECCodeCoverage_dcov_units.lst create mode 100644 Unit Tests/CodeCoverage/Output/CodeCoverage_summary.html create mode 100644 Unit Tests/CodeCoverage/Output/DECBaseClass(DECBaseClass.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCRC(DECCRC.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCipherBase(DECCipherBase.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCipherFormats(DECCipherFormats.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCipherModes(DECCipherModes.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCipherModesGCM(DECCipherModesGCM.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCiphers(DECCiphers.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECCodeCoverage_DelphiCodeCoverageDebug.log create mode 100644 Unit Tests/CodeCoverage/Output/DECFormat(DECFormat.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECFormatBase(DECFormatBase.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECHash(DECHash.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECHashAuthentication(DECHashAuthentication.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECHashBase(DECHashBase.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECHashBitBase(DECHashBitBase.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECRandom(DECRandom.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECTypes(DECTypes.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECUtil(DECUtil.pas).html create mode 100644 Unit Tests/CodeCoverage/Output/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html rename Unit Tests/CodeCoverage/{ => U}/CodeCoverage_Summary.xml (98%) rename Unit Tests/CodeCoverage/{ => U}/CodeCoverage_summary.html (98%) rename Unit Tests/CodeCoverage/{ => U}/DECBaseClass(DECBaseClass.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECBaseClass.html (97%) rename Unit Tests/CodeCoverage/{ => U}/DECCRC(DECCRC.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECCipherBase(DECCipherBase.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECCipherFormats(DECCipherFormats.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECCipherModes(DECCipherModes.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECCipherModesGCM(DECCipherModesGCM.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECCiphers(DECCiphers.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECFormat(DECFormat.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECFormatBase(DECFormatBase.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHash(DECHash.asm86.inc).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHash(DECHash.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHash(DECHash.sha3_mmx.inc).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHash.html (98%) rename Unit Tests/CodeCoverage/{ => U}/DECHashAuthentication(DECHashAuthentication.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHashBase(DECHashBase.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECHashBitBase(DECHashBitBase.pas).html (98%) rename Unit Tests/CodeCoverage/{ => U}/DECRandom(DECRandom.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECTypes(DECTypes.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECUtil(DECUtil.pas).html (99%) rename Unit Tests/CodeCoverage/{ => U}/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html (99%) diff --git a/Demos/Cipher_Console/Cipher_Console.dproj b/Demos/Cipher_Console/Cipher_Console.dproj index f464fcef..8fce60a4 100644 --- a/Demos/Cipher_Console/Cipher_Console.dproj +++ b/Demos/Cipher_Console/Cipher_Console.dproj @@ -1,7 +1,7 @@  {BC13B21E-5E59-450C-A11D-EA58C8E05628} - 19.4 + 19.5 None Cipher_Console.dpr True @@ -114,109 +114,8 @@ Cipher_Console.dpr - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - libCipher_Console.so - true - - - - - libCipher_Console.so - true - - + + true @@ -227,80 +126,39 @@ true - - - true - - - - - true - - + true - - - true - - - - - true - - - - - true - - - - - classes.dex - true - - - - - true - - - - - libCipher_Console.so - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - true - - - - - Cipher_Console.exe - true - - + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 @@ -323,16 +181,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -642,7 +490,7 @@ 1 .dylib - + 1 .dylib @@ -675,7 +523,7 @@ 1 .dylib - + 1 .dylib @@ -712,7 +560,7 @@ 0 - + 0 @@ -731,352 +579,294 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - - - 1 - - + + + library\lib\armeabi-v7a 1 - + + library\lib\arm64-v8a 1 - - 1 1 - + 1 - - - + 1 - + + Contents\MacOS 1 - + + Contents\MacOS + 1 + + + Contents\MacOS 1 + + 0 + - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - - - 1 - + - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + 1 1 - + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1085,82 +875,27 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -1170,7 +905,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -1180,7 +915,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1190,7 +925,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1200,7 +935,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1210,7 +945,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1220,7 +955,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1230,206 +965,16 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - ..\ - 1 - - - - - Contents - 1 - - - Contents - 1 - - - Contents - 1 - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - - + diff --git a/Demos/Cipher_Console_KDF/Cipher_Console_KDF.dproj b/Demos/Cipher_Console_KDF/Cipher_Console_KDF.dproj index ccdc2414..6383b2be 100644 --- a/Demos/Cipher_Console_KDF/Cipher_Console_KDF.dproj +++ b/Demos/Cipher_Console_KDF/Cipher_Console_KDF.dproj @@ -1,7 +1,7 @@  {EB1F3FC9-ED7C-4B29-9D7E-E9A3F356371B} - 19.4 + 19.5 None True Debug @@ -162,7 +162,6 @@ false - .\..\..\Compiled\DCU_IDE$(ProductVersion)_$(Platform)_$(Config);$(DCC_UnitSearchPath) .\..\..\Compiled\BIN_IDExx.x_$(Platform)__Demos .\..\..\Compiled\DCP_IDE$(ProductVersion)_$(Platform)_$(Config) .\..\..\Compiled\DCU_IDE$(ProductVersion)_$(Platform)__Demos @@ -213,7 +212,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - + true @@ -229,12 +228,7 @@ true - - - Cipher_Console_KDF.exe - true - - + 1 @@ -566,7 +560,7 @@ 1 .dylib - + 1 .dylib @@ -599,7 +593,7 @@ 1 .dylib - + 1 .dylib @@ -636,7 +630,7 @@ 0 - + 0 @@ -655,382 +649,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1038,6 +1044,7 @@ + diff --git a/Demos/Cipher_Console_KDF/Cipher_Console_KDF.res b/Demos/Cipher_Console_KDF/Cipher_Console_KDF.res index 743599575b02e97248bade49ed2e3eabafe25a0a..93e7e944f20ed0f0e50532c1b7ef56bb8d255d33 100644 GIT binary patch delta 9 QcmYdDm=MFl%)r0^01Tl4v;Y7A delta 9 QcmYdDm=MFl$iTn=01TM{vH$=8 diff --git a/Demos/Cipher_FMX/Cipher_FMX.dproj b/Demos/Cipher_FMX/Cipher_FMX.dproj index 884c8c65..bb41aba9 100644 --- a/Demos/Cipher_FMX/Cipher_FMX.dproj +++ b/Demos/Cipher_FMX/Cipher_FMX.dproj @@ -1,7 +1,7 @@  {F90DC8C6-DC04-46FE-8D5C-2260589FBEF1} - 19.4 + 19.5 FMX Cipher_FMX.dpr True @@ -217,6 +217,8 @@ Debug 4 true + 1 + CompanyName=Team DEC;FileDescription=$(MSBuildProjectName);FileVersion=1.4.0.1;InternalName=;LegalCopyright=© 2018-2021 Team DEC;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.4.0.0;Comments=Delphi Encryption Compendium demo application true @@ -258,7 +260,7 @@ MainSource - +
FormMain
fmx
@@ -287,713 +289,77 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - libCipher_FMX.so - true - - - - - libCipher_FMX.so - true - - + + true - - - true - - true - - - true - - + true - - - - true - - - - - true - - - - - true - - - - - 64 - true - - - - - classes.dex - true - - - - - true - - - - - true - - - - - libCipher_FMX.so - true - - - - - libCipher_FMX.so - true - - - - - true - - - - - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - styles.xml - true - - - - - true - - - - - true - - - - - true - - - - - 64 - true - - - - - classes.dex - true - - - - - true - - - - - libCipher_FMX.so - true - - - - - libCipher_FMX.so - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - true - - - - - Cipher_FMX.exe - true - - - - - classes.dex - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - classes - 64 - - - classes - 64 - - - - - classes - 1 - - - classes - 1 - - - - - res\xml - 1 - - - res\xml - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - library\lib\armeabi - 1 - - - library\lib\armeabi - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - library\lib\mips - 1 - - - library\lib\mips - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - res\drawable - 1 - - - res\drawable - 1 - - - - - res\values - 1 - - - res\values - 1 - - - - - res\values-v21 - 1 - - - res\values-v21 - 1 - - - - - res\values - 1 - - - res\values - 1 - - - - - res\drawable - 1 - - - res\drawable - 1 - - - - - res\drawable-xxhdpi - 1 - - - res\drawable-xxhdpi - 1 - - - - - res\drawable-xxxhdpi - 1 - - - res\drawable-xxxhdpi - 1 - - - - - res\drawable-ldpi - 1 - - - res\drawable-ldpi - 1 - - - - - res\drawable-mdpi - 1 - - - res\drawable-mdpi - 1 - - - - - res\drawable-hdpi - 1 - - - res\drawable-hdpi - 1 - - - - - res\drawable-xhdpi - 1 - - - res\drawable-xhdpi - 1 - - - - - res\drawable-mdpi - 1 - - - res\drawable-mdpi - 1 - - - - - res\drawable-hdpi - 1 - - - res\drawable-hdpi - 1 - - - - - res\drawable-xhdpi - 1 - - - res\drawable-xhdpi - 1 - - - - - res\drawable-xxhdpi - 1 - - - res\drawable-xxhdpi - 1 - - - - - res\drawable-xxxhdpi - 1 - - - res\drawable-xxxhdpi - 1 - - - - - res\drawable-small - 1 - - - res\drawable-small - 1 - - - - - res\drawable-normal - 1 - - - res\drawable-normal - 1 - - - - - res\drawable-large - 1 - - - res\drawable-large - 1 - - - - - res\drawable-xlarge - 1 - - - res\drawable-xlarge - 1 - - - - - res\values - 1 - - - res\values - 1 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 @@ -1005,816 +371,802 @@ 0
- - - Contents\MacOS - 1 - .framework - - - Contents\MacOS - 1 - .framework - - - Contents\MacOS - 1 - .framework + + + classes + 64 - - 0 + + classes + 64 - - + + + res\xml 1 - .dylib - + + res\xml 1 - .dylib - + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi 1 - .dylib - - Contents\MacOS + + library\lib\armeabi 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi-v7a 1 - .dylib - - - 0 - .dll;.bpl - - + + + library\lib\mips 1 - .dylib - + + library\lib\mips 1 - .dylib - + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + library\lib\arm64-v8a 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + + + res\drawable 1 - .dylib - - 0 - .bpl + + res\drawable + 1 - + - 0 + res\values + 1 - 0 - - - 0 - - - 0 - - - 0 - - - Contents\Resources\StartUp\ - 0 - - - Contents\Resources\StartUp\ - 0 - - - Contents\Resources\StartUp\ - 0 - - - 0 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + res\values 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + res\values-v21 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + res\values-v21 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + res\values 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + res\values 1 - - + + + res\drawable 1 - + + res\drawable 1 - + + + + res\drawable-xxhdpi 1 - - - + + res\drawable-xxhdpi 1 - + + + + res\drawable-xxxhdpi 1 - + + res\drawable-xxxhdpi 1 - - + + + res\drawable-ldpi 1 - + + res\drawable-ldpi 1 - + + + + res\drawable-mdpi 1 - - - + + res\drawable-mdpi 1 - + + + + res\drawable-hdpi 1 - + + res\drawable-hdpi 1 - - + + + res\drawable-xhdpi 1 - + + res\drawable-xhdpi 1 - + + + + res\drawable-mdpi 1 - - - + + res\drawable-mdpi 1 - + + + + res\drawable-hdpi 1 - + + res\drawable-hdpi 1 - - + + + res\drawable-xhdpi 1 - + + res\drawable-xhdpi 1 - + + + + res\drawable-xxhdpi 1 - - - + + res\drawable-xxhdpi 1 - + + + + res\drawable-xxxhdpi 1 - + + res\drawable-xxxhdpi 1 - - - 1 - - + + + res\drawable-small 1 - + + res\drawable-small 1 - - + + + res\drawable-normal 1 - + + res\drawable-normal 1 - + + + + res\drawable-large 1 - - - + + res\drawable-large 1 - + + + + res\drawable-xlarge 1 - + + res\drawable-xlarge 1 - - + + + res\values 1 - + + res\values 1 + + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + 0 - - + + + Contents\MacOS 1 + .framework - + + Contents\MacOS 1 + .framework - + + Contents\MacOS 1 + .framework + + + 0 - + 1 + .dylib 1 + .dylib - + 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 + + 0 + .dll;.bpl - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 + .dylib - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 + + 0 + .bpl - + + + 0 + + + 0 + - 1 + 0 - 1 + 0 - - 1 + + 0 - - - - 1 + + Contents\Resources\StartUp\ + 0 - - 1 + + Contents\Resources\StartUp\ + 0 - - 1 + + Contents\Resources\StartUp\ + 0 - - - - 1 + + 0 - + + + 1 - + 1 - - - 1 - - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - - - 1 - - + + + library\lib\armeabi-v7a 1 - + + library\lib\arm64-v8a 1 - - 1 1 - + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 - - - + + Contents\MacOS + 1 + + + Contents\MacOS 1 - - 1 + + 0 - + + + + library\lib\armeabi-v7a 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1822,6 +1174,7 @@ + diff --git a/Demos/Format_Console/Format_Console.dproj b/Demos/Format_Console/Format_Console.dproj index 46bde663..f6b5e466 100644 --- a/Demos/Format_Console/Format_Console.dproj +++ b/Demos/Format_Console/Format_Console.dproj @@ -1,7 +1,7 @@  {A36C5DFF-C1BF-493E-93AC-4D6170321A4C} - 19.4 + 19.5 None Format_Console.dpr True @@ -162,43 +162,26 @@ Format_Console.dpr - + + true - - - true - - true - - - true - - + true - - - true - - - - - Format_Console.exe - true - - + + 1 @@ -221,16 +204,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -540,7 +513,7 @@ 1 .dylib - + 1 .dylib @@ -573,7 +546,7 @@ 1 .dylib - + 1 .dylib @@ -610,7 +583,7 @@ 0 - + 0 @@ -629,193 +602,234 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + 1 1 - + 1 - - - + 1 - + + Contents\MacOS 1 - + + Contents\MacOS + 1 + + + Contents\MacOS 1 + + 0 + - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - + + + Assets 1 - + + Assets 1 - + + + + Assets 1 - - - + + Assets 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -824,7 +838,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -834,7 +848,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -844,7 +858,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -854,7 +868,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -864,7 +878,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -874,460 +888,116 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - ..\ - 1 - - - - - Contents - 1 - - - Contents - 1 - - - Contents - 1 - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - + diff --git a/Demos/HashBenchmark_FMX/HashBenchmark.dproj b/Demos/HashBenchmark_FMX/HashBenchmark.dproj index 3646373e..15fb5352 100644 --- a/Demos/HashBenchmark_FMX/HashBenchmark.dproj +++ b/Demos/HashBenchmark_FMX/HashBenchmark.dproj @@ -1,7 +1,7 @@  {B265A13B-3BB8-4D4C-A953-4D5FB8ACB4D6} - 19.4 + 19.5 FMX True Debug @@ -198,6 +198,8 @@ 1033 Hash.ico true + 1 + CompanyName=Team DEC;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.1;InternalName=Hash benchmark;LegalCopyright=© 2021 Team DEC;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=Delphi Encryption Compendium demo true @@ -224,9 +226,8 @@ MainSource - +
FormMain
- fmx
Base @@ -253,55 +254,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - libHashBenchmark.so - true - - - - - libHashBenchmark.so - true - - - - - libHashBenchmark.so - true - - + true @@ -317,115 +270,32 @@ true - - - true - - - - - classes.dex - true - - - - - true - - - - - libHashBenchmark.so - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - HashBenchmark.exe - true - - + + + + + + + + + + + + + + + + + + + + + + + + + + 1 @@ -448,16 +318,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -767,7 +627,7 @@ 1 .dylib - + 1 .dylib @@ -800,7 +660,7 @@ 1 .dylib - + 1 .dylib @@ -837,7 +697,7 @@ 0 - + 0 @@ -856,382 +716,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1239,6 +1111,7 @@ + diff --git a/Demos/Hash_Console/Hash_Console.dproj b/Demos/Hash_Console/Hash_Console.dproj index 49f1cce0..c2ab1e62 100644 --- a/Demos/Hash_Console/Hash_Console.dproj +++ b/Demos/Hash_Console/Hash_Console.dproj @@ -1,7 +1,7 @@  {3617401D-D6AC-4F43-9D1D-B217C40C973D} - 19.4 + 19.5 None Hash_Console.dpr True @@ -162,43 +162,26 @@ Hash_Console.dpr - + + true - - - true - - true - - - true - - + true - - - true - - - - - Hash_Console.exe - true - - + + 1 @@ -221,16 +204,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -540,7 +513,7 @@ 1 .dylib - + 1 .dylib @@ -573,7 +546,7 @@ 1 .dylib - + 1 .dylib @@ -610,7 +583,7 @@ 0 - + 0 @@ -629,193 +602,234 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + 1 1 - + 1 - - - + 1 - + + Contents\MacOS 1 - + + Contents\MacOS + 1 + + + Contents\MacOS 1 + + 0 + - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - + + + Assets 1 - + + Assets 1 - + + + + Assets 1 - - - + + Assets 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -824,7 +838,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -834,7 +848,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -844,7 +858,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -854,7 +868,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -864,7 +878,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -874,460 +888,116 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - ..\ - 1 - - - - - Contents - 1 - - - Contents - 1 - - - Contents - 1 - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - + diff --git a/Demos/Hash_FMX/Hash_FMX.dproj b/Demos/Hash_FMX/Hash_FMX.dproj index 5b561bd9..e78462e9 100644 --- a/Demos/Hash_FMX/Hash_FMX.dproj +++ b/Demos/Hash_FMX/Hash_FMX.dproj @@ -1,7 +1,7 @@  {E6A23F63-4CF8-4715-BB2C-BFCA7EFA2431} - 19.4 + 19.5 FMX Hash_FMX.dpr True @@ -231,6 +231,8 @@ 4 PerMonitor true + 1 + CompanyName=Team DEC;FileDescription=$(MSBuildProjectName);FileVersion=1.4.0.1;InternalName=DEC hash demo;LegalCopyright=© 2018-2021 Team DEC;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.4.0.0;Comments=Delphi Encryption Compendium Demo true @@ -299,7 +301,7 @@ MainSource - +
FormMain
fmx
@@ -328,833 +330,84 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - ic_notification.png - true - - - - - false - libHash_FMX.so - true - - - - - libHash_FMX.so - true - - - - - false - libHash_FMX.so - true - - - - - libHash_FMX.so - true - - - - - false - libHash_FMX.so - true - - + + true - - - true - - true - - - true - - + true - - - - true - - - - - true - - - - - true - - - - - classes.dex - true - - - - - classes.dex - true - - - - - true - - - - - true - - - - - 64 - true - - - - - libHash_FMX.so - true - - - - - libHash_FMX.so - true - - - - - true - - - - - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - styles.xml - true - - - - - true - - - - - true - - - - - true - - - - - classes.dex - true - - - - - true - - - - - 64 - true - - - - - libHash_FMX.so - true - - - - - true - - - - - true - - - - - styles.xml - true - - - - - true - - - - - Hash_FMX.exe - true - - - - - classes.dex - true - - - - - classes.dex - true - - - - - true - - - - - classes.dex - true - - - - - libHash_FMX.so - true - - - - - true - - - - - styles.xml - true - - - - - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - splash_image.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - ic_launcher.png - true - - - - - Hash_FMX.exe - true - - - - - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - classes - 64 - - - classes - 64 - - - - - classes - 1 - - - classes - 1 - - - - - res\xml - 1 - - - res\xml - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - library\lib\armeabi - 1 - - - library\lib\armeabi - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - library\lib\mips - 1 - - - library\lib\mips - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - - - library\lib\armeabi-v7a - 1 - - - - - res\drawable - 1 - - - res\drawable - 1 - - - - - res\values - 1 - - - res\values - 1 - - - - - res\values-v21 - 1 - - - res\values-v21 - 1 - - - - - res\values - 1 - - - res\values - 1 - - - - - res\drawable - 1 - - - res\drawable - 1 - - - - - res\drawable-xxhdpi - 1 - - - res\drawable-xxhdpi - 1 - - - - - res\drawable-xxxhdpi - 1 - - - res\drawable-xxxhdpi - 1 - - - - - res\drawable-ldpi - 1 - - - res\drawable-ldpi - 1 - - - - - res\drawable-mdpi - 1 - - - res\drawable-mdpi - 1 - - - - - res\drawable-hdpi - 1 - - - res\drawable-hdpi - 1 - - - - - res\drawable-xhdpi - 1 - - - res\drawable-xhdpi - 1 - - - - - res\drawable-mdpi - 1 - - - res\drawable-mdpi - 1 - - - - - res\drawable-hdpi - 1 - - - res\drawable-hdpi - 1 - - - - - res\drawable-xhdpi - 1 - - - res\drawable-xhdpi - 1 - - - - - res\drawable-xxhdpi - 1 - - - res\drawable-xxhdpi - 1 - - - - - res\drawable-xxxhdpi - 1 - - - res\drawable-xxxhdpi - 1 - - - - - res\drawable-small - 1 - - - res\drawable-small - 1 - - - - - res\drawable-normal - 1 - - - res\drawable-normal - 1 - - - - - res\drawable-large - 1 - - - res\drawable-large - 1 - - - - - res\drawable-xlarge - 1 - - - res\drawable-xlarge - 1 - - - - - res\values - 1 - - - res\values - 1 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 @@ -1166,816 +419,802 @@ 0
- - - Contents\MacOS - 1 - .framework - - - Contents\MacOS - 1 - .framework - - - Contents\MacOS - 1 - .framework + + + classes + 64 - - 0 + + classes + 64 - - + + + res\xml 1 - .dylib - + + res\xml 1 - .dylib - + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi 1 - .dylib - - Contents\MacOS + + library\lib\armeabi 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi-v7a 1 - .dylib - - - 0 - .dll;.bpl - - + + + library\lib\mips 1 - .dylib - + + library\lib\mips 1 - .dylib - + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + library\lib\arm64-v8a 1 - .dylib - - Contents\MacOS + + + + library\lib\armeabi-v7a 1 - .dylib - - Contents\MacOS + + + + res\drawable 1 - .dylib - - 0 - .bpl + + res\drawable + 1 - + - 0 + res\values + 1 - 0 - - - 0 - - - 0 - - - 0 - - - Contents\Resources\StartUp\ - 0 - - - Contents\Resources\StartUp\ - 0 - - - Contents\Resources\StartUp\ - 0 - - - 0 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + res\values 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + res\values-v21 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + res\values-v21 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + res\values 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + res\values 1 - - + + + res\drawable 1 - + + res\drawable 1 - + + + + res\drawable-xxhdpi 1 - - - + + res\drawable-xxhdpi 1 - + + + + res\drawable-xxxhdpi 1 - + + res\drawable-xxxhdpi 1 - - + + + res\drawable-ldpi 1 - + + res\drawable-ldpi 1 - + + + + res\drawable-mdpi 1 - - - + + res\drawable-mdpi 1 - + + + + res\drawable-hdpi 1 - + + res\drawable-hdpi 1 - - + + + res\drawable-xhdpi 1 - + + res\drawable-xhdpi 1 - + + + + res\drawable-mdpi 1 - - - + + res\drawable-mdpi 1 - + + + + res\drawable-hdpi 1 - + + res\drawable-hdpi 1 - - + + + res\drawable-xhdpi 1 - + + res\drawable-xhdpi 1 - + + + + res\drawable-xxhdpi 1 - - - + + res\drawable-xxhdpi 1 - + + + + res\drawable-xxxhdpi 1 - + + res\drawable-xxxhdpi 1 - - - 1 - - + + + res\drawable-small 1 - + + res\drawable-small 1 - - + + + res\drawable-normal 1 - + + res\drawable-normal 1 - + + + + res\drawable-large 1 - - - + + res\drawable-large 1 - + + + + res\drawable-xlarge 1 - + + res\drawable-xlarge 1 - - + + + res\values 1 - + + res\values 1 + + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + 0 - - + + + Contents\MacOS 1 + .framework - + + Contents\MacOS 1 + .framework - + + Contents\MacOS 1 + .framework + + + 0 - + 1 + .dylib 1 + .dylib - + 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 + + 0 + .dll;.bpl - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 + .dylib - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + .dylib - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 + + 0 + .bpl - + + + 0 + + + 0 + - 1 + 0 - 1 + 0 - - 1 + + 0 - - - - 1 + + Contents\Resources\StartUp\ + 0 - - 1 + + Contents\Resources\StartUp\ + 0 - - 1 + + Contents\Resources\StartUp\ + 0 - - - - 1 + + 0 - + + + 1 - + 1 - - - 1 - - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - - - 1 - - + + + library\lib\armeabi-v7a 1 - + + library\lib\arm64-v8a 1 - - 1 1 - + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\MacOS 1 - - - + + Contents\MacOS + 1 + + + Contents\MacOS 1 - - 1 + + 0 - + + + + library\lib\armeabi-v7a 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1983,6 +1222,7 @@ + diff --git a/Demos/Password_Console/Password_Console.dproj b/Demos/Password_Console/Password_Console.dproj index 1b94af6e..164bf97f 100644 --- a/Demos/Password_Console/Password_Console.dproj +++ b/Demos/Password_Console/Password_Console.dproj @@ -1,7 +1,7 @@  {FA85DBBE-C5D8-4512-B57E-8AE2CB5D842B} - 19.4 + 19.5 None True Debug @@ -192,7 +192,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - + true @@ -208,12 +208,7 @@ true - - - Password_Console.exe - true - - + 1 @@ -545,7 +540,7 @@ 1 .dylib - + 1 .dylib @@ -578,7 +573,7 @@ 1 .dylib - + 1 .dylib @@ -615,7 +610,7 @@ 0 - + 0 @@ -634,382 +629,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1017,6 +1024,7 @@ + diff --git a/Demos/Password_Console/Password_Console.res b/Demos/Password_Console/Password_Console.res index 743599575b02e97248bade49ed2e3eabafe25a0a..93e7e944f20ed0f0e50532c1b7ef56bb8d255d33 100644 GIT binary patch delta 9 QcmYdDm=MFl%)r0^01Tl4v;Y7A delta 9 QcmYdDm=MFl$iTn=01TM{vH$=8 diff --git a/Demos/Progress_VCL/ProgressDemoVCL.dproj b/Demos/Progress_VCL/ProgressDemoVCL.dproj index 72c00c76..103dba2e 100644 --- a/Demos/Progress_VCL/ProgressDemoVCL.dproj +++ b/Demos/Progress_VCL/ProgressDemoVCL.dproj @@ -1,7 +1,7 @@  {B6DE5711-AD3F-44B0-8206-FB26B8B82A31} - 19.4 + 19.5 VCL True Debug @@ -111,6 +111,8 @@ true 1033 true + 1 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= true @@ -139,9 +141,8 @@ MainSource - +
FormMain
- dfm
@@ -181,13 +182,8 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - ProgressDemoVCL.exe - true - - + + 1 @@ -210,16 +206,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -529,7 +515,7 @@ 1 .dylib - + 1 .dylib @@ -562,7 +548,7 @@ 1 .dylib - + 1 .dylib @@ -599,7 +585,7 @@ 0 - + 0 @@ -618,382 +604,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1001,6 +999,7 @@ + diff --git a/Demos/Random_Console/Random_Console.dproj b/Demos/Random_Console/Random_Console.dproj index 3dbac205..4a32e88e 100644 --- a/Demos/Random_Console/Random_Console.dproj +++ b/Demos/Random_Console/Random_Console.dproj @@ -1,7 +1,7 @@  {D55FA1A8-C7CC-4C2B-B516-EA90F34161BB} - 19.4 + 19.5 None True Debug @@ -167,7 +167,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - + true @@ -183,12 +183,7 @@ true - - - Random_Console.exe - true - - + 1 @@ -211,16 +206,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -530,7 +515,7 @@ 1 .dylib - + 1 .dylib @@ -563,7 +548,7 @@ 1 .dylib - + 1 .dylib @@ -600,7 +585,7 @@ 0 - + 0 @@ -619,390 +604,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\ - 1 - + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1010,6 +999,7 @@ + diff --git a/Demos/Random_Console/Random_Console.identcache b/Demos/Random_Console/Random_Console.identcache index 2d3ef80159f24d6495af85e3bac1a2c47c6c8d64..68e634decd72f1f047de30ade2770b603049b8fb 100644 GIT binary patch delta 265 zcmXYqK}&={7=~GARC2o)u@O<1t_9I0Xf~FT%0RcGy^YSN4(N=GpOpV1nWfwQwQl{7 zj5@#1`#c+e1~FGc*Y{c#!`r?~foJ8gzVoyKg73rke23o3qWs4a z0O37_3eQgM)nqT&64F41+VplcS)bFqtE%lk{j&v delta 289 zcmXYsK}y6h7=>w*wqx}IiW^}zqPWnF2nwwZTGR^dsOTPdO3oPg* z10CiM^Xzhll!WLBwBbs+Lx2Aus0IrrOgchah@X?9Nb-3$D}yvCvvTWCnf7%J+7140 zyur8zYLy<`r=LU-|Gft8%io*+@4Hj7K}r4+lWs(mR08n5G8W(Prgc+v9$*+{4$$cj DVq;(x diff --git a/Demos/Random_VCL_Comparison/RandomComparison_VCL.dproj b/Demos/Random_VCL_Comparison/RandomComparison_VCL.dproj index 48b1877e..4170a585 100644 --- a/Demos/Random_VCL_Comparison/RandomComparison_VCL.dproj +++ b/Demos/Random_VCL_Comparison/RandomComparison_VCL.dproj @@ -1,7 +1,7 @@  {EC36B2CD-4E75-49AF-9798-206F8C5BCDA0} - 19.4 + 19.5 VCL True Debug @@ -171,13 +171,8 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - RandomComparison_VCL.exe - true - - + + 1 @@ -509,7 +504,7 @@ 1 .dylib - + 1 .dylib @@ -542,7 +537,7 @@ 1 .dylib - + 1 .dylib @@ -579,7 +574,7 @@ 0 - + 0 @@ -598,382 +593,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -981,6 +988,7 @@ + diff --git a/Install/SetIDEPaths.dproj b/Install/SetIDEPaths.dproj index 6530d839..062033f4 100644 --- a/Install/SetIDEPaths.dproj +++ b/Install/SetIDEPaths.dproj @@ -1,7 +1,7 @@  {6AF2AA8F-E3B9-4962-BDC6-DABD87885D4A} - 19.4 + 19.5 None True Debug @@ -164,7 +164,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - + true @@ -180,12 +180,7 @@ true - - - SetIDEPaths.exe - true - - + 1 @@ -208,16 +203,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -527,7 +512,7 @@ 1 .dylib - + 1 .dylib @@ -560,7 +545,7 @@ 1 .dylib - + 1 .dylib @@ -597,7 +582,7 @@ 0 - + 0 @@ -616,382 +601,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -999,6 +996,7 @@ + diff --git a/Source/DEC60.dproj b/Source/DEC60.dproj index ba4e3668..e0a2077e 100644 --- a/Source/DEC60.dproj +++ b/Source/DEC60.dproj @@ -1,7 +1,7 @@  {34FB3EC0-D6C0-4F92-9FEE-3E0E87C91FC4} - 19.4 + 19.5 None DEC60.dpr True @@ -211,79 +211,32 @@ FastReport VCL Tee Components - + + true - - - true - - true - - - true - - + true - - - true - - - - - DEC60.exe - true - - - - - .\ - true - - - - - .\ - true - - - - - .\ - true - - - - - .\ - true - - - - - .\ - true - - - - - .\ - true - - + + + + + + + + 1 @@ -306,16 +259,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -625,7 +568,7 @@ 1 .dylib - + 1 .dylib @@ -658,7 +601,7 @@ 1 .dylib - + 1 .dylib @@ -695,7 +638,7 @@ 0 - + 0 @@ -714,193 +657,234 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + 1 1 - + 1 - - - + 1 - + + Contents\MacOS 1 - + + Contents\MacOS + 1 + + + Contents\MacOS 1 + + 0 + - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - + + + Assets 1 - + + Assets 1 - + + + + Assets 1 - - - + + Assets 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -909,7 +893,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -919,7 +903,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -929,7 +913,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -939,7 +923,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -949,7 +933,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -959,222 +943,68 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1183,7 +1013,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1193,7 +1023,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1203,7 +1033,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1213,206 +1043,16 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - ..\ - 1 - - - - - Contents - 1 - - - Contents - 1 - - - Contents - 1 - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - - + diff --git a/Source/DEC60.todo b/Source/DEC60.todo index 8b137891..d3f5a12f 100644 --- a/Source/DEC60.todo +++ b/Source/DEC60.todo @@ -1 +1 @@ - + diff --git a/Source/DEC60Complete.groupproj b/Source/DEC60Complete.groupproj index 7c759614..808c1494 100644 --- a/Source/DEC60Complete.groupproj +++ b/Source/DEC60Complete.groupproj @@ -1,204 +1,204 @@ - - - {46A7B5B1-D413-4DB1-A118-2403457B463A} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default.Personality.12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + {46A7B5B1-D413-4DB1-A118-2403457B463A} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/DECCipherModesGCM.pas b/Source/DECCipherModesGCM.pas index 6785ab82..1e0396b8 100644 --- a/Source/DECCipherModesGCM.pas +++ b/Source/DECCipherModesGCM.pas @@ -654,8 +654,6 @@ function TGCM.GetAuthenticationTagBitLength: UInt32; end; function TGCM.GetStandardAuthenticationTagBitLengths: TStandardBitLengths; -var - i : integer; begin SetLength(Result, 5); Result := [96, 104, 112, 120, 128]; diff --git a/Source/DECHashAuthentication.pas b/Source/DECHashAuthentication.pas index fb03e9ce..d9a0b02e 100644 --- a/Source/DECHashAuthentication.pas +++ b/Source/DECHashAuthentication.pas @@ -457,6 +457,9 @@ TDECHashAuthentication = class(TDECHash) /// /// Length of the resulting key in byte /// + /// + /// The calculated PBKDF2 value + /// class function PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes; overload; @@ -480,6 +483,9 @@ TDECHashAuthentication = class(TDECHash) /// /// Length of the resulting key in byte /// + /// + /// The calculated PBKDF2 value + /// class function PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes; overload; @@ -1307,11 +1313,7 @@ class function TDECHashAuthentication.PBKDF2(const Password, Salt: TBytes; Itera end; end; - {$IF CompilerVersion >= 28.0} Result := Result + T; // DK += F , DK = DK || Ti - {$ELSE} - TArrHelper.AppendArrays(Result, T); - {$IFEND} end; finally Hash.Free; diff --git a/Unit Tests/CodeCoverage/DECCodeCoverage.dccp b/Unit Tests/CodeCoverage/DECCodeCoverage.dccp new file mode 100644 index 00000000..0476452f --- /dev/null +++ b/Unit Tests/CodeCoverage/DECCodeCoverage.dccp @@ -0,0 +1,59 @@ + + + V2.0.0 build 4 + 1 + + + D:\Projekte\DECGitMaster\Source\ + DEC60Lazarus.pas + DECBaseClass.pas + DECCipherBase.pas + DECCipherFormats.pas + DECCipherInterface.pas + DECCipherModes.pas + DECCipherModesGCM.pas + DECCiphers.pas + DECCRC.pas + DECData.pas + DECDataCipher.pas + DECDataHash.pas + DECFormat.pas + DECFormatBase.pas + DECHash.pas + DECHashAuthentication.pas + DECHashBase.pas + DECHashBitBase.pas + DECHashInterface.pas + DECRandom.pas + DECTypes.pas + DECUtil.pas + DECUtilRawByteStringHelper.pas + 0 + + + ofHTML + D:\Projekte\DECGitMaster\Unit Tests\CodeCoverage + D:\Projekte\DECGitMaster\Unit Tests\CodeCoverage\Output + False + False + False + False + False + False + + + D:\Projekte\DECGitMaster\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe + + False + D:\Projekte\DECGitMaster\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.map + D:\Projekte\DelphiCodeCoverageWizardNew\Binaries\CodeCoverage.exe + + + True + + 0 + True + False + False + + diff --git a/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_execute.bat b/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_execute.bat new file mode 100644 index 00000000..c7834f33 --- /dev/null +++ b/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_execute.bat @@ -0,0 +1 @@ + "..\..\..\DelphiCodeCoverageWizardNew\Binaries\CodeCoverage.exe" -e "..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe" -m "..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.map" -sd "..\..\Source\" -ife -uf "DECCodeCoverage_dcov_units.lst" -spf "DECCodeCoverage_dcov_paths.lst" -od "Output" -v -lt "Output\DECCodeCoverage_DelphiCodeCoverageDebug.log" -html \ No newline at end of file diff --git a/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_paths.lst b/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_paths.lst new file mode 100644 index 00000000..e69de29b diff --git a/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_units.lst b/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_units.lst new file mode 100644 index 00000000..674a8973 --- /dev/null +++ b/Unit Tests/CodeCoverage/DECCodeCoverage_dcov_units.lst @@ -0,0 +1,23 @@ +DEC60Lazarus +DECBaseClass +DECCipherBase +DECCipherFormats +DECCipherInterface +DECCipherModes +DECCipherModesGCM +DECCiphers +DECCRC +DECData +DECDataCipher +DECDataHash +DECFormat +DECFormatBase +DECHash +DECHashAuthentication +DECHashBase +DECHashBitBase +DECHashInterface +DECRandom +DECTypes +DECUtil +DECUtilRawByteStringHelper diff --git a/Unit Tests/CodeCoverage/Output/CodeCoverage_summary.html b/Unit Tests/CodeCoverage/Output/CodeCoverage_summary.html new file mode 100644 index 00000000..2a6b8150 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/CodeCoverage_summary.html @@ -0,0 +1,80 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Summary Coverage Report

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Aggregate statistics for all modules

+
Unit NameNumber of linesPercent(s) covered
CoveredNot CoveredWhich generated code +
DECBaseClass62062100.0 % +
DECCipherBase1334417775.1 % +
DECCipherFormats1512017188.3 % +
DECCipherModes3827545783.6 % +
DECCipherModesGCM123312697.6 % +
DECCiphers3147110325796.6 % +
DECCRC150515596.8 % +
DECFormat7271374098.2 % +
DECFormatBase971711485.1 % +
DECHash261920263999.2 % +
DECHashAuthentication3042933391.3 % +
DECHashBase1521917188.9 % +
DECHashBitBase808100.0 % +
DECRandom9139496.8 % +
DECTypes303100.0 % +
DECUtil1160116100.0 % +
DECUtilRawByteStringHelper3443889.5 % +
Aggregated for all units8299362866195.8 % +
+ + + diff --git a/Unit Tests/CodeCoverage/Output/DECBaseClass(DECBaseClass.pas).html b/Unit Tests/CodeCoverage/Output/DECBaseClass(DECBaseClass.pas).html new file mode 100644 index 00000000..ccbb8c28 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECBaseClass(DECBaseClass.pas).html @@ -0,0 +1,490 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECBaseClass (..\..\Source\DECBaseClass.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECBaseClass.pas

+
Number of lines covered62
Number of lines with code gen62
Line coverage100.0 %
+

+ + +
1{***************************************************************************** +
2The DEC team (see file NOTICE.txt) licenses this file +
3to you under the Apache License, Version 2.0 (the +
4"License"); you may not use this file except in compliance +
5with the License. A copy of this licence is found in the root directory +
6of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10Unless required by applicable law or agreed to in writing, +
11software distributed under the License is distributed on an +
12"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13KIND, either express or implied. See the License for the +
14specific language governing permissions and limitations +
15under the License. +
16*****************************************************************************} +
17 +
18unit DECBaseClass; +
19 +
20interface +
21 +
22{$INCLUDE DECOptions.inc} +
23 +
24uses +
25 {$IFDEF FPC} +
26 SysUtils, Classes, +
27 {$ELSE} +
28 System.SysUtils, System.Classes, +
29 {$ENDIF} +
30 Generics.Collections; +
31 +
32type +
33 /// <summary> +
34 /// Class type for the base class from which all other DEC classes inherit +
35 /// in order to be able to create lists of classes, pick an entry of such a +
36 /// list and construct an object out of it +
37 /// </summary> +
38 TDECClass = class of TDECObject; +
39 +
40 /// <summary> +
41 /// Type of a single entry in the class list. +
42 /// </summary> +
43 TClassListEntry = TPair<Int64, TDECClass>; +
44 +
45 /// <summary> +
46 /// Generic list of DEC classes with the identity as key +
47 /// </summary> +
48 TDECClassList = class(TDictionary<Int64, TDECClass>) +
49 strict private +
50 /// <summary> +
51 /// Checks if a given class type has the same short class name as given +
52 /// </summary> +
53 /// <param name="Name"> +
54 /// Short class name, e.g. HEXL +
55 /// </param> +
56 /// <param name="ClassType"> +
57 /// Class reference to check against +
58 /// </param> +
59 /// <returns> +
60 /// true if the class reference is for the given short name +
61 /// </returns> +
62 function DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean; +
63 /// <summary> +
64 /// Checks if a given class type has the same long class name as given +
65 /// </summary> +
66 /// <param name="Name"> +
67 /// Long class name, e.g. TFormat_HEXL +
68 /// </param> +
69 /// <param name="ClassType"> +
70 /// Class reference to check against +
71 /// </param> +
72 /// <returns> +
73 /// true if the class reference is for the given long name +
74 /// </returns> +
75 function DoFindNameLong(const Name: string; const ClassType: TClass): Boolean; +
76 public +
77 /// <summary> +
78 /// Tries to find a class type by its name +
79 /// </summary> +
80 /// <param name="Name"> +
81 /// Name to look for in the list +
82 /// </param> +
83 /// <returns> +
84 /// Returns the class type if found. if it could not be found a +
85 /// EDECClassNotRegisteredException will be thrown +
86 /// </returns> +
87 /// <exception cref="EDECClassNotRegisteredException"> +
88 /// Exception raised if the class specified by <c>Name</c> is not found +
89 /// </exception> +
90 function ClassByName(const Name: string): TDECClass; +
91 +
92 /// <summary> +
93 /// Tries to find a class type by its numeric identity DEC assigned to it. +
94 /// Useful for file headers, so they can easily encode numerically which +
95 /// cipher class was being used. +
96 /// </summary> +
97 /// <param name="Identity"> +
98 /// Identity to look for +
99 /// </param> +
100 /// <returns> +
101 /// Returns the class type of the class with the specified identity value +
102 /// or throws an EDECClassNotRegisteredException exception if no class +
103 /// with the given identity has been found +
104 /// </returns> +
105 /// <exception cref="EDECClassNotRegisteredException"> +
106 /// Exception raised if the class specified by <c>Identity</c> is not found +
107 /// </exception> +
108 function ClassByIdentity(Identity: Int64): TDECClass; +
109 /// <summary> +
110 /// Returns a list of all classes registered in this list +
111 /// </summary> +
112 /// <param name="List"> +
113 /// List where the registered classes shall be added to. The string is the +
114 /// long class name, the object the class reference. The list is being +
115 /// cleared first and when an uncreated list is given nothing is being done +
116 /// </param> +
117 procedure GetClassList(List: TStrings); +
118 end; +
119 +
120 /// <summary> +
121 /// Parent class of all cryptography and hash implementations +
122 /// </summary> +
123 TDECObject = class(TInterfacedObject) +
124 public +
125 /// <summary> +
126 /// Overrideable but otherwise empty constructor (calls his parent +
127 /// constructor or course) +
128 /// </summary> +
129 constructor Create; virtual; +
130 /// <summary> +
131 /// This function creates a unique Signature for each class using the +
132 /// following naming scheme: +
133 /// +
134 /// 'Z' repeated n times (to fill space of 256 chars) + DEC ClassName +
135 /// +
136 /// The CRC32 of the generated Signature is used as our unique Identity +
137 /// +
138 /// Important Note: +
139 /// DEC 5.2 introduced a bug which breaks backward compatibility with +
140 /// DEC 5.1 by using String instead of AnsiString. This leads to different +
141 /// Identities when using Unicode capable Delphi Versions (Delphi 2009+). +
142 /// +
143 /// To restore the *wrong* behavior of DEC 5.2 enable the DEC52_IDENTITY option +
144 /// in the configuration file DECOptions.inc. +
145 /// +
146 /// With this and all future versions we will keep backward compatibility. +
147 /// </summary> +
148 class function Identity: Int64; +
149 {$IFDEF X86ASM} +
150 /// <summary> +
151 /// Override FreeInstance to fill allocated Object with zeros, that is +
152 /// safer for any access to invalid Pointers of released Objects. +
153 /// </summary> +
154 procedure FreeInstance; override; +
155 {$ENDIF X86ASM} +
156 +
157 /// <summary> +
158 /// Registers this class type in the list of DEC classes (ClassList). +
159 /// Trying to register an already registered class will raise an exception. +
160 /// </summary> +
161 /// <param name="ClassList"> +
162 /// List to which the own class type shall be added. This allows subclasses +
163 /// to have their own lists +
164 /// </param> +
165 class procedure RegisterClass(ClassList : TDECClassList); +
166 /// <summary> +
167 /// Removes tthis class type from the list of registered DEC classes +
168 /// (ClassList). Trying to unregister a non registered class is a do nothing +
169 /// operation. +
170 /// </summary> +
171 /// <param name="ClassList"> +
172 /// List from which the own class type shall be removed. This allows +
173 /// subclasses to have their own lists +
174 /// </param> +
175 class procedure UnregisterClass(ClassList : TDECClassList); +
176 +
177 /// <summary> +
178 /// Returns short Classname of any DEC derrived class. This is the part +
179 /// of the class name after the _ so for THash_RipeMD160 it will be RipeMD160. +
180 /// </summary> +
181 /// <param name="ClassName"> +
182 /// Complete class name +
183 /// </param> +
184 /// <returns> +
185 /// Short class name +
186 /// </returns> +
187 class function GetShortClassNameFromName(const ClassName: string): string; +
188 +
189 /// <summary> +
190 /// Returns short Classname of any DEC derrived class type. This is the part +
191 /// of the class name after the _ so for THash_RipeMD160 it will be RipeMD160. +
192 /// </summary> +
193 /// <returns> +
194 /// Short class name or empty string if ClassType is nil. +
195 /// </returns> +
196 class function GetShortClassName: string; +
197 end; +
198 +
199var +
200 /// <summary> +
201 /// default used for generating class identities +
202 /// </summary> +
203 IdentityBase: Int64 = $25844852; +
204 +
205 /// <summary> +
206 /// Size in bytes used for buffering data read from or written to a stream +
207 /// </summary> +
208 StreamBufferSize: Integer = 8192; +
209 +
210 {$IFDEF NEXTGEN} +
211 EmptyStr: string = ''; +
212 /// <summary> +
213 /// Pointer to an empty string. For non Nextgen platforms declared in SysUtils +
214 /// for backwards compatibility only. Here declared for NextGen only and +
215 /// should get replaced +
216 /// </summary> +
217 NullStr: PString = @EmptyStr; +
218 {$ENDIF} +
219 +
220implementation +
221 +
222uses +
223 DECTypes, DECCRC; +
224 +
225resourcestring +
226 sClassNotRegistered = 'Class %s is not registered'; +
227 sWrongIdentity = 'Another class "%s" with the same identity as "%s" has already been registered'; +
228 +
229constructor TDECObject.Create; +
230begin +
231 inherited Create; +
232end; +
233 +
234class function TDECObject.Identity: Int64; +
235var +
236 Signature: {$IFDEF DEC52_IDENTITY}string{$ELSE !DEC52_IDENTITY}RawByteString{$ENDIF !DEC52_IDENTITY}; +
237begin +
238 {$IFDEF DEC52_IDENTITY} +
239 Signature := StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName); +
240 {$IF CompilerVersion >= 24.0} +
241 Result := CRC32(IdentityBase, Signature[Low(Signature)], +
242 Length(Signature) * SizeOf(Signature[Low(Signature)])); +
243 {$ELSE} +
244 Result := CRC32(IdentityBase, Signature[Low(Signature)], +
245 Length(Signature) * SizeOf(Signature[1])); +
246 {$IFEND} +
247 {$ELSE !DEC52_IDENTITY} +
248 Signature := RawByteString(StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName)); +
249 {$IF CompilerVersion >= 24.0} +
250 Result := CRC32(IdentityBase, Signature[Low(Signature)], +
251 Length(Signature) * SizeOf(Signature[Low(Signature)])); +
252 {$ELSE} +
253 Result := CRC32(IdentityBase, Signature[1], +
254 Length(Signature) * SizeOf(Signature[1])); +
255 {$IFEND} +
256 {$ENDIF !DEC52_IDENTITY} +
257end; +
258 +
259class procedure TDECObject.RegisterClass(ClassList : TDECClassList); +
260begin +
261 ClassList.Add(Identity, self); +
262end; +
263 +
264{$IFDEF X86ASM} +
265procedure TDECObject.FreeInstance; +
266// Override FreeInstance to fill allocated Object with zeros, that is +
267// safer for any access to invalid Pointers of released Objects +
268asm +
269 PUSH EBX +
270 PUSH EDI +
271 MOV EBX,EAX +
272 CALL TObject.CleanupInstance +
273 MOV EAX,[EBX] +
274 CALL TObject.InstanceSize +
275 MOV ECX,EAX +
276 MOV EDI,EBX +
277 XOR EAX,EAX +
278 REP STOSB +
279 MOV EAX,EBX +
280 CALL System.@FreeMem +
281 POP EDI +
282 POP EBX +
283end; +
284{$ENDIF X86ASM} +
285 +
286class procedure TDECObject.UnregisterClass(ClassList : TDECClassList); +
287begin +
288 ClassList.Remove(Identity); +
289end; +
290 +
291class function TDECObject.GetShortClassName: string; +
292begin +
293 Result := GetShortClassNameFromName(self.ClassName); +
294end; +
295 +
296class function TDECObject.GetShortClassNameFromName(const ClassName: string): string; +
297var +
298 i: Integer; +
299begin +
300 Result := ClassName; +
301 i := Pos('_', Result); +
302 if i > 0 then +
303 Delete(Result, 1, i); +
304end; +
305 +
306{ TDECClassList } +
307 +
308function TDECClassList.DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean; +
309begin +
310 Result := CompareText(ClassType.GetShortClassName, Name) = 0; +
311end; +
312 +
313function TDECClassList.DoFindNameLong(const Name: string; const ClassType: TClass): Boolean; +
314var +
315 s: string; +
316begin +
317 s := Name; +
318 Result := CompareText(ClassType.ClassName, Name) = 0; +
319end; +
320 +
321function TDECClassList.ClassByIdentity(Identity: Int64): TDECClass; +
322begin +
323 try +
324 Result := Items[Identity]; +
325 except +
326 On EListError do +
327 raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered, +
328 [IntToHEX(Identity, 8)]); +
329 end; +
330end; +
331 +
332function TDECClassList.ClassByName(const Name: string): TDECClass; +
333var +
334 FindNameShort : Boolean; +
335 Pair : TPair<Int64, TDECCLass>; +
336begin +
337 Result := nil; +
338 +
339 if Length(Name) > 0 then +
340 begin +
341 FindNameShort := TDECClass.GetShortClassNameFromName(Name) = Name; +
342 +
343 for Pair in self do +
344 begin +
345 if FindNameShort then +
346 begin +
347 if DoFindNameShort(Name, Pair.Value) then +
348 begin +
349 result := Pair.Value; +
350 break; +
351 end; +
352 end +
353 else +
354 if DoFindNameLong(Name, Pair.Value) then +
355 begin +
356 result := Pair.Value; +
357 break; +
358 end; +
359 end; +
360 end; +
361 +
362 if Result = nil then +
363 raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered, [Name]); +
364end; +
365 +
366procedure TDECClassList.GetClassList(List: TStrings); +
367var +
368 Pair : TPair<Int64, TDECCLass>; +
369begin +
370 if List <> nil then +
371 try +
372 List.BeginUpdate; +
373 List.Clear; +
374 +
375 for Pair in self do +
376 List.AddObject(Pair.Value.ClassName, TObject(Pair.Value)); +
377 +
378 finally +
379 List.EndUpdate; +
380 end; +
381end; +
382 +
383initialization +
384 +
385finalization +
386 +
387end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCRC(DECCRC.pas).html b/Unit Tests/CodeCoverage/Output/DECCRC(DECCRC.pas).html new file mode 100644 index 00000000..6a3adcfc --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCRC(DECCRC.pas).html @@ -0,0 +1,1011 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCRC (..\..\Source\DECCRC.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCRC.pas

+
Number of lines covered150
Number of lines with code gen155
Line coverage96.8 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18{ +
19 Implementation of threadsafe CRC checksum functions. +
20 +
21 The following standard CRCs are supported: +
22 CRC-8, CRC-10, CRC-12 (Mobil Telephone), +
23 CRC-16, CRC-16-CCITT, CRC-16-ZModem, +
24 CRC-24 (PGP's MIME64 Armor CRC), +
25 CRC-32, CRC-32-CCITT and CRC-32-ZModem. +
26 +
27 How to use: +
28 +
29 var +
30 CRC16: UInt16; +
31 begin +
32 CRC16 := CRCCalc(CRC_16, Data, SizeOf(Data)); // all in one +
33 end; +
34 +
35 or +
36 +
37 var +
38 CRC: TCRCDef; +
39 CRC32: UInt32; +
40 begin +
41 CRCInit(CRC, CRC_32); // setup CRC data structure +
42 CRCCode(CRC, Data, SizeOf(Data)); // calcs CRC for "Data" +
43 CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String +
44 CRC32 := CRCDone(CRC); // returns correct combined CRC for Data and String +
45 // after CRCDone we can start a new calculation +
46 end; +
47} +
48 +
49unit DECCRC; +
50 +
51interface +
52 +
53{$INCLUDE DECOptions.inc} +
54 +
55type +
56 /// <summary> +
57 /// CRC Definition Structure +
58 /// </summary> +
59 PCRCDef = ^TCRCDef; +
60 +
61 /// <summary> +
62 /// Record with meta data about a single CRC algorithm/polynom +
63 /// Do *not* reorder or change this structure +
64 /// <para> +
65 /// SizeOf(TCRCDef) = 1056 = 0420h +
66 /// </para> +
67 /// </summary> +
68 TCRCDef = packed record +
69 /// <summary> +
70 /// Lookup Table, precomputed in CRCSetup +
71 /// </summary> +
72 Table : array[0..255] of UInt32; +
73 /// <summary> +
74 /// Intermediate CRC +
75 /// </summary> +
76 CRC : UInt32; +
77 /// <summary> +
78 /// Is this Polynomial an inverse function? +
79 /// </summary> +
80 Inverse : LongBool; +
81 /// <summary> +
82 /// Shift Value for CRCCode (for more speed) +
83 /// </summary> +
84 Shift : UInt32; +
85 /// <summary> +
86 /// Start Value of CRC cComputation +
87 /// </summary> +
88 InitVector : UInt32; +
89 /// <summary> +
90 /// Final XOR Vector of computed CRC +
91 /// </summary> +
92 FinalVector : UInt32; +
93 /// <summary> +
94 /// Precomputed AND Mask of computed CRC +
95 /// </summary> +
96 Mask : UInt32; +
97 /// <summary> +
98 /// Bitsize of CRC +
99 /// </summary> +
100 Bits : UInt32; +
101 /// <summary> +
102 /// Used Polynomial +
103 /// </summary> +
104 Polynomial : UInt32; +
105 end; +
106 +
107 /// <summary> +
108 /// predefined standard CRC Types +
109 /// </summary> +
110 TCRCType = ( +
111 CRC_8, +
112 CRC_10, +
113 CRC_12, +
114 CRC_16, +
115 CRC_16CCITT, +
116 CRC_16XModem, +
117 CRC_24, +
118 CRC_32, +
119 CRC_32CCITT, +
120 CRC_32ZModem, +
121 CRC_8ATMHEC, +
122 CRC_8SMBus, +
123 CRC_15CAN, +
124 CRC_16ZMODEM +
125 ); +
126 +
127type +
128 /// <summary> +
129 /// Callback method used by some CRC calculation routines to fetch the data +
130 /// to be processed +
131 /// </summary> +
132 /// <param name="Buffer"> +
133 /// Buffer containing the data to be processed +
134 /// </param> +
135 /// <param name="Count"> +
136 /// Number of bytes of the buffer to be processed +
137 /// </param> +
138 /// <returns> +
139 /// +
140 /// </returns> +
141 TReadMethod = function(var Buffer; Count: Int64): Int64 of object; +
142 +
143// initialize CRC Definition with a custom Algorithm +
144 +
145/// <summary> +
146/// Fills the individual fields of a CRC meta data structure +
147/// </summary> +
148/// <param name="CRCDef"> +
149/// Structure whose fields shall be filled +
150/// </param> +
151/// <param name="Polynomial"> +
152/// CRC polynome, defining the algorithm +
153/// </param> +
154/// <param name="Bits"> +
155/// Size of the CRC value to be computed in bits. Needs to be at least 8 +
156/// </param> +
157/// <param name="InitVector"> +
158/// Initial value for the vector going into each calculation cycle +
159/// </param> +
160/// <param name="FinalVector"> +
161/// Final XOR Vector of computed CRC +
162/// </param> +
163/// <param name="Inverse"> +
164/// true if this Polynomial is an inverse function +
165/// </param> +
166/// <returns> +
167/// true on success, false when a number smaller 8 is being passed as Bits parameter +
168/// </returns> +
169function CRCSetup(var CRCDef: TCRCDef; +
170 Polynomial, Bits, InitVector, FinalVector: UInt32; +
171 Inverse: LongBool): Boolean; +
172 +
173/// <summary> +
174/// Retrieves the necessary meta data and precomputed tables for a given CRC +
175/// algorithm. +
176/// </summary> +
177/// <param name="CRCDef"> +
178/// Record in which the to be retrieved meta data will be returned +
179/// </param> +
180/// <param name="CRCType"> +
181/// Specifies the exact CRC type which shall be initialized +
182/// </param> +
183/// <returns> +
184/// true on success +
185/// </returns> +
186function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean; +
187 +
188/// <summary> +
189/// Calculate the CRC of the contents of the passed in buffer. +
190/// </summary> +
191/// <param name="CRCDef"> +
192/// Structure with the necessary metadata for the CRC algorithm to be used. +
193/// CRC processing state is being updated during calculation to enable this +
194/// structure to be fed in another call to CRCCode if a CRC over multiple +
195/// buffers has to be calculated. +
196/// </param> +
197/// <param name="Buffer"> +
198/// Buffer with the data the CRC shall be calculated from +
199/// </param> +
200/// <param name="Size"> +
201/// Number of bytes to calculate the CRC from, starting at the beginning of +
202/// the buffer +
203/// </param> +
204/// <returns> +
205/// Calculated CRC value, including any necessary correction (like CRCDone). +
206/// CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode +
207/// compute the total CRC of split buffers +
208/// </returns> +
209function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32; overload; +
210 +
211/// <summary> +
212/// Calculate the CRC of the contents provided by a given callback +
213/// </summary> +
214/// <param name="CRCDef"> +
215/// Structure with the necessary metadata for the CRC algorithm to be used. +
216/// CRC processing state is being updated during calculation to enable this +
217/// structure to be fed in another call to CRCCode if a CRC over multiple +
218/// buffers has to be calculated. +
219/// </param> +
220/// <param name="ReadMethod"> +
221/// Callback which is being called to get the data the CRC is processed over, +
222/// e.g. TStream.Read +
223/// </param> +
224/// <param name="Size"> +
225/// Number of bytes over which the CRC will be calculated. The callback will +
226/// be called until that number of bytes have been processed. +
227/// </param> +
228/// <returns> +
229/// Calculated CRC value, including any necessary correction (like CRCDone). +
230/// CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode +
231/// compute the total CRC of split buffers +
232/// </returns> +
233function CRCCode(var CRCDef: TCRCDef; +
234 ReadMethod: TReadMethod; +
235 Size: UInt32 = $FFFFFFFF): UInt32; overload; +
236 +
237{ TODO : +
238DUnitTests für die Callback-Methoden Varianten von CRCCode und CRCCalc +
239schreiben } +
240// +
241// CRCInit(CRC, CRC_32); // setup CRC data structure +
242// CRCCode(CRC, Data, SizeOf(Data)); // calcs CRC for "Data" +
243// CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String +
244// CRC32 := CRCDone(CRC); +
245 +
246// returns corrected CRC as definied in CRCDef and resets CRCDef.CRC to InitVector +
247 +
248/// <summary> +
249/// Corrects the CRC via the final vector and resets the internal intermediate +
250/// CRC value to the init vector so the next CRC calculation can start. +
251/// </summary> +
252/// <param name="CRCDef"> +
253/// Structure with the current CRC state +
254/// </param> +
255/// <returns> +
256/// Final CRC value +
257/// </returns> +
258function CRCDone(var CRCDef: TCRCDef): UInt32; +
259 +
260/// <summary> +
261/// Calculates a CRC over some Buffer with Size Bytes length. Processing is +
262/// being done in one single step +
263/// </summary> +
264/// <param name="CRCType"> +
265/// Specifies the CRC algorithm to be used +
266/// </param> +
267/// <param name="Buffer"> +
268/// Buffer with the data to calculate the CRC from +
269/// </param> +
270/// <param name="Size"> +
271/// Number of bytes over which the CRC will be calculated from the beginning +
272/// of the buffer +
273/// </param> +
274function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32; overload; +
275 +
276/// <summary> +
277/// Calculates a CRC. Data is passed via callback, which is called repeatedly +
278/// if necessary +
279/// </summary> +
280/// <param name="CRCType"> +
281/// Specifies the CRC algorithm to be used +
282/// </param> +
283/// <param name="ReadMethod"> +
284/// Callback which is being called to get the data the CRC is processed over +
285/// e.g. TStream.Read +
286/// </param> +
287/// <param name="Size"> +
288/// Number of bytes over which the CRC will be calculated. The callback will +
289/// be called until that number of bytes have been processed. +
290/// </param> +
291/// <returns> +
292/// Calculated CRC value. +
293/// </returns> +
294function CRCCalc(CRCType : TCRCType; +
295 ReadMethod : TReadMethod; +
296 Size : UInt32 = $FFFFFFFF): UInt32; overload; +
297 +
298/// <summary> +
299/// Calculates a CRC according a predefined CRC16-Standard over some Buffer +
300/// with Size Bytes length. Processing is being done in one single step +
301/// </summary> +
302/// <remarks> +
303/// call CRC := CRC16(0, Data, SizeOf(Data)); +
304/// </remarks> +
305/// <param name="CRC"> +
306/// Specifies the CRC algorithm to be used +
307/// </param> +
308/// <param name="Buffer"> +
309/// Buffer with the data to calculate the CRC from +
310/// </param> +
311/// <param name="Size"> +
312/// Number of bytes over which the CRC will be calculated from the beginning +
313/// of the buffer +
314/// </param> +
315/// <returns> +
316/// Calculated CRC16 value +
317/// </returns> +
318function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16; +
319 +
320/// <summary> +
321/// Calculates a CRC according the CRC32-CCITT standard over some Buffer +
322/// with Size Bytes length. Processing is being done in one single step +
323/// </summary> +
324/// <remarks> +
325/// call CRC := CRC32(0, Data, SizeOf(Data)); +
326/// </remarks> +
327/// <param name="CRC"> +
328/// Specifies the CRC algorithm to be used +
329/// </param> +
330/// <param name="Buffer"> +
331/// Buffer with the data to calculate the CRC from +
332/// </param> +
333/// <param name="Size"> +
334/// Number of bytes over which the CRC will be calculated from the beginning +
335/// of the buffer +
336/// </param> +
337/// <returns> +
338/// Calculated CRC32 value +
339/// </returns> +
340function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32; +
341 +
342implementation +
343 +
344{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
345{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF} +
346 +
347type +
348 PCRCTab = ^TCRCTab; +
349 /// <summary> +
350 /// Array type for the meta data definitions of the individual CRC algorithms +
351 /// </summary> +
352 TCRCTab = array[TCRCType] of packed record +
353 Poly, Bits, Init, FInit: UInt32; +
354 Inverse: LongBool; +
355 end; +
356 +
357const +
358 /// <summary> +
359 /// Table containing meta data of various well known CRC algorithms/polynoms +
360 /// </summary> +
361 CRCTab : TCRCTab = ( +
362 (Poly: $000000D1; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_8 GSM/ERR +
363 (Poly: $00000233; Bits: 10; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_10 ATM/OAM Cell +
364 (Poly: $0000080F; Bits: 12; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_12 +
365 (Poly: $00008005; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_16 ARC;IBM;MODBUS RTU +
366 // Init value of 1D0F instead of FFFF because the code doesn't fill with zeros, +
367 // which would otherwise be required for the CCITT variant +
368 (Poly: $00001021; Bits: 16; Init: $00001D0F; FInit: $00000000; Inverse: False), // CRC_16 CCITT ITU +
369 (Poly: $00008408; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_16 XModem +
370 (Poly: $00864CFB; Bits: 24; Init: $00B704CE; FInit: $00000000; Inverse: False), // CRC_24 +
371 (Poly: $9DB11213; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True), // CRC_32 +
372 +
373 (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True), // CRC_32CCITT +
374 (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $00000000; Inverse: True), // CRC_32ZModem +
375 (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_8ATMHEC +
376 (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: False), // CRC_8SMBus +
377 (Poly: $00004599; Bits: 15; Init: $00000000; FInit: $00000000; Inverse: True), // CRC_15CAN +
378 (Poly: $00001021; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: False) // CRC_16ZMODEM +
379 ); +
380 +
381 // some other CRC's, not all yet verfied +
382 // DD $00001021, 16, $0000FFFF, $00000000, 0 // CRC_16 CCITT British Aerospace +
383 // DD $00004003, 16, $00000000, $00000000, -1 // CRC_16 reversed +
384 // DD $00001005, 16, $00000000, $00000000, -1 // CRC_16 X25 +
385 +
386 // https://fenix.tecnico.ulisboa.pt/downloadFile/3779571246541/BasicCrd.pdf enthält +
387 // eine beschreibung dieser BasicCard Smartcard incl. C-CRC Quellcode, aber die +
388 // Polynome konnte ich so noch nicht überprüfen +
389 // DD $00000053, 16, $00000000, $00000000, -1 // BasicCard 16Bit CRC (sparse poly for Crypto MCU) +
390 // DD $000000C5, 32, $00000000, $00000000, -1 // BasicCard 32Bit CRC +
391 +
392function CRCSetup(var CRCDef: TCRCDef; Polynomial, Bits, InitVector, +
393 FinalVector: UInt32; Inverse: LongBool): Boolean; +
394// initialize CRCDef according to the parameters, calculate the lookup table +
395{$IFDEF X86ASM} +
396asm +
397 CMP ECX,8 +
398 JB @@8 +
399 PUSH EBX +
400 PUSH EDI +
401 PUSH ESI +
402 MOV [EAX].TCRCDef.Polynomial,EDX +
403 MOV [EAX].TCRCDef.Bits,ECX +
404 MOV EBX,InitVector +
405 MOV EDI,FinalVector +
406 MOV ESI,Inverse +
407 MOV [EAX].TCRCDef.CRC,EBX +
408 MOV [EAX].TCRCDef.InitVector,EBX +
409 MOV [EAX].TCRCDef.FinalVector,EDI +
410 MOV [EAX].TCRCDef.Inverse,ESI +
411 XOR EDI,EDI +
412 LEA EBX,[ECX - 8] +
413 SUB ECX,32 +
414 DEC EDI +
415 NEG ECX +
416 SHR EDI,CL +
417 MOV [EAX].TCRCDef.Shift,EBX +
418 MOV [EAX].TCRCDef.Mask,EDI +
419 TEST ESI,ESI +
420 JZ @@5 +
421 XOR EBX,EBX +
422 MOV ECX,[EAX].TCRCDef.Bits +
423@@1: SHR EDX,1 +
424 ADC EBX,EBX +
425 DEC ECX +
426 JNZ @@1 +
427 NOP +
428 MOV ECX,255 +
429 NOP +
430@@20: MOV EDX,ECX +
431 SHR EDX,1 +
432 JNC @@21 +
433 XOR EDX,EBX +
434@@21: SHR EDX,1 +
435 JNC @@22 +
436 XOR EDX,EBX +
437@@22: SHR EDX,1 +
438 JNC @@23 +
439 XOR EDX,EBX +
440@@23: SHR EDX,1 +
441 JNC @@24 +
442 XOR EDX,EBX +
443@@24: SHR EDX,1 +
444 JNC @@25 +
445 XOR EDX,EBX +
446@@25: SHR EDX,1 +
447 JNC @@26 +
448 XOR EDX,EBX +
449@@26: SHR EDX,1 +
450 JNC @@27 +
451 XOR EDX,EBX +
452@@27: SHR EDX,1 +
453 JNC @@28 +
454 XOR EDX,EBX +
455@@28: MOV [EAX + ECX * 4],EDX +
456 DEC ECX +
457 JNL @@20 +
458 JMP @@7 +
459@@5: AND EDX,EDI +
460 ROL EDX,CL +
461 MOV EBX,255 +
462// can be coded branchfree +
463@@60: MOV ESI,EBX +
464 SHL ESI,25 +
465 JNC @@61 +
466 XOR ESI,EDX +
467@@61: ADD ESI,ESI +
468 JNC @@62 +
469 XOR ESI,EDX +
470@@62: ADD ESI,ESI +
471 JNC @@63 +
472 XOR ESI,EDX +
473@@63: ADD ESI,ESI +
474 JNC @@64 +
475 XOR ESI,EDX +
476@@64: ADD ESI,ESI +
477 JNC @@65 +
478 XOR ESI,EDX +
479@@65: ADD ESI,ESI +
480 JNC @@66 +
481 XOR ESI,EDX +
482@@66: ADD ESI,ESI +
483 JNC @@67 +
484 XOR ESI,EDX +
485@@67: ADD ESI,ESI +
486 JNC @@68 +
487 XOR ESI,EDX +
488@@68: ROR ESI,CL +
489 MOV [EAX + EBX * 4],ESI +
490 DEC EBX +
491 JNL @@60 +
492@@7: POP ESI +
493 POP EDI +
494 POP EBX +
495@@8: CMC +
496 SBB EAX,EAX +
497 NEG EAX +
498end; +
499{$ELSE !X86ASM} +
500var +
501 Value, XorValue, OldValue: UInt32; +
502 Index: Integer; +
503 B: Boolean; +
504 One: Byte; +
505begin +
506 if Bits >= 8 then +
507 begin +
508 CRCDef.Polynomial := Polynomial; +
509 CRCDef.Bits := Bits; +
510 CRCDef.CRC := InitVector; +
511 CRCDef.InitVector := InitVector; +
512 CRCDef.FinalVector := FinalVector; +
513 CRCDef.Inverse := Inverse; +
514 CRCDef.Shift := Bits - 8; +
515 Bits := -(Bits - 32); +
516 CRCDef.Mask := -1 shr Byte(Bits); +
517 +
518 if Inverse then +
519 begin +
520 Bits := CRCDef.Bits; +
521 XorValue := 0; +
522 repeat +
523 Inc(XorValue, XorValue + Ord(Polynomial and $1)); +
524 Polynomial := Polynomial shr 1; +
525 Dec(Bits); +
526 until Bits = 0; +
527 +
528 One := $1; +
529 for Index := 255 downto 0 do +
530 begin +
531 Value := Index; +
532 +
533 B := Boolean(Value and One); Value := Value shr 1; +
534 if B then Value := Value xor XorValue; +
535 +
536 B := Boolean(Value and One); Value := Value shr 1; +
537 if B then Value := Value xor XorValue; +
538 +
539 B := Boolean(Value and One); Value := Value shr 1; +
540 if B then Value := Value xor XorValue; +
541 +
542 B := Boolean(Value and One); Value := Value shr 1; +
543 if B then Value := Value xor XorValue; +
544 +
545 B := Boolean(Value and One); Value := Value shr 1; +
546 if B then Value := Value xor XorValue; +
547 +
548 B := Boolean(Value and One); Value := Value shr 1; +
549 if B then Value := Value xor XorValue; +
550 +
551 B := Boolean(Value and One); Value := Value shr 1; +
552 if B then Value := Value xor XorValue; +
553 +
554 B := Boolean(Value and One); Value := Value shr 1; +
555 if B then Value := Value xor XorValue; +
556 +
557 CRCDef.Table[Index] := Value; +
558 end; +
559 end +
560 else +
561 begin +
562 XorValue := Polynomial and CRCDef.Mask; +
563 XorValue := (XorValue shl Byte(Bits)) or (XorValue shr (32 - Byte(Bits))); +
564 for Index := 255 downto 0 do +
565 begin +
566 B := Boolean(Index and $000000080); Value := Index shl 25; +
567 if B then Value := Value xor XorValue; +
568 +
569 OldValue := Value; Inc(Value, Value); +
570 if Value < OldValue then Value := Value xor XorValue; +
571 +
572 OldValue := Value; Inc(Value, Value); +
573 if Value < OldValue then Value := Value xor XorValue; +
574 +
575 OldValue := Value; Inc(Value, Value); +
576 if Value < OldValue then Value := Value xor XorValue; +
577 +
578 OldValue := Value; Inc(Value, Value); +
579 if Value < OldValue then Value := Value xor XorValue; +
580 +
581 OldValue := Value; Inc(Value, Value); +
582 if Value < OldValue then Value := Value xor XorValue; +
583 +
584 OldValue := Value; Inc(Value, Value); +
585 if Value < OldValue then Value := Value xor XorValue; +
586 +
587 OldValue := Value; Inc(Value, Value); +
588 if Value < OldValue then Value := Value xor XorValue; +
589 +
590 Value := (Value shr Byte(Bits)) or (Value shl (32 - Byte(Bits))); +
591 CRCDef.Table[Index] := Value; +
592 end; +
593 end; +
594 Result := True; +
595 end +
596 else +
597 Result := False; +
598end; +
599{$ENDIF !X86ASM} +
600 +
601function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean; +
602begin +
603 Result := CRCSetup(CRCDef, +
604 PCRCTab(@CRCTab)[CRCType].Poly, +
605 PCRCTab(@CRCTab)[CRCType].Bits, +
606 PCRCTab(@CRCTab)[CRCType].Init, +
607 PCRCTab(@CRCTab)[CRCType].FInit, +
608 PCRCTab(@CRCTab)[CRCType].Inverse); +
609end; +
610 +
611function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32; +
612// do the CRC computation +
613{$IFDEF X86ASM} +
614asm +
615 JECXZ @@5 +
616 TEST EDX,EDX +
617 JZ @@5 +
618 PUSH ESI +
619 PUSH EBX +
620 MOV ESI,EAX +
621 CMP [EAX].TCRCDef.Inverse,0 +
622 MOV EAX,[ESI].TCRCDef.CRC +
623 JZ @@2 +
624 XOR EBX,EBX +
625@@1: MOV BL,[EDX] +
626 XOR BL,AL +
627 SHR EAX,8 +
628 INC EDX +
629 XOR EAX,[ESI + EBX * 4] +
630 DEC ECX +
631 JNZ @@1 +
632 JMP @@4 +
633@@2: PUSH EDI +
634 MOV EBX,EAX +
635 MOV EDI,ECX +
636 MOV ECX,[ESI].TCRCDef.Shift +
637 MOV EBX,EAX +
638@@3: SHR EBX,CL +
639 SHL EAX,8 +
640 XOR BL,[EDX] +
641 INC EDX +
642 MOVZX EBX,BL +
643 XOR EAX,[ESI + EBX * 4] +
644 DEC EDI +
645 MOV EBX,EAX +
646 JNZ @@3 +
647 POP EDI +
648@@4: MOV [ESI].TCRCDef.CRC,EAX +
649 XOR EAX,[ESI].TCRCDef.FinalVector +
650 AND EAX,[ESI].TCRCDef.Mask +
651 POP EBX +
652 POP ESI +
653 RET +
654@@5: MOV EAX,[EAX].TCRCDef.CRC +
655end; +
656{$ELSE !X86ASM} +
657var +
658 P: PByte; +
659 Value: Byte; +
660begin +
661 Result := CRCDef.CRC; +
662 P := @Buffer; +
663 if (Size <> 0) and (P <> nil) then +
664 begin +
665 if CRCDef.Inverse then +
666 begin +
667 repeat +
668 Value := P^ xor Byte(Result); +
669 Result := (Result shr 8) xor CRCDef.Table[Value]; +
670 Inc(P); +
671 Dec(Size); +
672 until Size = 0; +
673 end +
674 else +
675 begin +
676 Value := Byte(CRCDef.Shift); // move to local variable => cpu register +
677 repeat +
678 Result := (Result shl 8) xor CRCDef.Table[Byte(Result shr Value) xor P^]; +
679 Inc(P); +
680 Dec(Size); +
681 until Size = 0; +
682 end; +
683 CRCDef.CRC := Result; +
684 Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask; +
685 end; +
686end; +
687{$ENDIF !X86ASM} +
688 +
689function CRCCode(var CRCDef: TCRCDef; ReadMethod: TReadMethod; Size: UInt32 = $FFFFFFFF): UInt32; +
690var +
691 Buffer: array[0..1023] of Char; +
692 Count: Int64; +
693begin +
694 repeat +
695 if Size > SizeOf(Buffer) then +
696 Count := SizeOf(Buffer) +
697 else +
698 Count := Size; +
699 Count := ReadMethod(Buffer, Count); +
700 Result := CRCCode(CRCDef, Buffer, Count); +
701 Dec(Size, Count); +
702 until (Size = 0) or (Count = 0); +
703end; +
704 +
705function CRCDone(var CRCDef: TCRCDef): UInt32; +
706// finalize CRCDef after a computation +
707{$IFDEF X86ASM} +
708asm +
709 MOV EDX,[EAX].TCRCDef.CRC +
710 MOV ECX,[EAX].TCRCDef.InitVector +
711 XOR EDX,[EAX].TCRCDef.FinalVector +
712 MOV [EAX].TCRCDef.CRC,ECX +
713 AND EDX,[EAX].TCRCDef.Mask +
714 MOV EAX,EDX +
715end; +
716{$ELSE !X86ASM} +
717begin +
718 Result := CRCDef.CRC; +
719 CRCDef.CRC := CRCDef.InitVector; +
720 Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask; +
721end; +
722{$ENDIF !X86ASM} +
723 +
724function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32; +
725// inplace calculation +
726var +
727 CRC: TCRCDef; +
728begin +
729 CRCInit(CRC, CRCType); +
730 Result := CRCCode(CRC, Buffer, Size); +
731end; +
732 +
733function CRCCalc(CRCType: TCRCType; ReadMethod: TReadMethod; Size: UInt32): UInt32; +
734var +
735 CRC: TCRCDef; +
736begin +
737 CRCInit(CRC, CRCType); +
738 Result := CRCCode(CRC, ReadMethod, Size); +
739end; +
740 +
741// predefined CRC16/CRC32CCITT, avoid slower lookuptable computation by use of precomputation +
742var +
743 FCRC16: PCRCDef = nil; +
744 FCRC32: PCRCDef = nil; +
745 +
746function CRC16Init: Pointer; +
747begin +
748 // Replace GetMem by GetMemory due to C++ Builder compatibility +
749 // GetMem(FCRC16, SizeOf(TCRCDef)); +
750 FCRC16 := GetMemory(SizeOf(TCRCDef)); +
751 CRCInit(FCRC16^, CRC_16); +
752 Result := FCRC16; +
753end; +
754 +
755function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16; +
756{$IFDEF X86ASM} +
757asm +
758 JECXZ @@2 +
759 PUSH EDI +
760 PUSH ESI +
761 MOV EDI,ECX +
762{$IFDEF PIC} +
763 MOV ESI,[EBX].FCRC16 +
764{$ELSE !PIC} +
765 MOV ESI,FCRC16 +
766{$ENDIF !PIC} +
767 XOR ECX,ECX +
768 TEST ESI,ESI +
769 JZ @@3 +
770@@1: MOV CL,[EDX] +
771 XOR CL,AL +
772 SHR EAX,8 +
773 INC EDX +
774 XOR EAX,[ESI + ECX * 4] +
775 DEC EDI +
776 JNZ @@1 +
777 POP ESI +
778 POP EDI +
779@@2: RET +
780@@3: PUSH EAX +
781 PUSH EDX +
782 CALL CRC16Init +
783 MOV ESI,EAX +
784 XOR ECX,ECX +
785 POP EDX +
786 POP EAX +
787 JMP @@1 +
788end; +
789{$ELSE !X86ASM} +
790var +
791 LCRC16: PCRCDef; +
792 P: PByte; +
793 CRC32: UInt32; +
794 Value: Byte; +
795begin +
796 if Size <> 0 then +
797 begin +
798 LCRC16 := FCRC16; +
799 if LCRC16 = nil then +
800 LCRC16 := CRC16Init; +
801 +
802 CRC32 := CRC; +
803 P := @Buffer; +
804 repeat +
805 Value := P^ xor Byte(CRC32); +
806 CRC32 := (CRC32 shr 8) xor LCRC16.Table[Value]; +
807 Inc(P); +
808 Dec(Size); +
809 until Size = 0; +
810 Result := UInt16(CRC32); +
811 end +
812 else +
813 Result := CRC; +
814end; +
815{$ENDIF !X86ASM} +
816 +
817function CRC32Init: Pointer; +
818begin +
819 // Replaced for C++ Builder compatibility +
820 // GetMem(FCRC32, SizeOf(TCRCDef)); +
821 FCRC32 := GetMemory(SizeOf(TCRCDef)); +
822 CRCInit(FCRC32^, CRC_32CCITT); +
823 Result := FCRC32; +
824end; +
825 +
826function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32; +
827{$IFDEF X86ASM} +
828asm +
829 JECXZ @@2 +
830 PUSH EDI +
831 PUSH ESI +
832 NOT EAX // inverse Input CRC +
833 MOV EDI,ECX +
834{$IFDEF PIC} +
835 MOV ESI,[EBX].FCRC32 +
836{$ELSE !PIC} +
837 MOV ESI,FCRC32 +
838{$ENDIF !PIC} +
839 XOR ECX,ECX +
840 TEST ESI,ESI +
841 JZ @@3 +
842@@1: MOV CL,[EDX] +
843 XOR CL,AL +
844 SHR EAX,8 +
845 INC EDX +
846 XOR EAX,[ESI + ECX * 4] +
847 DEC EDI +
848 JNZ @@1 +
849 NOT EAX // inverse Output CRC +
850 POP ESI +
851 POP EDI +
852@@2: RET +
853@@3: PUSH EAX +
854 PUSH EDX +
855 CALL CRC32Init +
856 MOV ESI,EAX +
857 XOR ECX,ECX +
858 POP EDX +
859 POP EAX +
860 JMP @@1 +
861end; +
862{$ELSE !X86ASM} +
863var +
864 LCRC32: PCRCDef; +
865 P: PByte; +
866 CRC32: UInt32; +
867 Value: Byte; +
868begin +
869 if Size <> 0 then +
870 begin +
871 LCRC32 := FCRC32; +
872 if LCRC32 = nil then +
873 LCRC32 := CRC32Init; +
874 +
875 CRC32 := not CRC; // inverse Input CRC +
876 P := @Buffer; +
877 repeat +
878 Value := P^ xor Byte(CRC32); +
879 CRC32 := (CRC32 shr 8) xor LCRC32.Table[Value]; +
880 Inc(P); +
881 Dec(Size); +
882 until Size = 0; +
883 Result := not CRC32; // inverse Output CRC +
884 end +
885 else +
886 Result := CRC; +
887end; +
888{$ENDIF !X86ASM} +
889 +
890procedure CRCInitThreadSafe; +
891begin +
892 CRC16Init; +
893 CRC32Init; +
894end; +
895 +
896{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
897{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
898 +
899initialization +
900 CRCInitThreadSafe; +
901 +
902finalization +
903 if FCRC16 <> nil then +
904 FreeMem(FCRC16); +
905 +
906 if FCRC32 <> nil then +
907 FreeMem(FCRC32); +
908end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCipherBase(DECCipherBase.pas).html b/Unit Tests/CodeCoverage/Output/DECCipherBase(DECCipherBase.pas).html new file mode 100644 index 00000000..73d92633 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCipherBase(DECCipherBase.pas).html @@ -0,0 +1,1326 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherBase (..\..\Source\DECCipherBase.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCipherBase.pas

+
Number of lines covered133
Number of lines with code gen177
Line coverage75.1 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECCipherBase; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23uses +
24 {$IFDEF FPC} +
25 SysUtils, Classes, +
26 {$ELSE} +
27 System.SysUtils, System.Classes, Generics.Collections, +
28 {$ENDIF} +
29 DECBaseClass, DECFormatBase; +
30 +
31type +
32 /// <summary> +
33 /// Possible kindes of cipher algorithms independent of any block +
34 /// concatenation mode etc. +
35 /// <para> +
36 /// ctNull = special "do nothing cipher" +
37 /// </para> +
38 /// <para> +
39 /// ctStream = cipher operating on a stream of bytes instead of blocks +
40 /// </para> +
41 /// <para> +
42 /// ctBlock = cipher operating on blocks of bytes with a fixed size +
43 /// </para> +
44 /// <para> +
45 /// ctSymmetric = cipher where the same key encrypts and decrypts +
46 /// </para> +
47 /// <para> +
48 /// ctAsymetric = cipher where encryption and decryption requires +
49 /// different keys +
50 /// </para> +
51 /// </summary> +
52 TCipherTypes = (ctNull, ctStream, ctBlock, ctSymmetric, ctAsymmetric); +
53 +
54 /// <summary> +
55 /// Actual kind of cipher algorithm +
56 /// </summary> +
57 TCipherType = set of TCipherTypes; +
58 +
59 /// <summary> +
60 /// Padding used to fill the last incomplete block of a block encryption +
61 /// algorithm. To be expanded in a future version +
62 /// </summary> +
63 TBlockFillMode = (fmByte); +
64 +
65 /// <summary> +
66 /// Record containing meta data about a certain cipher +
67 /// </summary> +
68 TCipherContext = packed record +
69 /// <summary> +
70 /// maximal key size in bytes +
71 /// </summary> +
72 KeySize : Integer; +
73 /// <summary> +
74 /// mininmal block size in bytes, e.g. 1 = Streamcipher +
75 /// </summary> +
76 BlockSize : Integer; +
77 /// <summary> +
78 /// internal buffersize in bytes +
79 /// </summary> +
80 BufferSize : Integer; +
81 /// <summary> +
82 /// Size in bytes of the FAdditionalBuffer used by some of the cipher algorithms +
83 /// </summary> +
84 AdditionalBufferSize : Integer; +
85 /// <summary> +
86 /// When true the memory a certain internal pointer (FAdditionalBuffer) +
87 /// points to needs to be backuped during key initialization if no init +
88 /// vector is specified and restored at the end of that init method. +
89 /// Same in Done method as well. +
90 /// </summary> +
91 NeedsAdditionalBufferBackup : Boolean; +
92 /// <summary> +
93 /// Minimum number of rounds allowed for any block cipher having a rounds +
94 /// property. In all other cases it will be set to 1. +
95 /// </summary> +
96 MinRounds : UInt16; +
97 /// <summary> +
98 /// Maximum number of rounds allowed for any block cipher having a rounds +
99 /// property. In all other cases it will be set to 1. +
100 /// </summary> +
101 MaxRounds : UInt16; +
102 +
103 /// <summary> +
104 /// Specifies the kind of cipher +
105 /// </summary> +
106 CipherType : TCipherType; +
107 end; +
108 +
109 /// <summary> +
110 /// TCipher.State represents the internal state of processing +
111 /// <para> +
112 /// csNew : cipher isn't initialized, .Init() must be called before en/decode +
113 /// </para> +
114 /// <para> +
115 /// csNew : cipher isn't initialized, .Init() must be called before en/decode +
116 /// </para> +
117 /// <para> +
118 /// csInitialized : cipher is initialized by .Init(), i.e. Keysetup was processed +
119 /// </para> +
120 /// <para> +
121 /// csEncode : Encoding was started, and more chunks can be encoded, but not decoded +
122 /// </para> +
123 /// <para> +
124 /// csDecode : Decoding was started, and more chunks can be decoded, but not encoded +
125 /// </para> +
126 /// <para> +
127 /// csPadded : trough En/Decoding the messagechunks are padded, no more chunks can +
128 /// be processed, the cipher is blocked +
129 /// </para> +
130 /// <para> +
131 /// csDone : Processing is finished and Cipher.Done was called. Now new En/Decoding +
132 /// can be started without calling .Init() before. csDone is basically +
133 /// identical to csInitialized, except Cipher.Buffer holds the encrypted +
134 /// last state of Cipher.Feedback, thus Cipher.Buffer can be used as C-MAC. +
135 /// </para> +
136 /// </summary> +
137 TCipherState = (csNew, csInitialized, csEncode, csDecode, csPadded, csDone); +
138 /// <summary> +
139 /// Set of cipher states, representing the internal state of processing +
140 /// </summary> +
141 TCipherStates = set of TCipherState; +
142 +
143 /// <summary> +
144 /// This defines how the individual blocks of the data to be processed are +
145 /// linked with each other. +
146 /// +
147 /// Modes cmCBCx, cmCTSx, cmCTSxx, cmCFBx, cmOFBx, cmCFSx, cmECBx are working +
148 /// on Blocks of Cipher.BufferSize bytes, when using a Blockcipher that's equal +
149 /// to Cipher.BlockSize. +
150 /// +
151 /// Modes cmCFB8, cmOFB8, cmCFS8 work on 8 bit Feedback Shift Registers. +
152 /// +
153 /// Modes cmCTSx, cmCFSx, cmCFS8 are proprietary modes developed by Hagen +
154 /// Reddmann. These modes work like cmCBCx, cmCFBx, cmCFB8 but with double +
155 /// XOR'ing of the inputstream into the feedback register. +
156 /// +
157 /// Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize and +
158 /// should be used only in 1-byte Streamciphers. +
159 /// +
160 /// Modes cmCFB8, cmCFBx, cmOFB8, cmOFBx, cmCFS8 and cmCFSx need no padding. +
161 /// +
162 /// Modes cmCTSx, cmCBCx need no external padding, because internally the last +
163 /// truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes +
164 /// cannot be used to process any more data. If needed to process chunks of +
165 /// data then each chunk must be algined to Cipher.BufferSize bytes. +
166 /// +
167 /// Mode cmCTS3 is a proprietary mode developed by Frederik Winkelsdorf. It +
168 /// replaces the CFS8 padding of the truncated final block with a CFSx padding. +
169 /// Useful when converting projects that previously used the old DEC v3.0. It +
170 /// has the same restrictions for external padding and chunk processing as +
171 /// cmCTSx has. +
172 /// </summary> +
173 TCipherMode = ( +
174 cmCTSx, // double CBC, with CFS8 padding of truncated final block +
175 cmCBCx, // Cipher Block Chaining, with CFB8 padding of truncated final block +
176 cmCFB8, // 8bit Cipher Feedback mode +
177 cmCFBx, // CFB on Blocksize of Cipher +
178 cmOFB8, // 8bit Output Feedback mode +
179 cmOFBx, // OFB on Blocksize bytes +
180 cmCFS8, // 8Bit CFS, double CFB +
181 cmCFSx, // CFS on Blocksize bytes +
182 cmECBx, // Electronic Code Book +
183 cmGCM // Galois Counter Mode +
184 {$IFDEF DEC3_CMCTS} +
185 ,cmCTS3 // double CBC, with less secure padding of truncated final block +
186 // for DEC 3.0 compatibility only (see DECOptions.inc) +
187 {$ENDIF DEC3_CMCTS} +
188 ); +
189 +
190 /// <summary> +
191 /// Each cipher algorithm has to implement a Encode and a Decode method which +
192 /// has the same signature as this type. The CipherFormats get these +
193 /// encode/decode methods passed to do their work. +
194 /// </summary> +
195 /// <param name="Source"> +
196 /// Contains the data to be encoded or decoded +
197 /// </param> +
198 /// <param name="Dest"> +
199 /// Contains the data after encoding or decoding +
200 /// </param> +
201 /// <param name="DataSize"> +
202 /// Number of bytes to encode or decode +
203 /// </param> +
204 TDECCipherCodeEvent = procedure(const Source; var Dest; DataSize: Integer) of object; +
205 +
206 /// <summary> +
207 /// Class type of the cipher base class, relevant for the class registration +
208 /// </summary> +
209 TDECCipherClass = class of TDECCipher; +
210 +
211 /// <summary> +
212 /// Base class for all implemented cipher algorithms +
213 /// </summary> +
214 /// <remarks> +
215 /// When adding new block ciphers do never directly inherit from this class! +
216 /// Inherit from TDECCipherFormats. +
217 /// </remarks> +
218 TDECCipher = class(TDECObject) +
219 strict private +
220 /// <summary> +
221 /// This is the complete memory block containing FInitializationVector, +
222 /// FFeedback, FBuffer and FAdditionalBuffer +
223 /// </summary> +
224 FData : PByteArray; +
225 /// <summary> +
226 /// This is the size of FData in byte +
227 /// </summary> +
228 FDataSize : Integer; +
229 strict protected +
230 /// <summary> +
231 /// Padding mode used to concatenate/connect blocks in a block cipher +
232 /// </summary> +
233 FMode : TCipherMode; +
234 /// <summary> +
235 /// Mode used for filling up an incomplete last block in a block cipher +
236 /// </summary> +
237 FFillMode : TBlockFillMode; +
238 /// <summary> +
239 /// Current processing state +
240 /// </summary> +
241 FState: TCipherState; +
242 /// <summary> +
243 /// Size of the internally used processing buffer in byte +
244 /// </summary> +
245 FBufferSize: Integer; +
246 /// <summary> +
247 /// At which position of the buffer are we currently operating? +
248 /// </summary> +
249 FBufferIndex: Integer; +
250 +
251 /// <summary> +
252 /// Some algorithms, mostly the cipher mode ones, need a temporary buffer +
253 /// to work with. Some other methods like Done or Valid cipher need to pass +
254 /// a buffer as parameter as that is ecpected by the called method. +
255 /// </summary> +
256 FBuffer: PByteArray; +
257 +
258 /// <summary> +
259 /// Initialization vector. When using cipher modes to derive a stream +
260 /// cipher from a block cipher algorithm some data from each encrypted block +
261 /// is fed into the encryption of the next block. For the first block there +
262 /// is no such encrypted data yet, so this initialization vector fills this +
263 /// "gap". +
264 /// </summary> +
265 FInitializationVector: PByteArray; +
266 +
267 /// <summary> +
268 /// Size of the initialization vector in byte. Required for algorithms +
269 /// like GCM. +
270 /// </summary> +
271 FInitVectorSize: Integer; +
272 +
273 /// <summary> +
274 /// Cipher modes are used to derive a stream cipher from block cipher +
275 /// algorithms. For this something from the last entrypted block (or for +
276 /// the first block from the vector) is used in the encryption of the next +
277 /// block. It may be XORed with the next block cipher text for isntance. +
278 /// That data "going into the next block encryption" is this feedback array +
279 /// </summary> +
280 FFeedback: PByteArray; +
281 +
282 /// <summary> +
283 /// Size of FAdditionalBuffer in Byte +
284 /// </summary> +
285 FAdditionalBufferSize: Integer; +
286 /// <summary> +
287 /// A buffer some of the cipher algorithms need to operate on. It is +
288 /// some part of FBuffer like FInitializationVector and FFeedback as well. +
289 /// </summary> +
290 FAdditionalBuffer: Pointer; +
291 +
292 /// <summary> +
293 /// If a user does not specify an init vector (IV) during key setup +
294 /// (IV length = 0) the init method generates an IV by encrypting the +
295 /// complete memory reserved for IV. Within this memory block is the memory +
296 /// FAdditionalBuffer points to as well, and for some algorithms this part +
297 /// of the memory may not be altered during initialization so it is +
298 /// backupped to this memory location and restored after the IV got encrypted. +
299 /// In DoDone it needs to be restored as well to prevent any unwanted +
300 /// leftovers which might pose a security issue. +
301 /// </summary> +
302 FAdditionalBufferBackup: Pointer; +
303 +
304 /// <summary> +
305 /// Checks whether the state machine is in one of the states specified as +
306 /// parameter. If not a EDECCipherException will be raised. +
307 /// </summary> +
308 /// <param name="States"> +
309 /// List of states the state machine should be at currently +
310 /// </param> +
311 /// <exception cref="EDECCipherException"> +
312 /// Exception raised if the state machine is not in one of the states +
313 /// specified by the <c>States</c> parameter. +
314 /// </exception> +
315 procedure CheckState(States: TCipherStates); +
316 +
317 /// <summary> +
318 /// Initialize the key, based on the key passed in. This is called before +
319 /// OnAfterInitVectorInitialization is called. +
320 /// </summary> +
321 /// <param name="Key"> +
322 /// Encryption/Decryption key to be used +
323 /// </param> +
324 /// <param name="Size"> +
325 /// Size of the key passed in bytes. +
326 /// </param> +
327 procedure DoInit(const Key; Size: Integer); virtual; abstract; +
328 /// <summary> +
329 /// Allows to run code after the initialization vector has been initialized +
330 /// inside the Init call, which is after DoInit has been called. +
331 /// </summary> +
332 /// <param name="OriginalInitVector"> +
333 /// Value of the init vector as originally passed to the Init call without +
334 /// any initialization steps done to/on it +
335 /// </param> +
336 procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); virtual; abstract; +
337 +
338 /// <summary> +
339 /// This abstract method needs to be overwritten by each concrete encryption +
340 /// algorithm as this is the routine used internally to encrypt a single +
341 /// block of data. +
342 /// </summary> +
343 /// <param name="Source"> +
344 /// Data to be encrypted +
345 /// </param> +
346 /// <param name="Dest"> +
347 /// In this memory the encrypted result will be written +
348 /// </param> +
349 /// <param name="Size"> +
350 /// Size of source in byte +
351 /// </param> +
352 procedure DoEncode(Source, Dest: Pointer; Size: Integer); virtual; abstract; +
353 /// <summary> +
354 /// This abstract method needs to be overwritten by each concrete encryption +
355 /// algorithm as this is the routine used internally to decrypt a single +
356 /// block of data. +
357 /// </summary> +
358 /// <param name="Source"> +
359 /// Data to be decrypted +
360 /// </param> +
361 /// <param name="Dest"> +
362 /// In this memory the decrypted result will be written +
363 /// </param> +
364 /// <param name="Size"> +
365 /// Size of source in byte +
366 /// </param> +
367 procedure DoDecode(Source, Dest: Pointer; Size: Integer); virtual; abstract; +
368 /// <summary> +
369 /// Securely fills the processing buffer with zeroes to make stealing data +
370 /// from memory harder. +
371 /// </summary> +
372 procedure SecureErase; virtual; +
373 +
374 /// <summary> +
375 /// Returns the currently set cipher block mode, means how blocks are +
376 /// linked to each other in order to avoid certain attacks. +
377 /// </summary> +
378 function GetMode: TCipherMode; +
379 +
380 /// <summary> +
381 /// Sets the cipher mode, means how each block is being linked with his +
382 /// predecessor to avoid certain attacks +
383 /// </summary> +
384 procedure SetMode(Value: TCipherMode); +
385 /// <summary> +
386 /// When setting a mode it might need to be initialized and that can +
387 /// usually only be done in a child class. +
388 /// </summary> +
389 procedure InitMode; virtual; abstract; +
390 public +
391 /// <summary> +
392 /// List of registered DEC classes. Key is the Identity of the class. +
393 /// </summary> +
394 class var ClassList : TDECClassList; +
395 +
396 /// <summary> +
397 /// Tries to find a class type by its name +
398 /// </summary> +
399 /// <param name="Name"> +
400 /// Name to look for in the list +
401 /// </param> +
402 /// <returns> +
403 /// Returns the class type if found. if it could not be found a +
404 /// EDECClassNotRegisteredException will be thrown +
405 /// </returns> +
406 /// <exception cref="EDECClassNotRegisteredException"> +
407 /// Exception raised if the class specified by <c>Name</c> is not found +
408 /// </exception> +
409 class function ClassByName(const Name: string): TDECCipherClass; +
410 +
411 /// <summary> +
412 /// Tries to find a class type by its numeric identity DEC assigned to it. +
413 /// Useful for file headers, so they can easily encode numerically which +
414 /// cipher class was being used. +
415 /// </summary> +
416 /// <param name="Identity"> +
417 /// Identity to look for +
418 /// </param> +
419 /// <returns> +
420 /// Returns the class type of the class with the specified identity value +
421 /// or throws an EDECClassNotRegisteredException exception if no class +
422 /// with the given identity has been found +
423 /// </returns> +
424 /// <exception cref="EDECClassNotRegisteredException"> +
425 /// Exception raised if the class specified by <c>Identity</c> is not found +
426 /// </exception> +
427 class function ClassByIdentity(Identity: Int64): TDECCipherClass; +
428 +
429 /// <summary> +
430 /// Provides meta data about the cipher algorithm used like key size. +
431 /// To be overidden in the concrete cipher classes. +
432 /// </summary> +
433 /// <remarks> +
434 /// C++ does not support virtual static functions thus the base cannot be +
435 /// marked 'abstract'. Calling this version of the method will lead to an +
436 /// EDECAbstractError +
437 /// </remarks> +
438 class function Context: TCipherContext; virtual; +
439 +
440 /// <summary> +
441 /// Initializes the instance. Relies in parts on information given by the +
442 /// Context class function. +
443 /// </summary> +
444 constructor Create; override; +
445 /// <summary> +
446 /// Frees internal structures and where necessary does so in a save way so +
447 /// that data in those structures cannot be "stolen". +
448 /// </summary> +
449 destructor Destroy; override; +
450 +
451 /// <summary> +
452 /// Provides information whether the selected block concatenation mode +
453 /// provides authentication functionality or not. +
454 /// </summary> +
455 /// <returns> +
456 /// true if the selected block mode is one providing authentication features +
457 /// as well +
458 /// </returns> +
459 function IsAuthenticated: Boolean; +
460 +
461 /// <summary> +
462 /// Initializes the cipher with the necessary encryption/decryption key +
463 /// </summary> +
464 /// <param name="Key"> +
465 /// Encryption/decryption key. Recommended/required key length is dependant +
466 /// on the concrete algorithm. +
467 /// </param> +
468 /// <param name="Size"> +
469 /// Size of the key in bytes +
470 /// </param> +
471 /// <param name="IVector"> +
472 /// Initialization vector. This contains the values the first block of +
473 /// data to be processed is linked with. This is being done the same way +
474 /// as the 2nd block of the data to be processed will be linked with the +
475 /// first block and so on and this is dependant on the cypher mode set via +
476 /// Mode property +
477 /// </param> +
478 /// <param name="IVectorSize"> +
479 /// Size of the initialization vector in bytes +
480 /// </param> +
481 /// <param name="IFiller"> +
482 /// optional parameter defining the value with which the last block will +
483 /// be filled up if the size of the data to be processed cannot be divided +
484 /// by block size without reminder. Means: if the last block is not +
485 /// completely filled with data. +
486 /// </param> +
487 procedure Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte = $FF); overload; +
488 /// <summary> +
489 /// Initializes the cipher with the necessary encryption/decryption key +
490 /// </summary> +
491 /// <param name="Key"> +
492 /// Encryption/decryption key. Recommended/required key length is dependant +
493 /// on the concrete algorithm. +
494 /// </param> +
495 /// <param name="IVector"> +
496 /// Initialization vector. This contains the values the first block of +
497 /// data to be processed is linked with. This is being done the same way +
498 /// as the 2nd block of the data to be processed will be linked with the +
499 /// first block and so on and this is dependant on the cypher mode set via +
500 /// Mode property +
501 /// </param> +
502 /// <param name="IFiller"> +
503 /// optional parameter defining the value with which the last block will +
504 /// be filled up if the size of the data to be processed cannot be divided +
505 /// by block size without reminder. Means: if the last block is not +
506 /// completely filled with data. +
507 /// </param> +
508 procedure Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF); overload; +
509 /// <summary> +
510 /// Initializes the cipher with the necessary encryption/decryption key +
511 /// </summary> +
512 /// <param name="Key"> +
513 /// Encryption/decryption key. Recommended/required key length is dependant +
514 /// on the concrete algorithm. +
515 /// </param> +
516 /// <param name="IVector"> +
517 /// Initialization vector. This contains the values the first block of +
518 /// data to be processed is linked with. This is being done the same way +
519 /// as the 2nd block of the data to be processed will be linked with the +
520 /// first block and so on and this is dependant on the cypher mode set via +
521 /// Mode property +
522 /// </param> +
523 /// <param name="IFiller"> +
524 /// optional parameter defining the value with which the last block will +
525 /// be filled up if the size of the data to be processed cannot be divided +
526 /// by block size without reminder. Means: if the last block is not +
527 /// completely filled with data. +
528 /// </param> +
529 procedure Init(const Key: RawByteString; const IVector: RawByteString = ''; IFiller: Byte = $FF); overload; +
530 {$IFDEF ANSISTRINGSUPPORTED} +
531 /// <summary> +
532 /// Initializes the cipher with the necessary encryption/decryption key. +
533 /// Only for use with the classic desktop compilers. +
534 /// </summary> +
535 /// <param name="Key"> +
536 /// Encryption/decryption key. Recommended/required key length is dependant +
537 /// on the concrete algorithm. +
538 /// </param> +
539 /// <param name="IVector"> +
540 /// Initialization vector. This contains the values the first block of +
541 /// data to be processed is linked with. This is being done the same way +
542 /// as the 2nd block of the data to be processed will be linked with the +
543 /// first block and so on and this is dependant on the cypher mode set via +
544 /// Mode property +
545 /// </param> +
546 /// <param name="IFiller"> +
547 /// optional parameter defining the value with which the last block will +
548 /// be filled up if the size of the data to be processed cannot be divided +
549 /// by block size without reminder. Means: if the last block is not +
550 /// completely filled with data. +
551 /// </param> +
552 procedure Init(const Key: AnsiString; const IVector: AnsiString = ''; IFiller: Byte = $FF); overload; +
553 {$ENDIF} +
554 {$IFNDEF NEXTGEN} +
555 /// <summary> +
556 /// Initializes the cipher with the necessary encryption/decryption key. +
557 /// Only for use with the classic desktop compilers. +
558 /// </summary> +
559 /// <param name="Key"> +
560 /// Encryption/decryption key. Recommended/required key length is dependant +
561 /// on the concrete algorithm. +
562 /// </param> +
563 /// <param name="IVector"> +
564 /// Initialization vector. This contains the values the first block of +
565 /// data to be processed is linked with. This is being done the same way +
566 /// as the 2nd block of the data to be processed will be linked with the +
567 /// first block and so on and this is dependant on the cypher mode set via +
568 /// Mode property +
569 /// </param> +
570 /// <param name="IFiller"> +
571 /// optional parameter defining the value with which the last block will +
572 /// be filled up if the size of the data to be processed cannot be divided +
573 /// by block size without reminder. Means: if the last block is not +
574 /// completely filled with data. +
575 /// </param> +
576 procedure Init(const Key: WideString; const IVector: WideString = ''; IFiller: Byte = $FF); overload; +
577 {$ENDIF} +
578 +
579 /// <summary> +
580 /// Properly finishes the cryptographic operation. It needs to be called +
581 /// at the end of encrypting or decrypting data, otherwise the last block +
582 /// or last byte of the data will not be properly processed. +
583 /// </summary> +
584 procedure Done; virtual; +
585 +
586 // Encoding / Decoding Routines +
587 // Do not add further methods of that kind here! If needed add them to +
588 // TDECFormattedCipher in DECCipherFormats or inherit from that one. +
589 +
590 /// <summary> +
591 /// Encrypts the contents of a RawByteString. This method is deprecated +
592 /// and should be replaced by a variant expecting TBytes as source in +
593 /// order to not support mistreating strings as binary buffers. +
594 /// </summary> +
595 /// <remarks> +
596 /// This is the direct successor of the EncodeBinary method from DEC 5.2. +
597 /// When block chaining mode ECBx is used +
598 /// (not recommended!), the size of the data passed via this parameter +
599 /// needs to be a multiple of the block size of the algorithm used, +
600 /// otherwise a EDECCipherException exception will be raised! +
601 /// </remarks> +
602 /// <param name="Source"> +
603 /// The data to be encrypted +
604 /// </param> +
605 /// <param name="Format"> +
606 /// Optional parameter. Here a formatting method can be passed. The +
607 /// resulting encrypted data will be formatted with this function, if one +
608 /// has been passed. Examples are hex or base 64 formatting. +
609 /// </param> +
610 /// <returns> +
611 /// Encrypted data. Init must have been called previously. +
612 /// </returns> +
613 /// <exception cref="EDECCipherException"> +
614 /// Exception raised if the length of the data passed as <c>Source</c> +
615 /// is not a multiple of the algorithm's block size. +
616 /// </exception> +
617 function EncodeRawByteString(const Source: RawByteString; +
618 Format: TDECFormatClass = nil): RawByteString; +
619 deprecated; // please use EncodeBytes functions now +
620 // or TCipherFormats.EncodeStringToString +
621 /// <summary> +
622 /// Decrypts the contents of a RawByteString. This method is deprecated +
623 /// and should be replaced by a variant expecting TBytes as source in +
624 /// order to not support mistreating strings as binary buffers. +
625 /// </summary> +
626 /// <remarks> +
627 /// This is the direct successor of the DecodeBinary method from DEC 5.2 +
628 /// When block chaining mode ECBx is used +
629 /// (not recommended!), the size of the data passed via this parameter +
630 /// needs to be a multiple of the block size of the algorithm used, +
631 /// otherwise a EDECCipherException exception will be raised! +
632 /// </remarks> +
633 /// <param name="Source"> +
634 /// The data to be decrypted +
635 /// </param> +
636 /// <param name="Format"> +
637 /// Optional parameter. Here a formatting method can be passed. The +
638 /// data to be decrypted will be formatted with this function, if one +
639 /// has been passed. Examples are hex or base 64 formatting. +
640 /// This is used for removing a formatting applied by the EncodeRawByteString +
641 /// method. +
642 /// </param> +
643 /// <returns> +
644 /// Decrypted data. Init must have been called previously. +
645 /// </returns> +
646 /// <exception cref="EDECCipherException"> +
647 /// Exception raised if the length of the data passed as <c>Source</c> +
648 /// is not a multiple of the algorithm's block size. +
649 /// </exception> +
650 function DecodeRawByteString(const Source: RawByteString; +
651 Format: TDECFormatClass = nil): RawByteString; deprecated; // please use DecodeBytes functions now +
652 +
653 /// <summary> +
654 /// Encrypts the contents of a ByteArray. +
655 /// </summary> +
656 /// <param name="Source"> +
657 /// The data to be encrypted. When block chaining mode ECBx is used +
658 /// (not recommended!), the size of the data passed via this parameter +
659 /// needs to be a multiple of the block size of the algorithm used, +
660 /// otherwise a EDECCipherException exception will be raised! +
661 /// </param> +
662 /// <param name="Format"> +
663 /// Optional parameter. Here a formatting method can be passed. The +
664 /// resulting encrypted data will be formatted with this function, if one +
665 /// has been passed. Examples are hex or base 64 formatting. +
666 /// </param> +
667 /// <returns> +
668 /// Encrypted data. Init must have been called previously. +
669 /// </returns> +
670 /// <exception cref="EDECCipherException"> +
671 /// Exception raised if the length of the data passed as <c>Source</c> +
672 /// is not a multiple of the algorithm's block size. +
673 /// </exception> +
674 function EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes; +
675 /// <summary> +
676 /// Decrypts the contents of a ByteArray. +
677 /// </summary> +
678 /// <param name="Source"> +
679 /// The data to be decrypted. When block chaining mode ECBx is used +
680 /// (not recommended!), the size of the data passed via this parameter +
681 /// needs to be a multiple of the block size of the algorithm used, +
682 /// otherwise a EDECCipherException exception will be raised! +
683 /// </param> +
684 /// <param name="Format"> +
685 /// Optional parameter. Here a formatting method can be passed. The +
686 /// data to be decrypted will be formatted with this function, if one +
687 /// has been passed. Examples are hex or base 64 formatting. +
688 /// This is used for removing a formatting applied by the EncodeRawByteString +
689 /// method. +
690 /// </param> +
691 /// <returns> +
692 /// Decrypted data. Init must have been called previously. +
693 /// </returns> +
694 /// <exception cref="EDECCipherException"> +
695 /// Exception raised if the length of the data passed as <c>Source</c> +
696 /// is not a multiple of the algorithm's block size. +
697 /// </exception> +
698 function DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes; +
699 +
700 // CalcMACBytes deferred since the current implementation would neither be +
701 // performant (that would require another TFormatBase.Encode variant from +
702 // pointer to TBytes and that would require a new method name as overloads +
703 // may not differ in return values only and it would require a lot of unit +
704 // tests to get implemented. Deferred in particular also due to not yet +
705 // really understanding the purpose of CalcMAC +
706// function CalcMACByte(Format: TDECFormatClass = nil): TBytes; overload; +
707 +
708 // Deprecated directive commented out, as replacement CalcMACByte has not +
709 // been implemented yet, see remark above. Use case for CalcMAC is not clear +
710 // yet either. +
711 function CalcMAC(Format: TDECFormatClass = nil): RawByteString; overload; //deprecated; // please use the TBytes based overload; +
712 +
713 // properties +
714 +
715 /// <summary> +
716 /// Provides the size of the initialization vector in bytes. +
717 /// </summary> +
718 property InitVectorSize: Integer +
719 read FBufferSize; +
720 /// <summary> +
721 /// Provides access to the contents of the initialization vector +
722 /// </summary> +
723 property InitVector: PByteArray +
724 read FInitializationVector; +
725 +
726 /// <summary> +
727 /// Cipher modes are used to derive a stream cipher from block cipher +
728 /// algorithms. For this something from the last entrypted block (or for +
729 /// the first block from the vector) is used in the encryption of the next +
730 /// block. It may be XORed with the next block cipher text for instance. +
731 /// That data "going into the next block encryption" is stored in this +
732 /// feedback array. The size usually depends on the block size of the +
733 /// cipher algorithm. +
734 /// </summary> +
735 property Feedback: PByteArray +
736 read FFeedback; +
737 /// <summary> +
738 /// Allows to query the current internal processing state +
739 /// </summary> +
740 property State: TCipherState +
741 read FState; +
742 /// <summary> +
743 /// Mode used for padding data to be encrypted/decrypted. See TCipherMode. +
744 /// </summary> +
745 property Mode: TCipherMode +
746 read GetMode +
747 write SetMode; +
748 +
749 /// <summary> +
750 /// Mode used for filling up an incomplete last block in a block cipher +
751 /// </summary> +
752 property FillMode: TBlockFillMode +
753 read FFillMode +
754 write FFillMode; +
755 end; +
756 +
757/// <summary> +
758/// Returns the passed cipher class type if it is not nil. Otherwise the +
759/// class type class set per SetDefaultCipherClass is being returned. If using +
760/// the DECCiphers unit that one registers TCipher_Null in the initialization +
761/// </summary> +
762/// <param name="CipherClass"> +
763/// Class type of a cipher class like TCipher_Blowfish or nil, if no +
764/// encryption/decryption is desired. +
765/// </param> +
766/// <returns> +
767/// Passed class type or defined default cipher class type, depending on +
768/// CipherClass parameter value. +
769/// </returns> +
770function ValidCipher(CipherClass: TDECCipherClass = nil): TDECCipherClass; +
771 +
772/// <summary> +
773/// Defines which cipher class to return by ValidCipher if passing nil to that +
774/// </summary> +
775/// <param name="CipherClass"> +
776/// Class type of a cipher class to return by ValidCipher if passing nil to +
777/// that one. This parameter should not be nil! +
778/// </param> +
779procedure SetDefaultCipherClass(CipherClass: TDECCipherClass); +
780 +
781/// <summary> +
782/// Provides information whether a certain block concatenation mode +
783/// provides authentication functionality or not. +
784/// </summary> +
785/// <param name="BlockMode"> +
786/// Block mode to check fo authentication features +
787/// </param> +
788/// <returns> +
789/// true if the selected block mode is one providing authentication features +
790/// as well +
791/// </returns> +
792function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean; +
793 +
794implementation +
795 +
796uses +
797 {$IFDEF FPC} +
798 TypInfo, +
799 {$ELSE} +
800 System.TypInfo, +
801 {$ENDIF} +
802 DECTypes, DECUtil; +
803 +
804{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
805{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF} +
806 +
807resourcestring +
808 sAlreadyPadded = 'Cipher has already been padded, cannot process message'; +
809 sInvalidState = 'Cipher is not in valid state for this action'; +
810 sNoKeyMaterialGiven = 'No Keymaterial given (Security Issue)'; +
811 sKeyMaterialTooLarge = 'Keymaterial is too large for use (Security Issue)'; +
812 sIVMaterialTooLarge = 'Initvector is too large for use (Security Issue)'; +
813 sInvalidMACMode = 'Invalid Cipher mode to compute MAC'; +
814 sCipherNoDefault = 'No default cipher has been registered'; +
815 +
816var +
817 /// <summary> +
818 /// Cipher class returned by ValidCipher if nil is passed as parameter to it +
819 /// </summary> +
820 FDefaultCipherClass: TDECCipherClass = nil; +
821 +
822function ValidCipher(CipherClass: TDECCipherClass): TDECCipherClass; +
823begin +
824 if CipherClass <> nil then +
825 Result := CipherClass +
826 else +
827 Result := FDefaultCipherClass; +
828 +
829 if Result = nil then +
830 raise EDECCipherException.CreateRes(@sCipherNoDefault); +
831end; +
832 +
833procedure SetDefaultCipherClass(CipherClass: TDECCipherClass); +
834begin +
835 Assert(Assigned(CipherClass), 'Do not set a nil default cipher class!'); +
836 +
837 FDefaultCipherClass := CipherClass; +
838end; +
839 +
840function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean; +
841begin +
842 Result := BlockMode = cmGCM; +
843end; +
844 +
845{ TDECCipher } +
846 +
847constructor TDECCipher.Create; +
848var +
849 MustAdditionalBufferSave: Boolean; +
850begin +
851 inherited Create; +
852 +
853 FBufferSize := Context.BufferSize; +
854 FAdditionalBufferSize := Context.AdditionalBufferSize; +
855 MustAdditionalBufferSave := Context.NeedsAdditionalBufferBackup; +
856 +
857 // Initialization vector, feedback, buffer, additional buffer +
858 FDataSize := FBufferSize * 3 + FAdditionalBufferSize; +
859 +
860 if MustAdditionalBufferSave then +
861 // if contents of the FAdditionalBuffer needs to be saved increase buffer size +
862 // by FAdditionalBufferSize so FAdditionalBuffer and then FAdditionalBufferBackup +
863 // fit in the buffer +
864 Inc(FDataSize, FAdditionalBufferSize); +
865 +
866 // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help +
867 FData := ReallocMemory(FData, FDataSize); +
868 FInitializationVector := @FData[0]; +
869 FInitVectorSize := 0; +
870 FFeedback := @FInitializationVector[FBufferSize]; +
871 FBuffer := @FFeedback[FBufferSize]; +
872 FAdditionalBuffer := @FBuffer[FBufferSize]; +
873 +
874 if MustAdditionalBufferSave then +
875 // buffer contents: FData, then FFeedback, then FBuffer then FAdditionalBuffer +
876 FAdditionalBufferBackup := @PByteArray(FAdditionalBuffer)[FAdditionalBufferSize] +
877 else +
878 FAdditionalBufferBackup := nil; +
879 +
880 FFillMode := fmByte; +
881 FState := csNew; +
882 +
883 SecureErase; +
884end; +
885 +
886destructor TDECCipher.Destroy; +
887begin +
888 SecureErase; +
889 // FreeMem instead of ReallocMemory which produced a memory leak. ReallocMemory +
890 // was used instead of ReallocMem due to C++ compatibility as per 10.1 help +
891 FreeMem(FData, FDataSize); +
892 FInitializationVector := nil; +
893 FFeedback := nil; +
894 FBuffer := nil; +
895 FAdditionalBuffer := nil; +
896 FAdditionalBufferBackup := nil; +
897 inherited Destroy; +
898end; +
899 +
900procedure TDECCipher.SetMode(Value: TCipherMode); +
901begin +
902 if Value <> FMode then +
903 begin +
904 if not (FState in [csNew, csInitialized, csDone]) then +
905 Done; +
906 +
907 FMode := Value; +
908 InitMode; +
909 end; +
910end; +
911 +
912procedure TDECCipher.CheckState(States: TCipherStates); +
913begin +
914 if not (FState in States) then +
915 begin +
916 if FState = csPadded then +
917 raise EDECCipherException.CreateRes(@sAlreadyPadded) +
918 else +
919 raise EDECCipherException.CreateRes(@sInvalidState); +
920 end; +
921end; +
922 +
923class function TDECCipher.ClassByIdentity(Identity: Int64): TDECCipherClass; +
924begin +
925 result := TDECCipherClass(ClassList.ClassByIdentity(Identity)); +
926end; +
927 +
928class function TDECCipher.ClassByName(const Name: string): TDECCipherClass; +
929begin +
930 result := TDECCipherClass(ClassList.ClassByName(Name)); +
931end; +
932 +
933class function TDECCipher.Context: TCipherContext; +
934begin +
935 // C++ does not support virtual static functions thus the base cannot be +
936 // marked 'abstract'. This is our workaround: +
937 raise EDECAbstractError.Create(GetShortClassName); +
938end; +
939 +
940procedure TDECCipher.Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte); +
941var +
942 OriginalInitVector : TBytes; +
943begin +
944 FState := csNew; +
945 FInitVectorSize := IVectorSize; +
946 SecureErase; +
947 +
948 if (Size > Context.KeySize) and (not (ctNull in Context.CipherType)) then +
949 raise EDECCipherException.CreateRes(@sKeyMaterialTooLarge); +
950 +
951 if (FInitVectorSize > FBufferSize) and (not (FMode = cmGCM)) then +
952 raise EDECCipherException.CreateRes(@sIVMaterialTooLarge); +
953 +
954 DoInit(Key, Size); +
955 if FAdditionalBufferBackup <> nil then +
956 // create backup of FBuffer +
957 Move(FAdditionalBuffer^, FAdditionalBufferBackup^, FAdditionalBufferSize); +
958 +
959 FillChar(FInitializationVector^, FBufferSize, IFiller); +
960 +
961 SetLength(OriginalInitVector, IVectorSize); +
962 if (IVectorSize > 0) then +
963 Move(IVector, OriginalInitVector[0], IVectorSize); +
964 +
965 // GCM needs same treatment as empty IV even if IV specified +
966 if (IVectorSize = 0) or (FMode = cmGCM) then +
967 begin +
968 DoEncode(FInitializationVector, FInitializationVector, FBufferSize); +
969 if FAdditionalBufferBackup <> nil then +
970 // Restore backup fo FBuffer +
971 Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize); +
972 end +
973 else +
974 Move(IVector, FInitializationVector^, IVectorSize); +
975 +
976 OnAfterInitVectorInitialization(OriginalInitVector); +
977 +
978 Move(FInitializationVector^, FFeedback^, FBufferSize); +
979 +
980 FState := csInitialized; +
981end; +
982 +
983procedure TDECCipher.Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF); +
984begin +
985 // GCM allows empty key as the authentication still works +
986 if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and +
987 (not (FMode = cmGCM)) then +
988 raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven); +
989 +
990 if IVector <> nil then +
991 Init(Key[0], Length(Key), IVector[0], Length(IVector), IFiller) +
992 else +
993 Init(Key[0], Length(Key), NullStr, 0, IFiller); +
994end; +
995 +
996procedure TDECCipher.Init(const Key : RawByteString; +
997 const IVector : RawByteString = ''; +
998 IFiller : Byte = $FF); +
999begin +
1000 // GCM allows empty key as the authentication still works +
1001 if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and +
1002 (not (FMode = cmGCM)) then +
1003 raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven); +
1004 +
1005 if Length(IVector) > 0 then +
1006 {$IF CompilerVersion >= 24.0} +
1007 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), +
1008 IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller) +
1009 {$ELSE} +
1010 Init(Key[1], Length(Key) * SizeOf(Key[1]), +
1011 IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller) +
1012 {$IFEND} +
1013 else +
1014 {$IF CompilerVersion >= 24.0} +
1015 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller); +
1016 {$ELSE} +
1017 Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller); +
1018 {$IFEND} +
1019end; +
1020 +
1021 +
1022{$IFDEF ANSISTRINGSUPPORTED} +
1023procedure TDECCipher.Init(const Key, IVector: AnsiString; IFiller: Byte); +
1024begin +
1025 if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) then +
1026 raise EDECCipherException.Create(sNoKeyMaterialGiven); +
1027 +
1028 if Length(IVector) > 0 then +
1029 {$IF CompilerVersion >= 24.0} +
1030 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), +
1031 IVector[Low(IVector)], Length(IVector) * SizeOf(Low(IVector)), IFiller) +
1032 {$ELSE} +
1033 Init(Key[1], Length(Key) * SizeOf(Key[Low(Key)]), +
1034 IVector[IVector[1]], Length(IVector) * SizeOf(IVector[1]), IFiller) +
1035 {$IFEND} +
1036 else +
1037 {$IF CompilerVersion >= 24.0} +
1038 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller); +
1039 {$ELSE} +
1040 Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller); +
1041 {$IFEND} +
1042end; +
1043{$ENDIF} +
1044 +
1045 +
1046{$IFNDEF NEXTGEN} +
1047procedure TDECCipher.Init(const Key, IVector: WideString; IFiller: Byte); +
1048begin +
1049 // GCM allows empty key as the authentication still works +
1050 if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and +
1051 (not (FMode = cmGCM)) then +
1052 raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven); +
1053 +
1054 if Length(IVector) > 0 then +
1055 {$IF CompilerVersion >= 24.0} +
1056 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), +
1057 IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller) +
1058 {$ELSE} +
1059 Init(Key[1], Length(Key) * SizeOf(Key[1]), +
1060 IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller) +
1061 {$IFEND} +
1062 else +
1063 {$IF CompilerVersion >= 24.0} +
1064 Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller); +
1065 {$ELSE} +
1066 Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller); +
1067 {$IFEND} +
1068end; +
1069{$ENDIF} +
1070 +
1071function TDECCipher.IsAuthenticated: Boolean; +
1072begin +
1073 Result := IsAuthenticatedBlockMode(FMode); +
1074end; +
1075 +
1076procedure TDECCipher.Done; +
1077begin +
1078 if FState <> csDone then +
1079 begin +
1080 FState := csDone; +
1081 FBufferIndex := 0; +
1082 DoEncode(FFeedback, FBuffer, FBufferSize); +
1083 Move(FInitializationVector^, FFeedback^, FBufferSize); +
1084 if FAdditionalBufferBackup <> nil then +
1085 Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize); +
1086 end; +
1087end; +
1088 +
1089procedure TDECCipher.SecureErase; +
1090begin +
1091 ProtectBuffer(FData[0], FDataSize); +
1092end; +
1093 +
1094function TDECCipher.EncodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString; +
1095var +
1096 b : TBytes; +
1097begin +
1098 SetLength(b, 0); +
1099 if Length(Source) > 0 then +
1100 begin +
1101 {$IF CompilerVersion >= 24.0} +
1102 SetLength(b, Length(Source) * SizeOf(Source[Low(Source)])); +
1103 DoEncode(@Source[low(Source)], @b[0], Length(Source) * SizeOf(Source[low(Source)])); +
1104 {$ELSE} +
1105 SetLength(b, Length(Source) * SizeOf(Source[1])); +
1106 DoEncode(@Source[1], @b[0], Length(Source) * SizeOf(Source[1])); +
1107 {$IFEND} +
1108 Result := BytesToRawString(ValidFormat(Format).Encode(b)); +
1109 end; +
1110end; +
1111 +
1112function TDECCipher.GetMode: TCipherMode; +
1113begin +
1114 Result := FMode; +
1115end; +
1116 +
1117function TDECCipher.EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes; +
1118begin +
1119 SetLength(Result, 0); +
1120 if Length(Source) > 0 then +
1121 begin +
1122 SetLength(Result, Length(Source) * SizeOf(Source[0])); +
1123 DoEncode(@Source[0], @Result[0], Length(Source) * SizeOf(Source[0])); +
1124 Result := ValidFormat(Format).Encode(Result); +
1125 end; +
1126end; +
1127 +
1128function TDECCipher.DecodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString; +
1129var +
1130 b : TBytes; +
1131begin +
1132 SetLength(Result, 0); +
1133 if Length(Source) > 0 then +
1134 begin +
1135 // Delphi 10.1 Berlin and 10.2 Tokyo will issue a W1057 implicit string +
1136 // conversion warning here because the RawByteString BytesOf function is by +
1137 // mistake in a $IFNDEF NEXTGEN block. See QP report: +
1138 // https://quality.embarcadero.com/browse/RSP-20574 +
1139 // This has been fixed in 10.3.0 Rio +
1140 b := ValidFormat(Format).Decode(BytesOf(Source)); +
1141 +
1142 {$IF CompilerVersion >= 24.0} +
1143 DoDecode(@b[0], @Result[Low(Result)], Length(Result) * SizeOf(Result[Low(Result)])); +
1144 {$ELSE} +
1145 DoDecode(@b[0], @Result[1], Length(Result) * SizeOf(Result[1])); +
1146 {$IFEND} +
1147 end; +
1148end; +
1149 +
1150function TDECCipher.DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes; +
1151begin +
1152 SetLength(Result, 0); +
1153 if Length(Source) > 0 then +
1154 begin +
1155 Result := ValidFormat(Format).Decode(Source); +
1156 DoDecode(@Result[0], @Result[0], Length(Result) * SizeOf(Result[0])); +
1157 end; +
1158end; +
1159 +
1160 +
1161function TDECCipher.CalcMAC(Format: TDECFormatClass): RawByteString; +
1162begin +
1163 Done; +
1164 if FMode in [cmECBx] then +
1165 raise EDECException.CreateRes(@sInvalidMACMode) +
1166 else +
1167 Result := ValidFormat(Format).Encode(FBuffer^, FBufferSize); +
1168 { TODO : How to rewrite? EncodeBytes cannot be called directly like that } +
1169end; +
1170 +
1171//function TDECCipher.CalcMACByte(Format: TDECFormatClass): TBytes; +
1172//begin +
1173// Done; +
1174// if FMode in [cmECBx] then +
1175// raise EDECCipherException.Create(sInvalidMACMode) +
1176// else +
1177// begin +
1178// Result := System.SysUtils.BytesOf(ValidFormat(Format).Encode(FBuffer^, FBufferSize)); +
1179// end; +
1180//end; +
1181 +
1182{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
1183{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
1184 +
1185{$IFDEF DELPHIORBCB} +
1186procedure ModuleUnload(Instance: NativeUInt); +
1187var // automaticaly deregistration/releasing +
1188 i: Integer; +
1189 Items: TArray<TPair<Int64, TDECCLass>>; +
1190begin +
1191 // C++Builder calls this function for our own module, but we destroy the ClassList +
1192 // in that case in the finalization section anyway. +
1193 if (Instance <> HInstance) and +
1194 (TDECCipher.ClassList <> nil) and (TDECCipher.ClassList.Count > 0) then +
1195 begin +
1196 Items := TDECCipher.ClassList.ToArray; +
1197 for i := Length(Items) - 1 downto 0 do +
1198 begin +
1199 if FindClassHInstance(Items[i].Value) = HINST(HInstance) then +
1200 TDECCipher.ClassList.Remove(Items[i].Key); +
1201 end; +
1202 end; +
1203end; +
1204{$ENDIF DELPHIORBCB} +
1205 +
1206initialization +
1207 // Code for packages and dynamic extension of the class registration list +
1208 {$IFDEF DELPHIORBCB} +
1209 AddModuleUnloadProc(ModuleUnload); +
1210 {$ENDIF DELPHIORBCB} +
1211 +
1212 TDECCipher.ClassList := TDECClassList.Create; +
1213 +
1214finalization +
1215 // Ensure no further instances of classes registered in the registraiotn list +
1216 // are possible through the list after this unit has been unloaded by unloding +
1217 // the package this unit is in +
1218 {$IFDEF DELPHIORBCB} +
1219 RemoveModuleUnloadProc(ModuleUnload); +
1220 {$ENDIF DELPHIORBCB} +
1221 +
1222 TDECCipher.ClassList.Free; +
1223end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCipherFormats(DECCipherFormats.pas).html b/Unit Tests/CodeCoverage/Output/DECCipherFormats(DECCipherFormats.pas).html new file mode 100644 index 00000000..fad33400 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCipherFormats(DECCipherFormats.pas).html @@ -0,0 +1,1265 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherFormats (..\..\Source\DECCipherFormats.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCipherFormats.pas

+
Number of lines covered151
Number of lines with code gen171
Line coverage88.3 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECCipherFormats; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23uses +
24 {$IFDEF FPC} +
25 SysUtils, Classes, +
26 {$ELSE} +
27 System.SysUtils, System.Classes, +
28 {$ENDIF} +
29 DECCipherBase, DECCipherModes, +
30 DECUtil, DECTypes, DECFormatBase, DECCipherInterface; +
31 +
32type +
33 /// <summary> +
34 /// Class type of the cipher base class which adds the additional Calc +
35 /// variants for additional data types. +
36 /// </summary> +
37 TDECFormattedCipherClass = class of TDECFormattedCipher; +
38 +
39 /// <summary> +
40 /// Class in which the various encode/decode variants provided have been +
41 /// moved in order to keep the base cipher class small and clean. +
42 /// </summary> +
43 TDECFormattedCipher = class(TDECCipherModes, IDECCipher) +
44 private +
45 /// <summary> +
46 /// Encrypts or decrypts the data contained in a given stream +
47 /// </summary> +
48 /// <param name="Source"> +
49 /// Source stream containing the data to encrypt or to decrypt +
50 /// </param> +
51 /// <param name="Dest"> +
52 /// Destination stream, where the encrypted or decrypted data shall be put in +
53 /// </param> +
54 /// <param name="DataSize"> +
55 /// Number of bytes of Source to be encrypted or decrypted +
56 /// </param> +
57 /// <param name="CipherProc"> +
58 /// Callback which either encrypts or decrypts the stream, depending on +
59 /// which one is being passed +
60 /// </param> +
61 /// <param name="OnProgress"> +
62 /// optional callback for reporting progress of the operation +
63 /// </param> +
64 procedure DoEncodeDecodeStream(const Source, Dest: TStream; DataSize: Int64; +
65 const CipherProc: TDECCipherCodeEvent; +
66 const OnProgress: TDECProgressEvent); +
67 +
68 /// <summary> +
69 /// Encrypts or decrypts a file and stores the result in another file +
70 /// </summary> +
71 /// <param name="SourceFileName"> +
72 /// Path and name of the file to encrypt +
73 /// </param> +
74 /// <param name="DestFileName"> +
75 /// Path and name of the file the encrypted data shall be stored in +
76 /// </param> +
77 /// <param name="Proc"> +
78 /// This method does the actual encrypting or decrypting of the data. +
79 /// Usually the Encode or Decode method is being passed here which is +
80 /// declared in TDECCipherBase as virtual abstract method and +
81 /// implemented in the individual cipher class inheriting from this one +
82 /// </param> +
83 /// <param name="OnProgress"> +
84 /// Optional event which can be passed to get information about the +
85 /// progress of the encryption operation +
86 /// </param> +
87 procedure DoEncodeDecodeFile(const SourceFileName, DestFileName: string; +
88 const Proc: TDECCipherCodeEvent; +
89 const OnProgress: TDECProgressEvent); +
90 public +
91 /// <summary> +
92 /// Encrypts the contents of a given byte array +
93 /// </summary> +
94 /// <param name="Source"> +
95 /// Byte array with data to be encrypted. When block chaining mode ECBx +
96 /// is used (not recommended!), the size of the data passed via this +
97 /// parameter needs to be a multiple of the block size of the algorithm used, +
98 /// otherwise a EDECCipherException exception will be raised! +
99 /// </param> +
100 /// <returns> +
101 /// Byte array with encrypted data +
102 /// </returns> +
103 /// <exception cref="EDECCipherException"> +
104 /// Exception raised if the length of the data passed as <c>Source</c> +
105 /// is not a multiple of the algorithm's block size. +
106 /// </exception> +
107 function EncodeBytes(const Source: TBytes): TBytes; +
108 +
109 /// <summary> +
110 /// Decrypts the contents of a given byte array +
111 /// </summary> +
112 /// <param name="Source"> +
113 /// Byte array with data to be decrypted. When block chaining mode ECBx +
114 /// is used (not recommended!), the size of the data passed via this +
115 /// parameter needs to be a multiple of the block size of the algorithm used, +
116 /// otherwise a EDECCipherException exception will be raised! +
117 /// </param> +
118 /// <returns> +
119 /// Byte array with decrypted data +
120 /// </returns> +
121 /// <exception cref="EDECCipherException"> +
122 /// Exception raised if the length of the data passed as <c>Source</c> +
123 /// is not a multiple of the algorithm's block size. +
124 /// </exception> +
125 function DecodeBytes(const Source: TBytes): TBytes; +
126 +
127 /// <summary> +
128 /// Encrypts the data contained in a given stream +
129 /// </summary> +
130 /// <param name="Source"> +
131 /// Source stream containing the data to encrypt. When block chaining mode ECBx +
132 /// is used (not recommended!), the size of the data passed via this +
133 /// parameter needs to be a multiple of the block size of the algorithm used, +
134 /// otherwise a EDECCipherException exception will be raised! +
135 /// </param> +
136 /// <param name="Dest"> +
137 /// Destination stream, where the encrypted data shall be put in +
138 /// </param> +
139 /// <param name="DataSize"> +
140 /// Number of bytes of Source to be encrypted +
141 /// </param> +
142 /// <param name="OnProgress"> +
143 /// optional callback for reporting progress of the operation +
144 /// </param> +
145 /// <exception cref="EDECCipherException"> +
146 /// Exception raised if the length of the data passed as <c>Source</c> +
147 /// is not a multiple of the algorithm's block size. +
148 /// </exception> +
149 procedure EncodeStream(const Source, Dest: TStream; DataSize: Int64; +
150 const OnProgress: TDECProgressEvent = nil); +
151 +
152 /// <summary> +
153 /// Decrypts the data contained in a given stream +
154 /// </summary> +
155 /// <param name="Source"> +
156 /// Source stream containing the data to decrypt. When block chaining mode ECBx +
157 /// is used (not recommended!), the size of the data passed via this +
158 /// parameter needs to be a multiple of the block size of the algorithm used, +
159 /// otherwise a EDECCipherException exception will be raised! +
160 /// </param> +
161 /// <param name="Dest"> +
162 /// Destination stream, where the decrypted data shall be put in +
163 /// </param> +
164 /// <param name="DataSize"> +
165 /// Number of bytes of Source to be decrypted +
166 /// </param> +
167 /// <param name="OnProgress"> +
168 /// optional callback for reporting progress of the operation +
169 /// </param> +
170 /// <exception cref="EDECCipherException"> +
171 /// Exception raised if the length of the data passed as <c>Source</c> +
172 /// is not a multiple of the algorithm's block size. +
173 /// </exception> +
174 procedure DecodeStream(const Source, Dest: TStream; DataSize: Int64; +
175 const OnProgress: TDECProgressEvent = nil); +
176 +
177 /// <summary> +
178 /// Reads the contents of one file, encrypts it and stores it in another file +
179 /// </summary> +
180 /// <param name="SourceFileName"> +
181 /// Path and name of the file to encrypt. When block chaining mode ECBx +
182 /// is used (not recommended!), the size of the data passed via this +
183 /// parameter needs to be a multiple of the block size of the algorithm +
184 /// used, otherwise a EDECCipherException exception will be raised! +
185 /// </param> +
186 /// <param name="DestFileName"> +
187 /// Path and name of the file the encrypted data shall be stored in +
188 /// </param> +
189 /// <param name="OnProgress"> +
190 /// Optional event which can be passed to get information about the +
191 /// progress of the encryption operation +
192 /// </param> +
193 /// <exception cref="EDECCipherException"> +
194 /// Exception raised if the length of the data passed as <c>Source</c> +
195 /// is not a multiple of the algorithm's block size. +
196 /// </exception> +
197 procedure EncodeFile(const SourceFileName, DestFileName: string; +
198 const OnProgress: TDECProgressEvent = nil); +
199 +
200 /// <summary> +
201 /// Reads the contents of one file, decrypts it and stores it in another file +
202 /// </summary> +
203 /// <param name="SourceFileName"> +
204 /// Path and name of the file to decrypt. When block chaining mode ECBx +
205 /// is used (not recommended!), the size of the data passed via this +
206 /// parameter needs to be a multiple of the block size of the algorithm +
207 /// used, otherwise a EDECCipherException exception will be raised! +
208 /// </param> +
209 /// <param name="DestFileName"> +
210 /// Path and name of the file the decrypted data shall be stored in +
211 /// </param> +
212 /// <param name="OnProgress"> +
213 /// Optional event which can be passed to get information about the +
214 /// progress of the decryption operation +
215 /// </param> +
216 /// <exception cref="EDECCipherException"> +
217 /// Exception raised if the length of the data passed as <c>Source</c> +
218 /// is not a multiple of the algorithm's block size. +
219 /// </exception> +
220 procedure DecodeFile(const SourceFileName, DestFileName: string; +
221 const OnProgress: TDECProgressEvent = nil); +
222 +
223 /// <summary> +
224 /// Encrypts the contents of the passed unicode string +
225 /// </summary> +
226 /// <param name="Source"> +
227 /// String to encrypt. When block chaining mode ECBx +
228 /// is used (not recommended!), the size of the data passed via this +
229 /// parameter needs to be a multiple of the block size of the algorithm +
230 /// used, otherwise a EDECCipherException exception will be raised! +
231 /// </param> +
232 /// <param name="Format"> +
233 /// Optional parameter. One can pass a class reference of one of the +
234 /// concrete data formatting classes here which will be internally used +
235 /// to convert the data. Encoded will be the encrypted data, not the +
236 /// source data. Formattings can be used to convert data into a format +
237 /// suitable for the transport medium the data shall be transported with. +
238 /// </param> +
239 /// <returns> +
240 /// Encrypted string as a byte array +
241 /// </returns> +
242 /// <exception cref="EDECCipherException"> +
243 /// Exception raised if the length of the data passed as <c>Source</c> +
244 /// is not a multiple of the algorithm's block size. +
245 /// </exception> +
246 function EncodeStringToBytes(const Source: string; +
247 Format: TDECFormatClass = nil): TBytes; overload; +
248 +
249 /// <summary> +
250 /// Encrypts the contents of the passed RawByteString +
251 /// </summary> +
252 /// <param name="Source"> +
253 /// String to encrypt. When block chaining mode ECBx +
254 /// is used (not recommended!), the size of the data passed via this +
255 /// parameter needs to be a multiple of the block size of the algorithm +
256 /// used, otherwise a EDECCipherException exception will be raised! +
257 /// </param> +
258 /// <param name="Format"> +
259 /// Optional parameter. One can pass a class reference of one of the +
260 /// concrete data formatting classes here which will be internally used +
261 /// to convert the data. Encoded will be the encrypted data, not the +
262 /// source data. Formattings can be used to convert data into a format +
263 /// suitable for the transport medium the data shall be transported with. +
264 /// </param> +
265 /// <returns> +
266 /// Encrypted string as a byte array +
267 /// </returns> +
268 /// <exception cref="EDECCipherException"> +
269 /// Exception raised if the length of the data passed as <c>Source</c> +
270 /// is not a multiple of the algorithm's block size. +
271 /// </exception> +
272 function EncodeStringToBytes(const Source: RawByteString; +
273 Format: TDECFormatClass = nil): TBytes; overload; +
274 +
275 /// <summary> +
276 /// Encrypts the contents of the passed unicode string +
277 /// </summary> +
278 /// <param name="Source"> +
279 /// String to encrypt. When block chaining mode ECBx +
280 /// is used (not recommended!), the size of the data passed via this +
281 /// parameter needs to be a multiple of the block size of the algorithm +
282 /// used, otherwise a EDECCipherException exception will be raised! +
283 /// </param> +
284 /// <param name="Format"> +
285 /// Optional parameter. One can pass a class reference of one of the +
286 /// concrete data formatting classes here which will be internally used +
287 /// to convert the data. Encoded will be the encrypted data, not the +
288 /// source data. Formattings can be used to convert data into a format +
289 /// suitable for the transport medium the data shall be transported with. +
290 /// </param> +
291 /// <returns> +
292 /// Encrypted string +
293 /// </returns> +
294 /// <remarks> +
295 /// The use of this method is only recommended if a formatting is passed +
296 /// which will result in an 7-bit ASCII compatible string as we cannot +
297 /// ensure that Unicode string processing will not alter/interpret some +
298 /// byte combinations in a destructive way, making the encrypted string +
299 /// un-decryptable. +
300 /// </remarks> +
301 /// <exception cref="EDECCipherException"> +
302 /// Exception raised if the length of the data passed as <c>Source</c> +
303 /// is not a multiple of the algorithm's block size. +
304 /// </exception> +
305 function EncodeStringToString(const Source: string; +
306 Format: TDECFormatClass = nil): string; overload; +
307 +
308 /// <summary> +
309 /// Encrypts the contents of the passed unicode string +
310 /// </summary> +
311 /// <param name="Source"> +
312 /// String to encrypt. When block chaining mode ECBx +
313 /// is used (not recommended!), the size of the data passed via this +
314 /// parameter needs to be a multiple of the block size of the algorithm +
315 /// used, otherwise a EDECCipherException exception will be raised! +
316 /// </param> +
317 /// <param name="Format"> +
318 /// Optional parameter. One can pass a class reference of one of the +
319 /// concrete data formatting classes here which will be internally used +
320 /// to convert the data. Encoded will be the encrypted data, not the +
321 /// source data. Formattings can be used to convert data into a format +
322 /// suitable for the transport medium the data shall be transported with. +
323 /// </param> +
324 /// <returns> +
325 /// Encrypted string +
326 /// </returns> +
327 /// <remarks> +
328 /// The use of this method is only recommended if a formatting is passed +
329 /// which will result in an 7-bit ASCII compatible string as we cannot +
330 /// ensure that string processing will not alter/interpret some +
331 /// byte combinations in a destructive way, making the encrypted string +
332 /// un-decryptable. +
333 /// </remarks> +
334 /// <exception cref="EDECCipherException"> +
335 /// Exception raised if the length of the data passed as <c>Source</c> +
336 /// is not a multiple of the algorithm's block size. +
337 /// </exception> +
338 function EncodeStringToString(const Source: RawByteString; +
339 Format: TDECFormatClass = nil): RawByteString; overload; +
340 +
341 /// <summary> +
342 /// Decrypts the contents of the passed encrypted unicode string +
343 /// </summary> +
344 /// <param name="Source"> +
345 /// String to decrypt. When block chaining mode ECBx +
346 /// is used (not recommended!), the size of the data passed via this +
347 /// parameter needs to be a multiple of the block size of the algorithm +
348 /// used, otherwise a EDECCipherException exception will be raised! +
349 /// </param> +
350 /// <param name="Format"> +
351 /// Optional parameter. One can pass a class reference of one of the +
352 /// concrete data formatting classes here which will be internally used +
353 /// to convert the data. Decoded will be the still encrypted data, not the +
354 /// encrypted data. Formattings can be used to convert data into a format +
355 /// suitable for the transport medium the data shall be transported with. +
356 /// </param> +
357 /// <returns> +
358 /// Decrypted string as a byte array +
359 /// </returns> +
360 /// <exception cref="EDECCipherException"> +
361 /// Exception raised if the length of the data passed as <c>Source</c> +
362 /// is not a multiple of the algorithm's block size. +
363 /// </exception> +
364 function DecodeStringToBytes(const Source: string; +
365 Format: TDECFormatClass = nil): TBytes; overload; +
366 +
367 /// <summary> +
368 /// Decrypts the contents of the passed encrypted RawByteString +
369 /// </summary> +
370 /// <param name="Source"> +
371 /// String to decrypt. When block chaining mode ECBx +
372 /// is used (not recommended!), the size of the data passed via this +
373 /// parameter needs to be a multiple of the block size of the algorithm +
374 /// used, otherwise a EDECCipherException exception will be raised! +
375 /// </param> +
376 /// <param name="Format"> +
377 /// Optional parameter. One can pass a class reference of one of the +
378 /// concrete data formatting classes here which will be internally used +
379 /// to convert the data. Decoded will be the still encrypted data, not the +
380 /// encrypted data. Formattings can be used to convert data into a format +
381 /// suitable for the transport medium the data shall be transported with. +
382 /// </param> +
383 /// <returns> +
384 /// Decrypted string as a byte array +
385 /// </returns> +
386 /// <exception cref="EDECCipherException"> +
387 /// Exception raised if the length of the data passed as <c>Source</c> +
388 /// is not a multiple of the algorithm's block size. +
389 /// </exception> +
390 function DecodeStringToBytes(const Source: RawByteString; +
391 Format: TDECFormatClass = nil): TBytes; overload; +
392 +
393 /// <summary> +
394 /// Decrypts the contents of the passed Unicode string +
395 /// </summary> +
396 /// <param name="Source"> +
397 /// String to decrypt. When block chaining mode ECBx +
398 /// is used (not recommended!), the size of the data passed via this +
399 /// parameter needs to be a multiple of the block size of the algorithm +
400 /// used, otherwise a EDECCipherException exception will be raised! +
401 /// </param> +
402 /// <param name="Format"> +
403 /// Optional parameter. One can pass a class reference of one of the +
404 /// concrete data formatting classes here which will be internally used +
405 /// to convert the data. Decoded will be the encrypted data, not the +
406 /// decrypted data. Formattings can be used to convert data into a format +
407 /// suitable for the transport medium the data shall be transported with. +
408 /// </param> +
409 /// <returns> +
410 /// Decrypted string +
411 /// </returns> +
412 /// <remarks> +
413 /// The use of this method is only recommended if a formatting is passed +
414 /// which uses an 7-bit ASCII compatible string as input so that it +
415 /// didn't get altered by Unicode string processing in some hafrmful way +
416 /// </remarks> +
417 /// <exception cref="EDECCipherException"> +
418 /// Exception raised if the length of the data passed as <c>Source</c> +
419 /// is not a multiple of the algorithm's block size. +
420 /// </exception> +
421 function DecodeStringToString(const Source: string; +
422 Format: TDECFormatClass = nil): string; overload; +
423 +
424 /// <summary> +
425 /// Decrypts the contents of the passed RawByteString string +
426 /// </summary> +
427 /// <param name="Source"> +
428 /// String to decrypt. When block chaining mode ECBx +
429 /// is used (not recommended!), the size of the data passed via this +
430 /// parameter needs to be a multiple of the block size of the algorithm +
431 /// used, otherwise a EDECCipherException exception will be raised! +
432 /// </param> +
433 /// <param name="Format"> +
434 /// Optional parameter. One can pass a class reference of one of the +
435 /// concrete data formatting classes here which will be internally used +
436 /// to convert the data. Decoded will be the encrypted data, not the +
437 /// decrypted data. Formattings can be used to convert data into a format +
438 /// suitable for the transport medium the data shall be transported with. +
439 /// </param> +
440 /// <returns> +
441 /// Decrypted string +
442 /// </returns> +
443 /// <remarks> +
444 /// The use of this method is only recommended if a formatting is passed +
445 /// which uses an 7-bit ASCII compatible string as input so that it +
446 /// didn't get altered by string processing in some hafrmful way +
447 /// </remarks> +
448 /// <exception cref="EDECCipherException"> +
449 /// Exception raised if the length of the data passed as <c>Source</c> +
450 /// is not a multiple of the algorithm's block size. +
451 /// </exception> +
452 function DecodeStringToString(const Source: RawByteString; +
453 Format: TDECFormatClass = nil): RawByteString; overload; +
454 +
455{$IFDEF ANSISTRINGSUPPORTED} +
456 /// <summary> +
457 /// Encrypts the contents of the passed Ansistring +
458 /// </summary> +
459 /// <param name="Source"> +
460 /// String to encrypt. When block chaining mode ECBx +
461 /// is used (not recommended!), the size of the data passed via this +
462 /// parameter needs to be a multiple of the block size of the algorithm +
463 /// used, otherwise a EDECCipherException exception will be raised! +
464 /// </param> +
465 /// <param name="Format"> +
466 /// Optional parameter. One can pass a class reference of one of the +
467 /// concrete data formatting classes here which will be internally used +
468 /// to convert the data. Encoded will be the encrypted data, not the +
469 /// source data. Formattings can be used to convert data into a format +
470 /// suitable for the transport medium the data shall be transported with. +
471 /// </param> +
472 /// <returns> +
473 /// Encrypted string as a byte array +
474 /// </returns> +
475 /// <exception cref="EDECCipherException"> +
476 /// Exception raised if the length of the data passed as <c>Source</c> +
477 /// is not a multiple of the algorithm's block size. +
478 /// </exception> +
479 function EncodeStringToBytes(const Source: AnsiString; +
480 Format: TDECFormatClass = nil): TBytes; overload; +
481 +
482 /// <summary> +
483 /// Encrypts the contents of the passed Ansistring +
484 /// </summary> +
485 /// <param name="Source"> +
486 /// String to encrypt. When block chaining mode ECBx +
487 /// is used (not recommended!), the size of the data passed via this +
488 /// parameter needs to be a multiple of the block size of the algorithm +
489 /// used, otherwise a EDECCipherException exception will be raised! +
490 /// </param> +
491 /// <param name="Format"> +
492 /// Optional parameter. One can pass a class reference of one of the +
493 /// concrete data formatting classes here which will be internally used +
494 /// to convert the data. Encoded will be the encrypted data, not the +
495 /// source data. Formattings can be used to convert data into a format +
496 /// suitable for the transport medium the data shall be transported with. +
497 /// </param> +
498 /// <returns> +
499 /// Encrypted string as an AnsiString +
500 /// </returns> +
501 /// <remarks> +
502 /// The use of this method is only recommended if a formatting is passed +
503 /// which will result in an 7-bit ASCII compatible string as we cannot +
504 /// ensure that string processing will not alter/interpret some +
505 /// byte combinations in a destructive way, making the encrypted string +
506 /// un-decryptable. +
507 /// </remarks> +
508 /// <exception cref="EDECCipherException"> +
509 /// Exception raised if the length of the data passed as <c>Source</c> +
510 /// is not a multiple of the algorithm's block size. +
511 /// </exception> +
512 function EncodeStringToString(const Source: AnsiString; +
513 Format: TDECFormatClass = nil): AnsiString; overload; +
514 +
515 /// <summary> +
516 /// Decrypts the contents of the passed encrypted Ansistring +
517 /// </summary> +
518 /// <param name="Source"> +
519 /// String to decrypt. When block chaining mode ECBx +
520 /// is used (not recommended!), the size of the data passed via this +
521 /// parameter needs to be a multiple of the block size of the algorithm +
522 /// used, otherwise a EDECCipherException exception will be raised! +
523 /// </param> +
524 /// <param name="Format"> +
525 /// Optional parameter. One can pass a class reference of one of the +
526 /// concrete data formatting classes here which will be internally used +
527 /// to convert the data. Decoded will be the still encrypted data, not the +
528 /// encrypted data. Formattings can be used to convert data into a format +
529 /// suitable for the transport medium the data shall be transported with. +
530 /// </param> +
531 /// <returns> +
532 /// Decrypted string as a byte array +
533 /// </returns> +
534 /// <exception cref="EDECCipherException"> +
535 /// Exception raised if the length of the data passed as <c>Source</c> +
536 /// is not a multiple of the algorithm's block size. +
537 /// </exception> +
538 function DecodeStringToBytes(const Source: AnsiString; +
539 Format: TDECFormatClass = nil): TBytes; overload; +
540 +
541 /// <summary> +
542 /// Decrypts the contents of the passed AnsiString string +
543 /// </summary> +
544 /// <param name="Source"> +
545 /// String to decrypt. When block chaining mode ECBx +
546 /// is used (not recommended!), the size of the data passed via this +
547 /// parameter needs to be a multiple of the block size of the algorithm +
548 /// used, otherwise a EDECCipherException exception will be raised! +
549 /// </param> +
550 /// <param name="Format"> +
551 /// Optional parameter. One can pass a class reference of one of the +
552 /// concrete data formatting classes here which will be internally used +
553 /// to convert the data. Decoded will be the encrypted data, not the +
554 /// decrypted data. Formattings can be used to convert data into a format +
555 /// suitable for the transport medium the data shall be transported with. +
556 /// </param> +
557 /// <returns> +
558 /// Decrypted string +
559 /// </returns> +
560 /// <remarks> +
561 /// The use of this method is only recommended if a formatting is passed +
562 /// which uses an 7-bit ASCII compatible string as input so that it +
563 /// didn't get altered by string processing in some hafrmful way +
564 /// </remarks> +
565 /// <exception cref="EDECCipherException"> +
566 /// Exception raised if the length of the data passed as <c>Source</c> +
567 /// is not a multiple of the algorithm's block size. +
568 /// </exception> +
569 function DecodeStringToString(const Source: AnsiString; +
570 Format: TDECFormatClass = nil): AnsiString; overload; +
571{$ENDIF} +
572 +
573{$IFNDEF NEXTGEN} +
574 /// <summary> +
575 /// Encrypts the contents of the passed Widestring +
576 /// </summary> +
577 /// <param name="Source"> +
578 /// String to encrypt. When block chaining mode ECBx +
579 /// is used (not recommended!), the size of the data passed via this +
580 /// parameter needs to be a multiple of the block size of the algorithm +
581 /// used, otherwise a EDECCipherException exception will be raised! +
582 /// </param> +
583 /// <param name="Format"> +
584 /// Optional parameter. One can pass a class reference of one of the +
585 /// concrete data formatting classes here which will be internally used +
586 /// to convert the data. Encoded will be the encrypted data, not the +
587 /// source data. Formattings can be used to convert data into a format +
588 /// suitable for the transport medium the data shall be transported with. +
589 /// </param> +
590 /// <returns> +
591 /// Encrypted string as a byte array +
592 /// </returns> +
593 /// <exception cref="EDECCipherException"> +
594 /// Exception raised if the length of the data passed as <c>Source</c> +
595 /// is not a multiple of the algorithm's block size. +
596 /// </exception> +
597 function EncodeStringToBytes(const Source: WideString; +
598 Format: TDECFormatClass = nil): TBytes; overload; +
599 +
600 /// <summary> +
601 /// Encrypts the contents of the passed Widestring +
602 /// </summary> +
603 /// <param name="Source"> +
604 /// String to encrypt. When block chaining mode ECBx +
605 /// is used (not recommended!), the size of the data passed via this +
606 /// parameter needs to be a multiple of the block size of the algorithm +
607 /// used, otherwise a EDECCipherException exception will be raised! +
608 /// </param> +
609 /// <param name="Format"> +
610 /// Optional parameter. One can pass a class reference of one of the +
611 /// concrete data formatting classes here which will be internally used +
612 /// to convert the data. Encoded will be the encrypted data, not the +
613 /// source data. Formattings can be used to convert data into a format +
614 /// suitable for the transport medium the data shall be transported with. +
615 /// </param> +
616 /// <returns> +
617 /// Encrypted string as an WideString +
618 /// </returns> +
619 /// <remarks> +
620 /// The use of this method is only recommended if a formatting is passed +
621 /// which will result in an 7-bit ASCII compatible string as we cannot +
622 /// ensure that string processing will not alter/interpret some +
623 /// byte combinations in a destructive way, making the encrypted string +
624 /// un-decryptable. +
625 /// </remarks> +
626 /// <exception cref="EDECCipherException"> +
627 /// Exception raised if the length of the data passed as <c>Source</c> +
628 /// is not a multiple of the algorithm's block size. +
629 /// </exception> +
630 function EncodeStringToString(const Source: WideString; +
631 Format: TDECFormatClass = nil): WideString; overload; +
632 +
633 /// <summary> +
634 /// Decrypts the contents of the passed encrypted Widestring +
635 /// </summary> +
636 /// <param name="Source"> +
637 /// String to decrypt. When block chaining mode ECBx +
638 /// is used (not recommended!), the size of the data passed via this +
639 /// parameter needs to be a multiple of the block size of the algorithm +
640 /// used, otherwise a EDECCipherException exception will be raised! +
641 /// </param> +
642 /// <param name="Format"> +
643 /// Optional parameter. One can pass a class reference of one of the +
644 /// concrete data formatting classes here which will be internally used +
645 /// to convert the data. Decoded will be the still encrypted data, not the +
646 /// encrypted data. Formattings can be used to convert data into a format +
647 /// suitable for the transport medium the data shall be transported with. +
648 /// </param> +
649 /// <returns> +
650 /// Decrypted string as a byte array +
651 /// </returns> +
652 /// <exception cref="EDECCipherException"> +
653 /// Exception raised if the length of the data passed as <c>Source</c> +
654 /// is not a multiple of the algorithm's block size. +
655 /// </exception> +
656 function DecodeStringToBytes(const Source: WideString; +
657 Format: TDECFormatClass = nil): TBytes; overload; +
658 +
659 /// <summary> +
660 /// Decrypts the contents of the passed WideString string +
661 /// </summary> +
662 /// <param name="Source"> +
663 /// String to decrypt. When block chaining mode ECBx +
664 /// is used (not recommended!), the size of the data passed via this +
665 /// parameter needs to be a multiple of the block size of the algorithm +
666 /// used, otherwise a EDECCipherException exception will be raised! +
667 /// </param> +
668 /// <param name="Format"> +
669 /// Optional parameter. One can pass a class reference of one of the +
670 /// concrete data formatting classes here which will be internally used +
671 /// to convert the data. Decoded will be the encrypted data, not the +
672 /// decrypted data. Formattings can be used to convert data into a format +
673 /// suitable for the transport medium the data shall be transported with. +
674 /// </param> +
675 /// <returns> +
676 /// Decrypted string +
677 /// </returns> +
678 /// <remarks> +
679 /// The use of this method is only recommended if a formatting is passed +
680 /// which uses an 7-bit ASCII compatible string as input so that it +
681 /// didn't get altered by string processing in some hafrmful way +
682 /// </remarks> +
683 /// <exception cref="EDECCipherException"> +
684 /// Exception raised if the length of the data passed as <c>Source</c> +
685 /// is not a multiple of the algorithm's block size. +
686 /// </exception> +
687 function DecodeStringToString(const Source: WideString; +
688 Format: TDECFormatClass = nil): WideString; overload; +
689{$ENDIF} +
690 end; +
691 +
692implementation +
693 +
694uses +
695 DECBaseClass; +
696 +
697function TDECFormattedCipher.EncodeBytes(const Source: TBytes): TBytes; +
698begin +
699 SetLength(Result, Length(Source)); +
700 if Length(Result) > 0 then +
701 Encode(Source[0], Result[0], Length(Source)) +
702 else +
703 if (FMode = cmGCM) then +
704 EncodeGCM(@Source, @Result, 0); +
705end; +
706 +
707function TDECFormattedCipher.DecodeBytes(const Source: TBytes): TBytes; +
708begin +
709 Result := Source; +
710 +
711 if Length(Result) > 0 then +
712 begin +
713 if (FMode = cmGCM) then +
714 SetLength(Result, Length(Source)); +
715 +
716 Decode(Source[0], Result[0], Length(Source)); +
717 end +
718 else +
719 if (FMode = cmGCM) then +
720 DecodeGCM(@Source, @Result, 0); +
721end; +
722 +
723procedure TDECFormattedCipher.DoEncodeDecodeStream(const Source, Dest: TStream; +
724 DataSize: Int64; +
725 const CipherProc: TDECCipherCodeEvent; +
726 const OnProgress: TDECProgressEvent); +
727var +
728 Buffer: TBytes; +
729 outBuffer: TBytes; +
730 BufferSize, Bytes: Integer; +
731 Max, StartPos, Pos: Int64; +
732begin +
733 Pos := Source.Position; +
734 if DataSize < 0 then +
735 DataSize := Source.Size - Pos; +
736 +
737 Max := Pos + DataSize; +
738 StartPos := Pos; +
739 +
740 if DataSize > 0 then +
741 begin +
742 try +
743 if Assigned(OnProgress) then +
744 OnProgress(Max, 0, Started); +
745 +
746 if StreamBufferSize <= 0 then +
747 StreamBufferSize := 8192; +
748 BufferSize := StreamBufferSize mod Context.BlockSize; +
749 if BufferSize = 0 then +
750 BufferSize := StreamBufferSize +
751 else +
752 BufferSize := StreamBufferSize + Context.BlockSize - BufferSize; +
753 if DataSize > BufferSize then +
754 SetLength(Buffer, BufferSize) +
755 else +
756 SetLength(Buffer, DataSize); +
757 +
758 outBuffer := Buffer; +
759 if (FMode = cmGCM) then +
760 SetLength(outBuffer, Length(Buffer)); +
761 +
762 while DataSize > 0 do +
763 begin +
764 Bytes := BufferSize; +
765 if Bytes > DataSize then +
766 Bytes := DataSize; +
767 Source.ReadBuffer(Buffer[0], Bytes); +
768 +
769 // The real encryption or decryption routine +
770 CipherProc(Buffer[0], outBuffer[0], Bytes); +
771 Dest.WriteBuffer(outBuffer[0], Bytes); +
772 Dec(DataSize, Bytes); +
773 Inc(Pos, Bytes); +
774 +
775 if Assigned(OnProgress) then +
776 OnProgress(Max, Pos - StartPos, Processing); +
777 end; +
778 finally +
779 ProtectBytes(Buffer); +
780 if (FMode = cmGCM) then +
781 ProtectBytes(outBuffer); +
782 if Assigned(OnProgress) then +
783 OnProgress(Max, Max, Finished); +
784 end; +
785 end +
786 else +
787 if (FMode = cmGCM) then +
788 begin +
789 Buffer := nil; +
790 CipherProc(Buffer, Buffer, 0); +
791 end; +
792end; +
793 +
794procedure TDECFormattedCipher.EncodeStream(const Source, Dest: TStream; DataSize: Int64; +
795 const OnProgress: TDECProgressEvent); +
796begin +
797 DoEncodeDecodeStream(Source, Dest, DataSize, +
798 Encode, OnProgress); +
799end; +
800 +
801procedure TDECFormattedCipher.DecodeStream(const Source, Dest: TStream; DataSize: Int64; +
802 const OnProgress: TDECProgressEvent); +
803begin +
804 DoEncodeDecodeStream(Source, Dest, DataSize, +
805 Decode, OnProgress); +
806end; +
807 +
808procedure TDECFormattedCipher.DoEncodeDecodeFile(const SourceFileName, DestFileName: string; +
809 const Proc: TDECCipherCodeEvent; +
810 const OnProgress: TDECProgressEvent); +
811var +
812 S, D: TStream; +
813begin +
814 Assert(SourceFileName <> DestFileName, 'Source and Dest file name may not be equal'); +
815 +
816 S := TFileStream.Create(SourceFileName, fmOpenRead or fmShareDenyNone); +
817 try +
818 D := TFileStream.Create(DestFileName, fmCreate); +
819 try +
820 DoEncodeDecodeStream(S, D, S.Size, Proc, OnProgress); +
821 finally +
822 D.Free; +
823 end; +
824 finally +
825 S.Free; +
826 end; +
827end; +
828 +
829procedure TDECFormattedCipher.EncodeFile(const SourceFileName, DestFileName: string; +
830 const OnProgress: TDECProgressEvent); +
831begin +
832 DoEncodeDecodeFile(SourceFileName, DestFileName, Encode, OnProgress); +
833end; +
834 +
835procedure TDECFormattedCipher.DecodeFile(const SourceFileName, DestFileName: string; +
836 const OnProgress: TDECProgressEvent); +
837begin +
838 DoEncodeDecodeFile(SourceFileName, DestFileName, Decode, OnProgress); +
839end; +
840 +
841function TDECFormattedCipher.EncodeStringToBytes(const Source: string; +
842 Format: TDECFormatClass = nil): TBytes; +
843var +
844 Len: Integer; +
845begin +
846 if Length(Source) > 0 then +
847 begin +
848 {$IF CompilerVersion >= 24.0} +
849 Len := Length(Source) * SizeOf(Source[low(Source)]); +
850 SetLength(Result, Len); +
851 Encode(Source[low(Source)], Result[0], Len); +
852 {$ELSE} +
853 Len := Length(Source) * SizeOf(Source[1]); +
854 SetLength(Result, Len); +
855 Encode(Source[1], Result[0], Len); +
856 {$IFEND} +
857 +
858 Result := ValidFormat(Format).Encode(Result); +
859 end +
860 else +
861 SetLength(Result, 0); +
862end; +
863 +
864function TDECFormattedCipher.EncodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes; +
865var +
866 Len: Integer; +
867begin +
868 if Length(Source) > 0 then +
869 begin +
870 {$IF CompilerVersion >= 24.0} +
871 Len := Length(Source) * SizeOf(Source[low(Source)]); +
872 SetLength(Result, Len); +
873 Encode(Source[low(Source)], Result[0], Len); +
874 {$ELSE} +
875 Len := Length(Source) * SizeOf(Source[1]); +
876 SetLength(Result, Len); +
877 Encode(Source[1], Result[0], Len); +
878 {$IFEND} +
879 +
880 Result := ValidFormat(Format).Encode(Result); +
881 end +
882 else +
883 SetLength(Result, 0); +
884end; +
885 +
886function TDECFormattedCipher.DecodeStringToBytes(const Source: string; Format: TDECFormatClass): TBytes; +
887var +
888 Len: Integer; +
889 Src: TBytes; +
890begin +
891 if Length(Source) > 0 then +
892 begin +
893 Src := ValidFormat(Format).Decode(BytesOf(Source)); +
894 +
895 Len := Length(Src); +
896 Result := Src; +
897 Decode(Result[0], Result[0], Len); +
898 end +
899 else +
900 SetLength(Result, 0); +
901end; +
902 +
903function TDECFormattedCipher.DecodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes; +
904var +
905 Len: Integer; +
906 Src: TBytes; +
907begin +
908 if Length(Source) > 0 then +
909 begin +
910 Src := ValidFormat(Format).Decode(BytesOf(Source)); +
911 +
912 Len := Length(Src); +
913 Result := Src; +
914 Decode(Result[0], Result[0], Len); +
915 end +
916 else +
917 SetLength(Result, 0); +
918end; +
919 +
920{$IFDEF ANSISTRINGSUPPORTED} +
921function TDECFormattedCipher.EncodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes; +
922var +
923 Len: Integer; +
924begin +
925 if Length(Source) > 0 then +
926 begin +
927 Len := Length(Source) * SizeOf(Source[1]); +
928 SetLength(Result, Len); +
929 Encode(Source[1], Result[0], Len); +
930 +
931 Result := ValidFormat(Format).Encode(Result); +
932 end +
933 else +
934 SetLength(Result, 0); +
935end; +
936{$ENDIF} +
937 +
938{$IFDEF ANSISTRINGSUPPORTED} +
939function TDECFormattedCipher.DecodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes; +
940var +
941 Len: Integer; +
942 Src: TBytes; +
943begin +
944 if Length(Source) > 0 then +
945 begin +
946 Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source)); +
947 +
948 Len := Length(Src); +
949 SetLength(Result, Len); +
950 Decode(Src[0], Result[0], Len); +
951 end +
952 else +
953 SetLength(Result, 0); +
954end; +
955{$ENDIF} +
956 +
957{$IFNDEF NEXTGEN} +
958function TDECFormattedCipher.EncodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes; +
959var +
960 Len: Integer; +
961begin +
962 if Length(Source) > 0 then +
963 begin +
964 Len := Length(Source) * SizeOf(Source[1]); +
965 SetLength(Result, Len); +
966 Encode(Source[1], Result[0], Len); +
967 +
968 Result := ValidFormat(Format).Encode(Result); +
969 end +
970 else +
971 SetLength(Result, 0); +
972end; +
973 +
974function TDECFormattedCipher.EncodeStringToString(const Source: WideString; +
975 Format: TDECFormatClass): WideString; +
976begin +
977 result := WideString(EncodeStringToString(string(Source), Format)); +
978end; +
979{$ENDIF} +
980 +
981{$IFDEF ANSISTRINGSUPPORTED} +
982function TDECFormattedCipher.EncodeStringToString(const Source: AnsiString; +
983 Format: TDECFormatClass): AnsiString; +
984var +
985 Len : Integer; +
986 EncryptedBuffer : TBytes; +
987 Temp : TBytes; +
988begin +
989 if Length(Source) > 0 then +
990 begin +
991 Len := Length(Source) * SizeOf(Source[1]); +
992 SetLength(EncryptedBuffer, Len); +
993 Encode(Source[1], EncryptedBuffer[0], Len); +
994 +
995 Temp := ValidFormat(Format).Encode(EncryptedBuffer); +
996 SetLength(Result, length(Temp)); +
997 Move(Temp[0], Result[1], length(Temp)); +
998 end +
999 else +
1000 SetLength(Result, 0); +
1001end; +
1002{$ENDIF} +
1003 +
1004function TDECFormattedCipher.EncodeStringToString(const Source: string; +
1005 Format: TDECFormatClass): string; +
1006var +
1007 SourceSize : Integer; +
1008 EncryptedBuffer : TBytes; +
1009begin +
1010 if Length(Source) > 0 then +
1011 begin +
1012 {$IF CompilerVersion >= 24.0} +
1013 SourceSize := Length(Source) * SizeOf(Source[low(Source)]); +
1014 SetLength(EncryptedBuffer, SourceSize); +
1015 Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize); +
1016 {$ELSE} +
1017 SourceSize := Length(Source) * SizeOf(Source[1]); +
1018 SetLength(EncryptedBuffer, SourceSize); +
1019 Encode(Source[1], EncryptedBuffer[0], SourceSize); +
1020 {$IFEND} +
1021 +
1022 Result := StringOf(ValidFormat(Format).Encode(EncryptedBuffer)); +
1023 end +
1024 else +
1025 Result := ''; +
1026end; +
1027 +
1028function TDECFormattedCipher.EncodeStringToString(const Source: RawByteString; +
1029 Format: TDECFormatClass): RawByteString; +
1030var +
1031 SourceSize : Integer; +
1032 EncryptedBuffer : TBytes; +
1033 Temp : TBytes; +
1034begin +
1035 if Length(Source) > 0 then +
1036 begin +
1037 {$IF CompilerVersion >= 24.0} +
1038 SourceSize := Length(Source) * SizeOf(Source[low(Source)]); +
1039 SetLength(EncryptedBuffer, SourceSize); +
1040 Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize); +
1041 {$ELSE} +
1042 SourceSize := Length(Source) * SizeOf(Source[1]); +
1043 SetLength(EncryptedBuffer, SourceSize); +
1044 Encode(Source[1], EncryptedBuffer[0], SourceSize); +
1045 {$IFEND} +
1046 +
1047 Temp := ValidFormat(Format).Encode(EncryptedBuffer); +
1048 SetLength(Result, length(Temp)); +
1049 {$IF CompilerVersion >= 24.0} +
1050 Move(Temp[0], Result[low(Result)], length(Temp)) +
1051 {$ELSE} +
1052 Move(Temp[0], Result[1], length(Temp)) +
1053 {$IFEND} +
1054 end +
1055 else +
1056 Result := ''; +
1057end; +
1058 +
1059{$IFNDEF NEXTGEN} +
1060function TDECFormattedCipher.DecodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes; +
1061var +
1062 Len: Integer; +
1063 Src: TBytes; +
1064begin +
1065 if Length(Source) > 0 then +
1066 begin +
1067 Src := ValidFormat(Format).Decode(BytesOf(Source)); +
1068 +
1069 Len := Length(Src); +
1070 SetLength(Result, Len); +
1071 Decode(Src[0], Result[0], Len); +
1072 end +
1073 else +
1074 SetLength(Result, 0); +
1075end; +
1076{$ENDIF} +
1077 +
1078{$IFDEF ANSISTRINGSUPPORTED} +
1079function TDECFormattedCipher.DecodeStringToString(const Source: AnsiString; +
1080 Format: TDECFormatClass): AnsiString; +
1081var +
1082 Len : Integer; +
1083 Src : TBytes; +
1084 Tmp : TBytes; +
1085begin +
1086 if Length(Source) > 0 then +
1087 begin +
1088 Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source)); +
1089 +
1090 Len := Length(Src); +
1091 SetLength(Tmp, Len); +
1092 Decode(Src[0], Tmp[0], Len); +
1093 +
1094 SetLength(Result, length(Tmp)); +
1095 +
1096 {$IF CompilerVersion >= 24.0} +
1097 Move(Tmp[0], Result[low(Result)], length(Tmp)) +
1098 {$ELSE} +
1099 Move(Tmp[0], Result[1], length(Tmp)) +
1100 {$IFEND} +
1101 end +
1102 else +
1103 SetLength(Result, 0); +
1104end; +
1105{$ENDIF} +
1106 +
1107{$IFNDEF NEXTGEN} +
1108function TDECFormattedCipher.DecodeStringToString(const Source: WideString; +
1109 Format: TDECFormatClass): WideString; +
1110begin +
1111 Result := WideString(DecodeStringToString(string(Source), Format)); +
1112end; +
1113{$ENDIF} +
1114 +
1115function TDECFormattedCipher.DecodeStringToString(const Source: RawByteString; +
1116 Format: TDECFormatClass): RawByteString; +
1117var +
1118 Len : Integer; +
1119 Src : TBytes; +
1120 Tmp : TBytes; +
1121begin +
1122 if Length(Source) > 0 then +
1123 begin +
1124 Src := ValidFormat(Format).Decode(BytesOf(Source)); +
1125 +
1126 Len := Length(Src); +
1127 SetLength(Tmp, Len); +
1128 Decode(Src[0], Tmp[0], Len); +
1129 +
1130 SetLength(Result, length(Tmp)); +
1131 +
1132 {$IF CompilerVersion >= 24.0} +
1133 Move(Tmp[0], Result[low(Result)], length(Tmp)) +
1134 {$ELSE} +
1135 Move(Tmp[0], Result[1], length(Tmp)) +
1136 {$IFEND} +
1137 end +
1138 else +
1139 SetLength(Result, 0); +
1140end; +
1141 +
1142function TDECFormattedCipher.DecodeStringToString(const Source: string; +
1143 Format: TDECFormatClass): string; +
1144var +
1145 Len : Integer; +
1146 Src : TBytes; +
1147 Tmp : TBytes; +
1148begin +
1149 if Length(Source) > 0 then +
1150 begin +
1151 Src := ValidFormat(Format).Decode(BytesOf(Source)); +
1152 +
1153 Len := Length(Src); +
1154 SetLength(Tmp, Len); +
1155 Decode(Src[0], Tmp[0], Len); +
1156 Result := WideStringOf(Tmp); +
1157 end +
1158 else +
1159 SetLength(Result, 0); +
1160end; +
1161 +
1162end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCipherModes(DECCipherModes.pas).html b/Unit Tests/CodeCoverage/Output/DECCipherModes(DECCipherModes.pas).html new file mode 100644 index 00000000..cb3c2428 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCipherModes(DECCipherModes.pas).html @@ -0,0 +1,1382 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherModes (..\..\Source\DECCipherModes.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCipherModes.pas

+
Number of lines covered382
Number of lines with code gen457
Line coverage83.6 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECCipherModes; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23uses +
24 {$IFDEF FPC} +
25 SysUtils, +
26 {$ELSE} +
27 System.SysUtils, +
28 {$ENDIF} +
29 DECTypes, DECCipherBase, DECCipherModesGCM, DECCipherInterface; +
30 +
31type +
32 /// <summary> +
33 /// Class type of the cipher base class implementing all block +
34 /// concatenation modes. +
35 /// </summary> +
36 TDECCipherModesClass = class of TDECCipherModes; +
37 +
38 /// <summary> +
39 /// Most ciphers are block oriented and thus work on blocks of a fixed size. +
40 /// In order to not encrypt each block separately without any link to his +
41 /// predecessor and sucessor, which would make attacks on the encrypted data +
42 /// easier, each block should be linked with his predecessor (or the +
43 /// initialization vector). This class implements the various supported +
44 /// algorithms for linking blocks. +
45 /// </summary> +
46 TDECCipherModes = class(TDECCipher, IDECAuthenticatedCipher) +
47 strict private +
48 /// <summary> +
49 /// Returns the data which shall get authenticated when using a cipher +
50 /// mode which provides authentication support as well. +
51 /// </summary> +
52 /// <returns> +
53 /// Data to be authenticated. Raises an EDECCipherException if this is +
54 /// called for a cipher mode not supporting authentication. +
55 /// </returns> +
56 /// <exception cref="EDECCipherException"> +
57 /// Exception raised if called for a cipher mode not supporting +
58 /// authentication. +
59 /// </exception> +
60 function GetDataToAuthenticate: TBytes; +
61 /// <summary> +
62 /// Returns the length of the resulting authentication value if a +
63 /// cipher mode which provides authentication support as well is used. +
64 /// </summary> +
65 /// <returns> +
66 /// Length of the authentication result in bit. Raises an +
67 /// EDECCipherException if this is called for a cipher mode not supporting +
68 /// authentication. +
69 /// </returns> +
70 /// <exception cref="EDECCipherException"> +
71 /// Exception raised if called for a cipher mode not supporting +
72 /// authentication. +
73 /// </exception> +
74 function GetAuthenticationResultBitLength: Integer; +
75 /// <summary> +
76 /// Returns the value calculated over the data to be authenticated if a +
77 /// cipher mode which provides authentication support as well is used. +
78 /// The value will be returned even if decryption resulted in a wrong value. +
79 /// A wrong authentication result on decryption is signalled via exception. +
80 /// </summary> +
81 /// <returns> +
82 /// Result of the authentication. Raises an EDECCipherException if this is +
83 /// called for a cipher mode not supporting authentication. +
84 /// </returns> +
85 /// <exception cref="EDECCipherException"> +
86 /// Exception raised if called for a cipher mode not supporting +
87 /// authentication. +
88 /// </exception> +
89 function GetCalcAuthenticatonResult: TBytes; +
90 /// <summary> +
91 /// Defines the data which shall get authenticated when using a cipher +
92 /// mode which provides authentication support as well. +
93 /// </summary> +
94 /// <param name="Value"> +
95 /// Data to be authenticated. Raises an EDECCipherException if this is +
96 /// called for a cipher mode not supporting authentication. +
97 /// </param> +
98 /// <exception cref="EDECCipherException"> +
99 /// Exception raised if called for a cipher mode not supporting +
100 /// authentication. +
101 /// </exception> +
102 procedure SetDataToAuthenticate(const Value: TBytes); +
103 /// <summary> +
104 /// Sets the length of the resulting authentication value if a +
105 /// cipher mode which provides authentication support as well is used. +
106 /// </summary> +
107 /// <param name="Value"> +
108 /// Length of the authentication result in bit. Raises an +
109 /// EDECCipherException if this is called for a cipher mode not supporting +
110 /// authentication. +
111 /// </param> +
112 /// <exception cref="EDECCipherException"> +
113 /// Exception raised if called for a cipher mode not supporting +
114 /// authentication. +
115 /// </exception> +
116 procedure SetAuthenticationResultBitLength(const Value: Integer); +
117 /// <summary> +
118 /// Returns the value set as expected authenthication value for ciphers +
119 /// providing authehtication features as well. Raises an +
120 /// EDECCipherException if this is called for a cipher mode not supporting +
121 /// authentication. +
122 /// </summary> +
123 /// <exception cref="EDECCipherException"> +
124 /// Exception raised if called for a cipher mode not supporting +
125 /// authentication. +
126 /// </exception> +
127 function GetExpectedAuthenticationResult: TBytes; +
128 /// <summary> +
129 /// Sets the value used as expected authenthication value when decrypting +
130 /// and a cipher providing authehtication features is being used. Raises an +
131 /// EDECCipherException if this is called for a cipher mode not supporting +
132 /// authentication. +
133 /// </summary> +
134 /// <exception cref="EDECCipherException"> +
135 /// Exception raised if called for a cipher mode not supporting +
136 /// authentication. +
137 /// </exception> +
138 procedure SetExpectedAuthenticationResult(const Value: TBytes); +
139 strict protected +
140 /// <summary> +
141 /// Implementation of the Galois counter mode. Only created when gmGCM is +
142 /// set as mode. +
143 /// </summary> +
144 FGCM : TGCM; +
145 /// <summary> +
146 /// Raises an EDECCipherException exception and provides the correct value +
147 /// for block size in that message +
148 /// </summary> +
149 /// <exception cref="EDECCipherException"> +
150 /// Exception raised unconditionally. +
151 /// </exception> +
152 procedure ReportInvalidMessageLength(Cipher: TDECCipher); +
153 /// <summary> +
154 /// Allows to run code after the initialization vector has been initialized +
155 /// inside the Init call, which is after DoInit has been called. +
156 /// </summary> +
157 /// <param name="OriginalInitVector"> +
158 /// Value of the init vector as originally passed to the Init call without +
159 /// any initialization steps done to/on it +
160 /// </param> +
161 procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); override; +
162 /// <summary> +
163 /// Electronic Code Book +
164 /// Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize +
165 /// and should be used only in 1-byte Streamciphers. +
166 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
167 /// Blockcipher that's equal to Cipher.BlockSize. +
168 /// </summary> +
169 /// <remarks> +
170 /// This mode should not be used in practice, as it makes the encrypted +
171 /// message vulnerable to certain attacks without knowing the encryption key +
172 /// </remarks> +
173 procedure EncodeECBx(Source, Dest: PByteArray; Size: Integer); virtual; +
174 /// <summary> +
175 /// 8bit Output Feedback mode, needs no padding +
176 /// </summary> +
177 procedure EncodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual; +
178 /// <summary> +
179 /// 8 bit Cipher Feedback mode, needs no padding and works on 8 bit +
180 /// Feedback Shift Registers. +
181 /// </summary> +
182 procedure EncodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual; +
183 /// <summary> +
184 /// 8Bit CFS, double Cipher Feedback mode (CFB), needs no padding and +
185 /// works on 8 bit Feedback Shift Registers. +
186 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
187 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
188 /// inputstream into Feedback register. +
189 /// </summary> +
190 procedure EncodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual; +
191 /// <summary> +
192 /// Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding +
193 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
194 /// Blockcipher that's equal to Cipher.BlockSize. +
195 /// </summary> +
196 procedure EncodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual; +
197 /// <summary> +
198 /// Output Feedback mode on Blocksize of Cipher, needs no padding and +
199 /// works on 8 bit Feedback Shift Registers. +
200 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
201 /// Blockcipher that's equal to Cipher.BlockSize. +
202 /// </summary> +
203 procedure EncodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual; +
204 /// <summary> +
205 /// double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding. +
206 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
207 /// Blockcipher that's equal to Cipher.BlockSize. +
208 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
209 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
210 /// inputstream into Feedback register. +
211 /// </summary> +
212 procedure EncodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual; +
213 /// <summary> +
214 /// Cipher Block Chaining, with CFB8 padding of truncated final block +
215 /// It needs no external padding, because internally the last +
216 /// truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes +
217 /// cannot be used to process any more data. If needed to process chunks of +
218 /// data then each chunk must be aligned to Cipher.BufferSize bytes. +
219 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
220 /// Blockcipher that's equal to Cipher.BlockSize. +
221 /// </summary> +
222 procedure EncodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual; +
223 /// <summary> +
224 /// double CBC, with CFS8 padding of truncated final block +
225 /// It needs no external padding, because internally the last +
226 /// truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes +
227 /// cannot be used to process any more data. If needed to process chunks of +
228 /// data then each chunk must be aligned to Cipher.BufferSize bytes. +
229 /// This one works on Blocks of Cipher.BufferSize bytes, when using a +
230 /// Blockcipher that's equal to Cipher.BlockSize. +
231 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
232 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
233 /// inputstream into Feedback register. +
234 /// </summary> +
235 procedure EncodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual; +
236 /// <summary> +
237 /// Galois Counter Mode: encryption with addtional optional authentication. +
238 /// Implemented in its own unit, but needed here to be callable even if +
239 /// source length is 0. +
240 /// </summary> +
241 procedure EncodeGCM(Source, Dest: PByteArray; Size: Integer); virtual; +
242 {$IFDEF DEC3_CMCTS} +
243 /// <summary> +
244 /// double CBC, with +
245 /// for DEC 3.0 compatibility only +
246 /// This is a proprietary mode developed by Frederik Winkelsdorf. It +
247 /// replaces the CFS8 padding of the truncated final block with a CFSx padding. +
248 /// Useful when converting projects that previously used the old DEC v3.0. It +
249 /// has the same restrictions for external padding and chunk processing as +
250 /// cmCTSx has. It has a less secure padding of the truncated final block. +
251 /// (to enable it see DECOptions.inc) +
252 /// </summary> +
253 procedure EncodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual; +
254 {$ENDIF} +
255 /// <summary> +
256 /// Electronic Code Book +
257 /// Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize +
258 /// and should be used only in 1-byte Streamciphers. +
259 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
260 /// blockcipher that's equal to Cipher.BlockSize. +
261 /// </summary> +
262 procedure DecodeECBx(Source, Dest: PByteArray; Size: Integer); virtual; +
263 /// <summary> +
264 /// 8 bit Output Feedback mode, needs no padding +
265 /// </summary> +
266 procedure DecodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual; +
267 /// <summary> +
268 /// 8 bit Cipher Feedback mode, needs no padding and works on 8 bit +
269 /// Feedback Shift Registers. +
270 /// </summary> +
271 procedure DecodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual; +
272 /// <summary> +
273 /// 8 Bit CFS, double Cipher Feedback mode (CFB), needs no padding and +
274 /// works on 8 bit Feedback Shift Registers. +
275 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
276 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
277 /// inputstream into Feedback register. +
278 /// </summary> +
279 procedure DecodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual; +
280 /// <summary> +
281 /// Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding +
282 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
283 /// blockcipher that's equal to Cipher.BlockSize. +
284 /// </summary> +
285 procedure DecodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual; +
286 /// <summary> +
287 /// Output Feedback mode on Blocksize of Cipher, needs no padding and +
288 /// works on 8 bit Feedback Shift Registers. +
289 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
290 /// blockcipher that's equal to Cipher.BlockSize. +
291 /// </summary> +
292 procedure DecodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual; +
293 /// <summary> +
294 /// double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding. +
295 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
296 /// blockcipher that's equal to Cipher.BlockSize. +
297 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
298 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
299 /// inputstream into Feedback register. +
300 /// </summary> +
301 procedure DecodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual; +
302 /// <summary> +
303 /// Cipher Block Chaining, with CFB8 padding of truncated final block. +
304 /// It needs no external padding, because internally the last +
305 /// truncated block is padded by cmCFS8 or cmCFB8. After padding these modes +
306 /// cannot be used to process any more data. If needed to process chunks of +
307 /// data then each chunk must be algined to Cipher.BufferSize bytes. +
308 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
309 /// blockcipher that's equal to Cipher.BlockSize. +
310 /// </summary> +
311 procedure DecodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual; +
312 /// <summary> +
313 /// double CBC, with CFS8 padding of truncated final block +
314 /// It needs no external padding, because internally the last +
315 /// truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes +
316 /// cannot be used to process any more data. If needed to process chunks of +
317 /// data then each chunk must be algined to Cipher.BufferSize bytes. +
318 /// This one works on blocks of Cipher.BufferSize bytes, when using a +
319 /// blockcipher that's equal to Cipher.BlockSize. +
320 /// This one is a proprietary mode developed by Hagen Reddmann. This mode +
321 /// works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the +
322 /// inputstream into feedback register. +
323 /// </summary> +
324 procedure DecodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual; +
325 /// <summary> +
326 /// Galois Counter Mode, details are implemented in DECCipherModesGCM +
327 /// </summary> +
328 procedure DecodeGCM(Source, Dest: PByteArray; Size: Integer); virtual; +
329 {$IFDEF DEC3_CMCTS} +
330 /// <summary> +
331 /// double CBC +
332 /// This is a proprietary mode developed by Frederik Winkelsdorf. It +
333 /// replaces the CFS8 padding of the truncated final block with a CFSx padding. +
334 /// Useful when converting projects that previously used the old DEC v3.0. It +
335 /// has the same restrictions for external padding and chunk processing as +
336 /// cmCTSx has. It has a less secure padding of the truncated final block. +
337 /// (to enable it see DECOptions.inc) +
338 /// </summary> +
339 /// <remarks> +
340 /// For DEC 3.0 compatibility only +
341 /// </remarks> +
342 procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual; +
343 {$ENDIF} +
344 /// <summary> +
345 /// When setting mode to GCM the GCM implementing class instance needs to +
346 /// be created +
347 /// </summary> +
348 procedure InitMode; override; +
349 public +
350 /// <summary> +
351 /// Frees, if necessary, internal objects +
352 /// </summary> +
353 destructor Destroy; override; +
354 /// <summary> +
355 /// Encrypts a given block of data +
356 /// </summary> +
357 /// <param name="Source"> +
358 /// Data to be encrypted +
359 /// </param> +
360 /// <param name="Dest"> +
361 /// Data after encryption +
362 /// </param> +
363 /// <param name="DataSize"> +
364 /// Size of the data the Source parameter points to in byte +
365 /// </param> +
366 procedure Encode(const Source; var Dest; DataSize: Integer); +
367 /// <summary> +
368 /// Decrypts a given block of data +
369 /// </summary> +
370 /// <param name="Source"> +
371 /// Data to be Decrypted +
372 /// </param> +
373 /// <param name="Dest"> +
374 /// Data after decryption +
375 /// </param> +
376 /// <param name="DataSize"> +
377 /// Size of the data the Source parameter points to in byte +
378 /// </param> +
379 procedure Decode(const Source; var Dest; DataSize: Integer); +
380 +
381 /// <summary> +
382 /// Properly finishes the cryptographic operation. It needs to be called +
383 /// at the end of encrypting or decrypting data, otherwise the last block +
384 /// or last byte of the data will not be properly processed. +
385 /// </summary> +
386 procedure Done; override; +
387 +
388 /// <summary> +
389 /// Returns a list of CalculatedAuthenticationResult lengs explicitely +
390 /// specified by the official specification of the standard. +
391 /// </summary> +
392 /// <returns> +
393 /// List of bit lengths. If the cipher mode used is not an authenticated +
394 /// one, the array will just contain a single value of 0. +
395 /// </returns> +
396 function GetStandardAuthenticationTagBitLengths:TStandardBitLengths; +
397 +
398 /// <summary> +
399 /// Some block chaining modes have the ability to authenticate the message +
400 /// in addition to encrypting it. This property contains the data which +
401 /// shall be authenticated in parallel to the encryption. Some authenticated +
402 /// modes still generate an authentication result even if no additional +
403 /// data is supplied via this property, e.g. cmGCM is one of those. +
404 /// </summary> +
405 property DataToAuthenticate : TBytes +
406 read GetDataToAuthenticate +
407 write SetDataToAuthenticate; +
408 +
409 /// <summary> +
410 /// Some block chaining modes have the ability to authenticate the message +
411 /// in addition to encrypting it. +
412 /// Represents the length of CalculatedAuthenticationResult in bit, values +
413 /// as per specification are: 128, 120, 112, 104, or 96 bit. For certain +
414 /// applications, they may be 64 or 32 as well, but the use of these two +
415 /// tag lengths constrains the length of the input data and the lifetime +
416 /// of the key. +
417 /// </summary> +
418 property AuthenticationResultBitLength : Integer +
419 read GetAuthenticationResultBitLength +
420 write SetAuthenticationResultBitLength; +
421 /// <summary> +
422 /// Some block chaining modes have the ability to authenticate the message +
423 /// in addition to encrypting it. This property contains the generated +
424 /// authentication tag. Raises an EDECCipherException if this is +
425 /// called for a cipher mode not supporting authentication. +
426 /// </summary> +
427 /// <exception cref="EDECCipherException"> +
428 /// Exception raised if called for a cipher mode not supporting +
429 /// authentication. +
430 /// </exception> +
431 property CalculatedAuthenticationResult : TBytes +
432 read GetCalcAuthenticatonResult; +
433 +
434 /// <summary> +
435 /// Expected CalculatedAuthenticationResult value, will be compared with +
436 /// actual value when decryption finished. Raises an EDECCipherException +
437 /// if this is called for a cipher mode not supporting authentication. +
438 /// </summary> +
439 /// <exception cref="EDECCipherException"> +
440 /// Exception raised if called for a cipher mode not supporting +
441 /// authentication. +
442 /// </exception> +
443 property ExpectedAuthenticationResult : TBytes +
444 read GetExpectedAuthenticationResult +
445 write SetExpectedAuthenticationResult; +
446 end; +
447 +
448implementation +
449 +
450uses +
451 {$IFDEF FPC} +
452 TypInfo, +
453 {$ELSE} +
454 System.TypInfo, +
455 {$ENDIF} +
456 DECUtil; +
457 +
458resourcestring +
459 sInvalidMessageLength = 'Message length for mode %0:s must be a multiple of %1:d bytes'; +
460 sInvalidBlockSize = 'Block size must be %0:d bit for selected mode %1:s'; +
461 sInvalidModeForMethod = 'Invalid mode for this method. Mode must be %0:s'; +
462 +
463 /// <summary> +
464 /// Exception message when calculated authentication value does not match +
465 /// given expected one +
466 /// </summary> +
467 sInvalidAuthenticationValue = 'Calculated authentication value does not match '+ +
468 'given expected value'; +
469 +
470procedure TDECCipherModes.ReportInvalidMessageLength(Cipher: TDECCipher); +
471begin +
472 raise EDECCipherException.CreateResFmt(@sInvalidMessageLength, +
473 [System.TypInfo.GetEnumName(TypeInfo(TCipherMode), +
474 Integer(Cipher.Mode)), +
475 Cipher.Context.BlockSize]); +
476end; +
477 +
478procedure TDECCipherModes.SetDataToAuthenticate(const Value: TBytes); +
479begin +
480 if (FMode = cmGCM) then +
481 FGCM.DataToAuthenticate := Value +
482 else +
483 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
484end; +
485 +
486procedure TDECCipherModes.SetExpectedAuthenticationResult(const Value: TBytes); +
487begin +
488 if (FMode = cmGCM) then +
489 FGCM.ExpectedAuthenticationTag := Value +
490 else +
491 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
492end; +
493 +
494procedure TDECCipherModes.SetAuthenticationResultBitLength( +
495 const Value: Integer); +
496begin +
497 if (FMode = cmGCM) then +
498 FGCM.AuthenticationTagBitLength := Value +
499 else +
500 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
501end; +
502 +
503procedure TDECCipherModes.Encode(const Source; var Dest; DataSize: Integer); +
504begin +
505 CheckState([csInitialized, csEncode, csDone]); +
506 +
507 case FMode of +
508 cmECBx: EncodeECBx(@Source, @Dest, DataSize); +
509 cmCBCx: EncodeCBCx(@Source, @Dest, DataSize); +
510 cmCTSx: EncodeCTSx(@Source, @Dest, DataSize); +
511 {$IFDEF DEC3_CMCTS} +
512 cmCTS3: EncodeCTS3(@Source, @Dest, DataSize); +
513 {$ENDIF DEC3_CMCTS} +
514 cmCFB8: EncodeCFB8(@Source, @Dest, DataSize); +
515 cmCFBx: EncodeCFBx(@Source, @Dest, DataSize); +
516 cmOFB8: EncodeOFB8(@Source, @Dest, DataSize); +
517 cmOFBx: EncodeOFBx(@Source, @Dest, DataSize); +
518 cmCFS8: EncodeCFS8(@Source, @Dest, DataSize); +
519 cmCFSx: EncodeCFSx(@Source, @Dest, DataSize); +
520 cmGCM : EncodeGCM(@Source, @Dest, DataSize); +
521 end; +
522end; +
523 +
524procedure TDECCipherModes.EncodeECBx(Source, Dest: PByteArray; Size: Integer); +
525var +
526 I: Integer; +
527begin +
528 if Context.BlockSize = 1 then +
529 begin +
530 DoEncode(Source, Dest, Size); +
531 FState := csEncode; +
532 end +
533 else +
534 begin +
535 Dec(Size, FBufferSize); +
536 I := 0; +
537 while I <= Size do +
538 begin +
539 DoEncode(@Source[I], @Dest[I], FBufferSize); +
540 Inc(I, FBufferSize); +
541 end; +
542 Dec(Size, I - FBufferSize); +
543 if Size > 0 then +
544 begin +
545 if Size mod Context.BlockSize = 0 then +
546 begin +
547 DoEncode(@Source[I], @Dest[I], Size); +
548 FState := csEncode; +
549 end +
550 else +
551 begin +
552 FState := csPadded; +
553 ReportInvalidMessageLength(Self); +
554 end; +
555 end; +
556 end; +
557end; +
558 +
559procedure TDECCipherModes.EncodeOFB8(Source, Dest: PByteArray; Size: Integer); +
560var +
561 I: Integer; +
562begin +
563 I := 0; +
564 while I < Size do +
565 begin +
566 DoEncode(FFeedback, FBuffer, FBufferSize); +
567 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
568 FFeedback[FBufferSize - 1] := FBuffer[0]; +
569 Dest[I] := Source[I] xor FBuffer[0]; +
570 Inc(I); +
571 end; +
572 FState := csEncode; +
573end; +
574 +
575procedure TDECCipherModes.EncodeCFB8(Source, Dest: PByteArray; Size: Integer); +
576// CFB-8 +
577var +
578 I: Integer; +
579begin +
580 I := 0; +
581 while I < Size do +
582 begin +
583 DoEncode(FFeedback, FBuffer, FBufferSize); +
584 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
585 Dest[I] := Source[I] xor FBuffer[0]; +
586 FFeedback[FBufferSize - 1] := Dest[I]; +
587 Inc(I); +
588 end; +
589 FState := csEncode; +
590end; +
591 +
592procedure TDECCipherModes.EncodeCFS8(Source, Dest: PByteArray; Size: Integer); +
593// CFS-8, CTS as CFB +
594var +
595 I: Integer; +
596begin +
597 I := 0; +
598 while I < Size do +
599 begin +
600 DoEncode(FFeedback, FBuffer, FBufferSize); +
601 Dest[I] := Source[I] xor FBuffer[0]; +
602 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
603 FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Dest[I]; +
604 Inc(I); +
605 end; +
606 FState := csEncode; +
607end; +
608 +
609procedure TDECCipherModes.EncodeCFBx(Source, Dest: PByteArray; Size: Integer); +
610// CFB-BlockSize +
611var +
612 I: Integer; +
613 F: PByteArray; +
614begin +
615 FState := csEncode; +
616 if FBufferIndex > 0 then +
617 begin +
618 I := FBufferSize - FBufferIndex; +
619 if I > Size then +
620 I := Size; +
621 XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]); +
622 Move(Dest[0], FFeedback[FBufferIndex], I); +
623 Inc(FBufferIndex, I); +
624 if FBufferIndex < FBufferSize then +
625 Exit; +
626 Dec(Size, I); +
627 Source := @Source[I]; +
628 Dest := @Dest[I]; +
629 FBufferIndex := 0 +
630 end; +
631 Dec(Size, FBufferSize); +
632 F := FFeedback; +
633 I := 0; +
634 while I < Size do +
635 begin +
636 DoEncode(F, FBuffer, FBufferSize); +
637 XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]); +
638 F := @Dest[I]; +
639 Inc(I, FBufferSize); +
640 end; +
641 if F <> FFeedback then +
642 Move(F^, FFeedback^, FBufferSize); +
643 Dec(Size, I - FBufferSize); +
644 if Size > 0 then +
645 begin +
646 DoEncode(FFeedback, FBuffer, FBufferSize); +
647 XORBuffers(Source[I], FBuffer[0], Size, Dest[I]); +
648 Move(Dest[I], FFeedback[0], Size); +
649 FBufferIndex := Size; +
650 end; +
651end; +
652 +
653procedure TDECCipherModes.EncodeOFBx(Source, Dest: PByteArray; Size: Integer); +
654// OFB-BlockSize +
655var +
656 I: Integer; +
657begin +
658 FState := csEncode; +
659 if FBufferIndex > 0 then +
660 begin +
661 I := FBufferSize - FBufferIndex; +
662 if I > Size then +
663 I := Size; +
664 XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]); +
665 Inc(FBufferIndex, I); +
666 if FBufferIndex < FBufferSize then +
667 Exit; +
668 Dec(Size, I); +
669 Source := @Source[I]; +
670 Dest := @Dest[I]; +
671 FBufferIndex := 0 +
672 end; +
673 Dec(Size, FBufferSize); +
674 I := 0; +
675 while I < Size do +
676 begin +
677 DoEncode(FFeedback, FFeedback, FBufferSize); +
678 XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]); +
679 Inc(I, FBufferSize); +
680 end; +
681 Dec(Size, I - FBufferSize); +
682 if Size > 0 then +
683 begin +
684 DoEncode(FFeedback, FFeedback, FBufferSize); +
685 XORBuffers(Source[I], FFeedback[0], Size, Dest[I]); +
686 FBufferIndex := Size; +
687 end; +
688end; +
689 +
690function TDECCipherModes.GetDataToAuthenticate: TBytes; +
691begin +
692 if (FMode = cmGCM) then +
693 Result := FGCM.DataToAuthenticate +
694 else +
695 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
696end; +
697 +
698function TDECCipherModes.GetExpectedAuthenticationResult: TBytes; +
699begin +
700 if (FMode = cmGCM) then +
701 Result := FGCM.ExpectedAuthenticationTag +
702 else +
703 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
704end; +
705 +
706function TDECCipherModes.GetStandardAuthenticationTagBitLengths: TStandardBitLengths; +
707begin +
708 case FMode of +
709 cmGCM: Result := FGCM.GetStandardAuthenticationTagBitLengths; +
710 else +
711 begin +
712 SetLength(Result, 1); +
713 Result[0] := 0; +
714 end; +
715 end; +
716end; +
717 +
718function TDECCipherModes.GetAuthenticationResultBitLength: Integer; +
719begin +
720 if (FMode = cmGCM) then +
721 Result := FGCM.AuthenticationTagBitLength +
722 else +
723 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
724end; +
725 +
726function TDECCipherModes.GetCalcAuthenticatonResult: TBytes; +
727begin +
728 if (FMode = cmGCM) then +
729 Result := FGCM.CalculatedAuthenticationTag +
730 else +
731 raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']); +
732end; +
733 +
734procedure TDECCipherModes.InitMode; +
735begin +
736 if FMode = TCipherMode.cmGCM then +
737 begin +
738 if Context.BlockSize = 16 then +
739 FGCM := TGCM.Create +
740 else +
741 // GCM requires a cipher with 128 bit block size +
742 raise EDECCipherException.CreateResFmt(@sInvalidBlockSize, +
743 [128, System.TypInfo.GetEnumName(TypeInfo(TCipherMode), +
744 Integer(FMode))]); +
745 end +
746 else +
747 if Assigned(FGCM) then +
748 FreeAndNil(FGCM); +
749end; +
750 +
751procedure TDECCipherModes.EncodeCFSx(Source, Dest: PByteArray; Size: Integer); +
752// CFS-BlockSize +
753var +
754 I: Integer; +
755begin +
756 FState := csEncode; +
757 if FBufferIndex > 0 then +
758 begin +
759 I := FBufferSize - FBufferIndex; +
760 if I > Size then +
761 I := Size; +
762 XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]); +
763 XORBuffers(Dest[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]); +
764 Inc(FBufferIndex, I); +
765 if FBufferIndex < FBufferSize then +
766 Exit; +
767 Dec(Size, I); +
768 Source := @Source[I]; +
769 Dest := @Dest[I]; +
770 FBufferIndex := 0 +
771 end; +
772 Dec(Size, FBufferSize); +
773 I := 0; +
774 while I < Size do +
775 begin +
776 DoEncode(FFeedback, FBuffer, FBufferSize); +
777 XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]); +
778 XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]); +
779 Inc(I, FBufferSize); +
780 end; +
781 Dec(Size, I - FBufferSize); +
782 if Size > 0 then +
783 begin +
784 DoEncode(FFeedback, FBuffer, FBufferSize); +
785 XORBuffers(Source[I], FBuffer[0], Size, Dest[I]); +
786 XORBuffers(Dest[I], FFeedback[0], Size, FFeedback[0]); +
787 FBufferIndex := Size; +
788 end; +
789end; +
790 +
791procedure TDECCipherModes.EncodeCBCx(Source, Dest: PByteArray; Size: Integer); +
792var +
793 F: PByteArray; +
794 I: Integer; +
795begin +
796 Dec(Size, FBufferSize); +
797 F := FFeedback; +
798 I := 0; +
799 while I <= Size do +
800 begin +
801 XORBuffers(Source[I], F[0], FBufferSize, Dest[I]); +
802 F := @Dest[I]; +
803 DoEncode(F, F, FBufferSize); +
804 Inc(I, FBufferSize); +
805 end; +
806 if F <> FFeedback then +
807 Move(F[0], FFeedback[0], FBufferSize); +
808 Dec(Size, I - FBufferSize); +
809 if Size > 0 then +
810 begin // padding +
811 EncodeCFB8(@Source[I], @Dest[I], Size); +
812 FState := csPadded; +
813 end +
814 else +
815 FState := csEncode; +
816end; +
817 +
818procedure TDECCipherModes.EncodeCTSx(Source, Dest: PByteArray; Size: Integer); +
819var +
820 I: Integer; +
821begin +
822 Dec(Size, FBufferSize); +
823 I := 0; +
824 while I <= Size do +
825 begin +
826 XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]); +
827 DoEncode(@Dest[I], @Dest[I], FBufferSize); +
828 XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]); +
829 Inc(I, FBufferSize); +
830 end; +
831 Dec(Size, I - FBufferSize); +
832 if Size > 0 then +
833 begin // padding +
834 EncodeCFS8(@Source[I], @Dest[I], Size); +
835 FState := csPadded; +
836 end +
837 else +
838 FState := csEncode; +
839end; +
840 +
841procedure TDECCipherModes.EncodeGCM(Source, Dest: PByteArray; Size: Integer); +
842var +
843 PlainText, +
844 CipherText : TBytes; +
845begin +
846 if (Size > 0) then +
847 begin +
848 PlainText := TBytes(@Source^); +
849 CipherText := TBytes(@Dest^); +
850 end +
851 else +
852 begin +
853 SetLength(PlainText, 0); +
854 SetLength(CipherText, 0); +
855 end; +
856 +
857 FGCM.EncodeGCM(PlainText, CipherText, Size); +
858end; +
859 +
860{$IFDEF DEC3_CMCTS} +
861procedure TDECCipherModes.EncodeCTS3(Source, Dest: PByteArray; Size: Integer); +
862var +
863 I: Integer; +
864begin +
865 Dec(Size, FBufferSize); +
866 I := 0; +
867 while I <= Size do +
868 begin +
869 XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]); +
870 DoEncode(@Dest[I], @Dest[I], FBufferSize); +
871 XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]); +
872 Inc(I, FBufferSize); +
873 end; +
874 Dec(Size, I - FBufferSize); +
875 if Size > 0 then +
876 begin // padding +
877 EncodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx +
878 FState := csPadded; +
879 end +
880 else +
881 FState := csEncode; +
882end; +
883{$ENDIF DEC3_CMCTS} +
884 +
885procedure TDECCipherModes.Decode(const Source; var Dest; DataSize: Integer); +
886begin +
887 CheckState([csInitialized, csDecode, csDone]); +
888 +
889 case FMode of +
890 cmECBx: DecodeECBx(@Source, @Dest, DataSize); +
891 cmCBCx: DecodeCBCx(@Source, @Dest, DataSize); +
892 cmCTSx: DecodeCTSx(@Source, @Dest, DataSize); +
893 {$IFDEF DEC3_CMCTS} +
894 cmCTS3: DecodeCTS3(@Source, @Dest, DataSize); +
895 {$ENDIF DEC3_CMCTS} +
896 cmCFB8: DecodeCFB8(@Source, @Dest, DataSize); +
897 cmCFBx: DecodeCFBx(@Source, @Dest, DataSize); +
898 cmOFB8: DecodeOFB8(@Source, @Dest, DataSize); +
899 cmOFBx: DecodeOFBx(@Source, @Dest, DataSize); +
900 cmCFS8: DecodeCFS8(@Source, @Dest, DataSize); +
901 cmCFSx: DecodeCFSx(@Source, @Dest, DataSize); +
902 cmGCM : DecodeGCM(@Source, @Dest, DataSize); +
903 end; +
904end; +
905 +
906procedure TDECCipherModes.DecodeECBx(Source, Dest: PByteArray; Size: Integer); +
907var +
908 I: Integer; +
909begin +
910 if Context.BlockSize = 1 then +
911 begin +
912 DoDecode(Source, Dest, Size); +
913 FState := csDecode; +
914 end +
915 else +
916 begin +
917 Dec(Size, FBufferSize); +
918 I := 0; +
919 while I <= Size do +
920 begin +
921 DoDecode(@Source[I], @Dest[I], FBufferSize); +
922 Inc(I, FBufferSize); +
923 end; +
924 Dec(Size, I - FBufferSize); +
925 if Size > 0 then +
926 begin +
927 if Size mod Context.BlockSize = 0 then +
928 begin +
929 DoDecode(@Source[I], @Dest[I], Size); +
930 FState := csDecode; +
931 end +
932 else +
933 begin +
934 FState := csPadded; +
935 ReportInvalidMessageLength(Self); +
936 end; +
937 end; +
938 end; +
939end; +
940 +
941procedure TDECCipherModes.DecodeGCM(Source, Dest: PByteArray; Size: Integer); +
942var +
943 PlainText, +
944 CipherText : TBytes; +
945begin +
946 if (Size > 0) then +
947 begin +
948 PlainText := TBytes(@Source^); +
949 CipherText := TBytes(@Dest^); +
950 end +
951 else +
952 begin +
953 SetLength(PlainText, 0); +
954 SetLength(CipherText, 0); +
955 end; +
956 +
957 FGCM.DecodeGCM(PlainText, CipherText, Size); +
958end; +
959 +
960procedure TDECCipherModes.DecodeCFB8(Source, Dest: PByteArray; Size: Integer); +
961// CFB-8 +
962var +
963 I: Integer; +
964begin +
965 I := 0; +
966 while I < Size do +
967 begin +
968 DoEncode(FFeedback, FBuffer, FBufferSize); +
969 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
970 FFeedback[FBufferSize - 1] := Source[I]; +
971 Dest[I] := Source[I] xor FBuffer[0]; +
972 Inc(I); +
973 end; +
974 FState := csDecode; +
975end; +
976 +
977procedure TDECCipherModes.DecodeOFB8(Source, Dest: PByteArray; Size: Integer); +
978// same as EncodeOFB +
979var +
980 I: Integer; +
981begin +
982 I := 0; +
983 while I < Size do +
984 begin +
985 DoEncode(FFeedback, FBuffer, FBufferSize); +
986 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
987 FFeedback[FBufferSize - 1] := FBuffer[0]; +
988 Dest[I] := Source[I] xor FBuffer[0]; +
989 Inc(I); +
990 end; +
991 FState := csDecode; +
992end; +
993 +
994procedure TDECCipherModes.DecodeCFS8(Source, Dest: PByteArray; Size: Integer); +
995var +
996 I: Integer; +
997begin +
998 I := 0; +
999 while I < Size do +
1000 begin +
1001 DoEncode(FFeedback, FBuffer, FBufferSize); +
1002 Move(FFeedback[1], FFeedback[0], FBufferSize - 1); +
1003 FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Source[I]; +
1004 Dest[I] := Source[I] xor FBuffer[0]; +
1005 Inc(I); +
1006 end; +
1007 FState := csDecode; +
1008end; +
1009 +
1010procedure TDECCipherModes.DecodeCFBx(Source, Dest: PByteArray; Size: Integer); +
1011// CFB-BlockSize +
1012var +
1013 I: Integer; +
1014 F: PByteArray; +
1015begin +
1016 FState := csDecode; +
1017 if FBufferIndex > 0 then +
1018 begin // remaining bytes of last decode +
1019 I := FBufferSize - FBufferIndex; +
1020 if I > Size then +
1021 I := Size; +
1022 Move(Source[0], FFeedback[FBufferIndex], I); +
1023 XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]); +
1024 Inc(FBufferIndex, I); +
1025 if FBufferIndex < FBufferSize then +
1026 Exit; +
1027 Dec(Size, I); +
1028 Source := @Source[I]; +
1029 Dest := @Dest[I]; +
1030 FBufferIndex := 0 +
1031 end; +
1032 // process chunks of FBufferSize bytes +
1033 Dec(Size, FBufferSize); +
1034 I := 0; +
1035 if Source <> Dest then +
1036 begin +
1037 F := FFeedback; +
1038 while I < Size do +
1039 begin +
1040 DoEncode(F, FBuffer, FBufferSize); +
1041 XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]); +
1042 F := @Source[I]; +
1043 Inc(I, FBufferSize); +
1044 end; +
1045 if F <> FFeedback then +
1046 Move(F^, FFeedback^, FBufferSize); +
1047 end +
1048 else +
1049 while I < Size do +
1050 begin +
1051 DoEncode(FFeedback, FBuffer, FBufferSize); +
1052 Move(Source[I], FFeedback[0], FBufferSize); +
1053 XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]); +
1054 Inc(I, FBufferSize); +
1055 end; +
1056 Dec(Size, I - FBufferSize); +
1057 if Size > 0 then +
1058 begin // remaining bytes +
1059 DoEncode(FFeedback, FBuffer, FBufferSize); +
1060 Move(Source[I], FFeedback[0], Size); +
1061 XORBuffers(Source[I], FBuffer[0], Size, Dest[I]); +
1062 FBufferIndex := Size; +
1063 end; +
1064end; +
1065 +
1066procedure TDECCipherModes.DecodeOFBx(Source, Dest: PByteArray; Size: Integer); +
1067// OFB-BlockSize, same as EncodeOFBx +
1068var +
1069 I: Integer; +
1070begin +
1071 FState := csDecode; +
1072 if FBufferIndex > 0 then +
1073 begin +
1074 I := FBufferSize - FBufferIndex; +
1075 if I > Size then +
1076 I := Size; +
1077 XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]); +
1078 Inc(FBufferIndex, I); +
1079 if FBufferIndex < FBufferSize then +
1080 Exit; +
1081 Dec(Size, I); +
1082 Source := @Source[I]; +
1083 Dest := @Dest[I]; +
1084 FBufferIndex := 0 +
1085 end; +
1086 Dec(Size, FBufferSize); +
1087 I := 0; +
1088 while I < Size do +
1089 begin +
1090 DoEncode(FFeedback, FFeedback, FBufferSize); +
1091 XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]); +
1092 Inc(I, FBufferSize); +
1093 end; +
1094 Dec(Size, I - FBufferSize); +
1095 if Size > 0 then +
1096 begin +
1097 DoEncode(FFeedback, FFeedback, FBufferSize); +
1098 XORBuffers(Source[I], FFeedback[0], Size, Dest[I]); +
1099 FBufferIndex := Size; +
1100 end; +
1101end; +
1102 +
1103destructor TDECCipherModes.Destroy; +
1104begin +
1105 FGCM.Free; +
1106 +
1107 inherited; +
1108end; +
1109 +
1110procedure TDECCipherModes.Done; +
1111begin +
1112 inherited; +
1113 +
1114 if (FMode = cmGCM) then +
1115 begin +
1116 if (length(FGCM.ExpectedAuthenticationTag) > 0) and +
1117 (not IsEqual(FGCM.ExpectedAuthenticationTag, FGCM.CalculatedAuthenticationTag)) then +
1118 raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue); +
1119 end; +
1120end; +
1121 +
1122procedure TDECCipherModes.OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); +
1123begin +
1124 inherited; +
1125 +
1126 if (FMode = cmGCM) then +
1127 FGCM.Init(self.DoEncode, OriginalInitVector); +
1128end; +
1129 +
1130procedure TDECCipherModes.DecodeCFSx(Source, Dest: PByteArray; Size: Integer); +
1131// CFS-BlockSize +
1132var +
1133 I: Integer; +
1134begin +
1135 FState := csDecode; +
1136 if FBufferIndex > 0 then +
1137 begin // remaining bytes of last decode +
1138 I := FBufferSize - FBufferIndex; +
1139 if I > Size then +
1140 I := Size; +
1141 XORBuffers(Source[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]); +
1142 XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]); +
1143 Inc(FBufferIndex, I); +
1144 if FBufferIndex < FBufferSize then +
1145 Exit; +
1146 Dec(Size, I); +
1147 Source := @Source[I]; +
1148 Dest := @Dest[I]; +
1149 FBufferIndex := 0 +
1150 end; +
1151 // process chunks of FBufferSize bytes +
1152 Dec(Size, FBufferSize); +
1153 I := 0; +
1154 while I < Size do +
1155 begin +
1156 DoEncode(FFeedback, FBuffer, FBufferSize); +
1157 XORBuffers(Source[I], FFeedback[0], FBufferSize, FFeedback[0]); +
1158 XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]); +
1159 Inc(I, FBufferSize); +
1160 end; +
1161 Dec(Size, I - FBufferSize); +
1162 if Size > 0 then +
1163 begin // remaining bytes +
1164 DoEncode(FFeedback, FBuffer, FBufferSize); +
1165 XORBuffers(Source[I], FFeedback[0], Size, FFeedback[0]); +
1166 XORBuffers(Source[I], FBuffer[0], Size, Dest[I]); +
1167 FBufferIndex := Size; +
1168 end; +
1169end; +
1170 +
1171procedure TDECCipherModes.DecodeCBCx(Source, Dest: PByteArray; Size: Integer); +
1172var +
1173 I: Integer; +
1174 F, B, T: PByteArray; +
1175begin +
1176 Dec(Size, FBufferSize); +
1177 F := FFeedback; +
1178 I := 0; +
1179 if Source = Dest then +
1180 begin +
1181 B := FBuffer; +
1182 while I <= Size do +
1183 begin +
1184 Move(Source[I], B[0], FBufferSize); +
1185 DoDecode(@Source[I], @Source[I], FBufferSize); +
1186 XORBuffers(Source[I], F[0], FBufferSize, Source[I]); +
1187 T := F; +
1188 F := B; +
1189 B := T; +
1190 Inc(I, FBufferSize); +
1191 end; +
1192 end +
1193 else +
1194 begin +
1195 while I <= Size do +
1196 begin +
1197 DoDecode(@Source[I], @Dest[I], FBufferSize); +
1198 XORBuffers(F[0], Dest[I], FBufferSize, Dest[I]); +
1199 F := @Source[I]; +
1200 Inc(I, FBufferSize); +
1201 end; +
1202 end; +
1203 if F <> FFeedback then +
1204 Move(F[0], FFeedback[0], FBufferSize); +
1205 Dec(Size, I - FBufferSize); +
1206 if Size > 0 then +
1207 begin +
1208 DecodeCFB8(@Source[I], @Dest[I], Size); +
1209 FState := csPadded; +
1210 end +
1211 else +
1212 FState := csDecode; +
1213end; +
1214 +
1215procedure TDECCipherModes.DecodeCTSx(Source, Dest: PByteArray; Size: Integer); +
1216var +
1217 I: Integer; +
1218 F, B, T: PByteArray; +
1219begin +
1220 Dec(Size, FBufferSize); +
1221 F := FFeedback; +
1222 B := FBuffer; +
1223 I := 0; +
1224 while I <= Size do +
1225 begin +
1226 XORBuffers(Source[I], F[0], FBufferSize, B[0]); +
1227 DoDecode(@Source[I], @Dest[I], FBufferSize); +
1228 XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]); +
1229 T := B; +
1230 B := F; +
1231 F := T; +
1232 Inc(I, FBufferSize); +
1233 end; +
1234 if F <> FFeedback then +
1235 Move(F[0], FFeedback[0], FBufferSize); +
1236 Dec(Size, I - FBufferSize); +
1237 if Size > 0 then +
1238 begin +
1239 DecodeCFS8(@Source[I], @Dest[I], Size); +
1240 FState := csPadded; +
1241 end +
1242 else +
1243 FState := csDecode; +
1244end; +
1245 +
1246{$IFDEF DEC3_CMCTS} +
1247procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer); +
1248var +
1249 I: Integer; +
1250 F, B, T: PByteArray; +
1251begin +
1252 Dec(Size, FBufferSize); +
1253 F := FFeedback; +
1254 B := FBuffer; +
1255 I := 0; +
1256 while I <= Size do +
1257 begin +
1258 XORBuffers(Source[I], F[0], FBufferSize, B[0]); +
1259 DoDecode(@Source[I], @Dest[I], FBufferSize); +
1260 XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]); +
1261 T := B; +
1262 B := F; +
1263 F := T; +
1264 Inc(I, FBufferSize); +
1265 end; +
1266 if F <> FFeedback then +
1267 Move(F[0], FFeedback[0], FBufferSize); +
1268 Dec(Size, I - FBufferSize); +
1269 if Size > 0 then +
1270 begin +
1271 DecodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx +
1272 FState := csPadded; +
1273 end +
1274 else +
1275 FState := csDecode; +
1276end; +
1277{$ENDIF DEC3_CMCTS} +
1278 +
1279end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCipherModesGCM(DECCipherModesGCM.pas).html b/Unit Tests/CodeCoverage/Output/DECCipherModesGCM(DECCipherModesGCM.pas).html new file mode 100644 index 00000000..e5b0b801 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCipherModesGCM(DECCipherModesGCM.pas).html @@ -0,0 +1,833 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherModesGCM (..\..\Source\DECCipherModesGCM.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCipherModesGCM.pas

+
Number of lines covered123
Number of lines with code gen126
Line coverage97.6 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECCipherModesGCM; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23uses +
24 {$IFDEF FPC} +
25 SysUtils, +
26 {$ELSE} +
27 System.SysUtils, +
28 {$ENDIF} +
29 DECTypes; +
30 +
31type +
32 /// <summary> +
33 /// 128 bit unsigned integer +
34 /// </summary> +
35 T128 = array[0..1] of UInt64; +
36 /// <summary> +
37 /// pointer to an 128 bit unsigned integer +
38 /// </summary> +
39 P128 = ^T128; +
40 +
41 /// <summary> +
42 /// A methopd of this type needs to be supplied for encrypting or decrypting +
43 /// a block via this GCM algorithm. The method is implemented as a parameter, +
44 /// to avoid the need to bring TGCM in the inheritance chain. TGCM thus can +
45 /// be used for composition instead of inheritance. +
46 /// </summary> +
47 /// <param name="Source"> +
48 /// Data to be encrypted +
49 /// </param> +
50 /// <param name="Dest"> +
51 /// In this memory the encrypted result will be written +
52 /// </param> +
53 /// <param name="Size"> +
54 /// Size of source in byte +
55 /// </param> +
56 TEncodeDecodeMethod = procedure(Source, Dest: Pointer; Size: Integer) of Object; +
57 +
58 /// <summary> +
59 /// Galois Counter Mode specific methods +
60 /// </summary> +
61 TGCM = class(TObject) +
62 private +
63 /// <summary> +
64 /// Empty value? +
65 /// </summary> +
66 nullbytes : T128; +
67 /// <summary> +
68 /// Table with precalculated values +
69 /// </summary> +
70 FM : array[0..15,0..255] of T128; +
71 +
72 /// <summary> +
73 /// Required for creating the table and encryption at least +
74 /// </summary> +
75 FH : T128; +
76 /// <summary> +
77 /// Calculated in initialization +
78 /// </summary> +
79 FY : T128; +
80 /// <summary> +
81 /// Calculated in initialization +
82 /// </summary> +
83 FE_K_Y0 : T128; +
84 +
85 /// <summary> +
86 /// The data which shall be authenticated in parallel to the encryption +
87 /// </summary> +
88 FDataToAuthenticate : TBytes; +
89 /// <summary> +
90 /// Length of the authentication tag to generate in byte +
91 /// </summary> +
92 FCalcAuthenticationTagLength : UInt32; +
93 /// <summary> +
94 /// Generated authentication tag +
95 /// </summary> +
96 FCalcAuthenticationTag : TBytes; +
97 /// <summary> +
98 /// Expected authentication tag value, will be compared with actual value +
99 /// when decryption finished. +
100 /// </summary> +
101 FExpectedAuthenticationTag : TBytes; +
102 +
103 /// <summary> +
104 /// Reference to the encode method of the actual cipher used +
105 /// </summary> +
106 FEncryptionMethod : TEncodeDecodeMethod; +
107 +
108 /// <summary> +
109 /// XOR implementation for unsigned 128 bit numbers +
110 /// </summary> +
111 /// <param name="x"> +
112 /// First number to xor +
113 /// </param> +
114 /// <param name="y"> +
115 /// Second number to xor the first with +
116 /// </param> +
117 /// <returns> +
118 /// x xor y +
119 /// </returns> +
120 function XOR_T128(const x, y: T128): T128; inline; +
121 /// <summary> +
122 /// XOR implementation for a pointer and an unsigned 128 bit number +
123 /// </summary> +
124 /// <param name="x"> +
125 /// Pointer on a T128 typed number to xor with y +
126 /// </param> +
127 /// <param name="y"> +
128 /// Second number to xor the first with +
129 /// </param> +
130 /// <returns> +
131 /// x xor y +
132 /// </returns> +
133 function XOR_PointerWithT128(const x: Pointer; y: T128 ): T128; inline; +
134 /// <summary> +
135 /// XORs the bytes given in a byte array with a T128 number given +
136 /// </summary> +
137 /// <param name="x"> +
138 /// Bytes which shall be XORed with the T128 number +
139 /// </param> +
140 /// <param name="XIndex"> +
141 /// Starting index within x from which onwards to XOR +
142 /// </param> +
143 /// <param name="Count"> +
144 /// Number of bytes from x beginning at XIndex to XOR +
145 /// </param> +
146 /// <param name="y"> +
147 /// Value to XOR the bytes from y with. XOR is done bytewise for each +
148 /// byte of y +
149 /// </param> +
150 /// <param name="Result"> +
151 /// Result of the XOR operation +
152 /// </param> +
153 procedure XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes); inline; +
154 +
155 /// <summary> +
156 /// XORs all elements of the precalculated matrix with the value passed +
157 /// </summary> +
158 /// <param name="hx"> +
159 /// Value who's two parts shall be XORed with the two parts of the +
160 /// matrix each. +
161 /// </param> +
162 /// <returns> +
163 /// result of the XOR Operation +
164 /// </returns> +
165 function poly_mult_H(const hx: T128) : T128; inline; +
166 +
167 /// <summary> +
168 /// Encodes the 64 bit lengths of DataToAuthenticate and of the cipher +
169 /// text into a T128 value, swapping the bytes in the process. +
170 /// </summary> +
171 /// <param name="x"> +
172 /// Result of the operation +
173 /// </param> +
174 /// <param name="AuthDataLength"> +
175 /// Length of the data to authenticate in byte +
176 /// </param> +
177 /// <param name="CipherTextLength"> +
178 /// Length of the ciphertext in byte +
179 /// </param> +
180 procedure SetAuthenticationCipherLength(var x : T128; +
181 AuthDataLength, CipherTextLength : UInt64); inline; +
182 +
183 /// <summary> +
184 /// Calculates a table with precalculated values which speeds up +
185 /// operations later. The initialized table is the FM field. +
186 /// </summary> +
187 /// <param name="H"> +
188 /// Start value for the precalculation +
189 /// </param> +
190 procedure GenerateTableM8Bit(const H: T128); //inline; +
191 /// <summary> +
192 /// Performs a right shift of 1 of all bytes in an 128 bit variable +
193 /// </summary> +
194 /// <param name="rx"> +
195 /// Variable on which the right shift is being performed +
196 /// </param> +
197 procedure ShiftRight(var rx: T128); //inline; +
198 +
199 /// <summary> +
200 /// Incremepts the last 4 bytes of the index 0 part +
201 /// </summary> +
202 /// <param name="Y"> +
203 /// Value to increment, this is the return value as well. +
204 /// </param> +
205 procedure INCR(var Y : T128); +
206 +
207 /// <summary> +
208 /// Defines the length of the resulting authentication value in bit. +
209 /// </summary> +
210 /// <param name="Value"> +
211 /// Sets the length of Authenticaton_tag in bit, values as per specification +
212 /// are: 128, 120, 112, 104, or 96 bit. For certain applications, they +
213 /// may be 64 or 32 as well, but the use of these two tag lengths +
214 /// constrains the length of the input data and the lifetime of the key. +
215 /// </param> +
216 procedure SetAuthenticationTagLength(const Value: UInt32); +
217 /// <summary> +
218 /// Returns the length of the calculated authehtication value in bit +
219 /// </summary> +
220 /// <returns> +
221 /// Length of the calculated authentication value in bit +
222 /// </returns> +
223 function GetAuthenticationTagBitLength: UInt32; +
224 +
225 /// <summary> +
226 /// Calculates the hash value +
227 /// </summary> +
228 /// <param name="AuthenticatedData"> +
229 /// Specifys the data for which an authentication value shall be +
230 /// calculated. It is allowed to be nil. +
231 /// </param> +
232 /// <param name="Ciphertext"> +
233 /// Encrypted data used in the calculation +
234 /// </param> +
235 /// <returns> +
236 /// Calculated raw hash value which will later get returned as AuthenticatedTag +
237 /// </returns> +
238 function CalcGaloisHash(AuthenticatedData, Ciphertext: TBytes): T128; +
239 +
240 /// <summary> +
241 /// Encrypts a T128 value using the encryption method specified on init +
242 /// </summary> +
243 /// <param name="Value"> +
244 /// Value to be encrypted +
245 /// </param> +
246 /// <returns> +
247 /// Encrypted value +
248 /// </returns> +
249 function EncodeT128(Value: T128): T128; +
250 public +
251 /// <summary> +
252 /// Should be called when starting encryption/decryption in order to +
253 /// initialize internal tables etc. +
254 /// </summary> +
255 /// <param name="EncryptionMethod"> +
256 /// Encryption method of the cypher used +
257 /// </param> +
258 /// <param name="InitVector"> +
259 /// Initialization vector +
260 /// </param> +
261 procedure Init(EncryptionMethod : TEncodeDecodeMethod; +
262 InitVector : TBytes); +
263 /// <summary> +
264 /// Encodes a block of data using the supplied cipher +
265 /// </summary> +
266 /// <param name="Source"> +
267 /// Plain text to encrypt +
268 /// </param> +
269 /// <param name="Dest"> +
270 /// Ciphertext after encryption +
271 /// </param> +
272 /// <param name="Size"> +
273 /// Number of bytes to encrypt +
274 /// </param> +
275 procedure EncodeGCM(Source, +
276 Dest : TBytes; +
277 Size : Integer); +
278 /// <summary> +
279 /// Decodes a block of data using the supplied cipher +
280 /// </summary> +
281 /// <param name="Source"> +
282 /// Encrypted ciphertext to decrypt +
283 /// </param> +
284 /// <param name="Dest"> +
285 /// Plaintext after decryption +
286 /// </param> +
287 /// <param name="Size"> +
288 /// Number of bytes to decrypt +
289 /// </param> +
290 procedure DecodeGCM(Source, +
291 Dest : TBytes; +
292 Size : Integer); +
293 +
294 /// <summary> +
295 /// Returns a list of authentication tag lengs explicitely specified by +
296 /// the official specification of the standard. +
297 /// </summary> +
298 /// <returns> +
299 /// List of bit lengths +
300 /// </returns> +
301 function GetStandardAuthenticationTagBitLengths:TStandardBitLengths; +
302 +
303 /// <summary> +
304 /// The data which shall be authenticated in parallel to the encryption +
305 /// </summary> +
306 property DataToAuthenticate : TBytes +
307 read FDataToAuthenticate +
308 write FDataToAuthenticate; +
309 /// <summary> +
310 /// Sets the length of AuthenticatonTag in bit, values as per official +
311 /// specification are: 128, 120, 112, 104, or 96 bit. For certain +
312 /// applications, they may be 64 or 32 as well, but the use of these two +
313 /// tag lengths constrains the length of the input data and the lifetime +
314 /// of the key. +
315 /// </summary> +
316 property AuthenticationTagBitLength : UInt32 +
317 read GetAuthenticationTagBitLength +
318 write SetAuthenticationTagLength; +
319 /// <summary> +
320 /// Calculated authentication value +
321 /// </summary> +
322 property CalculatedAuthenticationTag : TBytes +
323 read FCalcAuthenticationTag +
324 write FCalcAuthenticationTag; +
325 +
326 /// <summary> +
327 /// Expected authentication tag value, will be compared with actual value +
328 /// when decryption finished. +
329 /// </summary> +
330 property ExpectedAuthenticationTag : TBytes +
331 read FExpectedAuthenticationTag +
332 write FExpectedAuthenticationTag; +
333 end; +
334 +
335implementation +
336 +
337function TGCM.XOR_T128(const x, y : T128): T128; +
338begin +
339 Result[0] := x[0] xor y[0]; +
340 Result[1] := x[1] xor y[1]; +
341end; +
342 +
343function TGCM.XOR_PointerWithT128(const x : Pointer; y : T128): T128; +
344begin +
345 Result[0] := P128(x)^[0] xor y[0]; +
346 Result[1] := P128(x)^[1] xor y[1]; +
347end; +
348 +
349procedure TGCM.XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes); +
350var +
351 i : integer; +
352 { TODO : change to a pointer to y[0], to get rid of the absolute? } +
353 by : array[0..15] of byte absolute y[0]; +
354begin +
355 for i := 0 to Count-1 do +
356 begin +
357 Result[XIndex] := x[XIndex] xor by[i]; +
358 inc(XIndex); +
359 end; +
360end; +
361 +
362function TGCM.poly_mult_H(const hx : T128): T128; +
363var +
364 i : integer; +
365 { TODO : change to a pointer to hx[0], to get rid of the absolute? } +
366 x : array[0..15] of byte absolute hx[0]; +
367begin +
368 Result := FM[0, x[0]]; +
369 +
370 for i := 1 to 15 do +
371 begin +
372 Result[0] := Result[0] xor FM[i, x[i]][0]; +
373 Result[1] := Result[1] xor FM[i, x[i]][1]; +
374 end; +
375end; +
376 +
377procedure TGCM.SetAuthenticationCipherLength(var x : T128; +
378 AuthDataLength, CipherTextLength : UInt64); +
379var +
380 i : integer; +
381 { TODO : change to a pointer to x[0], to get rid of the absolute? } +
382 hx : array[0..15] of byte absolute x[0]; +
383begin +
384 // al: +
385 x := nullbytes; +
386 i := 7; +
387 +
388 repeat +
389 hx[i] := AuthDataLength mod 256; +
390 AuthDataLength := AuthDataLength shr 8; +
391 dec(i); +
392 until AuthDataLength = 0; +
393 +
394 // cl: +
395 i := 15; +
396 +
397 repeat +
398 hx[i] := CipherTextLength mod 256; +
399 CipherTextLength := CipherTextLength shr 8; +
400 dec(i); +
401 until CipherTextLength = 0; +
402end; +
403 +
404procedure TGCM.GenerateTableM8Bit(const H : T128); +
405var +
406 hbit, hbyte, i, j : integer; +
407 HP : T128; +
408 { TODO : change to a pointer to HP[0], to get rid of the absolute? } +
409 bHP : array[0..15] of byte absolute HP[0]; +
410 mask : byte; +
411begin +
412 HP := H; +
413 for hbyte := 0 to 15 do +
414 begin +
415 mask := 128; +
416 for hbit := 0 to 7 do +
417 begin +
418 FM[hbyte, mask] := HP; +
419 +
420 if (bHP[15] and 1 = 0) then +
421 ShiftRight(HP) +
422 else +
423 begin +
424 ShiftRight(HP); +
425 bHP[0] := bHP[0] xor $e1; +
426 end; +
427 +
428 mask := mask shr 1; +
429 end; +
430 end; +
431 +
432 for hbyte := 0 to 15 do +
433 begin +
434 i := 2; +
435 +
436 while i <= 128 do +
437 begin +
438 for j := 1 to i-1 do +
439 FM[hbyte, i+j] := XOR_T128(FM[hbyte, i], FM[hbyte, j]); +
440 i := i*2; +
441 end; +
442 +
443 FM[hbyte, 0] := nullbytes; +
444 end; +
445end; +
446 +
447procedure TGCM.ShiftRight(var rx : T128); +
448var +
449 { TODO : change to a pointer to rx[0], to get rid of the absolute? } +
450 x : array[0..15] of byte absolute rx[0]; +
451 i : integer; +
452begin +
453 for i := 15 downto 1 do +
454 x[i] := (x[i] shr 1) or ((x[i-1] and 1) shl 7); +
455 +
456 x[0] := x[0] shr 1; +
457end; +
458 +
459procedure TGCM.SetAuthenticationTagLength(const Value: UInt32); +
460begin +
461 FCalcAuthenticationTagLength := Value shr 3; +
462 SetLength(FCalcAuthenticationTag, FCalcAuthenticationTagLength); +
463end; +
464 +
465procedure TGCM.INCR(var Y : T128); +
466var +
467 { TODO : change to a pointer to Y[0], to get rid of the absolute? } +
468 bY : array[0..15] of byte absolute Y[0]; +
469begin +
470 {$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
471 {$Q-} +
472 inc(bY[15]); +
473 if bY[15] = 0 then +
474 begin +
475 inc(bY[14]); +
476 +
477 if bY[14] = 0 then +
478 begin +
479 inc(bY[13]); +
480 +
481 if bY[13] = 0 then +
482 inc(bY[12]); +
483 end; +
484 end; +
485 {$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
486end; +
487 +
488procedure TGCM.Init(EncryptionMethod : TEncodeDecodeMethod; +
489 InitVector : TBytes); +
490var +
491 b : ^Byte; +
492 OldH : T128; +
493begin +
494 Assert(Assigned(EncryptionMethod), 'No encryption method specified'); +
495 +
496 // Clear calculated authentication value +
497 if (Length(FCalcAuthenticationTag) > 0) then +
498 FillChar(FCalcAuthenticationTag[0], Length(FCalcAuthenticationTag), #0); +
499 +
500 FEncryptionMethod := EncryptionMethod; +
501 +
502 Nullbytes[0] := 0; +
503 Nullbytes[1] := 0; +
504 +
505 OldH := FH; +
506 EncryptionMethod(@Nullbytes[0], @FH[0], 16); +
507 +
508 // Only generate the table when not already generated +
509 if (OldH[0] <> FH[0]) or (OldH[1] <> FH[1]) then +
510 GenerateTableM8Bit(FH); +
511 +
512 if length(InitVector) = 12 then +
513 begin +
514 FY[1] := 0; +
515 Move(InitVector[0], FY[0], 12); +
516 b := @FY[0]; +
517 inc(b, 15); +
518 b^ := 1; +
519 end +
520 else +
521 FY := CalcGaloisHash(nil, InitVector); +
522 +
523 FEncryptionMethod(@FY[0], @FE_K_Y0[0], 16); +
524end; +
525 +
526function TGCM.CalcGaloisHash(AuthenticatedData, Ciphertext : TBytes): T128; +
527var +
528 AuthCipherLength : T128; +
529 x : T128; +
530 n : Uint64; +
531 +
532 procedure encode(data : TBytes); +
533 var +
534 i, mod_d, div_d, len_d : UInt64; +
535 hdata : T128; +
536 begin +
537 len_d := length(data); +
538 if (len_d > 0) then +
539 begin +
540 n := 0; +
541 div_d := len_d div 16; +
542 if div_d > 0 then +
543 begin +
544 { TODO : When 6.5 is started the while should be replaced by the for loop again } +
545// for i := 0 to div_d-1 do +
546 i := 0; +
547 while (i <= div_d-1) do +
548 begin +
549 x := poly_mult_H(XOR_PointerWithT128(@data[n], x )); +
550 inc(n, 16); +
551 { TODO : Remove the inc when 6.5 implementation starts } +
552 inc(i); +
553 end; +
554 end; +
555 +
556 mod_d := len_d mod 16; +
557 if mod_d > 0 then +
558 begin +
559 hdata := nullbytes; +
560 Move(data[n], hdata[0], mod_d); +
561 x := poly_mult_H(XOR_T128(hdata, x)); +
562 end; +
563 end; +
564 end; +
565 +
566begin +
567 x := nullbytes; +
568 encode(AuthenticatedData); +
569 encode(Ciphertext); +
570 SetAuthenticationCipherLength(AuthCipherLength, length(AuthenticatedData) shl 3, length(ciphertext) shl 3); +
571 +
572 Result := poly_mult_H(XOR_T128(AuthCipherLength, x)); +
573end; +
574 +
575procedure TGCM.DecodeGCM(Source, Dest: TBytes; Size: Integer); +
576var +
577 i, j, BlockCount : UInt64; +
578 a_tag : T128; +
579begin +
580 i := 0; +
581 BlockCount := Size div 16; +
582 +
583 for j := 1 to BlockCount do +
584 begin +
585 INCR(FY); +
586 P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY)); +
587 inc(i, 16); +
588 end; +
589 +
590 if i < Size then +
591 begin +
592 INCR(FY); +
593 XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest); +
594 end; +
595 +
596 a_tag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Source), FE_K_Y0); +
597 +
598 Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength); +
599 Move(a_tag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength); +
600 +
601 // Check for correct authentication result is in Done of DECCipherModes +
602 // if not IsEqual(FExpectedAuthenticationTag, FCalcAuthenticationTag) then +
603 // raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue); +
604 +
605 // In difference to the NIST recommendation we do not discard plaintext if +
606 // authentication failed to make data recovery possible. But since we throw +
607 // an exception the user will get notified that there's something wrong +
608 // if not IsEqual(authenticaton_tag, ba_tag) then +
609 // SetLength(plaintext, 0); // NIST FAIL => pt='' +
610end; +
611 +
612procedure TGCM.EncodeGCM(Source, Dest: TBytes; Size: Integer); +
613var +
614 i, j, div_len_plain : UInt64; +
615 AuthTag : T128; +
616begin +
617 i := 0; +
618 div_len_plain := Size div 16; +
619 +
620 { TODO : When 6.5 is started the while should be replaced by the for loop again } +
621// for j := 1 to div_len_plain do +
622 j := 1; +
623 while (j <= div_len_plain) do +
624 begin +
625 INCR(FY); +
626 +
627 P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY)); +
628 +
629 inc(i,16); +
630 { TODO : Remove the inc when 6.5 implementation starts } +
631 inc(j); +
632 end; +
633 +
634 if i < Size then +
635 begin +
636 INCR(FY); +
637 XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest); +
638 end; +
639 +
640 AuthTag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Dest), FE_K_Y0); +
641 Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength); +
642 Move(AuthTag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength); +
643end; +
644 +
645function TGCM.EncodeT128(Value: T128): T128; +
646begin +
647 FEncryptionMethod(@Value[0], @Result[0], 16); +
648end; +
649 +
650function TGCM.GetAuthenticationTagBitLength: UInt32; +
651begin +
652 Result := FCalcAuthenticationTagLength shl 3; +
653end; +
654 +
655function TGCM.GetStandardAuthenticationTagBitLengths: TStandardBitLengths; +
656const +
657 BitLengths : array[0..4] of Uint16 = (96, 104, 112, 120, 128); +
658var +
659 i : integer; +
660begin +
661 SetLength(Result, 5); +
662 { TODO: When 6.5 is started the array can be assigned directly again } +
663 // Result := [96, 104, 112, 120, 128]; +
664 for i := 0 to high(BitLengths) do +
665 result[i] := BitLengths[i]; +
666end; +
667 +
668// +
669//function decrypt( const key, IV : TBytes; out plaintext : TBytes; const authenticated_data, +
670//ciphertext : TBytes; len_auth_tag : integer; const authenticaton_tag : TBytes ) : boolean; +
671//var +
672// i, j, div_len_ciph, len_ciph : Uint64; +
673// a_tag, E_K_Y0, Y, H : T128; +
674// bY : array[0..15] of byte absolute Y[0]; +
675// ba_Tag : TBytes; +
676// +
677// function equal( const a, b : TBytes ):boolean; +
678// begin +
679// if length(a) <> length(b) then Result := false +
680// else +
681// Result := CompareMem( @a[0], @b[0], length(a) ); +
682// end; +
683// +
684//begin +
685// len_auth_tag := len_auth_tag shr 3; +
686// +
687// E_Init( key ); +
688// H := E_Cipher( nullbytes ); +
689// Table_M_8Bit(H); +
690// +
691// len_ciph := length( ciphertext ); +
692// SetLength( plaintext, len_ciph ); +
693// +
694// if length(IV) = 12 then +
695// begin +
696// Y[1] := 0; +
697// Move( IV[0], Y[0], 12 ); +
698// bY[15] := 1; +
699// end +
700// else +
701// Y := CalcGaloisHash( H, nil, IV ); +
702// +
703// E_K_Y0 := E_Cipher( y ); +
704// +
705// i := 0; +
706// div_len_ciph := len_ciph div 16; +
707// for j := 1 to div_len_ciph do +
708// begin +
709// INCR( Y ); +
710// P128(@plaintext[i])^ := XOR_128_n( @ciphertext[i], E_cipher( Y ) ); +
711// inc(i,16); +
712// end; +
713// +
714// if i < len_ciph then +
715// begin +
716// INCR( Y ); +
717// XOR_128_n_l( ciphertext, i, len_ciph-i, E_cipher( Y ), plaintext ); +
718// end; +
719// +
720// a_tag := XOR_128( CalcGaloisHash( H, authenticated_data, ciphertext ), E_K_Y0 ); +
721// +
722// Setlength( ba_tag, len_auth_tag ); +
723// Move( a_tag[0], ba_tag[0], len_auth_tag ); +
724// +
725// Result := equal( authenticaton_tag, ba_tag ); +
726// if not Result then SetLength( plaintext, 0 ); // NIST FAIL => pt='' +
727//end; +
728// +
729 +
730end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCiphers(DECCiphers.pas).html b/Unit Tests/CodeCoverage/Output/DECCiphers(DECCiphers.pas).html new file mode 100644 index 00000000..df44928a --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCiphers(DECCiphers.pas).html @@ -0,0 +1,6946 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCiphers (..\..\Source\DECCiphers.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECCiphers.pas

+
Number of lines covered3147
Number of lines with code gen3257
Line coverage96.6 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECCiphers; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23uses +
24 DECCipherBase, DECCipherFormats, DECUtil, DECTypes; +
25 +
26type +
27 // Cipher Classes +
28 +
29 /// <summary> +
30 /// Null cipher, doesn't encrypt, only copy +
31 /// </summary> +
32 TCipher_Null = class; +
33 /// <summary> +
34 /// A block based encryption algorithm with 32 to 448 bit key length +
35 /// </summary> +
36 TCipher_Blowfish = class; +
37 /// <summary> +
38 /// AES Round 2 Final Candidate +
39 /// </summary> +
40 TCipher_Twofish = class; +
41 /// <summary> +
42 /// International Data Encryption Algorithm, formerly patentet, +
43 /// now patent free. The algorithm is no longer to be really recommended due +
44 /// to some classes of weak keys and other successfull attacks. +
45 /// </summary> +
46 TCipher_IDEA = class; +
47 /// <summary> +
48 /// Carlisle Adams and Stafford Tavares, 256 bit key length +
49 /// </summary> +
50 TCipher_Cast256 = class; +
51 /// <summary> +
52 /// AES Round 2 Final Candidate +
53 /// </summary> +
54 TCipher_Mars = class; +
55 /// <summary> +
56 /// Streamcipher in as Block Cipher +
57 /// </summary> +
58 TCipher_RC4 = class; +
59 /// <summary> +
60 /// AES Round 2 Final Candidate +
61 /// </summary> +
62 TCipher_RC6 = class; +
63 /// <summary> +
64 /// AES Round 2 Final Candidate +
65 /// </summary> +
66 TCipher_Rijndael = class; +
67 /// <summary> +
68 /// AES winner = TCipher_Rijndael +
69 /// </summary> +
70 TCipher_AES = class; +
71 /// <summary> +
72 /// A block cipher invented by Joan Daemen and Vincent Rijmen. The design, +
73 /// published in 1997, is a forerunner to Rijndael, which has been adopted +
74 /// as the Advanced Encryption Standard. Square was introduced together with +
75 /// a new form of cryptanalysis discovered by Lars Knudsen, called the +
76 /// "Square attack". +
77 /// The structure of Square is a substitution-permutation network with eight +
78 /// rounds, operating on 128-bit blocks and using a 128-bit key. +
79 /// </summary> +
80 /// <remarks> +
81 /// If possible use TCipher_AES instead +
82 /// </remarks> +
83 TCipher_Square = class; +
84 /// <summary> +
85 /// Stream Cipher in Blockmode (on UInt32), very fast +
86 /// </summary> +
87 TCipher_SCOP = class; +
88 /// <summary> +
89 /// Stream Cipher in Blockmode (on UInt32), very fast. +
90 /// Wrong old version from DEC 5.2. Use only for backwards compatibility! +
91 /// </summary> +
92 TCipher_SCOP_DEC52 = class; +
93 /// <summary> +
94 /// Stream Cipher, eq. design from German ENIGMA Machine +
95 /// </summary> +
96 TCipher_Sapphire = class; +
97 /// <summary> +
98 /// Single DES 8 byte Blocksize, 8 byte Keysize, 56 bits relevant. +
99 /// Considered to be too weak nowadays. Included for compatibility reasons. +
100 /// </summary> +
101 TCipher_1DES = class; +
102 /// <summary> +
103 /// Double DES 8 byte Blocksize, 16 byte Keysize, 112 bits relevant +
104 /// </summary> +
105 TCipher_2DES = class; +
106 /// <summary> +
107 /// Triple DES 8 byte Blocksize, 24 byte Keysize, 168 bits relevant +
108 /// </summary> +
109 TCipher_3DES = class; +
110 /// <summary> +
111 /// Triple DES 16 byte Blocksize, 16 byte Keysize, 112 bits relevant +
112 /// </summary> +
113 TCipher_2DDES = class; +
114 /// <summary> +
115 /// Triple DES 16 byte Blocksize, 24 byte Keysize, 168 bits relevant +
116 /// </summary> +
117 TCipher_3DDES = class; +
118 /// <summary> +
119 /// Triple DES 24 byte Blocksize, 24 byte Keysize, 168 bits relevant +
120 /// </summary> +
121 TCipher_3TDES = class; +
122 /// <summary> +
123 /// A 1994 developed block cipher using a 96 bit key. 3-Way, is vulnerable +
124 /// to related key cryptanalysis. +
125 /// </summary> +
126 TCipher_3Way = class; +
127 /// <summary> +
128 /// Carlisle Adams and Stafford Tavares, 128 bit key length +
129 /// </summary> +
130 TCipher_Cast128 = class; +
131 /// <summary> +
132 /// Russian Cipher +
133 /// </summary> +
134 TCipher_Gost = class; +
135 /// <summary> +
136 /// Alias/new name for Gost cipher +
137 /// </summary> +
138 TCipher_Magma = class; +
139 /// <summary> +
140 /// Misty1 is a block cipher developed 1995 by Mitsubishi. It is free only for +
141 /// academical and non-profit works in RFC 2994. it is otherwise patented. +
142 /// In 2015 it got broken via integral cryptoanalysis. +
143 /// </summary> +
144 TCipher_Misty = class; +
145 /// <summary> +
146 /// A 1996 block cipher with a key length of 120 bit. It can be broken with +
147 /// a relatively low number of ciphertext/plaintext queries. +
148 /// </summary> +
149 TCipher_NewDES = class; +
150 /// <summary> +
151 /// Camelia, a 128 bit block cipher. +
152 /// Specification: https://info.isl.ntt.co.jp/crypt/eng/camellia/dl/01espec.pdf +
153 /// </summary> +
154 TCipher_Q128 = class; +
155 /// <summary> +
156 /// Rivest Cipher 2, a 1987 developed cipher with a default keysize of 64 bit +
157 /// </summary> +
158 TCipher_RC2 = class; +
159 /// <summary> +
160 /// Rivest Cipher 5, a 1994 developed cipher with emphasis on speed and low +
161 /// size in order to make it efficient on embedded hardware as well. Key sizes +
162 /// of up to 2048 bits are possible but 128 bits are suggested. The algorithm +
163 /// was patented in the US up to 2015. +
164 /// </summary> +
165 TCipher_RC5 = class; +
166 /// <summary> +
167 /// SAFER = Secure And Fast Encryption Routine +
168 /// </summary> +
169 TCipher_SAFER = class; +
170 /// <summary> +
171 /// A 1996 published block cipher with a key size of 128 bits. It was +
172 /// identified as one of the predecessors of Rijndael +
173 /// </summary> +
174 TCipher_Shark = class; +
175 /// <summary> +
176 /// A 1996 published block cipher with a key size of 128 bits. It was +
177 /// identified as one of the predecessors of Rijndael +
178 /// Wrong old version from DEC 5.2. Use only for backwards compatibility! +
179 /// </summary> +
180 TCipher_Shark_DEC52 = class; +
181 /// <summary> +
182 /// A NSA developed and 1998 published block cipher with a key length of +
183 /// 80 bit. Soon after publication various weaknesses have been identified. +
184 /// </summary> +
185 TCipher_Skipjack = class; +
186 /// <summary> +
187 /// Tiny Encryption Algorithm +
188 /// </summary> +
189 TCipher_TEA = class; +
190 /// <summary> +
191 /// Tiny Encryption Algorithm, 1st extended Version +
192 /// </summary> +
193 TCipher_XTEA = class; +
194 /// <summary> +
195 /// = TCipher_XTEA (kept for backward compatibility) +
196 /// </summary> +
197 TCipher_TEAN = class; +
198 /// <summary> +
199 /// Tiny Encryption Algorithm, 1st extended Version. +
200 /// Wrong old version from DEC 5.2. Use only for backwards compatibility! +
201 /// </summary> +
202 TCipher_XTEA_DEC52 = class; +
203 +
204 // Definitions needed for Skipjack algorithm +
205 PSkipjackTab = ^TSkipjackTab; +
206 TSkipjackTab = array[0..255] of Byte; +
207 +
208 /// <summary> +
209 /// A do nothing cipher, usefull for debugging and development purposes. Do +
210 /// not use it for actual encryption as it will not encrypt anything at all! +
211 /// </summary> +
212 TCipher_Null = class(TDECFormattedCipher) +
213 protected +
214 procedure DoInit(const Key; Size: Integer); override; +
215 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
216 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
217 public +
218 /// <summary> +
219 /// Provides meta data about the cipher algorithm used like key size. +
220 /// </summary> +
221 class function Context: TCipherContext; override; +
222 end; +
223 +
224 TCipher_Blowfish = class(TDECFormattedCipher) +
225 protected +
226 /// <summary> +
227 /// Initialize the key, based on the key passed in +
228 /// </summary> +
229 /// <param name="Key"> +
230 /// Encryption/Decryption key to be used +
231 /// </param> +
232 /// <param name="Size"> +
233 /// Size of the key passed in bytes. +
234 /// </param> +
235 procedure DoInit(const Key; Size: Integer); override; +
236 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
237 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
238 public +
239 class function Context: TCipherContext; override; +
240 end; +
241 +
242 TCipher_Twofish = class(TDECFormattedCipher) +
243 protected +
244 /// <summary> +
245 /// Initialize the key, based on the key passed in +
246 /// </summary> +
247 /// <param name="Key"> +
248 /// Encryption/Decryption key to be used +
249 /// </param> +
250 /// <param name="Size"> +
251 /// Size of the key passed in bytes. +
252 /// </param> +
253 procedure DoInit(const Key; Size: Integer); override; +
254 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
255 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
256 public +
257 class function Context: TCipherContext; override; +
258 end; +
259 +
260 TCipher_IDEA = class(TDECFormattedCipher) +
261 protected +
262 /// <summary> +
263 /// Initialize the key, based on the key passed in +
264 /// </summary> +
265 /// <param name="Key"> +
266 /// Encryption/Decryption key to be used +
267 /// </param> +
268 /// <param name="Size"> +
269 /// Size of the key passed in bytes. +
270 /// </param> +
271 procedure DoInit(const Key; Size: Integer); override; +
272 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
273 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
274 public +
275 class function Context: TCipherContext; override; +
276 end; +
277 +
278 TCipher_Cast256 = class(TDECFormattedCipher) +
279 protected +
280 /// <summary> +
281 /// Initialize the key, based on the key passed in +
282 /// </summary> +
283 /// <param name="Key"> +
284 /// Encryption/Decryption key to be used +
285 /// </param> +
286 /// <param name="Size"> +
287 /// Size of the key passed in bytes. +
288 /// </param> +
289 procedure DoInit(const Key; Size: Integer); override; +
290 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
291 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
292 public +
293 class function Context: TCipherContext; override; +
294 end; +
295 +
296 TCipher_Mars = class(TDECFormattedCipher) +
297 protected +
298 /// <summary> +
299 /// Initialize the key, based on the key passed in +
300 /// </summary> +
301 /// <param name="Key"> +
302 /// Encryption/Decryption key to be used +
303 /// </param> +
304 /// <param name="Size"> +
305 /// Size of the key passed in bytes. +
306 /// </param> +
307 procedure DoInit(const Key; Size: Integer); override; +
308 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
309 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
310 public +
311 class function Context: TCipherContext; override; +
312 end; +
313 +
314 /// <summary> +
315 /// This is a well known stream cipher. In February 2015 its use in context +
316 /// of TLS has been forbidden due to severe security issues. +
317 /// </summary> +
318 TCipher_RC4 = class(TDECFormattedCipher) +
319 protected +
320 /// <summary> +
321 /// Initialize the key, based on the key passed in +
322 /// </summary> +
323 /// <param name="Key"> +
324 /// Encryption/Decryption key to be used +
325 /// </param> +
326 /// <param name="Size"> +
327 /// Size of the key passed in bytes. +
328 /// </param> +
329 procedure DoInit(const Key; Size: Integer); override; +
330 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
331 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
332 public +
333 class function Context: TCipherContext; override; +
334 end; +
335 +
336 TCipher_RC6 = class(TDECFormattedCipher) +
337 private +
338 FRounds: Integer; +
339 procedure SetRounds(Value: Integer); +
340 /// <summary> +
341 /// Limits the number of rounds used to a minimum or maximum value, +
342 /// depending on the current value. If FRounds is 0 it will be set to 20. +
343 /// </summary> +
344 procedure LimitRounds; inline; +
345 protected +
346 /// <summary> +
347 /// Initialize the key, based on the key passed in +
348 /// </summary> +
349 /// <param name="Key"> +
350 /// Encryption/Decryption key to be used +
351 /// </param> +
352 /// <param name="Size"> +
353 /// Size of the key passed in bytes. +
354 /// </param> +
355 procedure DoInit(const Key; Size: Integer); override; +
356 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
357 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
358 public +
359 class function Context: TCipherContext; override; +
360 /// <summary> +
361 /// Sets the number of rounds/times the algorithm is being applied to the +
362 /// data. Range should be 16-24 and default is 20 rounds. +
363 /// </summary> +
364 property Rounds: Integer read FRounds write SetRounds; +
365 end; +
366 +
367 TCipher_Rijndael = class(TDECFormattedCipher) +
368 private +
369 FRounds: Integer; +
370 /// <summary> +
371 /// Calculates the key used for encoding. Implemented is the "new AES +
372 /// conform key scheduling". +
373 /// </summary> +
374 /// <param name="KeySize"> +
375 /// Length of the key in byte, but here the AES variant is relevant rather +
376 /// </param> +
377 procedure BuildEncodeKey(KeySize:Integer); inline; +
378 /// <summary> +
379 /// Calculates the key used for decoding. Implemented is the "new AES +
380 /// conform key scheduling". +
381 /// </summary> +
382 procedure BuildDecodeKey; inline; +
383 protected +
384 /// <summary> +
385 /// Initialize the key, based on the key passed in +
386 /// </summary> +
387 /// <param name="Key"> +
388 /// Encryption/Decryption key to be used +
389 /// </param> +
390 /// <param name="Size"> +
391 /// Size of the key passed in bytes. +
392 /// </param> +
393 procedure DoInit(const Key; Size: Integer); override; +
394 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
395 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
396 public +
397 class function Context: TCipherContext; override; +
398 /// <summary> +
399 /// Gets the number of rounds/times the algorithm is being applied to the +
400 /// data. The number of rounds depends on the key size. +
401 /// </summary> +
402 property Rounds: Integer read FRounds; +
403 end; +
404 +
405 /// <summary> +
406 /// Generic implementation. The bit length one gets depends on the length +
407 /// of the key defined via Init. +
408 /// </summary> +
409 TCipher_AES = class(TCipher_Rijndael); +
410 +
411 /// <summary> +
412 /// 128 Bit variant of the algorithm. Specifying a longer key leads to a +
413 /// EDECCipherException exception +
414 /// </summary> +
415 /// <exception cref="EDECCipherException"> +
416 /// Exception raised if called with a key length longer than 128 bit. +
417 /// </exception> +
418 TCipher_AES128 = class(TCipher_AES) +
419 protected +
420 /// <summary> +
421 /// Initialize the key, based on the key passed in +
422 /// </summary> +
423 /// <param name="Key"> +
424 /// Encryption/Decryption key to be used +
425 /// </param> +
426 /// <param name="Size"> +
427 /// Size of the key passed in bytes. +
428 /// </param> +
429 procedure DoInit(const Key; Size: Integer); override; +
430 public +
431 class function Context: TCipherContext; override; +
432 end; +
433 +
434 /// <summary> +
435 /// 192 Bit variant of the algorithm. Specifying a longer key leads to a +
436 /// EDECCipherException exception +
437 /// </summary> +
438 /// <exception cref="EDECCipherException"> +
439 /// Exception raised if called with a key length longer than 192 bit. +
440 /// </exception> +
441 TCipher_AES192 = class(TCipher_AES) +
442 protected +
443 /// <summary> +
444 /// Initialize the key, based on the key passed in +
445 /// </summary> +
446 /// <param name="Key"> +
447 /// Encryption/Decryption key to be used +
448 /// </param> +
449 /// <param name="Size"> +
450 /// Size of the key passed in bytes. +
451 /// </param> +
452 procedure DoInit(const Key; Size: Integer); override; +
453 public +
454 class function Context: TCipherContext; override; +
455 end; +
456 +
457 /// <summary> +
458 /// 256 Bit variant of the algorithm. Specifying a longer key leads to a +
459 /// EDECCipherException exception +
460 /// </summary> +
461 /// <exception cref="EDECCipherException"> +
462 /// Exception raised if called with a key length longer than 256 bit. +
463 /// </exception> +
464 TCipher_AES256 = class(TCipher_AES) +
465 protected +
466 /// <summary> +
467 /// Initialize the key, based on the key passed in +
468 /// </summary> +
469 /// <param name="Key"> +
470 /// Encryption/Decryption key to be used +
471 /// </param> +
472 /// <param name="Size"> +
473 /// Size of the key passed in bytes. +
474 /// </param> +
475 procedure DoInit(const Key; Size: Integer); override; +
476 public +
477 class function Context: TCipherContext; override; +
478 end; +
479 +
480 TCipher_Square = class(TDECFormattedCipher) +
481 protected +
482 /// <summary> +
483 /// Initialize the key, based on the key passed in +
484 /// </summary> +
485 /// <param name="Key"> +
486 /// Encryption/Decryption key to be used +
487 /// </param> +
488 /// <param name="Size"> +
489 /// Size of the key passed in bytes. +
490 /// </param> +
491 procedure DoInit(const Key; Size: Integer); override; +
492 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
493 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
494 public +
495 class function Context: TCipherContext; override; +
496 end; +
497 +
498 TCipher_SCOP = class(TDECFormattedCipher) +
499 protected +
500 /// <summary> +
501 /// Initialize the key, based on the key passed in +
502 /// </summary> +
503 /// <param name="Key"> +
504 /// Encryption/Decryption key to be used +
505 /// </param> +
506 /// <param name="Size"> +
507 /// Size of the key passed in bytes. +
508 /// </param> +
509 procedure DoInit(const Key; Size: Integer); override; +
510 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
511 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
512 public +
513 class function Context: TCipherContext; override; +
514 end; +
515 +
516 /// <remarks> +
517 /// Do only use if backwards compatibility with old code is necessary as +
518 /// this implementation is faulty! +
519 /// </remarks> +
520 TCipher_SCOP_DEC52 = class(TDECFormattedCipher) +
521 protected +
522 /// <summary> +
523 /// Initialize the key, based on the key passed in +
524 /// </summary> +
525 /// <param name="Key"> +
526 /// Encryption/Decryption key to be used +
527 /// </param> +
528 /// <param name="Size"> +
529 /// Size of the key passed in bytes. +
530 /// </param> +
531 procedure DoInit(const Key; Size: Integer); override; +
532 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
533 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
534 public +
535 class function Context: TCipherContext; override; +
536 end; +
537 +
538 TCipher_Sapphire = class(TDECFormattedCipher) +
539 protected +
540 /// <summary> +
541 /// Initialize the key, based on the key passed in +
542 /// </summary> +
543 /// <param name="Key"> +
544 /// Encryption/Decryption key to be used +
545 /// </param> +
546 /// <param name="Size"> +
547 /// Size of the key passed in bytes. +
548 /// </param> +
549 procedure DoInit(const Key; Size: Integer); override; +
550 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
551 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
552 public +
553 class function Context: TCipherContext; override; +
554 end; +
555 +
556 /// <summary> +
557 /// Base class for all DES based ciphers to fix issues with calling +
558 /// inherited in DoInit, as all other DES based classes did inherit from +
559 /// TCipher_1DES and inherited called the DoInit of that as well... +
560 /// </summary> +
561 TCipher_DESBase = class(TDECFormattedCipher) +
562 strict protected +
563 /// <summary> +
564 /// Initialize the key, based on the key passed in +
565 /// </summary> +
566 /// <param name="Data"> +
567 /// Key for the current block to be encrypted/decrypted? +
568 /// </param> +
569 /// <param name="Key"> +
570 /// Encryption/Decryption key to be used +
571 /// </param> +
572 /// <param name="Size"> +
573 /// Size of the key passed in bytes. +
574 /// </param> +
575 /// <param name="Reverse"> +
576 /// Defines whether some internal calculation needs to be based from the +
577 /// start index or the highest index (= reverse) +
578 /// </param> +
579 procedure DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean); +
580 end; +
581 +
582 TCipher_1DES = class(TCipher_DESBase) +
583 protected +
584 procedure DoInit(const Key; Size: Integer); override; +
585 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
586 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
587 public +
588 class function Context: TCipherContext; override; +
589 end; +
590 +
591 TCipher_2DES = class(TCipher_DESBase) +
592 protected +
593 /// <summary> +
594 /// Initialize the key, based on the key passed in +
595 /// </summary> +
596 /// <param name="Key"> +
597 /// Encryption/Decryption key to be used +
598 /// </param> +
599 /// <param name="Size"> +
600 /// Size of the key passed in bytes. +
601 /// </param> +
602 procedure DoInit(const Key; Size: Integer); override; +
603 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
604 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
605 public +
606 class function Context: TCipherContext; override; +
607 end; +
608 +
609 TCipher_3DES = class(TCipher_DESBase) +
610 protected +
611 /// <summary> +
612 /// Initialize the key, based on the key passed in +
613 /// </summary> +
614 /// <param name="Key"> +
615 /// Encryption/Decryption key to be used +
616 /// </param> +
617 /// <param name="Size"> +
618 /// Size of the key passed in bytes. +
619 /// </param> +
620 procedure DoInit(const Key; Size: Integer); override; +
621 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
622 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
623 public +
624 class function Context: TCipherContext; override; +
625 end; +
626 +
627 TCipher_2DDES = class(TCipher_2DES) +
628 protected +
629 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
630 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
631 public +
632 class function Context: TCipherContext; override; +
633 end; +
634 +
635 TCipher_3DDES = class(TCipher_3DES) +
636 protected +
637 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
638 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
639 public +
640 class function Context: TCipherContext; override; +
641 end; +
642 +
643 TCipher_3TDES = class(TCipher_3DES) +
644 protected +
645 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
646 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
647 public +
648 class function Context: TCipherContext; override; +
649 end; +
650 +
651 TCipher_3Way = class(TDECFormattedCipher) +
652 protected +
653 /// <summary> +
654 /// Initialize the key, based on the key passed in +
655 /// </summary> +
656 /// <param name="Key"> +
657 /// Encryption/Decryption key to be used +
658 /// </param> +
659 /// <param name="Size"> +
660 /// Size of the key passed in bytes. +
661 /// </param> +
662 procedure DoInit(const Key; Size: Integer); override; +
663 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
664 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
665 public +
666 class function Context: TCipherContext; override; +
667 end; +
668 +
669 TCipher_Cast128 = class(TDECFormattedCipher) +
670 private +
671 FRounds: Integer; +
672 protected +
673 /// <summary> +
674 /// Initialize the key, based on the key passed in +
675 /// </summary> +
676 /// <param name="Key"> +
677 /// Encryption/Decryption key to be used +
678 /// </param> +
679 /// <param name="Size"> +
680 /// Size of the key passed in bytes. +
681 /// </param> +
682 procedure DoInit(const Key; Size: Integer); override; +
683 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
684 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
685 public +
686 class function Context: TCipherContext; override; +
687 end; +
688 +
689 TCipher_Gost = class(TDECFormattedCipher) +
690 protected +
691 /// <summary> +
692 /// Initialize the key, based on the key passed in +
693 /// </summary> +
694 /// <param name="Key"> +
695 /// Encryption/Decryption key to be used +
696 /// </param> +
697 /// <param name="Size"> +
698 /// Size of the key passed in bytes. +
699 /// </param> +
700 procedure DoInit(const Key; Size: Integer); override; +
701 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
702 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
703 public +
704 class function Context: TCipherContext; override; +
705 end; +
706 +
707 /// <summary> +
708 /// Alias for Gost +
709 /// </summary> +
710 TCipher_Magma = class(TCipher_Gost); +
711 +
712 /// <summary> +
713 /// Do no longer use this algorithm if possible, as it got broken in 2015 +
714 /// by crypto analysis. +
715 /// </summary> +
716 TCipher_Misty = class(TDECFormattedCipher) +
717 protected +
718 /// <summary> +
719 /// Initialize the key, based on the key passed in +
720 /// </summary> +
721 /// <param name="Key"> +
722 /// Encryption/Decryption key to be used +
723 /// </param> +
724 /// <param name="Size"> +
725 /// Size of the key passed in bytes. +
726 /// </param> +
727 procedure DoInit(const Key; Size: Integer); override; +
728 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
729 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
730 public +
731 class function Context: TCipherContext; override; +
732 end; +
733 +
734 /// <summary> +
735 /// While this algorithm resembles the Data Encryption Standard (DES), +
736 /// it is easier to implement in software and is supposed to be more secure. +
737 /// It is not to be confused with another algorithm - known by the same +
738 /// name - which is simply DES without the initial and final permutations. +
739 /// The NewDES here is a completely different algorithm. +
740 /// +
741 /// Be aware though that recent crypto analysis shows that this algorithm is +
742 /// less safe than DES and thus not to be recommended for use! +
743 /// </summary> +
744 TCipher_NewDES = class(TDECFormattedCipher) +
745 protected +
746 /// <summary> +
747 /// Initialize the key, based on the key passed in +
748 /// </summary> +
749 /// <param name="Key"> +
750 /// Encryption/Decryption key to be used +
751 /// </param> +
752 /// <param name="Size"> +
753 /// Size of the key passed in bytes. +
754 /// </param> +
755 procedure DoInit(const Key; Size: Integer); override; +
756 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
757 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
758 public +
759 class function Context: TCipherContext; override; +
760 end; +
761 +
762 TCipher_Q128 = class(TDECFormattedCipher) +
763 protected +
764 /// <summary> +
765 /// Initialize the key, based on the key passed in +
766 /// </summary> +
767 /// <param name="Key"> +
768 /// Encryption/Decryption key to be used +
769 /// </param> +
770 /// <param name="Size"> +
771 /// Size of the key passed in bytes. +
772 /// </param> +
773 procedure DoInit(const Key; Size: Integer); override; +
774 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
775 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
776 public +
777 class function Context: TCipherContext; override; +
778 end; +
779 +
780 TCipher_RC2 = class(TDECFormattedCipher) +
781 protected +
782 /// <summary> +
783 /// Initialize the key, based on the key passed in +
784 /// </summary> +
785 /// <param name="Key"> +
786 /// Encryption/Decryption key to be used +
787 /// </param> +
788 /// <param name="Size"> +
789 /// Size of the key passed in bytes. +
790 /// </param> +
791 procedure DoInit(const Key; Size: Integer); override; +
792 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
793 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
794 public +
795 class function Context: TCipherContext; override; +
796 end; +
797 +
798 TCipher_RC5 = class(TDECFormattedCipher) +
799 private +
800 FRounds: Integer; +
801 procedure SetRounds(Value: Integer); +
802 protected +
803 /// <summary> +
804 /// Initialize the key, based on the key passed in +
805 /// </summary> +
806 /// <param name="Key"> +
807 /// Encryption/Decryption key to be used +
808 /// </param> +
809 /// <param name="Size"> +
810 /// Size of the key passed in bytes. +
811 /// </param> +
812 procedure DoInit(const Key; Size: Integer); override; +
813 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
814 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
815 public +
816 class function Context: TCipherContext; override; +
817 +
818 /// <summary> +
819 /// Sets the number of rounds/times the algorithm is being applied to the +
820 /// data. Allowed range is 0-255, if you can choose we recommend a +
821 /// value > 16. +
822 /// </summary> +
823 property Rounds: Integer read FRounds write SetRounds; +
824 end; +
825 +
826 /// <summary> +
827 /// svK40 SAFER K-40 Keysize is 40bit -> 5 Byte +
828 /// svK64 SAFER K-64 Keysize is 64bit -> 8 Byte +
829 /// svK128 SAFER K-128 KeySize is 128bit -> 16 Byte +
830 /// svSK40 SAFER SK-40 Stronger Version from K-40 with better Key Scheduling +
831 /// svSK64 SAFER SK-64 Stronger Version from K-64 with better Key Scheduling +
832 /// svSK128 SAFER SK-128 Stronger Version from K-128 with better Key Scheduling +
833 /// </summary> +
834 TSAFERVersion = (svSK128, svSK64, svSK40, svK128, svK64, svK40); +
835 +
836 TCipher_SAFER = class(TDECFormattedCipher) +
837 private +
838 FRounds: Integer; +
839 FVersion: TSAFERVersion; +
840 procedure SetRounds(Value: Integer); +
841 procedure SetVersion(Value: TSAFERVersion); +
842 protected +
843 /// <summary> +
844 /// Initialize the key, based on the key passed in +
845 /// </summary> +
846 /// <param name="Key"> +
847 /// Encryption/Decryption key to be used +
848 /// </param> +
849 /// <param name="Size"> +
850 /// Size of the key passed in bytes. +
851 /// </param> +
852 procedure DoInit(const Key; Size: Integer); override; +
853 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
854 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
855 public +
856 class function Context: TCipherContext; override; +
857 +
858 /// <summary> +
859 /// Sets the number of rounds/times the algorithm is being applied to the +
860 /// data. Range should be 4-13 and default is 5, 6, 10 or 8 rounds +
861 /// depending on the version +
862 /// </summary> +
863 property Rounds: Integer read FRounds write SetRounds; +
864 property Version: TSAFERVersion read FVersion write SetVersion; +
865 end; +
866 +
867 {$IFNDEF CPU64BITS} +
868 PLong64 = ^TLong64; +
869 TLong64 = packed record +
870 L, R: UInt32; +
871 end; +
872 +
873 PLong64Array = ^TLong64Array; +
874 TLong64Array = array[0..1023] of TLong64; +
875 {$ENDIF} +
876 +
877 TLogArray = array[0..255] of Byte; +
878 +
879 /// <summary> +
880 /// Base class for both Shark implementations +
881 /// </summary> +
882 TCipher_SharkBase = class(TDECFormattedCipher) +
883 strict protected +
884 {$IFNDEF CPU64BITS} +
885 function Transform(A: TLong64; Log, ALog: TLogArray): TLong64; +
886 function Shark(D: TLong64; K: PLong64): TLong64; +
887 {$ELSE} +
888 function Transform(A: UInt64; Log, ALog: TLogArray): UInt64; +
889 function SharkEncode(D: UInt64; K: PUInt64): UInt64; +
890 {$ENDIF} +
891 +
892 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
893 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
894 public +
895 class function Context: TCipherContext; override; +
896 end; +
897 +
898 TCipher_Shark = class(TCipher_SharkBase) +
899 protected +
900 /// <summary> +
901 /// Initialize the key, based on the key passed in +
902 /// </summary> +
903 /// <param name="Key"> +
904 /// Encryption/Decryption key to be used +
905 /// </param> +
906 /// <param name="Size"> +
907 /// Size of the key passed in bytes. +
908 /// </param> +
909 procedure DoInit(const Key; Size: Integer); override; +
910 public +
911 +
912 end; +
913 +
914 /// <remarks> +
915 /// Do only use if backwards compatibility with old code is necessary as +
916 /// this implementation is faulty! +
917 /// </remarks> +
918 TCipher_Shark_DEC52 = class(TCipher_SharkBase) +
919 protected +
920 /// <summary> +
921 /// Initialize the key, based on the key passed in +
922 /// </summary> +
923 /// <param name="Key"> +
924 /// Encryption/Decryption key to be used +
925 /// </param> +
926 /// <param name="Size"> +
927 /// Size of the key passed in bytes. +
928 /// </param> +
929 procedure DoInit(const Key; Size: Integer); override; +
930 end; +
931 +
932 TCipher_Skipjack = class(TDECFormattedCipher) +
933 strict private +
934 procedure SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte); inline; +
935 procedure SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab); inline; +
936 protected +
937 /// <summary> +
938 /// Initialize the key, based on the key passed in +
939 /// </summary> +
940 /// <param name="Key"> +
941 /// Encryption/Decryption key to be used +
942 /// </param> +
943 /// <param name="Size"> +
944 /// Size of the key passed in bytes. +
945 /// </param> +
946 procedure DoInit(const Key; Size: Integer); override; +
947 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
948 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
949 public +
950 class function Context: TCipherContext; override; +
951 end; +
952 +
953 TCipher_TEA = class(TDECFormattedCipher) +
954 private +
955 FRounds: Integer; +
956 procedure SetRounds(Value: Integer); +
957 protected +
958 /// <summary> +
959 /// Initialize the key, based on the key passed in +
960 /// </summary> +
961 /// <param name="Key"> +
962 /// Encryption/Decryption key to be used +
963 /// </param> +
964 /// <param name="Size"> +
965 /// Size of the key passed in bytes. +
966 /// </param> +
967 procedure DoInit(const Key; Size: Integer); override; +
968 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
969 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
970 public +
971 class function Context: TCipherContext; override; +
972 +
973 /// <summary> +
974 /// 16 - 256 Rounds, 16 (default) is sufficient, 64 is the official +
975 /// recommendation. If a value outside the range of 16 to 256 is assigned +
976 /// it will be limited to that range. +
977 /// </summary> +
978 property Rounds: Integer read FRounds write SetRounds; +
979 end; +
980 +
981 /// <summary> +
982 /// XTEA is an improved version of the TEA algorithm. +
983 /// </summary> +
984 /// <remarks> +
985 /// In DEC V5.2 at least and in former commits of DEC 6.0 development version +
986 /// this algorithm was broken due to differences in brackets and thus returned +
987 /// a different result. It is unclear why nobody reported this as bug yet +
988 /// but be aware that if you need the old variant for compatibility reasons +
989 /// you need a commit from before 3rd December 2020. +
990 /// </remarks> +
991 TCipher_XTEA = class(TCipher_TEA) +
992 protected +
993 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
994 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
995 end; +
996 +
997 TCipher_TEAN = class(TCipher_XTEA); +
998 +
999 /// <summary> +
1000 /// XTEA is an improved version of the TEA algorithm. This version is the +
1001 /// old faulty one from DEC 5.2. Use only if necessary for compatibility +
1002 /// reasons! +
1003 /// </summary> +
1004 /// <remarks> +
1005 /// In DEC V5.2 at least and in former commits of DEC 6.0 development version +
1006 /// this algorithm was broken due to differences in brackets and thus returned +
1007 /// a different result. It is unclear why nobody reported this as bug yet +
1008 /// but be aware that if you need the old variant for compatibility reasons +
1009 /// you need a commit from before 3rd December 2020. +
1010 /// </remarks> +
1011 TCipher_XTEA_DEC52 = class(TCipher_TEA) +
1012 protected +
1013 procedure DoEncode(Source, Dest: Pointer; Size: Integer); override; +
1014 procedure DoDecode(Source, Dest: Pointer; Size: Integer); override; +
1015 end; +
1016 +
1017implementation +
1018 +
1019{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
1020{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF} +
1021 +
1022uses +
1023 {$IFDEF FPC} +
1024 SysUtils, +
1025 {$ELSE} +
1026 System.SysUtils, +
1027 {$ENDIF} +
1028 DECData, DECDataCipher; +
1029 +
1030{ TCipher_Null } +
1031 +
1032class function TCipher_Null.Context: TCipherContext; +
1033begin +
1034 Result.KeySize := 0; +
1035 Result.BlockSize := 1; +
1036 Result.BufferSize := 8; +
1037 Result.AdditionalBufferSize := 0; +
1038 Result.NeedsAdditionalBufferBackup := False; +
1039 Result.MinRounds := 1; +
1040 Result.MaxRounds := 1; +
1041 Result.CipherType := [ctNull, ctSymmetric]; +
1042end; +
1043 +
1044procedure TCipher_Null.DoInit(const Key; Size: Integer); +
1045begin +
1046 inherited; +
1047end; +
1048 +
1049procedure TCipher_Null.DoEncode(Source, Dest: Pointer; Size: Integer); +
1050begin +
1051 if Source <> Dest then +
1052 Move(Source^, Dest^, Size); +
1053end; +
1054 +
1055procedure TCipher_Null.DoDecode(Source, Dest: Pointer; Size: Integer); +
1056begin +
1057 if Source <> Dest then +
1058 Move(Source^, Dest^, Size); +
1059end; +
1060 +
1061{ TCipher_Blowfish } +
1062 +
1063class function TCipher_Blowfish.Context: TCipherContext; +
1064begin +
1065 Result.KeySize := 56; +
1066 Result.BufferSize := 8; +
1067 Result.BlockSize := 8; +
1068 Result.AdditionalBufferSize := SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key); +
1069 Result.NeedsAdditionalBufferBackup := False; +
1070 Result.MinRounds := 1; +
1071 Result.MaxRounds := 1; +
1072 Result.CipherType := [ctSymmetric, ctBlock]; +
1073end; +
1074 +
1075procedure TCipher_Blowfish.DoInit(const Key; Size: Integer); +
1076var +
1077 I, J: Integer; +
1078 B: array[0..1] of UInt32; +
1079 K: PByteArray; +
1080 P: PUInt32Array; +
1081 S: PBlowfish; +
1082begin +
1083 K := @Key; +
1084 S := FAdditionalBuffer; +
1085 P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math +
1086 +
1087 Move(Blowfish_Data, S^, SizeOf(Blowfish_Data)); +
1088 Move(Blowfish_Key, P^, Sizeof(Blowfish_Key)); +
1089 J := 0; +
1090 if Size > 0 then +
1091 for I := 0 to 17 do +
1092 begin +
1093 P[I] := P[I] xor (K[(J + 0) mod Size] shl 24 + +
1094 K[(J + 1) mod Size] shl 16 + +
1095 K[(J + 2) mod Size] shl 8 + +
1096 K[(J + 3) mod Size] shl 0); +
1097 J := (J + 4) mod Size; +
1098 end; +
1099 FillChar(B, SizeOf(B), 0); +
1100 +
1101 for I := 0 to 8 do +
1102 begin +
1103 DoEncode(@B, @B, SizeOf(B)); +
1104 P[I * 2 + 0] := SwapUInt32(B[0]); +
1105 P[I * 2 + 1] := SwapUInt32(B[1]); +
1106 end; +
1107 for I := 0 to 3 do +
1108 for J := 0 to 127 do +
1109 begin +
1110 DoEncode(@B, @B, SizeOf(B)); +
1111 S[I, J * 2 + 0] := SwapUInt32(B[0]); +
1112 S[I, J * 2 + 1] := SwapUInt32(B[1]); +
1113 end; +
1114 FillChar(B, SizeOf(B), 0); +
1115 +
1116 inherited; +
1117end; +
1118 +
1119procedure TCipher_Blowfish.DoEncode(Source, Dest: Pointer; Size: Integer); +
1120{$IFDEF X86ASM} +
1121// Source = EDX, Dest = ECX, Size on Stack +
1122asm +
1123 PUSH EDI +
1124 PUSH ESI +
1125 PUSH EBX +
1126 PUSH EBP +
1127 PUSH ECX +
1128 MOV ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer +
1129 MOV EBX,[EDX + 0] // A +
1130 MOV EBP,[EDX + 4] // B +
1131 BSWAP EBX // CPU >= 486 +
1132 BSWAP EBP +
1133 XOR EBX,[ESI + 4 * 256 * 4] +
1134 XOR EDI,EDI +
1135@@1: MOV EAX,EBX +
1136 SHR EBX,16 +
1137 MOVZX ECX,BH +
1138 AND EBX,0FFh +
1139 MOV ECX,[ESI + ECX * 4 + 1024 * 0] +
1140 MOV EBX,[ESI + EBX * 4 + 1024 * 1] +
1141 MOVZX EDX,AH +
1142 ADD EBX,ECX +
1143 MOVZX ECX,AL +
1144 MOV EDX,[ESI + EDX * 4 + 1024 * 2] +
1145 MOV ECX,[ESI + ECX * 4 + 1024 * 3] +
1146 XOR EBX,EDX +
1147 XOR EBP,[ESI + 4 * 256 * 4 + 4 + EDI * 4] +
1148 ADD EBX,ECX +
1149 INC EDI +
1150 XOR EBX,EBP +
1151 TEST EDI,010h +
1152 MOV EBP,EAX +
1153 JZ @@1 +
1154 POP EAX +
1155 XOR EBP,[ESI + 4 * 256 * 4 + 17 * 4] +
1156 BSWAP EBX +
1157 BSWAP EBP +
1158 MOV [EAX + 4],EBX +
1159 MOV [EAX + 0],EBP +
1160 POP EBP +
1161 POP EBX +
1162 POP ESI +
1163 POP EDI +
1164end; +
1165{$ELSE !X86ASM} +
1166var +
1167 I, A, B: UInt32; +
1168 P: PUInt32Array; +
1169 D: PBlowfish; +
1170begin +
1171 Assert(Size = Context.BlockSize, 'Size of ' + IntToStr(Size) + ' does not equal '+ +
1172 'block size of ' + IntToStr(Context.BlockSize)); +
1173 +
1174 D := Pointer(FAdditionalBuffer); +
1175 P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math +
1176 A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0]; P := @P[1]; +
1177 B := SwapUInt32(PUInt32Array(Source)[1]); +
1178 for I := 0 to 7 do +
1179 begin +
1180 {$IFOPT Q+}The following code requires overflow checks being off!{$ENDIF} +
1181 +
1182 B := B xor P[0] xor (D[0, A shr 24 ] + +
1183 D[1, A shr 16 and $FF] xor +
1184 D[2, A shr 8 and $FF] + +
1185 D[3, A and $FF]); +
1186 +
1187 A := A xor P[1] xor (D[0, B shr 24 ] + +
1188 D[1, B shr 16 and $FF] xor +
1189 D[2, B shr 8 and $FF] + +
1190 D[3, B and $FF]); +
1191 P := @P[2]; +
1192 end; +
1193 PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]); +
1194 PUInt32Array(Dest)[1] := SwapUInt32(A); +
1195end; +
1196{$ENDIF !X86ASM} +
1197 +
1198procedure TCipher_Blowfish.DoDecode(Source, Dest: Pointer; Size: Integer); +
1199{$IFDEF X86ASM} +
1200asm +
1201 PUSH EDI +
1202 PUSH ESI +
1203 PUSH EBX +
1204 PUSH EBP +
1205 PUSH ECX +
1206 MOV ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer +
1207 MOV EBX,[EDX + 0] // A +
1208 MOV EBP,[EDX + 4] // B +
1209 BSWAP EBX +
1210 BSWAP EBP +
1211 XOR EBX,[ESI + 4 * 256 * 4 + 17 * 4] +
1212 MOV EDI,16 +
1213@@1: MOV EAX,EBX +
1214 SHR EBX,16 +
1215 MOVZX ECX,BH +
1216 MOVZX EDX,BL +
1217 MOV EBX,[ESI + ECX * 4 + 1024 * 0] +
1218 MOV EDX,[ESI + EDX * 4 + 1024 * 1] +
1219 MOVZX ECX,AH +
1220 LEA EBX,[EBX + EDX] +
1221 MOVZX EDX,AL +
1222 MOV ECX,[ESI + ECX * 4 + 1024 * 2] +
1223 MOV EDX,[ESI + EDX * 4 + 1024 * 3] +
1224 XOR EBX,ECX +
1225 XOR EBP,[ESI + 4 * 256 * 4 + EDI * 4] +
1226 LEA EBX,[EBX + EDX] +
1227 XOR EBX,EBP +
1228 DEC EDI +
1229 MOV EBP,EAX +
1230 JNZ @@1 +
1231 POP EAX +
1232 XOR EBP,[ESI + 4 * 256 * 4] +
1233 BSWAP EBX +
1234 BSWAP EBP +
1235 MOV [EAX + 0],EBP +
1236 MOV [EAX + 4],EBX +
1237 POP EBP +
1238 POP EBX +
1239 POP ESI +
1240 POP EDI +
1241end; +
1242{$ELSE !X86ASM} +
1243var +
1244 I, A, B: UInt32; +
1245 P: PUInt32Array; +
1246 D: PBlowfish; +
1247begin +
1248 Assert(Size = Context.BlockSize); +
1249 +
1250 D := Pointer(FAdditionalBuffer); +
1251 P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key) - SizeOf(Int32)); +
1252 A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0]; +
1253 B := SwapUInt32(PUInt32Array(Source)[1]); +
1254 for I := 0 to 7 do +
1255 begin +
1256 Dec(PUInt32(P), 2); +
1257 B := B xor P[1] xor (D[0, A shr 24 ] + +
1258 D[1, A shr 16 and $FF] xor +
1259 D[2, A shr 8 and $FF] + +
1260 D[3, A and $FF]); +
1261 A := A xor P[0] xor (D[0, B shr 24 ] + +
1262 D[1, B shr 16 and $FF] xor +
1263 D[2, B shr 8 and $FF] + +
1264 D[3, B and $FF]); +
1265 end; +
1266 Dec(PUInt32(P)); +
1267 PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]); +
1268 PUInt32Array(Dest)[1] := SwapUInt32(A); +
1269end; +
1270{$ENDIF !X86ASM} +
1271 +
1272{ TCipher_Twofish } +
1273 +
1274type +
1275 PTwofishBox = ^TTwofishBox; +
1276 TTwofishBox = array[0..3, 0..255] of UInt32; +
1277 +
1278 TLongRec = record +
1279 case Integer of +
1280 0: (L: UInt32); +
1281 1: (A, B, C, D: Byte); +
1282 end; +
1283 +
1284class function TCipher_Twofish.Context: TCipherContext; +
1285begin +
1286 Result.KeySize := 32; +
1287 Result.BufferSize := 16; +
1288 Result.BlockSize := 16; +
1289 Result.AdditionalBufferSize := 4256; +
1290 Result.NeedsAdditionalBufferBackup := False; +
1291 Result.MinRounds := 1; +
1292 Result.MaxRounds := 1; +
1293 Result.CipherType := [ctSymmetric, ctBlock]; +
1294end; +
1295 +
1296procedure TCipher_Twofish.DoInit(const Key; Size: Integer); +
1297var +
1298 BoxKey: array[0..3] of TLongRec; +
1299 SubKey: PUInt32Array; +
1300 Box: PTwofishBox; +
1301 +
1302 procedure SetupKey; +
1303 +
1304 function Encode(K0, K1: Integer): Integer; +
1305 var +
1306 R, I, J, G2, G3: Integer; +
1307 B: byte; +
1308 begin +
1309 R := 0; +
1310 for I := 0 to 1 do +
1311 begin +
1312 if I <> 0 then +
1313 R := R xor K0 +
1314 else +
1315 R := R xor K1; +
1316 for J := 0 to 3 do +
1317 begin +
1318 B := R shr 24; +
1319 if B and $80 <> 0 then +
1320 G2 := (B shl 1 xor $014D) and $FF +
1321 else +
1322 G2 := B shl 1 and $FF; +
1323 if B and 1 <> 0 then +
1324 G3 := (B shr 1 and $7F) xor $014D shr 1 xor G2 +
1325 else +
1326 G3 := (B shr 1 and $7F) xor G2; +
1327 R := R shl 8 xor G3 shl 24 xor G2 shl 16 xor G3 shl 8 xor B; +
1328 end; +
1329 end; +
1330 Result := R; +
1331 end; +
1332 +
1333 function F32(X: Integer; K: array of Integer): Integer; +
1334 var +
1335 A, B, C, D: UInt32; +
1336 begin +
1337 A := X and $FF; +
1338 B := X shr 8 and $FF; +
1339 C := X shr 16 and $FF; +
1340 D := X shr 24; +
1341 if Size = 32 then +
1342 begin +
1343 A := Twofish_8x8[1, A] xor K[3] and $FF; +
1344 B := Twofish_8x8[0, B] xor K[3] shr 8 and $FF; +
1345 C := Twofish_8x8[0, C] xor K[3] shr 16 and $FF; +
1346 D := Twofish_8x8[1, D] xor K[3] shr 24; +
1347 end; +
1348 if Size >= 24 then +
1349 begin +
1350 A := Twofish_8x8[1, A] xor K[2] and $FF; +
1351 B := Twofish_8x8[1, B] xor K[2] shr 8 and $FF; +
1352 C := Twofish_8x8[0, C] xor K[2] shr 16 and $FF; +
1353 D := Twofish_8x8[0, D] xor K[2] shr 24; +
1354 end; +
1355 A := Twofish_8x8[0, A] xor K[1] and $FF; +
1356 B := Twofish_8x8[1, B] xor K[1] shr 8 and $FF; +
1357 C := Twofish_8x8[0, C] xor K[1] shr 16 and $FF; +
1358 D := Twofish_8x8[1, D] xor K[1] shr 24; +
1359 +
1360 A := Twofish_8x8[0, A] xor K[0] and $FF; +
1361 B := Twofish_8x8[0, B] xor K[0] shr 8 and $FF; +
1362 C := Twofish_8x8[1, C] xor K[0] shr 16 and $FF; +
1363 D := Twofish_8x8[1, D] xor K[0] shr 24; +
1364 +
1365 Result := Twofish_Data[0, A] xor Twofish_Data[1, B] xor +
1366 Twofish_Data[2, C] xor Twofish_Data[3, D]; +
1367 end; +
1368 +
1369 var +
1370 I, J, A, B: Integer; +
1371 E, O: array[0..3] of Integer; +
1372 K: array[0..7] of Integer; +
1373 begin +
1374 FillChar(K, SizeOf(K), 0); +
1375 Move(Key, K, Size); +
1376 if Size <= 16 then +
1377 Size := 16 +
1378 else +
1379 if Size <= 24 then +
1380 Size := 24 +
1381 else +
1382 Size := 32; +
1383 J := Size shr 3 - 1; +
1384 for I := 0 to J do +
1385 begin +
1386 E[I] := K[I shl 1]; +
1387 O[I] := K[I shl 1 + 1]; +
1388 BoxKey[J].L := Encode(E[I], O[I]); +
1389 Dec(J); +
1390 end; +
1391 J := 0; +
1392 for I := 0 to 19 do +
1393 begin +
1394 A := F32(J, E); +
1395 B := F32(J + $01010101, O); +
1396 B := B shl 8 or B shr 24; +
1397 SubKey[I shl 1] := A + B; +
1398 B := A + B shl 1; // here buggy instead shr 1 it's correct shl 1 +
1399 SubKey[I shl 1 + 1] := B shl 9 or B shr 23; +
1400 Inc(J, $02020202); +
1401 end; +
1402 end; +
1403 +
1404 procedure DoXOR(D, S: PUInt32Array; Value: UInt32); +
1405 var +
1406 I: UInt32; +
1407 begin +
1408 Value := (Value and $FF) * $01010101; +
1409 for I := 0 to 63 do +
1410 D[I] := S[I] xor Value; +
1411 end; +
1412 +
1413 procedure SetupBox128; +
1414 var +
1415 L: array[0..255] of Byte; +
1416 A, I: Integer; +
1417 begin +
1418 DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L); +
1419 A := BoxKey[0].A; +
1420 for I := 0 to 255 do +
1421 Box[0, I] := Twofish_Data[0, Twofish_8x8[0, L[I]] xor A]; +
1422 DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 8); +
1423 A := BoxKey[0].B; +
1424 for I := 0 to 255 do +
1425 Box[1, I] := Twofish_Data[1, Twofish_8x8[0, L[I]] xor A]; +
1426 DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L shr 16); +
1427 A := BoxKey[0].C; +
1428 for I := 0 to 255 do +
1429 Box[2, I] := Twofish_Data[2, Twofish_8x8[1, L[I]] xor A]; +
1430 DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 24); +
1431 A := BoxKey[0].D; +
1432 for I := 0 to 255 do +
1433 Box[3, I] := Twofish_Data[3, Twofish_8x8[1, L[I]] xor A]; +
1434 end; +
1435 +
1436 procedure SetupBox192; +
1437 var +
1438 L: array[0..255] of Byte; +
1439 A, B, I: Integer; +
1440 begin +
1441 DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L); +
1442 A := BoxKey[0].A; +
1443 B := BoxKey[1].A; +
1444 for I := 0 to 255 do +
1445 Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A]; +
1446 DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L shr 8); +
1447 A := BoxKey[0].B; +
1448 B := BoxKey[1].B; +
1449 for I := 0 to 255 do +
1450 Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A]; +
1451 DoXOR(@L, @Twofish_8x8[0], BoxKey[2].L shr 16); +
1452 A := BoxKey[0].C; +
1453 B := BoxKey[1].C; +
1454 for I := 0 to 255 do +
1455 Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A]; +
1456 DoXOR(@L ,@Twofish_8x8[0], BoxKey[2].L shr 24); +
1457 A := BoxKey[0].D; +
1458 B := BoxKey[1].D; +
1459 for I := 0 to 255 do +
1460 Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A]; +
1461 end; +
1462 +
1463 procedure SetupBox256; +
1464 var +
1465 L: array[0..255] of Byte; +
1466 K: array[0..255] of Byte; +
1467 A, B, I: Integer; +
1468 begin +
1469 DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L); +
1470 for I := 0 to 255 do +
1471 L[I] := Twofish_8x8[1, K[I]]; +
1472 DoXOR(@L, @L, BoxKey[2].L); +
1473 A := BoxKey[0].A; +
1474 B := BoxKey[1].A; +
1475 for I := 0 to 255 do +
1476 Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A]; +
1477 DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 8); +
1478 for I := 0 to 255 do +
1479 L[I] := Twofish_8x8[1, K[I]]; +
1480 DoXOR(@L, @L, BoxKey[2].L shr 8); +
1481 A := BoxKey[0].B; +
1482 B := BoxKey[1].B; +
1483 for I := 0 to 255 do +
1484 Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A]; +
1485 DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 16); +
1486 for I := 0 to 255 do +
1487 L[I] := Twofish_8x8[0, K[I]]; +
1488 DoXOR(@L, @L, BoxKey[2].L shr 16); +
1489 A := BoxKey[0].C; +
1490 B := BoxKey[1].C; +
1491 for I := 0 to 255 do +
1492 Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A]; +
1493 DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L shr 24); +
1494 for I := 0 to 255 do +
1495 L[I] := Twofish_8x8[0, K[I]]; +
1496 DoXOR(@L, @L, BoxKey[2].L shr 24); +
1497 A := BoxKey[0].D; +
1498 B := BoxKey[1].D; +
1499 for I := 0 to 255 do +
1500 Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A]; +
1501 end; +
1502 +
1503begin +
1504 SubKey := FAdditionalBuffer; +
1505 Box := @SubKey[40]; +
1506 SetupKey; +
1507 if Size = 16 then +
1508 SetupBox128 +
1509 else +
1510 if Size = 24 then +
1511 SetupBox192 +
1512 else +
1513 SetupBox256; +
1514 +
1515 inherited; +
1516end; +
1517 +
1518procedure TCipher_Twofish.DoEncode(Source, Dest: Pointer; Size: Integer); +
1519var +
1520 S: PUInt32Array; +
1521 Box: PTwofishBox; +
1522 I, X, Y: UInt32; +
1523 A, B, C, D: TLongRec; +
1524begin +
1525 Assert(Size = Context.BlockSize); +
1526 +
1527 S := FAdditionalBuffer; +
1528 A.L := PUInt32Array(Source)[0] xor S[0]; +
1529 B.L := PUInt32Array(Source)[1] xor S[1]; +
1530 C.L := PUInt32Array(Source)[2] xor S[2]; +
1531 D.L := PUInt32Array(Source)[3] xor S[3]; +
1532 +
1533 Box := @S[40]; +
1534 S := @S[8]; +
1535 for I := 0 to 7 do +
1536 begin +
1537 X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D]; +
1538 Y := Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C] xor Box[0, B.D]; +
1539 D.L := D.L shl 1 or D.L shr 31; +
1540 C.L := C.L xor (X + Y + S[0]); +
1541 D.L := D.L xor (X + Y shl 1 + S[1]); +
1542 C.L := C.L shr 1 or C.L shl 31; +
1543 +
1544 X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D]; +
1545 Y := Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C] xor Box[0, D.D]; +
1546 B.L := B.L shl 1 or B.L shr 31; +
1547 A.L := A.L xor (X + Y + S[2]); +
1548 B.L := B.L xor (X + Y shl 1 + S[3]); +
1549 A.L := A.L shr 1 or A.L shl 31; +
1550 +
1551 S := @S[4]; +
1552 end; +
1553 S := FAdditionalBuffer; +
1554 PUInt32Array(Dest)[0] := C.L xor S[4]; +
1555 PUInt32Array(Dest)[1] := D.L xor S[5]; +
1556 PUInt32Array(Dest)[2] := A.L xor S[6]; +
1557 PUInt32Array(Dest)[3] := B.L xor S[7]; +
1558end; +
1559 +
1560procedure TCipher_Twofish.DoDecode(Source, Dest: Pointer; Size: Integer); +
1561var +
1562 S: PUInt32Array; +
1563 Box: PTwofishBox; +
1564 I, X, Y: UInt32; +
1565 A, B, C, D: TLongRec; +
1566begin +
1567 Assert(Size = Context.BlockSize); +
1568 +
1569 S := FAdditionalBuffer; +
1570 Box := @S[40]; +
1571 C.L := PUInt32Array(Source)[0] xor S[4]; +
1572 D.L := PUInt32Array(Source)[1] xor S[5]; +
1573 A.L := PUInt32Array(Source)[2] xor S[6]; +
1574 B.L := PUInt32Array(Source)[3] xor S[7]; +
1575 S := @S[36]; +
1576 for I := 0 to 7 do +
1577 begin +
1578 X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D]; +
1579 Y := Box[0, D.D] xor Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C]; +
1580 A.L := A.L shl 1 or A.L shr 31; +
1581 B.L := B.L xor (X + Y shl 1 + S[3]); +
1582 A.L := A.L xor (X + Y + S[2]); +
1583 B.L := B.L shr 1 or B.L shl 31; +
1584 +
1585 X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D]; +
1586 Y := Box[0, B.D] xor Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C]; +
1587 C.L := C.L shl 1 or C.L shr 31; +
1588 D.L := D.L xor (X + Y shl 1 + S[1]); +
1589 C.L := C.L xor (X + Y + S[0]); +
1590 D.L := D.L shr 1 or D.L shl 31; +
1591 +
1592 Dec(PUInt32(S), 4); +
1593 end; +
1594 S := FAdditionalBuffer; +
1595 PUInt32Array(Dest)[0] := A.L xor S[0]; +
1596 PUInt32Array(Dest)[1] := B.L xor S[1]; +
1597 PUInt32Array(Dest)[2] := C.L xor S[2]; +
1598 PUInt32Array(Dest)[3] := D.L xor S[3]; +
1599end; +
1600 +
1601{ TCipher_IDEA } +
1602 +
1603class function TCipher_IDEA.Context: TCipherContext; +
1604begin +
1605 Result.KeySize := 16; +
1606 Result.BufferSize := 8; +
1607 Result.BlockSize := 8; +
1608 Result.AdditionalBufferSize := 208; +
1609 Result.NeedsAdditionalBufferBackup := False; +
1610 Result.MinRounds := 1; +
1611 Result.MaxRounds := 1; +
1612 Result.CipherType := [ctSymmetric, ctBlock]; +
1613end; +
1614 +
1615procedure TCipher_IDEA.DoInit(const Key; Size: Integer); +
1616 +
1617 function IDEAInv(X: Word): Word; +
1618 var +
1619 A, B, C, D: Word; +
1620 begin +
1621 if X <= 1 then +
1622 begin +
1623 Result := X; +
1624 Exit; +
1625 end; +
1626 A := 1; +
1627 B := $10001 div X; +
1628 C := $10001 mod X; +
1629 while C <> 1 do +
1630 begin +
1631 D := X div C; +
1632 X := X mod C; +
1633 Inc(A, B * D); +
1634 if X = 1 then +
1635 begin +
1636 Result := A; +
1637 Exit; +
1638 end; +
1639 D := C div X; +
1640 C := C mod X; +
1641 Inc(B, A * D); +
1642 end; +
1643 Result := 1 - B; +
1644 end; +
1645 +
1646var +
1647 I: Integer; +
1648 E: PWordArray; +
1649 A, B, C: Word; +
1650 K, D: PWordArray; +
1651begin +
1652 E := FAdditionalBuffer; +
1653 Move(Key, E^, Size); +
1654 for I := 0 to 7 do +
1655 E[I] := Swap(E[I]); +
1656 for I := 0 to 39 do +
1657 E[I + 8] := E[I and not 7 + (I + 1) and 7] shl 9 or +
1658 E[I and not 7 + (I + 2) and 7] shr 7; +
1659 for I := 41 to 44 do +
1660 E[I + 7] := E[I] shl 9 or E[I + 1] shr 7; +
1661 K := E; +
1662 D := @E[100]; +
1663 A := IDEAInv(K[0]); +
1664 B := 0 - K[1]; +
1665 C := 0 - K[2]; +
1666 D[3] := IDEAInv(K[3]); +
1667 D[2] := C; +
1668 D[1] := B; +
1669 D[0] := A; +
1670 Inc(PWord(K), 4); +
1671 for I := 1 to 8 do +
1672 begin +
1673 Dec(PWord(D), 6); +
1674 A := K[0]; +
1675 D[5] := K[1]; +
1676 D[4] := A; +
1677 A := IDEAInv(K[2]); +
1678 B := 0 - K[3]; +
1679 C := 0 - K[4]; +
1680 D[3] := IDEAInv(K[5]); +
1681 D[2] := B; +
1682 D[1] := C; +
1683 D[0] := A; +
1684 Inc(PWord(K), 6); +
1685 end; +
1686 A := D[2]; +
1687 D[2] := D[1]; +
1688 D[1] := A; +
1689 +
1690 inherited; +
1691end; +
1692 +
1693function IDEAMul(X, Y: UInt32): UInt32; +
1694{$IF defined(X86ASM) or defined(X64ASM)} +
1695asm +
1696 {$IFDEF X64ASM} +
1697 MOV EAX,ECX +
1698 {$ENDIF X64ASM} +
1699 AND EAX,0FFFFh +
1700 JZ @@1 +
1701 AND EDX,0FFFFh +
1702 JZ @@1 +
1703 MUL EDX +
1704 MOV EDX,EAX +
1705 MOV ECX,EAX +
1706 SHR EDX,16 +
1707 SUB EAX,EDX +
1708 SUB CX,AX +
1709 ADC EAX,0 +
1710 RET +
1711@@1: LEA EAX,[EAX + EDX - 1] +
1712 NEG EAX +
1713end; +
1714{$ELSE} +
1715begin +
1716 X := X and $FFFF; +
1717 if X <> 0 then +
1718 begin +
1719 Y := Y and $FFFF; +
1720 if Y <> 0 then +
1721 begin +
1722 X := X * Y; +
1723 Result := X - (X shr 16); +
1724 if Word(X) < Word(Result) then // carry flag check for "sub cx,ax" +
1725 Inc(Result); +
1726 Exit; +
1727 end; +
1728 end; +
1729 Result := -(X + Y - 1); +
1730end; +
1731{$IFEND} +
1732 +
1733procedure IDEACipher(Source, Dest: PUInt32Array; Key: PWordArray); +
1734var +
1735 I: UInt32; +
1736 X, Y, A, B, C, D: UInt32; +
1737begin +
1738 I := SwapUInt32(Source[0]); +
1739 A := I shr 16; +
1740 B := I and $FFFF; +
1741 I := SwapUInt32(Source[1]); +
1742 C := I shr 16; +
1743 D := I and $FFFF; +
1744 for I := 0 to 7 do +
1745 begin +
1746 A := IDEAMul(A, Key[0]); +
1747 Inc(B, Key[1]); +
1748 Inc(C, Key[2]); +
1749 D := IDEAMul(D, Key[3]); +
1750 Y := C xor A; +
1751 Y := IDEAMul(Y, Key[4]); +
1752 X := B xor D + Y; +
1753 X := IDEAMul(X, Key[5]); +
1754 Inc(Y, X); +
1755 A := A xor X; +
1756 D := D xor Y; +
1757 Y := B xor Y; +
1758 B := C xor X; +
1759 C := Y; +
1760 Key := @Key[6]; +
1761 end; +
1762 Dest[0] := SwapUInt32(IDEAMul(A, Key[0]) shl 16 or (C + Key[1]) and $FFFF); +
1763 Dest[1] := SwapUInt32((B + Key[2]) shl 16 or IDEAMul(D, Key[3]) and $FFFF); +
1764end; +
1765 +
1766procedure TCipher_IDEA.DoEncode(Source, Dest: Pointer; Size: Integer); +
1767begin +
1768 Assert(Size = Context.BlockSize); +
1769 +
1770 IDEACipher(Source, Dest, FAdditionalBuffer); +
1771end; +
1772 +
1773procedure TCipher_IDEA.DoDecode(Source, Dest: Pointer; Size: Integer); +
1774begin +
1775 Assert(Size = Context.BlockSize); +
1776 +
1777 IDEACipher(Source, Dest, @PUInt32Array(FAdditionalBuffer)[26]); +
1778end; +
1779 +
1780{ TCipher_Cast256 } +
1781 +
1782class function TCipher_Cast256.Context: TCipherContext; +
1783begin +
1784 Result.KeySize := 32; +
1785 Result.BlockSize := 16; +
1786 Result.BufferSize := 16; +
1787 Result.AdditionalBufferSize := 384; +
1788 Result.NeedsAdditionalBufferBackup := False; +
1789 Result.MinRounds := 1; +
1790 Result.MaxRounds := 1; +
1791 Result.CipherType := [ctSymmetric, ctBlock]; +
1792end; +
1793 +
1794procedure TCipher_Cast256.DoInit(const Key; Size: Integer); +
1795var +
1796 X: array[0..7] of UInt32; +
1797 M, R, I, J, T: UInt32; +
1798 K: PUInt32Array; +
1799begin +
1800 FillChar(X, SizeOf(X), 0); +
1801 Move(Key, X, Size); +
1802 SwapUInt32Buffer(X, X, 8); +
1803 K := FAdditionalBuffer; +
1804 M := $5A827999; +
1805 R := 19; +
1806 for I := 0 to 11 do +
1807 begin +
1808 for J := 0 to 1 do +
1809 begin +
1810 T := M + X[7]; +
1811 T := T shl R or T shr (32 - R); +
1812 X[6] := X[6] xor (Cast256_Data[0, T shr 24] xor +
1813 Cast256_Data[1, T shr 16 and $FF] - +
1814 Cast256_Data[2, T shr 8 and $FF] + +
1815 Cast256_Data[3, T and $FF]); +
1816 Inc(M, $6ED9EBA1); +
1817 Inc(R, 17); +
1818 T := M xor X[6]; +
1819 T := T shl R or T shr (32 - R); +
1820 X[5] := X[5] xor (Cast256_Data[0, T shr 24] - +
1821 Cast256_Data[1, T shr 16 and $FF] + +
1822 Cast256_Data[2, T shr 8 and $FF] xor +
1823 Cast256_Data[3, T and $FF]); +
1824 Inc(M, $6ED9EBA1); +
1825 Inc(R, 17); +
1826 T := M - X[5]; +
1827 T := T shl R or T shr (32 - R); +
1828 X[4] := X[4] xor (Cast256_Data[0, T shr 24] + +
1829 Cast256_Data[1, T shr 16 and $FF] xor +
1830 Cast256_Data[2, T shr 8 and $FF] - +
1831 Cast256_Data[3, T and $FF]); +
1832 Inc(M, $6ED9EBA1); +
1833 Inc(R, 17); +
1834 T := M + X[4]; +
1835 T := T shl R or T shr (32 - R); +
1836 X[3] := X[3] xor (Cast256_Data[0, T shr 24] xor +
1837 Cast256_Data[1, T shr 16 and $FF] - +
1838 Cast256_Data[2, T shr 8 and $FF] + +
1839 Cast256_Data[3, T and $FF]); +
1840 Inc(M, $6ED9EBA1); +
1841 Inc(R, 17); +
1842 T := M xor X[3]; +
1843 T := T shl R or T shr (32 - R); +
1844 X[2] := X[2] xor (Cast256_Data[0, T shr 24] - +
1845 Cast256_Data[1, T shr 16 and $FF] + +
1846 Cast256_Data[2, T shr 8 and $FF] xor +
1847 Cast256_Data[3, T and $FF]); +
1848 Inc(M, $6ED9EBA1); +
1849 Inc(R, 17); +
1850 T := M - X[2]; +
1851 T := T shl R or T shr (32 - R); +
1852 X[1] := X[1] xor (Cast256_Data[0, T shr 24] + +
1853 Cast256_Data[1, T shr 16 and $FF] xor +
1854 Cast256_Data[2, T shr 8 and $FF] - +
1855 Cast256_Data[3, T and $FF]); +
1856 Inc(M, $6ED9EBA1); +
1857 Inc(R, 17); +
1858 T := M + X[1]; +
1859 T := T shl R or T shr (32 - R); +
1860 X[0] := X[0] xor (Cast256_Data[0, T shr 24] xor +
1861 Cast256_Data[1, T shr 16 and $FF] - +
1862 Cast256_Data[2, T shr 8 and $FF] + +
1863 Cast256_Data[3, T and $FF]); +
1864 Inc(M, $6ED9EBA1); +
1865 Inc(R, 17); +
1866 T := M xor X[0]; +
1867 T := T shl R or T shr (32 - R); +
1868 X[7] := X[7] xor (Cast256_Data[0, T shr 24] - +
1869 Cast256_Data[1, T shr 16 and $FF] + +
1870 Cast256_Data[2, T shr 8 and $FF] xor +
1871 Cast256_Data[3, T and $FF]); +
1872 Inc(M, $6ED9EBA1); +
1873 Inc(R, 17); +
1874 end; +
1875 if I < 6 then +
1876 begin +
1877 K[48] := X[0] and $1F; +
1878 K[49] := X[2] and $1F; +
1879 K[50] := X[4] and $1F; +
1880 K[51] := X[6] and $1F; +
1881 K[0] := X[7]; +
1882 K[1] := X[5]; +
1883 K[2] := X[3]; +
1884 K[3] := X[1]; +
1885 end +
1886 else +
1887 begin +
1888 K[48] := X[6] and $1F; +
1889 K[49] := X[4] and $1F; +
1890 K[50] := X[2] and $1F; +
1891 K[51] := X[0] and $1F; +
1892 K[0] := X[1]; +
1893 K[1] := X[3]; +
1894 K[2] := X[5]; +
1895 K[3] := X[7]; +
1896 end; +
1897 K := @K[4]; +
1898 end; +
1899 ProtectBuffer(X, SizeOf(X)); +
1900 +
1901 inherited; +
1902end; +
1903 +
1904procedure TCipher_Cast256.DoEncode(Source, Dest: Pointer; Size: Integer); +
1905var +
1906 I, T, A, B, C, D: UInt32; +
1907 K: PUInt32Array; +
1908begin +
1909 Assert(Size = Context.BlockSize); +
1910 +
1911 K := FAdditionalBuffer; +
1912 SwapUInt32Buffer(Source^, Dest^, 4); +
1913 A := PUInt32Array(Dest)[0]; +
1914 B := PUInt32Array(Dest)[1]; +
1915 C := PUInt32Array(Dest)[2]; +
1916 D := PUInt32Array(Dest)[3]; +
1917 for I := 0 to 5 do +
1918 begin +
1919 T := K[0] + D; +
1920 T := T shl K[48] or T shr (32 - K[48]); +
1921 C := C xor (Cast256_Data[0, T shr 24] xor +
1922 Cast256_Data[1, T shr 16 and $FF] - +
1923 Cast256_Data[2, T shr 8 and $FF] + +
1924 Cast256_Data[3, T and $FF]); +
1925 T := K[1] xor C; +
1926 T := T shl K[49] or T shr (32 - K[49]); +
1927 B := B xor (Cast256_Data[0, T shr 24] - +
1928 Cast256_Data[1, T shr 16 and $FF] + +
1929 Cast256_Data[2, T shr 8 and $FF] xor +
1930 Cast256_Data[3, T and $FF]); +
1931 T := K[2] - B; +
1932 T := T shl K[50] or T shr (32 - K[50]); +
1933 A := A xor (Cast256_Data[0, T shr 24] + +
1934 Cast256_Data[1, T shr 16 and $FF] xor +
1935 Cast256_Data[2, T shr 8 and $FF] - +
1936 Cast256_Data[3, T and $FF]); +
1937 T := K[3] + A; +
1938 T := T shl K[51] or T shr (32 - K[51]); +
1939 D := D xor (Cast256_Data[0, T shr 24] xor +
1940 Cast256_Data[1, T shr 16 and $FF] - +
1941 Cast256_Data[2, T shr 8 and $FF] + +
1942 Cast256_Data[3, T and $FF]); +
1943 K := @K[4]; +
1944 end; +
1945 for I := 0 to 5 do +
1946 begin +
1947 T := K[0] + A; +
1948 T := T shl K[48] or T shr (32 - K[48]); +
1949 D := D xor (Cast256_Data[0, T shr 24] xor +
1950 Cast256_Data[1, T shr 16 and $FF] - +
1951 Cast256_Data[2, T shr 8 and $FF] + +
1952 Cast256_Data[3, T and $FF]); +
1953 T := K[1] - B; +
1954 T := T shl K[49] or T shr (32 - K[49]); +
1955 A := A xor (Cast256_Data[0, T shr 24] + +
1956 Cast256_Data[1, T shr 16 and $FF] xor +
1957 Cast256_Data[2, T shr 8 and $FF] - +
1958 Cast256_Data[3, T and $FF]); +
1959 T := K[2] xor C; +
1960 T := T shl K[50] or T shr (32 - K[50]); +
1961 B := B xor (Cast256_Data[0, T shr 24] - +
1962 Cast256_Data[1, T shr 16 and $FF] + +
1963 Cast256_Data[2, T shr 8 and $FF] xor +
1964 Cast256_Data[3, T and $FF]); +
1965 T := K[3] + D; +
1966 T := T shl K[51] or T shr (32 - K[51]); +
1967 C := C xor (Cast256_Data[0, T shr 24] xor +
1968 Cast256_Data[1, T shr 16 and $FF] - +
1969 Cast256_Data[2, T shr 8 and $FF] + +
1970 Cast256_Data[3, T and $FF]); +
1971 K := @K[4]; +
1972 end; +
1973 PUInt32Array(Dest)[0] := A; +
1974 PUInt32Array(Dest)[1] := B; +
1975 PUInt32Array(Dest)[2] := C; +
1976 PUInt32Array(Dest)[3] := D; +
1977 SwapUInt32Buffer(Dest^, Dest^, 4); +
1978end; +
1979 +
1980procedure TCipher_Cast256.DoDecode(Source, Dest: Pointer; Size: Integer); +
1981var +
1982 I, T, A, B, C, D: UInt32; +
1983 K: PUInt32Array; +
1984begin +
1985 Assert(Size = Context.BlockSize); +
1986 +
1987 K := @PUInt32Array(FAdditionalBuffer)[44]; +
1988 SwapUInt32Buffer(Source^, Dest^, 4); +
1989 A := PUInt32Array(Dest)[0]; +
1990 B := PUInt32Array(Dest)[1]; +
1991 C := PUInt32Array(Dest)[2]; +
1992 D := PUInt32Array(Dest)[3]; +
1993 for I := 0 to 5 do +
1994 begin +
1995 T := K[3] + D; +
1996 T := T shl K[51] or T shr (32 - K[51]); +
1997 C := C xor (Cast256_Data[0, T shr 24] xor +
1998 Cast256_Data[1, T shr 16 and $FF] - +
1999 Cast256_Data[2, T shr 8 and $FF] + +
2000 Cast256_Data[3, T and $FF]); +
2001 T := K[2] xor C; +
2002 T := T shl K[50] or T shr (32 - K[50]); +
2003 B := B xor (Cast256_Data[0, T shr 24] - +
2004 Cast256_Data[1, T shr 16 and $FF] + +
2005 Cast256_Data[2, T shr 8 and $FF] xor +
2006 Cast256_Data[3, T and $FF]); +
2007 T := K[1] - B; +
2008 T := T shl K[49] or T shr (32 - K[49]); +
2009 A := A xor (Cast256_Data[0, T shr 24] + +
2010 Cast256_Data[1, T shr 16 and $FF] xor +
2011 Cast256_Data[2, T shr 8 and $FF] - +
2012 Cast256_Data[3, T and $FF]); +
2013 T := K[0] + A; +
2014 T := T shl K[48] or T shr (32 - K[48]); +
2015 D := D xor (Cast256_Data[0, T shr 24] xor +
2016 Cast256_Data[1, T shr 16 and $FF] - +
2017 Cast256_Data[2, T shr 8 and $FF] + +
2018 Cast256_Data[3, T and $FF]); +
2019 Dec(PUInt32(K), 4); +
2020 end; +
2021 for I := 0 to 5 do +
2022 begin +
2023 T := K[3] + A; +
2024 T := T shl K[51] or T shr (32 - K[51]); +
2025 D := D xor (Cast256_Data[0, T shr 24] xor +
2026 Cast256_Data[1, T shr 16 and $FF] - +
2027 Cast256_Data[2, T shr 8 and $FF] + +
2028 Cast256_Data[3, T and $FF]); +
2029 T := K[2] - B; +
2030 T := T shl K[50] or T shr (32 - K[50]); +
2031 A := A xor (Cast256_Data[0, T shr 24] + +
2032 Cast256_Data[1, T shr 16 and $FF] xor +
2033 Cast256_Data[2, T shr 8 and $FF] - +
2034 Cast256_Data[3, T and $FF]); +
2035 T := K[1] xor C; +
2036 T := T shl K[49] or T shr (32 - K[49]); +
2037 B := B xor (Cast256_Data[0, T shr 24] - +
2038 Cast256_Data[1, T shr 16 and $FF] + +
2039 Cast256_Data[2, T shr 8 and $FF] xor +
2040 Cast256_Data[3, T and $FF]); +
2041 T := K[0] + D; +
2042 T := T shl K[48] or T shr (32 - K[48]); +
2043 C := C xor (Cast256_Data[0, T shr 24] xor +
2044 Cast256_Data[1, T shr 16 and $FF] - +
2045 Cast256_Data[2, T shr 8 and $FF] + +
2046 Cast256_Data[3, T and $FF]); +
2047 Dec(PUInt32(K), 4); +
2048 end; +
2049 PUInt32Array(Dest)[0] := A; +
2050 PUInt32Array(Dest)[1] := B; +
2051 PUInt32Array(Dest)[2] := C; +
2052 PUInt32Array(Dest)[3] := D; +
2053 SwapUInt32Buffer(Dest^, Dest^, 4); +
2054end; +
2055 +
2056{ TCipher_Mars } +
2057 +
2058class function TCipher_Mars.Context: TCipherContext; +
2059begin +
2060 Result.KeySize := 56; +
2061 Result.BlockSize := 16; +
2062 Result.BufferSize := 16; +
2063 Result.AdditionalBufferSize := 160; +
2064 Result.NeedsAdditionalBufferBackup := False; +
2065 Result.MinRounds := 1; +
2066 Result.MaxRounds := 1; +
2067 Result.CipherType := [ctSymmetric, ctBlock]; +
2068end; +
2069 +
2070procedure TCipher_Mars.DoInit(const Key; Size: Integer); +
2071var +
2072 B: PUInt32Array; +
2073 +
2074 function FixKey(K, R: UInt32): UInt32; +
2075 var +
2076 M1, M2: UInt32; +
2077 I: UInt32; +
2078 begin +
2079 I := K and 3; +
2080 K := K or 3; +
2081 M1 := not K xor (K shl 1); +
2082 M2 := M1 and (M1 shl 1); +
2083 M2 := M2 and (M2 shl 2); +
2084 M2 := M2 and (M2 shl 4); +
2085 M2 := M2 and (M1 shl 8); +
2086 M2 := M2 and $FFFFFE00; +
2087 if M2 = 0 then +
2088 begin +
2089 Result := K; +
2090 Exit; +
2091 end; +
2092 M1 := M2 or (M2 shr 1); +
2093 M1 := M1 or (M1 shr 2); +
2094 M1 := M1 or (M2 shr 4); +
2095 M1 := M1 or (M1 shr 5); +
2096 M1 := M1 and ((not K xor (K shl 1)) and (not K xor (K shr 1)) and $7FFFFFFC); +
2097 Result := K xor ((B[265 + I] shl R or B[265 + I] shr (32 - R)) and M1); +
2098 end; +
2099 +
2100var +
2101 T: array[0..14] of UInt32; +
2102 I, J, L: UInt32; +
2103 U: UInt32; +
2104 K: PUInt32Array; +
2105begin +
2106 K := FAdditionalBuffer; +
2107 B := @Mars_Data; +
2108 FillChar(T, SizeOf(T), 0); +
2109 Move(Key, T, Size); +
2110 Size := Size div 4; +
2111 T[Size] := Size; +
2112 for J := 0 to 3 do +
2113 begin +
2114 for I := 0 to 14 do +
2115 begin +
2116 U := T[(I + 8) mod 15] xor T[(I + 13) mod 15]; +
2117 T[I] := T[I] xor (U shl 3 or U shr 29) xor (I * 4 + J); +
2118 end; +
2119 for L := 0 to 3 do +
2120 begin +
2121 for I := 0 to 14 do +
2122 begin +
2123 Inc(T[I], B[T[(I + 14) mod 15] and $1FF]); +
2124 T[I] := T[I] shl 9 or T[I] shr 23; +
2125 end; +
2126 end; +
2127 for I := 0 to 9 do +
2128 K[(J * 10) + I] := T[(I * 4) mod 15]; +
2129 end; +
2130 I := 5; +
2131 repeat +
2132 K[I] := FixKey(K[I], K[I - 1]); +
2133 Inc(I, 2); +
2134 until I >= 37; +
2135 +
2136 inherited; +
2137end; +
2138 +
2139procedure TCipher_Mars.DoEncode(Source, Dest: Pointer; Size: Integer); +
2140var +
2141 K: PUInt32Array; +
2142 I, L, R, A, B, C, D: UInt32; +
2143begin +
2144 Assert(Size = Context.BlockSize); +
2145 +
2146 K := FAdditionalBuffer; +
2147 A := PUInt32Array(Source)[0] + K[0]; +
2148 B := PUInt32Array(Source)[1] + K[1]; +
2149 C := PUInt32Array(Source)[2] + K[2]; +
2150 D := PUInt32Array(Source)[3] + K[3]; +
2151 K := @K[4]; +
2152 for I := 0 to 1 do +
2153 begin +
2154 B := B xor Mars_Data[A and $FF] + Mars_Data[A shr 8 and $FF + 256]; +
2155 Inc(C, Mars_Data[A shr 16 and $FF]); +
2156 D := D xor Mars_Data[A shr 24 + 256]; +
2157 A := (A shr 24 or A shl 8) + D; +
2158 +
2159 C := C xor Mars_Data[B and $FF] + Mars_Data[B shr 8 and $FF + 256]; +
2160 Inc(D, Mars_Data[B shr 16 and $FF]); +
2161 A := A xor Mars_Data[B shr 24 + 256]; +
2162 B := (B shr 24 or B shl 8) + C; +
2163 +
2164 D := D xor Mars_Data[C and $FF] + Mars_Data[C shr 8 and $FF + 256]; +
2165 Inc(A, Mars_Data[C shr 16 and $FF]); +
2166 B := B xor Mars_Data[C shr 24 + 256]; +
2167 C := C shr 24 or C shl 8; +
2168 +
2169 A := A xor Mars_Data[D and $FF] + Mars_Data[D shr 8 and $FF + 256]; +
2170 Inc(B, Mars_Data[D shr 16 and $FF]); +
2171 C := C xor Mars_Data[D shr 24 + 256]; +
2172 D := D shr 24 or D shl 8; +
2173 end; +
2174 +
2175 for I := 0 to 3 do +
2176 begin +
2177 L := A + K[0]; +
2178 A := A shl 13 or A shr 19; +
2179 R := A * K[1]; +
2180 R := R shl 5 or R shr 27; +
2181 Inc(C, L shl R or L shr (32 - R)); +
2182 L := Mars_Data[L and $1FF] xor R; +
2183 R := R shl 5 or R shr 27; +
2184 L := L xor R; +
2185 L := L shl R or L shr (32 - R); +
2186 +
2187 if I <= 1 then +
2188 begin +
2189 Inc(B, L); +
2190 D := D xor R; +
2191 end +
2192 else +
2193 begin +
2194 Inc(D, L); +
2195 B := B xor R; +
2196 end; +
2197 L := B + K[2]; +
2198 B := B shl 13 or B shr 19; +
2199 R := B * K[3]; +
2200 R := R shl 5 or R shr 27; +
2201 Inc(D, L shl R or L shr (32 - R)); +
2202 L := Mars_Data[L and $1FF] xor R; +
2203 R := R shl 5 or R shr 27; +
2204 L := L xor R; +
2205 L := L shl R or L shr (32 - R); +
2206 if I <= 1 then +
2207 begin +
2208 Inc(C, L); +
2209 A := A xor R; +
2210 end +
2211 else +
2212 begin +
2213 Inc(A, L); +
2214 C := C xor R; +
2215 end; +
2216 L := C + K[4]; +
2217 C := C shl 13 or C shr 19; +
2218 R := C * K[5]; +
2219 R := R shl 5 or R shr 27; +
2220 Inc(A, L shl R or L shr (32 - R)); +
2221 L := Mars_Data[L and $1FF] xor R; +
2222 R := R shl 5 or R shr 27; +
2223 L := L xor R; +
2224 L := L shl R or L shr (32 - R); +
2225 if I <= 1 then +
2226 begin +
2227 Inc(D, L); +
2228 B := B xor R; +
2229 end +
2230 else +
2231 begin +
2232 Inc(B, L); +
2233 D := D xor R; +
2234 end; +
2235 L := D + K[6]; +
2236 D := D shl 13 or D shr 19; +
2237 R := D * K[7]; +
2238 R := R shl 5 or R shr 27; +
2239 Inc(B, L shl R or L shr (32 - R)); +
2240 L := Mars_Data[L and $1FF] xor R; +
2241 R := R shl 5 or R shr 27; +
2242 L := L xor R; +
2243 L := L shl R or L shr (32 - R); +
2244 if I <= 1 then +
2245 begin +
2246 Inc(A, L); +
2247 C := C xor R; +
2248 end +
2249 else +
2250 begin +
2251 Inc(C, L); +
2252 A := A xor R; +
2253 end; +
2254 K := @K[8]; +
2255 end; +
2256 for I := 0 to 1 do +
2257 begin +
2258 B := B xor Mars_Data[A and $FF + 256]; +
2259 Dec(C, Mars_Data[A shr 24]); +
2260 D := D - Mars_Data[A shr 16 and $FF + 256] xor Mars_Data[A shr 8 and $FF]; +
2261 A := A shl 24 or A shr 8; +
2262 C := C xor Mars_Data[B and $FF + 256]; +
2263 Dec(D, Mars_Data[B shr 24]); +
2264 A := A - Mars_Data[B shr 16 and $FF + 256] xor Mars_Data[B shr 8 and $FF]; +
2265 B := B shl 24 or B shr 8; +
2266 Dec(C, B); +
2267 D := D xor Mars_Data[C and $FF + 256]; +
2268 Dec(A, Mars_Data[C shr 24]); +
2269 B := B - Mars_Data[C shr 16 and $FF + 256] xor Mars_Data[C shr 8 and $FF]; +
2270 C := C shl 24 or C shr 8; +
2271 Dec(D, A); +
2272 A := A xor Mars_Data[D and $FF + 256]; +
2273 Dec(B, Mars_Data[D shr 24]); +
2274 C := C - Mars_Data[D shr 16 and $FF + 256] xor Mars_Data[D shr 8 and $FF]; +
2275 D := D shl 24 or D shr 8; +
2276 end; +
2277 PUInt32Array(Dest)[0] := A - K[0]; +
2278 PUInt32Array(Dest)[1] := B - K[1]; +
2279 PUInt32Array(Dest)[2] := C - K[2]; +
2280 PUInt32Array(Dest)[3] := D - K[3]; +
2281end; +
2282 +
2283procedure TCipher_Mars.DoDecode(Source, Dest: Pointer; Size: Integer); +
2284var +
2285 K: PUInt32Array; +
2286 I, L, R, A, B, C, D: UInt32; +
2287begin +
2288 Assert(Size = Context.BlockSize); +
2289 +
2290 K := @PUInt32Array(FAdditionalBuffer)[28]; +
2291 A := PUInt32Array(Source)[0] + K[8]; +
2292 B := PUInt32Array(Source)[1] + K[9]; +
2293 C := PUInt32Array(Source)[2] + K[10]; +
2294 D := PUInt32Array(Source)[3] + K[11]; +
2295 for I := 0 to 1 do +
2296 begin +
2297 D := D shr 24 or D shl 8; +
2298 C := C xor Mars_Data[D shr 8 and $FF] + Mars_Data[D shr 16 and $FF + 256]; +
2299 Inc(B, Mars_Data[D shr 24]); +
2300 A := A xor Mars_Data[D and $FF + 256]; +
2301 Inc(D, A); +
2302 C := C shr 24 or C shl 8; +
2303 B := B xor Mars_Data[C shr 8 and $FF] + Mars_Data[C shr 16 and $FF + 256]; +
2304 Inc(A, Mars_Data[C shr 24]); +
2305 D := D xor Mars_Data[C and $FF + 256]; +
2306 Inc(C, B); +
2307 B := B shr 24 or B shl 8; +
2308 A := A xor Mars_Data[B shr 8 and $FF] + Mars_Data[B shr 16 and $FF + 256]; +
2309 Inc(D, Mars_Data[B shr 24]); +
2310 C := C xor Mars_Data[B and $FF + 256]; +
2311 A := A shr 24 or A shl 8; +
2312 D := D xor Mars_Data[A shr 8 and $FF] + Mars_Data[A shr 16 and $FF + 256]; +
2313 Inc(C, Mars_Data[A shr 24]); +
2314 B := B xor Mars_Data[A and $FF + 256]; +
2315 end; +
2316 for I := 0 to 3 do +
2317 begin +
2318 R := D * K[7]; +
2319 R := R shl 5 or R shr 27; +
2320 D := D shr 13 or D shl 19; +
2321 L := D + K[6]; +
2322 Dec(B, L shl R or L shr (32 - R)); +
2323 L := Mars_Data[L and $1FF] xor R; +
2324 R := R shl 5 or R shr 27; +
2325 L := L xor R; +
2326 L := L shl R or L shr (32 - R); +
2327 if I <= 1 then +
2328 begin +
2329 Dec(C, L); +
2330 A := A xor R; +
2331 end +
2332 else +
2333 begin +
2334 Dec(A, L); +
2335 C := C xor R; +
2336 end; +
2337 R := C * K[5]; +
2338 R := R shl 5 or R shr 27; +
2339 C := C shr 13 or C shl 19; +
2340 L := C + K[4]; +
2341 Dec(A, L shl R or L shr (32 - R)); +
2342 L := Mars_Data[L and $1FF] xor R; +
2343 R := R shl 5 or R shr 27; +
2344 L := L xor R; +
2345 L := L shl R or L shr (32 - R); +
2346 if I <= 1 then +
2347 begin +
2348 Dec(B, L); +
2349 D := D xor R; +
2350 end +
2351 else +
2352 begin +
2353 Dec(D, L); +
2354 B := B xor R; +
2355 end; +
2356 R := B * K[3]; +
2357 R := R shl 5 or R shr 27; +
2358 B := B shr 13 or B shl 19; +
2359 L := B + K[2]; +
2360 Dec(D, L shl R or L shr (32 - R)); +
2361 L := Mars_Data[L and $1FF] xor R; +
2362 R := R shl 5 or R shr 27; +
2363 L := L xor R; +
2364 L := L shl R or L shr (32 - R); +
2365 if I <= 1 then +
2366 begin +
2367 Dec(A, L); +
2368 C := C xor R; +
2369 end +
2370 else +
2371 begin +
2372 Dec(C, L); +
2373 A := A xor R; +
2374 end; +
2375 R := A * K[1]; +
2376 R := R shl 5 or R shr 27; +
2377 A := A shr 13 or A shl 19; +
2378 L := A + K[0]; +
2379 Dec(C, L shl R or L shr (32 - R)); +
2380 L := Mars_Data[L and $1FF] xor R; +
2381 R := R shl 5 or R shr 27; +
2382 L := L xor R; +
2383 L := L shl R or L shr (32 - R); +
2384 if I <= 1 then +
2385 begin +
2386 Dec(D, L); +
2387 B := B xor R; +
2388 end +
2389 else +
2390 begin +
2391 Dec(B, L); +
2392 D := D xor R; +
2393 end; +
2394 Dec(PUInt32(K), 8); +
2395 end; +
2396 for I := 0 to 1 do +
2397 begin +
2398 D := D shl 24 or D shr 8; +
2399 C := C xor Mars_Data[D shr 24 + 256]; +
2400 Dec(B, Mars_Data[D shr 16 and $FF]); +
2401 A := A - Mars_Data[D shr 8 and $FF + 256] xor Mars_Data[D and $FF]; +
2402 C := C shl 24 or C shr 8; +
2403 B := B xor Mars_Data[C shr 24 + 256]; +
2404 Dec(A, Mars_Data[C shr 16 and $FF]); +
2405 D := D - Mars_Data[C shr 8 and $FF + 256] xor Mars_Data[C and $FF]; +
2406 Dec(B, C); +
2407 B := B shl 24 or B shr 8; +
2408 A := A xor Mars_Data[B shr 24 + 256]; +
2409 Dec(D, Mars_Data[B shr 16 and $FF]); +
2410 C := C - Mars_Data[B shr 8 and $FF + 256] xor Mars_Data[B and $FF]; +
2411 Dec(A, D); +
2412 A := A shl 24 or A shr 8; +
2413 D := D xor Mars_Data[A shr 24 + 256]; +
2414 Dec(C, Mars_Data[A shr 16 and $FF]); +
2415 B := B - Mars_Data[A shr 8 and $FF + 256] xor Mars_Data[A and $FF]; +
2416 end; +
2417 PUInt32Array(Dest)[0] := A - K[4]; +
2418 PUInt32Array(Dest)[1] := B - K[5]; +
2419 PUInt32Array(Dest)[2] := C - K[6]; +
2420 PUInt32Array(Dest)[3] := D - K[7]; +
2421end; +
2422 +
2423{ TCipher_RC4 } +
2424 +
2425class function TCipher_RC4.Context: TCipherContext; +
2426begin +
2427 Result.KeySize := 256; +
2428 Result.BlockSize := 1; +
2429 Result.BufferSize := 16; +
2430 Result.AdditionalBufferSize := 256 + 2; +
2431 Result.NeedsAdditionalBufferBackup := true; +
2432 Result.MinRounds := 1; +
2433 Result.MaxRounds := 1; +
2434 Result.CipherType := [ctSymmetric, ctStream]; +
2435end; +
2436 +
2437procedure TCipher_RC4.DoInit(const Key; Size: Integer); +
2438var +
2439 K: array[0..255] of Byte; +
2440 D: PByteArray; +
2441 I, J, T: Byte; +
2442begin +
2443 D := FAdditionalBuffer; +
2444 for I := 0 to 255 do +
2445 begin +
2446 D[I] := I; +
2447 if Size > 0 then +
2448 K[I] := TByteArray(Key)[I mod Size]; +
2449 end; +
2450 J := 0; +
2451 for I := 0 to 255 do +
2452 begin +
2453 J := J + D[I] + K[I]; +
2454 T := D[I]; +
2455 D[I] := D[J]; +
2456 D[J] := T; +
2457 end; +
2458 D[256] := 0; +
2459 D[257] := 0; +
2460 ProtectBuffer(K, SizeOf(K)); +
2461 +
2462 inherited; +
2463end; +
2464 +
2465procedure TCipher_RC4.DoEncode(Source, Dest: Pointer; Size: Integer); +
2466var +
2467 D: PByteArray; +
2468 S: Integer; +
2469 T, I, J: Byte; +
2470begin +
2471 D := FAdditionalBuffer; +
2472 I := D[256]; +
2473 J := D[257]; +
2474 for S := 0 to Size - 1 do +
2475 begin +
2476 Inc(I); +
2477 T := D[I]; +
2478 Inc(J, T); +
2479 D[I] := D[J]; +
2480 D[J] := T; +
2481 PByteArray(Dest)[S] := PByteArray(Source)[S] xor D[Byte(D[I] + T)]; +
2482 end; +
2483 D[256] := I; +
2484 D[257] := J; +
2485end; +
2486 +
2487procedure TCipher_RC4.DoDecode(Source, Dest: Pointer; Size: Integer); +
2488begin +
2489 DoEncode(Source, Dest, Size); +
2490end; +
2491 +
2492{ TCipher_RC6 } +
2493 +
2494class function TCipher_RC6.Context: TCipherContext; +
2495begin +
2496 Result.KeySize := 256; +
2497 Result.BlockSize := 16; +
2498 Result.BufferSize := 16; +
2499 Result.AdditionalBufferSize := 272; +
2500 Result.NeedsAdditionalBufferBackup := False; +
2501 Result.MinRounds := 16; +
2502 Result.MaxRounds := 24; +
2503 Result.CipherType := [ctSymmetric, ctBlock]; +
2504end; +
2505 +
2506procedure TCipher_RC6.SetRounds(Value: Integer); +
2507begin +
2508 if Value < Context.MinRounds then +
2509 Value := Context.MinRounds +
2510 else +
2511 if Value > Context.MaxRounds then +
2512 Value := Context.MaxRounds; +
2513 if Value <> FRounds then +
2514 begin +
2515 if not (FState in [csNew, csInitialized, csDone]) then +
2516 Done; +
2517 FRounds := Value; +
2518 end; +
2519end; +
2520 +
2521procedure TCipher_RC6.DoInit(const Key; Size: Integer); +
2522var +
2523 K: array[0..63] of UInt32; +
2524 D: PUInt32Array; +
2525 I, J, L, A, B, Z, T: UInt32; +
2526begin +
2527 LimitRounds; +
2528 +
2529 D := FAdditionalBuffer; +
2530 FillChar(K, SizeOf(K), 0); +
2531 Move(Key, K, Size); +
2532 L := Size shr 2; +
2533 if Size and 3 <> 0 then +
2534 Inc(L); +
2535 if L <= 0 then +
2536 L := 1; +
2537 J := $B7E15163; +
2538 for I := 0 to (FRounds + 2) * 2 do +
2539 begin +
2540 D[I] := J; +
2541 Inc(J, $9E3779B9); +
2542 end; +
2543 if L > UInt32(FRounds + 2) * 2 then +
2544 Z := L * 3 +
2545 else +
2546 Z := (FRounds + 2) * 6; +
2547 I := 0; +
2548 J := 0; +
2549 A := 0; +
2550 B := 0; +
2551 for Z := Z downto 1 do +
2552 begin +
2553 A := A + B + D[I]; +
2554 A := A shl 3 or A shr 29; +
2555 D[I] := A; +
2556 T := A + B; +
2557 B := T + K[J]; +
2558 B := B shl T or B shr (32 - T); +
2559 K[J] := B; +
2560 I := (I + 1) mod (UInt32(FRounds + 2) * 2); +
2561 J := (J + 1) mod L; +
2562 end; +
2563 ProtectBuffer(K, SizeOf(K)); +
2564 +
2565 inherited; +
2566end; +
2567 +
2568procedure TCipher_RC6.LimitRounds; +
2569begin +
2570 if FRounds = 0 then +
2571 FRounds := 20 +
2572 else +
2573 if FRounds < 16 then +
2574 FRounds := 16 +
2575 else +
2576 if FRounds > 24 then +
2577 FRounds := 24; +
2578end; +
2579 +
2580procedure TCipher_RC6.DoEncode(Source, Dest: Pointer; Size: Integer); +
2581{$IFDEF X86ASM} +
2582asm +
2583 PUSH EBX +
2584 PUSH ESI +
2585 PUSH EDI +
2586 PUSH EBP +
2587 PUSH ECX +
2588 MOV EBP,[EAX].TCipher_RC6.FRounds // Rounds +
2589 MOV ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key +
2590 MOV EAX,[EDX + 0] // A +
2591 MOV EBX,[EDX + 4] // B +
2592 MOV EDI,[EDX + 8] // C +
2593 MOV EDX,[EDX + 12] // D +
2594 ADD EBX,[ESI + 0] // Inc(B, K[0]) +
2595 ADD EDX,[ESI + 4] // Inc(D, K[1]) +
2596 ADD ESI,8 // Inc(PInteger(K), 2) +
2597@@1: LEA ECX,[EBX * 2 + 1] // ECX := B * 2 + 1 +
2598 IMUL ECX,EBX // ECX := ECX * B +
2599 ROL ECX,5 // T := ROL(B * (B * 2 + 1), 5) +
2600 PUSH ECX // save T +
2601 XOR EAX,ECX // A := A xor T +
2602 LEA ECX,[EDX * 2 + 1] // ECX := D * 2 + 1 +
2603 IMUL ECX,EDX // ECX := ECX * D +
2604 ROL ECX,5 // U := ROL(D * (D * 2 + 1), 5) +
2605 XOR EDI,ECX // C := C xor U +
2606 ROL EAX,CL // A := ROL(A xor T, U) +
2607 POP ECX // restore T +
2608 ADD EAX,[ESI + 0] // Inc(A, K[0]) +
2609 ROL EDI,CL // C := ROL(C xor U, T) +
2610 MOV ECX,EAX // T := A +
2611 ADD EDI,[ESI + 4] // Inc(C, K[1]) +
2612 MOV EAX,EBX // A := B +
2613 MOV EBX,EDI // B := C +
2614 MOV EDI,EDX // C := D +
2615 DEC EBP +
2616 MOV EDX,ECX // D := T; +
2617 LEA ESI,[ESI + 8] // Inc(PInteger(K), 2) +
2618 JNZ @@1 +
2619 ADD EAX,[ESI + 0] // Inc(A, K[0]) +
2620 ADD EDI,[ESI + 4] // Inc(C, K[1]) +
2621 POP ECX +
2622 MOV [ECX + 0],EAX // A +
2623 MOV [ECX + 4],EBX // B +
2624 MOV [ECX + 8],EDI // C +
2625 MOV [ECX + 12],EDX // D +
2626 POP EBP +
2627 POP EDI +
2628 POP ESI +
2629 POP EBX +
2630end; +
2631{$ELSE !X86ASM} +
2632var +
2633 K: PUInt32Array; +
2634 I, T, U, A, B, C, D: UInt32; +
2635begin +
2636 Assert(Size = Context.BlockSize); +
2637 +
2638 K := Pointer(FAdditionalBuffer); +
2639 A := PUInt32Array(Source)[0]; +
2640 B := PUInt32Array(Source)[1] + K[0]; +
2641 C := PUInt32Array(Source)[2]; +
2642 D := PUInt32Array(Source)[3] + K[1]; +
2643 for I := 1 to FRounds do +
2644 begin +
2645 K := @K[2]; +
2646 T := B * (B + B + 1); +
2647 T := T shl 5 or T shr 27; +
2648 U := D * (D + D + 1); +
2649 U := U shl 5 or U shr 27; +
2650 A := A xor T; +
2651 A := A shl U or A shr (32 - U) + K[0]; +
2652 C := C xor U; +
2653 C := C shl T or C shr (32 - T) + K[1]; +
2654 T := A; A := B; B := C; C := D; D := T; +
2655 end; +
2656 PUInt32Array(Dest)[0] := A + K[2]; +
2657 PUInt32Array(Dest)[1] := B; +
2658 PUInt32Array(Dest)[2] := C + K[3]; +
2659 PUInt32Array(Dest)[3] := D; +
2660end; +
2661{$ENDIF !X86ASM} +
2662 +
2663procedure TCipher_RC6.DoDecode(Source, Dest: Pointer; Size: Integer); +
2664{$IFDEF X86ASM} +
2665asm +
2666 PUSH EBX +
2667 PUSH ESI +
2668 PUSH EDI +
2669 PUSH EBP +
2670 PUSH ECX +
2671 MOV EBP,[EAX].TCipher_RC6.FRounds // Rounds +
2672 MOV ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key +
2673 LEA ESI,[ESI + EBP * 8] // Key[FRounds * 2] +
2674 MOV EAX,[EDX + 0] // A +
2675 MOV EBX,[EDX + 4] // B +
2676 MOV EDI,[EDX + 8] // C +
2677 MOV EDX,[EDX + 12] // D +
2678 SUB EDI,[ESI + 12] // Dec(C, K[3]) +
2679 SUB EAX,[ESI + 8] // Dec(A, K[2]) +
2680@@1: MOV ECX,EAX // T := A +
2681 SUB EDX,[ESI + 0] // Dec(A, K[0]) +
2682 MOV EAX,EDX // A := D +
2683 MOV EDX,EDI // D := C +
2684 SUB EBX,[ESI + 4] // Dec(C, K[1]) +
2685 MOV EDI,EBX // C := B +
2686 MOV EBX,ECX // B := T; +
2687 LEA ECX,[EDX * 2 + 1] // ECX := D * 2 + 1 +
2688 IMUL ECX,EDX // ECX := ECX * D +
2689 ROL ECX,5 // U := ROL(D * (D * 2 + 1), 5) +
2690 PUSH ECX // save U +
2691 ROR EAX,CL // A := ROR(A - K[0], U) +
2692 LEA ECX,[EBX * 2 + 1] // ECX := B * 2 + 1 +
2693 IMUL ECX,EBX // ECX := ECX * B +
2694 ROL ECX,5 // T := ROL(B * (B * 2 + 1), 5) +
2695 XOR EAX,ECX // A := A xor T +
2696 ROR EDI,CL // C := ROR(C - K[1], T) +
2697 POP ECX // restore U +
2698 XOR EDI,ECX // C := C xor U +
2699 DEC EBP +
2700 LEA ESI,[ESI - 8] // Dec(PInteger(K), 2) +
2701 JNZ @@1 +
2702 SUB EBX,[ESI + 0] // Dec(B, K[0]) +
2703 SUB EDX,[ESI + 4] // Inc(D, K[1]) +
2704 POP ECX +
2705 MOV [ECX + 0],EAX // A +
2706 MOV [ECX + 4],EBX // B +
2707 MOV [ECX + 8],EDI // C +
2708 MOV [ECX + 12],EDX // D +
2709 POP EBP +
2710 POP EDI +
2711 POP ESI +
2712 POP EBX +
2713end; +
2714{$ELSE !X86ASM} +
2715var +
2716 I, U, T, A, B, C, D: UInt32; +
2717 K: PUInt32Array; +
2718begin +
2719 Assert(Size = Context.BlockSize); +
2720 +
2721 K := @PUInt32Array(FAdditionalBuffer)[FRounds * 2]; +
2722 A := PUInt32Array(Source)[0] - K[2]; +
2723 B := PUInt32Array(Source)[1]; +
2724 C := PUInt32Array(Source)[2] - K[3]; +
2725 D := PUInt32Array(Source)[3]; +
2726 +
2727 for I := 1 to FRounds do +
2728 begin +
2729 T := A; A := D; D := C; C := B; B := T; +
2730 U := D * (D + D + 1); +
2731 U := U shl 5 or U shr 27; +
2732 T := B * (B + B + 1); +
2733 T := T shl 5 or T shr 27; +
2734 C := C - K[1]; +
2735 C := C shr T or C shl (32 - T) xor U; +
2736 A := A - K[0]; +
2737 A := A shr U or A shl (32 - U) xor T; +
2738 Dec(PUInt32(K), 2); +
2739 end; +
2740 +
2741 PUInt32Array(Dest)[0] := A; +
2742 PUInt32Array(Dest)[1] := B - K[0]; +
2743 PUInt32Array(Dest)[2] := C; +
2744 PUInt32Array(Dest)[3] := D - K[1]; +
2745end; +
2746{$ENDIF !X86ASM} +
2747 +
2748{ TCipher_Rijndael } +
2749 +
2750class function TCipher_Rijndael.Context: TCipherContext; +
2751const +
2752 // don't change this! +
2753 Rijndael_Blocks = 4; +
2754 Rijndael_Rounds = 14; +
2755begin +
2756 Result.KeySize := 32; +
2757 Result.BlockSize := Rijndael_Blocks * 4; +
2758 Result.BufferSize := Rijndael_Blocks * 4; +
2759 Result.AdditionalBufferSize := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2; +
2760 Result.NeedsAdditionalBufferBackup := False; +
2761 Result.MinRounds := 1; +
2762 Result.MaxRounds := 1; +
2763 Result.CipherType := [ctSymmetric, ctBlock]; +
2764end; +
2765 +
2766procedure TCipher_Rijndael.DoInit(const Key; Size: Integer); +
2767{$REGION OldKeyShedule} +
2768{ +
2769 // Old Rijndael Key Scheduling: +
2770 +
2771 procedure BuildEncodeKey; +
2772 const +
2773 RND_Data: array[0..29] of Byte = ( +
2774 $01, $02, $04, $08, $10, $20, $40, $80, $1B, $36, $6C, $D8, $AB, $4D, $9A, +
2775 $2F, $5E, $BC, $63, $C6, $97, $35, $6A, $D4, $B3, $7D, $FA, $EF, $C5, $91 +
2776 ); +
2777 var +
2778 T, R: Integer; +
2779 +
2780 procedure NextRounds; +
2781 var +
2782 J: Integer; +
2783 begin +
2784 J := 0; +
2785 while (J < FRounds - 6) and (R <= FRounds) do +
2786 begin +
2787 while (J < FRounds - 6) and (T < Rijndael_Blocks) do +
2788 begin +
2789 PUInt32Array(FBuffer)[R * Rijndael_Blocks + T] := K[J]; +
2790 Inc(J); +
2791 Inc(T); +
2792 end; +
2793 if T = Rijndael_Blocks then +
2794 begin +
2795 T := 0; +
2796 Inc(R); +
2797 end; +
2798 end; +
2799 end; +
2800 +
2801 var +
2802 RND: PByte; +
2803 B: PByte; +
2804 I: Integer; +
2805 begin +
2806 R := 0; +
2807 T := 0; +
2808 RND := @RND_Data; +
2809 NextRounds; +
2810 while R <= FRounds do +
2811 begin +
2812 B := @K; +
2813 B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 8 and $FF] xor RND^; Inc(B); +
2814 B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 16 and $FF]; Inc(B); +
2815 B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 24]; Inc(B); +
2816 B^ := B^ xor Rijndael_S[0, K[FRounds - 7] and $FF]; +
2817 Inc(RND); +
2818 if FRounds = 14 then +
2819 begin +
2820 for I := 1 to 7 do +
2821 K[I] := K[I] xor K[I - 1]; +
2822 B := @K[4]; +
2823 B^ := B^ xor Rijndael_S[0, K[3] and $FF]; Inc(B); +
2824 B^ := B^ xor Rijndael_S[0, K[3] shr 8 and $FF]; Inc(B); +
2825 B^ := B^ xor Rijndael_S[0, K[3] shr 16 and $FF]; Inc(B); +
2826 B^ := B^ xor Rijndael_S[0, K[3] shr 24]; +
2827 for I := 5 to 7 do +
2828 K[I] := K[I] xor K[I - 1]; +
2829 end +
2830 else +
2831 for I := 1 to FRounds - 7 do +
2832 K[I] := K[I] xor K[I - 1]; +
2833 NextRounds; +
2834 end; +
2835 end; +
2836 +
2837 procedure BuildDecodeKey; +
2838 var +
2839 I: Integer; +
2840 D: PUInt32; +
2841 begin +
2842 D := Pointer(PAnsiChar(FBuffer) + FBufferSize shr 1); // for Pointer Math +
2843 Move(FBuffer^, D^, FBufferSize shr 1); +
2844 Inc(D, 4); +
2845 for I := 0 to FRounds * 4 - 5 do +
2846 begin +
2847 D^ := Rijndael_Key[D^ and $FF] xor +
2848 (Rijndael_Key[D^ shr 8 and $FF] shl 8 or Rijndael_Key[D^ shr 8 and $FF] shr 24) xor +
2849 (Rijndael_Key[D^ shr 16 and $FF] shl 16 or Rijndael_Key[D^ shr 16 and $FF] shr 16) xor +
2850 (Rijndael_Key[D^ shr 24] shl 24 or Rijndael_Key[D^ shr 24] shr 8); +
2851 Inc(D); +
2852 end; +
2853 end; } +
2854{$ENDREGION} +
2855 +
2856begin +
2857 if Size <= 16 then +
2858 FRounds := 10 +
2859 else +
2860 if Size <= 24 then +
2861 FRounds := 12 +
2862 else +
2863 FRounds := 14; +
2864 FillChar(FAdditionalBuffer^, 32, 0); +
2865 Move(Key, FAdditionalBuffer^, Size); +
2866 BuildEncodeKey(Size); +
2867 BuildDecodeKey; +
2868 +
2869 inherited; +
2870end; +
2871 +
2872procedure TCipher_Rijndael.BuildEncodeKey(KeySize:Integer); +
2873var +
2874 I: Integer; +
2875 T: UInt32; +
2876 P: PUInt32Array; +
2877begin +
2878 P := FAdditionalBuffer; +
2879 if KeySize <= 16 then +
2880 begin +
2881 for I := 0 to 9 do +
2882 begin +
2883 T := P[3]; +
2884 P[4] := Rijndael_S[0, T shr 8 and $FF] xor +
2885 Rijndael_S[0, T shr 16 and $FF] shl 8 xor +
2886 Rijndael_S[0, T shr 24 ] shl 16 xor +
2887 Rijndael_S[0, T and $FF] shl 24 xor P[0] xor RijndaelEncryptionSheduleConst[I]; +
2888 P[5] := P[1] xor P[4]; +
2889 P[6] := P[2] xor P[5]; +
2890 P[7] := P[3] xor P[6]; +
2891 P := @P[4]; +
2892 end; +
2893 end +
2894 else +
2895 if KeySize <= 24 then +
2896 begin +
2897 for I := 0 to 7 do +
2898 begin +
2899 T := P[5]; +
2900 P[6] := Rijndael_S[0, T shr 8 and $FF] xor +
2901 Rijndael_S[0, T shr 16 and $FF] shl 8 xor +
2902 Rijndael_S[0, T shr 24 ] shl 16 xor +
2903 Rijndael_S[0, T and $FF] shl 24 xor P[0] xor RijndaelEncryptionSheduleConst[I]; +
2904 P[7] := P[1] xor P[6]; +
2905 P[8] := P[2] xor P[7]; +
2906 P[9] := P[3] xor P[8]; +
2907 if I = 7 then +
2908 Break; +
2909 P[10] := P[4] xor P[9]; +
2910 P[11] := P[5] xor P[10]; +
2911 P := @P[6]; +
2912 end; +
2913 end +
2914 else +
2915 begin +
2916 for I :=0 to 6 do +
2917 begin +
2918 T := P[7]; +
2919 P[8] := Rijndael_S[0, T shr 8 and $FF] xor +
2920 Rijndael_S[0, T shr 16 and $FF] shl 8 xor +
2921 Rijndael_S[0, T shr 24 ] shl 16 xor +
2922 Rijndael_S[0, T and $FF] shl 24 xor P[0] xor RijndaelEncryptionSheduleConst[I]; +
2923 P[9] := P[1] xor P[8]; +
2924 P[10] := P[2] xor P[9]; +
2925 P[11] := P[3] xor P[10]; +
2926 if I = 6 then +
2927 Break; +
2928 T := P[11]; +
2929 P[12] := Rijndael_S[0, T and $FF] xor +
2930 Rijndael_S[0, T shr 8 and $FF] shl 8 xor +
2931 Rijndael_S[0, T shr 16 and $FF] shl 16 xor +
2932 Rijndael_S[0, T shr 24 ] shl 24 xor P[4]; +
2933 P[13] := P[5] xor P[12]; +
2934 P[14] := P[6] xor P[13]; +
2935 P[15] := P[7] xor P[14]; +
2936 P := @P[8]; +
2937 end; +
2938 end; +
2939end; +
2940 +
2941procedure TCipher_Rijndael.BuildDecodeKey; +
2942var +
2943 P: PUInt32; +
2944 I: Integer; +
2945begin +
2946 P := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1); // for Pointer Math +
2947 Move(FAdditionalBuffer^, P^, FAdditionalBufferSize shr 1); +
2948 Inc(P, 4); +
2949 for I := 0 to FRounds * 4 - 5 do +
2950 begin +
2951 P^ := Rijndael_T[4, Rijndael_S[0, P^ and $FF]] xor +
2952 Rijndael_T[5, Rijndael_S[0, P^ shr 8 and $FF]] xor +
2953 Rijndael_T[6, Rijndael_S[0, P^ shr 16 and $FF]] xor +
2954 Rijndael_T[7, Rijndael_S[0, P^ shr 24 ]]; +
2955 Inc(P); +
2956 end; +
2957end; +
2958 +
2959procedure TCipher_Rijndael.DoEncode(Source, Dest: Pointer; Size: Integer); +
2960var +
2961 P: PUInt32Array; +
2962 I: Integer; +
2963 A2, B2, C2, D2: UInt32; +
2964 A1, B1, C1, D1: UInt32; +
2965begin +
2966 Assert(Size = Context.BlockSize); +
2967 +
2968 P := FAdditionalBuffer; +
2969 A1 := PUInt32Array(Source)[0]; +
2970 B1 := PUInt32Array(Source)[1]; +
2971 C1 := PUInt32Array(Source)[2]; +
2972 D1 := PUInt32Array(Source)[3]; +
2973 +
2974 for I := 2 to FRounds do +
2975 begin +
2976 A2 := A1 xor P[0]; +
2977 B2 := B1 xor P[1]; +
2978 C2 := C1 xor P[2]; +
2979 D2 := D1 xor P[3]; +
2980 +
2981 A1 := Rijndael_T[0, A2 and $FF] xor +
2982 Rijndael_T[1, B2 shr 8 and $FF] xor +
2983 Rijndael_T[2, C2 shr 16 and $FF] xor +
2984 Rijndael_T[3, D2 shr 24 ]; +
2985 B1 := Rijndael_T[0, B2 and $FF] xor +
2986 Rijndael_T[1, C2 shr 8 and $FF] xor +
2987 Rijndael_T[2, D2 shr 16 and $FF] xor +
2988 Rijndael_T[3, A2 shr 24 ]; +
2989 C1 := Rijndael_T[0, C2 and $FF] xor +
2990 Rijndael_T[1, D2 shr 8 and $FF] xor +
2991 Rijndael_T[2, A2 shr 16 and $FF] xor +
2992 Rijndael_T[3, B2 shr 24 ]; +
2993 D1 := Rijndael_T[0, D2 and $FF] xor +
2994 Rijndael_T[1, A2 shr 8 and $FF] xor +
2995 Rijndael_T[2, B2 shr 16 and $FF] xor +
2996 Rijndael_T[3, C2 shr 24 ]; +
2997 +
2998 P := @P[4]; +
2999 end; +
3000 +
3001 A2 := A1 xor P[0]; +
3002 B2 := B1 xor P[1]; +
3003 C2 := C1 xor P[2]; +
3004 D2 := D1 xor P[3]; +
3005 +
3006 PUInt32Array(Dest)[0] := (Rijndael_S[0, A2 and $FF] or +
3007 Rijndael_S[0, B2 shr 8 and $FF] shl 8 or +
3008 Rijndael_S[0, C2 shr 16 and $FF] shl 16 or +
3009 Rijndael_S[0, D2 shr 24 ] shl 24) xor P[4]; +
3010 PUInt32Array(Dest)[1] := (Rijndael_S[0, B2 and $FF] or +
3011 Rijndael_S[0, C2 shr 8 and $FF] shl 8 or +
3012 Rijndael_S[0, D2 shr 16 and $FF] shl 16 or +
3013 Rijndael_S[0, A2 shr 24 ] shl 24) xor P[5]; +
3014 PUInt32Array(Dest)[2] := (Rijndael_S[0, C2 and $FF] or +
3015 Rijndael_S[0, D2 shr 8 and $FF] shl 8 or +
3016 Rijndael_S[0, A2 shr 16 and $FF] shl 16 or +
3017 Rijndael_S[0, B2 shr 24 ] shl 24) xor P[6]; +
3018 PUInt32Array(Dest)[3] := (Rijndael_S[0, D2 and $FF] or +
3019 Rijndael_S[0, A2 shr 8 and $FF] shl 8 or +
3020 Rijndael_S[0, B2 shr 16 and $FF] shl 16 or +
3021 Rijndael_S[0, C2 shr 24 ] shl 24) xor P[7]; +
3022end; +
3023 +
3024procedure TCipher_Rijndael.DoDecode(Source, Dest: Pointer; Size: Integer); +
3025var +
3026 P: PUInt32Array; +
3027 I: Integer; +
3028 A2, B2, C2, D2: UInt32; +
3029 A1, B1, C1, D1: UInt32; +
3030begin +
3031 Assert(Size = Context.BlockSize); +
3032 +
3033 P := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1 + FRounds * 16); // for Pointer Math +
3034 A1 := PUInt32Array(Source)[0]; +
3035 B1 := PUInt32Array(Source)[1]; +
3036 C1 := PUInt32Array(Source)[2]; +
3037 D1 := PUInt32Array(Source)[3]; +
3038 +
3039 for I := 2 to FRounds do +
3040 begin +
3041 A2 := A1 xor P[0]; +
3042 B2 := B1 xor P[1]; +
3043 C2 := C1 xor P[2]; +
3044 D2 := D1 xor P[3]; +
3045 +
3046 A1 := Rijndael_T[4, A2 and $FF] xor +
3047 Rijndael_T[5, D2 shr 8 and $FF] xor +
3048 Rijndael_T[6, C2 shr 16 and $FF] xor +
3049 Rijndael_T[7, B2 shr 24 ]; +
3050 B1 := Rijndael_T[4, B2 and $FF] xor +
3051 Rijndael_T[5, A2 shr 8 and $FF] xor +
3052 Rijndael_T[6, D2 shr 16 and $FF] xor +
3053 Rijndael_T[7, C2 shr 24 ]; +
3054 C1 := Rijndael_T[4, C2 and $FF] xor +
3055 Rijndael_T[5, B2 shr 8 and $FF] xor +
3056 Rijndael_T[6, A2 shr 16 and $FF] xor +
3057 Rijndael_T[7, D2 shr 24 ]; +
3058 D1 := Rijndael_T[4, D2 and $FF] xor +
3059 Rijndael_T[5, C2 shr 8 and $FF] xor +
3060 Rijndael_T[6, B2 shr 16 and $FF] xor +
3061 Rijndael_T[7, A2 shr 24 ]; +
3062 +
3063 Dec(PUInt32(P), 4); +
3064 end; +
3065 +
3066 A2 := A1 xor P[0]; +
3067 B2 := B1 xor P[1]; +
3068 C2 := C1 xor P[2]; +
3069 D2 := D1 xor P[3]; +
3070 +
3071 Dec(PUInt32(P), 4); +
3072 +
3073 PUInt32Array(Dest)[0] := (Rijndael_S[1, A2 and $FF] or +
3074 Rijndael_S[1, D2 shr 8 and $FF] shl 8 or +
3075 Rijndael_S[1, C2 shr 16 and $FF] shl 16 or +
3076 Rijndael_S[1, B2 shr 24] shl 24) xor P[0]; +
3077 PUInt32Array(Dest)[1] := (Rijndael_S[1, B2 and $FF] or +
3078 Rijndael_S[1, A2 shr 8 and $FF] shl 8 or +
3079 Rijndael_S[1, D2 shr 16 and $FF] shl 16 or +
3080 Rijndael_S[1, C2 shr 24] shl 24) xor P[1]; +
3081 PUInt32Array(Dest)[2] := (Rijndael_S[1, C2 and $FF] or +
3082 Rijndael_S[1, B2 shr 8 and $FF] shl 8 or +
3083 Rijndael_S[1, A2 shr 16 and $FF] shl 16 or +
3084 Rijndael_S[1, D2 shr 24] shl 24) xor P[2]; +
3085 PUInt32Array(Dest)[3] := (Rijndael_S[1, D2 and $FF] or +
3086 Rijndael_S[1, C2 shr 8 and $FF] shl 8 or +
3087 Rijndael_S[1, B2 shr 16 and $FF] shl 16 or +
3088 Rijndael_S[1, A2 shr 24] shl 24) xor P[3]; +
3089end; +
3090 +
3091{ TCipher_AES128 } +
3092 +
3093class function TCipher_AES128.Context: TCipherContext; +
3094const +
3095 // don't change this! +
3096 Rijndael_Blocks = 4; +
3097 Rijndael_Rounds = 14; +
3098begin +
3099 Result.KeySize := 16; +
3100 Result.BlockSize := Rijndael_Blocks * 4; +
3101 Result.BufferSize := Rijndael_Blocks * 4; +
3102 Result.AdditionalBufferSize := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2; +
3103 Result.NeedsAdditionalBufferBackup := False; +
3104 Result.MinRounds := 1; +
3105 Result.MaxRounds := 1; +
3106 Result.CipherType := [ctSymmetric, ctBlock]; +
3107end; +
3108 +
3109procedure TCipher_AES128.DoInit(const Key; Size: Integer); +
3110begin +
3111 // number of rounds is fixed for 128 bit and if a size > 16 is given the +
3112 // inherited call should raise the "key material too large" exception. +
3113 // but that has still to be tested! +
3114 FRounds := 10; +
3115 +
3116 FillChar(FAdditionalBuffer^, 32, 0); +
3117 Move(Key, FAdditionalBuffer^, Size); +
3118 BuildEncodeKey(Size); +
3119 BuildDecodeKey; +
3120 +
3121 inherited; +
3122end; +
3123 +
3124{ TCipher_AES192 } +
3125 +
3126class function TCipher_AES192.Context: TCipherContext; +
3127const +
3128 // don't change this! +
3129 Rijndael_Blocks = 4; +
3130 Rijndael_Rounds = 14; +
3131begin +
3132 Result.KeySize := 24; +
3133 Result.BlockSize := Rijndael_Blocks * 4; +
3134 Result.BufferSize := Rijndael_Blocks * 4; +
3135 Result.AdditionalBufferSize := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2; +
3136 Result.NeedsAdditionalBufferBackup := False; +
3137 Result.MinRounds := 1; +
3138 Result.MaxRounds := 1; +
3139 Result.CipherType := [ctSymmetric, ctBlock]; +
3140end; +
3141 +
3142procedure TCipher_AES192.DoInit(const Key; Size: Integer); +
3143begin +
3144 // number of rounds is fixed for 192 bit and if a size > 24 is given the +
3145 // inherited call should raise the "key material too large" exception. +
3146 // but that has still to be tested! +
3147 FRounds := 12; +
3148 +
3149 FillChar(FAdditionalBuffer^, 32, 0); +
3150 Move(Key, FAdditionalBuffer^, Size); +
3151 BuildEncodeKey(Size); +
3152 BuildDecodeKey; +
3153 +
3154 inherited; +
3155end; +
3156 +
3157{ TCipher_AES256 } +
3158 +
3159class function TCipher_AES256.Context: TCipherContext; +
3160const +
3161 // don't change this! +
3162 Rijndael_Blocks = 4; +
3163 Rijndael_Rounds = 14; +
3164begin +
3165 Result.KeySize := 32; +
3166 Result.BlockSize := Rijndael_Blocks * 4; +
3167 Result.BufferSize := Rijndael_Blocks * 4; +
3168 Result.AdditionalBufferSize := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2; +
3169 Result.NeedsAdditionalBufferBackup := False; +
3170 Result.MinRounds := 1; +
3171 Result.MaxRounds := 1; +
3172 Result.CipherType := [ctSymmetric, ctBlock]; +
3173end; +
3174 +
3175procedure TCipher_AES256.DoInit(const Key; Size: Integer); +
3176begin +
3177 // number of rounds is fixed for 256 bit and if a size > 32 is given the +
3178 // inherited call should raise the "key material too large" exception. +
3179 // but that has still to be tested! +
3180 FRounds := 14; +
3181 +
3182 FillChar(FAdditionalBuffer^, 32, 0); +
3183 Move(Key, FAdditionalBuffer^, Size); +
3184 BuildEncodeKey(Size); +
3185 BuildDecodeKey; +
3186 +
3187 inherited; +
3188end; +
3189 +
3190{ TCipher_Square } +
3191 +
3192class function TCipher_Square.Context: TCipherContext; +
3193begin +
3194 Result.KeySize := 16; +
3195 Result.BlockSize := 16; +
3196 Result.BufferSize := 16; +
3197 Result.AdditionalBufferSize := 9 * 4 * 2 * SizeOf(UInt32); +
3198 Result.NeedsAdditionalBufferBackup := False; +
3199 Result.MinRounds := 1; +
3200 Result.MaxRounds := 1; +
3201 Result.CipherType := [ctSymmetric, ctBlock]; +
3202end; +
3203 +
3204procedure TCipher_Square.DoInit(const Key; Size: Integer); +
3205type +
3206 PSquare_Key = ^TSquare_Key; +
3207 TSquare_Key = array[0..8, 0..3] of UInt32; +
3208var +
3209 E, D: PSquare_Key; +
3210 S, T, R: UInt32; +
3211 I, J: Integer; +
3212begin +
3213 E := FAdditionalBuffer; +
3214 D := FAdditionalBuffer; Inc(D); +
3215 Move(Key, E^, Size); +
3216 +
3217 for I := 1 to 8 do +
3218 begin +
3219 T := E[I - 1, 3]; +
3220 T := T shr 8 or T shl 24; +
3221 E[I, 0] := E[I - 1, 0] xor T xor 1 shl (I - 1); +
3222 E[I, 1] := E[I - 1, 1] xor E[I, 0]; +
3223 E[I, 2] := E[I - 1, 2] xor E[I, 1]; +
3224 E[I, 3] := E[I - 1, 3] xor E[I, 2]; +
3225 +
3226 D[8 - I, 0] := E[I, 0]; +
3227 D[8 - I, 1] := E[I, 1]; +
3228 D[8 - I, 2] := E[I, 2]; +
3229 D[8 - I, 3] := E[I, 3]; +
3230 +
3231 for J := 0 to 3 do +
3232 begin +
3233 R := E[I - 1, J]; +
3234 S := Square_PHI[R and $FF]; +
3235 T := Square_PHI[R shr 8 and $FF]; +
3236 T := T shl 8 or T shr 24; +
3237 S := S xor T; +
3238 T := Square_PHI[R shr 16 and $FF]; +
3239 T := T shl 16 or T shr 16; +
3240 S := S xor T; +
3241 T := Square_PHI[R shr 24]; +
3242 T := T shl 24 or T shr 8; +
3243 S := S xor T; +
3244 E[I - 1, J] := S; +
3245 end; +
3246 end; +
3247 +
3248 D[8] := E[0]; +
3249 +
3250 inherited; +
3251end; +
3252 +
3253procedure TCipher_Square.DoEncode(Source, Dest: Pointer; Size: Integer); +
3254var +
3255 Key: PUInt32Array; +
3256 A, B, C, D: UInt32; +
3257 AA, BB, CC: UInt32; +
3258 I: Integer; +
3259begin +
3260 Key := FAdditionalBuffer; +
3261 A := PUInt32Array(Source)[0] xor Key[0]; +
3262 B := PUInt32Array(Source)[1] xor Key[1]; +
3263 C := PUInt32Array(Source)[2] xor Key[2]; +
3264 D := PUInt32Array(Source)[3] xor Key[3]; +
3265 Key := @Key[4]; +
3266 +
3267 for I := 0 to 6 do +
3268 begin +
3269 AA := Square_TE[0, A and $FF] xor +
3270 Square_TE[1, B and $FF] xor +
3271 Square_TE[2, C and $FF] xor +
3272 Square_TE[3, D and $FF] xor Key[0]; +
3273 BB := Square_TE[0, A shr 8 and $FF] xor +
3274 Square_TE[1, B shr 8 and $FF] xor +
3275 Square_TE[2, C shr 8 and $FF] xor +
3276 Square_TE[3, D shr 8 and $FF] xor Key[1]; +
3277 CC := Square_TE[0, A shr 16 and $FF] xor +
3278 Square_TE[1, B shr 16 and $FF] xor +
3279 Square_TE[2, C shr 16 and $FF] xor +
3280 Square_TE[3, D shr 16 and $FF] xor Key[2]; +
3281 D := Square_TE[0, A shr 24 ] xor +
3282 Square_TE[1, B shr 24 ] xor +
3283 Square_TE[2, C shr 24 ] xor +
3284 Square_TE[3, D shr 24 ] xor Key[3]; +
3285 +
3286 A := AA; B := BB; C := CC; +
3287 +
3288 Key := @Key[4]; +
3289 end; +
3290 +
3291 PUInt32Array(Dest)[0] := UInt32(Square_SE[A and $FF]) xor +
3292 UInt32(Square_SE[B and $FF]) shl 8 xor +
3293 UInt32(Square_SE[C and $FF]) shl 16 xor +
3294 UInt32(Square_SE[D and $FF]) shl 24 xor Key[0]; +
3295 PUInt32Array(Dest)[1] := UInt32(Square_SE[A shr 8 and $FF]) xor +
3296 UInt32(Square_SE[B shr 8 and $FF]) shl 8 xor +
3297 UInt32(Square_SE[C shr 8 and $FF]) shl 16 xor +
3298 UInt32(Square_SE[D shr 8 and $FF]) shl 24 xor Key[1]; +
3299 PUInt32Array(Dest)[2] := UInt32(Square_SE[A shr 16 and $FF]) xor +
3300 UInt32(Square_SE[B shr 16 and $FF]) shl 8 xor +
3301 UInt32(Square_SE[C shr 16 and $FF]) shl 16 xor +
3302 UInt32(Square_SE[D shr 16 and $FF]) shl 24 xor Key[2]; +
3303 PUInt32Array(Dest)[3] := UInt32(Square_SE[A shr 24 ]) xor +
3304 UInt32(Square_SE[B shr 24 ]) shl 8 xor +
3305 UInt32(Square_SE[C shr 24 ]) shl 16 xor +
3306 UInt32(Square_SE[D shr 24 ]) shl 24 xor Key[3]; +
3307end; +
3308 +
3309procedure TCipher_Square.DoDecode(Source, Dest: Pointer; Size: Integer); +
3310var +
3311 Key: PUInt32Array; +
3312 A, B, C, D: UInt32; +
3313 AA, BB, CC: UInt32; +
3314 I: Integer; +
3315begin +
3316 Key := @PUInt32Array(FAdditionalBuffer)[9 * 4]; +
3317 A := PUInt32Array(Source)[0] xor Key[0]; +
3318 B := PUInt32Array(Source)[1] xor Key[1]; +
3319 C := PUInt32Array(Source)[2] xor Key[2]; +
3320 D := PUInt32Array(Source)[3] xor Key[3]; +
3321 Key := @Key[4]; +
3322 +
3323 for I := 0 to 6 do +
3324 begin +
3325 AA := Square_TD[0, A and $FF] xor +
3326 Square_TD[1, B and $FF] xor +
3327 Square_TD[2, C and $FF] xor +
3328 Square_TD[3, D and $FF] xor Key[0]; +
3329 BB := Square_TD[0, A shr 8 and $FF] xor +
3330 Square_TD[1, B shr 8 and $FF] xor +
3331 Square_TD[2, C shr 8 and $FF] xor +
3332 Square_TD[3, D shr 8 and $FF] xor Key[1]; +
3333 CC := Square_TD[0, A shr 16 and $FF] xor +
3334 Square_TD[1, B shr 16 and $FF] xor +
3335 Square_TD[2, C shr 16 and $FF] xor +
3336 Square_TD[3, D shr 16 and $FF] xor Key[2]; +
3337 D := Square_TD[0, A shr 24 ] xor +
3338 Square_TD[1, B shr 24 ] xor +
3339 Square_TD[2, C shr 24 ] xor +
3340 Square_TD[3, D shr 24 ] xor Key[3]; +
3341 +
3342 A := AA; B := BB; C := CC; +
3343 Key := @Key[4]; +
3344 end; +
3345 +
3346 PUInt32Array(Dest)[0] := UInt32(Square_SD[A and $FF]) xor +
3347 UInt32(Square_SD[B and $FF]) shl 8 xor +
3348 UInt32(Square_SD[C and $FF]) shl 16 xor +
3349 UInt32(Square_SD[D and $FF]) shl 24 xor Key[0]; +
3350 PUInt32Array(Dest)[1] := UInt32(Square_SD[A shr 8 and $FF]) xor +
3351 UInt32(Square_SD[B shr 8 and $FF]) shl 8 xor +
3352 UInt32(Square_SD[C shr 8 and $FF]) shl 16 xor +
3353 UInt32(Square_SD[D shr 8 and $FF]) shl 24 xor Key[1]; +
3354 PUInt32Array(Dest)[2] := UInt32(Square_SD[A shr 16 and $FF]) xor +
3355 UInt32(Square_SD[B shr 16 and $FF]) shl 8 xor +
3356 UInt32(Square_SD[C shr 16 and $FF]) shl 16 xor +
3357 UInt32(Square_SD[D shr 16 and $FF]) shl 24 xor Key[2]; +
3358 PUInt32Array(Dest)[3] := UInt32(Square_SD[A shr 24 ]) xor +
3359 UInt32(Square_SD[B shr 24 ]) shl 8 xor +
3360 UInt32(Square_SD[C shr 24 ]) shl 16 xor +
3361 UInt32(Square_SD[D shr 24 ]) shl 24 xor Key[3]; +
3362end; +
3363 +
3364{ TCipher_SCOP } +
3365 +
3366class function TCipher_SCOP.Context: TCipherContext; +
3367begin +
3368 Result.KeySize := 48; +
3369 Result.BlockSize := 4; +
3370 Result.BufferSize := 32; +
3371 Result.AdditionalBufferSize := 384 * 4 + 3 * SizeOf(UInt32); +
3372 Result.NeedsAdditionalBufferBackup := True; +
3373 Result.MinRounds := 1; +
3374 Result.MaxRounds := 1; +
3375 Result.CipherType := [ctSymmetric, ctStream]; +
3376end; +
3377 +
3378procedure TCipher_SCOP.DoInit(const Key; Size: Integer); +
3379var +
3380 Init_State: packed record +
3381 Coef: array[0..7, 0..3] of Byte; +
3382 X: array[0..3] of UInt32; +
3383 end; +
3384 +
3385 procedure ExpandKey; +
3386 var +
3387 P: PByteArray; +
3388 I, C: Integer; +
3389 begin +
3390 C := 1; +
3391 P := @Init_State; +
3392 Move(Key, P^, Size); +
3393 for I := Size to 47 do +
3394 P[I] := P[I - Size] + P[I - Size + 1]; +
3395 for I := 0 to 31 do +
3396 if P[I] = 0 then +
3397 begin +
3398 P[I] := C; +
3399 Inc(C); +
3400 end; +
3401 end; +
3402 +
3403 procedure GP8(Data: PUInt32Array); +
3404 var +
3405 I, I2: Integer; +
3406 NewX: array[0..3] of UInt32; +
3407 X1, X2, X3, X4: UInt32; +
3408 Y1, Y2: UInt32; +
3409 begin +
3410 I := 0; +
3411 I2 := 0; +
3412 while I < 8 do +
3413 begin +
3414 X1 := Init_State.X[I2] shr 16; +
3415 X2 := X1 * X1; +
3416 X3 := X2 * X1; +
3417 X4 := X3 * X1; +
3418 Y1 := Init_State.Coef[I][0] * X4 + +
3419 Init_State.Coef[I][1] * X3 + +
3420 Init_State.Coef[I][2] * X2 + +
3421 Init_State.Coef[I][3] * X1 + 1; +
3422 X1 := Init_State.X[I2] and $FFFF; +
3423 X2 := X1 * X1; +
3424 X3 := X2 * X1; +
3425 X4 := X3 * X1; +
3426 Y2 := Init_State.Coef[I + 1][0] * X4 + +
3427 Init_State.Coef[I + 1][1] * X3 + +
3428 Init_State.Coef[I + 1][2] * X2 + +
3429 Init_State.Coef[I + 1][3] * X1 + 1; +
3430 Data[I2] := Y1 shl 16 or Y2 and $FFFF; +
3431 NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16; +
3432 Inc(I2); +
3433 Inc(I, 2); +
3434 end; +
3435 Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16; +
3436 Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16; +
3437 Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16; +
3438 Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16; +
3439 end; +
3440 +
3441var +
3442 I, J: Integer; +
3443 T: array[0..3] of UInt32; +
3444 P: PUInt32Array; +
3445begin +
3446 FillChar(Init_State, SizeOf(Init_State), 0); +
3447 FillChar(T, SizeOf(T), 0); +
3448 P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math +
3449 ExpandKey; +
3450 for I := 0 to 7 do +
3451 GP8(@T); +
3452 for I := 0 to 11 do +
3453 begin +
3454 for J := 0 to 7 do +
3455 GP8(@P[I * 32 + J * 4]); +
3456 GP8(@T); +
3457 end; +
3458 GP8(@T); +
3459 I := T[3] and $7F; +
3460 P[I] := P[I] or 1; +
3461 P := FAdditionalBuffer; +
3462 P[0] := T[3] shr 24 and $FF; +
3463 P[1] := T[3] shr 16 and $FF; +
3464 P[2] := T[3] shr 8 and $FF; +
3465 ProtectBuffer(Init_State, SizeOf(Init_State)); +
3466 +
3467 inherited; +
3468end; +
3469 +
3470procedure TCipher_SCOP.DoEncode(Source, Dest: Pointer; Size: Integer); +
3471var +
3472 I, J: Byte; +
3473 T2, T3, T1: UInt32; +
3474 P: PUInt32Array; +
3475 W: Integer; +
3476begin +
3477 P := FAdditionalBuffer; +
3478 I := P[0]; +
3479 J := P[1]; +
3480 T3 := P[2]; +
3481 for W := 0 to Size div 4 - 1 do +
3482 begin +
3483 T1 := P[J + 3 + 128]; Inc(J, T3); +
3484 T2 := P[J + 3 + 128]; +
3485 PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2; +
3486 T3 := T2 + P[I + 3]; Inc(I); +
3487 P[J + 3 + 128] := T3; +
3488 Inc(J, T2); +
3489 end; +
3490 P[0] := I; +
3491 P[1] := J; +
3492 P[2] := T3; +
3493end; +
3494 +
3495procedure TCipher_SCOP.DoDecode(Source, Dest: Pointer; Size: Integer); +
3496var +
3497 I, J: Byte; +
3498 T1, T2, T3: UInt32; +
3499 P: PUInt32Array; +
3500 W: Integer; +
3501begin +
3502 P := FAdditionalBuffer; +
3503 I := P[0]; +
3504 J := P[1]; +
3505 T3 := P[2]; +
3506 for W := 0 to Size div 4 - 1 do +
3507 begin +
3508 T1 := P[J + 3 + 128]; Inc(J, T3); +
3509 T2 := P[J + 3 + 128]; +
3510 PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2; +
3511 T3 := T2 + P[I + 3]; +
3512 Inc(I); +
3513 P[J + 3 + 128] := T3; +
3514 Inc(J, T2); +
3515 end; +
3516 P[0] := I; +
3517 P[1] := J; +
3518 P[2] := T3; +
3519end; +
3520 +
3521{ TCipher_SCOP_DEC52 } +
3522 +
3523class function TCipher_SCOP_DEC52.Context: TCipherContext; +
3524begin +
3525 Result.KeySize := 48; +
3526 Result.BlockSize := 4; +
3527 Result.BufferSize := 32; +
3528 Result.AdditionalBufferSize := 384 * 4 + 3 * SizeOf(UInt32); +
3529 Result.NeedsAdditionalBufferBackup := True; +
3530 Result.MinRounds := 1; +
3531 Result.MaxRounds := 1; +
3532 Result.CipherType := [ctSymmetric, ctStream]; +
3533end; +
3534 +
3535procedure TCipher_SCOP_DEC52.DoInit(const Key; Size: Integer); +
3536var +
3537 Init_State: packed record +
3538 Coef: array[0..7, 0..3] of Byte; +
3539 X: array[0..3] of UInt32; +
3540 end; +
3541 +
3542 procedure ExpandKey; +
3543 var +
3544 P: PByteArray; +
3545 I, C: Integer; +
3546 begin +
3547 C := 1; +
3548 P := @Init_State; +
3549 Move(Key, P^, Size); +
3550 for I := Size to 47 do +
3551 P[I] := P[I - Size] + P[I - Size + 1]; +
3552 for I := 0 to 31 do +
3553 if P[I] = 0 then +
3554 begin +
3555 P[I] := C; +
3556 Inc(C); +
3557 end; +
3558 end; +
3559 +
3560 procedure GP8(Data: PUInt32Array); +
3561 var +
3562 I, I2: Integer; +
3563 NewX: array[0..3] of UInt32; +
3564 X1, X2, X3, X4: UInt32; +
3565 Y1, Y2: UInt32; +
3566 begin +
3567 I := 0; +
3568 I2 := 0; +
3569 while I < 8 do +
3570 begin +
3571 X1 := Init_State.X[I2] shr 16; +
3572 X2 := X1 * X1; +
3573 X3 := X2 * X1; +
3574 X4 := X3 * X1; +
3575 Y1 := Init_State.Coef[I][0] * X4 + +
3576 Init_State.Coef[I][1] * X3 + +
3577 Init_State.Coef[I][2] * X2 + +
3578 Init_State.Coef[I][3] * X1 + 1; +
3579 X1 := Init_State.X[I2] and $FFFF; +
3580 X2 := X1 * X1; +
3581 X3 := X2 * X1; +
3582 X4 := X3 * X1; +
3583 Y2 := Init_State.Coef[I + 1][0] * X4 + +
3584 Init_State.Coef[I + 2][1] * X3 + +
3585 Init_State.Coef[I + 3][2] * X2 + +
3586 Init_State.Coef[I + 4][3] * X1 + 1; +
3587 Data[I2] := Y1 shl 16 or Y2 and $FFFF; +
3588 NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16; +
3589 Inc(I2); +
3590 Inc(I, 2); +
3591 end; +
3592 Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16; +
3593 Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16; +
3594 Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16; +
3595 Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16; +
3596 end; +
3597 +
3598var +
3599 I, J: Integer; +
3600 T: array[0..3] of Integer; +
3601 P: PUInt32Array; +
3602begin +
3603 FillChar(Init_State, SizeOf(Init_State), 0); +
3604 FillChar(T, SizeOf(T), 0); +
3605 P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math +
3606 ExpandKey; +
3607 for I := 0 to 7 do +
3608 GP8(@T); +
3609 for I := 0 to 11 do +
3610 begin +
3611 for J := 0 to 7 do +
3612 GP8(@P[I * 32 + J * 4]); +
3613 GP8(@T); +
3614 end; +
3615 GP8(@T); +
3616 I := T[3] and $7F; +
3617 P[I + 3] := P[I + 3] or 1; +
3618 P := FAdditionalBuffer; +
3619 P[0] := T[3] shr 24 and $FF; +
3620 P[1] := T[3] shr 16 and $FF; +
3621 P[2] := T[3] shr 8 and $FF; +
3622 ProtectBuffer(Init_State, SizeOf(Init_State)); +
3623 +
3624 inherited; +
3625end; +
3626 +
3627procedure TCipher_SCOP_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer); +
3628var +
3629 I, J: Byte; +
3630 T2, T3, T1: UInt32; +
3631 P: PUInt32Array; +
3632 W: Integer; +
3633begin +
3634 P := FAdditionalBuffer; +
3635 I := P[0]; +
3636 J := P[1]; +
3637 T3 := P[2]; +
3638 for W := 0 to Size div 4 - 1 do +
3639 begin +
3640 T1 := P[J + 3 + 128]; Inc(J, T3); +
3641 T2 := P[J + 3 + 128]; +
3642 PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2; +
3643 T3 := T2 + P[I + 3]; Inc(I); +
3644 P[J + 3 + 128] := T3; +
3645 Inc(J, T2); +
3646 end; +
3647 P[0] := I; +
3648 P[1] := J; +
3649 P[2] := T3; +
3650end; +
3651 +
3652procedure TCipher_SCOP_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer); +
3653var +
3654 I, J: Byte; +
3655 T1, T2, T3: UInt32; +
3656 P: PUInt32Array; +
3657 W: Integer; +
3658begin +
3659 P := FAdditionalBuffer; +
3660 I := P[0]; +
3661 J := P[1]; +
3662 T3 := P[2]; +
3663 for W := 0 to Size div 4 - 1 do +
3664 begin +
3665 T1 := P[J + 3 + 128]; Inc(J, T3); +
3666 T2 := P[J + 3 + 128]; +
3667 PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2; +
3668 T3 := T2 + P[I + 3]; +
3669 Inc(I); +
3670 P[J + 3 + 128] := T3; +
3671 Inc(J, T2); +
3672 end; +
3673 P[0] := I; +
3674 P[1] := J; +
3675 P[2] := T3; +
3676end; +
3677 +
3678{ TCipher_Sapphire } +
3679 +
3680type +
3681 PSapphireKey = ^TSapphireKey; +
3682 TSapphireKey = packed record +
3683 Cards: array[0..255] of UInt32; +
3684 Rotor: UInt32; +
3685 Ratchet: UInt32; +
3686 Avalanche: UInt32; +
3687 Plain: UInt32; +
3688 Cipher: UInt32; +
3689 end; +
3690 +
3691class function TCipher_Sapphire.Context: TCipherContext; +
3692begin +
3693 Result.KeySize := 1024; +
3694 Result.BlockSize := 1; +
3695 Result.BufferSize := 32; +
3696 Result.AdditionalBufferSize := SizeOf(TSapphireKey); +
3697 Result.NeedsAdditionalBufferBackup := True; +
3698 Result.MinRounds := 1; +
3699 Result.MaxRounds := 1; +
3700 Result.CipherType := [ctSymmetric, ctStream]; +
3701end; +
3702 +
3703procedure TCipher_Sapphire.DoInit(const Key; Size: Integer); +
3704var +
3705 Sum: Byte; +
3706 P: Integer; +
3707 +
3708 function KeyRand(Max: UInt32): Byte; +
3709 var +
3710 I, M: UInt32; +
3711 begin +
3712 Result := 0; +
3713 if Max = 0 then +
3714 Exit; +
3715 I := 0; +
3716 M := 1; +
3717 +
3718 while M < Max do +
3719 Inc(M, M or 1); +
3720 +
3721 repeat +
3722 Inc(Sum, TByteArray(Key)[P]); +
3723 Inc(P); +
3724 if P >= Size then +
3725 begin +
3726 P := 0; +
3727 Inc(Sum, Size); +
3728 end; +
3729 Result := M and Sum; +
3730 Inc(I); +
3731 if I > 11 then +
3732 Result := Result mod Max; +
3733 until Result <= Max; +
3734 end; +
3735 +
3736var +
3737 I, S, T: Integer; +
3738 SKey : PSapphireKey; +
3739begin +
3740 SKey := PSapphireKey(FAdditionalBuffer); +
3741 if Size <= 0 then +
3742 begin +
3743 SKey.Rotor := 1; +
3744 SKey.Ratchet := 3; +
3745 SKey.Avalanche := 5; +
3746 SKey.Plain := 7; +
3747 SKey.Cipher := 11; +
3748 for I := 0 to 255 do +
3749 SKey.Cards[I] := 255 - I; +
3750 end +
3751 else +
3752 begin +
3753 for I := 0 to 255 do +
3754 SKey.Cards[I] := I; +
3755 P := 0; +
3756 Sum := 0; +
3757 for I := 255 downto 1 do +
3758 begin +
3759 S := KeyRand(I); +
3760 T := SKey.Cards[I]; +
3761 SKey.Cards[I] := SKey.Cards[S]; +
3762 SKey.Cards[S] := T; +
3763 end; +
3764 SKey.Rotor := SKey.Cards[1]; +
3765 SKey.Ratchet := SKey.Cards[3]; +
3766 SKey.Avalanche := SKey.Cards[5]; +
3767 SKey.Plain := SKey.Cards[7]; +
3768 SKey.Cipher := SKey.Cards[Sum]; +
3769 end; +
3770 +
3771 inherited; +
3772end; +
3773 +
3774procedure TCipher_Sapphire.DoEncode(Source, Dest: Pointer; Size: Integer); +
3775var +
3776 T: UInt32; +
3777 I: Integer; +
3778 SKey: PSapphireKey; +
3779begin +
3780 SKey := PSapphireKey(FAdditionalBuffer); +
3781 for I := 0 to Size - 1 do +
3782 begin +
3783 SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF; +
3784 SKey.Rotor := (SKey.Rotor + 1) and $FF; +
3785 T := SKey.Cards[SKey.Cipher]; +
3786 SKey.Cards[SKey.Cipher] := SKey.Cards[SKey.Ratchet]; +
3787 SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain]; +
3788 SKey.Cards[SKey.Plain] := SKey.Cards[SKey.Rotor]; +
3789 SKey.Cards[SKey.Rotor] := T; +
3790 SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF; +
3791 T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF; +
3792 SKey.Plain := PByteArray(Source)[I]; +
3793 SKey.Cipher := SKey.Plain xor SKey.Cards[SKey.Cards[T]] xor +
3794 SKey.Cards[(SKey.Cards[SKey.Ratchet] + +
3795 SKey.Cards[SKey.Rotor]) and $FF]; +
3796 PByteArray(Dest)[I] := SKey.Cipher; +
3797 end; +
3798end; +
3799 +
3800procedure TCipher_Sapphire.DoDecode(Source, Dest: Pointer; Size: Integer); +
3801var +
3802 T: UInt32; +
3803 I: Integer; +
3804 SKey: PSapphireKey; +
3805begin +
3806 SKey := PSapphireKey(FAdditionalBuffer); +
3807 for I := 0 to Size - 1 do +
3808 begin +
3809 SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF; +
3810 SKey.Rotor := (SKey.Rotor + 1) and $FF; +
3811 T := SKey.Cards[SKey.Cipher]; +
3812 SKey.Cards[SKey.Cipher] := SKey.Cards[SKey.Ratchet]; +
3813 SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain]; +
3814 SKey.Cards[SKey.Plain] := SKey.Cards[SKey.Rotor]; +
3815 SKey.Cards[SKey.Rotor] := T; +
3816 SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF; +
3817 T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF; +
3818 SKey.Cipher := PByteArray(Source)[I]; +
3819 SKey.Plain := SKey.Cipher xor SKey.Cards[SKey.Cards[T]] xor +
3820 SKey.Cards[(SKey.Cards[SKey.Ratchet] + +
3821 SKey.Cards[SKey.Rotor]) and $FF]; +
3822 PByteArray(Dest)[I] := SKey.Plain; +
3823 end; +
3824end; +
3825 +
3826{ DES basics } +
3827 +
3828procedure DES_Func(Source, Dest, Key: PUInt32Array); +
3829var +
3830 L, R, X, Y, I: UInt32; +
3831begin +
3832 L := SwapUInt32(Source[0]); +
3833 R := SwapUInt32(Source[1]); +
3834 +
3835 X := (L shr 4 xor R) and $0F0F0F0F; R := R xor X; L := L xor X shl 4; +
3836 X := (L shr 16 xor R) and $0000FFFF; R := R xor X; L := L xor X shl 16; +
3837 X := (R shr 2 xor L) and $33333333; L := L xor X; R := R xor X shl 2; +
3838 X := (R shr 8 xor L) and $00FF00FF; L := L xor X; R := R xor X shl 8; +
3839 +
3840 R := R shl 1 or R shr 31; +
3841 X := (L xor R) and $AAAAAAAA; +
3842 R := R xor X; +
3843 L := L xor X; +
3844 L := L shl 1 or L shr 31; +
3845 +
3846 for I := 0 to 7 do +
3847 begin +
3848 X := (R shl 28 or R shr 4) xor Key[0]; +
3849 Y := R xor Key[1]; +
3850 L := L xor (DES_Data[0, X and $3F] or DES_Data[1, X shr 8 and $3F] or +
3851 DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or +
3852 DES_Data[4, Y and $3F] or DES_Data[5, Y shr 8 and $3F] or +
3853 DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]); +
3854 +
3855 X := (L shl 28 or L shr 4) xor Key[2]; +
3856 Y := L xor Key[3]; +
3857 R := R xor (DES_Data[0, X and $3F] or DES_Data[1, X shr 8 and $3F] or +
3858 DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or +
3859 DES_Data[4, Y and $3F] or DES_Data[5, Y shr 8 and $3F] or +
3860 DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]); +
3861 Key := @Key[4]; +
3862 end; +
3863 +
3864 R := R shl 31 or R shr 1; +
3865 X := (L xor R) and $AAAAAAAA; +
3866 R := R xor X; +
3867 L := L xor X; +
3868 L := L shl 31 or L shr 1; +
3869 +
3870 X := (L shr 8 xor R) and $00FF00FF; R := R xor X; L := L xor X shl 8; +
3871 X := (L shr 2 xor R) and $33333333; R := R xor X; L := L xor X shl 2; +
3872 X := (R shr 16 xor L) and $0000FFFF; L := L xor X; R := R xor X shl 16; +
3873 X := (R shr 4 xor L) and $0F0F0F0F; L := L xor X; R := R xor X shl 4; +
3874 +
3875 Dest[0] := SwapUInt32(R); +
3876 Dest[1] := SwapUInt32(L); +
3877end; +
3878 +
3879procedure TCipher_DESBase.DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean); +
3880const +
3881 ROT: array[0..15] of Byte = (1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28); +
3882var +
3883 I, J, L, M, N: UInt32; +
3884 PC_M, PC_R: array[0..55] of Byte; +
3885 K: array[0..31] of UInt32; +
3886begin +
3887 FillChar(K, SizeOf(K), 0); +
3888 for I := 0 to 55 do +
3889 if Data[DES_PC1[I] shr 3] and ($80 shr (DES_PC1[I] and $07)) <> 0 then +
3890 PC_M[I] := 1 +
3891 else +
3892 PC_M[I] := 0; +
3893 for I := 0 to 15 do +
3894 begin +
3895 if Reverse then +
3896 M := (15 - I) shl 1 +
3897 else +
3898 M := I shl 1; +
3899 N := M + 1; +
3900 for J := 0 to 27 do +
3901 begin +
3902 L := J + ROT[I]; +
3903 if L < 28 then +
3904 PC_R[J] := PC_M[L] +
3905 else +
3906 PC_R[J] := PC_M[L - 28]; +
3907 end; +
3908 for J := 28 to 55 do +
3909 begin +
3910 L := J + ROT[I]; +
3911 if L < 56 then +
3912 PC_R[J] := PC_M[L] +
3913 else +
3914 PC_R[J] := PC_M[L - 28]; +
3915 end; +
3916 L := $1000000; +
3917 for J := 0 to 23 do +
3918 begin +
3919 L := L shr 1; +
3920 if PC_R[DES_PC2[J ]] <> 0 then +
3921 K[M] := K[M] or L; +
3922 if PC_R[DES_PC2[J + 24]] <> 0 then +
3923 K[N] := K[N] or L; +
3924 end; +
3925 end; +
3926 for I := 0 to 15 do +
3927 begin +
3928 M := I shl 1; +
3929 N := M + 1; +
3930 Key[0] := K[M] and $00FC0000 shl 6 or +
3931 K[M] and $00000FC0 shl 10 or +
3932 K[N] and $00FC0000 shr 10 or +
3933 K[N] and $00000FC0 shr 6; +
3934 Key[1] := K[M] and $0003F000 shl 12 or +
3935 K[M] and $0000003F shl 16 or +
3936 K[N] and $0003F000 shr 4 or +
3937 K[N] and $0000003F; +
3938 Key := @Key[2]; +
3939 end; +
3940 ProtectBuffer(K, SizeOf(K)); +
3941 ProtectBuffer(PC_M, SizeOf(PC_M)); +
3942 ProtectBuffer(PC_R, SizeOf(PC_R)); +
3943end; +
3944 +
3945{ TCipher_1DES } +
3946 +
3947class function TCipher_1DES.Context: TCipherContext; +
3948begin +
3949 Result.KeySize := 8; +
3950 Result.BlockSize := 8; +
3951 Result.BufferSize := 8; +
3952 Result.AdditionalBufferSize := 32 * 4 * 2; +
3953 Result.NeedsAdditionalBufferBackup := False; +
3954 Result.MinRounds := 1; +
3955 Result.MaxRounds := 1; +
3956 Result.CipherType := [ctSymmetric, ctBlock]; +
3957end; +
3958 +
3959procedure TCipher_1DES.DoInit(const Key; Size: Integer); +
3960var +
3961 K: array[0..7] of Byte; +
3962begin +
3963 FillChar(K, SizeOf(K), 0); +
3964 Move(Key, K, Size); +
3965 DoInitKey(K, FAdditionalBuffer, False); +
3966 DoInitKey(K, @PUInt32Array(FAdditionalBuffer)[32], True); +
3967 ProtectBuffer(K, SizeOf(K)); +
3968 +
3969 inherited; +
3970end; +
3971 +
3972procedure TCipher_1DES.DoEncode(Source, Dest: Pointer; Size: Integer); +
3973begin +
3974 Assert(Size = Context.BlockSize); +
3975 DES_Func(Source, Dest, FAdditionalBuffer); +
3976end; +
3977 +
3978procedure TCipher_1DES.DoDecode(Source, Dest: Pointer; Size: Integer); +
3979begin +
3980 Assert(Size = Context.BlockSize); +
3981 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]); +
3982end; +
3983 +
3984{ TCipher_2DES } +
3985 +
3986class function TCipher_2DES.Context: TCipherContext; +
3987begin +
3988 Result.KeySize := 16; +
3989 Result.BlockSize := 8; +
3990 Result.BufferSize := 8; +
3991 Result.AdditionalBufferSize := 32 * 4 * 2 * 2; +
3992 Result.NeedsAdditionalBufferBackup := False; +
3993 Result.MinRounds := 1; +
3994 Result.MaxRounds := 1; +
3995 Result.CipherType := [ctSymmetric, ctBlock]; +
3996end; +
3997 +
3998procedure TCipher_2DES.DoInit(const Key; Size: Integer); +
3999var +
4000 K: array[0..15] of Byte; +
4001 P: PUInt32Array; +
4002begin +
4003 FillChar(K, SizeOf(K), 0); +
4004 Move(Key, K, Size); +
4005 P := FAdditionalBuffer; +
4006 DoInitKey(K[0], @P[ 0], False); +
4007 DoInitKey(K[8], @P[32], True); +
4008 DoInitKey(K[0], @P[64], True); +
4009 DoInitKey(K[8], @P[96], False); +
4010 ProtectBuffer(K, SizeOf(K)); +
4011 +
4012 inherited; +
4013end; +
4014 +
4015procedure TCipher_2DES.DoEncode(Source, Dest: Pointer; Size: Integer); +
4016begin +
4017 Assert(Size = Context.BlockSize); +
4018 DES_Func(Source, Dest, FAdditionalBuffer); +
4019 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]); +
4020 DES_Func(Source, Dest, FAdditionalBuffer); +
4021end; +
4022 +
4023procedure TCipher_2DES.DoDecode(Source, Dest: Pointer; Size: Integer); +
4024begin +
4025 Assert(Size = Context.BlockSize); +
4026 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]); +
4027 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]); +
4028 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]); +
4029end; +
4030 +
4031{ TCipher_3DES } +
4032 +
4033class function TCipher_3DES.Context: TCipherContext; +
4034begin +
4035 Result.KeySize := 24; +
4036 Result.BlockSize := 8; +
4037 Result.BufferSize := 8; +
4038 Result.AdditionalBufferSize := 32 * 4 * 2 * 3; +
4039 Result.NeedsAdditionalBufferBackup := False; +
4040 Result.MinRounds := 1; +
4041 Result.MaxRounds := 1; +
4042 Result.CipherType := [ctSymmetric, ctBlock]; +
4043end; +
4044 +
4045procedure TCipher_3DES.DoInit(const Key; Size: Integer); +
4046var +
4047 K: array[0..23] of Byte; +
4048 P: PUInt32Array; +
4049begin +
4050 FillChar(K, SizeOf(K), 0); +
4051 Move(Key, K, Size); +
4052 P := FAdditionalBuffer; +
4053 DoInitKey(K[ 0], @P[ 0], False); +
4054 DoInitKey(K[ 8], @P[ 32], True); +
4055 DoInitKey(K[16], @P[ 64], False); +
4056 DoInitKey(K[16], @P[ 96], True); +
4057 DoInitKey(K[ 8], @P[128], False); +
4058 DoInitKey(K[ 0], @P[160], True); +
4059 ProtectBuffer(K, SizeOf(K)); +
4060 +
4061 inherited; +
4062end; +
4063 +
4064procedure TCipher_3DES.DoEncode(Source, Dest: Pointer; Size: Integer); +
4065begin +
4066 Assert(Size = Context.BlockSize); +
4067 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[ 0]); +
4068 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]); +
4069 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]); +
4070end; +
4071 +
4072procedure TCipher_3DES.DoDecode(Source, Dest: Pointer; Size: Integer); +
4073begin +
4074 Assert(Size = Context.BlockSize); +
4075 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]); +
4076 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[128]); +
4077 DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[160]); +
4078end; +
4079 +
4080{ TCipher_2DDES } +
4081 +
4082class function TCipher_2DDES.Context: TCipherContext; +
4083begin +
4084 Result := inherited Context; +
4085 Result.BlockSize := 16; +
4086 Result.BufferSize := 16; +
4087 Result.MinRounds := 1; +
4088 Result.MaxRounds := 1; +
4089 Result.CipherType := [ctSymmetric, ctBlock]; +
4090end; +
4091 +
4092procedure TCipher_2DDES.DoEncode(Source, Dest: Pointer; Size: Integer); +
4093var +
4094 T: UInt32; +
4095begin +
4096 Assert(Size = Context.BlockSize); +
4097 +
4098 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer); +
4099 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer); +
4100 T := PUInt32Array(Dest)[1]; +
4101 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4102 PUInt32Array(Dest)[2] := T; +
4103 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]); +
4104 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]); +
4105 T := PUInt32Array(Dest)[1]; +
4106 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4107 PUInt32Array(Dest)[2] := T; +
4108 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer); +
4109 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer); +
4110end; +
4111 +
4112procedure TCipher_2DDES.DoDecode(Source, Dest: Pointer; Size: Integer); +
4113var +
4114 T: UInt32; +
4115begin +
4116 Assert(Size = Context.BlockSize); +
4117 +
4118 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]); +
4119 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]); +
4120 T := PUInt32Array(Dest)[1]; +
4121 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4122 PUInt32Array(Dest)[2] := T; +
4123 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]); +
4124 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]); +
4125 T := PUInt32Array(Dest)[1]; +
4126 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4127 PUInt32Array(Dest)[2] := T; +
4128 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]); +
4129 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]); +
4130end; +
4131 +
4132{ TCipher_3DDES } +
4133 +
4134class function TCipher_3DDES.Context: TCipherContext; +
4135begin +
4136 Result := inherited Context; +
4137 Result.BlockSize := 16; +
4138 Result.BufferSize := 16; +
4139 Result.MinRounds := 1; +
4140 Result.MaxRounds := 1; +
4141 Result.CipherType := [ctSymmetric, ctBlock]; +
4142end; +
4143 +
4144procedure TCipher_3DDES.DoEncode(Source, Dest: Pointer; Size: Integer); +
4145var +
4146 T: UInt32; +
4147begin +
4148 Assert(Size = Context.BlockSize); +
4149 +
4150 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer); +
4151 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer); +
4152 T := PUInt32Array(Dest)[1]; +
4153 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4154 PUInt32Array(Dest)[2] := T; +
4155 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]); +
4156 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]); +
4157 T := PUInt32Array(Dest)[1]; +
4158 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4159 PUInt32Array(Dest)[2] := T; +
4160 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]); +
4161 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]); +
4162end; +
4163 +
4164procedure TCipher_3DDES.DoDecode(Source, Dest: Pointer; Size: Integer); +
4165var +
4166 T: UInt32; +
4167begin +
4168 Assert(Size = Context.BlockSize); +
4169 +
4170 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]); +
4171 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]); +
4172 T := PUInt32Array(Dest)[1]; +
4173 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4174 PUInt32Array(Dest)[2] := T; +
4175 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]); +
4176 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]); +
4177 T := PUInt32Array(Dest)[1]; +
4178 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4179 PUInt32Array(Dest)[2] := T; +
4180 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]); +
4181 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]); +
4182end; +
4183 +
4184{ TCipher_3TDES } +
4185 +
4186class function TCipher_3TDES.Context: TCipherContext; +
4187begin +
4188 Result := inherited Context; +
4189 Result.BlockSize := 24; +
4190 Result.BufferSize := 24; +
4191 Result.MinRounds := 1; +
4192 Result.MaxRounds := 1; +
4193 Result.CipherType := [ctSymmetric, ctBlock]; +
4194end; +
4195 +
4196procedure TCipher_3TDES.DoEncode(Source, Dest: Pointer; Size: Integer); +
4197var +
4198 T: UInt32; +
4199begin +
4200 Assert(Size = Context.BlockSize); +
4201 +
4202 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer); +
4203 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer); +
4204 DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], FAdditionalBuffer); +
4205 T := PUInt32Array(Dest)[1]; +
4206 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4207 PUInt32Array(Dest)[2] := T; +
4208 T := PUInt32Array(Dest)[3]; +
4209 PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4]; +
4210 PUInt32Array(Dest)[4] := T; +
4211 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]); +
4212 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]); +
4213 DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[32]); +
4214 T := PUInt32Array(Dest)[1]; +
4215 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4216 PUInt32Array(Dest)[2] := T; +
4217 T := PUInt32Array(Dest)[3]; +
4218 PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4]; +
4219 PUInt32Array(Dest)[4] := T; +
4220 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]); +
4221 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]); +
4222 DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[64]); +
4223end; +
4224 +
4225procedure TCipher_3TDES.DoDecode(Source, Dest: Pointer; Size: Integer); +
4226var +
4227 T: UInt32; +
4228begin +
4229 Assert(Size = Context.BlockSize); +
4230 +
4231 DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]); +
4232 DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]); +
4233 DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[96]); +
4234 T := PUInt32Array(Dest)[1]; +
4235 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4236 PUInt32Array(Dest)[2] := T; +
4237 T := PUInt32Array(Dest)[3]; +
4238 PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4]; +
4239 PUInt32Array(Dest)[4] := T; +
4240 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]); +
4241 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]); +
4242 DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[128]); +
4243 T := PUInt32Array(Dest)[1]; +
4244 PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2]; +
4245 PUInt32Array(Dest)[2] := T; +
4246 T := PUInt32Array(Dest)[3]; +
4247 PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4]; +
4248 PUInt32Array(Dest)[4] := T; +
4249 DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]); +
4250 DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]); +
4251 DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[160]); +
4252end; +
4253 +
4254{ TCipher_3Way } +
4255 +
4256type +
4257 P3Way_Key = ^T3Way_Key; +
4258 T3Way_Key = packed record +
4259 E_Key: array[0..2] of UInt32; +
4260 E_Data: array[0..11] of UInt32; +
4261 D_Key: array[0..2] of UInt32; +
4262 D_Data: array[0..11] of UInt32; +
4263 end; +
4264 +
4265class function TCipher_3Way.Context: TCipherContext; +
4266begin +
4267 Result.KeySize := 12; +
4268 Result.BlockSize := 12; +
4269 Result.BufferSize := 12; +
4270 Result.AdditionalBufferSize := SizeOf(T3Way_Key); +
4271 Result.NeedsAdditionalBufferBackup := False; +
4272 Result.MinRounds := 1; +
4273 Result.MaxRounds := 1; +
4274 Result.CipherType := [ctSymmetric, ctBlock]; +
4275end; +
4276 +
4277procedure TCipher_3Way.DoInit(const Key; Size: Integer); +
4278 +
4279 procedure RANDGenerate(Start: UInt32; var P: array of UInt32); +
4280 var +
4281 I: Integer; +
4282 begin +
4283 for I := 0 to 11 do +
4284 begin +
4285 P[I] := Start; +
4286 Start := Start shl 1; +
4287 if Start and $10000 <> 0 then +
4288 Start := Start xor $11011; +
4289 end; +
4290 end; +
4291 +
4292var +
4293 A0, A1, A2: UInt32; +
4294 B0, B1, B2: UInt32; +
4295 P3WayKey: P3Way_Key; +
4296begin +
4297 P3WayKey := P3Way_Key(FAdditionalBuffer); +
4298 +
4299 Move(Key, P3WayKey.E_Key, Size); +
4300 Move(Key, P3WayKey.D_Key, Size); +
4301 RANDGenerate($0B0B, P3WayKey.E_Data); +
4302 RANDGenerate($B1B1, P3WayKey.D_Data); +
4303 A0 := P3WayKey.D_Key[0]; +
4304 A1 := P3WayKey.D_Key[1]; +
4305 A2 := P3WayKey.D_Key[2]; +
4306 B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor +
4307 A1 shr 24 xor A2 shl 8 xor A2 shr 8 xor A0 shl 24 xor +
4308 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl 8; +
4309 B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor +
4310 A2 shr 24 xor A0 shl 8 xor A0 shr 8 xor A1 shl 24 xor +
4311 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl 8; +
4312 B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor +
4313 A0 shr 24 xor A1 shl 8 xor A1 shr 8 xor A2 shl 24 xor +
4314 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl 8; +
4315 P3WayKey.D_Key[2] := ReverseBits(B0); +
4316 P3WayKey.D_Key[1] := ReverseBits(B1); +
4317 P3WayKey.D_Key[0] := ReverseBits(B2); +
4318 +
4319 inherited; +
4320end; +
4321 +
4322procedure TCipher_3Way.DoEncode(Source, Dest: Pointer; Size: Integer); +
4323var +
4324 I: Integer; +
4325 A0, A1, A2: UInt32; +
4326 B0, B1, B2: UInt32; +
4327 K0, K1, K2: UInt32; +
4328 E: PUInt32; +
4329 P3WayKey: P3Way_Key; +
4330begin +
4331 Assert(Size = Context.BlockSize); +
4332 P3WayKey := P3Way_Key(FAdditionalBuffer); +
4333 +
4334 K0 := P3WayKey.E_Key[0]; +
4335 K1 := P3WayKey.E_Key[1]; +
4336 K2 := P3WayKey.E_Key[2]; +
4337 E := @P3WayKey.E_Data; +
4338 +
4339 A0 := PUInt32Array(Source)[0]; +
4340 A1 := PUInt32Array(Source)[1]; +
4341 A2 := PUInt32Array(Source)[2]; +
4342 for I := 0 to 10 do +
4343 begin +
4344 A0 := A0 xor K0 xor E^ shl 16; +
4345 A1 := A1 xor K1; +
4346 A2 := A2 xor K2 xor E^; +
4347 Inc(E); +
4348 +
4349 B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor +
4350 A1 shr 24 xor A2 shl 8 xor A2 shr 8 xor A0 shl 24 xor +
4351 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl 8; +
4352 B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor +
4353 A2 shr 24 xor A0 shl 8 xor A0 shr 8 xor A1 shl 24 xor +
4354 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl 8; +
4355 B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor +
4356 A0 shr 24 xor A1 shl 8 xor A1 shr 8 xor A2 shl 24 xor +
4357 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl 8; +
4358 B0 := B0 shr 10 or B0 shl 22; +
4359 B2 := B2 shl 1 or B2 shr 31; +
4360 A0 := B0 xor (B1 or not B2); +
4361 A1 := B1 xor (B2 or not B0); +
4362 A2 := B2 xor (B0 or not B1); +
4363 A0 := A0 shl 1 or A0 shr 31; +
4364 A2 := A2 shr 10 or A2 shl 22; +
4365 end; +
4366 A0 := A0 xor K0 xor E^ shl 16; +
4367 A1 := A1 xor K1; +
4368 A2 := A2 xor K2 xor E^; +
4369 PUInt32Array(Dest)[0] := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor +
4370 A1 shr 24 xor A2 shl 8 xor A2 shr 8 xor A0 shl 24 xor +
4371 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl 8; +
4372 PUInt32Array(Dest)[1] := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor +
4373 A2 shr 24 xor A0 shl 8 xor A0 shr 8 xor A1 shl 24 xor +
4374 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl 8; +
4375 PUInt32Array(Dest)[2] := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor +
4376 A0 shr 24 xor A1 shl 8 xor A1 shr 8 xor A2 shl 24 xor +
4377 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl 8; +
4378end; +
4379 +
4380procedure TCipher_3Way.DoDecode(Source, Dest: Pointer; Size: Integer); +
4381var +
4382 I: Integer; +
4383 A0, A1, A2: UInt32; +
4384 B0, B1, B2: UInt32; +
4385 K0, K1, K2: UInt32; +
4386 E: PUInt32; +
4387 P3WayKey: P3Way_Key; +
4388begin +
4389 Assert(Size = Context.BlockSize); +
4390 P3WayKey := P3Way_Key(FAdditionalBuffer); +
4391 +
4392 K0 := P3WayKey.D_Key[0]; +
4393 K1 := P3WayKey.D_Key[1]; +
4394 K2 := P3WayKey.D_Key[2]; +
4395 E := @P3WayKey.D_Data; +
4396 +
4397 A0 := ReverseBits(PUInt32Array(Source)[2]); +
4398 A1 := ReverseBits(PUInt32Array(Source)[1]); +
4399 A2 := ReverseBits(PUInt32Array(Source)[0]); +
4400 for I := 0 to 10 do +
4401 begin +
4402 A0 := A0 xor K0 xor E^ shl 16; +
4403 A1 := A1 xor K1; +
4404 A2 := A2 xor K2 xor E^; +
4405 Inc(E); +
4406 +
4407 B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor +
4408 A1 shr 24 xor A2 shl 8 xor A2 shr 8 xor A0 shl 24 xor +
4409 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl 8; +
4410 B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor +
4411 A2 shr 24 xor A0 shl 8 xor A0 shr 8 xor A1 shl 24 xor +
4412 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl 8; +
4413 B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor +
4414 A0 shr 24 xor A1 shl 8 xor A1 shr 8 xor A2 shl 24 xor +
4415 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl 8; +
4416 B0 := B0 shr 10 or B0 shl 22; +
4417 B2 := B2 shl 1 or B2 shr 31; +
4418 A0 := B0 xor (B1 or not B2); +
4419 A1 := B1 xor (B2 or not B0); +
4420 A2 := B2 xor (B0 or not B1); +
4421 A0 := A0 shl 1 or A0 shr 31; +
4422 A2 := A2 shr 10 or A2 shl 22; +
4423 end; +
4424 A0 := A0 xor K0 xor E^ shl 16; +
4425 A1 := A1 xor K1; +
4426 A2 := A2 xor K2 xor E^; +
4427 B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor +
4428 A1 shr 24 xor A2 shl 8 xor A2 shr 8 xor A0 shl 24 xor +
4429 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl 8; +
4430 B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor +
4431 A2 shr 24 xor A0 shl 8 xor A0 shr 8 xor A1 shl 24 xor +
4432 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl 8; +
4433 B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor +
4434 A0 shr 24 xor A1 shl 8 xor A1 shr 8 xor A2 shl 24 xor +
4435 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl 8; +
4436 +
4437 PUInt32Array(Dest)[2] := ReverseBits(B0); +
4438 PUInt32Array(Dest)[1] := ReverseBits(B1); +
4439 PUInt32Array(Dest)[0] := ReverseBits(B2); +
4440end; +
4441 +
4442{ TCipher_Cast128 } +
4443 +
4444class function TCipher_Cast128.Context: TCipherContext; +
4445begin +
4446 Result.KeySize := 16; +
4447 Result.BlockSize := 8; +
4448 Result.BufferSize := 8; +
4449 Result.AdditionalBufferSize := 128; +
4450 Result.NeedsAdditionalBufferBackup := false; +
4451 Result.MinRounds := 12; +
4452 Result.MaxRounds := 16; +
4453 Result.CipherType := [ctSymmetric, ctBlock]; +
4454end; +
4455 +
4456procedure TCipher_Cast128.DoInit(const Key; Size: Integer); +
4457var +
4458 Z, X, T: array[0..3] of UInt32; +
4459 K: PUInt32Array; +
4460 I: UInt32; +
4461begin +
4462 // as per rfc2144 the number of rounds is 12 for key sizes <= 80 bit, +
4463 // otherwise 16 +
4464 if Size <= 10 then +
4465 FRounds := 12 +
4466 else +
4467 FRounds := 16; +
4468 +
4469 K := FAdditionalBuffer; +
4470 FillChar(X, SizeOf(X), 0); +
4471 Move(Key, X, Size); +
4472 SwapUInt32Buffer(X, X, 4); +
4473 I := 0; +
4474 while I < 32 do +
4475 begin +
4476 if I and 4 = 0 then +
4477 begin +
4478 Z[0] := X[0] xor Cast128_Key[0, X[3] shr 16 and $FF] xor +
4479 Cast128_Key[1, X[3] and $FF] xor +
4480 Cast128_Key[2, X[3] shr 24] xor +
4481 Cast128_Key[3, X[3] shr 8 and $FF] xor +
4482 Cast128_Key[2, X[2] shr 24]; +
4483 T[0] := Z[0]; +
4484 Z[1] := X[2] xor Cast128_Key[0, Z[0] shr 24] xor +
4485 Cast128_Key[1, Z[0] shr 8 and $FF] xor +
4486 Cast128_Key[2, Z[0] shr 16 and $FF] xor +
4487 Cast128_Key[3, Z[0] and $FF] xor +
4488 Cast128_Key[3, X[2] shr 8 and $FF]; +
4489 T[1] := Z[1]; +
4490 Z[2] := X[3] xor Cast128_Key[0, Z[1] and $FF] xor +
4491 Cast128_Key[1, Z[1] shr 8 and $FF] xor +
4492 Cast128_Key[2, Z[1] shr 16 and $FF] xor +
4493 Cast128_Key[3, Z[1] shr 24] xor +
4494 Cast128_Key[0, X[2] shr 16 and $FF]; +
4495 T[2] := Z[2]; +
4496 Z[3] := X[1] xor Cast128_Key[0, Z[2] shr 8 and $FF] xor +
4497 Cast128_Key[1, Z[2] shr 16 and $FF] xor +
4498 Cast128_Key[2, Z[2] and $FF] xor +
4499 Cast128_Key[3, Z[2] shr 24] xor +
4500 Cast128_Key[1, X[2] and $FF]; +
4501 T[3] := Z[3]; +
4502 end +
4503 else +
4504 begin +
4505 X[0] := Z[2] xor Cast128_Key[0, Z[1] shr 16 and $FF] xor +
4506 Cast128_Key[1, Z[1] and $FF] xor +
4507 Cast128_Key[2, Z[1] shr 24] xor +
4508 Cast128_Key[3, Z[1] shr 8 and $FF] xor +
4509 Cast128_Key[2, Z[0] shr 24]; +
4510 T[0] := X[0]; +
4511 X[1] := Z[0] xor Cast128_Key[0, X[0] shr 24] xor +
4512 Cast128_Key[1, X[0] shr 8 and $FF] xor +
4513 Cast128_Key[2, X[0] shr 16 and $FF] xor +
4514 Cast128_Key[3, X[0] and $FF] xor +
4515 Cast128_Key[3, Z[0] shr 8 and $FF]; +
4516 T[1] := X[1]; +
4517 X[2] := Z[1] xor Cast128_Key[0, X[1] and $FF] xor +
4518 Cast128_Key[1, X[1] shr 8 and $FF] xor +
4519 Cast128_Key[2, X[1] shr 16 and $FF] xor +
4520 Cast128_Key[3, X[1] shr 24] xor +
4521 Cast128_Key[0, Z[0] shr 16 and $FF]; +
4522 T[2] := X[2]; +
4523 X[3] := Z[3] xor Cast128_Key[0, X[2] shr 8 and $FF] xor +
4524 Cast128_Key[1, X[2] shr 16 and $FF] xor +
4525 Cast128_Key[2, X[2] and $FF] xor +
4526 Cast128_Key[3, X[2] shr 24] xor +
4527 Cast128_Key[1, Z[0] and $FF]; +
4528 T[3] := X[3]; +
4529 end; +
4530 case I and 12 of +
4531 0,12: +
4532 begin +
4533 K[I + 0] := Cast128_Key[0, T[2] shr 24] xor +
4534 Cast128_Key[1, T[2] shr 16 and $FF] xor +
4535 Cast128_Key[2, T[1] and $FF] xor +
4536 Cast128_Key[3, T[1] shr 8 and $FF]; +
4537 K[I + 1] := Cast128_Key[0, T[2] shr 8 and $FF] xor +
4538 Cast128_Key[1, T[2] and $FF] xor +
4539 Cast128_Key[2, T[1] shr 16 and $FF] xor +
4540 Cast128_Key[3, T[1] shr 24]; +
4541 K[I + 2] := Cast128_Key[0, T[3] shr 24] xor +
4542 Cast128_Key[1, T[3] shr 16 and $FF] xor +
4543 Cast128_Key[2, T[0] and $FF] xor +
4544 Cast128_Key[3, T[0] shr 8 and $FF]; +
4545 K[I + 3] := Cast128_Key[0, T[3] shr 8 and $FF] xor +
4546 Cast128_Key[1, T[3] and $FF] xor +
4547 Cast128_Key[2, T[0] shr 16 and $FF] xor +
4548 Cast128_Key[3, T[0] shr 24]; +
4549 end; +
4550 4,8: +
4551 begin +
4552 K[I + 0] := Cast128_Key[0, T[0] and $FF] xor +
4553 Cast128_Key[1, T[0] shr 8 and $FF] xor +
4554 Cast128_Key[2, T[3] shr 24] xor +
4555 Cast128_Key[3, T[3] shr 16 and $FF]; +
4556 K[I + 1] := Cast128_Key[0, T[0] shr 16 and $FF] xor +
4557 Cast128_Key[1, T[0] shr 24] xor +
4558 Cast128_Key[2, T[3] shr 8 and $FF] xor +
4559 Cast128_Key[3, T[3] and $FF]; +
4560 K[I + 2] := Cast128_Key[0, T[1] and $FF] xor +
4561 Cast128_Key[1, T[1] shr 8 and $FF] xor +
4562 Cast128_Key[2, T[2] shr 24] xor +
4563 Cast128_Key[3, T[2] shr 16 and $FF]; +
4564 K[I + 3] := Cast128_Key[0, T[1] shr 16 and $FF] xor +
4565 Cast128_Key[1, T[1] shr 24] xor +
4566 Cast128_Key[2, T[2] shr 8 and $FF] xor +
4567 Cast128_Key[3, T[2] and $FF]; +
4568 end; +
4569 end; +
4570 case I and 12 of +
4571 0: begin +
4572 K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[0] shr 8 and $FF]; +
4573 K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[1] shr 8 and $FF]; +
4574 K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[2] shr 16 and $FF]; +
4575 K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[3] shr 24]; +
4576 end; +
4577 4: begin +
4578 K[I + 0] := K[I + 0] xor Cast128_Key[0, X[2] shr 24]; +
4579 K[I + 1] := K[I + 1] xor Cast128_Key[1, X[3] shr 16 and $FF]; +
4580 K[I + 2] := K[I + 2] xor Cast128_Key[2, X[0] and $FF]; +
4581 K[I + 3] := K[I + 3] xor Cast128_Key[3, X[1] and $FF]; +
4582 end; +
4583 8: begin +
4584 K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[2] shr 16 and $FF]; +
4585 K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[3] shr 24]; +
4586 K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[0] shr 8 and $FF]; +
4587 K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[1] shr 8 and $FF]; +
4588 end; +
4589 12: begin +
4590 K[I + 0] := K[I + 0] xor Cast128_Key[0, X[0] and $FF]; +
4591 K[I + 1] := K[I + 1] xor Cast128_Key[1, X[1] and $FF]; +
4592 K[I + 2] := K[I + 2] xor Cast128_Key[2, X[2] shr 24]; +
4593 K[I + 3] := K[I + 3] xor Cast128_Key[3, X[3] shr 16 and $FF]; +
4594 end; +
4595 end; +
4596 if I >= 16 then +
4597 begin +
4598 K[I + 0] := K[I + 0] and $1F; +
4599 K[I + 1] := K[I + 1] and $1F; +
4600 K[I + 2] := K[I + 2] and $1F; +
4601 K[I + 3] := K[I + 3] and $1F; +
4602 end; +
4603 Inc(I, 4); +
4604 end; +
4605 ProtectBuffer(X, SizeOf(X)); +
4606 ProtectBuffer(Z, SizeOf(Z)); +
4607 ProtectBuffer(T, SizeOf(T)); +
4608 +
4609 inherited; +
4610end; +
4611 +
4612procedure TCipher_Cast128.DoEncode(Source, Dest: Pointer; Size: Integer); +
4613var +
4614 T, I, A, B: UInt32; +
4615 K: PUInt32Array; +
4616begin +
4617 Assert(Size = Context.BlockSize); +
4618 +
4619 K := FAdditionalBuffer; +
4620 A := SwapUInt32(PUInt32Array(Source)[0]); +
4621 B := SwapUInt32(PUInt32Array(Source)[1]); +
4622 for I := 0 to 2 do +
4623 begin +
4624 T := K[0] + B; +
4625 T := T shl K[16] or T shr (32 - K[16]); +
4626 A := A xor (Cast128_Data[0, T shr 24] xor +
4627 Cast128_Data[1, T shr 16 and $FF] - +
4628 Cast128_Data[2, T shr 8 and $FF] + +
4629 Cast128_Data[3, T and $FF]); +
4630 T := K[1] xor A; +
4631 T := T shl K[17] or T shr (32 - K[17]); +
4632 B := B xor (Cast128_Data[0, T shr 24] - +
4633 Cast128_Data[1, T shr 16 and $FF] + +
4634 Cast128_Data[2, T shr 8 and $FF] xor +
4635 Cast128_Data[3, T and $FF]); +
4636 T := K[2] - B; +
4637 T := T shl K[18] or T shr (32 - K[18]); +
4638 A := A xor (Cast128_Data[0, T shr 24] + +
4639 Cast128_Data[1, T shr 16 and $FF] xor +
4640 Cast128_Data[2, T shr 8 and $FF] - +
4641 Cast128_Data[3, T and $FF]); +
4642 T := K[3] + A; +
4643 T := T shl K[19] or T shr (32 - K[19]); +
4644 B := B xor (Cast128_Data[0, T shr 24] xor +
4645 Cast128_Data[1, T shr 16 and $FF] - +
4646 Cast128_Data[2, T shr 8 and $FF] + +
4647 Cast128_Data[3, T and $FF]); +
4648 if I = 2 then +
4649 Break; +
4650 T := K[4] xor B; +
4651 T := T shl K[20] or T shr (32 - K[20]); +
4652 A := A xor (Cast128_Data[0, T shr 24] - +
4653 Cast128_Data[1, T shr 16 and $FF] + +
4654 Cast128_Data[2, T shr 8 and $FF] xor +
4655 Cast128_Data[3, T and $FF]); +
4656 T := K[5] - A; +
4657 T := T shl K[21] or T shr (32 - K[21]); +
4658 B := B xor (Cast128_Data[0, T shr 24] + +
4659 Cast128_Data[1, T shr 16 and $FF] xor +
4660 Cast128_Data[2, T shr 8 and $FF] - +
4661 Cast128_Data[3, T and $FF]); +
4662 if (I = 1) and (FRounds <= 12) then +
4663 Break; +
4664 K := @K[6]; +
4665 end; +
4666 PUInt32Array(Dest)[0] := SwapUInt32(B); +
4667 PUInt32Array(Dest)[1] := SwapUInt32(A); +
4668end; +
4669 +
4670procedure TCipher_Cast128.DoDecode(Source, Dest: Pointer; Size: Integer); +
4671var +
4672 T, I, A, B: UInt32; +
4673 K: PUInt32Array; +
4674 JumpStart: Boolean; +
4675begin +
4676 Assert(Size = Context.BlockSize); +
4677 JumpStart := False; +
4678 +
4679 K := @PUInt32Array(FAdditionalBuffer)[12]; +
4680 B := SwapUInt32(PUInt32Array(Source)[0]); +
4681 A := SwapUInt32(PUInt32Array(Source)[1]); +
4682 I := 2; +
4683 +
4684 if FRounds <= 12 then +
4685 Dec(PUInt32(K), 6) +
4686 else +
4687 JumpStart := True; +
4688 +
4689 while I > 0 do +
4690 begin +
4691 if not JumpStart then +
4692 begin +
4693 Dec(I); +
4694 T := K[5] - A; +
4695 T := T shl K[21] or T shr (32 - K[21]); +
4696 B := B xor (Cast128_Data[0, T shr 24] + +
4697 Cast128_Data[1, T shr 16 and $FF] xor +
4698 Cast128_Data[2, T shr 8 and $FF] - +
4699 Cast128_Data[3, T and $FF]); +
4700 T := K[4] xor B; +
4701 T := T shl K[20] or T shr (32 - K[20]); +
4702 A := A xor (Cast128_Data[0, T shr 24] - +
4703 Cast128_Data[1, T shr 16 and $FF] + +
4704 Cast128_Data[2, T shr 8 and $FF] xor +
4705 Cast128_Data[3, T and $FF]); +
4706 end +
4707 else +
4708 JumpStart := False; +
4709 +
4710 T := K[3] + A; +
4711 T := T shl K[19] or T shr (32 - K[19]); +
4712 B := B xor (Cast128_Data[0, T shr 24] xor +
4713 Cast128_Data[1, T shr 16 and $FF] - +
4714 Cast128_Data[2, T shr 8 and $FF] + +
4715 Cast128_Data[3, T and $FF]); +
4716 T := K[2] - B; +
4717 T := T shl K[18] or T shr (32 - K[18]); +
4718 A := A xor (Cast128_Data[0, T shr 24] + +
4719 Cast128_Data[1, T shr 16 and $FF] xor +
4720 Cast128_Data[2, T shr 8 and $FF] - +
4721 Cast128_Data[3, T and $FF]); +
4722 T := K[1] xor A; +
4723 T := T shl K[17] or T shr (32 - K[17]); +
4724 B := B xor (Cast128_Data[0, T shr 24] - +
4725 Cast128_Data[1, T shr 16 and $FF] + +
4726 Cast128_Data[2, T shr 8 and $FF] xor +
4727 Cast128_Data[3, T and $FF]); +
4728 T := K[0] + B; +
4729 T := T shl K[16] or T shr (32 - K[16]); +
4730 A := A xor (Cast128_Data[0, T shr 24] xor +
4731 Cast128_Data[1, T shr 16 and $FF] - +
4732 Cast128_Data[2, T shr 8 and $FF] + +
4733 Cast128_Data[3, T and $FF]); +
4734 Dec(PUInt32(K), 6); +
4735 end; +
4736 +
4737 PUInt32Array(Dest)[0] := SwapUInt32(A); +
4738 PUInt32Array(Dest)[1] := SwapUInt32(B); +
4739end; +
4740 +
4741{ TCipher_Gost } +
4742 +
4743class function TCipher_Gost.Context: TCipherContext; +
4744begin +
4745 Result.KeySize := 32; +
4746 Result.BlockSize := 8; +
4747 Result.BufferSize := 8; +
4748 Result.AdditionalBufferSize := 32; +
4749 Result.NeedsAdditionalBufferBackup := false; +
4750 Result.MinRounds := 1; +
4751 Result.MaxRounds := 1; +
4752 Result.CipherType := [ctSymmetric, ctBlock]; +
4753end; +
4754 +
4755procedure TCipher_Gost.DoInit(const Key; Size: Integer); +
4756begin +
4757 Move(Key, FAdditionalBuffer^, Size); +
4758 +
4759 inherited; +
4760end; +
4761 +
4762procedure TCipher_Gost.DoEncode(Source, Dest: Pointer; Size: Integer); +
4763var +
4764 I, A, B, T: UInt32; +
4765 K: PUInt32Array; +
4766begin +
4767 Assert(Size = Context.BlockSize); +
4768 +
4769 K := FAdditionalBuffer; +
4770 A := PUInt32Array(Source)[0]; +
4771 B := PUInt32Array(Source)[1]; +
4772 +
4773 for I := 0 to 11 do +
4774 begin +
4775 if I and 3 = 0 then +
4776 K := FAdditionalBuffer; +
4777 T := A + K[0]; +
4778 B := B xor Gost_Data[0, T and $FF] xor +
4779 Gost_Data[1, T shr 8 and $FF] xor +
4780 Gost_Data[2, T shr 16 and $FF] xor +
4781 Gost_Data[3, T shr 24 ]; +
4782 T := B + K[1]; +
4783 A := A xor Gost_Data[0, T and $FF] xor +
4784 Gost_Data[1, T shr 8 and $FF] xor +
4785 Gost_Data[2, T shr 16 and $FF] xor +
4786 Gost_Data[3, T shr 24 ]; +
4787 K := @K[2]; +
4788 end; +
4789 +
4790 K := @PUInt32Array(FAdditionalBuffer)[6]; +
4791 +
4792 for I := 0 to 3 do +
4793 begin +
4794 T := A + K[1]; +
4795 B := B xor Gost_Data[0, T and $FF] xor +
4796 Gost_Data[1, T shr 8 and $FF] xor +
4797 Gost_Data[2, T shr 16 and $FF] xor +
4798 Gost_Data[3, T shr 24 ]; +
4799 T := B + K[0]; +
4800 A := A xor Gost_Data[0, T and $FF] xor +
4801 Gost_Data[1, T shr 8 and $FF] xor +
4802 Gost_Data[2, T shr 16 and $FF] xor +
4803 Gost_Data[3, T shr 24 ]; +
4804 Dec(PUInt32(K), 2); +
4805 end; +
4806 +
4807 PUInt32Array(Dest)[0] := B; +
4808 PUInt32Array(Dest)[1] := A; +
4809end; +
4810 +
4811procedure TCipher_Gost.DoDecode(Source, Dest: Pointer; Size: Integer); +
4812var +
4813 I, A, B, T: UInt32; +
4814 K: PUInt32Array; +
4815begin +
4816 Assert(Size = Context.BlockSize); +
4817 +
4818 A := PUInt32Array(Source)[0]; +
4819 B := PUInt32Array(Source)[1]; +
4820 K := FAdditionalBuffer; +
4821 +
4822 for I := 0 to 3 do +
4823 begin +
4824 T := A + K[0]; +
4825 B := B xor Gost_Data[0, T and $FF] xor +
4826 Gost_Data[1, T shr 8 and $FF] xor +
4827 Gost_Data[2, T shr 16 and $FF] xor +
4828 Gost_Data[3, T shr 24]; +
4829 T := B + K[1]; +
4830 A := A xor Gost_Data[0, T and $FF] xor +
4831 Gost_Data[1, T shr 8 and $FF] xor +
4832 Gost_Data[2, T shr 16 and $FF] xor +
4833 Gost_Data[3, T shr 24]; +
4834 K := @K[2]; +
4835 end; +
4836 +
4837 for I := 0 to 11 do +
4838 begin +
4839 if I and 3 = 0 then +
4840 K := @PUInt32Array(FAdditionalBuffer)[6]; +
4841 T := A + K[1]; +
4842 B := B xor Gost_Data[0, T and $FF] xor +
4843 Gost_Data[1, T shr 8 and $FF] xor +
4844 Gost_Data[2, T shr 16 and $FF] xor +
4845 Gost_Data[3, T shr 24]; +
4846 T := B + K[0]; +
4847 A := A xor Gost_Data[0, T and $FF] xor +
4848 Gost_Data[1, T shr 8 and $FF] xor +
4849 Gost_Data[2, T shr 16 and $FF] xor +
4850 Gost_Data[3, T shr 24]; +
4851 Dec(PUInt32(K), 2); +
4852 end; +
4853 +
4854 PUInt32Array(Dest)[0] := B; +
4855 PUInt32Array(Dest)[1] := A; +
4856end; +
4857 +
4858{ TCipher_Misty } +
4859 +
4860class function TCipher_Misty.Context: TCipherContext; +
4861begin +
4862 Result.KeySize := 16; +
4863 Result.BlockSize := 8; +
4864 Result.BufferSize := 8; +
4865 Result.AdditionalBufferSize := 128; +
4866 Result.NeedsAdditionalBufferBackup := False; +
4867 Result.MinRounds := 1; +
4868 Result.MaxRounds := 1; +
4869 Result.CipherType := [ctSymmetric, ctBlock]; +
4870end; +
4871 +
4872function Misty_I(Value, Key: UInt32): UInt32; +
4873begin +
4874 Result := Misty_Data9[Value shr 7 and $1FF] xor (Value and $7F); +
4875 Value := (Misty_Data7[Value and $7F] xor Result and $7F) xor (Key shr 9 and $7F); +
4876 Result := Misty_Data9[Result xor (Key and $1FF)] xor Value or Value shl 9; +
4877end; +
4878 +
4879function Misty_O(Value, K: UInt32; Key: PUInt32Array): UInt32; +
4880begin +
4881 Result := Misty_I((Value shr 16) xor Key[K], Key[(K + 5) and 7 + 8]) xor (Value and $FFFF); +
4882 Value := Misty_I((Value and $FFFF) xor Key[(K + 2) and 7], Key[(K + 1) and 7 + 8]) xor Result; +
4883 Result := Misty_I(Result xor Key[(K + 7) and 7], Key[(K + 3) and 7 + 8]) xor Value; +
4884 Result := Result or (Value xor Key[(K + 4) and 7]) shl 16; +
4885end; +
4886 +
4887function Misty_E(Value, K: UInt32; Key: PUInt32Array): UInt32; +
4888begin +
4889 Result := Value shr 16; +
4890 Value := Value and $FFFF; +
4891 +
4892 if K and 1 <> 0 then +
4893 begin +
4894 K := K shr 1; +
4895 Value := Value xor (Result and Key[(K + 2) and 7 + 8]); +
4896 Result := Result xor (Value or Key[(K + 4) and 7]); +
4897 end +
4898 else +
4899 begin +
4900 K := K shr 1; +
4901 Value := Value xor (Result and Key[K]); +
4902 Result := Result xor (Value or Key[(K + 6) and 7 + 8]); +
4903 end; +
4904 +
4905 Result:= (Result shl 16) or Value; +
4906end; +
4907 +
4908function Misty_D(Value, K: UInt32; Key: PUInt32Array): UInt32; +
4909begin +
4910 Result := Value shr 16; +
4911 Value := Value and $FFFF; +
4912 +
4913 if K and 1 <> 0 then +
4914 begin +
4915 K := K shr 1; +
4916 Result := Result xor (Value or Key[(K + 4) and 7]); +
4917 Value := Value xor (Result and Key[(K + 2) and 7 + 8]); +
4918 end +
4919 else +
4920 begin +
4921 K := K shr 1; +
4922 Result := Result xor (Value or Key[(K + 6) and 7 + 8]); +
4923 Value := Value xor (Result and Key[K]); +
4924 end; +
4925 +
4926 Result:= (Result shl 16) or Value; +
4927end; +
4928 +
4929procedure TCipher_Misty.DoInit(const Key; Size: Integer); +
4930var +
4931 K: array[0..15] of Byte; +
4932 D: PUInt32Array; +
4933 I: Integer; +
4934begin +
4935 FillChar(K, SizeOf(K), 0); +
4936 Move(Key, K, Size); +
4937 D := FAdditionalBuffer; +
4938 +
4939 for I := 0 to 7 do +
4940 D[I] := K[I * 2] * 256 + K[I * 2 + 1]; +
4941 +
4942 for I := 0 to 7 do +
4943 begin +
4944 D[I + 8] := Misty_I(D[I], D[(I + 1) and 7]); +
4945 D[I + 16] := D[I + 8] and $1FF; +
4946 D[I + 24] := D[I + 8] shr 9; +
4947 end; +
4948 +
4949 ProtectBuffer(K, SizeOf(K)); +
4950 +
4951 inherited; +
4952end; +
4953 +
4954procedure TCipher_Misty.DoEncode(Source, Dest: Pointer; Size: Integer); +
4955var +
4956 A, B: UInt32; +
4957begin +
4958 Assert(Size = Context.BlockSize); +
4959 +
4960 A := PUInt32Array(Source)[0]; +
4961 B := PUInt32Array(Source)[1]; +
4962 A := Misty_E(A, 0, FAdditionalBuffer); +
4963 B := Misty_E(B, 1, FAdditionalBuffer) xor Misty_O(A, 0, FAdditionalBuffer); +
4964 A := A xor Misty_O(B, 1, FAdditionalBuffer); +
4965 A := Misty_E(A, 2, FAdditionalBuffer); +
4966 B := Misty_E(B, 3, FAdditionalBuffer) xor Misty_O(A, 2, FAdditionalBuffer); +
4967 A := A xor Misty_O(B, 3, FAdditionalBuffer); +
4968 A := Misty_E(A, 4, FAdditionalBuffer); +
4969 B := Misty_E(B, 5, FAdditionalBuffer) xor Misty_O(A, 4, FAdditionalBuffer); +
4970 A := A xor Misty_O(B, 5, FAdditionalBuffer); +
4971 A := Misty_E(A, 6, FAdditionalBuffer); +
4972 B := Misty_E(B, 7, FAdditionalBuffer) xor Misty_O(A, 6, FAdditionalBuffer); +
4973 A := A xor Misty_O(B, 7, FAdditionalBuffer); +
4974 +
4975 PUInt32Array(Dest)[0] := Misty_E(B, 9, FAdditionalBuffer); +
4976 PUInt32Array(Dest)[1] := Misty_E(A, 8, FAdditionalBuffer); +
4977end; +
4978 +
4979procedure TCipher_Misty.DoDecode(Source, Dest: Pointer; Size: Integer); +
4980var +
4981 A, B: UInt32; +
4982begin +
4983 Assert(Size = Context.BlockSize); +
4984 +
4985 B := Misty_D(PUInt32Array(Source)[0], 9, FAdditionalBuffer); +
4986 A := Misty_D(PUInt32Array(Source)[1], 8, FAdditionalBuffer); +
4987 A := A xor Misty_O(B, 7, FAdditionalBuffer); +
4988 B := Misty_D(B xor Misty_O(A, 6, FAdditionalBuffer), 7, FAdditionalBuffer); +
4989 A := Misty_D(A, 6, FAdditionalBuffer); +
4990 A := A xor Misty_O(B, 5, FAdditionalBuffer); +
4991 B := Misty_D(B xor Misty_O(A, 4, FAdditionalBuffer), 5, FAdditionalBuffer); +
4992 A := Misty_D(A, 4, FAdditionalBuffer); +
4993 A := A xor Misty_O(B, 3, FAdditionalBuffer); +
4994 B := Misty_D(B xor Misty_O(A, 2, FAdditionalBuffer), 3, FAdditionalBuffer); +
4995 A := Misty_D(A, 2, FAdditionalBuffer); +
4996 A := A xor Misty_O(B, 1, FAdditionalBuffer); +
4997 +
4998 PUInt32Array(Dest)[0] := Misty_D(A, 0, FAdditionalBuffer); +
4999 PUInt32Array(Dest)[1] := Misty_D(B xor Misty_O(A, 0, FAdditionalBuffer), 1, FAdditionalBuffer); +
5000end; +
5001 +
5002{ TCipher_NewDES } +
5003 +
5004procedure NewDES_Func(Source, Dest, Key: PByteArray); +
5005var +
5006 I: Integer; +
5007 A, B, C, D, E, F, G, H: Byte; +
5008begin +
5009 A := Source[0]; +
5010 B := Source[1]; +
5011 C := Source[2]; +
5012 D := Source[3]; +
5013 E := Source[4]; +
5014 F := Source[5]; +
5015 G := Source[6]; +
5016 H := Source[7]; +
5017 +
5018 for I := 0 to 7 do +
5019 begin +
5020 E := E xor NewDES_Data[A xor Key[0]]; +
5021 F := F xor NewDES_Data[B xor Key[1]]; +
5022 G := G xor NewDES_Data[C xor Key[2]]; +
5023 H := H xor NewDES_Data[D xor Key[3]]; +
5024 B := B xor NewDES_Data[E xor Key[4]]; +
5025 C := C xor NewDES_Data[F xor E]; +
5026 D := D xor NewDES_Data[G xor Key[5]]; +
5027 A := A xor NewDES_Data[H xor Key[6]]; +
5028 Key := @Key[7]; +
5029 end; +
5030 +
5031 E := E xor NewDES_Data[A xor Key[0]]; +
5032 F := F xor NewDES_Data[B xor Key[1]]; +
5033 G := G xor NewDES_Data[C xor Key[2]]; +
5034 H := H xor NewDES_Data[D xor Key[3]]; +
5035 +
5036 Dest[0] := A; +
5037 Dest[1] := B; +
5038 Dest[2] := C; +
5039 Dest[3] := D; +
5040 Dest[4] := E; +
5041 Dest[5] := F; +
5042 Dest[6] := G; +
5043 Dest[7] := H; +
5044end; +
5045 +
5046class function TCipher_NewDES.Context: TCipherContext; +
5047begin +
5048 Result.KeySize := 15; +
5049 Result.BlockSize := 8; +
5050 Result.BufferSize := 8; +
5051 Result.AdditionalBufferSize := 60 * 2; +
5052 Result.NeedsAdditionalBufferBackup := true; +
5053 Result.MinRounds := 1; +
5054 Result.MaxRounds := 1; +
5055 Result.CipherType := [ctSymmetric, ctBlock]; +
5056end; +
5057 +
5058procedure TCipher_NewDES.DoInit(const Key; Size: Integer); +
5059var +
5060 K: array[0..14] of Byte; +
5061 E: PByteArray; +
5062 I: Integer; +
5063begin +
5064 FillChar(K, SizeOf(K), 0); +
5065 Move(Key, K, Size); +
5066 E := FAdditionalBuffer; +
5067 Move(K, E[ 0], 15); +
5068 Move(K, E[15], 15); +
5069 Move(K, E[30], 15); +
5070 Move(K, E[45], 15); +
5071 E := @E[60]; +
5072 I := 11; +
5073 +
5074 repeat +
5075 E[0] := K[I]; I := (I + 1) mod 15; +
5076 E[1] := K[I]; I := (I + 1) mod 15; +
5077 E[2] := K[I]; I := (I + 1) mod 15; +
5078 E[3] := K[I]; I := (I + 9) mod 15; +
5079 if I = 12 then +
5080 Break; +
5081 E[4] := K[I]; Inc(I); +
5082 E[5] := K[I]; Inc(I); +
5083 E[6] := K[I]; I := (I + 9) mod 15; +
5084 E := @E[7]; +
5085 until False; +
5086 +
5087 ProtectBuffer(K, SizeOf(K)); +
5088 +
5089 inherited; +
5090end; +
5091 +
5092procedure TCipher_NewDES.DoEncode(Source, Dest: Pointer; Size: Integer); +
5093begin +
5094 Assert(Size = Context.BlockSize); +
5095 NewDES_Func(Source, Dest, FAdditionalBuffer); +
5096end; +
5097 +
5098procedure TCipher_NewDES.DoDecode(Source, Dest: Pointer; Size: Integer); +
5099begin +
5100 Assert(Size = Context.BlockSize); +
5101 NewDES_Func(Source, Dest, @PByteArray(FAdditionalBuffer)[60]); +
5102end; +
5103 +
5104{ TCipher_Q128 } +
5105 +
5106class function TCipher_Q128.Context: TCipherContext; +
5107begin +
5108 Result.KeySize := 16; +
5109 Result.BlockSize := 16; +
5110 Result.BufferSize := 16; +
5111 Result.AdditionalBufferSize := 256; +
5112 Result.NeedsAdditionalBufferBackup := false; +
5113 Result.MinRounds := 1; +
5114 Result.MaxRounds := 1; +
5115 Result.CipherType := [ctSymmetric, ctBlock]; +
5116end; +
5117 +
5118procedure TCipher_Q128.DoInit(const Key; Size: Integer); +
5119var +
5120 K: array[0..3] of UInt32; +
5121 D: PUInt32Array; +
5122 I: Integer; +
5123begin +
5124 FillChar(K, SizeOf(K), 0); +
5125 Move(Key, K, Size); +
5126 D := FAdditionalBuffer; +
5127 +
5128 for I := 19 downto 1 do +
5129 begin +
5130 K[1] := K[1] xor Q128_Data[K[0] and $03FF]; K[0] := K[0] shr 10 or K[0] shl 22; +
5131 K[2] := K[2] xor Q128_Data[K[1] and $03FF]; K[1] := K[1] shr 10 or K[1] shl 22; +
5132 K[3] := K[3] xor Q128_Data[K[2] and $03FF]; K[2] := K[2] shr 10 or K[2] shl 22; +
5133 K[0] := K[0] xor Q128_Data[K[3] and $03FF]; K[3] := K[3] shr 10 or K[3] shl 22; +
5134 if I <= 16 then +
5135 begin +
5136 D[0] := K[0]; +
5137 D[1] := K[1]; +
5138 D[2] := K[2]; +
5139 D[3] := K[3]; +
5140 D := @D[4]; +
5141 end; +
5142 end; +
5143 +
5144 ProtectBuffer(K, SizeOf(K)); +
5145 +
5146 inherited; +
5147end; +
5148 +
5149procedure TCipher_Q128.DoEncode(Source, Dest: Pointer; Size: Integer); +
5150{$IFDEF X86ASM} +
5151asm +
5152 PUSH ESI +
5153 PUSH EDI +
5154 PUSH EBX +
5155 PUSH EBP +
5156 PUSH ECX +
5157 MOV EDI,[EAX].TCipher_Q128.FAdditionalBuffer +
5158 MOV EAX,[EDX + 0] // B0 +
5159 MOV EBX,[EDX + 4] // B1 +
5160 MOV ECX,[EDX + 8] // B2 +
5161 MOV EDX,[EDX + 12] // B3 +
5162 MOV EBP,16 +
5163@@1: MOV ESI,EAX +
5164 ROL ESI,10 +
5165 AND EAX,03FFh +
5166 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5167 ADD EAX,[EDI + 0] +
5168 XOR EAX,EBX +
5169 MOV EBX,EAX +
5170 ROL EBX,10 +
5171 AND EAX,03FFh +
5172 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5173 ADD EAX,[EDI + 4] +
5174 XOR EAX,ECX +
5175 MOV ECX,EAX +
5176 ROL ECX,10 +
5177 AND EAX,03FFh +
5178 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5179 ADD EAX,[EDI + 8] +
5180 XOR EAX,EDX +
5181 MOV EDX,EAX +
5182 ROL EDX,10 +
5183 AND EAX,03FFh +
5184 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5185 ADD EAX,[EDI + 12] +
5186 XOR EAX,ESI +
5187 DEC EBP +
5188 LEA EDI,[EDI + 16] +
5189 JNZ @@1 +
5190 POP ESI +
5191 MOV [ESI + 0],EAX // B0 +
5192 MOV [ESI + 4],EBX // B1 +
5193 MOV [ESI + 8],ECX // B2 +
5194 MOV [ESI + 12],EDX // B3 +
5195 POP EBP +
5196 POP EBX +
5197 POP EDI +
5198 POP ESI +
5199end; +
5200{$ELSE !X86ASM} +
5201var +
5202 D: PUInt32Array; +
5203 B0, B1, B2, B3, I: UInt32; +
5204begin +
5205 Assert(Size = Context.BlockSize); +
5206 +
5207 D := Pointer(FAdditionalBuffer); +
5208 B0 := PUInt32Array(Source)[0]; +
5209 B1 := PUInt32Array(Source)[1]; +
5210 B2 := PUInt32Array(Source)[2]; +
5211 B3 := PUInt32Array(Source)[3]; +
5212 for I := 0 to 15 do +
5213 begin +
5214 B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]); B0 := B0 shl 10 or B0 shr 22; +
5215 B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]); B1 := B1 shl 10 or B1 shr 22; +
5216 B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]); B2 := B2 shl 10 or B2 shr 22; +
5217 B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]); B3 := B3 shl 10 or B3 shr 22; +
5218 D := @D[4]; +
5219 end; +
5220 PUInt32Array(Dest)[0] := B0; +
5221 PUInt32Array(Dest)[1] := B1; +
5222 PUInt32Array(Dest)[2] := B2; +
5223 PUInt32Array(Dest)[3] := B3; +
5224end; +
5225{$ENDIF !X86ASM} +
5226 +
5227procedure TCipher_Q128.DoDecode(Source, Dest: Pointer; Size: Integer); +
5228{$IFDEF X86ASM} +
5229asm +
5230 PUSH ESI +
5231 PUSH EDI +
5232 PUSH EBX +
5233 PUSH EBP +
5234 PUSH ECX +
5235 MOV EDI,[EAX].TCipher_Q128.FAdditionalBuffer +
5236 LEA EDI,[EDI + 64 * 4] +
5237 MOV ESI,[EDX + 0] // B0 +
5238 MOV EBX,[EDX + 4] // B1 +
5239 MOV ECX,[EDX + 8] // B2 +
5240 MOV EDX,[EDX + 12] // B3 +
5241 MOV EBP,16 +
5242@@1: SUB EDI,16 +
5243 ROR EDX,10 +
5244 MOV EAX,EDX +
5245 AND EAX,03FFh +
5246 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5247 ADD EAX,[EDI + 12] +
5248 XOR ESI,EAX +
5249 ROR ECX,10 +
5250 MOV EAX,ECX +
5251 AND EAX,03FFh +
5252 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5253 ADD EAX,[EDI + 8] +
5254 XOR EDX,EAX +
5255 ROR EBX,10 +
5256 MOV EAX,EBX +
5257 AND EAX,03FFh +
5258 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5259 ADD EAX,[EDI + 4] +
5260 XOR ECX,EAX +
5261 ROR ESI,10 +
5262 MOV EAX,ESI +
5263 AND EAX,03FFh +
5264 MOV EAX,[EAX * 4 + OFFSET Q128_DATA] +
5265 ADD EAX,[EDI] +
5266 XOR EBX,EAX +
5267 DEC EBP +
5268 JNZ @@1 +
5269 POP EAX +
5270 MOV [EAX + 0],ESI // B0 +
5271 MOV [EAX + 4],EBX // B1 +
5272 MOV [EAX + 8],ECX // B2 +
5273 MOV [EAX + 12],EDX // B3 +
5274 POP EBP +
5275 POP EBX +
5276 POP EDI +
5277 POP ESI +
5278end; +
5279{$ELSE !X86ASM} +
5280var +
5281 D: PUInt32Array; +
5282 B0, B1, B2, B3, I: UInt32; +
5283begin +
5284 Assert(Size = Context.BlockSize); +
5285 +
5286 D := @PUInt32Array(FAdditionalBuffer)[60]; +
5287 B0 := PUInt32Array(Source)[0]; +
5288 B1 := PUInt32Array(Source)[1]; +
5289 B2 := PUInt32Array(Source)[2]; +
5290 B3 := PUInt32Array(Source)[3]; +
5291 for I := 0 to 15 do +
5292 begin +
5293 B3 := B3 shr 10 or B3 shl 22; B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]); +
5294 B2 := B2 shr 10 or B2 shl 22; B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]); +
5295 B1 := B1 shr 10 or B1 shl 22; B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]); +
5296 B0 := B0 shr 10 or B0 shl 22; B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]); +
5297 Dec(PUInt32(D), 4); +
5298 end; +
5299 PUInt32Array(Dest)[0] := B0; +
5300 PUInt32Array(Dest)[1] := B1; +
5301 PUInt32Array(Dest)[2] := B2; +
5302 PUInt32Array(Dest)[3] := B3; +
5303end; +
5304{$ENDIF !X86ASM} +
5305 +
5306{ TCipher_RC2 } +
5307 +
5308class function TCipher_RC2.Context: TCipherContext; +
5309begin +
5310 Result.KeySize := 128; +
5311 Result.BlockSize := 8; +
5312 Result.BufferSize := 8; +
5313 Result.AdditionalBufferSize := 128; +
5314 Result.NeedsAdditionalBufferBackup := False; +
5315 Result.MinRounds := 1; +
5316 Result.MaxRounds := 1; +
5317 Result.CipherType := [ctSymmetric, ctBlock]; +
5318end; +
5319 +
5320procedure TCipher_RC2.DoInit(const Key; Size: Integer); +
5321// New keyscheduling according to RFC2268 and it's testcases. The V3 keysetup +
5322// was using an older, inferior version. Special thanks to Brendan Bosnan for +
5323// pointing that out. +
5324var +
5325 I, L, Mask, KeyEffectiveBits: Integer; +
5326 K: PByteArray; +
5327begin +
5328 if Size <= 0 then +
5329 Exit; +
5330 KeyEffectiveBits := Size * 8; +
5331 L := KeyEffectiveBits and 7; +
5332 if L = 0 then +
5333 Mask := $FF +
5334 else +
5335 Mask := $FF shr (8 - L); +
5336 L := (KeyEffectiveBits + 7) shr 3; +
5337 K := FAdditionalBuffer; +
5338 Move(Key, K[0], Size); +
5339 for I := Size to 127 do +
5340 K[I] := RC2_Data[(K[I - Size] + K[I - 1]) and $FF]; +
5341 K[128 - L] := RC2_Data[K[128 - L] and Mask]; +
5342 for I := 127 - L downto 0 do +
5343 K[I] := RC2_Data[K[I + 1] xor K[I + L]]; +
5344 +
5345 inherited; +
5346end; +
5347 +
5348procedure TCipher_RC2.DoEncode(Source, Dest: Pointer; Size: Integer); +
5349var +
5350 I: Integer; +
5351 K: PWordArray; +
5352 A, B, C, D: Word; +
5353begin +
5354 Assert(Size = Context.BlockSize); +
5355 +
5356 K := FAdditionalBuffer; +
5357 A := PWordArray(Source)[0]; +
5358 B := PWordArray(Source)[1]; +
5359 C := PWordArray(Source)[2]; +
5360 D := PWordArray(Source)[3]; +
5361 for I := 0 to 15 do +
5362 begin +
5363 Inc(A, (B and not D) + (C and D) + K[I * 4 + 0]); A := A shl 1 or A shr 15; +
5364 Inc(B, (C and not A) + (D and A) + K[I * 4 + 1]); B := B shl 2 or B shr 14; +
5365 Inc(C, (D and not B) + (A and B) + K[I * 4 + 2]); C := C shl 3 or C shr 13; +
5366 Inc(D, (A and not C) + (B and C) + K[I * 4 + 3]); D := D shl 5 or D shr 11; +
5367 if I in [4, 10] then +
5368 begin +
5369 Inc(A, K[D and $3F]); +
5370 Inc(B, K[A and $3F]); +
5371 Inc(C, K[B and $3F]); +
5372 Inc(D, K[C and $3F]); +
5373 end; +
5374 end; +
5375 PWordArray(Dest)[0] := A; +
5376 PWordArray(Dest)[1] := B; +
5377 PWordArray(Dest)[2] := C; +
5378 PWordArray(Dest)[3] := D; +
5379end; +
5380 +
5381procedure TCipher_RC2.DoDecode(Source, Dest: Pointer; Size: Integer); +
5382var +
5383 I: Integer; +
5384 K: PWordArray; +
5385 A, B, C, D: Word; +
5386begin +
5387 Assert(Size = Context.BlockSize); +
5388 +
5389 K := FAdditionalBuffer; +
5390 A := PWordArray(Source)[0]; +
5391 B := PWordArray(Source)[1]; +
5392 C := PWordArray(Source)[2]; +
5393 D := PWordArray(Source)[3]; +
5394 for I := 15 downto 0 do +
5395 begin +
5396 D := D shr 5 or D shl 11 - (A and not C) - (B and C) - K[I * 4 + 3]; +
5397 C := C shr 3 or C shl 13 - (D and not B) - (A and B) - K[I * 4 + 2]; +
5398 B := B shr 2 or B shl 14 - (C and not A) - (D and A) - K[I * 4 + 1]; +
5399 A := A shr 1 or A shl 15 - (B and not D) - (C and D) - K[I * 4 + 0]; +
5400 if I in [5, 11] then +
5401 begin +
5402 Dec(D, K[C and $3F]); +
5403 Dec(C, K[B and $3F]); +
5404 Dec(B, K[A and $3F]); +
5405 Dec(A, K[D and $3F]); +
5406 end; +
5407 end; +
5408 PWordArray(Dest)[0] := A; +
5409 PWordArray(Dest)[1] := B; +
5410 PWordArray(Dest)[2] := C; +
5411 PWordArray(Dest)[3] := D; +
5412end; +
5413 +
5414{ TCipher_RC5 } +
5415 +
5416class function TCipher_RC5.Context: TCipherContext; +
5417begin +
5418 Result.KeySize := 256; +
5419 Result.BlockSize := 8; +
5420 Result.BufferSize := 8; +
5421 Result.AdditionalBufferSize := 136; +
5422 Result.NeedsAdditionalBufferBackup := false; +
5423 Result.MinRounds := 0; +
5424 Result.MaxRounds := 256; +
5425 Result.CipherType := [ctSymmetric, ctBlock]; +
5426end; +
5427 +
5428procedure TCipher_RC5.SetRounds(Value: Integer); +
5429begin +
5430 if Value <> FRounds then +
5431 begin +
5432 if not (FState in [csNew, csInitialized, csDone]) then +
5433 Done; +
5434 +
5435 if Value < 0 then +
5436 Value := 12; +
5437 +
5438 if (Value > Context.MaxRounds) then +
5439 Value := Context.MaxRounds; +
5440 +
5441 FRounds := Value; +
5442 end; +
5443end; +
5444 +
5445procedure TCipher_RC5.DoInit(const Key; Size: Integer); +
5446var +
5447 K: array[0..63] of UInt32; +
5448 L, Z, I, J: Integer; +
5449 D: PUInt32Array; +
5450 A, B, T: UInt32; +
5451begin +
5452 if FRounds <= 0 then +
5453 FRounds := 12; +
5454 FillChar(K, SizeOf(K), 0); +
5455 Move(Key, K, Size); +
5456 D := FAdditionalBuffer; +
5457 L := (Size + 3) shr 2; +
5458 if L <= 0 then +
5459 L := 1; +
5460 T := $B7E15163; +
5461 for I := 0 to (FRounds + 1) * 2 do +
5462 begin +
5463 D[I] := T; +
5464 Inc(T, $9E3779B9); +
5465 end; +
5466 if L > (FRounds + 1) * 2 then +
5467 Z := L * 3 +
5468 else +
5469 Z := (FRounds + 1) * 6; +
5470 I := 0; +
5471 J := 0; +
5472 A := 0; +
5473 B := 0; +
5474 for Z := Z downto 1 do +
5475 begin +
5476 A := D[I] + A + B; +
5477 A := A shl 3 or A shr 29; +
5478 D[I] := A; +
5479 T := A + B; +
5480 B := K[J] + T; +
5481 B := B shl T or B shr (32 - T); +
5482 K[J] := B; +
5483 I := (I + 1) mod ((FRounds + 1) * 2); +
5484 J := (J + 1) mod L; +
5485 end; +
5486 ProtectBuffer(K, SizeOf(K)); +
5487 +
5488 inherited; +
5489end; +
5490 +
5491procedure TCipher_RC5.DoEncode(Source, Dest: Pointer; Size: Integer); +
5492var +
5493 K: PUInt32Array; +
5494 I: Integer; +
5495 A, B: UInt32; +
5496begin +
5497 Assert(Size = Context.BlockSize); +
5498 +
5499 K := FAdditionalBuffer; +
5500 A := PUInt32Array(Source)[0] + K[0]; +
5501 B := PUInt32Array(Source)[1] + K[1]; +
5502 for I := 1 to FRounds do +
5503 begin +
5504 A := A xor B; A := A shl B or A shr (32 - B) + K[I * 2 + 0]; +
5505 B := B xor A; B := B shl A or B shr (32 - A) + K[I * 2 + 1]; +
5506 end; +
5507 PUInt32Array(Dest)[0] := A; +
5508 PUInt32Array(Dest)[1] := B; +
5509end; +
5510 +
5511procedure TCipher_RC5.DoDecode(Source, Dest: Pointer; Size: Integer); +
5512var +
5513 K: PUInt32Array; +
5514 I: Integer; +
5515 A, B: UInt32; +
5516begin +
5517 Assert(Size = Context.BlockSize); +
5518 +
5519 K := @PUInt32Array(FAdditionalBuffer)[0]; +
5520 A := PUInt32Array(Source)[0]; +
5521 B := PUInt32Array(Source)[1]; +
5522 for I := FRounds downto 1 do +
5523 begin +
5524 B := B - K[I * 2 + 1]; B := B shr A or B shl (32 - A) xor A; +
5525 A := A - K[I * 2 + 0]; A := A shr B or A shl (32 - B) xor B; +
5526 end; +
5527 PUInt32Array(Dest)[0] := A - K[0]; +
5528 PUInt32Array(Dest)[1] := B - K[1]; +
5529end; +
5530 +
5531{ TCipher_SAFER } +
5532 +
5533class function TCipher_SAFER.Context: TCipherContext; +
5534begin +
5535 Result.KeySize := 16; +
5536 Result.BlockSize := 8; +
5537 Result.BufferSize := 8; +
5538 Result.AdditionalBufferSize := 768; +
5539 Result.NeedsAdditionalBufferBackup := false; +
5540 Result.MinRounds := 4; +
5541 Result.MaxRounds := 13; +
5542 Result.CipherType := [ctSymmetric, ctBlock]; +
5543end; +
5544 +
5545procedure TCipher_SAFER.SetRounds(Value: Integer); +
5546begin +
5547 if not (FState in [csNew, csInitialized, csDone]) then +
5548 Done; +
5549 if (Value < 4) or (Value > 13) then +
5550 case FVersion of // Default Rounds +
5551 svK40, svSK40: Value := 5; +
5552 svK64, svSK64: Value := 6; +
5553 svK128, svSK128: Value := 10; +
5554 else +
5555 Value := 8; +
5556 end; +
5557 FRounds := Value; +
5558end; +
5559 +
5560procedure TCipher_SAFER.SetVersion(Value: TSAFERVersion); +
5561begin +
5562 if Value <> FVersion then +
5563 begin +
5564 if not (FState in [csNew, csInitialized, csDone]) then +
5565 Done; +
5566 FVersion := Value; +
5567 SetRounds(0); +
5568 end; +
5569end; +
5570 +
5571procedure TCipher_SAFER.DoInit(const Key; Size: Integer); +
5572 +
5573 procedure InitTab; +
5574 var +
5575 I, E: Integer; +
5576 Exp: PByteArray; +
5577 Log: PByteArray; +
5578 begin +
5579 Exp := FAdditionalBuffer; +
5580 Log := @Exp[256]; +
5581 E := 1; +
5582 for I := 0 to 255 do +
5583 begin +
5584 Exp[I] := E and $FF; +
5585 Log[E and $FF] := I; +
5586 E := (E * 45) mod 257; +
5587 end; +
5588 end; +
5589 +
5590 procedure InitKey; +
5591 var +
5592 D: PByte; +
5593 Exp: PByteArray; +
5594 Strong: Boolean; +
5595 K: array[Boolean, 0..8] of Byte; +
5596 I, J: Integer; +
5597 begin +
5598 Strong := FVersion in [svSK40, svSK64, svSK128]; +
5599 Exp := FAdditionalBuffer; +
5600 D := @Exp[512]; +
5601 FillChar(K, SizeOf(K), 0); +
5602 // Setup Key A +
5603 I := Size; +
5604 if I > 8 then +
5605 I := 8; +
5606 Move(Key, K[False], I); +
5607 // Setup the Key for K-40, SK-40 +
5608 if FVersion in [svK40, svSK40] then +
5609 begin +
5610 K[False, 5] := K[False, 0] xor K[False, 2] xor 129; +
5611 K[False, 6] := K[False, 0] xor K[False, 3] xor K[False, 4] xor 66; +
5612 K[False, 7] := K[False, 1] xor K[False, 2] xor K[False, 4] xor 36; +
5613 K[False, 8] := K[False, 1] xor K[False, 3] xor 24; +
5614 Move(K[False], K[True], SizeOf(K[False])); +
5615 end +
5616 else +
5617 begin +
5618 if Size > 8 then +
5619 begin +
5620 I := Size - 8; +
5621 if I > 8 then +
5622 I := 8; +
5623 Move(TByteArray(Key)[8], K[True], I); +
5624 end +
5625 else +
5626 Move(K[False], K[True], 9); +
5627 for I := 0 to 7 do +
5628 begin +
5629 K[False, 8] := K[False, 8] xor K[False, I]; +
5630 K[True, 8] := K[True, 8] xor K[True, I]; +
5631 end; +
5632 end; +
5633 // Setup the KeyData +
5634 Move(K[True], D^, 8); +
5635 Inc(D, 8); +
5636 +
5637 for I := 0 to 8 do +
5638 K[False, I] := K[False, I] shr 3 or K[False, I] shl 5; +
5639 +
5640 for I := 1 to FRounds do +
5641 begin +
5642 for J := 0 to 8 do +
5643 begin +
5644 K[False, J] := K[False, J] shl 6 or K[False, J] shr 2; +
5645 K[True, J] := K[True, J] shl 6 or K[True, J] shr 2; +
5646 end; +
5647 for J := 0 to 7 do +
5648 begin +
5649 if Strong then +
5650 D^ := K[False, (J + I * 2 - 1) mod 9] + Exp[Exp[18 * I + J + 1]] +
5651 else +
5652 D^ := K[False, J] + Exp[Exp[18 * I + J + 1]]; +
5653 Inc(D); +
5654 end; +
5655 for J := 0 to 7 do +
5656 begin +
5657 if Strong then +
5658 D^ := K[True, (J + I * 2) mod 9] + Exp[Exp[18 * I + J + 10]] +
5659 else +
5660 D^ := K[True, J] + Exp[Exp[18 * I + J + 10]]; +
5661 Inc(D); +
5662 end; +
5663 end; +
5664 ProtectBuffer(K, SizeOf(K)); +
5665 end; +
5666 +
5667begin +
5668 if (FRounds < 4) or (FRounds > 13) then +
5669 case FVersion of +
5670 svK40, svSK40: FRounds := 5; +
5671 svK64, svSK64: FRounds := 6; +
5672 svK128, svSK128: FRounds := 10; +
5673 else +
5674 FRounds := 8; +
5675 end; +
5676 InitTab; +
5677 InitKey; +
5678 +
5679 inherited; +
5680end; +
5681 +
5682procedure TCipher_SAFER.DoEncode(Source, Dest: Pointer; Size: Integer); +
5683var +
5684 Exp, Log, Key: PByteArray; +
5685 I: Integer; +
5686 A, B, C, D, E, F, G, H, T: Byte; +
5687begin +
5688 Assert(Size = Context.BlockSize); +
5689 +
5690 Exp := FAdditionalBuffer; +
5691 Log := @Exp[256]; +
5692 Key := @Exp[512]; +
5693 +
5694 A := PByteArray(Source)[0]; +
5695 B := PByteArray(Source)[1]; +
5696 C := PByteArray(Source)[2]; +
5697 D := PByteArray(Source)[3]; +
5698 E := PByteArray(Source)[4]; +
5699 F := PByteArray(Source)[5]; +
5700 G := PByteArray(Source)[6]; +
5701 H := PByteArray(Source)[7]; +
5702 +
5703 for I := 0 to FRounds - 1 do +
5704 begin +
5705 A := A xor Key[0]; +
5706 B := B + Key[1]; +
5707 C := C + Key[2]; +
5708 D := D xor Key[3]; +
5709 E := E xor Key[4]; +
5710 F := F + Key[5]; +
5711 G := G + Key[6]; +
5712 H := H xor Key[7]; +
5713 +
5714 A := Exp[A] + Key[8]; +
5715 B := Log[B] xor Key[9]; +
5716 C := Log[C] xor Key[10]; +
5717 D := Exp[D] + Key[11]; +
5718 E := Exp[E] + Key[12]; +
5719 F := Log[F] xor Key[13]; +
5720 G := Log[G] xor Key[14]; +
5721 H := Exp[H] + Key[15]; +
5722 Inc(B, A); Inc(A, B); +
5723 Inc(D, C); Inc(C, D); +
5724 Inc(F, E); Inc(E, F); +
5725 Inc(H, G); Inc(G, H); +
5726 Inc(C, A); Inc(A, C); +
5727 Inc(G, E); Inc(E, G); +
5728 Inc(D, B); Inc(B, D); +
5729 Inc(H, F); Inc(F, H); +
5730 Inc(E, A); Inc(A, E); +
5731 Inc(F, B); Inc(B, F); +
5732 Inc(G, C); Inc(C, G); +
5733 Inc(H, D); Inc(D, H); +
5734 T := B; B := E; E := C; C := T; +
5735 T := D; D := F; F := G; G := T; +
5736 Key := @Key[16]; +
5737 end; +
5738 +
5739 PByteArray(Dest)[0] := A xor Key[0]; +
5740 PByteArray(Dest)[1] := B + Key[1]; +
5741 PByteArray(Dest)[2] := C + Key[2]; +
5742 PByteArray(Dest)[3] := D xor Key[3]; +
5743 PByteArray(Dest)[4] := E xor Key[4]; +
5744 PByteArray(Dest)[5] := F + Key[5]; +
5745 PByteArray(Dest)[6] := G + Key[6]; +
5746 PByteArray(Dest)[7] := H xor Key[7]; +
5747end; +
5748 +
5749procedure TCipher_SAFER.DoDecode(Source, Dest: Pointer; Size: Integer); +
5750var +
5751 Exp, Log, Key: PByteArray; +
5752 I: Integer; +
5753 A, B, C, D, E, F, G, H, T: Byte; +
5754begin +
5755 Assert(Size = Context.BlockSize); +
5756 +
5757 Exp := FAdditionalBuffer; +
5758 Log := @Exp[256]; +
5759 Key := @Exp[504 + 8 * (FRounds * 2 + 1)]; +
5760 +
5761 A := PByteArray(Source)[0] xor Key[0]; +
5762 B := PByteArray(Source)[1] - Key[1]; +
5763 C := PByteArray(Source)[2] - Key[2]; +
5764 D := PByteArray(Source)[3] xor Key[3]; +
5765 E := PByteArray(Source)[4] xor Key[4]; +
5766 F := PByteArray(Source)[5] - Key[5]; +
5767 G := PByteArray(Source)[6] - Key[6]; +
5768 H := PByteArray(Source)[7] xor Key[7]; +
5769 +
5770 for I := 0 to FRounds - 1 do +
5771 begin +
5772 Dec(PByte(Key), 16); +
5773 T := E; E := B; B := C; C := T; +
5774 T := F; F := D; D := G; G := T; +
5775 Dec(A, E); Dec(E, A); +
5776 Dec(B, F); Dec(F, B); +
5777 Dec(C, G); Dec(G, C); +
5778 Dec(D, H); Dec(H, D); +
5779 Dec(A, C); Dec(C, A); +
5780 Dec(E, G); Dec(G, E); +
5781 Dec(B, D); Dec(D, B); +
5782 Dec(F, H); Dec(H, F); +
5783 Dec(A, B); Dec(B, A); +
5784 Dec(C, D); Dec(D, C); +
5785 Dec(E, F); Dec(F, E); +
5786 Dec(G, H); Dec(H, G); +
5787 H := H - Key[15]; +
5788 G := G xor Key[14]; +
5789 F := F xor Key[13]; +
5790 E := E - Key[12]; +
5791 D := D - Key[11]; +
5792 C := C xor Key[10]; +
5793 B := B xor Key[9]; +
5794 A := A - Key[8]; +
5795 H := Log[H] xor Key[7]; +
5796 G := Exp[G] - Key[6]; +
5797 F := Exp[F] - Key[5]; +
5798 E := Log[E] xor Key[4]; +
5799 D := Log[D] xor Key[3]; +
5800 C := Exp[C] - Key[2]; +
5801 B := Exp[B] - Key[1]; +
5802 A := Log[A] xor Key[0]; +
5803 end; +
5804 +
5805 PByteArray(Dest)[0] := A; +
5806 PByteArray(Dest)[1] := B; +
5807 PByteArray(Dest)[2] := C; +
5808 PByteArray(Dest)[3] := D; +
5809 PByteArray(Dest)[4] := E; +
5810 PByteArray(Dest)[5] := F; +
5811 PByteArray(Dest)[6] := G; +
5812 PByteArray(Dest)[7] := H; +
5813end; +
5814 +
5815{ TCipher_SharkBase } +
5816 +
5817const +
5818 SHARK_ROOT = $01F5; // GF(256) polynomial x^8 + x^7 + x^6 + x^5 + x^4 + x^2 + 1 +
5819 SHARK_ROUNDS = 6; +
5820 SHARK_ROUNDKEYS = SHARK_ROUNDS + 1; +
5821 +
5822{$IFNDEF CPU64BITS} +
5823function TCipher_SharkBase.Shark(D: TLong64; K: PLong64): TLong64; +
5824var +
5825 R, T: Integer; +
5826begin +
5827 for R := 0 to 4 do +
5828 begin +
5829 D.L := D.L xor K.L; +
5830 D.R := D.R xor K.R; +
5831 Inc(K); +
5832 T := Shark_CE[0, D.R shr 23 and $1FE] xor +
5833 Shark_CE[1, D.R shr 15 and $1FE] xor +
5834 Shark_CE[2, D.R shr 7 and $1FE] xor +
5835 Shark_CE[3, D.R shl 1 and $1FE] xor +
5836 Shark_CE[4, D.L shr 23 and $1FE] xor +
5837 Shark_CE[5, D.L shr 15 and $1FE] xor +
5838 Shark_CE[6, D.L shr 7 and $1FE] xor +
5839 Shark_CE[7, D.L shl 1 and $1FE]; +
5840 +
5841 D.R := Shark_CE[0, D.R shr 23 and $1FE or 1] xor +
5842 Shark_CE[1, D.R shr 15 and $1FE or 1] xor +
5843 Shark_CE[2, D.R shr 7 and $1FE or 1] xor +
5844 Shark_CE[3, D.R shl 1 and $1FE or 1] xor +
5845 Shark_CE[4, D.L shr 23 and $1FE or 1] xor +
5846 Shark_CE[5, D.L shr 15 and $1FE or 1] xor +
5847 Shark_CE[6, D.L shr 7 and $1FE or 1] xor +
5848 Shark_CE[7, D.L shl 1 and $1FE or 1]; +
5849 D.L := T; +
5850 end; +
5851 D.L := D.L xor K.L; +
5852 D.R := D.R xor K.R; +
5853 Inc(K); +
5854 D.L := UInt32(Shark_SE[D.L shr 24 and $FF]) shl 24 xor +
5855 UInt32(Shark_SE[D.L shr 16 and $FF]) shl 16 xor +
5856 UInt32(Shark_SE[D.L shr 8 and $FF]) shl 8 xor +
5857 UInt32(Shark_SE[D.L and $FF]); +
5858 D.R := UInt32(Shark_SE[D.R shr 24 and $FF]) shl 24 xor +
5859 UInt32(Shark_SE[D.R shr 16 and $FF]) shl 16 xor +
5860 UInt32(Shark_SE[D.R shr 8 and $FF]) shl 8 xor +
5861 UInt32(Shark_SE[D.R and $FF]); +
5862 Result.L := D.L xor K.L; +
5863 Result.R := D.R xor K.R; +
5864end; +
5865{$ENDIF} +
5866 +
5867{$IFNDEF CPU64BITS} +
5868function TCipher_SharkBase.Transform(A: TLong64; Log, ALog: TLogArray): TLong64; +
5869 function Mul(A, B: Integer): Byte; +
5870 begin +
5871 // GF(256) multiplication via logarithm tables +
5872 Result := ALog[(Log[A] + Log[B]) mod 255]; +
5873 end; +
5874 +
5875var +
5876 I, J: Byte; +
5877 K, T: array[0..7] of Byte; +
5878begin +
5879 Move(A.R, K[0], 4); +
5880 Move(A.L, K[4], 4); +
5881 SwapUInt32Buffer(K, K, 2); +
5882 +
5883 for I := 0 to 7 do +
5884 begin +
5885 T[I] := Mul(Shark_I[I, 0], K[0]); +
5886 for J := 1 to 7 do +
5887 T[I] := T[I] xor Mul(Shark_I[I, J], K[J]); +
5888 end; +
5889 +
5890 Result.L := T[0]; +
5891 Result.R := 0; +
5892 for I := 1 to 7 do +
5893 begin +
5894 Result.R := Result.R shl 8 or Result.L shr 24; +
5895 Result.L := Result.L shl 8 xor T[I]; +
5896 end; +
5897end; +
5898 +
5899{$ELSE CPU64BITS} +
5900function TCipher_SharkBase.Transform(A: UInt64; Log, ALog: TLogArray): UInt64; +
5901 function Mul(A, B: Integer): Byte; +
5902 begin +
5903 // GF(256) multiplication via logarithm tables +
5904 Result := ALog[(Log[A] + Log[B]) mod 255]; +
5905 end; +
5906 +
5907var +
5908 I, J: Byte; +
5909 K, T: array[0..7] of Byte; +
5910begin +
5911 for I := 0 to 7 do +
5912 K[I] := A shr (56 - 8 * i); +
5913 +
5914 for I := 0 to 7 do +
5915 begin +
5916 T[I] := Mul(Shark_I[I, 0], K[0]); +
5917 for J := 1 to 7 do +
5918 T[I] := T[I] xor Mul(Shark_I[I, J], K[J]); +
5919 end; +
5920 +
5921 Result := T[0]; +
5922 for I := 1 to 7 do +
5923 Result := (Result shl 8) xor T[I]; +
5924end; +
5925{$ENDIF} +
5926 +
5927class function TCipher_SharkBase.Context: TCipherContext; +
5928begin +
5929 Result.KeySize := 16; +
5930 Result.BlockSize := 8; +
5931 Result.BufferSize := 8; +
5932 Result.AdditionalBufferSize := 112; +
5933 Result.NeedsAdditionalBufferBackup := False; +
5934 Result.MinRounds := 1; +
5935 Result.MaxRounds := 1; +
5936 Result.CipherType := [ctSymmetric, ctBlock]; +
5937end; +
5938 +
5939 +
5940procedure TCipher_SharkBase.DoEncode(Source, Dest: Pointer; Size: Integer); +
5941{$IFNDEF CPU64BITS} +
5942var +
5943 I: Integer; +
5944 T, L, R: UInt32; +
5945 K: PUInt32Array; +
5946begin +
5947 Assert(Size = Context.BlockSize); +
5948 +
5949 K := FAdditionalBuffer; +
5950 L := PLong64(Source).L; +
5951 R := PLong64(Source).R; +
5952 for I := 0 to 4 do +
5953 begin +
5954 L := L xor K[I * 2 + 0]; +
5955 R := R xor K[I * 2 + 1]; +
5956 T := Shark_CE[0, R shr 23 and $1FE] xor +
5957 Shark_CE[1, R shr 15 and $1FE] xor +
5958 Shark_CE[2, R shr 7 and $1FE] xor +
5959 Shark_CE[3, R shl 1 and $1FE] xor +
5960 Shark_CE[4, L shr 23 and $1FE] xor +
5961 Shark_CE[5, L shr 15 and $1FE] xor +
5962 Shark_CE[6, L shr 7 and $1FE] xor +
5963 Shark_CE[7, L shl 1 and $1FE]; +
5964 R := Shark_CE[0, R shr 23 and $1FE or 1] xor +
5965 Shark_CE[1, R shr 15 and $1FE or 1] xor +
5966 Shark_CE[2, R shr 7 and $1FE or 1] xor +
5967 Shark_CE[3, R shl 1 and $1FE or 1] xor +
5968 Shark_CE[4, L shr 23 and $1FE or 1] xor +
5969 Shark_CE[5, L shr 15 and $1FE or 1] xor +
5970 Shark_CE[6, L shr 7 and $1FE or 1] xor +
5971 Shark_CE[7, L shl 1 and $1FE or 1]; +
5972 L := T; +
5973 end; +
5974 L := L xor K[10]; +
5975 R := R xor K[11]; +
5976 L := UInt32(Shark_SE[L shr 24 ]) shl 24 xor +
5977 UInt32(Shark_SE[L shr 16 and $FF]) shl 16 xor +
5978 UInt32(Shark_SE[L shr 8 and $FF]) shl 8 xor +
5979 UInt32(Shark_SE[L and $FF]); +
5980 R := UInt32(Shark_SE[R shr 24 ]) shl 24 xor +
5981 UInt32(Shark_SE[R shr 16 and $FF]) shl 16 xor +
5982 UInt32(Shark_SE[R shr 8 and $FF]) shl 8 xor +
5983 UInt32(Shark_SE[R and $FF]); +
5984 PLong64(Dest).L := L xor K[12]; +
5985 PLong64(Dest).R := R xor K[13]; +
5986{$ELSE CPU64BITS} +
5987begin +
5988 // 64 bit +
5989 Assert(Size = Context.BufferSize); +
5990 +
5991 PUInt64(Dest)^ := SharkEncode(PUInt64(Source)^, FAdditionalBuffer); +
5992{$ENDIF} +
5993end; +
5994 +
5995{$IFDEF CPU64BITS} +
5996function TCipher_SharkBase.SharkEncode(D: UInt64; K: PUInt64): UInt64; +
5997var +
5998 R: Integer; +
5999begin +
6000 for R := 1 to SHARK_ROUNDS - 1 do +
6001 begin +
6002 D := D xor K^; +
6003 Inc(K); +
6004 D := Shark_CE[0, D shr 56 and $FF] xor +
6005 Shark_CE[1, D shr 48 and $FF] xor +
6006 Shark_CE[2, D shr 40 and $FF] xor +
6007 Shark_CE[3, D shr 32 and $FF] xor +
6008 Shark_CE[4, D shr 24 and $FF] xor +
6009 Shark_CE[5, D shr 16 and $FF] xor +
6010 Shark_CE[6, D shr 8 and $FF] xor +
6011 Shark_CE[7, D and $FF]; +
6012 end; +
6013 D := D xor K^; +
6014 Inc(K); +
6015 D := UInt64(Shark_SE[D shr 56 and $FF]) shl 56 xor +
6016 UInt64(Shark_SE[D shr 48 and $FF]) shl 48 xor +
6017 UInt64(Shark_SE[D shr 40 and $FF]) shl 40 xor +
6018 UInt64(Shark_SE[D shr 32 and $FF]) shl 32 xor +
6019 UInt64(Shark_SE[D shr 24 and $FF]) shl 24 xor +
6020 UInt64(Shark_SE[D shr 16 and $FF]) shl 16 xor +
6021 UInt64(Shark_SE[D shr 8 and $FF]) shl 8 xor +
6022 UInt64(Shark_SE[D and $FF]); +
6023 Result := D xor K^; +
6024end; +
6025{$ENDIF} +
6026 +
6027 +
6028{ TCipher_Shark } +
6029 +
6030{$IFNDEF CPU64BITS} +
6031procedure TCipher_Shark.DoInit(const Key; Size: Integer); +
6032var +
6033 Log, ALog: TLogArray; +
6034 +
6035 procedure InitLog; +
6036 var +
6037 I, J: Word; +
6038 begin +
6039 ALog[0] := 1; +
6040 for I := 1 to 255 do +
6041 begin +
6042 J := ALog[I - 1] shl 1; +
6043 if J and $100 <> 0 then +
6044 J := J xor SHARK_ROOT; +
6045 ALog[I] := J; +
6046 end; +
6047 Log[0] := 0; +
6048 for I := 0 to 254 do +
6049 Log[ALog[I]] := I; +
6050 end; +
6051 +
6052var +
6053 T: array[0..6] of TLong64; +
6054 A: array[0..6] of TLong64; +
6055 K: array[0..15] of Byte; +
6056 I, J, R: Byte; +
6057 E, D: PLong64Array; +
6058 L: TLong64; +
6059begin +
6060 FillChar(K, SizeOf(K), 0); +
6061 Move(Key, K, Size); +
6062 InitLog; +
6063 E := FAdditionalBuffer; +
6064 D := @E[7]; +
6065 Move(Shark_CE[0], T, SizeOf(T)); +
6066 T[6] := Transform(T[6], Log, ALog); +
6067 I := 0; +
6068 for R := 0 to 6 do +
6069 begin +
6070 A[R].L := K[I and $F]; +
6071 A[R].R := 0; +
6072 Inc(I); +
6073 for J := 1 to 7 do +
6074 begin +
6075 A[R].R := A[R].R shl 8 or A[R].L shr 24; +
6076 A[R].L := A[R].L shl 8 or K[I and $F]; +
6077 Inc(I); +
6078 end; +
6079 end; +
6080 L.L := 0; +
6081 L.R := 0; +
6082 L := Shark(L, @T); +
6083 E[0].L := A[0].L xor L.L; +
6084 E[0].R := A[0].R xor L.R; +
6085 for R := 1 to 6 do +
6086 begin +
6087 L := Shark(E[R - 1], @T); +
6088 E[R].L := A[R].L xor L.L; +
6089 E[R].R := A[R].R xor L.R; +
6090 end; +
6091 E[6] := Transform(E[6], Log, ALog); +
6092 D[0] := E[6]; +
6093 D[6] := E[0]; +
6094 for R := 1 to 5 do +
6095 D[R] := Transform(E[6-R], Log, ALog); +
6096 ProtectBuffer(T, SizeOf(T)); +
6097 ProtectBuffer(A, SizeOf(A)); +
6098 ProtectBuffer(K, SizeOf(K)); +
6099 +
6100 inherited; +
6101end; +
6102{$ENDIF} +
6103 +
6104{$IFNDEF CPU64BITS} +
6105procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer); +
6106var +
6107 I: Integer; +
6108 T, R, L: UInt32; +
6109 K: PUInt32Array; +
6110begin +
6111 Assert(Size = Context.BlockSize); +
6112 +
6113 K := @PUInt32Array(FAdditionalBuffer)[14]; +
6114 L := PLong64(Source).L; +
6115 R := PLong64(Source).R; +
6116 for I := 0 to 4 do +
6117 begin +
6118 L := L xor K[I * 2 + 0]; +
6119 R := R xor K[I * 2 + 1]; +
6120 T := Shark_CD[0, R shr 23 and $1FE] xor +
6121 Shark_CD[1, R shr 15 and $1FE] xor +
6122 Shark_CD[2, R shr 7 and $1FE] xor +
6123 Shark_CD[3, R shl 1 and $1FE] xor +
6124 Shark_CD[4, L shr 23 and $1FE] xor +
6125 Shark_CD[5, L shr 15 and $1FE] xor +
6126 Shark_CD[6, L shr 7 and $1FE] xor +
6127 Shark_CD[7, L shl 1 and $1FE]; +
6128 R := Shark_CD[0, R shr 23 and $1FE or 1] xor +
6129 Shark_CD[1, R shr 15 and $1FE or 1] xor +
6130 Shark_CD[2, R shr 7 and $1FE or 1] xor +
6131 Shark_CD[3, R shl 1 and $1FE or 1] xor +
6132 Shark_CD[4, L shr 23 and $1FE or 1] xor +
6133 Shark_CD[5, L shr 15 and $1FE or 1] xor +
6134 Shark_CD[6, L shr 7 and $1FE or 1] xor +
6135 Shark_CD[7, L shl 1 and $1FE or 1]; +
6136 L := T; +
6137 end; +
6138 L := L xor K[10]; +
6139 R := R xor K[11]; +
6140 L := UInt32(Shark_SD[L shr 24 ]) shl 24 xor +
6141 UInt32(Shark_SD[L shr 16 and $FF]) shl 16 xor +
6142 UInt32(Shark_SD[L shr 8 and $FF]) shl 8 xor +
6143 UInt32(Shark_SD[L and $FF]); +
6144 R := UInt32(Shark_SD[R shr 24 ]) shl 24 xor +
6145 UInt32(Shark_SD[R shr 16 and $FF]) shl 16 xor +
6146 UInt32(Shark_SD[R shr 8 and $FF]) shl 8 xor +
6147 UInt32(Shark_SD[R and $FF]); +
6148 PLong64(Dest).L := L xor K[12]; +
6149 PLong64(Dest).R := R xor K[13]; +
6150end; +
6151 +
6152{$ELSE CPU64BITS} +
6153procedure TCipher_Shark.DoInit(const Key; Size: Integer); +
6154var +
6155 Log, ALog: TLogArray; +
6156 +
6157 procedure InitLog; +
6158 var +
6159 I, J: Word; +
6160 begin +
6161 // Generate GF(256) anti-logarithm and logarithm tables +
6162 ALog[0] := 1; +
6163 for I := 1 to 255 do +
6164 begin +
6165 J := ALog[I - 1] shl 1; +
6166 if J and $100 <> 0 then +
6167 J := J xor SHARK_ROOT; +
6168 ALog[I] := J; +
6169 end; +
6170 Log[0] := 0; +
6171 for I := 0 to 254 do +
6172 Log[ALog[I]] := I; +
6173 end; +
6174 +
6175var +
6176 T: array[0..SHARK_ROUNDS] of UInt64; +
6177 A: array[0..SHARK_ROUNDKEYS-1] of UInt64; +
6178 K: array[0..15] of Byte; +
6179 I, J, R: Integer; +
6180 E, D: PUInt64Array; +
6181begin +
6182 FillChar(K, SizeOf(K), 0); +
6183 Move(Key, K, Size); +
6184 InitLog; +
6185 E := FAdditionalBuffer; // encryption round key +
6186 D := @E[SHARK_ROUNDS + 1]; // decryption round key +
6187 +
6188 Move(Shark_CE[0], T, SizeOf(T)); +
6189 T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog); +
6190 +
6191 I := 0; +
6192 for R := 0 to High(A) do +
6193 begin +
6194 A[R] := K[I and $F]; +
6195 Inc(I); +
6196 for J := 1 to 7 do +
6197 begin +
6198 A[R] := A[R] shl 8 or K[I and $F]; +
6199 Inc(I); +
6200 end; +
6201 end; +
6202 +
6203 E[0] := A[0] xor SharkEncode(0, @T); +
6204 for R := 1 to High(A) do +
6205 E[R] := A[R] xor SharkEncode(E[R - 1], @T); +
6206 +
6207 E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog); +
6208 D[0] := E[SHARK_ROUNDS]; +
6209 D[SHARK_ROUNDS] := E[0]; +
6210 for R := 1 to SHARK_ROUNDS - 1 do +
6211 D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog); +
6212 +
6213 ProtectBuffer(T, SizeOf(T)); +
6214 ProtectBuffer(A, SizeOf(A)); +
6215 ProtectBuffer(K, SizeOf(K)); +
6216 +
6217 inherited; +
6218end; +
6219 +
6220procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer); +
6221var +
6222 R: Integer; +
6223 D: UInt64; +
6224 K: PUInt64; +
6225begin +
6226 Assert(Size = Context.BufferSize); +
6227 +
6228 D := PUInt64(Source)^; +
6229 K := @PUInt64Array(FAdditionalBuffer)[SHARK_ROUNDS + 1]; // decryption round key +
6230 for R := 1 to SHARK_ROUNDS - 1 do +
6231 begin +
6232 D := D xor K^; +
6233 Inc(K); +
6234 D := Shark_CD[0, D shr 56 and $FF] xor +
6235 Shark_CD[1, D shr 48 and $FF] xor +
6236 Shark_CD[2, D shr 40 and $FF] xor +
6237 Shark_CD[3, D shr 32 and $FF] xor +
6238 Shark_CD[4, D shr 24 and $FF] xor +
6239 Shark_CD[5, D shr 16 and $FF] xor +
6240 Shark_CD[6, D shr 8 and $FF] xor +
6241 Shark_CD[7, D and $FF]; +
6242 end; +
6243 D := D xor K^; +
6244 Inc(K); +
6245 D := UInt64(Shark_SD[D shr 56 and $FF]) shl 56 xor +
6246 UInt64(Shark_SD[D shr 48 and $FF]) shl 48 xor +
6247 UInt64(Shark_SD[D shr 40 and $FF]) shl 40 xor +
6248 UInt64(Shark_SD[D shr 32 and $FF]) shl 32 xor +
6249 UInt64(Shark_SD[D shr 24 and $FF]) shl 24 xor +
6250 UInt64(Shark_SD[D shr 16 and $FF]) shl 16 xor +
6251 UInt64(Shark_SD[D shr 8 and $FF]) shl 8 xor +
6252 UInt64(Shark_SD[D and $FF]); +
6253 +
6254 PUInt64(Dest)^ := D xor K^; +
6255end; +
6256{$ENDIF CPU64BITS} +
6257 +
6258{ TCipher_Shark_DEC52 } +
6259 +
6260 +
6261procedure TCipher_Shark_DEC52.DoInit(const Key; Size: Integer); +
6262var +
6263 Log, ALog: TLogArray; +
6264 +
6265 procedure InitLog; +
6266 var +
6267 I, J: Word; +
6268 begin +
6269 // Generate GF(256) anti-logarithm and logarithm tables +
6270 ALog[0] := 1; +
6271 for I := 1 to 255 do +
6272 begin +
6273 J := ALog[I - 1] shl 1; +
6274 if J and $100 <> 0 then +
6275 J := J xor SHARK_ROOT; +
6276 ALog[I] := J; +
6277 end; +
6278 for I := 1 to 254 do +
6279 Log[ALog[I]] := I; +
6280 end; +
6281 +
6282{$IFNDEF CPU64BITS} +
6283var +
6284 T: array[0..SHARK_ROUNDS] of TLong64; +
6285 A: array[0..SHARK_ROUNDS] of TLong64; +
6286 K: array[0..15] of Byte; +
6287 I, J, R: Byte; +
6288 E, D: PLong64Array; +
6289 L: TLong64; +
6290begin +
6291 FillChar(K, SizeOf(K), 0); +
6292 Move(Key, K, Size); +
6293 InitLog; +
6294 E := FAdditionalBuffer; +
6295 D := @E[7]; +
6296 Move(Shark_CE[0], T, SizeOf(T)); +
6297 T[6] := Transform(T[6], Log, ALog); +
6298 I := 0; +
6299 for R := 0 to 6 do +
6300 begin +
6301 Inc(I); +
6302 A[R].L := K[I and $F]; +
6303 A[R].R := 0; +
6304 for J := 1 to 7 do +
6305 begin +
6306 Inc(I); +
6307 A[R].R := A[R].R shl 8 or A[R].L shr 24; +
6308 A[R].L := A[R].L shl 8 or K[I and $F]; +
6309 end; +
6310 end; +
6311 L.L := 0; +
6312 L.R := 0; +
6313 L := Shark(L, @T); +
6314 E[0].L := A[0].L xor L.L; +
6315 E[0].R := A[0].R xor L.R; +
6316 for R := 1 to 6 do +
6317 begin +
6318 L := Shark(E[R - 1], @T); +
6319 E[R].L := A[R].L xor L.L; +
6320 E[R].R := A[R].R xor L.R; +
6321 end; +
6322 E[6] := Transform(E[6], Log, ALog); +
6323 D[0] := E[6]; +
6324 D[6] := E[0]; +
6325 for R := 1 to 5 do +
6326 D[R] := Transform(E[6-R], Log, ALog); +
6327 ProtectBuffer(T, SizeOf(T)); +
6328 ProtectBuffer(A, SizeOf(A)); +
6329 ProtectBuffer(K, SizeOf(K)); +
6330 +
6331 inherited; +
6332 {$ELSE} +
6333var +
6334 T: array[0..SHARK_ROUNDS] of UInt64; +
6335 A: array[0..SHARK_ROUNDKEYS-1] of UInt64; +
6336 K: array[0..15] of Byte; +
6337 I, J, R: Integer; +
6338 E, D: PUInt64Array; +
6339begin +
6340 FillChar(K, SizeOf(K), 0); +
6341 Move(Key, K, Size); +
6342 InitLog; +
6343 E := FAdditionalBuffer; // encryption round key +
6344 D := @E[SHARK_ROUNDS + 1]; // decryption round key +
6345 +
6346 Move(Shark_CE[0], T, SizeOf(T)); +
6347 T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog); +
6348 +
6349 I := 0; +
6350 for R := 0 to High(A) do +
6351 begin +
6352 Inc(I); +
6353 A[R] := K[I and $F]; +
6354 for J := 1 to 7 do +
6355 begin +
6356 Inc(I); +
6357 A[R] := A[R] shl 8 or K[I and $F]; +
6358 end; +
6359 end; +
6360 +
6361 E[0] := A[0] xor SharkEncode(0, @T); +
6362 for R := 1 to High(A) do +
6363 E[R] := A[R] xor SharkEncode(E[R - 1], @T); +
6364 +
6365 E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog); +
6366 D[0] := E[SHARK_ROUNDS]; +
6367 D[SHARK_ROUNDS] := E[0]; +
6368 for R := 1 to SHARK_ROUNDS - 1 do +
6369 D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog); +
6370 +
6371 ProtectBuffer(T, SizeOf(T)); +
6372 ProtectBuffer(A, SizeOf(A)); +
6373 ProtectBuffer(K, SizeOf(K)); +
6374 +
6375 inherited; +
6376 {$ENDIF} +
6377end; +
6378 +
6379{ TCipher_Skipjack } +
6380 +
6381class function TCipher_Skipjack.Context: TCipherContext; +
6382begin +
6383 Result.KeySize := 10; +
6384 Result.BlockSize := 8; +
6385 Result.BufferSize := 8; +
6386 Result.AdditionalBufferSize := $A00; +
6387 Result.NeedsAdditionalBufferBackup := false; +
6388 Result.MinRounds := 1; +
6389 Result.MaxRounds := 1; +
6390 Result.CipherType := [ctSymmetric, ctBlock]; +
6391end; +
6392 +
6393procedure TCipher_Skipjack.DoInit(const Key; Size: Integer); +
6394var +
6395 K: array[0..9] of Byte; +
6396 D: PByte; +
6397 I, J: Integer; +
6398begin +
6399 FillChar(K, SizeOf(K), 0); +
6400 Move(Key, K, Size); +
6401 D := FAdditionalBuffer; +
6402 for I := 0 to 9 do +
6403 for J := 0 to 255 do +
6404 begin +
6405 D^ := Skipjack_Data[J xor K[I]]; +
6406 Inc(D); +
6407 end; +
6408 ProtectBuffer(K, SizeOf(K)); +
6409 +
6410 inherited; +
6411end; +
6412 +
6413procedure TCipher_Skipjack.DoEncode(Source, Dest: Pointer; Size: Integer); +
6414var +
6415 Tab, Min: PSkipjackTab; +
6416 Max: PByte; +
6417 K, T, A, B, C, D: UInt32; +
6418 +
6419begin +
6420 Assert(Size = Context.BlockSize); +
6421 +
6422 Min := FAdditionalBuffer; +
6423 Max := PByte(Min) + 9 * 256; // for Pointer Math +
6424 Tab := Min; +
6425 A := Swap(PWordArray(Source)[0]); +
6426 B := Swap(PWordArray(Source)[1]); +
6427 C := Swap(PWordArray(Source)[2]); +
6428 D := Swap(PWordArray(Source)[3]); +
6429 K := 0; +
6430 +
6431 repeat +
6432 Inc(K); +
6433 T := A; +
6434 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6435 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6436 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6437 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6438 A := T xor D xor K; +
6439 D := C; +
6440 C := B; +
6441 B := T; +
6442 until K = 8; +
6443 +
6444 repeat +
6445 Inc(K); +
6446 T := A; +
6447 A := D; +
6448 D := C; +
6449 C := T xor B xor K; +
6450 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6451 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6452 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6453 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6454 B := T; +
6455 until K = 16; +
6456 +
6457 repeat +
6458 Inc(K); +
6459 T := A; +
6460 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6461 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6462 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6463 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6464 A := T xor D xor K; +
6465 D := C; +
6466 C := B; +
6467 B := T; +
6468 until K = 24; +
6469 +
6470 repeat +
6471 Inc(K); +
6472 T := A; +
6473 A := D; +
6474 D := C; +
6475 C := T xor B xor K; +
6476 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6477 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6478 T := T xor Tab[T and $FF] shl 8; SkipjackIncCheck(Tab, Min, Max); +
6479 T := T xor Tab[T shr 8]; SkipjackIncCheck(Tab, Min, Max); +
6480 B := T; +
6481 until K = 32; +
6482 +
6483 PWordArray(Dest)[0] := Swap(A); +
6484 PWordArray(Dest)[1] := Swap(B); +
6485 PWordArray(Dest)[2] := Swap(C); +
6486 PWordArray(Dest)[3] := Swap(D); +
6487end; +
6488 +
6489procedure TCipher_Skipjack.SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte); +
6490begin +
6491 Inc(ATab); +
6492 +
6493 if PByte(ATab) > AMax then +
6494 ATab := AMin; +
6495end; +
6496 +
6497procedure TCipher_Skipjack.DoDecode(Source, Dest: Pointer; Size: Integer); +
6498var +
6499 Tab, Max: PSkipjackTab; +
6500 Min: PByte; // for Pointer Math +
6501 K, T, A, B, C, D: UInt32; +
6502 +
6503begin +
6504 Assert(Size = Context.BlockSize); +
6505 +
6506 Min := FAdditionalBuffer; +
6507 Max := Pointer(Min + 9 * 256); +
6508 Tab := Pointer(Min + 7 * 256); +
6509 A := Swap(PWordArray(Source)[0]); // holds an Integer, Compiler makes faster Code +
6510 B := Swap(PWordArray(Source)[1]); +
6511 C := Swap(PWordArray(Source)[2]); +
6512 D := Swap(PWordArray(Source)[3]); +
6513 K := 32; +
6514 +
6515 repeat +
6516 T := B; +
6517 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6518 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6519 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6520 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6521 B := T xor C xor K; +
6522 C := D; +
6523 D := A; +
6524 A := T; +
6525 Dec(K); +
6526 until K = 24; +
6527 +
6528 repeat +
6529 T := B; +
6530 B := C; +
6531 C := D; +
6532 D := T xor A xor K; +
6533 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6534 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6535 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6536 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6537 A := T; +
6538 Dec(K); +
6539 until K = 16; +
6540 +
6541 repeat +
6542 T := B; +
6543 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6544 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6545 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6546 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6547 B := C xor T xor K; +
6548 C := D; +
6549 D := A; +
6550 A := T; +
6551 Dec(K); +
6552 until K = 8; +
6553 +
6554 repeat +
6555 T := B; +
6556 B := C; +
6557 C := D; +
6558 D := T xor A xor K; +
6559 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6560 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6561 T := T xor Tab[T shr 8]; SkipjackDecCheck(Tab, Min, Max); +
6562 T := T xor Tab[T and $FF] shl 8; SkipjackDecCheck(Tab, Min, Max); +
6563 A := T; +
6564 Dec(K); +
6565 until K = 0; +
6566 +
6567 PWordArray(Dest)[0] := Swap(A); +
6568 PWordArray(Dest)[1] := Swap(B); +
6569 PWordArray(Dest)[2] := Swap(C); +
6570 PWordArray(Dest)[3] := Swap(D); +
6571end; +
6572 +
6573procedure TCipher_Skipjack.SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab); +
6574begin +
6575 Dec(ATab); +
6576// {$IFDEF DELPHIORBCB} +
6577// if ATab < AMin then +
6578// {$ELSE !DELPHIORBCB} +
6579{ TODO : Prüfen ob so korrekt, da ATab auf PByte umgestellt wurde} +
6580 if PByte(ATab) < AMin then +
6581// {$ENDIF !DELPHIORBCB} +
6582 ATab := AMax; +
6583end; +
6584 +
6585{ TCipher_TEA } +
6586 +
6587const +
6588 TEA_Delta = $9E3779B9; // magic constant, decimal 2654435769 +
6589 +
6590class function TCipher_TEA.Context: TCipherContext; +
6591begin +
6592 Result.KeySize := 16; // 128 bits +
6593 Result.BlockSize := 8; // 64 bits +
6594 Result.BufferSize := 8; // 64 bits +
6595 Result.AdditionalBufferSize := 32; // 256 bits +
6596 Result.NeedsAdditionalBufferBackup := false; +
6597 Result.MinRounds := 16; +
6598 Result.MaxRounds := 256; +
6599 Result.CipherType := [ctSymmetric, ctBlock]; +
6600end; +
6601 +
6602procedure TCipher_TEA.SetRounds(Value: Integer); +
6603begin +
6604 if not (FState in [csNew, csInitialized, csDone]) then +
6605 Done; +
6606 if Value < Context.MinRounds then +
6607 Value := Context.MinRounds +
6608 else +
6609 if Value > Context.MaxRounds then +
6610 Value := Context.MaxRounds; +
6611 FRounds := Value; +
6612end; +
6613 +
6614procedure TCipher_TEA.DoInit(const Key; Size: Integer); +
6615begin +
6616 Move(Key, FAdditionalBuffer^, Size); +
6617 SetRounds(FRounds); +
6618 +
6619 inherited; +
6620end; +
6621 +
6622procedure TCipher_TEA.DoEncode(Source, Dest: Pointer; Size: Integer); +
6623var +
6624 I: Integer; +
6625 Sum, +
6626 X, Y, A, B, C, D: UInt32; +
6627begin +
6628 Assert(Size = Context.BlockSize); +
6629 +
6630 Sum := 0; +
6631 +
6632 A := PUInt32Array(FAdditionalBuffer)[0]; +
6633 B := PUInt32Array(FAdditionalBuffer)[1]; +
6634 C := PUInt32Array(FAdditionalBuffer)[2]; +
6635 D := PUInt32Array(FAdditionalBuffer)[3]; +
6636 X := PUInt32Array(Source)[0]; +
6637 Y := PUInt32Array(Source)[1]; +
6638 +
6639 for I := 0 to FRounds - 1 do +
6640 begin +
6641 Inc(Sum, TEA_Delta); +
6642 Inc(X, (((Y shl 4 + A) xor Y) + Sum) xor (Y shr 5 + B)); +
6643 Inc(Y, (((X shl 4 + C) xor X) + Sum) xor (X shr 5 + D)); +
6644 end; +
6645 +
6646 PUInt32Array(Dest)[0] := X; +
6647 PUInt32Array(Dest)[1] := Y; +
6648end; +
6649 +
6650procedure TCipher_TEA.DoDecode(Source, Dest: Pointer; Size: Integer); +
6651var +
6652 I: Integer; +
6653 Sum, +
6654 X, Y, A, B, C, D: UInt32; +
6655begin +
6656 Assert(Size = Context.BlockSize); +
6657 +
6658 Sum := TEA_Delta * UInt32(FRounds); +
6659 +
6660 A := PUInt32Array(FAdditionalBuffer)[0]; +
6661 B := PUInt32Array(FAdditionalBuffer)[1]; +
6662 C := PUInt32Array(FAdditionalBuffer)[2]; +
6663 D := PUInt32Array(FAdditionalBuffer)[3]; +
6664 X := PUInt32Array(Source)[0]; +
6665 Y := PUInt32Array(Source)[1]; +
6666 +
6667 for I := 0 to FRounds - 1 do +
6668 begin +
6669 Dec(Y, (X shl 4 + C) xor X + Sum xor (X shr 5 + D)); +
6670 Dec(X, (Y shl 4 + A) xor Y + Sum xor (Y shr 5 + B)); +
6671 Dec(Sum, TEA_Delta); +
6672 end; +
6673 +
6674 PUInt32Array(Dest)[0] := X; +
6675 PUInt32Array(Dest)[1] := Y; +
6676end; +
6677 +
6678{ TCipher_XTEA } +
6679 +
6680procedure TCipher_XTEA.DoEncode(Source, Dest: Pointer; Size: Integer); +
6681var +
6682 Sum, +
6683 I, X, Y: UInt32; +
6684 K: PUInt32Array; +
6685begin +
6686 Assert(Size = Context.BlockSize); +
6687 +
6688 Sum := 0; +
6689 +
6690 X := PUInt32Array(Source)[0]; +
6691 Y := PUInt32Array(Source)[1]; +
6692 K := FAdditionalBuffer; +
6693 +
6694 for I := 0 to FRounds - 1 do +
6695 begin +
6696 Inc(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3])); +
6697 Inc(Sum, TEA_Delta); +
6698 Inc(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3])); +
6699 end; +
6700 +
6701 PUInt32Array(Dest)[0] := X; +
6702 PUInt32Array(Dest)[1] := Y; +
6703end; +
6704 +
6705procedure TCipher_XTEA.DoDecode(Source, Dest: Pointer; Size: Integer); +
6706var +
6707 I: Integer; +
6708 Sum, +
6709 X, Y: UInt32; +
6710 K: PUInt32Array; +
6711begin +
6712 Assert(Size = Context.BlockSize); +
6713 +
6714 Sum := TEA_Delta * UInt32(FRounds); +
6715 +
6716 X := PUInt32Array(Source)[0]; +
6717 Y := PUInt32Array(Source)[1]; +
6718 K := FAdditionalBuffer; +
6719 +
6720 for I := 0 to FRounds - 1 do +
6721 begin +
6722 Dec(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3])); +
6723 Dec(Sum, TEA_Delta); +
6724 Dec(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3])); +
6725 end; +
6726 +
6727 PUInt32Array(Dest)[0] := X; +
6728 PUInt32Array(Dest)[1] := Y; +
6729end; +
6730 +
6731{ TCipher_XTEA_DEC52 } +
6732 +
6733procedure TCipher_XTEA_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer); +
6734var +
6735 Sum, +
6736 I, X, Y: UInt32; +
6737 K: PUInt32Array; +
6738begin +
6739 Assert(Size = Context.BlockSize); +
6740 +
6741 Sum := 0; +
6742 +
6743 X := PUInt32Array(Source)[0]; +
6744 Y := PUInt32Array(Source)[1]; +
6745 K := FAdditionalBuffer; +
6746 +
6747 for I := 0 to FRounds - 1 do +
6748 begin +
6749 Inc(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]); +
6750 Inc(Sum, TEA_Delta); +
6751 Inc(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]); +
6752 end; +
6753 +
6754 PUInt32Array(Dest)[0] := X; +
6755 PUInt32Array(Dest)[1] := Y; +
6756end; +
6757 +
6758procedure TCipher_XTEA_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer); +
6759var +
6760 I: Integer; +
6761 Sum, +
6762 X, Y: UInt32; +
6763 K: PUInt32Array; +
6764begin +
6765 Assert(Size = Context.BlockSize); +
6766 +
6767 Sum := TEA_Delta * UInt32(FRounds); +
6768 +
6769 X := PUInt32Array(Source)[0]; +
6770 Y := PUInt32Array(Source)[1]; +
6771 K := FAdditionalBuffer; +
6772 +
6773 for I := 0 to FRounds - 1 do +
6774 begin +
6775 Dec(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]); +
6776 Dec(Sum, TEA_Delta); +
6777 Dec(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]); +
6778 end; +
6779 +
6780 PUInt32Array(Dest)[0] := X; +
6781 PUInt32Array(Dest)[1] := Y; +
6782end; +
6783 +
6784{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
6785{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
6786 +
6787initialization +
6788 SetDefaultCipherClass(TCipher_Null); +
6789 +
6790 {$IFNDEF ManualRegisterCipherClasses} +
6791 TCipher_Null.RegisterClass(TDECCipher.ClassList); +
6792 TCipher_Blowfish.RegisterClass(TDECCipher.ClassList); +
6793 TCipher_Twofish.RegisterClass(TDECCipher.ClassList); +
6794 TCipher_IDEA.RegisterClass(TDECCipher.ClassList); +
6795 TCipher_Cast256.RegisterClass(TDECCipher.ClassList); +
6796 TCipher_Mars.RegisterClass(TDECCipher.ClassList); +
6797 TCipher_RC4.RegisterClass(TDECCipher.ClassList); +
6798 TCipher_RC6.RegisterClass(TDECCipher.ClassList); +
6799// Explicitely not registered, as Rijndael is 1:1 the same as AES and AES is the +
6800// more common name +
6801// TCipher_Rijndael.RegisterClass(TDECCipher.ClassList); +
6802 TCipher_AES.RegisterClass(TDECCipher.ClassList); +
6803 TCipher_AES128.RegisterClass(TDECCipher.ClassList); +
6804 TCipher_AES192.RegisterClass(TDECCipher.ClassList); +
6805 TCipher_AES256.RegisterClass(TDECCipher.ClassList); +
6806 TCipher_Square.RegisterClass(TDECCipher.ClassList); +
6807 TCipher_SCOP.RegisterClass(TDECCipher.ClassList); +
6808 TCipher_Sapphire.RegisterClass(TDECCipher.ClassList); +
6809 TCipher_1DES.RegisterClass(TDECCipher.ClassList); +
6810 TCipher_2DES.RegisterClass(TDECCipher.ClassList); +
6811 TCipher_3DES.RegisterClass(TDECCipher.ClassList); +
6812 TCipher_2DDES.RegisterClass(TDECCipher.ClassList); +
6813 TCipher_3DDES.RegisterClass(TDECCipher.ClassList); +
6814 TCipher_3TDES.RegisterClass(TDECCipher.ClassList); +
6815 TCipher_3Way.RegisterClass(TDECCipher.ClassList); +
6816 TCipher_Cast128.RegisterClass(TDECCipher.ClassList); +
6817 TCipher_Gost.RegisterClass(TDECCipher.ClassList); +
6818// Explicitely not registered, as this is an alias for Gost only +
6819// TCipher_Magma.RegisterClass(TDECCipher.ClassList); +
6820 TCipher_Misty.RegisterClass(TDECCipher.ClassList); +
6821 TCipher_NewDES.RegisterClass(TDECCipher.ClassList); +
6822 TCipher_Q128.RegisterClass(TDECCipher.ClassList); +
6823 TCipher_RC2.RegisterClass(TDECCipher.ClassList); +
6824 TCipher_RC5.RegisterClass(TDECCipher.ClassList); +
6825 TCipher_SAFER.RegisterClass(TDECCipher.ClassList); +
6826 TCipher_Shark.RegisterClass(TDECCipher.ClassList); +
6827 TCipher_Skipjack.RegisterClass(TDECCipher.ClassList); +
6828 TCipher_TEA.RegisterClass(TDECCipher.ClassList); +
6829 TCipher_XTEA.RegisterClass(TDECCipher.ClassList); +
6830 TCipher_TEAN.RegisterClass(TDECCipher.ClassList); +
6831 +
6832 {$IFDEF OLD_REGISTER_FAULTY_CIPHERS} +
6833 // Those classes are only there for those who might have relied on the +
6834 // faulty implementation +
6835 TCipher_SCOP_DEC52.RegisterClass(TDECCipher.ClassList); +
6836 TCipher_Shark_DEC52.RegisterClass(TDECCipher.ClassList); +
6837 TCipher_XTEA_DEC52.RegisterClass(TDECCipher.ClassList); +
6838 {$ENDIF} +
6839 {$ENDIF} +
6840 +
6841finalization +
6842 +
6843end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECCodeCoverage_DelphiCodeCoverageDebug.log b/Unit Tests/CodeCoverage/Output/DECCodeCoverage_DelphiCodeCoverageDebug.log new file mode 100644 index 00000000..a4f0b23f --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECCodeCoverage_DelphiCodeCoverageDebug.log @@ -0,0 +1,76161 @@ +Will track coverage for: DEC60Lazarus +Will track coverage for: DECBaseClass +Will track coverage for: DECCipherBase +Will track coverage for: DECCipherFormats +Will track coverage for: DECCipherInterface +Will track coverage for: DECCipherModes +Will track coverage for: DECCipherModesGCM +Will track coverage for: DECCiphers +Will track coverage for: DECCRC +Will track coverage for: DECData +Will track coverage for: DECDataCipher +Will track coverage for: DECDataHash +Will track coverage for: DECFormat +Will track coverage for: DECFormatBase +Will track coverage for: DECHash +Will track coverage for: DECHashAuthentication +Will track coverage for: DECHashBase +Will track coverage for: DECHashBitBase +Will track coverage for: DECHashInterface +Will track coverage for: DECRandom +Will track coverage for: DECTypes +Will track coverage for: DECUtil +Will track coverage for: DECUtilRawByteStringHelper +Trying to start ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe with the Parameters : +Started successfully +Create Process:3820 name:..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe +Adding breakpoints for module:..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:0 VA:0023C4F0 Base:2162688 Address: 0044D4F0 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +Creating class info for DECUtilRawByteStringHelper class _NewAnsiString +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 59 BreakPoint at:0044D4F0 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:1 VA:0023C513 Base:2162688 Address: 0044D513 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 60 BreakPoint at:0044D513 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:2 VA:0023C518 Base:2162688 Address: 0044D518 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 61 BreakPoint at:0044D518 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:3 VA:0023C522 Base:2162688 Address: 0044D522 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 67 BreakPoint at:0044D522 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:4 VA:0023C52B Base:2162688 Address: 0044D52B +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 68 BreakPoint at:0044D52B +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:5 VA:0023C55A Base:2162688 Address: 0044D55A +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 71 BreakPoint at:0044D55A +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:6 VA:0023C592 Base:2162688 Address: 0044D592 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 72 BreakPoint at:0044D592 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:7 VA:0023C59B Base:2162688 Address: 0044D59B +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 73 BreakPoint at:0044D59B +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:8 VA:0023C5A4 Base:2162688 Address: 0044D5A4 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 74 BreakPoint at:0044D5A4 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:9 VA:0023C5AE Base:2162688 Address: 0044D5AE +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 75 BreakPoint at:0044D5AE +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:10 VA:0023C5B5 Base:2162688 Address: 0044D5B5 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 79 BreakPoint at:0044D5B5 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:11 VA:0023C5C0 Base:2162688 Address: 0044D5C0 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 81 BreakPoint at:0044D5C0 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:12 VA:0023C5CA Base:2162688 Address: 0044D5CA +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 82 BreakPoint at:0044D5CA +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:13 VA:0023C5D3 Base:2162688 Address: 0044D5D3 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 83 BreakPoint at:0044D5D3 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:14 VA:0023C5E6 Base:2162688 Address: 0044D5E6 +Adding breakpoint for DECUtilRawByteStringHelper._NewAnsiString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 85 BreakPoint at:0044D5E6 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:15 VA:0023C678 Base:2162688 Address: 0044D678 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +Creating class info for DECUtilRawByteStringHelper class _LStrClr +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 90 BreakPoint at:0044D678 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:16 VA:0023C681 Base:2162688 Address: 0044D681 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 91 BreakPoint at:0044D681 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:17 VA:0023C689 Base:2162688 Address: 0044D689 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 93 BreakPoint at:0044D689 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:18 VA:0023C694 Base:2162688 Address: 0044D694 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 94 BreakPoint at:0044D694 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:19 VA:0023C69B Base:2162688 Address: 0044D69B +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 95 BreakPoint at:0044D69B +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:20 VA:0023C6A4 Base:2162688 Address: 0044D6A4 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 101 BreakPoint at:0044D6A4 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:21 VA:0023C6B6 Base:2162688 Address: 0044D6B6 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 107 BreakPoint at:0044D6B6 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:22 VA:0023C6BE Base:2162688 Address: 0044D6BE +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 110 BreakPoint at:0044D6BE +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:23 VA:0023C6C4 Base:2162688 Address: 0044D6C4 +Adding breakpoint for DECUtilRawByteStringHelper._LStrClr in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 111 BreakPoint at:0044D6C4 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:24 VA:0023C6CC Base:2162688 Address: 0044D6CC +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +Creating class info for DECUtilRawByteStringHelper class InternalUniqueStringA +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 116 BreakPoint at:0044D6CC +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:25 VA:0023C6D5 Base:2162688 Address: 0044D6D5 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 117 BreakPoint at:0044D6D5 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:26 VA:0023C6DD Base:2162688 Address: 0044D6DD +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 118 BreakPoint at:0044D6DD +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:27 VA:0023C6E3 Base:2162688 Address: 0044D6E3 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 120 BreakPoint at:0044D6E3 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:28 VA:0023C6EB Base:2162688 Address: 0044D6EB +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 121 BreakPoint at:0044D6EB +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:29 VA:0023C6F6 Base:2162688 Address: 0044D6F6 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 122 BreakPoint at:0044D6F6 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:30 VA:0023C6FF Base:2162688 Address: 0044D6FF +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 124 BreakPoint at:0044D6FF +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:31 VA:0023C713 Base:2162688 Address: 0044D713 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 125 BreakPoint at:0044D713 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:32 VA:0023C726 Base:2162688 Address: 0044D726 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 126 BreakPoint at:0044D726 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:33 VA:0023C72E Base:2162688 Address: 0044D72E +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 127 BreakPoint at:0044D72E +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:34 VA:0023C736 Base:2162688 Address: 0044D736 +Adding breakpoint for DECUtilRawByteStringHelper.InternalUniqueStringA in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 130 BreakPoint at:0044D736 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:35 VA:0023C740 Base:2162688 Address: 0044D740 +Adding breakpoint for DECUtilRawByteStringHelper.UniqueString in DECUtilRawByteStringHelper.pas +Creating class info for DECUtilRawByteStringHelper class UniqueString +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 133 BreakPoint at:0044D740 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:36 VA:0023C747 Base:2162688 Address: 0044D747 +Adding breakpoint for DECUtilRawByteStringHelper.UniqueString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 134 BreakPoint at:0044D747 +Setting BreakPoint for module: DECUtilRawByteStringHelper unit DECUtilRawByteStringHelper.pas moduleName: DECUtilRawByteStringHelper unitModuleName: DECUtilRawByteStringHelper addr:37 VA:0023C74F Base:2162688 Address: 0044D74F +Adding breakpoint for DECUtilRawByteStringHelper.UniqueString in DECUtilRawByteStringHelper.pas +TBreakPoint.Activate: +Activate DECUtilRawByteStringHelper.pas line 135 BreakPoint at:0044D74F +Module name "DECUtilRawByteStringHelper" did not match module from address name "DECTypes" at address:0023C759 +Setting BreakPoint for module: DECTypes unit DECTypes.pas moduleName: DECTypes unitModuleName: DECTypes addr:39 VA:0023CDE4 Base:2162688 Address: 0044DDE4 +Adding breakpoint for DECTypes.EDECAbstractError.Create in DECTypes.pas +Creating class info for DECTypes class EDECAbstractError +TBreakPoint.Activate: +Activate DECTypes.pas line 193 BreakPoint at:0044DDE4 +Setting BreakPoint for module: DECTypes unit DECTypes.pas moduleName: DECTypes unitModuleName: DECTypes addr:40 VA:0023CE15 Base:2162688 Address: 0044DE15 +Adding breakpoint for DECTypes.EDECAbstractError.Create in DECTypes.pas +TBreakPoint.Activate: +Activate DECTypes.pas line 194 BreakPoint at:0044DE15 +Setting BreakPoint for module: DECTypes unit DECTypes.pas moduleName: DECTypes unitModuleName: DECTypes addr:41 VA:0023CE34 Base:2162688 Address: 0044DE34 +Adding breakpoint for DECTypes.EDECAbstractError.Create in DECTypes.pas +TBreakPoint.Activate: +Activate DECTypes.pas line 195 BreakPoint at:0044DE34 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:42 VA:0023CE74 Base:2162688 Address: 0044DE74 +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +Creating class info for DECUtil class ReverseBits +TBreakPoint.Activate: +Activate DECUtil.pas line 270 BreakPoint at:0044DE74 +Module name "DECTypes" did not match module from address name "DECUtil" at address:0023CE79 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:44 VA:0023CE7D Base:2162688 Address: 0044DE7D +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 271 BreakPoint at:0044DE7D +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:45 VA:0023CF0A Base:2162688 Address: 0044DF0A +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 275 BreakPoint at:0044DF0A +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:46 VA:0023CF14 Base:2162688 Address: 0044DF14 +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 278 BreakPoint at:0044DF14 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:47 VA:0023CF1B Base:2162688 Address: 0044DF1B +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 279 BreakPoint at:0044DF1B +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:48 VA:0023CF29 Base:2162688 Address: 0044DF29 +Adding breakpoint for DECUtil.ReverseBits in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 280 BreakPoint at:0044DF29 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:49 VA:0023CF30 Base:2162688 Address: 0044DF30 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +Creating class info for DECUtil class SwapBytes +TBreakPoint.Activate: +Activate DECUtil.pas line 308 BreakPoint at:0044DF30 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:50 VA:0023CF3C Base:2162688 Address: 0044DF3C +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 309 BreakPoint at:0044DF3C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:51 VA:0023CF42 Base:2162688 Address: 0044DF42 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 310 BreakPoint at:0044DF42 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:52 VA:0023CF52 Base:2162688 Address: 0044DF52 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 311 BreakPoint at:0044DF52 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:53 VA:0023CF58 Base:2162688 Address: 0044DF58 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 312 BreakPoint at:0044DF58 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:54 VA:0023CF7B Base:2162688 Address: 0044DF7B +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 314 BreakPoint at:0044DF7B +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:55 VA:0023CF83 Base:2162688 Address: 0044DF83 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 315 BreakPoint at:0044DF83 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:56 VA:0023CF8D Base:2162688 Address: 0044DF8D +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 316 BreakPoint at:0044DF8D +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:57 VA:0023CF95 Base:2162688 Address: 0044DF95 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 317 BreakPoint at:0044DF95 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:58 VA:0023CF99 Base:2162688 Address: 0044DF99 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 318 BreakPoint at:0044DF99 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:59 VA:0023CF9D Base:2162688 Address: 0044DF9D +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 319 BreakPoint at:0044DF9D +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:60 VA:0023CFA0 Base:2162688 Address: 0044DFA0 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 312 BreakPoint at:0044DFA0 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:61 VA:0023CFA5 Base:2162688 Address: 0044DFA5 +Adding breakpoint for DECUtil.SwapBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 320 BreakPoint at:0044DFA5 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:62 VA:0023CFAC Base:2162688 Address: 0044DFAC +Adding breakpoint for DECUtil.SwapUInt32 in DECUtil.pas +Creating class info for DECUtil class SwapUInt32 +TBreakPoint.Activate: +Activate DECUtil.pas line 332 BreakPoint at:0044DFAC +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:63 VA:0023CFB5 Base:2162688 Address: 0044DFB5 +Adding breakpoint for DECUtil.SwapUInt32 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 333 BreakPoint at:0044DFB5 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:64 VA:0023CFE2 Base:2162688 Address: 0044DFE2 +Adding breakpoint for DECUtil.SwapUInt32 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 337 BreakPoint at:0044DFE2 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:65 VA:0023CFEC Base:2162688 Address: 0044DFEC +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +Creating class info for DECUtil class SwapUInt32Buffer +TBreakPoint.Activate: +Activate DECUtil.pas line 360 BreakPoint at:0044DFEC +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:66 VA:0023CFFB Base:2162688 Address: 0044DFFB +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 361 BreakPoint at:0044DFFB +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:67 VA:0023D017 Base:2162688 Address: 0044E017 +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 363 BreakPoint at:0044E017 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:68 VA:0023D02F Base:2162688 Address: 0044E02F +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 364 BreakPoint at:0044E02F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:69 VA:0023D06F Base:2162688 Address: 0044E06F +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 366 BreakPoint at:0044E06F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:70 VA:0023D072 Base:2162688 Address: 0044E072 +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 361 BreakPoint at:0044E072 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:71 VA:0023D077 Base:2162688 Address: 0044E077 +Adding breakpoint for DECUtil.SwapUInt32Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 367 BreakPoint at:0044E077 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:72 VA:0023D07C Base:2162688 Address: 0044E07C +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +Creating class info for DECUtil class SwapInt64 +TBreakPoint.Activate: +Activate DECUtil.pas line 381 BreakPoint at:0044E07C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:73 VA:0023D082 Base:2162688 Address: 0044E082 +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 382 BreakPoint at:0044E082 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:74 VA:0023D088 Base:2162688 Address: 0044E088 +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 383 BreakPoint at:0044E088 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:75 VA:0023D08E Base:2162688 Address: 0044E08E +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 384 BreakPoint at:0044E08E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:76 VA:0023D0BB Base:2162688 Address: 0044E0BB +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 385 BreakPoint at:0044E0BB +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:77 VA:0023D0E8 Base:2162688 Address: 0044E0E8 +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 386 BreakPoint at:0044E0E8 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:78 VA:0023D0EE Base:2162688 Address: 0044E0EE +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 387 BreakPoint at:0044E0EE +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:79 VA:0023D0F4 Base:2162688 Address: 0044E0F4 +Adding breakpoint for DECUtil.SwapInt64 in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 388 BreakPoint at:0044E0F4 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:80 VA:0023D100 Base:2162688 Address: 0044E100 +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +Creating class info for DECUtil class SwapInt64Buffer +TBreakPoint.Activate: +Activate DECUtil.pas line 417 BreakPoint at:0044E100 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:81 VA:0023D10F Base:2162688 Address: 0044E10F +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 418 BreakPoint at:0044E10F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:82 VA:0023D12F Base:2162688 Address: 0044E12F +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 420 BreakPoint at:0044E12F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:83 VA:0023D14F Base:2162688 Address: 0044E14F +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 421 BreakPoint at:0044E14F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:84 VA:0023D179 Base:2162688 Address: 0044E179 +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 422 BreakPoint at:0044E179 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:85 VA:0023D1C1 Base:2162688 Address: 0044E1C1 +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 423 BreakPoint at:0044E1C1 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:86 VA:0023D213 Base:2162688 Address: 0044E213 +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 424 BreakPoint at:0044E213 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:87 VA:0023D216 Base:2162688 Address: 0044E216 +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 418 BreakPoint at:0044E216 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:88 VA:0023D21F Base:2162688 Address: 0044E21F +Adding breakpoint for DECUtil.SwapInt64Buffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 425 BreakPoint at:0044E21F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:89 VA:0023D224 Base:2162688 Address: 0044E224 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +Creating class info for DECUtil class XORBuffers +TBreakPoint.Activate: +Activate DECUtil.pas line 460 BreakPoint at:0044E224 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:90 VA:0023D233 Base:2162688 Address: 0044E233 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 461 BreakPoint at:0044E233 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:91 VA:0023D239 Base:2162688 Address: 0044E239 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 462 BreakPoint at:0044E239 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:92 VA:0023D23F Base:2162688 Address: 0044E23F +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 463 BreakPoint at:0044E23F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:93 VA:0023D245 Base:2162688 Address: 0044E245 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 464 BreakPoint at:0044E245 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:94 VA:0023D261 Base:2162688 Address: 0044E261 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 466 BreakPoint at:0044E261 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:95 VA:0023D270 Base:2162688 Address: 0044E270 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 467 BreakPoint at:0044E270 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:96 VA:0023D274 Base:2162688 Address: 0044E274 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 468 BreakPoint at:0044E274 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:97 VA:0023D278 Base:2162688 Address: 0044E278 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 469 BreakPoint at:0044E278 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:98 VA:0023D27C Base:2162688 Address: 0044E27C +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 470 BreakPoint at:0044E27C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:99 VA:0023D27F Base:2162688 Address: 0044E27F +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 464 BreakPoint at:0044E27F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:100 VA:0023D284 Base:2162688 Address: 0044E284 +Adding breakpoint for DECUtil.XORBuffers in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 471 BreakPoint at:0044E284 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:101 VA:0023D28C Base:2162688 Address: 0044E28C +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +Creating class info for DECUtil class ProtectBuffer +TBreakPoint.Activate: +Activate DECUtil.pas line 486 BreakPoint at:0044E28C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:102 VA:0023D298 Base:2162688 Address: 0044E298 +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 487 BreakPoint at:0044E298 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:103 VA:0023D29E Base:2162688 Address: 0044E29E +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 489 BreakPoint at:0044E29E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:104 VA:0023D2A3 Base:2162688 Address: 0044E2A3 +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 490 BreakPoint at:0044E2A3 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:105 VA:0023D2C6 Base:2162688 Address: 0044E2C6 +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 489 BreakPoint at:0044E2C6 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:106 VA:0023D2CC Base:2162688 Address: 0044E2CC +Adding breakpoint for DECUtil.ProtectBuffer in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 492 BreakPoint at:0044E2CC +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:107 VA:0023D2D0 Base:2162688 Address: 0044E2D0 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +Creating class info for DECUtil class ProtectStream +TBreakPoint.Activate: +Activate DECUtil.pas line 501 BreakPoint at:0044E2D0 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:108 VA:0023D2ED Base:2162688 Address: 0044E2ED +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 502 BreakPoint at:0044E2ED +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:109 VA:0023D306 Base:2162688 Address: 0044E306 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 503 BreakPoint at:0044E306 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:110 VA:0023D31E Base:2162688 Address: 0044E31E +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 504 BreakPoint at:0044E31E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:111 VA:0023D32E Base:2162688 Address: 0044E32E +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 506 BreakPoint at:0044E32E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:112 VA:0023D338 Base:2162688 Address: 0044E338 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 507 BreakPoint at:0044E338 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:113 VA:0023D33F Base:2162688 Address: 0044E33F +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 510 BreakPoint at:0044E33F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:114 VA:0023D34C Base:2162688 Address: 0044E34C +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 511 BreakPoint at:0044E34C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:115 VA:0023D35E Base:2162688 Address: 0044E35E +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 512 BreakPoint at:0044E35E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:116 VA:0023D368 Base:2162688 Address: 0044E368 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 514 BreakPoint at:0044E368 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:117 VA:0023D375 Base:2162688 Address: 0044E375 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 515 BreakPoint at:0044E375 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:118 VA:0023D37A Base:2162688 Address: 0044E37A +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 517 BreakPoint at:0044E37A +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:119 VA:0023D388 Base:2162688 Address: 0044E388 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 518 BreakPoint at:0044E388 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:120 VA:0023D39F Base:2162688 Address: 0044E39F +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 520 BreakPoint at:0044E39F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:121 VA:0023D3DF Base:2162688 Address: 0044E3DF +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 524 BreakPoint at:0044E3DF +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:122 VA:0023D3E5 Base:2162688 Address: 0044E3E5 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 526 BreakPoint at:0044E3E5 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:123 VA:0023D3EB Base:2162688 Address: 0044E3EB +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 527 BreakPoint at:0044E3EB +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:124 VA:0023D3F4 Base:2162688 Address: 0044E3F4 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 528 BreakPoint at:0044E3F4 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:125 VA:0023D3FB Base:2162688 Address: 0044E3FB +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 530 BreakPoint at:0044E3FB +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:126 VA:0023D427 Base:2162688 Address: 0044E427 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 534 BreakPoint at:0044E427 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:127 VA:0023D434 Base:2162688 Address: 0044E434 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 524 BreakPoint at:0044E434 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:128 VA:0023D43A Base:2162688 Address: 0044E43A +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 536 BreakPoint at:0044E43A +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:129 VA:0023D43D Base:2162688 Address: 0044E43D +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 515 BreakPoint at:0044E43D +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:130 VA:0023D447 Base:2162688 Address: 0044E447 +Adding breakpoint for DECUtil.ProtectStream in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 537 BreakPoint at:0044E447 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:131 VA:0023D470 Base:2162688 Address: 0044E470 +Adding breakpoint for DECUtil.ProtectBytes in DECUtil.pas +Creating class info for DECUtil class ProtectBytes +TBreakPoint.Activate: +Activate DECUtil.pas line 540 BreakPoint at:0044E470 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:132 VA:0023D479 Base:2162688 Address: 0044E479 +Adding breakpoint for DECUtil.ProtectBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 541 BreakPoint at:0044E479 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:133 VA:0023D4A0 Base:2162688 Address: 0044E4A0 +Adding breakpoint for DECUtil.ProtectBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 543 BreakPoint at:0044E4A0 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:134 VA:0023D4E2 Base:2162688 Address: 0044E4E2 +Adding breakpoint for DECUtil.ProtectBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 544 BreakPoint at:0044E4E2 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:135 VA:0023D4F0 Base:2162688 Address: 0044E4F0 +Adding breakpoint for DECUtil.ProtectBytes in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 546 BreakPoint at:0044E4F0 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:136 VA:0023D4F4 Base:2162688 Address: 0044E4F4 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +Creating class info for DECUtil class ProtectString +TBreakPoint.Activate: +Activate DECUtil.pas line 549 BreakPoint at:0044E4F4 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:137 VA:0023D4FD Base:2162688 Address: 0044E4FD +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 550 BreakPoint at:0044E4FD +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:138 VA:0023D51C Base:2162688 Address: 0044E51C +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 552 BreakPoint at:0044E51C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:139 VA:0023D524 Base:2162688 Address: 0044E524 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 554 BreakPoint at:0044E524 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:140 VA:0023D55B Base:2162688 Address: 0044E55B +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 558 BreakPoint at:0044E55B +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:141 VA:0023D563 Base:2162688 Address: 0044E563 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 560 BreakPoint at:0044E563 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:142 VA:0023D568 Base:2162688 Address: 0044E568 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 563 BreakPoint at:0044E568 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:143 VA:0023D571 Base:2162688 Address: 0044E571 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 564 BreakPoint at:0044E571 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:144 VA:0023D590 Base:2162688 Address: 0044E590 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 568 BreakPoint at:0044E590 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:145 VA:0023D598 Base:2162688 Address: 0044E598 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 570 BreakPoint at:0044E598 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:146 VA:0023D5CF Base:2162688 Address: 0044E5CF +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 574 BreakPoint at:0044E5CF +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:147 VA:0023D5D7 Base:2162688 Address: 0044E5D7 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 576 BreakPoint at:0044E5D7 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:148 VA:0023D5DC Base:2162688 Address: 0044E5DC +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 594 BreakPoint at:0044E5DC +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:149 VA:0023D5E5 Base:2162688 Address: 0044E5E5 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 595 BreakPoint at:0044E5E5 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:150 VA:0023D606 Base:2162688 Address: 0044E606 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 597 BreakPoint at:0044E606 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:151 VA:0023D60E Base:2162688 Address: 0044E60E +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 599 BreakPoint at:0044E60E +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:152 VA:0023D647 Base:2162688 Address: 0044E647 +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 603 BreakPoint at:0044E647 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:153 VA:0023D64F Base:2162688 Address: 0044E64F +Adding breakpoint for DECUtil.ProtectString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 605 BreakPoint at:0044E64F +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:154 VA:0023D654 Base:2162688 Address: 0044E654 +Adding breakpoint for DECUtil.BytesToRawString in DECUtil.pas +Creating class info for DECUtil class BytesToRawString +TBreakPoint.Activate: +Activate DECUtil.pas line 609 BreakPoint at:0044E654 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:155 VA:0023D660 Base:2162688 Address: 0044E660 +Adding breakpoint for DECUtil.BytesToRawString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 610 BreakPoint at:0044E660 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:156 VA:0023D684 Base:2162688 Address: 0044E684 +Adding breakpoint for DECUtil.BytesToRawString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 611 BreakPoint at:0044E684 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:157 VA:0023D6A1 Base:2162688 Address: 0044E6A1 +Adding breakpoint for DECUtil.BytesToRawString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 615 BreakPoint at:0044E6A1 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:158 VA:0023D6FD Base:2162688 Address: 0044E6FD +Adding breakpoint for DECUtil.BytesToRawString in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 620 BreakPoint at:0044E6FD +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:159 VA:0023D704 Base:2162688 Address: 0044E704 +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +Creating class info for DECUtil class IsEqual +TBreakPoint.Activate: +Activate DECUtil.pas line 623 BreakPoint at:0044E704 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:160 VA:0023D710 Base:2162688 Address: 0044E710 +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 624 BreakPoint at:0044E710 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:161 VA:0023D746 Base:2162688 Address: 0044E746 +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 625 BreakPoint at:0044E746 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:162 VA:0023D74C Base:2162688 Address: 0044E74C +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 627 BreakPoint at:0044E74C +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:163 VA:0023D769 Base:2162688 Address: 0044E769 +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 628 BreakPoint at:0044E769 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:164 VA:0023D7B8 Base:2162688 Address: 0044E7B8 +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 630 BreakPoint at:0044E7B8 +Setting BreakPoint for module: DECUtil unit DECUtil.pas moduleName: DECUtil unitModuleName: DECUtil addr:165 VA:0023D7BC Base:2162688 Address: 0044E7BC +Adding breakpoint for DECUtil.IsEqual in DECUtil.pas +TBreakPoint.Activate: +Activate DECUtil.pas line 631 BreakPoint at:0044E7BC +Module name "DECUtil" did not match module from address name "TestDECUtil" at address:0023D7CA +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:417 VA:00240A68 Base:2162688 Address: 00451A68 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +Creating class info for DECCRC class CRCSetup +TBreakPoint.Activate: +Activate DECCRC.pas line 505 BreakPoint at:00451A68 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:418 VA:00240A77 Base:2162688 Address: 00451A77 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 506 BreakPoint at:00451A77 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:419 VA:00240A81 Base:2162688 Address: 00451A81 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 508 BreakPoint at:00451A81 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:420 VA:00240A8D Base:2162688 Address: 00451A8D +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 509 BreakPoint at:00451A8D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:421 VA:00240A99 Base:2162688 Address: 00451A99 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 510 BreakPoint at:00451A99 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:422 VA:00240AA5 Base:2162688 Address: 00451AA5 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 511 BreakPoint at:00451AA5 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:423 VA:00240AB1 Base:2162688 Address: 00451AB1 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 512 BreakPoint at:00451AB1 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:424 VA:00240ABD Base:2162688 Address: 00451ABD +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 513 BreakPoint at:00451ABD +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:425 VA:00240AC9 Base:2162688 Address: 00451AC9 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 514 BreakPoint at:00451AC9 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:426 VA:00240AD8 Base:2162688 Address: 00451AD8 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 515 BreakPoint at:00451AD8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:427 VA:00240AE3 Base:2162688 Address: 00451AE3 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 516 BreakPoint at:00451AE3 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:428 VA:00240AF4 Base:2162688 Address: 00451AF4 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 518 BreakPoint at:00451AF4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:429 VA:00240AFE Base:2162688 Address: 00451AFE +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 520 BreakPoint at:00451AFE +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:430 VA:00240B0A Base:2162688 Address: 00451B0A +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 521 BreakPoint at:00451B0A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:431 VA:00240B0F Base:2162688 Address: 00451B0F +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 523 BreakPoint at:00451B0F +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:432 VA:00240B1B Base:2162688 Address: 00451B1B +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 524 BreakPoint at:00451B1B +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:433 VA:00240B1E Base:2162688 Address: 00451B1E +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 525 BreakPoint at:00451B1E +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:434 VA:00240B21 Base:2162688 Address: 00451B21 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 526 BreakPoint at:00451B21 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:435 VA:00240B27 Base:2162688 Address: 00451B27 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 528 BreakPoint at:00451B27 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:436 VA:00240B2B Base:2162688 Address: 00451B2B +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 529 BreakPoint at:00451B2B +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:437 VA:00240B32 Base:2162688 Address: 00451B32 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 531 BreakPoint at:00451B32 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:438 VA:00240B38 Base:2162688 Address: 00451B38 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 533 BreakPoint at:00451B38 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:439 VA:00240B46 Base:2162688 Address: 00451B46 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 534 BreakPoint at:00451B46 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:440 VA:00240B52 Base:2162688 Address: 00451B52 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 536 BreakPoint at:00451B52 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:441 VA:00240B60 Base:2162688 Address: 00451B60 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 537 BreakPoint at:00451B60 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:442 VA:00240B6C Base:2162688 Address: 00451B6C +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 539 BreakPoint at:00451B6C +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:443 VA:00240B7A Base:2162688 Address: 00451B7A +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 540 BreakPoint at:00451B7A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:444 VA:00240B86 Base:2162688 Address: 00451B86 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 542 BreakPoint at:00451B86 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:445 VA:00240B94 Base:2162688 Address: 00451B94 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 543 BreakPoint at:00451B94 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:446 VA:00240BA0 Base:2162688 Address: 00451BA0 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 545 BreakPoint at:00451BA0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:447 VA:00240BAE Base:2162688 Address: 00451BAE +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 546 BreakPoint at:00451BAE +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:448 VA:00240BBA Base:2162688 Address: 00451BBA +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 548 BreakPoint at:00451BBA +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:449 VA:00240BC8 Base:2162688 Address: 00451BC8 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 549 BreakPoint at:00451BC8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:450 VA:00240BD4 Base:2162688 Address: 00451BD4 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 551 BreakPoint at:00451BD4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:451 VA:00240BE2 Base:2162688 Address: 00451BE2 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 552 BreakPoint at:00451BE2 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:452 VA:00240BEE Base:2162688 Address: 00451BEE +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 554 BreakPoint at:00451BEE +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:453 VA:00240BFC Base:2162688 Address: 00451BFC +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 555 BreakPoint at:00451BFC +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:454 VA:00240C08 Base:2162688 Address: 00451C08 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 557 BreakPoint at:00451C08 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:455 VA:00240C14 Base:2162688 Address: 00451C14 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 558 BreakPoint at:00451C14 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:456 VA:00240C17 Base:2162688 Address: 00451C17 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 529 BreakPoint at:00451C17 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:457 VA:00240C26 Base:2162688 Address: 00451C26 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 562 BreakPoint at:00451C26 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:458 VA:00240C35 Base:2162688 Address: 00451C35 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 563 BreakPoint at:00451C35 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:459 VA:00240C53 Base:2162688 Address: 00451C53 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 564 BreakPoint at:00451C53 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:460 VA:00240C5A Base:2162688 Address: 00451C5A +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 566 BreakPoint at:00451C5A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:461 VA:00240C6E Base:2162688 Address: 00451C6E +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 567 BreakPoint at:00451C6E +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:462 VA:00240C7A Base:2162688 Address: 00451C7A +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 569 BreakPoint at:00451C7A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:463 VA:00240C86 Base:2162688 Address: 00451C86 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 570 BreakPoint at:00451C86 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:464 VA:00240C94 Base:2162688 Address: 00451C94 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 572 BreakPoint at:00451C94 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:465 VA:00240CA0 Base:2162688 Address: 00451CA0 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 573 BreakPoint at:00451CA0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:466 VA:00240CAE Base:2162688 Address: 00451CAE +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 575 BreakPoint at:00451CAE +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:467 VA:00240CBA Base:2162688 Address: 00451CBA +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 576 BreakPoint at:00451CBA +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:468 VA:00240CC8 Base:2162688 Address: 00451CC8 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 578 BreakPoint at:00451CC8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:469 VA:00240CD4 Base:2162688 Address: 00451CD4 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 579 BreakPoint at:00451CD4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:470 VA:00240CE2 Base:2162688 Address: 00451CE2 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 581 BreakPoint at:00451CE2 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:471 VA:00240CEE Base:2162688 Address: 00451CEE +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 582 BreakPoint at:00451CEE +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:472 VA:00240CFC Base:2162688 Address: 00451CFC +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 584 BreakPoint at:00451CFC +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:473 VA:00240D08 Base:2162688 Address: 00451D08 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 585 BreakPoint at:00451D08 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:474 VA:00240D16 Base:2162688 Address: 00451D16 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 587 BreakPoint at:00451D16 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:475 VA:00240D22 Base:2162688 Address: 00451D22 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 588 BreakPoint at:00451D22 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:476 VA:00240D30 Base:2162688 Address: 00451D30 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 590 BreakPoint at:00451D30 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:477 VA:00240D4E Base:2162688 Address: 00451D4E +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 591 BreakPoint at:00451D4E +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:478 VA:00240D5A Base:2162688 Address: 00451D5A +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 592 BreakPoint at:00451D5A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:479 VA:00240D5D Base:2162688 Address: 00451D5D +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 564 BreakPoint at:00451D5D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:480 VA:00240D67 Base:2162688 Address: 00451D67 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 594 BreakPoint at:00451D67 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:481 VA:00240D6D Base:2162688 Address: 00451D6D +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 597 BreakPoint at:00451D6D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:482 VA:00240D71 Base:2162688 Address: 00451D71 +Adding breakpoint for DECCRC.CRCSetup in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 598 BreakPoint at:00451D71 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:483 VA:00240D7C Base:2162688 Address: 00451D7C +Adding breakpoint for DECCRC.CRCInit in DECCRC.pas +Creating class info for DECCRC class CRCInit +TBreakPoint.Activate: +Activate DECCRC.pas line 602 BreakPoint at:00451D7C +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:484 VA:00240D88 Base:2162688 Address: 00451D88 +Adding breakpoint for DECCRC.CRCInit in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 603 BreakPoint at:00451D88 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:485 VA:00240DEA Base:2162688 Address: 00451DEA +Adding breakpoint for DECCRC.CRCInit in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 609 BreakPoint at:00451DEA +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:486 VA:00240DF4 Base:2162688 Address: 00451DF4 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +Creating class info for DECCRC class CRCCode +TBreakPoint.Activate: +Activate DECCRC.pas line 660 BreakPoint at:00451DF4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:487 VA:00240E03 Base:2162688 Address: 00451E03 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 661 BreakPoint at:00451E03 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:488 VA:00240E0F Base:2162688 Address: 00451E0F +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 662 BreakPoint at:00451E0F +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:489 VA:00240E15 Base:2162688 Address: 00451E15 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 663 BreakPoint at:00451E15 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:490 VA:00240E29 Base:2162688 Address: 00451E29 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 665 BreakPoint at:00451E29 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:491 VA:00240E35 Base:2162688 Address: 00451E35 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 668 BreakPoint at:00451E35 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:492 VA:00240E40 Base:2162688 Address: 00451E40 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 669 BreakPoint at:00451E40 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:493 VA:00240E56 Base:2162688 Address: 00451E56 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 670 BreakPoint at:00451E56 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:494 VA:00240E59 Base:2162688 Address: 00451E59 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 671 BreakPoint at:00451E59 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:495 VA:00240E5C Base:2162688 Address: 00451E5C +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 672 BreakPoint at:00451E5C +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:496 VA:00240E64 Base:2162688 Address: 00451E64 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 676 BreakPoint at:00451E64 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:497 VA:00240E70 Base:2162688 Address: 00451E70 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 678 BreakPoint at:00451E70 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:498 VA:00240E93 Base:2162688 Address: 00451E93 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 679 BreakPoint at:00451E93 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:499 VA:00240E96 Base:2162688 Address: 00451E96 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 680 BreakPoint at:00451E96 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:500 VA:00240E99 Base:2162688 Address: 00451E99 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 681 BreakPoint at:00451E99 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:501 VA:00240E9F Base:2162688 Address: 00451E9F +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 683 BreakPoint at:00451E9F +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:502 VA:00240EAB Base:2162688 Address: 00451EAB +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 684 BreakPoint at:00451EAB +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:503 VA:00240EC3 Base:2162688 Address: 00451EC3 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 686 BreakPoint at:00451EC3 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:504 VA:00240ECC Base:2162688 Address: 00451ECC +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 693 BreakPoint at:00451ECC +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:505 VA:00240EDB Base:2162688 Address: 00451EDB +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 695 BreakPoint at:00451EDB +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:506 VA:00240EE4 Base:2162688 Address: 00451EE4 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 696 BreakPoint at:00451EE4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:507 VA:00240EF4 Base:2162688 Address: 00451EF4 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 698 BreakPoint at:00451EF4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:508 VA:00240EFF Base:2162688 Address: 00451EFF +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 699 BreakPoint at:00451EFF +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:509 VA:00240F17 Base:2162688 Address: 00451F17 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 700 BreakPoint at:00451F17 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:510 VA:00240F2B Base:2162688 Address: 00451F2B +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 701 BreakPoint at:00451F2B +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:511 VA:00240F31 Base:2162688 Address: 00451F31 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 702 BreakPoint at:00451F31 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:512 VA:00240F43 Base:2162688 Address: 00451F43 +Adding breakpoint for DECCRC.CRCCode in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 703 BreakPoint at:00451F43 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:513 VA:00240F4C Base:2162688 Address: 00451F4C +Adding breakpoint for DECCRC.CRCDone in DECCRC.pas +Creating class info for DECCRC class CRCDone +TBreakPoint.Activate: +Activate DECCRC.pas line 717 BreakPoint at:00451F4C +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:514 VA:00240F55 Base:2162688 Address: 00451F55 +Adding breakpoint for DECCRC.CRCDone in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 718 BreakPoint at:00451F55 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:515 VA:00240F61 Base:2162688 Address: 00451F61 +Adding breakpoint for DECCRC.CRCDone in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 719 BreakPoint at:00451F61 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:516 VA:00240F73 Base:2162688 Address: 00451F73 +Adding breakpoint for DECCRC.CRCDone in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 720 BreakPoint at:00451F73 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:517 VA:00240F8B Base:2162688 Address: 00451F8B +Adding breakpoint for DECCRC.CRCDone in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 721 BreakPoint at:00451F8B +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:518 VA:00240F94 Base:2162688 Address: 00451F94 +Adding breakpoint for DECCRC.CRCCalc in DECCRC.pas +Creating class info for DECCRC class CRCCalc +TBreakPoint.Activate: +Activate DECCRC.pas line 728 BreakPoint at:00451F94 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:519 VA:00240FA6 Base:2162688 Address: 00451FA6 +Adding breakpoint for DECCRC.CRCCalc in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 729 BreakPoint at:00451FA6 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:520 VA:00240FB4 Base:2162688 Address: 00451FB4 +Adding breakpoint for DECCRC.CRCCalc in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 730 BreakPoint at:00451FB4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:521 VA:00240FC8 Base:2162688 Address: 00451FC8 +Adding breakpoint for DECCRC.CRCCalc in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 731 BreakPoint at:00451FC8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:522 VA:00240FD0 Base:2162688 Address: 00451FD0 +Adding breakpoint for DECCRC.CRC16Init in DECCRC.pas +Creating class info for DECCRC class CRC16Init +TBreakPoint.Activate: +Activate DECCRC.pas line 747 BreakPoint at:00451FD0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:523 VA:00240FD4 Base:2162688 Address: 00451FD4 +Adding breakpoint for DECCRC.CRC16Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 750 BreakPoint at:00451FD4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:524 VA:00240FE4 Base:2162688 Address: 00451FE4 +Adding breakpoint for DECCRC.CRC16Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 751 BreakPoint at:00451FE4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:525 VA:00240FF0 Base:2162688 Address: 00451FF0 +Adding breakpoint for DECCRC.CRC16Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 752 BreakPoint at:00451FF0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:526 VA:00240FF8 Base:2162688 Address: 00451FF8 +Adding breakpoint for DECCRC.CRC16Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 753 BreakPoint at:00451FF8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:527 VA:00241000 Base:2162688 Address: 00452000 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +Creating class info for DECCRC class CRC16 +TBreakPoint.Activate: +Activate DECCRC.pas line 795 BreakPoint at:00452000 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:528 VA:00241010 Base:2162688 Address: 00452010 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 796 BreakPoint at:00452010 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:529 VA:00241016 Base:2162688 Address: 00452016 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 798 BreakPoint at:00452016 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:530 VA:0024101E Base:2162688 Address: 0045201E +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 799 BreakPoint at:0045201E +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:531 VA:00241024 Base:2162688 Address: 00452024 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 800 BreakPoint at:00452024 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:532 VA:0024102C Base:2162688 Address: 0045202C +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 802 BreakPoint at:0045202C +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:533 VA:00241033 Base:2162688 Address: 00452033 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 803 BreakPoint at:00452033 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:534 VA:00241039 Base:2162688 Address: 00452039 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 805 BreakPoint at:00452039 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:535 VA:00241044 Base:2162688 Address: 00452044 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 806 BreakPoint at:00452044 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:536 VA:0024105A Base:2162688 Address: 0045205A +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 807 BreakPoint at:0045205A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:537 VA:0024105D Base:2162688 Address: 0045205D +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 808 BreakPoint at:0045205D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:538 VA:00241060 Base:2162688 Address: 00452060 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 809 BreakPoint at:00452060 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:539 VA:00241066 Base:2162688 Address: 00452066 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 810 BreakPoint at:00452066 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:540 VA:00241070 Base:2162688 Address: 00452070 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 813 BreakPoint at:00452070 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:541 VA:00241078 Base:2162688 Address: 00452078 +Adding breakpoint for DECCRC.CRC16 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 814 BreakPoint at:00452078 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:542 VA:00241080 Base:2162688 Address: 00452080 +Adding breakpoint for DECCRC.CRC32Init in DECCRC.pas +Creating class info for DECCRC class CRC32Init +TBreakPoint.Activate: +Activate DECCRC.pas line 818 BreakPoint at:00452080 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:543 VA:00241084 Base:2162688 Address: 00452084 +Adding breakpoint for DECCRC.CRC32Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 821 BreakPoint at:00452084 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:544 VA:00241094 Base:2162688 Address: 00452094 +Adding breakpoint for DECCRC.CRC32Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 822 BreakPoint at:00452094 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:545 VA:002410A0 Base:2162688 Address: 004520A0 +Adding breakpoint for DECCRC.CRC32Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 823 BreakPoint at:004520A0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:546 VA:002410A8 Base:2162688 Address: 004520A8 +Adding breakpoint for DECCRC.CRC32Init in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 824 BreakPoint at:004520A8 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:547 VA:002410B0 Base:2162688 Address: 004520B0 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +Creating class info for DECCRC class CRC32 +TBreakPoint.Activate: +Activate DECCRC.pas line 868 BreakPoint at:004520B0 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:548 VA:002410BF Base:2162688 Address: 004520BF +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 869 BreakPoint at:004520BF +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:549 VA:002410C5 Base:2162688 Address: 004520C5 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 871 BreakPoint at:004520C5 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:550 VA:002410CD Base:2162688 Address: 004520CD +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 872 BreakPoint at:004520CD +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:551 VA:002410D3 Base:2162688 Address: 004520D3 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 873 BreakPoint at:004520D3 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:552 VA:002410DB Base:2162688 Address: 004520DB +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 875 BreakPoint at:004520DB +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:553 VA:002410E3 Base:2162688 Address: 004520E3 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 876 BreakPoint at:004520E3 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:554 VA:002410E9 Base:2162688 Address: 004520E9 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 878 BreakPoint at:004520E9 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:555 VA:002410F4 Base:2162688 Address: 004520F4 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 879 BreakPoint at:004520F4 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:556 VA:0024110A Base:2162688 Address: 0045210A +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 880 BreakPoint at:0045210A +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:557 VA:0024110D Base:2162688 Address: 0045210D +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 881 BreakPoint at:0045210D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:558 VA:00241110 Base:2162688 Address: 00452110 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 882 BreakPoint at:00452110 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:559 VA:00241116 Base:2162688 Address: 00452116 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 883 BreakPoint at:00452116 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:560 VA:00241120 Base:2162688 Address: 00452120 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 886 BreakPoint at:00452120 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:561 VA:00241126 Base:2162688 Address: 00452126 +Adding breakpoint for DECCRC.CRC32 in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 887 BreakPoint at:00452126 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:562 VA:00241130 Base:2162688 Address: 00452130 +Adding breakpoint for DECCRC.CRCInitThreadSafe in DECCRC.pas +Creating class info for DECCRC class CRCInitThreadSafe +TBreakPoint.Activate: +Activate DECCRC.pas line 891 BreakPoint at:00452130 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:563 VA:00241133 Base:2162688 Address: 00452133 +Adding breakpoint for DECCRC.CRCInitThreadSafe in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 892 BreakPoint at:00452133 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:564 VA:00241138 Base:2162688 Address: 00452138 +Adding breakpoint for DECCRC.CRCInitThreadSafe in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 893 BreakPoint at:00452138 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:565 VA:0024113D Base:2162688 Address: 0045213D +Adding breakpoint for DECCRC.CRCInitThreadSafe in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 894 BreakPoint at:0045213D +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:566 VA:00241140 Base:2162688 Address: 00452140 +Adding breakpoint for DECCRC.Finalization in DECCRC.pas +Creating class info for DECCRC class DECCRC +TBreakPoint.Activate: +Activate DECCRC.pas line 903 BreakPoint at:00452140 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:567 VA:00241154 Base:2162688 Address: 00452154 +Adding breakpoint for DECCRC.Finalization in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 904 BreakPoint at:00452154 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:568 VA:0024115E Base:2162688 Address: 0045215E +Adding breakpoint for DECCRC.Finalization in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 906 BreakPoint at:0045215E +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:569 VA:00241167 Base:2162688 Address: 00452167 +Adding breakpoint for DECCRC.Finalization in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 907 BreakPoint at:00452167 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:570 VA:00241171 Base:2162688 Address: 00452171 +Adding breakpoint for DECCRC.Finalization in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 908 BreakPoint at:00452171 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:571 VA:0024357C Base:2162688 Address: 0045457C +Adding breakpoint for DECBaseClass.TDECObject.Create in DECBaseClass.pas +Creating class info for DECBaseClass class TDECObject +TBreakPoint.Activate: +Activate DECBaseClass.pas line 230 BreakPoint at:0045457C +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:572 VA:00243594 Base:2162688 Address: 00454594 +Adding breakpoint for DECBaseClass.TDECObject.Create in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 231 BreakPoint at:00454594 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:573 VA:0024359E Base:2162688 Address: 0045459E +Adding breakpoint for DECBaseClass.TDECObject.Create in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 232 BreakPoint at:0045459E +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:574 VA:002435C0 Base:2162688 Address: 004545C0 +Adding breakpoint for DECBaseClass.TDECObject.Identity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 237 BreakPoint at:004545C0 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:575 VA:002435E8 Base:2162688 Address: 004545E8 +Adding breakpoint for DECBaseClass.TDECObject.Identity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 248 BreakPoint at:004545E8 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:576 VA:0024365E Base:2162688 Address: 0045465E +Adding breakpoint for DECBaseClass.TDECObject.Identity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 250 BreakPoint at:0045465E +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:577 VA:002436D8 Base:2162688 Address: 004546D8 +Adding breakpoint for DECBaseClass.TDECObject.Identity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 257 BreakPoint at:004546D8 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:578 VA:00243710 Base:2162688 Address: 00454710 +Adding breakpoint for DECBaseClass.TDECObject.RegisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 260 BreakPoint at:00454710 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:579 VA:0024371C Base:2162688 Address: 0045471C +Adding breakpoint for DECBaseClass.TDECObject.RegisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 261 BreakPoint at:0045471C +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:580 VA:00243731 Base:2162688 Address: 00454731 +Adding breakpoint for DECBaseClass.TDECObject.RegisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 262 BreakPoint at:00454731 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:581 VA:00243738 Base:2162688 Address: 00454738 +Adding breakpoint for DECBaseClass.TDECObject.UnregisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 287 BreakPoint at:00454738 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:582 VA:00243744 Base:2162688 Address: 00454744 +Adding breakpoint for DECBaseClass.TDECObject.UnregisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 288 BreakPoint at:00454744 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:583 VA:00243756 Base:2162688 Address: 00454756 +Adding breakpoint for DECBaseClass.TDECObject.UnregisterClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 289 BreakPoint at:00454756 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:584 VA:0024375C Base:2162688 Address: 0045475C +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 292 BreakPoint at:0045475C +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:585 VA:0024377B Base:2162688 Address: 0045477B +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 293 BreakPoint at:0045477B +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:586 VA:00243794 Base:2162688 Address: 00454794 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 294 BreakPoint at:00454794 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:587 VA:002437B8 Base:2162688 Address: 004547B8 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 299 BreakPoint at:004547B8 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:588 VA:002437C7 Base:2162688 Address: 004547C7 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 300 BreakPoint at:004547C7 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:589 VA:002437D2 Base:2162688 Address: 004547D2 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 301 BreakPoint at:004547D2 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:590 VA:002437EF Base:2162688 Address: 004547EF +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 302 BreakPoint at:004547EF +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:591 VA:002437F5 Base:2162688 Address: 004547F5 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 303 BreakPoint at:004547F5 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:592 VA:00243805 Base:2162688 Address: 00454805 +Adding breakpoint for DECBaseClass.TDECObject.GetShortClassNameFromName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 304 BreakPoint at:00454805 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:593 VA:0024381C Base:2162688 Address: 0045481C +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameShort in DECBaseClass.pas +Creating class info for DECBaseClass class TDECClassList +TBreakPoint.Activate: +Activate DECBaseClass.pas line 309 BreakPoint at:0045481C +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:594 VA:0024383F Base:2162688 Address: 0045483F +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameShort in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 310 BreakPoint at:0045483F +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:595 VA:0024385B Base:2162688 Address: 0045485B +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameShort in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 311 BreakPoint at:0045485B +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:596 VA:00243884 Base:2162688 Address: 00454884 +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameLong in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 316 BreakPoint at:00454884 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:597 VA:002438AA Base:2162688 Address: 004548AA +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameLong in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 317 BreakPoint at:004548AA +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:598 VA:002438B5 Base:2162688 Address: 004548B5 +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameLong in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 318 BreakPoint at:004548B5 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:599 VA:002438D1 Base:2162688 Address: 004548D1 +Adding breakpoint for DECBaseClass.TDECClassList.DoFindNameLong in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 319 BreakPoint at:004548D1 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:600 VA:00243900 Base:2162688 Address: 00454900 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByIdentity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 322 BreakPoint at:00454900 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:601 VA:0024391F Base:2162688 Address: 0045491F +Adding breakpoint for DECBaseClass.TDECClassList.ClassByIdentity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 323 BreakPoint at:0045491F +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:602 VA:0024392D Base:2162688 Address: 0045492D +Adding breakpoint for DECBaseClass.TDECClassList.ClassByIdentity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 324 BreakPoint at:0045492D +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:603 VA:00243959 Base:2162688 Address: 00454959 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByIdentity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 327 BreakPoint at:00454959 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:604 VA:00243997 Base:2162688 Address: 00454997 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByIdentity in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 330 BreakPoint at:00454997 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:605 VA:002439C4 Base:2162688 Address: 004549C4 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 336 BreakPoint at:004549C4 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:606 VA:002439E3 Base:2162688 Address: 004549E3 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 337 BreakPoint at:004549E3 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:607 VA:002439E8 Base:2162688 Address: 004549E8 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 339 BreakPoint at:004549E8 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:608 VA:00243A09 Base:2162688 Address: 00454A09 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 341 BreakPoint at:00454A09 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:609 VA:00243A28 Base:2162688 Address: 00454A28 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 343 BreakPoint at:00454A28 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:610 VA:00243A53 Base:2162688 Address: 00454A53 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 345 BreakPoint at:00454A53 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:611 VA:00243A59 Base:2162688 Address: 00454A59 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 347 BreakPoint at:00454A59 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:612 VA:00243A6B Base:2162688 Address: 00454A6B +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 349 BreakPoint at:00454A6B +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:613 VA:00243A71 Base:2162688 Address: 00454A71 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 350 BreakPoint at:00454A71 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:614 VA:00243A73 Base:2162688 Address: 00454A73 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 354 BreakPoint at:00454A73 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:615 VA:00243A85 Base:2162688 Address: 00454A85 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 356 BreakPoint at:00454A85 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:616 VA:00243A8B Base:2162688 Address: 00454A8B +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 357 BreakPoint at:00454A8B +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:617 VA:00243A8D Base:2162688 Address: 00454A8D +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 343 BreakPoint at:00454A8D +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:618 VA:00243AA6 Base:2162688 Address: 00454AA6 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 359 BreakPoint at:00454AA6 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:619 VA:00243AC5 Base:2162688 Address: 00454AC5 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 362 BreakPoint at:00454AC5 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:620 VA:00243ACB Base:2162688 Address: 00454ACB +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 363 BreakPoint at:00454ACB +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:621 VA:00243AF1 Base:2162688 Address: 00454AF1 +Adding breakpoint for DECBaseClass.TDECClassList.ClassByName in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 364 BreakPoint at:00454AF1 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:622 VA:00243B18 Base:2162688 Address: 00454B18 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 369 BreakPoint at:00454B18 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:623 VA:00243B38 Base:2162688 Address: 00454B38 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 370 BreakPoint at:00454B38 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:624 VA:00243B42 Base:2162688 Address: 00454B42 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 371 BreakPoint at:00454B42 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:625 VA:00243B50 Base:2162688 Address: 00454B50 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 372 BreakPoint at:00454B50 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:626 VA:00243B58 Base:2162688 Address: 00454B58 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 373 BreakPoint at:00454B58 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:627 VA:00243B60 Base:2162688 Address: 00454B60 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 375 BreakPoint at:00454B60 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:628 VA:00243B8B Base:2162688 Address: 00454B8B +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 376 BreakPoint at:00454B8B +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:629 VA:00243BA4 Base:2162688 Address: 00454BA4 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 375 BreakPoint at:00454BA4 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:630 VA:00243BBD Base:2162688 Address: 00454BBD +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 376 BreakPoint at:00454BBD +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:631 VA:00243BE9 Base:2162688 Address: 00454BE9 +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 379 BreakPoint at:00454BE9 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:632 VA:00243BFB Base:2162688 Address: 00454BFB +Adding breakpoint for DECBaseClass.TDECClassList.GetClassList in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 381 BreakPoint at:00454BFB +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:633 VA:00243C20 Base:2162688 Address: 00454C20 +Adding breakpoint for DECBaseClass.Finalization in DECBaseClass.pas +Creating class info for DECBaseClass class DECBaseClass +TBreakPoint.Activate: +Activate DECBaseClass.pas line 387 BreakPoint at:00454C20 +Module name "DECBaseClass" did not match module from address name "DECFormatBase" at address:00245C7C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:683 VA:002461A0 Base:2162688 Address: 004571A0 +Adding breakpoint for DECFormatBase.ValidFormat in DECFormatBase.pas +Creating class info for DECFormatBase class ValidFormat +TBreakPoint.Activate: +Activate DECFormatBase.pas line 403 BreakPoint at:004571A0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:684 VA:002461A9 Base:2162688 Address: 004571A9 +Adding breakpoint for DECFormatBase.ValidFormat in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 404 BreakPoint at:004571A9 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:685 VA:002461AF Base:2162688 Address: 004571AF +Adding breakpoint for DECFormatBase.ValidFormat in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 405 BreakPoint at:004571AF +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:686 VA:002461B7 Base:2162688 Address: 004571B7 +Adding breakpoint for DECFormatBase.ValidFormat in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 407 BreakPoint at:004571B7 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:687 VA:002461BF Base:2162688 Address: 004571BF +Adding breakpoint for DECFormatBase.ValidFormat in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 408 BreakPoint at:004571BF +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:688 VA:002461C8 Base:2162688 Address: 004571C8 +Adding breakpoint for DECFormatBase.FormatByName in DECFormatBase.pas +Creating class info for DECFormatBase class FormatByName +TBreakPoint.Activate: +Activate DECFormatBase.pas line 411 BreakPoint at:004571C8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:689 VA:002461D1 Base:2162688 Address: 004571D1 +Adding breakpoint for DECFormatBase.FormatByName in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 412 BreakPoint at:004571D1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:690 VA:002461E1 Base:2162688 Address: 004571E1 +Adding breakpoint for DECFormatBase.FormatByName in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 413 BreakPoint at:004571E1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:691 VA:002461E8 Base:2162688 Address: 004571E8 +Adding breakpoint for DECFormatBase.FormatByIdentity in DECFormatBase.pas +Creating class info for DECFormatBase class FormatByIdentity +TBreakPoint.Activate: +Activate DECFormatBase.pas line 416 BreakPoint at:004571E8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:692 VA:002461EC Base:2162688 Address: 004571EC +Adding breakpoint for DECFormatBase.FormatByIdentity in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 417 BreakPoint at:004571EC +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:693 VA:002461FF Base:2162688 Address: 004571FF +Adding breakpoint for DECFormatBase.FormatByIdentity in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 418 BreakPoint at:004571FF +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:694 VA:00246208 Base:2162688 Address: 00457208 +Adding breakpoint for DECFormatBase.TDECFormat.DoEncode in DECFormatBase.pas +Creating class info for DECFormatBase class TDECFormat +TBreakPoint.Activate: +Activate DECFormatBase.pas line 424 BreakPoint at:00457208 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:695 VA:0024622B Base:2162688 Address: 0045722B +Adding breakpoint for DECFormatBase.TDECFormat.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 427 BreakPoint at:0045722B +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:696 VA:0024624A Base:2162688 Address: 0045724A +Adding breakpoint for DECFormatBase.TDECFormat.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 428 BreakPoint at:0045724A +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:697 VA:00246270 Base:2162688 Address: 00457270 +Adding breakpoint for DECFormatBase.TDECFormat.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 432 BreakPoint at:00457270 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:698 VA:00246293 Base:2162688 Address: 00457293 +Adding breakpoint for DECFormatBase.TDECFormat.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 435 BreakPoint at:00457293 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:699 VA:002462B2 Base:2162688 Address: 004572B2 +Adding breakpoint for DECFormatBase.TDECFormat.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 436 BreakPoint at:004572B2 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:700 VA:002462D8 Base:2162688 Address: 004572D8 +Adding breakpoint for DECFormatBase.TDECFormat.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 439 BreakPoint at:004572D8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:701 VA:002462FB Base:2162688 Address: 004572FB +Adding breakpoint for DECFormatBase.TDECFormat.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 445 BreakPoint at:004572FB +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:702 VA:0024631A Base:2162688 Address: 0045731A +Adding breakpoint for DECFormatBase.TDECFormat.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 446 BreakPoint at:0045731A +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:703 VA:00246344 Base:2162688 Address: 00457344 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 451 BreakPoint at:00457344 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:704 VA:00246367 Base:2162688 Address: 00457367 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 452 BreakPoint at:00457367 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:705 VA:00246384 Base:2162688 Address: 00457384 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 455 BreakPoint at:00457384 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:706 VA:002463CC Base:2162688 Address: 004573CC +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 459 BreakPoint at:004573CC +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:707 VA:002463D9 Base:2162688 Address: 004573D9 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 462 BreakPoint at:004573D9 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:708 VA:002463E1 Base:2162688 Address: 004573E1 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 463 BreakPoint at:004573E1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:709 VA:0024640C Base:2162688 Address: 0045740C +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 468 BreakPoint at:0045740C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:710 VA:0024642F Base:2162688 Address: 0045742F +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 469 BreakPoint at:0045742F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:711 VA:0024644C Base:2162688 Address: 0045744C +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 471 BreakPoint at:0045744C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:712 VA:00246485 Base:2162688 Address: 00457485 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 472 BreakPoint at:00457485 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:713 VA:00246498 Base:2162688 Address: 00457498 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 475 BreakPoint at:00457498 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:714 VA:002464A6 Base:2162688 Address: 004574A6 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 476 BreakPoint at:004574A6 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:715 VA:002464D0 Base:2162688 Address: 004574D0 +Adding breakpoint for DECFormatBase.TDECFormat.ClassByIdentity in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 479 BreakPoint at:004574D0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:716 VA:002464D9 Base:2162688 Address: 004574D9 +Adding breakpoint for DECFormatBase.TDECFormat.ClassByIdentity in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 480 BreakPoint at:004574D9 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:717 VA:002464EC Base:2162688 Address: 004574EC +Adding breakpoint for DECFormatBase.TDECFormat.ClassByIdentity in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 481 BreakPoint at:004574EC +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:718 VA:002464F8 Base:2162688 Address: 004574F8 +Adding breakpoint for DECFormatBase.TDECFormat.ClassByName in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 484 BreakPoint at:004574F8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:719 VA:00246504 Base:2162688 Address: 00457504 +Adding breakpoint for DECFormatBase.TDECFormat.ClassByName in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 485 BreakPoint at:00457504 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:720 VA:00246514 Base:2162688 Address: 00457514 +Adding breakpoint for DECFormatBase.TDECFormat.ClassByName in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 486 BreakPoint at:00457514 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:721 VA:0024651C Base:2162688 Address: 0045751C +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 491 BreakPoint at:0045751C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:722 VA:0024653F Base:2162688 Address: 0045753F +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 492 BreakPoint at:0045753F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:723 VA:0024655C Base:2162688 Address: 0045755C +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 494 BreakPoint at:0045755C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:724 VA:00246595 Base:2162688 Address: 00457595 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 495 BreakPoint at:00457595 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:725 VA:002465A8 Base:2162688 Address: 004575A8 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 498 BreakPoint at:004575A8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:726 VA:002465B6 Base:2162688 Address: 004575B6 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 499 BreakPoint at:004575B6 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:727 VA:002465E0 Base:2162688 Address: 004575E0 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 504 BreakPoint at:004575E0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:728 VA:00246603 Base:2162688 Address: 00457603 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 505 BreakPoint at:00457603 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:729 VA:00246620 Base:2162688 Address: 00457620 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 508 BreakPoint at:00457620 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:730 VA:00246668 Base:2162688 Address: 00457668 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 512 BreakPoint at:00457668 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:731 VA:00246675 Base:2162688 Address: 00457675 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 515 BreakPoint at:00457675 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:732 VA:0024667D Base:2162688 Address: 0045767D +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 516 BreakPoint at:0045767D +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:733 VA:002466A8 Base:2162688 Address: 004576A8 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 521 BreakPoint at:004576A8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:734 VA:002466CB Base:2162688 Address: 004576CB +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 522 BreakPoint at:004576CB +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:735 VA:002466D1 Base:2162688 Address: 004576D1 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 524 BreakPoint at:004576D1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:736 VA:002466E1 Base:2162688 Address: 004576E1 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 525 BreakPoint at:004576E1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:737 VA:002466EE Base:2162688 Address: 004576EE +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 528 BreakPoint at:004576EE +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:738 VA:002466F6 Base:2162688 Address: 004576F6 +Adding breakpoint for DECFormatBase.TDECFormat.Decode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 529 BreakPoint at:004576F6 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:739 VA:00246724 Base:2162688 Address: 00457724 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 534 BreakPoint at:00457724 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:740 VA:00246747 Base:2162688 Address: 00457747 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 535 BreakPoint at:00457747 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:741 VA:0024674D Base:2162688 Address: 0045774D +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 537 BreakPoint at:0045774D +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:742 VA:0024675D Base:2162688 Address: 0045775D +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 538 BreakPoint at:0045775D +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:743 VA:0024676A Base:2162688 Address: 0045776A +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 541 BreakPoint at:0045776A +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:744 VA:00246772 Base:2162688 Address: 00457772 +Adding breakpoint for DECFormatBase.TDECFormat.Encode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 542 BreakPoint at:00457772 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:745 VA:002467A0 Base:2162688 Address: 004577A0 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 545 BreakPoint at:004577A0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:746 VA:002467AF Base:2162688 Address: 004577AF +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 546 BreakPoint at:004577AF +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:747 VA:002467BE Base:2162688 Address: 004577BE +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 547 BreakPoint at:004577BE +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:748 VA:002467C8 Base:2162688 Address: 004577C8 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 550 BreakPoint at:004577C8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:749 VA:002467D4 Base:2162688 Address: 004577D4 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 551 BreakPoint at:004577D4 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:750 VA:00246835 Base:2162688 Address: 00457835 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 552 BreakPoint at:00457835 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:751 VA:0024683C Base:2162688 Address: 0045783C +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 555 BreakPoint at:0045783C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:752 VA:00246848 Base:2162688 Address: 00457848 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 557 BreakPoint at:00457848 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:753 VA:002468B8 Base:2162688 Address: 004578B8 +Adding breakpoint for DECFormatBase.TDECFormat.IsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 563 BreakPoint at:004578B8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:754 VA:002468C0 Base:2162688 Address: 004578C0 +Adding breakpoint for DECFormatBase.TDECFormat.UpCaseBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 566 BreakPoint at:004578C0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:755 VA:002468CC Base:2162688 Address: 004578CC +Adding breakpoint for DECFormatBase.TDECFormat.UpCaseBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 567 BreakPoint at:004578CC +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:756 VA:002468D2 Base:2162688 Address: 004578D2 +Adding breakpoint for DECFormatBase.TDECFormat.UpCaseBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 568 BreakPoint at:004578D2 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:757 VA:002468DB Base:2162688 Address: 004578DB +Adding breakpoint for DECFormatBase.TDECFormat.UpCaseBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 569 BreakPoint at:004578DB +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:758 VA:002468E6 Base:2162688 Address: 004578E6 +Adding breakpoint for DECFormatBase.TDECFormat.UpCaseBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 570 BreakPoint at:004578E6 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:759 VA:002468F0 Base:2162688 Address: 004578F0 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 576 BreakPoint at:004578F0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:760 VA:00246915 Base:2162688 Address: 00457915 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 577 BreakPoint at:00457915 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:761 VA:0024691C Base:2162688 Address: 0045791C +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 578 BreakPoint at:0045791C +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:762 VA:00246923 Base:2162688 Address: 00457923 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 581 BreakPoint at:00457923 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:763 VA:0024693F Base:2162688 Address: 0045793F +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 583 BreakPoint at:0045793F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:764 VA:00246945 Base:2162688 Address: 00457945 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 584 BreakPoint at:00457945 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:765 VA:00246947 Base:2162688 Address: 00457947 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 587 BreakPoint at:00457947 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:766 VA:00246952 Base:2162688 Address: 00457952 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 579 BreakPoint at:00457952 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:767 VA:00246987 Base:2162688 Address: 00457987 +Adding breakpoint for DECFormatBase.TDECFormat.TableFindBinary in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 589 BreakPoint at:00457987 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:768 VA:002469B8 Base:2162688 Address: 004579B8 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoEncode in DECFormatBase.pas +Creating class info for DECFormatBase class TFormat_Copy +TBreakPoint.Activate: +Activate DECFormatBase.pas line 595 BreakPoint at:004579B8 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:769 VA:002469C7 Base:2162688 Address: 004579C7 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 596 BreakPoint at:004579C7 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:770 VA:002469E1 Base:2162688 Address: 004579E1 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 597 BreakPoint at:004579E1 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:771 VA:002469E7 Base:2162688 Address: 004579E7 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 598 BreakPoint at:004579E7 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:772 VA:00246A09 Base:2162688 Address: 00457A09 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoEncode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 599 BreakPoint at:00457A09 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:773 VA:00246A10 Base:2162688 Address: 00457A10 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 603 BreakPoint at:00457A10 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:774 VA:00246A1F Base:2162688 Address: 00457A1F +Adding breakpoint for DECFormatBase.TFormat_Copy.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 604 BreakPoint at:00457A1F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:775 VA:00246A39 Base:2162688 Address: 00457A39 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 605 BreakPoint at:00457A39 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:776 VA:00246A3F Base:2162688 Address: 00457A3F +Adding breakpoint for DECFormatBase.TFormat_Copy.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 606 BreakPoint at:00457A3F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:777 VA:00246A61 Base:2162688 Address: 00457A61 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoDecode in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 607 BreakPoint at:00457A61 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:778 VA:00246A68 Base:2162688 Address: 00457A68 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 610 BreakPoint at:00457A68 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:779 VA:00246A77 Base:2162688 Address: 00457A77 +Adding breakpoint for DECFormatBase.TFormat_Copy.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 611 BreakPoint at:00457A77 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:780 VA:00246A7F Base:2162688 Address: 00457A7F +Adding breakpoint for DECFormatBase.TFormat_Copy.DoIsValid in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 612 BreakPoint at:00457A7F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:781 VA:00246A88 Base:2162688 Address: 00457A88 +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +Creating class info for DECFormatBase class ModuleUnload +TBreakPoint.Activate: +Activate DECFormatBase.pas line 619 BreakPoint at:00457A88 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:782 VA:00246AA4 Base:2162688 Address: 00457AA4 +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 622 BreakPoint at:00457AA4 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:783 VA:00246ACF Base:2162688 Address: 00457ACF +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 625 BreakPoint at:00457ACF +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:784 VA:00246ADC Base:2162688 Address: 00457ADC +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 626 BreakPoint at:00457ADC +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:785 VA:00246B08 Base:2162688 Address: 00457B08 +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 628 BreakPoint at:00457B08 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:786 VA:00246B2F Base:2162688 Address: 00457B2F +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 629 BreakPoint at:00457B2F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:787 VA:00246B56 Base:2162688 Address: 00457B56 +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 630 BreakPoint at:00457B56 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:788 VA:00246B59 Base:2162688 Address: 00457B59 +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 626 BreakPoint at:00457B59 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:789 VA:00246B5F Base:2162688 Address: 00457B5F +Adding breakpoint for DECFormatBase.ModuleUnload in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 632 BreakPoint at:00457B5F +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:790 VA:00246B88 Base:2162688 Address: 00457B88 +Adding breakpoint for DECFormatBase.Finalization in DECFormatBase.pas +Creating class info for DECFormatBase class DECFormatBase +TBreakPoint.Activate: +Activate DECFormatBase.pas line 652 BreakPoint at:00457B88 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:791 VA:00246B9D Base:2162688 Address: 00457B9D +Adding breakpoint for DECFormatBase.Finalization in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 656 BreakPoint at:00457B9D +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:792 VA:00246BA7 Base:2162688 Address: 00457BA7 +Adding breakpoint for DECFormatBase.Finalization in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 657 BreakPoint at:00457BA7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:793 VA:002477A4 Base:2162688 Address: 004587A4 +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_HEX +TBreakPoint.Activate: +Activate DECFormat.pas line 429 BreakPoint at:004587A4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:794 VA:002477B5 Base:2162688 Address: 004587B5 +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 430 BreakPoint at:004587B5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:795 VA:002477CD Base:2162688 Address: 004587CD +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 438 BreakPoint at:004587CD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:796 VA:002477D2 Base:2162688 Address: 004587D2 +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 435 BreakPoint at:004587D2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:797 VA:00247D03 Base:2162688 Address: 00458D03 +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 438 BreakPoint at:00458D03 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:798 VA:00247D1B Base:2162688 Address: 00458D1B +Adding breakpoint for DECFormat.TFormat_HEX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 491 BreakPoint at:00458D1B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:799 VA:00247D20 Base:2162688 Address: 00458D20 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 498 BreakPoint at:00458D20 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:800 VA:00247D43 Base:2162688 Address: 00458D43 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 499 BreakPoint at:00458D43 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:801 VA:00247D4D Base:2162688 Address: 00458D4D +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 500 BreakPoint at:00458D4D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:802 VA:00247D6F Base:2162688 Address: 00458D6F +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 502 BreakPoint at:00458D6F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:803 VA:00247D78 Base:2162688 Address: 00458D78 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 504 BreakPoint at:00458D78 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:804 VA:00247D7E Base:2162688 Address: 00458D7E +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 505 BreakPoint at:00458D7E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:805 VA:00247D83 Base:2162688 Address: 00458D83 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 507 BreakPoint at:00458D83 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:806 VA:00247D8D Base:2162688 Address: 00458D8D +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 509 BreakPoint at:00458D8D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:807 VA:00247DC3 Base:2162688 Address: 00458DC3 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 510 BreakPoint at:00458DC3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:808 VA:00247E06 Base:2162688 Address: 00458E06 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 512 BreakPoint at:00458E06 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:809 VA:00247E0A Base:2162688 Address: 00458E0A +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 513 BreakPoint at:00458E0A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:810 VA:00247E15 Base:2162688 Address: 00458E15 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 514 BreakPoint at:00458E15 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:811 VA:00247E20 Base:2162688 Address: 00458E20 +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 507 BreakPoint at:00458E20 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:812 VA:00247E2A Base:2162688 Address: 00458E2A +Adding breakpoint for DECFormat.TFormat_HEX.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 516 BreakPoint at:00458E2A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:813 VA:00247E58 Base:2162688 Address: 00458E58 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 526 BreakPoint at:00458E58 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:814 VA:00247E7E Base:2162688 Address: 00458E7E +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 527 BreakPoint at:00458E7E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:815 VA:00247E8C Base:2162688 Address: 00458E8C +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 528 BreakPoint at:00458E8C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:816 VA:00247E96 Base:2162688 Address: 00458E96 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 529 BreakPoint at:00458E96 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:817 VA:00247EB7 Base:2162688 Address: 00458EB7 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 531 BreakPoint at:00458EB7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:818 VA:00247EC0 Base:2162688 Address: 00458EC0 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 533 BreakPoint at:00458EC0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:819 VA:00247EC8 Base:2162688 Address: 00458EC8 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 534 BreakPoint at:00458EC8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:820 VA:00247ECE Base:2162688 Address: 00458ECE +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 535 BreakPoint at:00458ECE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:821 VA:00247ED3 Base:2162688 Address: 00458ED3 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 536 BreakPoint at:00458ED3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:822 VA:00247ED7 Base:2162688 Address: 00458ED7 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 537 BreakPoint at:00458ED7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:823 VA:00247EE1 Base:2162688 Address: 00458EE1 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 539 BreakPoint at:00458EE1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:824 VA:00247EF6 Base:2162688 Address: 00458EF6 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 540 BreakPoint at:00458EF6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:825 VA:00247F1B Base:2162688 Address: 00458F1B +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 541 BreakPoint at:00458F1B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:826 VA:00247F21 Base:2162688 Address: 00458F21 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 542 BreakPoint at:00458F21 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:827 VA:00247F52 Base:2162688 Address: 00458F52 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 543 BreakPoint at:00458F52 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:828 VA:00247F56 Base:2162688 Address: 00458F56 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 544 BreakPoint at:00458F56 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:829 VA:00247F5C Base:2162688 Address: 00458F5C +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 545 BreakPoint at:00458F5C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:830 VA:00247F62 Base:2162688 Address: 00458F62 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 547 BreakPoint at:00458F62 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:831 VA:00247F68 Base:2162688 Address: 00458F68 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 549 BreakPoint at:00458F68 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:832 VA:00247F6C Base:2162688 Address: 00458F6C +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 550 BreakPoint at:00458F6C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:833 VA:00247F71 Base:2162688 Address: 00458F71 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 551 BreakPoint at:00458F71 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:834 VA:00247F7B Base:2162688 Address: 00458F7B +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 556 BreakPoint at:00458F7B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:835 VA:00247F81 Base:2162688 Address: 00458F81 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 558 BreakPoint at:00458F81 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:836 VA:00247F9B Base:2162688 Address: 00458F9B +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 559 BreakPoint at:00458F9B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:837 VA:00247FA1 Base:2162688 Address: 00458FA1 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 562 BreakPoint at:00458FA1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:838 VA:00247FB8 Base:2162688 Address: 00458FB8 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 563 BreakPoint at:00458FB8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:839 VA:00247FC3 Base:2162688 Address: 00458FC3 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 565 BreakPoint at:00458FC3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:840 VA:00247FCE Base:2162688 Address: 00458FCE +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 537 BreakPoint at:00458FCE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:841 VA:00247FD8 Base:2162688 Address: 00458FD8 +Adding breakpoint for DECFormat.TFormat_HEX.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 567 BreakPoint at:00458FD8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:842 VA:0024800C Base:2162688 Address: 0045900C +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 573 BreakPoint at:0045900C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:843 VA:0024802F Base:2162688 Address: 0045902F +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 574 BreakPoint at:0045902F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:844 VA:00248035 Base:2162688 Address: 00459035 +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 576 BreakPoint at:00459035 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:845 VA:00248039 Base:2162688 Address: 00459039 +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 577 BreakPoint at:00459039 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:846 VA:00248042 Base:2162688 Address: 00459042 +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 578 BreakPoint at:00459042 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:847 VA:0024804A Base:2162688 Address: 0045904A +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 581 BreakPoint at:0045904A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:848 VA:00248079 Base:2162688 Address: 00459079 +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 583 BreakPoint at:00459079 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:849 VA:0024807D Base:2162688 Address: 0045907D +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 584 BreakPoint at:0045907D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:850 VA:0024808A Base:2162688 Address: 0045908A +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 587 BreakPoint at:0045908A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:851 VA:0024808E Base:2162688 Address: 0045908E +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 579 BreakPoint at:0045908E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:852 VA:0024809C Base:2162688 Address: 0045909C +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 591 BreakPoint at:0045909C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:853 VA:002480A0 Base:2162688 Address: 004590A0 +Adding breakpoint for DECFormat.TFormat_HEX.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 592 BreakPoint at:004590A0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:854 VA:002480D0 Base:2162688 Address: 004590D0 +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_HEXL +TBreakPoint.Activate: +Activate DECFormat.pas line 595 BreakPoint at:004590D0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:855 VA:002480E1 Base:2162688 Address: 004590E1 +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 596 BreakPoint at:004590E1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:856 VA:002480F9 Base:2162688 Address: 004590F9 +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 604 BreakPoint at:004590F9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:857 VA:002480FE Base:2162688 Address: 004590FE +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 601 BreakPoint at:004590FE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:858 VA:0024862F Base:2162688 Address: 0045962F +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 604 BreakPoint at:0045962F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:859 VA:00248647 Base:2162688 Address: 00459647 +Adding breakpoint for DECFormat.TFormat_HEXL.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 657 BreakPoint at:00459647 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:860 VA:0024864C Base:2162688 Address: 0045964C +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_DECMIME32 +TBreakPoint.Activate: +Activate DECFormat.pas line 660 BreakPoint at:0045964C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:861 VA:0024865D Base:2162688 Address: 0045965D +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 663 BreakPoint at:0045965D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:862 VA:00248675 Base:2162688 Address: 00459675 +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 667 BreakPoint at:00459675 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:863 VA:0024867A Base:2162688 Address: 0045967A +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 664 BreakPoint at:0045967A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:864 VA:00248C2D Base:2162688 Address: 00459C2D +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 667 BreakPoint at:00459C2D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:865 VA:00248C45 Base:2162688 Address: 00459C45 +Adding breakpoint for DECFormat.TFormat_DECMIME32.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 668 BreakPoint at:00459C45 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:866 VA:00248C4C Base:2162688 Address: 00459C4C +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 676 BreakPoint at:00459C4C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:867 VA:00248C72 Base:2162688 Address: 00459C72 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 677 BreakPoint at:00459C72 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:868 VA:00248C80 Base:2162688 Address: 00459C80 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 678 BreakPoint at:00459C80 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:869 VA:00248C8A Base:2162688 Address: 00459C8A +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 689 BreakPoint at:00459C8A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:870 VA:00248CAE Base:2162688 Address: 00459CAE +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 690 BreakPoint at:00459CAE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:871 VA:00248CCE Base:2162688 Address: 00459CCE +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 691 BreakPoint at:00459CCE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:872 VA:00248D07 Base:2162688 Address: 00459D07 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 693 BreakPoint at:00459D07 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:873 VA:00248D15 Base:2162688 Address: 00459D15 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 694 BreakPoint at:00459D15 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:874 VA:00248D41 Base:2162688 Address: 00459D41 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 696 BreakPoint at:00459D41 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:875 VA:00248D5C Base:2162688 Address: 00459D5C +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 697 BreakPoint at:00459D5C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:876 VA:00248D65 Base:2162688 Address: 00459D65 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 698 BreakPoint at:00459D65 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:877 VA:00248D7E Base:2162688 Address: 00459D7E +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 700 BreakPoint at:00459D7E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:878 VA:00248D88 Base:2162688 Address: 00459D88 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 701 BreakPoint at:00459D88 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:879 VA:00248D90 Base:2162688 Address: 00459D90 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 703 BreakPoint at:00459D90 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:880 VA:00248DC1 Base:2162688 Address: 00459DC1 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 705 BreakPoint at:00459DC1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:881 VA:00248DC5 Base:2162688 Address: 00459DC5 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 706 BreakPoint at:00459DC5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:882 VA:00248DD0 Base:2162688 Address: 00459DD0 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 708 BreakPoint at:00459DD0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:883 VA:00248DDB Base:2162688 Address: 00459DDB +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 701 BreakPoint at:00459DDB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:884 VA:00248DE3 Base:2162688 Address: 00459DE3 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 711 BreakPoint at:00459DE3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:885 VA:00248DFD Base:2162688 Address: 00459DFD +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 712 BreakPoint at:00459DFD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:886 VA:00248E0B Base:2162688 Address: 00459E0B +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 713 BreakPoint at:00459E0B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:887 VA:00248E3C Base:2162688 Address: 00459E3C +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 719 BreakPoint at:00459E3C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:888 VA:00248E5F Base:2162688 Address: 00459E5F +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 720 BreakPoint at:00459E5F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:889 VA:00248E63 Base:2162688 Address: 00459E63 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 721 BreakPoint at:00459E63 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:890 VA:00248E6C Base:2162688 Address: 00459E6C +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 722 BreakPoint at:00459E6C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:891 VA:00248E74 Base:2162688 Address: 00459E74 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 725 BreakPoint at:00459E74 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:892 VA:00248EA3 Base:2162688 Address: 00459EA3 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 727 BreakPoint at:00459EA3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:893 VA:00248EA7 Base:2162688 Address: 00459EA7 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 728 BreakPoint at:00459EA7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:894 VA:00248EB4 Base:2162688 Address: 00459EB4 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 731 BreakPoint at:00459EB4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:895 VA:00248EB8 Base:2162688 Address: 00459EB8 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 723 BreakPoint at:00459EB8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:896 VA:00248EC4 Base:2162688 Address: 00459EC4 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 733 BreakPoint at:00459EC4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:897 VA:00248EF4 Base:2162688 Address: 00459EF4 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 741 BreakPoint at:00459EF4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:898 VA:00248F17 Base:2162688 Address: 00459F17 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 742 BreakPoint at:00459F17 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:899 VA:00248F25 Base:2162688 Address: 00459F25 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 743 BreakPoint at:00459F25 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:900 VA:00248F2F Base:2162688 Address: 00459F2F +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 746 BreakPoint at:00459F2F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:901 VA:00248F3D Base:2162688 Address: 00459F3D +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 747 BreakPoint at:00459F3D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:902 VA:00248F61 Base:2162688 Address: 00459F61 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 749 BreakPoint at:00459F61 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:903 VA:00248F6A Base:2162688 Address: 00459F6A +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 750 BreakPoint at:00459F6A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:904 VA:00248F70 Base:2162688 Address: 00459F70 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 751 BreakPoint at:00459F70 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:905 VA:00248F8B Base:2162688 Address: 00459F8B +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 753 BreakPoint at:00459F8B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:906 VA:00248FB1 Base:2162688 Address: 00459FB1 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 754 BreakPoint at:00459FB1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:907 VA:00248FB6 Base:2162688 Address: 00459FB6 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 756 BreakPoint at:00459FB6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:908 VA:00248FC2 Base:2162688 Address: 00459FC2 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 758 BreakPoint at:00459FC2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:909 VA:00248FD7 Base:2162688 Address: 00459FD7 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 759 BreakPoint at:00459FD7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:910 VA:00248FDD Base:2162688 Address: 00459FDD +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 760 BreakPoint at:00459FDD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:911 VA:00248FFC Base:2162688 Address: 00459FFC +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 761 BreakPoint at:00459FFC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:912 VA:00249002 Base:2162688 Address: 0045A002 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 763 BreakPoint at:0045A002 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:913 VA:00249035 Base:2162688 Address: 0045A035 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 764 BreakPoint at:0045A035 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:914 VA:00249042 Base:2162688 Address: 0045A042 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 767 BreakPoint at:0045A042 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:915 VA:0024904D Base:2162688 Address: 0045A04D +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 768 BreakPoint at:0045A04D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:916 VA:00249051 Base:2162688 Address: 0045A051 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 756 BreakPoint at:0045A051 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:917 VA:0024905D Base:2162688 Address: 0045A05D +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 771 BreakPoint at:0045A05D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:918 VA:00249081 Base:2162688 Address: 0045A081 +Adding breakpoint for DECFormat.TFormat_DECMIME32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 772 BreakPoint at:0045A081 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:919 VA:002490B0 Base:2162688 Address: 0045A0B0 +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_Base64 +TBreakPoint.Activate: +Activate DECFormat.pas line 775 BreakPoint at:0045A0B0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:920 VA:002490C1 Base:2162688 Address: 0045A0C1 +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 778 BreakPoint at:0045A0C1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:921 VA:002490D9 Base:2162688 Address: 0045A0D9 +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 786 BreakPoint at:0045A0D9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:922 VA:002490DE Base:2162688 Address: 0045A0DE +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 780 BreakPoint at:0045A0DE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:923 VA:002499D1 Base:2162688 Address: 0045A9D1 +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 786 BreakPoint at:0045A9D1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:924 VA:002499E9 Base:2162688 Address: 0045A9E9 +Adding breakpoint for DECFormat.TFormat_Base64.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 787 BreakPoint at:0045A9E9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:925 VA:002499F0 Base:2162688 Address: 0045A9F0 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 797 BreakPoint at:0045A9F0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:926 VA:00249A13 Base:2162688 Address: 0045AA13 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 798 BreakPoint at:0045AA13 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:927 VA:00249A21 Base:2162688 Address: 0045AA21 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 799 BreakPoint at:0045AA21 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:928 VA:00249A2B Base:2162688 Address: 0045AA2B +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 802 BreakPoint at:0045AA2B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:929 VA:00249A5F Base:2162688 Address: 0045AA5F +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 804 BreakPoint at:0045AA5F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:930 VA:00249A68 Base:2162688 Address: 0045AA68 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 805 BreakPoint at:0045AA68 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:931 VA:00249A6E Base:2162688 Address: 0045AA6E +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 806 BreakPoint at:0045AA6E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:932 VA:00249A89 Base:2162688 Address: 0045AA89 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 808 BreakPoint at:0045AA89 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:933 VA:00249A8E Base:2162688 Address: 0045AA8E +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 809 BreakPoint at:0045AA8E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:934 VA:00249A98 Base:2162688 Address: 0045AA98 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 811 BreakPoint at:0045AA98 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:935 VA:00249AA3 Base:2162688 Address: 0045AAA3 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 812 BreakPoint at:0045AAA3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:936 VA:00249AC4 Base:2162688 Address: 0045AAC4 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 813 BreakPoint at:0045AAC4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:937 VA:00249AE6 Base:2162688 Address: 0045AAE6 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 814 BreakPoint at:0045AAE6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:938 VA:00249B09 Base:2162688 Address: 0045AB09 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 815 BreakPoint at:0045AB09 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:939 VA:00249B2C Base:2162688 Address: 0045AB2C +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 816 BreakPoint at:0045AB2C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:940 VA:00249B4C Base:2162688 Address: 0045AB4C +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 817 BreakPoint at:0045AB4C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:941 VA:00249B50 Base:2162688 Address: 0045AB50 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 818 BreakPoint at:0045AB50 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:942 VA:00249B59 Base:2162688 Address: 0045AB59 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 819 BreakPoint at:0045AB59 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:943 VA:00249B64 Base:2162688 Address: 0045AB64 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 809 BreakPoint at:0045AB64 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:944 VA:00249B6E Base:2162688 Address: 0045AB6E +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 822 BreakPoint at:0045AB6E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:945 VA:00249B78 Base:2162688 Address: 0045AB78 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 824 BreakPoint at:0045AB78 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:946 VA:00249B7D Base:2162688 Address: 0045AB7D +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 825 BreakPoint at:0045AB7D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:947 VA:00249B82 Base:2162688 Address: 0045AB82 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 827 BreakPoint at:0045AB82 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:948 VA:00249B86 Base:2162688 Address: 0045AB86 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 828 BreakPoint at:0045AB86 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:949 VA:00249B8C Base:2162688 Address: 0045AB8C +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 830 BreakPoint at:0045AB8C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:950 VA:00249B95 Base:2162688 Address: 0045AB95 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 831 BreakPoint at:0045AB95 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:951 VA:00249B9C Base:2162688 Address: 0045AB9C +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 833 BreakPoint at:0045AB9C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:952 VA:00249BA7 Base:2162688 Address: 0045ABA7 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 834 BreakPoint at:0045ABA7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:953 VA:00249BAA Base:2162688 Address: 0045ABAA +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 825 BreakPoint at:0045ABAA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:954 VA:00249BB0 Base:2162688 Address: 0045ABB0 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 835 BreakPoint at:0045ABB0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:955 VA:00249BB7 Base:2162688 Address: 0045ABB7 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 837 BreakPoint at:0045ABB7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:956 VA:00249BBD Base:2162688 Address: 0045ABBD +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 839 BreakPoint at:0045ABBD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:957 VA:00249BDF Base:2162688 Address: 0045ABDF +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 840 BreakPoint at:0045ABDF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:958 VA:00249BEC Base:2162688 Address: 0045ABEC +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 843 BreakPoint at:0045ABEC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:959 VA:00249C0F Base:2162688 Address: 0045AC0F +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 844 BreakPoint at:0045AC0F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:960 VA:00249C13 Base:2162688 Address: 0045AC13 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 845 BreakPoint at:0045AC13 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:961 VA:00249C16 Base:2162688 Address: 0045AC16 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 835 BreakPoint at:0045AC16 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:962 VA:00249C1C Base:2162688 Address: 0045AC1C +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 846 BreakPoint at:0045AC1C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:963 VA:00249C20 Base:2162688 Address: 0045AC20 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 847 BreakPoint at:0045AC20 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:964 VA:00249C2B Base:2162688 Address: 0045AC2B +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 822 BreakPoint at:0045AC2B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:965 VA:00249C35 Base:2162688 Address: 0045AC35 +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 851 BreakPoint at:0045AC35 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:966 VA:00249C4F Base:2162688 Address: 0045AC4F +Adding breakpoint for DECFormat.TFormat_Base64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 852 BreakPoint at:0045AC4F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:967 VA:00249C7C Base:2162688 Address: 0045AC7C +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 861 BreakPoint at:0045AC7C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:968 VA:00249C9F Base:2162688 Address: 0045AC9F +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 862 BreakPoint at:0045AC9F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:969 VA:00249CAD Base:2162688 Address: 0045ACAD +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 863 BreakPoint at:0045ACAD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:970 VA:00249CB7 Base:2162688 Address: 0045ACB7 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 866 BreakPoint at:0045ACB7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:971 VA:00249CD1 Base:2162688 Address: 0045ACD1 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 868 BreakPoint at:0045ACD1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:972 VA:00249CDA Base:2162688 Address: 0045ACDA +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 869 BreakPoint at:0045ACDA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:973 VA:00249CE0 Base:2162688 Address: 0045ACE0 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 870 BreakPoint at:0045ACE0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:974 VA:00249CFB Base:2162688 Address: 0045ACFB +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 872 BreakPoint at:0045ACFB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:975 VA:00249D1D Base:2162688 Address: 0045AD1D +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 874 BreakPoint at:0045AD1D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:976 VA:00249D26 Base:2162688 Address: 0045AD26 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 875 BreakPoint at:0045AD26 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:977 VA:00249D2B Base:2162688 Address: 0045AD2B +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 876 BreakPoint at:0045AD2B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:978 VA:00249D30 Base:2162688 Address: 0045AD30 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 877 BreakPoint at:0045AD30 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:979 VA:00249D3C Base:2162688 Address: 0045AD3C +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 879 BreakPoint at:0045AD3C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:980 VA:00249D41 Base:2162688 Address: 0045AD41 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 880 BreakPoint at:0045AD41 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:981 VA:00249D4A Base:2162688 Address: 0045AD4A +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 883 BreakPoint at:0045AD4A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:982 VA:00249D5F Base:2162688 Address: 0045AD5F +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 884 BreakPoint at:0045AD5F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:983 VA:00249D63 Base:2162688 Address: 0045AD63 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 885 BreakPoint at:0045AD63 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:984 VA:00249D69 Base:2162688 Address: 0045AD69 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 887 BreakPoint at:0045AD69 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:985 VA:00249D6F Base:2162688 Address: 0045AD6F +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 889 BreakPoint at:0045AD6F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:986 VA:00249D82 Base:2162688 Address: 0045AD82 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 890 BreakPoint at:0045AD82 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:987 VA:00249D8F Base:2162688 Address: 0045AD8F +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 893 BreakPoint at:0045AD8F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:988 VA:00249D95 Base:2162688 Address: 0045AD95 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 881 BreakPoint at:0045AD95 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:989 VA:00249DA3 Base:2162688 Address: 0045ADA3 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 896 BreakPoint at:0045ADA3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:990 VA:00249DA9 Base:2162688 Address: 0045ADA9 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 898 BreakPoint at:0045ADA9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:991 VA:00249DAF Base:2162688 Address: 0045ADAF +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 900 BreakPoint at:0045ADAF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:992 VA:00249DB4 Base:2162688 Address: 0045ADB4 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 901 BreakPoint at:0045ADB4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:993 VA:00249DB6 Base:2162688 Address: 0045ADB6 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 904 BreakPoint at:0045ADB6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:994 VA:00249DC4 Base:2162688 Address: 0045ADC4 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 906 BreakPoint at:0045ADC4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:995 VA:00249DCB Base:2162688 Address: 0045ADCB +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 907 BreakPoint at:0045ADCB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:996 VA:00249DD1 Base:2162688 Address: 0045ADD1 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 909 BreakPoint at:0045ADD1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:997 VA:00249DDD Base:2162688 Address: 0045ADDD +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 910 BreakPoint at:0045ADDD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:998 VA:00249DE1 Base:2162688 Address: 0045ADE1 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 911 BreakPoint at:0045ADE1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:999 VA:00249DEC Base:2162688 Address: 0045ADEC +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 907 BreakPoint at:0045ADEC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1000 VA:00249DF2 Base:2162688 Address: 0045ADF2 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 913 BreakPoint at:0045ADF2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1001 VA:00249DF6 Base:2162688 Address: 0045ADF6 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 914 BreakPoint at:0045ADF6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1002 VA:00249E01 Base:2162688 Address: 0045AE01 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 877 BreakPoint at:0045AE01 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1003 VA:00249E0D Base:2162688 Address: 0045AE0D +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 917 BreakPoint at:0045AE0D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1004 VA:00249E31 Base:2162688 Address: 0045AE31 +Adding breakpoint for DECFormat.TFormat_Base64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 918 BreakPoint at:0045AE31 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1005 VA:00249E60 Base:2162688 Address: 0045AE60 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 923 BreakPoint at:0045AE60 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1006 VA:00249E6F Base:2162688 Address: 0045AE6F +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 924 BreakPoint at:0045AE6F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1007 VA:00249E73 Base:2162688 Address: 0045AE73 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 925 BreakPoint at:0045AE73 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1008 VA:00249E7B Base:2162688 Address: 0045AE7B +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 929 BreakPoint at:0045AE7B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1009 VA:00249E9F Base:2162688 Address: 0045AE9F +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 931 BreakPoint at:0045AE9F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1010 VA:00249EA3 Base:2162688 Address: 0045AEA3 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 932 BreakPoint at:0045AEA3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1011 VA:00249EB0 Base:2162688 Address: 0045AEB0 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 935 BreakPoint at:0045AEB0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1012 VA:00249EB4 Base:2162688 Address: 0045AEB4 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 926 BreakPoint at:0045AEB4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1013 VA:00249EC0 Base:2162688 Address: 0045AEC0 +Adding breakpoint for DECFormat.TFormat_Base64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 937 BreakPoint at:0045AEC0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1014 VA:00249ED8 Base:2162688 Address: 0045AED8 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +Creating class info for DECFormat class TFormat_Radix64 +TBreakPoint.Activate: +Activate DECFormat.pas line 944 BreakPoint at:0045AED8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1015 VA:00249F00 Base:2162688 Address: 0045AF00 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 945 BreakPoint at:0045AF00 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1016 VA:00249F07 Base:2162688 Address: 0045AF07 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 946 BreakPoint at:0045AF07 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1017 VA:00249F2C Base:2162688 Address: 0045AF2C +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 947 BreakPoint at:0045AF2C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1018 VA:00249F39 Base:2162688 Address: 0045AF39 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 950 BreakPoint at:0045AF39 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1019 VA:00249F43 Base:2162688 Address: 0045AF43 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 953 BreakPoint at:0045AF43 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1020 VA:00249F47 Base:2162688 Address: 0045AF47 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 948 BreakPoint at:0045AF47 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1021 VA:00249F4F Base:2162688 Address: 0045AF4F +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 955 BreakPoint at:0045AF4F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1022 VA:00249F75 Base:2162688 Address: 0045AF75 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 956 BreakPoint at:0045AF75 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1023 VA:00249F83 Base:2162688 Address: 0045AF83 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 957 BreakPoint at:0045AF83 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1024 VA:00249F87 Base:2162688 Address: 0045AF87 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 958 BreakPoint at:0045AF87 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1025 VA:00249FB3 Base:2162688 Address: 0045AFB3 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 959 BreakPoint at:0045AFB3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1026 VA:00249FD0 Base:2162688 Address: 0045AFD0 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 961 BreakPoint at:0045AFD0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1027 VA:00249FD5 Base:2162688 Address: 0045AFD5 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 962 BreakPoint at:0045AFD5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1028 VA:00249FF8 Base:2162688 Address: 0045AFF8 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 963 BreakPoint at:0045AFF8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1029 VA:0024A01B Base:2162688 Address: 0045B01B +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 966 BreakPoint at:0045B01B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1030 VA:0024A020 Base:2162688 Address: 0045B020 +Adding breakpoint for DECFormat.TFormat_Radix64.DoExtractCRC in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 967 BreakPoint at:0045B020 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1031 VA:0024A060 Base:2162688 Address: 0045B060 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 973 BreakPoint at:0045B060 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1032 VA:0024A083 Base:2162688 Address: 0045B083 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 975 BreakPoint at:0045B083 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1033 VA:0024A096 Base:2162688 Address: 0045B096 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 978 BreakPoint at:0045B096 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1034 VA:0024A0A0 Base:2162688 Address: 0045B0A0 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 980 BreakPoint at:0045B0A0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1035 VA:0024A0B1 Base:2162688 Address: 0045B0B1 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 983 BreakPoint at:0045B0B1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1036 VA:0024A0C3 Base:2162688 Address: 0045B0C3 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 985 BreakPoint at:0045B0C3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1037 VA:0024A0C9 Base:2162688 Address: 0045B0C9 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 988 BreakPoint at:0045B0C9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1038 VA:0024A0D6 Base:2162688 Address: 0045B0D6 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 989 BreakPoint at:0045B0D6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1039 VA:0024A11E Base:2162688 Address: 0045B11E +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 992 BreakPoint at:0045B11E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1040 VA:0024A122 Base:2162688 Address: 0045B122 +Adding breakpoint for DECFormat.TFormat_Radix64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 994 BreakPoint at:0045B122 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1041 VA:0024A150 Base:2162688 Address: 0045B150 +Adding breakpoint for DECFormat.TFormat_Radix64.GetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 997 BreakPoint at:0045B150 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1042 VA:0024A159 Base:2162688 Address: 0045B159 +Adding breakpoint for DECFormat.TFormat_Radix64.GetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 998 BreakPoint at:0045B159 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1043 VA:0024A161 Base:2162688 Address: 0045B161 +Adding breakpoint for DECFormat.TFormat_Radix64.GetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 999 BreakPoint at:0045B161 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1044 VA:0024A168 Base:2162688 Address: 0045B168 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1005 BreakPoint at:0045B168 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1045 VA:0024A177 Base:2162688 Address: 0045B177 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1006 BreakPoint at:0045B177 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1046 VA:0024A194 Base:2162688 Address: 0045B194 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1007 BreakPoint at:0045B194 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1047 VA:0024A1A2 Base:2162688 Address: 0045B1A2 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1009 BreakPoint at:0045B1A2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1048 VA:0024A1BC Base:2162688 Address: 0045B1BC +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1010 BreakPoint at:0045B1BC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1049 VA:0024A1F1 Base:2162688 Address: 0045B1F1 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1011 BreakPoint at:0045B1F1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1050 VA:0024A1F6 Base:2162688 Address: 0045B1F6 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1014 BreakPoint at:0045B1F6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1051 VA:0024A230 Base:2162688 Address: 0045B230 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1016 BreakPoint at:0045B230 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1052 VA:0024A249 Base:2162688 Address: 0045B249 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1017 BreakPoint at:0045B249 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1053 VA:0024A264 Base:2162688 Address: 0045B264 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1020 BreakPoint at:0045B264 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1054 VA:0024A272 Base:2162688 Address: 0045B272 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1021 BreakPoint at:0045B272 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1055 VA:0024A278 Base:2162688 Address: 0045B278 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1022 BreakPoint at:0045B278 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1056 VA:0024A27E Base:2162688 Address: 0045B27E +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1023 BreakPoint at:0045B27E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1057 VA:0024A284 Base:2162688 Address: 0045B284 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1024 BreakPoint at:0045B284 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1058 VA:0024A288 Base:2162688 Address: 0045B288 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1025 BreakPoint at:0045B288 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1059 VA:0024A28E Base:2162688 Address: 0045B28E +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1026 BreakPoint at:0045B28E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1060 VA:0024A292 Base:2162688 Address: 0045B292 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1027 BreakPoint at:0045B292 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1061 VA:0024A29F Base:2162688 Address: 0045B29F +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1028 BreakPoint at:0045B29F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1062 VA:0024A2A7 Base:2162688 Address: 0045B2A7 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1030 BreakPoint at:0045B2A7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1063 VA:0024A2B5 Base:2162688 Address: 0045B2B5 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1031 BreakPoint at:0045B2B5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1064 VA:0024A2BB Base:2162688 Address: 0045B2BB +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1033 BreakPoint at:0045B2BB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1065 VA:0024A2E1 Base:2162688 Address: 0045B2E1 +Adding breakpoint for DECFormat.TFormat_Radix64.InsertCRLF in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1034 BreakPoint at:0045B2E1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1066 VA:0024A2E8 Base:2162688 Address: 0045B2E8 +Adding breakpoint for DECFormat.TFormat_Radix64.SetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1037 BreakPoint at:0045B2E8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1067 VA:0024A30A Base:2162688 Address: 0045B30A +Adding breakpoint for DECFormat.TFormat_Radix64.SetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1038 BreakPoint at:0045B30A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1068 VA:0024A310 Base:2162688 Address: 0045B310 +Adding breakpoint for DECFormat.TFormat_Radix64.SetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1039 BreakPoint at:0045B310 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1069 VA:0024A31A Base:2162688 Address: 0045B31A +Adding breakpoint for DECFormat.TFormat_Radix64.SetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1041 BreakPoint at:0045B31A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1070 VA:0024A34D Base:2162688 Address: 0045B34D +Adding breakpoint for DECFormat.TFormat_Radix64.SetCharsPerLine in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1043 BreakPoint at:0045B34D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1071 VA:0024A3CC Base:2162688 Address: 0045B3CC +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1051 BreakPoint at:0045B3CC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1072 VA:0024A3F2 Base:2162688 Address: 0045B3F2 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1052 BreakPoint at:0045B3F2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1073 VA:0024A400 Base:2162688 Address: 0045B400 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1053 BreakPoint at:0045B400 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1074 VA:0024A40A Base:2162688 Address: 0045B40A +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1057 BreakPoint at:0045B40A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1075 VA:0024A41C Base:2162688 Address: 0045B41C +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1060 BreakPoint at:0045B41C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1076 VA:0024A439 Base:2162688 Address: 0045B439 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1061 BreakPoint at:0045B439 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1077 VA:0024A447 Base:2162688 Address: 0045B447 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1063 BreakPoint at:0045B447 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1078 VA:0024A460 Base:2162688 Address: 0045B460 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1064 BreakPoint at:0045B460 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1079 VA:0024A46D Base:2162688 Address: 0045B46D +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1067 BreakPoint at:0045B46D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1080 VA:0024A496 Base:2162688 Address: 0045B496 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1068 BreakPoint at:0045B496 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1081 VA:0024A4B6 Base:2162688 Address: 0045B4B6 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1071 BreakPoint at:0045B4B6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1082 VA:0024A4D5 Base:2162688 Address: 0045B4D5 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1072 BreakPoint at:0045B4D5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1083 VA:0024A4F9 Base:2162688 Address: 0045B4F9 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1073 BreakPoint at:0045B4F9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1084 VA:0024A513 Base:2162688 Address: 0045B513 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1074 BreakPoint at:0045B513 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1085 VA:0024A537 Base:2162688 Address: 0045B537 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1078 BreakPoint at:0045B537 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1086 VA:0024A547 Base:2162688 Address: 0045B547 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1081 BreakPoint at:0045B547 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1087 VA:0024A56E Base:2162688 Address: 0045B56E +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1082 BreakPoint at:0045B56E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1088 VA:0024A57F Base:2162688 Address: 0045B57F +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1085 BreakPoint at:0045B57F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1089 VA:0024A59E Base:2162688 Address: 0045B59E +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1086 BreakPoint at:0045B59E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1090 VA:0024A5E9 Base:2162688 Address: 0045B5E9 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1087 BreakPoint at:0045B5E9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1091 VA:0024A603 Base:2162688 Address: 0045B603 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1088 BreakPoint at:0045B603 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1092 VA:0024A660 Base:2162688 Address: 0045B660 +Adding breakpoint for DECFormat.TFormat_Radix64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1089 BreakPoint at:0045B660 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1093 VA:0024A69C Base:2162688 Address: 0045B69C +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1094 BreakPoint at:0045B69C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1094 VA:0024A6BF Base:2162688 Address: 0045B6BF +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1095 BreakPoint at:0045B6BF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1095 VA:0024A6CD Base:2162688 Address: 0045B6CD +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1096 BreakPoint at:0045B6CD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1096 VA:0024A6D7 Base:2162688 Address: 0045B6D7 +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1099 BreakPoint at:0045B6D7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1097 VA:0024A6E8 Base:2162688 Address: 0045B6E8 +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1100 BreakPoint at:0045B6E8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1098 VA:0024A6FA Base:2162688 Address: 0045B6FA +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1102 BreakPoint at:0045B6FA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1099 VA:0024A704 Base:2162688 Address: 0045B704 +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1104 BreakPoint at:0045B704 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1100 VA:0024A711 Base:2162688 Address: 0045B711 +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1105 BreakPoint at:0045B711 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1101 VA:0024A759 Base:2162688 Address: 0045B759 +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1106 BreakPoint at:0045B759 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1102 VA:0024A78A Base:2162688 Address: 0045B78A +Adding breakpoint for DECFormat.TFormat_Radix64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1108 BreakPoint at:0045B78A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1103 VA:0024A7B0 Base:2162688 Address: 0045B7B0 +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_UU +TBreakPoint.Activate: +Activate DECFormat.pas line 1111 BreakPoint at:0045B7B0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1104 VA:0024A7C1 Base:2162688 Address: 0045B7C1 +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1115 BreakPoint at:0045B7C1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1105 VA:0024A7D9 Base:2162688 Address: 0045B7D9 +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1122 BreakPoint at:0045B7D9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1106 VA:0024A7DE Base:2162688 Address: 0045B7DE +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1117 BreakPoint at:0045B7DE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1107 VA:0024AF17 Base:2162688 Address: 0045BF17 +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1122 BreakPoint at:0045BF17 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1108 VA:0024AF2F Base:2162688 Address: 0045BF2F +Adding breakpoint for DECFormat.TFormat_UU.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1200 BreakPoint at:0045BF2F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1109 VA:0024AF34 Base:2162688 Address: 0045BF34 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1209 BreakPoint at:0045BF34 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1110 VA:0024AF57 Base:2162688 Address: 0045BF57 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1210 BreakPoint at:0045BF57 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1111 VA:0024AF65 Base:2162688 Address: 0045BF65 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1211 BreakPoint at:0045BF65 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1112 VA:0024AF6F Base:2162688 Address: 0045BF6F +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1214 BreakPoint at:0045BF6F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1113 VA:0024AFB9 Base:2162688 Address: 0045BFB9 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1216 BreakPoint at:0045BFB9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1114 VA:0024AFC2 Base:2162688 Address: 0045BFC2 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1217 BreakPoint at:0045BFC2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1115 VA:0024AFC8 Base:2162688 Address: 0045BFC8 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1218 BreakPoint at:0045BFC8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1116 VA:0024AFE3 Base:2162688 Address: 0045BFE3 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1220 BreakPoint at:0045BFE3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1117 VA:0024AFED Base:2162688 Address: 0045BFED +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1222 BreakPoint at:0045BFED +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1118 VA:0024AFF3 Base:2162688 Address: 0045BFF3 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1223 BreakPoint at:0045BFF3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1119 VA:0024AFF9 Base:2162688 Address: 0045BFF9 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1224 BreakPoint at:0045BFF9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1120 VA:0024B000 Base:2162688 Address: 0045C000 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1225 BreakPoint at:0045C000 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1121 VA:0024B00D Base:2162688 Address: 0045C00D +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1226 BreakPoint at:0045C00D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1122 VA:0024B029 Base:2162688 Address: 0045C029 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1227 BreakPoint at:0045C029 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1123 VA:0024B02F Base:2162688 Address: 0045C02F +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1229 BreakPoint at:0045C02F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1124 VA:0024B034 Base:2162688 Address: 0045C034 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1230 BreakPoint at:0045C034 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1125 VA:0024B039 Base:2162688 Address: 0045C039 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1232 BreakPoint at:0045C039 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1126 VA:0024B03D Base:2162688 Address: 0045C03D +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1233 BreakPoint at:0045C03D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1127 VA:0024B043 Base:2162688 Address: 0045C043 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1235 BreakPoint at:0045C043 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1128 VA:0024B04C Base:2162688 Address: 0045C04C +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1236 BreakPoint at:0045C04C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1129 VA:0024B050 Base:2162688 Address: 0045C050 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1238 BreakPoint at:0045C050 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1130 VA:0024B05B Base:2162688 Address: 0045C05B +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1239 BreakPoint at:0045C05B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1131 VA:0024B05E Base:2162688 Address: 0045C05E +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1230 BreakPoint at:0045C05E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1132 VA:0024B064 Base:2162688 Address: 0045C064 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1240 BreakPoint at:0045C064 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1133 VA:0024B06B Base:2162688 Address: 0045C06B +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1242 BreakPoint at:0045C06B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1134 VA:0024B08E Base:2162688 Address: 0045C08E +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1243 BreakPoint at:0045C08E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1135 VA:0024B092 Base:2162688 Address: 0045C092 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1244 BreakPoint at:0045C092 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1136 VA:0024B095 Base:2162688 Address: 0045C095 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1240 BreakPoint at:0045C095 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1137 VA:0024B09B Base:2162688 Address: 0045C09B +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1245 BreakPoint at:0045C09B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1138 VA:0024B09F Base:2162688 Address: 0045C09F +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1227 BreakPoint at:0045C09F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1139 VA:0024B0A5 Base:2162688 Address: 0045C0A5 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1247 BreakPoint at:0045C0A5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1140 VA:0024B0A9 Base:2162688 Address: 0045C0A9 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1220 BreakPoint at:0045C0A9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1141 VA:0024B0B3 Base:2162688 Address: 0045C0B3 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1250 BreakPoint at:0045C0B3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1142 VA:0024B0D9 Base:2162688 Address: 0045C0D9 +Adding breakpoint for DECFormat.TFormat_UU.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1251 BreakPoint at:0045C0D9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1143 VA:0024B108 Base:2162688 Address: 0045C108 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1260 BreakPoint at:0045C108 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1144 VA:0024B12E Base:2162688 Address: 0045C12E +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1261 BreakPoint at:0045C12E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1145 VA:0024B13C Base:2162688 Address: 0045C13C +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1262 BreakPoint at:0045C13C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1146 VA:0024B146 Base:2162688 Address: 0045C146 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1265 BreakPoint at:0045C146 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1147 VA:0024B160 Base:2162688 Address: 0045C160 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1267 BreakPoint at:0045C160 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1148 VA:0024B169 Base:2162688 Address: 0045C169 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1268 BreakPoint at:0045C169 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1149 VA:0024B16F Base:2162688 Address: 0045C16F +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1269 BreakPoint at:0045C16F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1150 VA:0024B18A Base:2162688 Address: 0045C18A +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1271 BreakPoint at:0045C18A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1151 VA:0024B193 Base:2162688 Address: 0045C193 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1274 BreakPoint at:0045C193 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1152 VA:0024B1A8 Base:2162688 Address: 0045C1A8 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1275 BreakPoint at:0045C1A8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1153 VA:0024B1B4 Base:2162688 Address: 0045C1B4 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1276 BreakPoint at:0045C1B4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1154 VA:0024B1E5 Base:2162688 Address: 0045C1E5 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1277 BreakPoint at:0045C1E5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1155 VA:0024B1E9 Base:2162688 Address: 0045C1E9 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1278 BreakPoint at:0045C1E9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1156 VA:0024B1F3 Base:2162688 Address: 0045C1F3 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1280 BreakPoint at:0045C1F3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1157 VA:0024B1F8 Base:2162688 Address: 0045C1F8 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1281 BreakPoint at:0045C1F8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1158 VA:0024B201 Base:2162688 Address: 0045C201 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1284 BreakPoint at:0045C201 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1159 VA:0024B216 Base:2162688 Address: 0045C216 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1285 BreakPoint at:0045C216 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1160 VA:0024B21C Base:2162688 Address: 0045C21C +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1287 BreakPoint at:0045C21C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1161 VA:0024B22F Base:2162688 Address: 0045C22F +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1288 BreakPoint at:0045C22F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1162 VA:0024B23A Base:2162688 Address: 0045C23A +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1290 BreakPoint at:0045C23A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1163 VA:0024B23E Base:2162688 Address: 0045C23E +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1282 BreakPoint at:0045C23E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1164 VA:0024B24C Base:2162688 Address: 0045C24C +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1292 BreakPoint at:0045C24C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1165 VA:0024B253 Base:2162688 Address: 0045C253 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1294 BreakPoint at:0045C253 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1166 VA:0024B25F Base:2162688 Address: 0045C25F +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1295 BreakPoint at:0045C25F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1167 VA:0024B263 Base:2162688 Address: 0045C263 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1296 BreakPoint at:0045C263 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1168 VA:0024B26E Base:2162688 Address: 0045C26E +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1297 BreakPoint at:0045C26E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1169 VA:0024B274 Base:2162688 Address: 0045C274 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1298 BreakPoint at:0045C274 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1170 VA:0024B27A Base:2162688 Address: 0045C27A +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1299 BreakPoint at:0045C27A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1171 VA:0024B280 Base:2162688 Address: 0045C280 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1301 BreakPoint at:0045C280 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1172 VA:0024B286 Base:2162688 Address: 0045C286 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1302 BreakPoint at:0045C286 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1173 VA:0024B291 Base:2162688 Address: 0045C291 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1278 BreakPoint at:0045C291 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1174 VA:0024B29B Base:2162688 Address: 0045C29B +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1304 BreakPoint at:0045C29B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1175 VA:0024B2A7 Base:2162688 Address: 0045C2A7 +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1306 BreakPoint at:0045C2A7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1176 VA:0024B2CD Base:2162688 Address: 0045C2CD +Adding breakpoint for DECFormat.TFormat_UU.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1307 BreakPoint at:0045C2CD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1177 VA:0024B304 Base:2162688 Address: 0045C304 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1314 BreakPoint at:0045C304 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1178 VA:0024B327 Base:2162688 Address: 0045C327 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1315 BreakPoint at:0045C327 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1179 VA:0024B32B Base:2162688 Address: 0045C32B +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1316 BreakPoint at:0045C32B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1180 VA:0024B334 Base:2162688 Address: 0045C334 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1317 BreakPoint at:0045C334 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1181 VA:0024B351 Base:2162688 Address: 0045C351 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1318 BreakPoint at:0045C351 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1182 VA:0024B357 Base:2162688 Address: 0045C357 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1319 BreakPoint at:0045C357 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1183 VA:0024B35C Base:2162688 Address: 0045C35C +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1321 BreakPoint at:0045C35C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1184 VA:0024B362 Base:2162688 Address: 0045C362 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1323 BreakPoint at:0045C362 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1185 VA:0024B379 Base:2162688 Address: 0045C379 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1324 BreakPoint at:0045C379 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1186 VA:0024B37F Base:2162688 Address: 0045C37F +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1326 BreakPoint at:0045C37F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1187 VA:0024B38A Base:2162688 Address: 0045C38A +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1327 BreakPoint at:0045C38A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1188 VA:0024B38E Base:2162688 Address: 0045C38E +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1328 BreakPoint at:0045C38E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1189 VA:0024B394 Base:2162688 Address: 0045C394 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1330 BreakPoint at:0045C394 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1190 VA:0024B39A Base:2162688 Address: 0045C39A +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1332 BreakPoint at:0045C39A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1191 VA:0024B3BC Base:2162688 Address: 0045C3BC +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1335 BreakPoint at:0045C3BC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1192 VA:0024B3C2 Base:2162688 Address: 0045C3C2 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1336 BreakPoint at:0045C3C2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1193 VA:0024B3CD Base:2162688 Address: 0045C3CD +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1321 BreakPoint at:0045C3CD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1194 VA:0024B3D3 Base:2162688 Address: 0045C3D3 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1342 BreakPoint at:0045C3D3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1195 VA:0024B3D9 Base:2162688 Address: 0045C3D9 +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1345 BreakPoint at:0045C3D9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1196 VA:0024B3DD Base:2162688 Address: 0045C3DD +Adding breakpoint for DECFormat.TFormat_UU.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1346 BreakPoint at:0045C3DD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1197 VA:0024B40C Base:2162688 Address: 0045C40C +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_XX +TBreakPoint.Activate: +Activate DECFormat.pas line 1349 BreakPoint at:0045C40C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1198 VA:0024B41D Base:2162688 Address: 0045C41D +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1352 BreakPoint at:0045C41D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1199 VA:0024B435 Base:2162688 Address: 0045C435 +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1359 BreakPoint at:0045C435 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1200 VA:0024B43A Base:2162688 Address: 0045C43A +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1354 BreakPoint at:0045C43A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1201 VA:0024BC0F Base:2162688 Address: 0045CC0F +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1359 BreakPoint at:0045CC0F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1202 VA:0024BC27 Base:2162688 Address: 0045CC27 +Adding breakpoint for DECFormat.TFormat_XX.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1443 BreakPoint at:0045CC27 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1203 VA:0024BC2C Base:2162688 Address: 0045CC2C +Adding breakpoint for DECFormat.TFormat_ESCAPE.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_ESCAPE +TBreakPoint.Activate: +Activate DECFormat.pas line 1452 BreakPoint at:0045CC2C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1204 VA:0024BC38 Base:2162688 Address: 0045CC38 +Adding breakpoint for DECFormat.TFormat_ESCAPE.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1453 BreakPoint at:0045CC38 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1205 VA:0024BC45 Base:2162688 Address: 0045CC45 +Adding breakpoint for DECFormat.TFormat_ESCAPE.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1454 BreakPoint at:0045CC45 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1206 VA:0024BC4C Base:2162688 Address: 0045CC4C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1462 BreakPoint at:0045CC4C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1207 VA:0024BC6F Base:2162688 Address: 0045CC6F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1463 BreakPoint at:0045CC6F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1208 VA:0024BC7D Base:2162688 Address: 0045CC7D +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1464 BreakPoint at:0045CC7D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1209 VA:0024BC87 Base:2162688 Address: 0045CC87 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1467 BreakPoint at:0045CC87 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1210 VA:0024BCAB Base:2162688 Address: 0045CCAB +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1469 BreakPoint at:0045CCAB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1211 VA:0024BCB4 Base:2162688 Address: 0045CCB4 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1470 BreakPoint at:0045CCB4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1212 VA:0024BCBA Base:2162688 Address: 0045CCBA +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1471 BreakPoint at:0045CCBA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1213 VA:0024BCD5 Base:2162688 Address: 0045CCD5 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1473 BreakPoint at:0045CCD5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1214 VA:0024BCDB Base:2162688 Address: 0045CCDB +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1475 BreakPoint at:0045CCDB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1215 VA:0024BCE5 Base:2162688 Address: 0045CCE5 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1477 BreakPoint at:0045CCE5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1216 VA:0024BCEB Base:2162688 Address: 0045CCEB +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1479 BreakPoint at:0045CCEB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1217 VA:0024BCFD Base:2162688 Address: 0045CCFD +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1480 BreakPoint at:0045CCFD +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1218 VA:0024BD2B Base:2162688 Address: 0045CD2B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1481 BreakPoint at:0045CD2B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1219 VA:0024BD36 Base:2162688 Address: 0045CD36 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1482 BreakPoint at:0045CD36 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1220 VA:0024BD3C Base:2162688 Address: 0045CD3C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1484 BreakPoint at:0045CD3C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1221 VA:0024BD50 Base:2162688 Address: 0045CD50 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1486 BreakPoint at:0045CD50 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1222 VA:0024BD60 Base:2162688 Address: 0045CD60 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1488 BreakPoint at:0045CD60 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1223 VA:0024BD66 Base:2162688 Address: 0045CD66 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1489 BreakPoint at:0045CD66 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1224 VA:0024BD6A Base:2162688 Address: 0045CD6A +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1490 BreakPoint at:0045CD6A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1225 VA:0024BD96 Base:2162688 Address: 0045CD96 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1491 BreakPoint at:0045CD96 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1226 VA:0024BD9A Base:2162688 Address: 0045CD9A +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1492 BreakPoint at:0045CD9A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1227 VA:0024BDAE Base:2162688 Address: 0045CDAE +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1496 BreakPoint at:0045CDAE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1228 VA:0024BDB4 Base:2162688 Address: 0045CDB4 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1497 BreakPoint at:0045CDB4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1229 VA:0024BDB8 Base:2162688 Address: 0045CDB8 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1498 BreakPoint at:0045CDB8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1230 VA:0024BDBE Base:2162688 Address: 0045CDBE +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1499 BreakPoint at:0045CDBE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1231 VA:0024BDC2 Base:2162688 Address: 0045CDC2 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1500 BreakPoint at:0045CDC2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1232 VA:0024BDE4 Base:2162688 Address: 0045CDE4 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1501 BreakPoint at:0045CDE4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1233 VA:0024BDE8 Base:2162688 Address: 0045CDE8 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1502 BreakPoint at:0045CDE8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1234 VA:0024BE0D Base:2162688 Address: 0045CE0D +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1503 BreakPoint at:0045CE0D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1235 VA:0024BE11 Base:2162688 Address: 0045CE11 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1504 BreakPoint at:0045CE11 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1236 VA:0024BE1E Base:2162688 Address: 0045CE1E +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1510 BreakPoint at:0045CE1E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1237 VA:0024BE26 Base:2162688 Address: 0045CE26 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1512 BreakPoint at:0045CE26 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1238 VA:0024BE2C Base:2162688 Address: 0045CE2C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1513 BreakPoint at:0045CE2C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1239 VA:0024BE30 Base:2162688 Address: 0045CE30 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1514 BreakPoint at:0045CE30 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1240 VA:0024BE36 Base:2162688 Address: 0045CE36 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1515 BreakPoint at:0045CE36 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1241 VA:0024BE3A Base:2162688 Address: 0045CE3A +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1516 BreakPoint at:0045CE3A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1242 VA:0024BE47 Base:2162688 Address: 0045CE47 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1520 BreakPoint at:0045CE47 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1243 VA:0024BE4F Base:2162688 Address: 0045CE4F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1522 BreakPoint at:0045CE4F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1244 VA:0024BE55 Base:2162688 Address: 0045CE55 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1523 BreakPoint at:0045CE55 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1245 VA:0024BE59 Base:2162688 Address: 0045CE59 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1524 BreakPoint at:0045CE59 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1246 VA:0024BE5F Base:2162688 Address: 0045CE5F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1525 BreakPoint at:0045CE5F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1247 VA:0024BE63 Base:2162688 Address: 0045CE63 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1526 BreakPoint at:0045CE63 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1248 VA:0024BE70 Base:2162688 Address: 0045CE70 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1530 BreakPoint at:0045CE70 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1249 VA:0024BE7A Base:2162688 Address: 0045CE7A +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1531 BreakPoint at:0045CE7A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1250 VA:0024BE7E Base:2162688 Address: 0045CE7E +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1532 BreakPoint at:0045CE7E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1251 VA:0024BE89 Base:2162688 Address: 0045CE89 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1535 BreakPoint at:0045CE89 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1252 VA:0024BE94 Base:2162688 Address: 0045CE94 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1536 BreakPoint at:0045CE94 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1253 VA:0024BE98 Base:2162688 Address: 0045CE98 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1475 BreakPoint at:0045CE98 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1254 VA:0024BEA2 Base:2162688 Address: 0045CEA2 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1539 BreakPoint at:0045CEA2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1255 VA:0024BEC8 Base:2162688 Address: 0045CEC8 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1540 BreakPoint at:0045CEC8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1256 VA:0024BEF4 Base:2162688 Address: 0045CEF4 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1546 BreakPoint at:0045CEF4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1257 VA:0024BF17 Base:2162688 Address: 0045CF17 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1547 BreakPoint at:0045CF17 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1258 VA:0024BF1B Base:2162688 Address: 0045CF1B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1548 BreakPoint at:0045CF1B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1259 VA:0024BF24 Base:2162688 Address: 0045CF24 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1549 BreakPoint at:0045CF24 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1260 VA:0024BF2A Base:2162688 Address: 0045CF2A +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1551 BreakPoint at:0045CF2A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1261 VA:0024BF34 Base:2162688 Address: 0045CF34 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1553 BreakPoint at:0045CF34 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1262 VA:0024BF4C Base:2162688 Address: 0045CF4C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1557 BreakPoint at:0045CF4C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1263 VA:0024BF58 Base:2162688 Address: 0045CF58 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1559 BreakPoint at:0045CF58 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1264 VA:0024BF63 Base:2162688 Address: 0045CF63 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1560 BreakPoint at:0045CF63 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1265 VA:0024BF67 Base:2162688 Address: 0045CF67 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1563 BreakPoint at:0045CF67 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1266 VA:0024BF71 Base:2162688 Address: 0045CF71 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1567 BreakPoint at:0045CF71 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1267 VA:0024BF82 Base:2162688 Address: 0045CF82 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1569 BreakPoint at:0045CF82 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1268 VA:0024BF86 Base:2162688 Address: 0045CF86 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1570 BreakPoint at:0045CF86 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1269 VA:0024BF91 Base:2162688 Address: 0045CF91 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1573 BreakPoint at:0045CF91 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1270 VA:0024BFBF Base:2162688 Address: 0045CFBF +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1576 BreakPoint at:0045CFBF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1271 VA:0024BFC3 Base:2162688 Address: 0045CFC3 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1577 BreakPoint at:0045CFC3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1272 VA:0024BFCE Base:2162688 Address: 0045CFCE +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1579 BreakPoint at:0045CFCE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1273 VA:0024BFEE Base:2162688 Address: 0045CFEE +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1582 BreakPoint at:0045CFEE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1274 VA:0024BFF2 Base:2162688 Address: 0045CFF2 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1583 BreakPoint at:0045CFF2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1275 VA:0024BFFF Base:2162688 Address: 0045CFFF +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1588 BreakPoint at:0045CFFF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1276 VA:0024C022 Base:2162688 Address: 0045D022 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1591 BreakPoint at:0045D022 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1277 VA:0024C02D Base:2162688 Address: 0045D02D +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1592 BreakPoint at:0045D02D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1278 VA:0024C033 Base:2162688 Address: 0045D033 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1597 BreakPoint at:0045D033 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1279 VA:0024C03E Base:2162688 Address: 0045D03E +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1598 BreakPoint at:0045D03E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1280 VA:0024C042 Base:2162688 Address: 0045D042 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1551 BreakPoint at:0045D042 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1281 VA:0024C04C Base:2162688 Address: 0045D04C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1602 BreakPoint at:0045D04C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1282 VA:0024C050 Base:2162688 Address: 0045D050 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1603 BreakPoint at:0045D050 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1283 VA:0024C080 Base:2162688 Address: 0045D080 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1612 BreakPoint at:0045D080 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1284 VA:0024C0AC Base:2162688 Address: 0045D0AC +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1613 BreakPoint at:0045D0AC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1285 VA:0024C0B6 Base:2162688 Address: 0045D0B6 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1615 BreakPoint at:0045D0B6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1286 VA:0024C0D0 Base:2162688 Address: 0045D0D0 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1617 BreakPoint at:0045D0D0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1287 VA:0024C0D9 Base:2162688 Address: 0045D0D9 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1618 BreakPoint at:0045D0D9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1288 VA:0024C0DF Base:2162688 Address: 0045D0DF +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1619 BreakPoint at:0045D0DF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1289 VA:0024C0FA Base:2162688 Address: 0045D0FA +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1621 BreakPoint at:0045D0FA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1290 VA:0024C103 Base:2162688 Address: 0045D103 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1623 BreakPoint at:0045D103 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1291 VA:0024C10F Base:2162688 Address: 0045D10F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1626 BreakPoint at:0045D10F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1292 VA:0024C11B Base:2162688 Address: 0045D11B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1628 BreakPoint at:0045D11B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1293 VA:0024C11F Base:2162688 Address: 0045D11F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1629 BreakPoint at:0045D11F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1294 VA:0024C12B Base:2162688 Address: 0045D12B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1631 BreakPoint at:0045D12B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1295 VA:0024C140 Base:2162688 Address: 0045D140 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1633 BreakPoint at:0045D140 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1296 VA:0024C14B Base:2162688 Address: 0045D14B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1634 BreakPoint at:0045D14B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1297 VA:0024C17C Base:2162688 Address: 0045D17C +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1635 BreakPoint at:0045D17C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1298 VA:0024C180 Base:2162688 Address: 0045D180 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1636 BreakPoint at:0045D180 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1299 VA:0024C19F Base:2162688 Address: 0045D19F +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1637 BreakPoint at:0045D19F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1300 VA:0024C1A5 Base:2162688 Address: 0045D1A5 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1638 BreakPoint at:0045D1A5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1301 VA:0024C1D6 Base:2162688 Address: 0045D1D6 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1639 BreakPoint at:0045D1D6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1302 VA:0024C1ED Base:2162688 Address: 0045D1ED +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1640 BreakPoint at:0045D1ED +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1303 VA:0024C1F1 Base:2162688 Address: 0045D1F1 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1641 BreakPoint at:0045D1F1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1304 VA:0024C210 Base:2162688 Address: 0045D210 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1642 BreakPoint at:0045D210 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1305 VA:0024C216 Base:2162688 Address: 0045D216 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1643 BreakPoint at:0045D216 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1306 VA:0024C247 Base:2162688 Address: 0045D247 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1644 BreakPoint at:0045D247 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1307 VA:0024C263 Base:2162688 Address: 0045D263 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1648 BreakPoint at:0045D263 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1308 VA:0024C285 Base:2162688 Address: 0045D285 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1649 BreakPoint at:0045D285 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1309 VA:0024C28B Base:2162688 Address: 0045D28B +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1650 BreakPoint at:0045D28B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1310 VA:0024C2AB Base:2162688 Address: 0045D2AB +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1652 BreakPoint at:0045D2AB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1311 VA:0024C2B7 Base:2162688 Address: 0045D2B7 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1656 BreakPoint at:0045D2B7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1312 VA:0024C2C1 Base:2162688 Address: 0045D2C1 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1657 BreakPoint at:0045D2C1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1313 VA:0024C2C5 Base:2162688 Address: 0045D2C5 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1658 BreakPoint at:0045D2C5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1314 VA:0024C2C9 Base:2162688 Address: 0045D2C9 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1623 BreakPoint at:0045D2C9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1315 VA:0024C2D5 Base:2162688 Address: 0045D2D5 +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1661 BreakPoint at:0045D2D5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1316 VA:0024C2FB Base:2162688 Address: 0045D2FB +Adding breakpoint for DECFormat.TFormat_ESCAPE.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1662 BreakPoint at:0045D2FB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1317 VA:0024C334 Base:2162688 Address: 0045D334 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoDecode in DECFormat.pas +Creating class info for DECFormat class TFormat_BigEndian16 +TBreakPoint.Activate: +Activate DECFormat.pas line 1668 BreakPoint at:0045D334 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1318 VA:0024C343 Base:2162688 Address: 0045D343 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1669 BreakPoint at:0045D343 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1319 VA:0024C355 Base:2162688 Address: 0045D355 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1670 BreakPoint at:0045D355 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1320 VA:0024C35C Base:2162688 Address: 0045D35C +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1674 BreakPoint at:0045D35C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1321 VA:0024C36B Base:2162688 Address: 0045D36B +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1675 BreakPoint at:0045D36B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1322 VA:0024C37D Base:2162688 Address: 0045D37D +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1676 BreakPoint at:0045D37D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1323 VA:0024C384 Base:2162688 Address: 0045D384 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1680 BreakPoint at:0045D384 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1324 VA:0024C393 Base:2162688 Address: 0045D393 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1682 BreakPoint at:0045D393 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1325 VA:0024C39D Base:2162688 Address: 0045D39D +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1683 BreakPoint at:0045D39D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1326 VA:0024C3A4 Base:2162688 Address: 0045D3A4 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1689 BreakPoint at:0045D3A4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1327 VA:0024C3B3 Base:2162688 Address: 0045D3B3 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1690 BreakPoint at:0045D3B3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1328 VA:0024C3C7 Base:2162688 Address: 0045D3C7 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1692 BreakPoint at:0045D3C7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1329 VA:0024C3E1 Base:2162688 Address: 0045D3E1 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1694 BreakPoint at:0045D3E1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1330 VA:0024C3E7 Base:2162688 Address: 0045D3E7 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1696 BreakPoint at:0045D3E7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1331 VA:0024C409 Base:2162688 Address: 0045D409 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1698 BreakPoint at:0045D409 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1332 VA:0024C410 Base:2162688 Address: 0045D410 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1701 BreakPoint at:0045D410 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1333 VA:0024C433 Base:2162688 Address: 0045D433 +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1702 BreakPoint at:0045D433 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1334 VA:0024C43E Base:2162688 Address: 0045D43E +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1699 BreakPoint at:0045D43E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1335 VA:0024C45F Base:2162688 Address: 0045D45F +Adding breakpoint for DECFormat.TFormat_BigEndian16.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1705 BreakPoint at:0045D45F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1336 VA:0024C468 Base:2162688 Address: 0045D468 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoDecode in DECFormat.pas +Creating class info for DECFormat class TFormat_BigEndian32 +TBreakPoint.Activate: +Activate DECFormat.pas line 1712 BreakPoint at:0045D468 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1337 VA:0024C477 Base:2162688 Address: 0045D477 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1713 BreakPoint at:0045D477 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1338 VA:0024C489 Base:2162688 Address: 0045D489 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1714 BreakPoint at:0045D489 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1339 VA:0024C490 Base:2162688 Address: 0045D490 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1719 BreakPoint at:0045D490 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1340 VA:0024C49F Base:2162688 Address: 0045D49F +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1720 BreakPoint at:0045D49F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1341 VA:0024C4B1 Base:2162688 Address: 0045D4B1 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1721 BreakPoint at:0045D4B1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1342 VA:0024C4B8 Base:2162688 Address: 0045D4B8 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1725 BreakPoint at:0045D4B8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1343 VA:0024C4C7 Base:2162688 Address: 0045D4C7 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1726 BreakPoint at:0045D4C7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1344 VA:0024C4DC Base:2162688 Address: 0045D4DC +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1727 BreakPoint at:0045D4DC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1345 VA:0024C4E4 Base:2162688 Address: 0045D4E4 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1735 BreakPoint at:0045D4E4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1346 VA:0024C4F3 Base:2162688 Address: 0045D4F3 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1736 BreakPoint at:0045D4F3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1347 VA:0024C514 Base:2162688 Address: 0045D514 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1738 BreakPoint at:0045D514 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1348 VA:0024C52E Base:2162688 Address: 0045D52E +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1740 BreakPoint at:0045D52E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1349 VA:0024C538 Base:2162688 Address: 0045D538 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1742 BreakPoint at:0045D538 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1350 VA:0024C55A Base:2162688 Address: 0045D55A +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1744 BreakPoint at:0045D55A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1351 VA:0024C561 Base:2162688 Address: 0045D561 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1747 BreakPoint at:0045D561 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1352 VA:0024C587 Base:2162688 Address: 0045D587 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1748 BreakPoint at:0045D587 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1353 VA:0024C592 Base:2162688 Address: 0045D592 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1749 BreakPoint at:0045D592 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1354 VA:0024C5B7 Base:2162688 Address: 0045D5B7 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1750 BreakPoint at:0045D5B7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1355 VA:0024C5C2 Base:2162688 Address: 0045D5C2 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1745 BreakPoint at:0045D5C2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1356 VA:0024C5E7 Base:2162688 Address: 0045D5E7 +Adding breakpoint for DECFormat.TFormat_BigEndian32.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1753 BreakPoint at:0045D5E7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1357 VA:0024C5F0 Base:2162688 Address: 0045D5F0 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoDecode in DECFormat.pas +Creating class info for DECFormat class TFormat_BigEndian64 +TBreakPoint.Activate: +Activate DECFormat.pas line 1759 BreakPoint at:0045D5F0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1358 VA:0024C5FF Base:2162688 Address: 0045D5FF +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1760 BreakPoint at:0045D5FF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1359 VA:0024C611 Base:2162688 Address: 0045D611 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1761 BreakPoint at:0045D611 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1360 VA:0024C618 Base:2162688 Address: 0045D618 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1765 BreakPoint at:0045D618 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1361 VA:0024C627 Base:2162688 Address: 0045D627 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1766 BreakPoint at:0045D627 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1362 VA:0024C639 Base:2162688 Address: 0045D639 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1767 BreakPoint at:0045D639 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1363 VA:0024C640 Base:2162688 Address: 0045D640 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1771 BreakPoint at:0045D640 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1364 VA:0024C64F Base:2162688 Address: 0045D64F +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1772 BreakPoint at:0045D64F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1365 VA:0024C664 Base:2162688 Address: 0045D664 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1773 BreakPoint at:0045D664 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1366 VA:0024C66C Base:2162688 Address: 0045D66C +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1780 BreakPoint at:0045D66C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1367 VA:0024C67B Base:2162688 Address: 0045D67B +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1781 BreakPoint at:0045D67B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1368 VA:0024C69C Base:2162688 Address: 0045D69C +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1783 BreakPoint at:0045D69C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1369 VA:0024C6B6 Base:2162688 Address: 0045D6B6 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1785 BreakPoint at:0045D6B6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1370 VA:0024C6C0 Base:2162688 Address: 0045D6C0 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1787 BreakPoint at:0045D6C0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1371 VA:0024C6E2 Base:2162688 Address: 0045D6E2 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1789 BreakPoint at:0045D6E2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1372 VA:0024C6E9 Base:2162688 Address: 0045D6E9 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1792 BreakPoint at:0045D6E9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1373 VA:0024C70F Base:2162688 Address: 0045D70F +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1793 BreakPoint at:0045D70F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1374 VA:0024C720 Base:2162688 Address: 0045D720 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1794 BreakPoint at:0045D720 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1375 VA:0024C745 Base:2162688 Address: 0045D745 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1795 BreakPoint at:0045D745 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1376 VA:0024C750 Base:2162688 Address: 0045D750 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1790 BreakPoint at:0045D750 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1377 VA:0024C775 Base:2162688 Address: 0045D775 +Adding breakpoint for DECFormat.TFormat_BigEndian64.DoSawp in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1798 BreakPoint at:0045D775 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1378 VA:0024C77C Base:2162688 Address: 0045D77C +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +Creating class info for DECFormat class TFormat_Base32 +TBreakPoint.Activate: +Activate DECFormat.pas line 1805 BreakPoint at:0045D77C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1379 VA:0024C785 Base:2162688 Address: 0045D785 +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1806 BreakPoint at:0045D785 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1380 VA:0024C78B Base:2162688 Address: 0045D78B +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1807 BreakPoint at:0045D78B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1381 VA:0024C7B9 Base:2162688 Address: 0045D7B9 +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1808 BreakPoint at:0045D7B9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1382 VA:0024C7EC Base:2162688 Address: 0045D7EC +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1809 BreakPoint at:0045D7EC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1383 VA:0024C81C Base:2162688 Address: 0045D81C +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1810 BreakPoint at:0045D81C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1384 VA:0024C84C Base:2162688 Address: 0045D84C +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1811 BreakPoint at:0045D84C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1385 VA:0024C863 Base:2162688 Address: 0045D863 +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1813 BreakPoint at:0045D863 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1386 VA:0024C878 Base:2162688 Address: 0045D878 +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1815 BreakPoint at:0045D878 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1387 VA:0024C87C Base:2162688 Address: 0045D87C +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1806 BreakPoint at:0045D87C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1388 VA:0024C887 Base:2162688 Address: 0045D887 +Adding breakpoint for DECFormat.TFormat_Base32.PrepareTable in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1816 BreakPoint at:0045D887 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1389 VA:0024C88C Base:2162688 Address: 0045D88C +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1825 BreakPoint at:0045D88C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1390 VA:0024C8AF Base:2162688 Address: 0045D8AF +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1826 BreakPoint at:0045D8AF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1391 VA:0024C8B7 Base:2162688 Address: 0045D8B7 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1828 BreakPoint at:0045D8B7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1392 VA:0024C8C5 Base:2162688 Address: 0045D8C5 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1829 BreakPoint at:0045D8C5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1393 VA:0024C8CA Base:2162688 Address: 0045D8CA +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1832 BreakPoint at:0045D8CA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1394 VA:0024C8D3 Base:2162688 Address: 0045D8D3 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1833 BreakPoint at:0045D8D3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1395 VA:0024C8DB Base:2162688 Address: 0045D8DB +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1835 BreakPoint at:0045D8DB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1396 VA:0024C8E1 Base:2162688 Address: 0045D8E1 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1836 BreakPoint at:0045D8E1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1397 VA:0024C919 Base:2162688 Address: 0045D919 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1837 BreakPoint at:0045D919 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1398 VA:0024C91F Base:2162688 Address: 0045D91F +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1838 BreakPoint at:0045D91F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1399 VA:0024C93A Base:2162688 Address: 0045D93A +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1839 BreakPoint at:0045D93A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1400 VA:0024C93F Base:2162688 Address: 0045D93F +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1840 BreakPoint at:0045D93F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1401 VA:0024C944 Base:2162688 Address: 0045D944 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1841 BreakPoint at:0045D944 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1402 VA:0024C964 Base:2162688 Address: 0045D964 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1843 BreakPoint at:0045D964 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1403 VA:0024C981 Base:2162688 Address: 0045D981 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1844 BreakPoint at:0045D981 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1404 VA:0024C98A Base:2162688 Address: 0045D98A +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1846 BreakPoint at:0045D98A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1405 VA:0024C99A Base:2162688 Address: 0045D99A +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1847 BreakPoint at:0045D99A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1406 VA:0024C9CE Base:2162688 Address: 0045D9CE +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1850 BreakPoint at:0045D9CE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1407 VA:0024C9DA Base:2162688 Address: 0045D9DA +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1851 BreakPoint at:0045D9DA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1408 VA:0024C9E5 Base:2162688 Address: 0045D9E5 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1852 BreakPoint at:0045D9E5 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1409 VA:0024C9EB Base:2162688 Address: 0045D9EB +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1854 BreakPoint at:0045D9EB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1410 VA:0024C9F6 Base:2162688 Address: 0045D9F6 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1855 BreakPoint at:0045D9F6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1411 VA:0024CA17 Base:2162688 Address: 0045DA17 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1856 BreakPoint at:0045DA17 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1412 VA:0024CA1B Base:2162688 Address: 0045DA1B +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1859 BreakPoint at:0045DA1B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1413 VA:0024CA1F Base:2162688 Address: 0045DA1F +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1860 BreakPoint at:0045DA1F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1414 VA:0024CA22 Base:2162688 Address: 0045DA22 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1841 BreakPoint at:0045DA22 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1415 VA:0024CA2B Base:2162688 Address: 0045DA2B +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1861 BreakPoint at:0045DA2B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1416 VA:0024CA5B Base:2162688 Address: 0045DA5B +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1862 BreakPoint at:0045DA5B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1417 VA:0024CA75 Base:2162688 Address: 0045DA75 +Adding breakpoint for DECFormat.TFormat_Base32.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1863 BreakPoint at:0045DA75 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1418 VA:0024CA9C Base:2162688 Address: 0045DA9C +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1873 BreakPoint at:0045DA9C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1419 VA:0024CAAB Base:2162688 Address: 0045DAAB +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1874 BreakPoint at:0045DAAB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1420 VA:0024CAB9 Base:2162688 Address: 0045DAB9 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1876 BreakPoint at:0045DAB9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1421 VA:0024CAC7 Base:2162688 Address: 0045DAC7 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1877 BreakPoint at:0045DAC7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1422 VA:0024CACC Base:2162688 Address: 0045DACC +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1880 BreakPoint at:0045DACC +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1423 VA:0024CB02 Base:2162688 Address: 0045DB02 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1881 BreakPoint at:0045DB02 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1424 VA:0024CB07 Base:2162688 Address: 0045DB07 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1882 BreakPoint at:0045DB07 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1425 VA:0024CB0C Base:2162688 Address: 0045DB0C +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1883 BreakPoint at:0045DB0C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1426 VA:0024CB12 Base:2162688 Address: 0045DB12 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1884 BreakPoint at:0045DB12 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1427 VA:0024CB2D Base:2162688 Address: 0045DB2D +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1885 BreakPoint at:0045DB2D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1428 VA:0024CB4D Base:2162688 Address: 0045DB4D +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1887 BreakPoint at:0045DB4D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1429 VA:0024CB6E Base:2162688 Address: 0045DB6E +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1888 BreakPoint at:0045DB6E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1430 VA:0024CB79 Base:2162688 Address: 0045DB79 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1889 BreakPoint at:0045DB79 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1431 VA:0024CB7F Base:2162688 Address: 0045DB7F +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1891 BreakPoint at:0045DB7F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1432 VA:0024CB8A Base:2162688 Address: 0045DB8A +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1892 BreakPoint at:0045DB8A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1433 VA:0024CBBE Base:2162688 Address: 0045DBBE +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1893 BreakPoint at:0045DBBE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1434 VA:0024CBC2 Base:2162688 Address: 0045DBC2 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1889 BreakPoint at:0045DBC2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1435 VA:0024CBC8 Base:2162688 Address: 0045DBC8 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1895 BreakPoint at:0045DBC8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1436 VA:0024CBCB Base:2162688 Address: 0045DBCB +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1885 BreakPoint at:0045DBCB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1437 VA:0024CBD4 Base:2162688 Address: 0045DBD4 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1897 BreakPoint at:0045DBD4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1438 VA:0024CBDA Base:2162688 Address: 0045DBDA +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1899 BreakPoint at:0045DBDA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1439 VA:0024CC1A Base:2162688 Address: 0045DC1A +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1900 BreakPoint at:0045DC1A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1440 VA:0024CC1E Base:2162688 Address: 0045DC1E +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1904 BreakPoint at:0045DC1E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1441 VA:0024CC4E Base:2162688 Address: 0045DC4E +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1906 BreakPoint at:0045DC4E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1442 VA:0024CC67 Base:2162688 Address: 0045DC67 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1907 BreakPoint at:0045DC67 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1443 VA:0024CC6D Base:2162688 Address: 0045DC6D +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1908 BreakPoint at:0045DC6D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1444 VA:0024CC73 Base:2162688 Address: 0045DC73 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1909 BreakPoint at:0045DC73 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1445 VA:0024CC79 Base:2162688 Address: 0045DC79 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1910 BreakPoint at:0045DC79 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1446 VA:0024CC7F Base:2162688 Address: 0045DC7F +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1912 BreakPoint at:0045DC7F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1447 VA:0024CC83 Base:2162688 Address: 0045DC83 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1915 BreakPoint at:0045DC83 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1448 VA:0024CCAA Base:2162688 Address: 0045DCAA +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1916 BreakPoint at:0045DCAA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1449 VA:0024CCD0 Base:2162688 Address: 0045DCD0 +Adding breakpoint for DECFormat.TFormat_Base32.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1917 BreakPoint at:0045DCD0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1450 VA:0024CCD8 Base:2162688 Address: 0045DCD8 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1922 BreakPoint at:0045DCD8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1451 VA:0024CCE7 Base:2162688 Address: 0045DCE7 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1923 BreakPoint at:0045DCE7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1452 VA:0024CCEB Base:2162688 Address: 0045DCEB +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1924 BreakPoint at:0045DCEB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1453 VA:0024CCF3 Base:2162688 Address: 0045DCF3 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1928 BreakPoint at:0045DCF3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1454 VA:0024CD08 Base:2162688 Address: 0045DD08 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1930 BreakPoint at:0045DD08 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1455 VA:0024CD0C Base:2162688 Address: 0045DD0C +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1931 BreakPoint at:0045DD0C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1456 VA:0024CD19 Base:2162688 Address: 0045DD19 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1934 BreakPoint at:0045DD19 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1457 VA:0024CD1D Base:2162688 Address: 0045DD1D +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1925 BreakPoint at:0045DD1D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1458 VA:0024CD29 Base:2162688 Address: 0045DD29 +Adding breakpoint for DECFormat.TFormat_Base32.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1936 BreakPoint at:0045DD29 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1459 VA:0024CD30 Base:2162688 Address: 0045DD30 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +Creating class info for DECFormat class TFormat_BCryptBSD +TBreakPoint.Activate: +Activate DECFormat.pas line 1941 BreakPoint at:0045DD30 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1460 VA:0024CD41 Base:2162688 Address: 0045DD41 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1943 BreakPoint at:0045DD41 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1461 VA:0024CD59 Base:2162688 Address: 0045DD59 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1950 BreakPoint at:0045DD59 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1462 VA:0024CD5E Base:2162688 Address: 0045DD5E +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1945 BreakPoint at:0045DD5E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1463 VA:0024D42F Base:2162688 Address: 0045E42F +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1950 BreakPoint at:0045E42F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1464 VA:0024D447 Base:2162688 Address: 0045E447 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.CharTableBinary in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1951 BreakPoint at:0045E447 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1465 VA:0024D44C Base:2162688 Address: 0045E44C +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +Creating class info for DECFormat class GetNextByte +TBreakPoint.Activate: +Activate DECFormat.pas line 1974 BreakPoint at:0045E44C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1466 VA:0024D452 Base:2162688 Address: 0045E452 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1975 BreakPoint at:0045E452 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1467 VA:0024D459 Base:2162688 Address: 0045E459 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1976 BreakPoint at:0045E459 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1468 VA:0024D462 Base:2162688 Address: 0045E462 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1978 BreakPoint at:0045E462 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1469 VA:0024D46D Base:2162688 Address: 0045E46D +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1979 BreakPoint at:0045E46D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1470 VA:0024D474 Base:2162688 Address: 0045E474 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1980 BreakPoint at:0045E474 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1471 VA:0024D482 Base:2162688 Address: 0045E482 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1981 BreakPoint at:0045E482 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1472 VA:0024D488 Base:2162688 Address: 0045E488 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1982 BreakPoint at:0045E488 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1473 VA:0024D4A1 Base:2162688 Address: 0045E4A1 +Adding breakpoint for DECFormat.GetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1984 BreakPoint at:0045E4A1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1474 VA:0024D4A8 Base:2162688 Address: 0045E4A8 +Adding breakpoint for DECFormat.SetNextByte in DECFormat.pas +Creating class info for DECFormat class SetNextByte +TBreakPoint.Activate: +Activate DECFormat.pas line 1987 BreakPoint at:0045E4A8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1475 VA:0024D4B6 Base:2162688 Address: 0045E4B6 +Adding breakpoint for DECFormat.SetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1989 BreakPoint at:0045E4B6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1476 VA:0024D54F Base:2162688 Address: 0045E54F +Adding breakpoint for DECFormat.SetNextByte in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1990 BreakPoint at:0045E54F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1477 VA:0024D554 Base:2162688 Address: 0045E554 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1992 BreakPoint at:0045E554 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1478 VA:0024D563 Base:2162688 Address: 0045E563 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1993 BreakPoint at:0045E563 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1479 VA:0024D569 Base:2162688 Address: 0045E569 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1995 BreakPoint at:0045E569 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1480 VA:0024D57D Base:2162688 Address: 0045E57D +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1998 BreakPoint at:0045E57D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1481 VA:0024D587 Base:2162688 Address: 0045E587 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2000 BreakPoint at:0045E587 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1482 VA:0024D591 Base:2162688 Address: 0045E591 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2001 BreakPoint at:0045E591 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1483 VA:0024D597 Base:2162688 Address: 0045E597 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2002 BreakPoint at:0045E597 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1484 VA:0024D5A1 Base:2162688 Address: 0045E5A1 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2003 BreakPoint at:0045E5A1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1485 VA:0024D5A7 Base:2162688 Address: 0045E5A7 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2004 BreakPoint at:0045E5A7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1486 VA:0024D5BF Base:2162688 Address: 0045E5BF +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2006 BreakPoint at:0045E5BF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1487 VA:0024D5C9 Base:2162688 Address: 0045E5C9 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2007 BreakPoint at:0045E5C9 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1488 VA:0024D5CF Base:2162688 Address: 0045E5CF +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2008 BreakPoint at:0045E5CF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1489 VA:0024D5E7 Base:2162688 Address: 0045E5E7 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2010 BreakPoint at:0045E5E7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1490 VA:0024D5F1 Base:2162688 Address: 0045E5F1 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2011 BreakPoint at:0045E5F1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1491 VA:0024D5F7 Base:2162688 Address: 0045E5F7 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2012 BreakPoint at:0045E5F7 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1492 VA:0024D60A Base:2162688 Address: 0045E60A +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 1998 BreakPoint at:0045E60A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1493 VA:0024D614 Base:2162688 Address: 0045E614 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoDecode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2014 BreakPoint at:0045E614 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1494 VA:0024D61C Base:2162688 Address: 0045E61C +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2023 BreakPoint at:0045E61C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1495 VA:0024D648 Base:2162688 Address: 0045E648 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2024 BreakPoint at:0045E648 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1496 VA:0024D651 Base:2162688 Address: 0045E651 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2025 BreakPoint at:0045E651 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1497 VA:0024D657 Base:2162688 Address: 0045E657 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2026 BreakPoint at:0045E657 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1498 VA:0024D662 Base:2162688 Address: 0045E662 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2028 BreakPoint at:0045E662 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1499 VA:0024D66C Base:2162688 Address: 0045E66C +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2030 BreakPoint at:0045E66C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1500 VA:0024D676 Base:2162688 Address: 0045E676 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2031 BreakPoint at:0045E676 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1501 VA:0024D67A Base:2162688 Address: 0045E67A +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2032 BreakPoint at:0045E67A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1502 VA:0024D685 Base:2162688 Address: 0045E685 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2034 BreakPoint at:0045E685 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1503 VA:0024D72D Base:2162688 Address: 0045E72D +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2035 BreakPoint at:0045E72D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1504 VA:0024D74B Base:2162688 Address: 0045E74B +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2036 BreakPoint at:0045E74B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1505 VA:0024D755 Base:2162688 Address: 0045E755 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2038 BreakPoint at:0045E755 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1506 VA:0024D75A Base:2162688 Address: 0045E75A +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2037 BreakPoint at:0045E75A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1507 VA:0024D7E6 Base:2162688 Address: 0045E7E6 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2038 BreakPoint at:0045E7E6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1508 VA:0024D7FE Base:2162688 Address: 0045E7FE +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2040 BreakPoint at:0045E7FE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1509 VA:0024D808 Base:2162688 Address: 0045E808 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2041 BreakPoint at:0045E808 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1510 VA:0024D80C Base:2162688 Address: 0045E80C +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2042 BreakPoint at:0045E80C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1511 VA:0024D817 Base:2162688 Address: 0045E817 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2044 BreakPoint at:0045E817 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1512 VA:0024D837 Base:2162688 Address: 0045E837 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2045 BreakPoint at:0045E837 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1513 VA:0024D8E0 Base:2162688 Address: 0045E8E0 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2046 BreakPoint at:0045E8E0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1514 VA:0024D8FE Base:2162688 Address: 0045E8FE +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2048 BreakPoint at:0045E8FE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1515 VA:0024D908 Base:2162688 Address: 0045E908 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2050 BreakPoint at:0045E908 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1516 VA:0024D90D Base:2162688 Address: 0045E90D +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2049 BreakPoint at:0045E90D +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1517 VA:0024D999 Base:2162688 Address: 0045E999 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2050 BreakPoint at:0045E999 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1518 VA:0024D9B1 Base:2162688 Address: 0045E9B1 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2052 BreakPoint at:0045E9B1 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1519 VA:0024D9BB Base:2162688 Address: 0045E9BB +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2053 BreakPoint at:0045E9BB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1520 VA:0024D9BF Base:2162688 Address: 0045E9BF +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2054 BreakPoint at:0045E9BF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1521 VA:0024D9CA Base:2162688 Address: 0045E9CA +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2056 BreakPoint at:0045E9CA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1522 VA:0024D9EA Base:2162688 Address: 0045E9EA +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2057 BreakPoint at:0045E9EA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1523 VA:0024DB36 Base:2162688 Address: 0045EB36 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2028 BreakPoint at:0045EB36 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1524 VA:0024DB40 Base:2162688 Address: 0045EB40 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoEncode in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2062 BreakPoint at:0045EB40 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1525 VA:0024DB6C Base:2162688 Address: 0045EB6C +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2068 BreakPoint at:0045EB6C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1526 VA:0024DB7B Base:2162688 Address: 0045EB7B +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2069 BreakPoint at:0045EB7B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1527 VA:0024DB7F Base:2162688 Address: 0045EB7F +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2070 BreakPoint at:0045EB7F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1528 VA:0024DB87 Base:2162688 Address: 0045EB87 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2074 BreakPoint at:0045EB87 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1529 VA:0024DB9E Base:2162688 Address: 0045EB9E +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2076 BreakPoint at:0045EB9E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1530 VA:0024DBA2 Base:2162688 Address: 0045EBA2 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2077 BreakPoint at:0045EBA2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1531 VA:0024DBAF Base:2162688 Address: 0045EBAF +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2080 BreakPoint at:0045EBAF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1532 VA:0024DBB3 Base:2162688 Address: 0045EBB3 +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2071 BreakPoint at:0045EBB3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1533 VA:0024DBBF Base:2162688 Address: 0045EBBF +Adding breakpoint for DECFormat.TFormat_BCryptBSD.DoIsValid in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2082 BreakPoint at:0045EBBF +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:1534 VA:0024DBC8 Base:2162688 Address: 0045EBC8 +Adding breakpoint for DECFormat.Finalization in DECFormat.pas +Creating class info for DECFormat class DECFormat +TBreakPoint.Activate: +Activate DECFormat.pas line 2126 BreakPoint at:0045EBC8 +Module name "TestDECTestDataContainer" did not match module from address name "DECHashInterface" at address:00263B28 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2885 VA:002643C8 Base:2162688 Address: 004753C8 +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +Creating class info for DECHashBase class ValidHash +TBreakPoint.Activate: +Activate DECHashBase.pas line 411 BreakPoint at:004753C8 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2886 VA:002643D1 Base:2162688 Address: 004753D1 +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 412 BreakPoint at:004753D1 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2887 VA:002643D7 Base:2162688 Address: 004753D7 +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 413 BreakPoint at:004753D7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2888 VA:002643DF Base:2162688 Address: 004753DF +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 415 BreakPoint at:004753DF +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2889 VA:002643E7 Base:2162688 Address: 004753E7 +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 417 BreakPoint at:004753E7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2890 VA:002643ED Base:2162688 Address: 004753ED +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 418 BreakPoint at:004753ED +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2891 VA:00264403 Base:2162688 Address: 00475403 +Adding breakpoint for DECHashBase.ValidHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 419 BreakPoint at:00475403 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2892 VA:0026440C Base:2162688 Address: 0047540C +Adding breakpoint for DECHashBase.SetDefaultHashClass in DECHashBase.pas +Creating class info for DECHashBase class SetDefaultHashClass +TBreakPoint.Activate: +Activate DECHashBase.pas line 422 BreakPoint at:0047540C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2893 VA:00264413 Base:2162688 Address: 00475413 +Adding breakpoint for DECHashBase.SetDefaultHashClass in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 423 BreakPoint at:00475413 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2894 VA:0026442D Base:2162688 Address: 0047542D +Adding breakpoint for DECHashBase.SetDefaultHashClass in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 425 BreakPoint at:0047542D +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2895 VA:00264435 Base:2162688 Address: 00475435 +Adding breakpoint for DECHashBase.SetDefaultHashClass in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 426 BreakPoint at:00475435 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2896 VA:002644FC Base:2162688 Address: 004754FC +Adding breakpoint for DECHashBase.TDECHash.Create in DECHashBase.pas +Creating class info for DECHashBase class TDECHash +TBreakPoint.Activate: +Activate DECHashBase.pas line 431 BreakPoint at:004754FC +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2897 VA:00264514 Base:2162688 Address: 00475514 +Adding breakpoint for DECHashBase.TDECHash.Create in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 432 BreakPoint at:00475514 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2898 VA:0026451E Base:2162688 Address: 0047551E +Adding breakpoint for DECHashBase.TDECHash.Create in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 433 BreakPoint at:0047551E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2899 VA:00264526 Base:2162688 Address: 00475526 +Adding breakpoint for DECHashBase.TDECHash.Create in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 434 BreakPoint at:00475526 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2900 VA:0026452E Base:2162688 Address: 0047552E +Adding breakpoint for DECHashBase.TDECHash.Create in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 435 BreakPoint at:0047552E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2901 VA:00264550 Base:2162688 Address: 00475550 +Adding breakpoint for DECHashBase.TDECHash.Destroy in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 438 BreakPoint at:00475550 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2902 VA:00264561 Base:2162688 Address: 00475561 +Adding breakpoint for DECHashBase.TDECHash.Destroy in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 439 BreakPoint at:00475561 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2903 VA:00264569 Base:2162688 Address: 00475569 +Adding breakpoint for DECHashBase.TDECHash.Destroy in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 440 BreakPoint at:00475569 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2904 VA:0026457A Base:2162688 Address: 0047557A +Adding breakpoint for DECHashBase.TDECHash.Destroy in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 442 BreakPoint at:0047557A +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2905 VA:00264588 Base:2162688 Address: 00475588 +Adding breakpoint for DECHashBase.TDECHash.Destroy in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 443 BreakPoint at:00475588 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2906 VA:0026459C Base:2162688 Address: 0047559C +Adding breakpoint for DECHashBase.TDECHash.SecureErase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 446 BreakPoint at:0047559C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2907 VA:002645A3 Base:2162688 Address: 004755A3 +Adding breakpoint for DECHashBase.TDECHash.SecureErase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 447 BreakPoint at:004755A3 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2908 VA:002645BC Base:2162688 Address: 004755BC +Adding breakpoint for DECHashBase.TDECHash.SecureErase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 448 BreakPoint at:004755BC +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2909 VA:002645C5 Base:2162688 Address: 004755C5 +Adding breakpoint for DECHashBase.TDECHash.SecureErase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 449 BreakPoint at:004755C5 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2910 VA:002645DF Base:2162688 Address: 004755DF +Adding breakpoint for DECHashBase.TDECHash.SecureErase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 450 BreakPoint at:004755DF +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2911 VA:002645E4 Base:2162688 Address: 004755E4 +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 453 BreakPoint at:004755E4 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2912 VA:002645EB Base:2162688 Address: 004755EB +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 454 BreakPoint at:004755EB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2913 VA:002645F3 Base:2162688 Address: 004755F3 +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 456 BreakPoint at:004755F3 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2914 VA:0026460C Base:2162688 Address: 0047560C +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 458 BreakPoint at:0047560C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2915 VA:00264623 Base:2162688 Address: 00475623 +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 462 BreakPoint at:00475623 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2916 VA:0026463F Base:2162688 Address: 0047563F +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 465 BreakPoint at:0047563F +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2917 VA:00264652 Base:2162688 Address: 00475652 +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 466 BreakPoint at:00475652 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2918 VA:00264664 Base:2162688 Address: 00475664 +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 467 BreakPoint at:00475664 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2919 VA:0026466C Base:2162688 Address: 0047566C +Adding breakpoint for DECHashBase.TDECHash.Init in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 468 BreakPoint at:0047566C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2920 VA:00264670 Base:2162688 Address: 00475670 +Adding breakpoint for DECHashBase.TDECHash.IsPasswordHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 471 BreakPoint at:00475670 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2921 VA:00264679 Base:2162688 Address: 00475679 +Adding breakpoint for DECHashBase.TDECHash.IsPasswordHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 473 BreakPoint at:00475679 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2922 VA:0026467D Base:2162688 Address: 0047567D +Adding breakpoint for DECHashBase.TDECHash.IsPasswordHash in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 474 BreakPoint at:0047567D +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2923 VA:00264684 Base:2162688 Address: 00475684 +Adding breakpoint for DECHashBase.TDECHash.Done in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 477 BreakPoint at:00475684 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2924 VA:0026468B Base:2162688 Address: 0047568B +Adding breakpoint for DECHashBase.TDECHash.Done in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 478 BreakPoint at:0047568B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2925 VA:00264693 Base:2162688 Address: 00475693 +Adding breakpoint for DECHashBase.TDECHash.Done in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 479 BreakPoint at:00475693 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2926 VA:00264698 Base:2162688 Address: 00475698 +Adding breakpoint for DECHashBase.TDECHash.GetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 482 BreakPoint at:00475698 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2927 VA:002646A1 Base:2162688 Address: 004756A1 +Adding breakpoint for DECHashBase.TDECHash.GetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 483 BreakPoint at:004756A1 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2928 VA:002646AA Base:2162688 Address: 004756AA +Adding breakpoint for DECHashBase.TDECHash.GetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 484 BreakPoint at:004756AA +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2929 VA:002646B4 Base:2162688 Address: 004756B4 +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +Creating class info for DECHashBase class AddC +TBreakPoint.Activate: +Activate DECHashBase.pas line 547 BreakPoint at:004756B4 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2930 VA:002646C3 Base:2162688 Address: 004756C3 +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 548 BreakPoint at:004756C3 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2931 VA:002646CB Base:2162688 Address: 004756CB +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 550 BreakPoint at:004756CB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2932 VA:002646D8 Base:2162688 Address: 004756D8 +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 551 BreakPoint at:004756D8 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2933 VA:002646E6 Base:2162688 Address: 004756E6 +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 554 BreakPoint at:004756E6 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2934 VA:002646EC Base:2162688 Address: 004756EC +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 556 BreakPoint at:004756EC +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2935 VA:002646FB Base:2162688 Address: 004756FB +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 557 BreakPoint at:004756FB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2936 VA:00264718 Base:2162688 Address: 00475718 +Adding breakpoint for DECHashBase.AddC in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 558 BreakPoint at:00475718 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2937 VA:0026471C Base:2162688 Address: 0047571C +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 560 BreakPoint at:0047571C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2938 VA:0026472B Base:2162688 Address: 0047572B +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 561 BreakPoint at:0047572B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2939 VA:00264734 Base:2162688 Address: 00475734 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 562 BreakPoint at:00475734 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2940 VA:00264748 Base:2162688 Address: 00475748 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 563 BreakPoint at:00475748 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2941 VA:0026474C Base:2162688 Address: 0047574C +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 565 BreakPoint at:0047574C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2942 VA:0026475C Base:2162688 Address: 0047575C +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 566 BreakPoint at:0047575C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2943 VA:0026476F Base:2162688 Address: 0047576F +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 567 BreakPoint at:0047576F +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2944 VA:00264781 Base:2162688 Address: 00475781 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 568 BreakPoint at:00475781 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2945 VA:00264793 Base:2162688 Address: 00475793 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 569 BreakPoint at:00475793 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2946 VA:002647A5 Base:2162688 Address: 004757A5 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 570 BreakPoint at:004757A5 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2947 VA:002647B7 Base:2162688 Address: 004757B7 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 571 BreakPoint at:004757B7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2948 VA:002647C9 Base:2162688 Address: 004757C9 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 572 BreakPoint at:004757C9 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2949 VA:002647DB Base:2162688 Address: 004757DB +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 574 BreakPoint at:004757DB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2950 VA:002647E1 Base:2162688 Address: 004757E1 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 575 BreakPoint at:004757E1 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2951 VA:002647E9 Base:2162688 Address: 004757E9 +Adding breakpoint for DECHashBase.TDECHash.Increment8 in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 576 BreakPoint at:004757E9 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2952 VA:002647F0 Base:2162688 Address: 004757F0 +Adding breakpoint for DECHashBase.TDECHash.RaiseHashOverflowError in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 580 BreakPoint at:004757F0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2953 VA:002647F7 Base:2162688 Address: 004757F7 +Adding breakpoint for DECHashBase.TDECHash.RaiseHashOverflowError in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 581 BreakPoint at:004757F7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2954 VA:0026480D Base:2162688 Address: 0047580D +Adding breakpoint for DECHashBase.TDECHash.RaiseHashOverflowError in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 582 BreakPoint at:0047580D +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2955 VA:00264810 Base:2162688 Address: 00475810 +Adding breakpoint for DECHashBase.TDECHash.SetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 585 BreakPoint at:00475810 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2956 VA:0026481C Base:2162688 Address: 0047581C +Adding breakpoint for DECHashBase.TDECHash.SetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 586 BreakPoint at:0047581C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2957 VA:00264825 Base:2162688 Address: 00475825 +Adding breakpoint for DECHashBase.TDECHash.SetPaddingByte in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 587 BreakPoint at:00475825 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2958 VA:0026482C Base:2162688 Address: 0047582C +Adding breakpoint for DECHashBase.TDECHash.RaiseHashNotInitialized in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 590 BreakPoint at:0047582C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2959 VA:00264833 Base:2162688 Address: 00475833 +Adding breakpoint for DECHashBase.TDECHash.RaiseHashNotInitialized in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 591 BreakPoint at:00475833 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2960 VA:00264849 Base:2162688 Address: 00475849 +Adding breakpoint for DECHashBase.TDECHash.RaiseHashNotInitialized in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 592 BreakPoint at:00475849 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2961 VA:0026484C Base:2162688 Address: 0047584C +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 598 BreakPoint at:0047584C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2962 VA:0026485B Base:2162688 Address: 0047585B +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 599 BreakPoint at:0047585B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2963 VA:00264865 Base:2162688 Address: 00475865 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 602 BreakPoint at:00475865 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2964 VA:0026486E Base:2162688 Address: 0047586E +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 603 BreakPoint at:0047586E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2965 VA:00264876 Base:2162688 Address: 00475876 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 605 BreakPoint at:00475876 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2966 VA:00264890 Base:2162688 Address: 00475890 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 606 BreakPoint at:00475890 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2967 VA:00264896 Base:2162688 Address: 00475896 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 608 BreakPoint at:00475896 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2968 VA:002648A3 Base:2162688 Address: 004758A3 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 610 BreakPoint at:004758A3 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2969 VA:002648B9 Base:2162688 Address: 004758B9 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 611 BreakPoint at:004758B9 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2970 VA:002648C1 Base:2162688 Address: 004758C1 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 613 BreakPoint at:004758C1 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2971 VA:002648E6 Base:2162688 Address: 004758E6 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 614 BreakPoint at:004758E6 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2972 VA:002648FA Base:2162688 Address: 004758FA +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 615 BreakPoint at:004758FA +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2973 VA:002648FF Base:2162688 Address: 004758FF +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 617 BreakPoint at:004758FF +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2974 VA:00264924 Base:2162688 Address: 00475924 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 618 BreakPoint at:00475924 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2975 VA:00264932 Base:2162688 Address: 00475932 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 619 BreakPoint at:00475932 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2976 VA:0026493F Base:2162688 Address: 0047593F +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 620 BreakPoint at:0047593F +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2977 VA:00264947 Base:2162688 Address: 00475947 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 625 BreakPoint at:00475947 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2978 VA:00264952 Base:2162688 Address: 00475952 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 626 BreakPoint at:00475952 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2979 VA:0026495B Base:2162688 Address: 0047595B +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 627 BreakPoint at:0047595B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2980 VA:0026496B Base:2162688 Address: 0047596B +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 623 BreakPoint at:0047596B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2981 VA:00264976 Base:2162688 Address: 00475976 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 630 BreakPoint at:00475976 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2982 VA:00264987 Base:2162688 Address: 00475987 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 631 BreakPoint at:00475987 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2983 VA:00264990 Base:2162688 Address: 00475990 +Adding breakpoint for DECHashBase.TDECHash.Calc in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 632 BreakPoint at:00475990 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2984 VA:00264994 Base:2162688 Address: 00475994 +Adding breakpoint for DECHashBase.TDECHash.DigestAsBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 635 BreakPoint at:00475994 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2985 VA:002649A0 Base:2162688 Address: 004759A0 +Adding breakpoint for DECHashBase.TDECHash.DigestAsBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 636 BreakPoint at:004759A0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2986 VA:002649BF Base:2162688 Address: 004759BF +Adding breakpoint for DECHashBase.TDECHash.DigestAsBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 637 BreakPoint at:004759BF +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2987 VA:002649CB Base:2162688 Address: 004759CB +Adding breakpoint for DECHashBase.TDECHash.DigestAsBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 638 BreakPoint at:004759CB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2988 VA:00264A04 Base:2162688 Address: 00475A04 +Adding breakpoint for DECHashBase.TDECHash.DigestAsBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 639 BreakPoint at:00475A04 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2989 VA:00264A08 Base:2162688 Address: 00475A08 +Adding breakpoint for DECHashBase.TDECHash.DigestAsRawByteString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 642 BreakPoint at:00475A08 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2990 VA:00264A2E Base:2162688 Address: 00475A2E +Adding breakpoint for DECHashBase.TDECHash.DigestAsRawByteString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 643 BreakPoint at:00475A2E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2991 VA:00264A59 Base:2162688 Address: 00475A59 +Adding breakpoint for DECHashBase.TDECHash.DigestAsRawByteString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 644 BreakPoint at:00475A59 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2992 VA:00264A88 Base:2162688 Address: 00475A88 +Adding breakpoint for DECHashBase.TDECHash.DigestAsString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 647 BreakPoint at:00475A88 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2993 VA:00264AAE Base:2162688 Address: 00475AAE +Adding breakpoint for DECHashBase.TDECHash.DigestAsString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 648 BreakPoint at:00475AAE +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2994 VA:00264AD9 Base:2162688 Address: 00475AD9 +Adding breakpoint for DECHashBase.TDECHash.DigestAsString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 649 BreakPoint at:00475AD9 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2995 VA:00264B08 Base:2162688 Address: 00475B08 +Adding breakpoint for DECHashBase.TDECHash.DigestSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 652 BreakPoint at:00475B08 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2996 VA:00264B24 Base:2162688 Address: 00475B24 +Adding breakpoint for DECHashBase.TDECHash.DigestSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 655 BreakPoint at:00475B24 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2997 VA:00264B43 Base:2162688 Address: 00475B43 +Adding breakpoint for DECHashBase.TDECHash.DigestSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 656 BreakPoint at:00475B43 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2998 VA:00264B6C Base:2162688 Address: 00475B6C +Adding breakpoint for DECHashBase.TDECHash.BlockSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 659 BreakPoint at:00475B6C +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:2999 VA:00264B88 Base:2162688 Address: 00475B88 +Adding breakpoint for DECHashBase.TDECHash.BlockSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 662 BreakPoint at:00475B88 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3000 VA:00264BA7 Base:2162688 Address: 00475BA7 +Adding breakpoint for DECHashBase.TDECHash.BlockSize in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 663 BreakPoint at:00475BA7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3001 VA:00264BD0 Base:2162688 Address: 00475BD0 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 668 BreakPoint at:00475BD0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3002 VA:00264BE0 Base:2162688 Address: 00475BE0 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 669 BreakPoint at:00475BE0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3003 VA:00264BE8 Base:2162688 Address: 00475BE8 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 671 BreakPoint at:00475BE8 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3004 VA:00264BF7 Base:2162688 Address: 00475BF7 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 672 BreakPoint at:00475BF7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3005 VA:00264C07 Base:2162688 Address: 00475C07 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 674 BreakPoint at:00475C07 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3006 VA:00264C0D Base:2162688 Address: 00475C0D +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 678 BreakPoint at:00475C0D +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3007 VA:00264C13 Base:2162688 Address: 00475C13 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 679 BreakPoint at:00475C13 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3008 VA:00264C23 Base:2162688 Address: 00475C23 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 680 BreakPoint at:00475C23 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3009 VA:00264C2E Base:2162688 Address: 00475C2E +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 683 BreakPoint at:00475C2E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3010 VA:00264C46 Base:2162688 Address: 00475C46 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 686 BreakPoint at:00475C46 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3011 VA:00264C4E Base:2162688 Address: 00475C4E +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 687 BreakPoint at:00475C4E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3012 VA:00264C59 Base:2162688 Address: 00475C59 +Adding breakpoint for DECHashBase.TDECHash.CalcBuffer in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 688 BreakPoint at:00475C59 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3013 VA:00264C60 Base:2162688 Address: 00475C60 +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 691 BreakPoint at:00475C60 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3014 VA:00264C6F Base:2162688 Address: 00475C6F +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 692 BreakPoint at:00475C6F +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3015 VA:00264C7D Base:2162688 Address: 00475C7D +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 693 BreakPoint at:00475C7D +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3016 VA:00264C9A Base:2162688 Address: 00475C9A +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 694 BreakPoint at:00475C9A +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3017 VA:00264CD7 Base:2162688 Address: 00475CD7 +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 696 BreakPoint at:00475CD7 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3018 VA:00264D00 Base:2162688 Address: 00475D00 +Adding breakpoint for DECHashBase.TDECHash.CalcBytes in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 697 BreakPoint at:00475D00 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3019 VA:00264D04 Base:2162688 Address: 00475D04 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 703 BreakPoint at:00475D04 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3020 VA:00264D30 Base:2162688 Address: 00475D30 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 704 BreakPoint at:00475D30 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3021 VA:00264D38 Base:2162688 Address: 00475D38 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 705 BreakPoint at:00475D38 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3022 VA:00264D55 Base:2162688 Address: 00475D55 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 708 BreakPoint at:00475D55 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3023 VA:00264D7A Base:2162688 Address: 00475D7A +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 709 BreakPoint at:00475D7A +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3024 VA:00264DA5 Base:2162688 Address: 00475DA5 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 714 BreakPoint at:00475DA5 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3025 VA:00264DC5 Base:2162688 Address: 00475DC5 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 718 BreakPoint at:00475DC5 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3026 VA:00264DD3 Base:2162688 Address: 00475DD3 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 719 BreakPoint at:00475DD3 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3027 VA:00264E04 Base:2162688 Address: 00475E04 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 721 BreakPoint at:00475E04 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3028 VA:00264E44 Base:2162688 Address: 00475E44 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 726 BreakPoint at:00475E44 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3029 VA:00264E73 Base:2162688 Address: 00475E73 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 727 BreakPoint at:00475E73 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3030 VA:00264E7B Base:2162688 Address: 00475E7B +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 728 BreakPoint at:00475E7B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3031 VA:00264E98 Base:2162688 Address: 00475E98 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 730 BreakPoint at:00475E98 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3032 VA:00264F08 Base:2162688 Address: 00475F08 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 742 BreakPoint at:00475F08 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3033 VA:00264F16 Base:2162688 Address: 00475F16 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 743 BreakPoint at:00475F16 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3034 VA:00264F47 Base:2162688 Address: 00475F47 +Adding breakpoint for DECHashBase.TDECHash.CalcString in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 745 BreakPoint at:00475F47 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3035 VA:00264F88 Base:2162688 Address: 00475F88 +Adding breakpoint for DECHashBase.TDECHash.ClassByIdentity in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 748 BreakPoint at:00475F88 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3036 VA:00264F91 Base:2162688 Address: 00475F91 +Adding breakpoint for DECHashBase.TDECHash.ClassByIdentity in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 749 BreakPoint at:00475F91 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3037 VA:00264FA4 Base:2162688 Address: 00475FA4 +Adding breakpoint for DECHashBase.TDECHash.ClassByIdentity in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 750 BreakPoint at:00475FA4 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3038 VA:00264FB0 Base:2162688 Address: 00475FB0 +Adding breakpoint for DECHashBase.TDECHash.ClassByName in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 753 BreakPoint at:00475FB0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3039 VA:00264FBC Base:2162688 Address: 00475FBC +Adding breakpoint for DECHashBase.TDECHash.ClassByName in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 754 BreakPoint at:00475FBC +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3040 VA:00264FCC Base:2162688 Address: 00475FCC +Adding breakpoint for DECHashBase.TDECHash.ClassByName in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 755 BreakPoint at:00475FCC +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3041 VA:00264FD4 Base:2162688 Address: 00475FD4 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +Creating class info for DECHashBase class ModuleUnload +TBreakPoint.Activate: +Activate DECHashBase.pas line 762 BreakPoint at:00475FD4 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3042 VA:00264FF0 Base:2162688 Address: 00475FF0 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 765 BreakPoint at:00475FF0 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3043 VA:0026501B Base:2162688 Address: 0047601B +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 768 BreakPoint at:0047601B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3044 VA:00265028 Base:2162688 Address: 00476028 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 769 BreakPoint at:00476028 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3045 VA:00265054 Base:2162688 Address: 00476054 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 771 BreakPoint at:00476054 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3046 VA:0026507B Base:2162688 Address: 0047607B +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 772 BreakPoint at:0047607B +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3047 VA:002650A2 Base:2162688 Address: 004760A2 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 773 BreakPoint at:004760A2 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3048 VA:002650A5 Base:2162688 Address: 004760A5 +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 769 BreakPoint at:004760A5 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3049 VA:002650AB Base:2162688 Address: 004760AB +Adding breakpoint for DECHashBase.ModuleUnload in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 775 BreakPoint at:004760AB +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3050 VA:002650D4 Base:2162688 Address: 004760D4 +Adding breakpoint for DECHashBase.Finalization in DECHashBase.pas +Creating class info for DECHashBase class DECHashBase +TBreakPoint.Activate: +Activate DECHashBase.pas line 791 BreakPoint at:004760D4 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3051 VA:002650E9 Base:2162688 Address: 004760E9 +Adding breakpoint for DECHashBase.Finalization in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 794 BreakPoint at:004760E9 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:3052 VA:002650F3 Base:2162688 Address: 004760F3 +Adding breakpoint for DECHashBase.Finalization in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 795 BreakPoint at:004760F3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3053 VA:0026630C Base:2162688 Address: 0047730C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.MaxSaltLength in DECHashAuthentication.pas +Creating class info for DECHashAuthentication class TDECPasswordHash +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 727 BreakPoint at:0047730C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3054 VA:00266314 Base:2162688 Address: 00477314 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.MinSaltLength in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 732 BreakPoint at:00477314 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3055 VA:0026631C Base:2162688 Address: 0047731C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.MaxPasswordLength in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 737 BreakPoint at:0047731C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3056 VA:00266364 Base:2162688 Address: 00477364 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.IsPasswordHash in DECHashAuthentication.pas +Creating class info for DECHashAuthentication class TDECHashAuthentication +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 952 BreakPoint at:00477364 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3057 VA:0026636D Base:2162688 Address: 0047736D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.IsPasswordHash in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 953 BreakPoint at:0047736D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3058 VA:0026637E Base:2162688 Address: 0047737E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.IsPasswordHash in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 954 BreakPoint at:0047737E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3059 VA:00266388 Base:2162688 Address: 00477388 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1014 BreakPoint at:00477388 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3060 VA:00266397 Base:2162688 Address: 00477397 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1015 BreakPoint at:00477397 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3061 VA:002663B5 Base:2162688 Address: 004773B5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1016 BreakPoint at:004773B5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3062 VA:002663BC Base:2162688 Address: 004773BC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1019 BreakPoint at:004773BC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3063 VA:002663CC Base:2162688 Address: 004773CC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1020 BreakPoint at:004773CC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3064 VA:002665D9 Base:2162688 Address: 004775D9 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1021 BreakPoint at:004775D9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3065 VA:002666A0 Base:2162688 Address: 004776A0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1025 BreakPoint at:004776A0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3066 VA:002666B0 Base:2162688 Address: 004776B0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1026 BreakPoint at:004776B0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3067 VA:002668A3 Base:2162688 Address: 004778A3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1027 BreakPoint at:004778A3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3068 VA:0026696C Base:2162688 Address: 0047796C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1031 BreakPoint at:0047796C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3069 VA:0026697C Base:2162688 Address: 0047797C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1032 BreakPoint at:0047797C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3070 VA:0026699D Base:2162688 Address: 0047799D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1033 BreakPoint at:0047799D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3071 VA:00266BF4 Base:2162688 Address: 00477BF4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1035 BreakPoint at:00477BF4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3072 VA:00266E01 Base:2162688 Address: 00477E01 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF1 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1036 BreakPoint at:00477E01 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3073 VA:00266EC8 Base:2162688 Address: 00477EC8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1040 BreakPoint at:00477EC8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3074 VA:00266ED8 Base:2162688 Address: 00477ED8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1041 BreakPoint at:00477ED8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3075 VA:002670CD Base:2162688 Address: 004780CD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1042 BreakPoint at:004780CD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3076 VA:00267194 Base:2162688 Address: 00478194 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1046 BreakPoint at:00478194 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3077 VA:002671A4 Base:2162688 Address: 004781A4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1047 BreakPoint at:004781A4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3078 VA:002671C5 Base:2162688 Address: 004781C5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1048 BreakPoint at:004781C5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3079 VA:0026741E Base:2162688 Address: 0047841E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1050 BreakPoint at:0047841E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3080 VA:0026762D Base:2162688 Address: 0047862D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1051 BreakPoint at:0047862D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3081 VA:002676F4 Base:2162688 Address: 004786F4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1055 BreakPoint at:004786F4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3082 VA:00267704 Base:2162688 Address: 00478704 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1056 BreakPoint at:00478704 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3083 VA:002678F7 Base:2162688 Address: 004788F7 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1057 BreakPoint at:004788F7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3084 VA:002679C0 Base:2162688 Address: 004789C0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1061 BreakPoint at:004789C0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3085 VA:002679D0 Base:2162688 Address: 004789D0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1062 BreakPoint at:004789D0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3086 VA:002679F1 Base:2162688 Address: 004789F1 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1063 BreakPoint at:004789F1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3087 VA:00267C48 Base:2162688 Address: 00478C48 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1065 BreakPoint at:00478C48 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3088 VA:00267E55 Base:2162688 Address: 00478E55 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDF3 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1066 BreakPoint at:00478E55 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3089 VA:00267F1C Base:2162688 Address: 00478F1C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1077 BreakPoint at:00478F1C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3090 VA:00267F2C Base:2162688 Address: 00478F2C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1078 BreakPoint at:00478F2C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3091 VA:00267F46 Base:2162688 Address: 00478F46 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1079 BreakPoint at:00478F46 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3092 VA:00267F60 Base:2162688 Address: 00478F60 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1080 BreakPoint at:00478F60 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3093 VA:00267F7A Base:2162688 Address: 00478F7A +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1081 BreakPoint at:00478F7A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3094 VA:00267F98 Base:2162688 Address: 00478F98 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1083 BreakPoint at:00478F98 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3095 VA:00267FB2 Base:2162688 Address: 00478FB2 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1084 BreakPoint at:00478FB2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3096 VA:00267FBD Base:2162688 Address: 00478FBD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1086 BreakPoint at:00478FBD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3097 VA:00267FC7 Base:2162688 Address: 00478FC7 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1087 BreakPoint at:00478FC7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3098 VA:00267FD5 Base:2162688 Address: 00478FD5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1088 BreakPoint at:00478FD5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3099 VA:00267FF5 Base:2162688 Address: 00478FF5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1090 BreakPoint at:00478FF5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3100 VA:00267FFD Base:2162688 Address: 00478FFD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1092 BreakPoint at:00478FFD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3101 VA:00268011 Base:2162688 Address: 00479011 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1093 BreakPoint at:00479011 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3102 VA:00268021 Base:2162688 Address: 00479021 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1094 BreakPoint at:00479021 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3103 VA:00268043 Base:2162688 Address: 00479043 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1096 BreakPoint at:00479043 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3104 VA:00268053 Base:2162688 Address: 00479053 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1098 BreakPoint at:00479053 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3105 VA:00268067 Base:2162688 Address: 00479067 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1099 BreakPoint at:00479067 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3106 VA:00268077 Base:2162688 Address: 00479077 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1100 BreakPoint at:00479077 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3107 VA:00268085 Base:2162688 Address: 00479085 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1102 BreakPoint at:00479085 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3108 VA:00268099 Base:2162688 Address: 00479099 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1103 BreakPoint at:00479099 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3109 VA:002680A9 Base:2162688 Address: 004790A9 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1104 BreakPoint at:004790A9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3110 VA:002680B7 Base:2162688 Address: 004790B7 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1106 BreakPoint at:004790B7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3111 VA:002680BF Base:2162688 Address: 004790BF +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1108 BreakPoint at:004790BF +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3112 VA:002680C3 Base:2162688 Address: 004790C3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1110 BreakPoint at:004790C3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3113 VA:002680EB Base:2162688 Address: 004790EB +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1111 BreakPoint at:004790EB +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3114 VA:0026810C Base:2162688 Address: 0047910C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1110 BreakPoint at:0047910C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3115 VA:00268111 Base:2162688 Address: 00479111 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1113 BreakPoint at:00479111 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3116 VA:0026812D Base:2162688 Address: 0047912D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1114 BreakPoint at:0047912D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3117 VA:00268130 Base:2162688 Address: 00479130 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1088 BreakPoint at:00479130 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3118 VA:00268146 Base:2162688 Address: 00479146 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1116 BreakPoint at:00479146 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3119 VA:00268158 Base:2162688 Address: 00479158 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1118 BreakPoint at:00479158 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3120 VA:00268220 Base:2162688 Address: 00479220 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1123 BreakPoint at:00479220 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3121 VA:0026822F Base:2162688 Address: 0047922F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1124 BreakPoint at:0047922F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3122 VA:0026824C Base:2162688 Address: 0047924C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1125 BreakPoint at:0047924C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3123 VA:002682C3 Base:2162688 Address: 004792C3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1127 BreakPoint at:004792C3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3124 VA:00268327 Base:2162688 Address: 00479327 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.KDFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1128 BreakPoint at:00479327 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3125 VA:00268330 Base:2162688 Address: 00479330 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1132 BreakPoint at:00479330 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3126 VA:0026833F Base:2162688 Address: 0047933F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1133 BreakPoint at:0047933F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3127 VA:00268361 Base:2162688 Address: 00479361 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1134 BreakPoint at:00479361 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3128 VA:00268368 Base:2162688 Address: 00479368 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1139 BreakPoint at:00479368 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3129 VA:00268377 Base:2162688 Address: 00479377 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1140 BreakPoint at:00479377 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3130 VA:002683C2 Base:2162688 Address: 004793C2 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.MGFx in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1141 BreakPoint at:004793C2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3131 VA:002683C8 Base:2162688 Address: 004793C8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1144 BreakPoint at:004793C8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3132 VA:002683EE Base:2162688 Address: 004793EE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1145 BreakPoint at:004793EE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3133 VA:00268418 Base:2162688 Address: 00479418 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1146 BreakPoint at:00479418 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3134 VA:00268498 Base:2162688 Address: 00479498 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1156 BreakPoint at:00479498 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3135 VA:002684BE Base:2162688 Address: 004794BE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1157 BreakPoint at:004794BE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3136 VA:002684C8 Base:2162688 Address: 004794C8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1158 BreakPoint at:004794C8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3137 VA:002684D6 Base:2162688 Address: 004794D6 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1159 BreakPoint at:004794D6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3138 VA:002684EA Base:2162688 Address: 004794EA +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1160 BreakPoint at:004794EA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3139 VA:002684FE Base:2162688 Address: 004794FE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1161 BreakPoint at:004794FE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3140 VA:0026851B Base:2162688 Address: 0047951B +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1163 BreakPoint at:0047951B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3141 VA:00268535 Base:2162688 Address: 00479535 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1164 BreakPoint at:00479535 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3142 VA:0026854F Base:2162688 Address: 0047954F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1166 BreakPoint at:0047954F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3143 VA:00268554 Base:2162688 Address: 00479554 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1168 BreakPoint at:00479554 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3144 VA:0026855C Base:2162688 Address: 0047955C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1170 BreakPoint at:0047955C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3145 VA:0026856A Base:2162688 Address: 0047956A +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1171 BreakPoint at:0047956A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3146 VA:00268575 Base:2162688 Address: 00479575 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1174 BreakPoint at:00479575 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3147 VA:00268588 Base:2162688 Address: 00479588 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1178 BreakPoint at:00479588 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3148 VA:002685BD Base:2162688 Address: 004795BD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1179 BreakPoint at:004795BD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3149 VA:002685F2 Base:2162688 Address: 004795F2 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1180 BreakPoint at:004795F2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3150 VA:002685FD Base:2162688 Address: 004795FD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1176 BreakPoint at:004795FD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3151 VA:00268613 Base:2162688 Address: 00479613 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1183 BreakPoint at:00479613 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3152 VA:0026861F Base:2162688 Address: 0047961F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1185 BreakPoint at:0047961F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3153 VA:00268651 Base:2162688 Address: 00479651 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1186 BreakPoint at:00479651 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3154 VA:00268683 Base:2162688 Address: 00479683 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1187 BreakPoint at:00479683 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3155 VA:0026868E Base:2162688 Address: 0047968E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1183 BreakPoint at:0047968E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3156 VA:00268698 Base:2162688 Address: 00479698 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1192 BreakPoint at:00479698 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3157 VA:002686B3 Base:2162688 Address: 004796B3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1193 BreakPoint at:004796B3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3158 VA:002686CE Base:2162688 Address: 004796CE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1194 BreakPoint at:004796CE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3159 VA:002686D9 Base:2162688 Address: 004796D9 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1190 BreakPoint at:004796D9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3160 VA:002686EB Base:2162688 Address: 004796EB +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1197 BreakPoint at:004796EB +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3161 VA:002686F3 Base:2162688 Address: 004796F3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1199 BreakPoint at:004796F3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3162 VA:0026870B Base:2162688 Address: 0047970B +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1200 BreakPoint at:0047970B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3163 VA:00268723 Base:2162688 Address: 00479723 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1201 BreakPoint at:00479723 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3164 VA:0026872E Base:2162688 Address: 0047972E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1197 BreakPoint at:0047972E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3165 VA:00268736 Base:2162688 Address: 00479736 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1204 BreakPoint at:00479736 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3166 VA:0026873E Base:2162688 Address: 0047973E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1205 BreakPoint at:0047973E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3167 VA:0026875E Base:2162688 Address: 0047975E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1206 BreakPoint at:0047975E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3168 VA:0026877B Base:2162688 Address: 0047977B +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1207 BreakPoint at:0047977B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3169 VA:002687B2 Base:2162688 Address: 004797B2 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1208 BreakPoint at:004797B2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3170 VA:002687BA Base:2162688 Address: 004797BA +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1209 BreakPoint at:004797BA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3171 VA:002687C5 Base:2162688 Address: 004797C5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1211 BreakPoint at:004797C5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3172 VA:002687CD Base:2162688 Address: 004797CD +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1212 BreakPoint at:004797CD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3173 VA:002687ED Base:2162688 Address: 004797ED +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1213 BreakPoint at:004797ED +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3174 VA:0026880F Base:2162688 Address: 0047980F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1214 BreakPoint at:0047980F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3175 VA:00268817 Base:2162688 Address: 00479817 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1216 BreakPoint at:00479817 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3176 VA:0026882F Base:2162688 Address: 0047982F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1218 BreakPoint at:0047982F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3177 VA:00268841 Base:2162688 Address: 00479841 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.HMAC in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1220 BreakPoint at:00479841 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3178 VA:00268874 Base:2162688 Address: 00479874 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1233 BreakPoint at:00479874 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3179 VA:002688A6 Base:2162688 Address: 004798A6 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1234 BreakPoint at:004798A6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3180 VA:002688B0 Base:2162688 Address: 004798B0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1235 BreakPoint at:004798B0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3181 VA:002688BE Base:2162688 Address: 004798BE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1237 BreakPoint at:004798BE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3182 VA:002688D2 Base:2162688 Address: 004798D2 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1238 BreakPoint at:004798D2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3183 VA:002688EC Base:2162688 Address: 004798EC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1239 BreakPoint at:004798EC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3184 VA:00268924 Base:2162688 Address: 00479924 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1240 BreakPoint at:00479924 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3185 VA:00268938 Base:2162688 Address: 00479938 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1241 BreakPoint at:00479938 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3186 VA:00268955 Base:2162688 Address: 00479955 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1242 BreakPoint at:00479955 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3187 VA:00268972 Base:2162688 Address: 00479972 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1243 BreakPoint at:00479972 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3188 VA:00268983 Base:2162688 Address: 00479983 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1244 BreakPoint at:00479983 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3189 VA:002689A7 Base:2162688 Address: 004799A7 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1245 BreakPoint at:004799A7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3190 VA:002689C1 Base:2162688 Address: 004799C1 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1249 BreakPoint at:004799C1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3191 VA:002689C6 Base:2162688 Address: 004799C6 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1250 BreakPoint at:004799C6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3192 VA:002689CE Base:2162688 Address: 004799CE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1252 BreakPoint at:004799CE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3193 VA:002689DC Base:2162688 Address: 004799DC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1253 BreakPoint at:004799DC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3194 VA:002689E4 Base:2162688 Address: 004799E4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1256 BreakPoint at:004799E4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3195 VA:002689F5 Base:2162688 Address: 004799F5 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1258 BreakPoint at:004799F5 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3196 VA:00268A0F Base:2162688 Address: 00479A0F +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1259 BreakPoint at:00479A0F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3197 VA:00268A29 Base:2162688 Address: 00479A29 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1260 BreakPoint at:00479A29 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3198 VA:00268A31 Base:2162688 Address: 00479A31 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1262 BreakPoint at:00479A31 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3199 VA:00268A61 Base:2162688 Address: 00479A61 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1263 BreakPoint at:00479A61 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3200 VA:00268A91 Base:2162688 Address: 00479A91 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1264 BreakPoint at:00479A91 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3201 VA:00268A9C Base:2162688 Address: 00479A9C +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1260 BreakPoint at:00479A9C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3202 VA:00268AA4 Base:2162688 Address: 00479AA4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1266 BreakPoint at:00479AA4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3203 VA:00268AAC Base:2162688 Address: 00479AAC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1268 BreakPoint at:00479AAC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3204 VA:00268AC4 Base:2162688 Address: 00479AC4 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1269 BreakPoint at:00479AC4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3205 VA:00268ADC Base:2162688 Address: 00479ADC +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1270 BreakPoint at:00479ADC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3206 VA:00268AE7 Base:2162688 Address: 00479AE7 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1266 BreakPoint at:00479AE7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3207 VA:00268AEF Base:2162688 Address: 00479AEF +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1274 BreakPoint at:00479AEF +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3208 VA:00268B04 Base:2162688 Address: 00479B04 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1276 BreakPoint at:00479B04 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3209 VA:00268B2B Base:2162688 Address: 00479B2B +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1277 BreakPoint at:00479B2B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3210 VA:00268B52 Base:2162688 Address: 00479B52 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1278 BreakPoint at:00479B52 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3211 VA:00268B79 Base:2162688 Address: 00479B79 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1279 BreakPoint at:00479B79 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3212 VA:00268BA0 Base:2162688 Address: 00479BA0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1280 BreakPoint at:00479BA0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3213 VA:00268BC0 Base:2162688 Address: 00479BC0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1281 BreakPoint at:00479BC0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3214 VA:00268BD1 Base:2162688 Address: 00479BD1 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1283 BreakPoint at:00479BD1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3215 VA:00268BE6 Base:2162688 Address: 00479BE6 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1285 BreakPoint at:00479BE6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3216 VA:00268BEE Base:2162688 Address: 00479BEE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1286 BreakPoint at:00479BEE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3217 VA:00268C0E Base:2162688 Address: 00479C0E +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1287 BreakPoint at:00479C0E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3218 VA:00268C45 Base:2162688 Address: 00479C45 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1288 BreakPoint at:00479C45 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3219 VA:00268C4D Base:2162688 Address: 00479C4D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1289 BreakPoint at:00479C4D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3220 VA:00268C58 Base:2162688 Address: 00479C58 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1291 BreakPoint at:00479C58 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3221 VA:00268C60 Base:2162688 Address: 00479C60 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1292 BreakPoint at:00479C60 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3222 VA:00268C80 Base:2162688 Address: 00479C80 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1293 BreakPoint at:00479C80 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3223 VA:00268CA0 Base:2162688 Address: 00479CA0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1294 BreakPoint at:00479CA0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3224 VA:00268CA8 Base:2162688 Address: 00479CA8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1295 BreakPoint at:00479CA8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3225 VA:00268CB3 Base:2162688 Address: 00479CB3 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1297 BreakPoint at:00479CB3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3226 VA:00268CB8 Base:2162688 Address: 00479CB8 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1298 BreakPoint at:00479CB8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3227 VA:00268CC0 Base:2162688 Address: 00479CC0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1300 BreakPoint at:00479CC0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3228 VA:00268CEE Base:2162688 Address: 00479CEE +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1301 BreakPoint at:00479CEE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3229 VA:00268CF9 Base:2162688 Address: 00479CF9 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1298 BreakPoint at:00479CF9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3230 VA:00268D01 Base:2162688 Address: 00479D01 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1303 BreakPoint at:00479D01 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3231 VA:00268D09 Base:2162688 Address: 00479D09 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1305 BreakPoint at:00479D09 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3232 VA:00268D37 Base:2162688 Address: 00479D37 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1306 BreakPoint at:00479D37 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3233 VA:00268D42 Base:2162688 Address: 00479D42 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1303 BreakPoint at:00479D42 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3234 VA:00268D4A Base:2162688 Address: 00479D4A +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1308 BreakPoint at:00479D4A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3235 VA:00268D4D Base:2162688 Address: 00479D4D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1283 BreakPoint at:00479D4D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3236 VA:00268D56 Base:2162688 Address: 00479D56 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1311 BreakPoint at:00479D56 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3237 VA:00268D6A Base:2162688 Address: 00479D6A +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1315 BreakPoint at:00479D6A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3238 VA:00268D6D Base:2162688 Address: 00479D6D +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1274 BreakPoint at:00479D6D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3239 VA:00268D83 Base:2162688 Address: 00479D83 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1317 BreakPoint at:00479D83 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3240 VA:00268D95 Base:2162688 Address: 00479D95 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1321 BreakPoint at:00479D95 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3241 VA:00268DAF Base:2162688 Address: 00479DAF +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1322 BreakPoint at:00479DAF +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3242 VA:00268DE0 Base:2162688 Address: 00479DE0 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1325 BreakPoint at:00479DE0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3243 VA:00268E06 Base:2162688 Address: 00479E06 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1326 BreakPoint at:00479E06 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3244 VA:00268E38 Base:2162688 Address: 00479E38 +Adding breakpoint for DECHashAuthentication.TDECHashAuthentication.PBKDF2 in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1327 BreakPoint at:00479E38 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3245 VA:00268E6C Base:2162688 Address: 00479E6C +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +Creating class info for DECHashAuthentication class TDECHashExtended +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1337 BreakPoint at:00479E6C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3246 VA:00268E92 Base:2162688 Address: 00479E92 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1338 BreakPoint at:00479E92 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3247 VA:00268EAC Base:2162688 Address: 00479EAC +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1340 BreakPoint at:00479EAC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3248 VA:00268EBA Base:2162688 Address: 00479EBA +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1341 BreakPoint at:00479EBA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3249 VA:00268EC8 Base:2162688 Address: 00479EC8 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1342 BreakPoint at:00479EC8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3250 VA:00268ED6 Base:2162688 Address: 00479ED6 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1343 BreakPoint at:00479ED6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3251 VA:00268EDE Base:2162688 Address: 00479EDE +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1345 BreakPoint at:00479EDE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3252 VA:00268EE8 Base:2162688 Address: 00479EE8 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1346 BreakPoint at:00479EE8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3253 VA:00268EF3 Base:2162688 Address: 00479EF3 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1348 BreakPoint at:00479EF3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3254 VA:00268F01 Base:2162688 Address: 00479F01 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1350 BreakPoint at:00479F01 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3255 VA:00268F11 Base:2162688 Address: 00479F11 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1351 BreakPoint at:00479F11 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3256 VA:00268F2B Base:2162688 Address: 00479F2B +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1354 BreakPoint at:00479F2B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3257 VA:00268F34 Base:2162688 Address: 00479F34 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1355 BreakPoint at:00479F34 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3258 VA:00268F43 Base:2162688 Address: 00479F43 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1357 BreakPoint at:00479F43 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3259 VA:00268F5C Base:2162688 Address: 00479F5C +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1359 BreakPoint at:00479F5C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3260 VA:00268F62 Base:2162688 Address: 00479F62 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1360 BreakPoint at:00479F62 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3261 VA:00268F76 Base:2162688 Address: 00479F76 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1362 BreakPoint at:00479F76 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3262 VA:00268F89 Base:2162688 Address: 00479F89 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1364 BreakPoint at:00479F89 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3263 VA:00268F8F Base:2162688 Address: 00479F8F +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1365 BreakPoint at:00479F8F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3264 VA:00268F9B Base:2162688 Address: 00479F9B +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1367 BreakPoint at:00479F9B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3265 VA:00268FBC Base:2162688 Address: 00479FBC +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1369 BreakPoint at:00479FBC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3266 VA:00268FCE Base:2162688 Address: 00479FCE +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1370 BreakPoint at:00479FCE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3267 VA:00268FED Base:2162688 Address: 00479FED +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1372 BreakPoint at:00479FED +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3268 VA:0026900C Base:2162688 Address: 0047A00C +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1376 BreakPoint at:0047A00C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3269 VA:00269029 Base:2162688 Address: 0047A029 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1377 BreakPoint at:0047A029 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3270 VA:0026903B Base:2162688 Address: 0047A03B +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1378 BreakPoint at:0047A03B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3271 VA:00269052 Base:2162688 Address: 0047A052 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1379 BreakPoint at:0047A052 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3272 VA:00269072 Base:2162688 Address: 0047A072 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1380 BreakPoint at:0047A072 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3273 VA:00269092 Base:2162688 Address: 0047A092 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1381 BreakPoint at:0047A092 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3274 VA:002690A3 Base:2162688 Address: 0047A0A3 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1382 BreakPoint at:0047A0A3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3275 VA:002690B4 Base:2162688 Address: 0047A0B4 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1384 BreakPoint at:0047A0B4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3276 VA:002690BA Base:2162688 Address: 0047A0BA +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1385 BreakPoint at:0047A0BA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3277 VA:002690D0 Base:2162688 Address: 0047A0D0 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1374 BreakPoint at:0047A0D0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3278 VA:002690E8 Base:2162688 Address: 0047A0E8 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1389 BreakPoint at:0047A0E8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3279 VA:002690F1 Base:2162688 Address: 0047A0F1 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1390 BreakPoint at:0047A0F1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3280 VA:00269104 Base:2162688 Address: 0047A104 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1392 BreakPoint at:0047A104 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3281 VA:0026910C Base:2162688 Address: 0047A10C +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1393 BreakPoint at:0047A10C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3282 VA:00269135 Base:2162688 Address: 0047A135 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1395 BreakPoint at:0047A135 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3283 VA:0026913D Base:2162688 Address: 0047A13D +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1396 BreakPoint at:0047A13D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3284 VA:00269143 Base:2162688 Address: 0047A143 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1397 BreakPoint at:0047A143 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3285 VA:00269163 Base:2162688 Address: 0047A163 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1399 BreakPoint at:0047A163 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3286 VA:00269284 Base:2162688 Address: 0047A284 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1405 BreakPoint at:0047A284 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3287 VA:002692AA Base:2162688 Address: 0047A2AA +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1406 BreakPoint at:0047A2AA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3288 VA:002692C2 Base:2162688 Address: 0047A2C2 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1407 BreakPoint at:0047A2C2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3289 VA:002692E0 Base:2162688 Address: 0047A2E0 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1408 BreakPoint at:0047A2E0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3290 VA:00269314 Base:2162688 Address: 0047A314 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1417 BreakPoint at:0047A314 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3291 VA:00269337 Base:2162688 Address: 0047A337 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1418 BreakPoint at:0047A337 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3292 VA:00269351 Base:2162688 Address: 0047A351 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1420 BreakPoint at:0047A351 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3293 VA:0026935F Base:2162688 Address: 0047A35F +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1421 BreakPoint at:0047A35F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3294 VA:0026936D Base:2162688 Address: 0047A36D +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1422 BreakPoint at:0047A36D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3295 VA:00269377 Base:2162688 Address: 0047A377 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1423 BreakPoint at:0047A377 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3296 VA:00269382 Base:2162688 Address: 0047A382 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1425 BreakPoint at:0047A382 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3297 VA:00269390 Base:2162688 Address: 0047A390 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1427 BreakPoint at:0047A390 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3298 VA:002693A0 Base:2162688 Address: 0047A3A0 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1428 BreakPoint at:0047A3A0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3299 VA:002693BA Base:2162688 Address: 0047A3BA +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1431 BreakPoint at:0047A3BA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3300 VA:002693C9 Base:2162688 Address: 0047A3C9 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1432 BreakPoint at:0047A3C9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3301 VA:002693D8 Base:2162688 Address: 0047A3D8 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1434 BreakPoint at:0047A3D8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3302 VA:002693F1 Base:2162688 Address: 0047A3F1 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1436 BreakPoint at:0047A3F1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3303 VA:002693F7 Base:2162688 Address: 0047A3F7 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1437 BreakPoint at:0047A3F7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3304 VA:0026940B Base:2162688 Address: 0047A40B +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1439 BreakPoint at:0047A40B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3305 VA:0026941E Base:2162688 Address: 0047A41E +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1441 BreakPoint at:0047A41E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3306 VA:00269424 Base:2162688 Address: 0047A424 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1442 BreakPoint at:0047A424 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3307 VA:00269430 Base:2162688 Address: 0047A430 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1444 BreakPoint at:0047A430 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3308 VA:00269451 Base:2162688 Address: 0047A451 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1446 BreakPoint at:0047A451 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3309 VA:00269463 Base:2162688 Address: 0047A463 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1447 BreakPoint at:0047A463 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3310 VA:00269482 Base:2162688 Address: 0047A482 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1449 BreakPoint at:0047A482 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3311 VA:002694A1 Base:2162688 Address: 0047A4A1 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1453 BreakPoint at:0047A4A1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3312 VA:002694BE Base:2162688 Address: 0047A4BE +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1454 BreakPoint at:0047A4BE +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3313 VA:002694D0 Base:2162688 Address: 0047A4D0 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1455 BreakPoint at:0047A4D0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3314 VA:002694E7 Base:2162688 Address: 0047A4E7 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1456 BreakPoint at:0047A4E7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3315 VA:00269507 Base:2162688 Address: 0047A507 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1457 BreakPoint at:0047A507 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3316 VA:00269527 Base:2162688 Address: 0047A527 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1458 BreakPoint at:0047A527 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3317 VA:00269538 Base:2162688 Address: 0047A538 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1459 BreakPoint at:0047A538 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3318 VA:00269549 Base:2162688 Address: 0047A549 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1461 BreakPoint at:0047A549 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3319 VA:0026954F Base:2162688 Address: 0047A54F +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1462 BreakPoint at:0047A54F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3320 VA:00269565 Base:2162688 Address: 0047A565 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1451 BreakPoint at:0047A565 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3321 VA:0026957D Base:2162688 Address: 0047A57D +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1466 BreakPoint at:0047A57D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3322 VA:00269583 Base:2162688 Address: 0047A583 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1468 BreakPoint at:0047A583 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3323 VA:0026958C Base:2162688 Address: 0047A58C +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1469 BreakPoint at:0047A58C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3324 VA:0026959F Base:2162688 Address: 0047A59F +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1470 BreakPoint at:0047A59F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3325 VA:002695B4 Base:2162688 Address: 0047A5B4 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1473 BreakPoint at:0047A5B4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3326 VA:002695BC Base:2162688 Address: 0047A5BC +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1474 BreakPoint at:0047A5BC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3327 VA:002695C2 Base:2162688 Address: 0047A5C2 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1475 BreakPoint at:0047A5C2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3328 VA:002695E2 Base:2162688 Address: 0047A5E2 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcStream in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1477 BreakPoint at:0047A5E2 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3329 VA:002696F4 Base:2162688 Address: 0047A6F4 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1483 BreakPoint at:0047A6F4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3330 VA:00269703 Base:2162688 Address: 0047A703 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1484 BreakPoint at:0047A703 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3331 VA:00269711 Base:2162688 Address: 0047A711 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1485 BreakPoint at:0047A711 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3332 VA:00269725 Base:2162688 Address: 0047A725 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1486 BreakPoint at:0047A725 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3333 VA:00269733 Base:2162688 Address: 0047A733 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1487 BreakPoint at:0047A733 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3334 VA:0026975B Base:2162688 Address: 0047A75B +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1489 BreakPoint at:0047A75B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3335 VA:0026976D Base:2162688 Address: 0047A76D +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1491 BreakPoint at:0047A76D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3336 VA:00269774 Base:2162688 Address: 0047A774 +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1497 BreakPoint at:0047A774 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3337 VA:0026979A Base:2162688 Address: 0047A79A +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1498 BreakPoint at:0047A79A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3338 VA:002697AC Base:2162688 Address: 0047A7AC +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1499 BreakPoint at:0047A7AC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3339 VA:002697CA Base:2162688 Address: 0047A7CA +Adding breakpoint for DECHashAuthentication.TDECHashExtended.CalcFile in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1500 BreakPoint at:0047A7CA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3340 VA:002697FC Base:2162688 Address: 0047A7FC +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1519 BreakPoint at:0047A7FC +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3341 VA:00269808 Base:2162688 Address: 0047A808 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1520 BreakPoint at:0047A808 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3342 VA:0026981C Base:2162688 Address: 0047A81C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1521 BreakPoint at:0047A81C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3343 VA:00269820 Base:2162688 Address: 0047A820 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1524 BreakPoint at:0047A820 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3344 VA:00269842 Base:2162688 Address: 0047A842 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1525 BreakPoint at:0047A842 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3345 VA:0026986B Base:2162688 Address: 0047A86B +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1526 BreakPoint at:0047A86B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3346 VA:002698A6 Base:2162688 Address: 0047A8A6 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1528 BreakPoint at:0047A8A6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3347 VA:002698CF Base:2162688 Address: 0047A8CF +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1529 BreakPoint at:0047A8CF +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3348 VA:0026990A Base:2162688 Address: 0047A90A +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1531 BreakPoint at:0047A90A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3349 VA:0026991E Base:2162688 Address: 0047A91E +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.SetSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1532 BreakPoint at:0047A91E +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3350 VA:00269948 Base:2162688 Address: 0047A948 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptID in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1535 BreakPoint at:0047A948 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3351 VA:00269954 Base:2162688 Address: 0047A954 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptID in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1536 BreakPoint at:0047A954 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3352 VA:0026995C Base:2162688 Address: 0047A95C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptID in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1537 BreakPoint at:0047A95C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3353 VA:00269960 Base:2162688 Address: 0047A960 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptParams in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1541 BreakPoint at:0047A960 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3354 VA:0026996F Base:2162688 Address: 0047A96F +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptParams in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1542 BreakPoint at:0047A96F +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3355 VA:00269977 Base:2162688 Address: 0047A977 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptParams in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1543 BreakPoint at:0047A977 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3356 VA:00269980 Base:2162688 Address: 0047A980 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1549 BreakPoint at:0047A980 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3357 VA:002699A6 Base:2162688 Address: 0047A9A6 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1550 BreakPoint at:0047A9A6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3358 VA:002699B4 Base:2162688 Address: 0047A9B4 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1552 BreakPoint at:0047A9B4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3359 VA:002699F8 Base:2162688 Address: 0047A9F8 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptSalt in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1553 BreakPoint at:0047A9F8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3360 VA:00269A3C Base:2162688 Address: 0047AA3C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1560 BreakPoint at:0047AA3C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3361 VA:00269A69 Base:2162688 Address: 0047AA69 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1561 BreakPoint at:0047AA69 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3362 VA:00269A7C Base:2162688 Address: 0047AA7C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1562 BreakPoint at:0047AA7C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3363 VA:00269A94 Base:2162688 Address: 0047AA94 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1563 BreakPoint at:0047AA94 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3364 VA:00269AA4 Base:2162688 Address: 0047AAA4 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1565 BreakPoint at:0047AAA4 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3365 VA:00269AD3 Base:2162688 Address: 0047AAD3 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1567 BreakPoint at:0047AAD3 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3366 VA:00269ADD Base:2162688 Address: 0047AADD +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1568 BreakPoint at:0047AADD +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3367 VA:00269AE6 Base:2162688 Address: 0047AAE6 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1567 BreakPoint at:0047AAE6 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3368 VA:00269B06 Base:2162688 Address: 0047AB06 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1570 BreakPoint at:0047AB06 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3369 VA:00269B0C Base:2162688 Address: 0047AB0C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1571 BreakPoint at:0047AB0C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3370 VA:00269B13 Base:2162688 Address: 0047AB13 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1565 BreakPoint at:0047AB13 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3371 VA:00269B2C Base:2162688 Address: 0047AB2C +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1573 BreakPoint at:0047AB2C +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3372 VA:00269B4B Base:2162688 Address: 0047AB4B +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1576 BreakPoint at:0047AB4B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3373 VA:00269B71 Base:2162688 Address: 0047AB71 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.ClassByCryptIdentity in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1578 BreakPoint at:0047AB71 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3374 VA:00269BC0 Base:2162688 Address: 0047ABC0 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.DoDone in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1581 BreakPoint at:0047ABC0 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3375 VA:00269BC7 Base:2162688 Address: 0047ABC7 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.DoDone in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1584 BreakPoint at:0047ABC7 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3376 VA:00269BEA Base:2162688 Address: 0047ABEA +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.DoDone in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1585 BreakPoint at:0047ABEA +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3377 VA:00269BFB Base:2162688 Address: 0047ABFB +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.DoDone in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1586 BreakPoint at:0047ABFB +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3378 VA:00269C00 Base:2162688 Address: 0047AC00 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptHash in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1592 BreakPoint at:0047AC00 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3379 VA:00269C25 Base:2162688 Address: 0047AC25 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptHash in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1593 BreakPoint at:0047AC25 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3380 VA:00269C2D Base:2162688 Address: 0047AC2D +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetCryptHash in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1594 BreakPoint at:0047AC2D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3381 VA:00269C58 Base:2162688 Address: 0047AC58 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1602 BreakPoint at:0047AC58 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3382 VA:00269C7B Base:2162688 Address: 0047AC7B +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1603 BreakPoint at:0047AC7B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3383 VA:00269CA9 Base:2162688 Address: 0047ACA9 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1608 BreakPoint at:0047ACA9 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3384 VA:00269CD8 Base:2162688 Address: 0047ACD8 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1618 BreakPoint at:0047ACD8 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3385 VA:00269D0B Base:2162688 Address: 0047AD0B +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1623 BreakPoint at:0047AD0B +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3386 VA:00269D16 Base:2162688 Address: 0047AD16 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1624 BreakPoint at:0047AD16 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3387 VA:00269D22 Base:2162688 Address: 0047AD22 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1626 BreakPoint at:0047AD22 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3388 VA:00269D28 Base:2162688 Address: 0047AD28 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1627 BreakPoint at:0047AD28 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3389 VA:00269D3A Base:2162688 Address: 0047AD3A +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1629 BreakPoint at:0047AD3A +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3390 VA:00269D58 Base:2162688 Address: 0047AD58 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1631 BreakPoint at:0047AD58 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3391 VA:00269DB1 Base:2162688 Address: 0047ADB1 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.GetDigestInCryptFormat in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1635 BreakPoint at:0047ADB1 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3392 VA:00269E00 Base:2162688 Address: 0047AE00 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1640 BreakPoint at:0047AE00 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3393 VA:00269E23 Base:2162688 Address: 0047AE23 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1641 BreakPoint at:0047AE23 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3394 VA:00269E48 Base:2162688 Address: 0047AE48 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1644 BreakPoint at:0047AE48 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3395 VA:00269E78 Base:2162688 Address: 0047AE78 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1649 BreakPoint at:0047AE78 +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3396 VA:00269E9D Base:2162688 Address: 0047AE9D +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1650 BreakPoint at:0047AE9D +Setting BreakPoint for module: DECHashAuthentication unit DECHashAuthentication.pas moduleName: DECHashAuthentication unitModuleName: DECHashAuthentication addr:3397 VA:00269EA1 Base:2162688 Address: 0047AEA1 +Adding breakpoint for DECHashAuthentication.TDECPasswordHash.IsValidPassword in DECHashAuthentication.pas +TBreakPoint.Activate: +Activate DECHashAuthentication.pas line 1651 BreakPoint at:0047AEA1 +Module name "DECHashAuthentication" did not match module from address name "DECHashBitBase" at address:00269ED6 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3399 VA:0026A114 Base:2162688 Address: 0047B114 +Adding breakpoint for DECHashBitBase.TDECHashBit.GetFinalByteLength in DECHashBitBase.pas +Creating class info for DECHashBitBase class TDECHashBit +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 85 BreakPoint at:0047B114 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3400 VA:0026A11D Base:2162688 Address: 0047B11D +Adding breakpoint for DECHashBitBase.TDECHashBit.GetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 86 BreakPoint at:0047B11D +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3401 VA:0026A126 Base:2162688 Address: 0047B126 +Adding breakpoint for DECHashBitBase.TDECHashBit.GetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 87 BreakPoint at:0047B126 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3402 VA:0026A130 Base:2162688 Address: 0047B130 +Adding breakpoint for DECHashBitBase.TDECHashBit.SetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 90 BreakPoint at:0047B130 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3403 VA:0026A14F Base:2162688 Address: 0047B14F +Adding breakpoint for DECHashBitBase.TDECHashBit.SetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 94 BreakPoint at:0047B14F +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3404 VA:0026A155 Base:2162688 Address: 0047B155 +Adding breakpoint for DECHashBitBase.TDECHashBit.SetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 95 BreakPoint at:0047B155 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3405 VA:0026A188 Base:2162688 Address: 0047B188 +Adding breakpoint for DECHashBitBase.TDECHashBit.SetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 97 BreakPoint at:0047B188 +Setting BreakPoint for module: DECHashBitBase unit DECHashBitBase.pas moduleName: DECHashBitBase unitModuleName: DECHashBitBase addr:3406 VA:0026A191 Base:2162688 Address: 0047B191 +Adding breakpoint for DECHashBitBase.TDECHashBit.SetFinalByteLength in DECHashBitBase.pas +TBreakPoint.Activate: +Activate DECHashBitBase.pas line 98 BreakPoint at:0047B191 +Module name "DECHashBitBase" did not match module from address name "DECHash" at address:0026A1BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3408 VA:0026E20C Base:2162688 Address: 0047F20C +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +Creating class info for DECHash class THash_MD2 +TBreakPoint.Activate: +Activate DECHash.pas line 1515 BreakPoint at:0047F20C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3409 VA:0026E218 Base:2162688 Address: 0047F218 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1516 BreakPoint at:0047F218 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3410 VA:0026E21D Base:2162688 Address: 0047F21D +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1518 BreakPoint at:0047F21D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3411 VA:0026E232 Base:2162688 Address: 0047F232 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1519 BreakPoint at:0047F232 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3412 VA:0026E256 Base:2162688 Address: 0047F256 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1520 BreakPoint at:0047F256 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3413 VA:0026E259 Base:2162688 Address: 0047F259 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1516 BreakPoint at:0047F259 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3414 VA:0026E25F Base:2162688 Address: 0047F25F +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1521 BreakPoint at:0047F25F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3415 VA:0026E26C Base:2162688 Address: 0047F26C +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1522 BreakPoint at:0047F26C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3416 VA:0026E271 Base:2162688 Address: 0047F271 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1524 BreakPoint at:0047F271 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3417 VA:0026E29C Base:2162688 Address: 0047F29C +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1525 BreakPoint at:0047F29C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3418 VA:0026E2A9 Base:2162688 Address: 0047F2A9 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1526 BreakPoint at:0047F2A9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3419 VA:0026E2AC Base:2162688 Address: 0047F2AC +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1522 BreakPoint at:0047F2AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3420 VA:0026E2B2 Base:2162688 Address: 0047F2B2 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1527 BreakPoint at:0047F2B2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3421 VA:0026E2B7 Base:2162688 Address: 0047F2B7 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1528 BreakPoint at:0047F2B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3422 VA:0026E2BC Base:2162688 Address: 0047F2BC +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1530 BreakPoint at:0047F2BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3423 VA:0026E2C1 Base:2162688 Address: 0047F2C1 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1532 BreakPoint at:0047F2C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3424 VA:0026E2DB Base:2162688 Address: 0047F2DB +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1533 BreakPoint at:0047F2DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3425 VA:0026E2E8 Base:2162688 Address: 0047F2E8 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1534 BreakPoint at:0047F2E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3426 VA:0026E2EB Base:2162688 Address: 0047F2EB +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1530 BreakPoint at:0047F2EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3427 VA:0026E2F1 Base:2162688 Address: 0047F2F1 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1535 BreakPoint at:0047F2F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3428 VA:0026E2FF Base:2162688 Address: 0047F2FF +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1536 BreakPoint at:0047F2FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3429 VA:0026E302 Base:2162688 Address: 0047F302 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1528 BreakPoint at:0047F302 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3430 VA:0026E308 Base:2162688 Address: 0047F308 +Adding breakpoint for DECHash.THash_MD2.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1537 BreakPoint at:0047F308 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3431 VA:0026E30C Base:2162688 Address: 0047F30C +Adding breakpoint for DECHash.THash_MD2.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1541 BreakPoint at:0047F30C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3432 VA:0026E313 Base:2162688 Address: 0047F313 +Adding breakpoint for DECHash.THash_MD2.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1542 BreakPoint at:0047F313 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3433 VA:0026E325 Base:2162688 Address: 0047F325 +Adding breakpoint for DECHash.THash_MD2.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1543 BreakPoint at:0047F325 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3434 VA:0026E328 Base:2162688 Address: 0047F328 +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1548 BreakPoint at:0047F328 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3435 VA:0026E331 Base:2162688 Address: 0047F331 +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1549 BreakPoint at:0047F331 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3436 VA:0026E340 Base:2162688 Address: 0047F340 +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1550 BreakPoint at:0047F340 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3437 VA:0026E35A Base:2162688 Address: 0047F35A +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1551 BreakPoint at:0047F35A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3438 VA:0026E368 Base:2162688 Address: 0047F368 +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1552 BreakPoint at:0047F368 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3439 VA:0026E37F Base:2162688 Address: 0047F37F +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1553 BreakPoint at:0047F37F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3440 VA:0026E38D Base:2162688 Address: 0047F38D +Adding breakpoint for DECHash.THash_MD2.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1554 BreakPoint at:0047F38D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3441 VA:0026E394 Base:2162688 Address: 0047F394 +Adding breakpoint for DECHash.THash_MD2.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1557 BreakPoint at:0047F394 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3442 VA:0026E39D Base:2162688 Address: 0047F39D +Adding breakpoint for DECHash.THash_MD2.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1558 BreakPoint at:0047F39D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3443 VA:0026E3A6 Base:2162688 Address: 0047F3A6 +Adding breakpoint for DECHash.THash_MD2.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1559 BreakPoint at:0047F3A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3444 VA:0026E3B0 Base:2162688 Address: 0047F3B0 +Adding breakpoint for DECHash.THash_MD2.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1562 BreakPoint at:0047F3B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3445 VA:0026E3B9 Base:2162688 Address: 0047F3B9 +Adding breakpoint for DECHash.THash_MD2.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1563 BreakPoint at:0047F3B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3446 VA:0026E3C0 Base:2162688 Address: 0047F3C0 +Adding breakpoint for DECHash.THash_MD2.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1564 BreakPoint at:0047F3C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3447 VA:0026E3C8 Base:2162688 Address: 0047F3C8 +Adding breakpoint for DECHash.THash_MD2.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1567 BreakPoint at:0047F3C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3448 VA:0026E3D1 Base:2162688 Address: 0047F3D1 +Adding breakpoint for DECHash.THash_MD2.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1568 BreakPoint at:0047F3D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3449 VA:0026E3D8 Base:2162688 Address: 0047F3D8 +Adding breakpoint for DECHash.THash_MD2.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1569 BreakPoint at:0047F3D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3450 VA:0026E3E0 Base:2162688 Address: 0047F3E0 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +Creating class info for DECHash class THashBaseMD4 +TBreakPoint.Activate: +Activate DECHash.pas line 1574 BreakPoint at:0047F3E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3451 VA:0026E3E7 Base:2162688 Address: 0047F3E7 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1575 BreakPoint at:0047F3E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3452 VA:0026E3F1 Base:2162688 Address: 0047F3F1 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1576 BreakPoint at:0047F3F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3453 VA:0026E3FB Base:2162688 Address: 0047F3FB +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1577 BreakPoint at:0047F3FB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3454 VA:0026E405 Base:2162688 Address: 0047F405 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1578 BreakPoint at:0047F405 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3455 VA:0026E40F Base:2162688 Address: 0047F40F +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1579 BreakPoint at:0047F40F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3456 VA:0026E419 Base:2162688 Address: 0047F419 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1580 BreakPoint at:0047F419 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3457 VA:0026E423 Base:2162688 Address: 0047F423 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1581 BreakPoint at:0047F423 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3458 VA:0026E42D Base:2162688 Address: 0047F42D +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1582 BreakPoint at:0047F42D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3459 VA:0026E437 Base:2162688 Address: 0047F437 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1583 BreakPoint at:0047F437 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3460 VA:0026E441 Base:2162688 Address: 0047F441 +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1584 BreakPoint at:0047F441 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3461 VA:0026E44B Base:2162688 Address: 0047F44B +Adding breakpoint for DECHash.THashBaseMD4.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1585 BreakPoint at:0047F44B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3462 VA:0026E450 Base:2162688 Address: 0047F450 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1588 BreakPoint at:0047F450 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3463 VA:0026E457 Base:2162688 Address: 0047F457 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1589 BreakPoint at:0047F457 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3464 VA:0026E465 Base:2162688 Address: 0047F465 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1590 BreakPoint at:0047F465 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3465 VA:0026E46D Base:2162688 Address: 0047F46D +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1591 BreakPoint at:0047F46D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3466 VA:0026E476 Base:2162688 Address: 0047F476 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1592 BreakPoint at:0047F476 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3467 VA:0026E47D Base:2162688 Address: 0047F47D +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1593 BreakPoint at:0047F47D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3468 VA:0026E492 Base:2162688 Address: 0047F492 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1594 BreakPoint at:0047F492 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3469 VA:0026E498 Base:2162688 Address: 0047F498 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1595 BreakPoint at:0047F498 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3470 VA:0026E4AB Base:2162688 Address: 0047F4AB +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1597 BreakPoint at:0047F4AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3471 VA:0026E4CD Base:2162688 Address: 0047F4CD +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1598 BreakPoint at:0047F4CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3472 VA:0026E4DB Base:2162688 Address: 0047F4DB +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1599 BreakPoint at:0047F4DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3473 VA:0026E4E3 Base:2162688 Address: 0047F4E3 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1601 BreakPoint at:0047F4E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3474 VA:0026E505 Base:2162688 Address: 0047F505 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1602 BreakPoint at:0047F505 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3475 VA:0026E525 Base:2162688 Address: 0047F525 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1603 BreakPoint at:0047F525 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3476 VA:0026E533 Base:2162688 Address: 0047F533 +Adding breakpoint for DECHash.THashBaseMD4.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1604 BreakPoint at:0047F533 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3477 VA:0026E538 Base:2162688 Address: 0047F538 +Adding breakpoint for DECHash.THashBaseMD4.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1607 BreakPoint at:0047F538 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3478 VA:0026E541 Base:2162688 Address: 0047F541 +Adding breakpoint for DECHash.THashBaseMD4.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1608 BreakPoint at:0047F541 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3479 VA:0026E54A Base:2162688 Address: 0047F54A +Adding breakpoint for DECHash.THashBaseMD4.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1609 BreakPoint at:0047F54A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3480 VA:0026E554 Base:2162688 Address: 0047F554 +Adding breakpoint for DECHash.THashBaseMD4.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1612 BreakPoint at:0047F554 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3481 VA:0026E55D Base:2162688 Address: 0047F55D +Adding breakpoint for DECHash.THashBaseMD4.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1613 BreakPoint at:0047F55D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3482 VA:0026E564 Base:2162688 Address: 0047F564 +Adding breakpoint for DECHash.THashBaseMD4.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1614 BreakPoint at:0047F564 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3483 VA:0026E56C Base:2162688 Address: 0047F56C +Adding breakpoint for DECHash.THashBaseMD4.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1617 BreakPoint at:0047F56C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3484 VA:0026E575 Base:2162688 Address: 0047F575 +Adding breakpoint for DECHash.THashBaseMD4.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1618 BreakPoint at:0047F575 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3485 VA:0026E57C Base:2162688 Address: 0047F57C +Adding breakpoint for DECHash.THashBaseMD4.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1619 BreakPoint at:0047F57C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3486 VA:0026E584 Base:2162688 Address: 0047F584 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +Creating class info for DECHash class THash_MD4 +TBreakPoint.Activate: +Activate DECHash.pas line 1630 BreakPoint at:0047F584 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3487 VA:0026E590 Base:2162688 Address: 0047F590 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1631 BreakPoint at:0047F590 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3488 VA:0026E599 Base:2162688 Address: 0047F599 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1632 BreakPoint at:0047F599 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3489 VA:0026E5A2 Base:2162688 Address: 0047F5A2 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1633 BreakPoint at:0047F5A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3490 VA:0026E5AB Base:2162688 Address: 0047F5AB +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1634 BreakPoint at:0047F5AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3491 VA:0026E5B4 Base:2162688 Address: 0047F5B4 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1636 BreakPoint at:0047F5B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3492 VA:0026E5DD Base:2162688 Address: 0047F5DD +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1637 BreakPoint at:0047F5DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3493 VA:0026E607 Base:2162688 Address: 0047F607 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1638 BreakPoint at:0047F607 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3494 VA:0026E631 Base:2162688 Address: 0047F631 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1639 BreakPoint at:0047F631 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3495 VA:0026E65B Base:2162688 Address: 0047F65B +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1640 BreakPoint at:0047F65B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3496 VA:0026E685 Base:2162688 Address: 0047F685 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1641 BreakPoint at:0047F685 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3497 VA:0026E6AF Base:2162688 Address: 0047F6AF +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1642 BreakPoint at:0047F6AF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3498 VA:0026E6D9 Base:2162688 Address: 0047F6D9 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1643 BreakPoint at:0047F6D9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3499 VA:0026E703 Base:2162688 Address: 0047F703 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1644 BreakPoint at:0047F703 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3500 VA:0026E72D Base:2162688 Address: 0047F72D +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1645 BreakPoint at:0047F72D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3501 VA:0026E757 Base:2162688 Address: 0047F757 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1646 BreakPoint at:0047F757 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3502 VA:0026E781 Base:2162688 Address: 0047F781 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1647 BreakPoint at:0047F781 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3503 VA:0026E7AB Base:2162688 Address: 0047F7AB +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1648 BreakPoint at:0047F7AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3504 VA:0026E7D5 Base:2162688 Address: 0047F7D5 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1649 BreakPoint at:0047F7D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3505 VA:0026E7FF Base:2162688 Address: 0047F7FF +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1650 BreakPoint at:0047F7FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3506 VA:0026E829 Base:2162688 Address: 0047F829 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1651 BreakPoint at:0047F829 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3507 VA:0026E853 Base:2162688 Address: 0047F853 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1653 BreakPoint at:0047F853 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3508 VA:0026E887 Base:2162688 Address: 0047F887 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1654 BreakPoint at:0047F887 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3509 VA:0026E8BC Base:2162688 Address: 0047F8BC +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1655 BreakPoint at:0047F8BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3510 VA:0026E8F1 Base:2162688 Address: 0047F8F1 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1656 BreakPoint at:0047F8F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3511 VA:0026E926 Base:2162688 Address: 0047F926 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1657 BreakPoint at:0047F926 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3512 VA:0026E95B Base:2162688 Address: 0047F95B +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1658 BreakPoint at:0047F95B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3513 VA:0026E990 Base:2162688 Address: 0047F990 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1659 BreakPoint at:0047F990 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3514 VA:0026E9C5 Base:2162688 Address: 0047F9C5 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1660 BreakPoint at:0047F9C5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3515 VA:0026E9FA Base:2162688 Address: 0047F9FA +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1661 BreakPoint at:0047F9FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3516 VA:0026EA2F Base:2162688 Address: 0047FA2F +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1662 BreakPoint at:0047FA2F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3517 VA:0026EA64 Base:2162688 Address: 0047FA64 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1663 BreakPoint at:0047FA64 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3518 VA:0026EA99 Base:2162688 Address: 0047FA99 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1664 BreakPoint at:0047FA99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3519 VA:0026EACE Base:2162688 Address: 0047FACE +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1665 BreakPoint at:0047FACE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3520 VA:0026EB03 Base:2162688 Address: 0047FB03 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1666 BreakPoint at:0047FB03 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3521 VA:0026EB38 Base:2162688 Address: 0047FB38 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1667 BreakPoint at:0047FB38 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3522 VA:0026EB6D Base:2162688 Address: 0047FB6D +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1668 BreakPoint at:0047FB6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3523 VA:0026EBA2 Base:2162688 Address: 0047FBA2 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1670 BreakPoint at:0047FBA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3524 VA:0026EBC9 Base:2162688 Address: 0047FBC9 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1671 BreakPoint at:0047FBC9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3525 VA:0026EBF1 Base:2162688 Address: 0047FBF1 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1672 BreakPoint at:0047FBF1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3526 VA:0026EC19 Base:2162688 Address: 0047FC19 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1673 BreakPoint at:0047FC19 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3527 VA:0026EC41 Base:2162688 Address: 0047FC41 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1674 BreakPoint at:0047FC41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3528 VA:0026EC69 Base:2162688 Address: 0047FC69 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1675 BreakPoint at:0047FC69 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3529 VA:0026EC91 Base:2162688 Address: 0047FC91 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1676 BreakPoint at:0047FC91 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3530 VA:0026ECB9 Base:2162688 Address: 0047FCB9 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1677 BreakPoint at:0047FCB9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3531 VA:0026ECE1 Base:2162688 Address: 0047FCE1 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1678 BreakPoint at:0047FCE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3532 VA:0026ED09 Base:2162688 Address: 0047FD09 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1679 BreakPoint at:0047FD09 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3533 VA:0026ED31 Base:2162688 Address: 0047FD31 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1680 BreakPoint at:0047FD31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3534 VA:0026ED59 Base:2162688 Address: 0047FD59 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1681 BreakPoint at:0047FD59 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3535 VA:0026ED81 Base:2162688 Address: 0047FD81 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1682 BreakPoint at:0047FD81 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3536 VA:0026EDA9 Base:2162688 Address: 0047FDA9 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1683 BreakPoint at:0047FDA9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3537 VA:0026EDD1 Base:2162688 Address: 0047FDD1 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1684 BreakPoint at:0047FDD1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3538 VA:0026EDF9 Base:2162688 Address: 0047FDF9 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1685 BreakPoint at:0047FDF9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3539 VA:0026EE21 Base:2162688 Address: 0047FE21 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1687 BreakPoint at:0047FE21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3540 VA:0026EE2A Base:2162688 Address: 0047FE2A +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1688 BreakPoint at:0047FE2A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3541 VA:0026EE33 Base:2162688 Address: 0047FE33 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1689 BreakPoint at:0047FE33 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3542 VA:0026EE3C Base:2162688 Address: 0047FE3C +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1690 BreakPoint at:0047FE3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3543 VA:0026EE45 Base:2162688 Address: 0047FE45 +Adding breakpoint for DECHash.THash_MD4.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1691 BreakPoint at:0047FE45 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3544 VA:0026EE4C Base:2162688 Address: 0047FE4C +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +Creating class info for DECHash class THash_MD5 +TBreakPoint.Activate: +Activate DECHash.pas line 1700 BreakPoint at:0047FE4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3545 VA:0026EE58 Base:2162688 Address: 0047FE58 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1701 BreakPoint at:0047FE58 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3546 VA:0026EE61 Base:2162688 Address: 0047FE61 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1702 BreakPoint at:0047FE61 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3547 VA:0026EE6A Base:2162688 Address: 0047FE6A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1703 BreakPoint at:0047FE6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3548 VA:0026EE73 Base:2162688 Address: 0047FE73 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1704 BreakPoint at:0047FE73 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3549 VA:0026EE7C Base:2162688 Address: 0047FE7C +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1706 BreakPoint at:0047FE7C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3550 VA:0026EEAB Base:2162688 Address: 0047FEAB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1707 BreakPoint at:0047FEAB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3551 VA:0026EEDB Base:2162688 Address: 0047FEDB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1708 BreakPoint at:0047FEDB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3552 VA:0026EF0B Base:2162688 Address: 0047FF0B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1709 BreakPoint at:0047FF0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3553 VA:0026EF3B Base:2162688 Address: 0047FF3B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1710 BreakPoint at:0047FF3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3554 VA:0026EF6B Base:2162688 Address: 0047FF6B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1711 BreakPoint at:0047FF6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3555 VA:0026EF9B Base:2162688 Address: 0047FF9B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1712 BreakPoint at:0047FF9B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3556 VA:0026EFCB Base:2162688 Address: 0047FFCB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1713 BreakPoint at:0047FFCB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3557 VA:0026EFFB Base:2162688 Address: 0047FFFB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1714 BreakPoint at:0047FFFB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3558 VA:0026F02B Base:2162688 Address: 0048002B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1715 BreakPoint at:0048002B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3559 VA:0026F05B Base:2162688 Address: 0048005B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1716 BreakPoint at:0048005B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3560 VA:0026F08B Base:2162688 Address: 0048008B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1717 BreakPoint at:0048008B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3561 VA:0026F0BB Base:2162688 Address: 004800BB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1718 BreakPoint at:004800BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3562 VA:0026F0EB Base:2162688 Address: 004800EB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1719 BreakPoint at:004800EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3563 VA:0026F11B Base:2162688 Address: 0048011B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1720 BreakPoint at:0048011B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3564 VA:0026F14B Base:2162688 Address: 0048014B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1721 BreakPoint at:0048014B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3565 VA:0026F17B Base:2162688 Address: 0048017B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1723 BreakPoint at:0048017B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3566 VA:0026F1AB Base:2162688 Address: 004801AB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1724 BreakPoint at:004801AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3567 VA:0026F1DB Base:2162688 Address: 004801DB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1725 BreakPoint at:004801DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3568 VA:0026F20B Base:2162688 Address: 0048020B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1726 BreakPoint at:0048020B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3569 VA:0026F23A Base:2162688 Address: 0048023A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1727 BreakPoint at:0048023A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3570 VA:0026F26A Base:2162688 Address: 0048026A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1728 BreakPoint at:0048026A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3571 VA:0026F29A Base:2162688 Address: 0048029A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1729 BreakPoint at:0048029A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3572 VA:0026F2CA Base:2162688 Address: 004802CA +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1730 BreakPoint at:004802CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3573 VA:0026F2FA Base:2162688 Address: 004802FA +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1731 BreakPoint at:004802FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3574 VA:0026F32A Base:2162688 Address: 0048032A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1732 BreakPoint at:0048032A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3575 VA:0026F35A Base:2162688 Address: 0048035A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1733 BreakPoint at:0048035A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3576 VA:0026F38A Base:2162688 Address: 0048038A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1734 BreakPoint at:0048038A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3577 VA:0026F3BA Base:2162688 Address: 004803BA +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1735 BreakPoint at:004803BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3578 VA:0026F3EA Base:2162688 Address: 004803EA +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1736 BreakPoint at:004803EA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3579 VA:0026F41A Base:2162688 Address: 0048041A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1737 BreakPoint at:0048041A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3580 VA:0026F44A Base:2162688 Address: 0048044A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1738 BreakPoint at:0048044A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3581 VA:0026F47A Base:2162688 Address: 0048047A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1740 BreakPoint at:0048047A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3582 VA:0026F4A7 Base:2162688 Address: 004804A7 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1741 BreakPoint at:004804A7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3583 VA:0026F4D4 Base:2162688 Address: 004804D4 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1742 BreakPoint at:004804D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3584 VA:0026F501 Base:2162688 Address: 00480501 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1743 BreakPoint at:00480501 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3585 VA:0026F52E Base:2162688 Address: 0048052E +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1744 BreakPoint at:0048052E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3586 VA:0026F55B Base:2162688 Address: 0048055B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1745 BreakPoint at:0048055B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3587 VA:0026F588 Base:2162688 Address: 00480588 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1746 BreakPoint at:00480588 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3588 VA:0026F5B5 Base:2162688 Address: 004805B5 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1747 BreakPoint at:004805B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3589 VA:0026F5E2 Base:2162688 Address: 004805E2 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1748 BreakPoint at:004805E2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3590 VA:0026F60F Base:2162688 Address: 0048060F +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1749 BreakPoint at:0048060F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3591 VA:0026F63B Base:2162688 Address: 0048063B +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1750 BreakPoint at:0048063B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3592 VA:0026F668 Base:2162688 Address: 00480668 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1751 BreakPoint at:00480668 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3593 VA:0026F695 Base:2162688 Address: 00480695 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1752 BreakPoint at:00480695 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3594 VA:0026F6C2 Base:2162688 Address: 004806C2 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1753 BreakPoint at:004806C2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3595 VA:0026F6EF Base:2162688 Address: 004806EF +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1754 BreakPoint at:004806EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3596 VA:0026F71C Base:2162688 Address: 0048071C +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1755 BreakPoint at:0048071C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3597 VA:0026F749 Base:2162688 Address: 00480749 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1757 BreakPoint at:00480749 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3598 VA:0026F777 Base:2162688 Address: 00480777 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1758 BreakPoint at:00480777 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3599 VA:0026F7A6 Base:2162688 Address: 004807A6 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1759 BreakPoint at:004807A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3600 VA:0026F7D5 Base:2162688 Address: 004807D5 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1760 BreakPoint at:004807D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3601 VA:0026F804 Base:2162688 Address: 00480804 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1761 BreakPoint at:00480804 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3602 VA:0026F833 Base:2162688 Address: 00480833 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1762 BreakPoint at:00480833 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3603 VA:0026F862 Base:2162688 Address: 00480862 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1763 BreakPoint at:00480862 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3604 VA:0026F891 Base:2162688 Address: 00480891 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1764 BreakPoint at:00480891 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3605 VA:0026F8C0 Base:2162688 Address: 004808C0 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1765 BreakPoint at:004808C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3606 VA:0026F8EF Base:2162688 Address: 004808EF +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1766 BreakPoint at:004808EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3607 VA:0026F91E Base:2162688 Address: 0048091E +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1767 BreakPoint at:0048091E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3608 VA:0026F94D Base:2162688 Address: 0048094D +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1768 BreakPoint at:0048094D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3609 VA:0026F97C Base:2162688 Address: 0048097C +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1769 BreakPoint at:0048097C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3610 VA:0026F9AB Base:2162688 Address: 004809AB +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1770 BreakPoint at:004809AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3611 VA:0026F9DA Base:2162688 Address: 004809DA +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1771 BreakPoint at:004809DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3612 VA:0026FA09 Base:2162688 Address: 00480A09 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1772 BreakPoint at:00480A09 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3613 VA:0026FA38 Base:2162688 Address: 00480A38 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1774 BreakPoint at:00480A38 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3614 VA:0026FA41 Base:2162688 Address: 00480A41 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1775 BreakPoint at:00480A41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3615 VA:0026FA4A Base:2162688 Address: 00480A4A +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1776 BreakPoint at:00480A4A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3616 VA:0026FA53 Base:2162688 Address: 00480A53 +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1777 BreakPoint at:00480A53 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3617 VA:0026FA5C Base:2162688 Address: 00480A5C +Adding breakpoint for DECHash.THash_MD5.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1778 BreakPoint at:00480A5C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3618 VA:0026FA60 Base:2162688 Address: 00480A60 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +Creating class info for DECHash class THash_RipeMD128 +TBreakPoint.Activate: +Activate DECHash.pas line 1801 BreakPoint at:00480A60 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3619 VA:0026FA6C Base:2162688 Address: 00480A6C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1802 BreakPoint at:00480A6C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3620 VA:0026FA75 Base:2162688 Address: 00480A75 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1803 BreakPoint at:00480A75 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3621 VA:0026FA7E Base:2162688 Address: 00480A7E +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1804 BreakPoint at:00480A7E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3622 VA:0026FA87 Base:2162688 Address: 00480A87 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1805 BreakPoint at:00480A87 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3623 VA:0026FA90 Base:2162688 Address: 00480A90 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1806 BreakPoint at:00480A90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3624 VA:0026FA99 Base:2162688 Address: 00480A99 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1807 BreakPoint at:00480A99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3625 VA:0026FAA2 Base:2162688 Address: 00480AA2 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1808 BreakPoint at:00480AA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3626 VA:0026FAAB Base:2162688 Address: 00480AAB +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1809 BreakPoint at:00480AAB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3627 VA:0026FAB4 Base:2162688 Address: 00480AB4 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1811 BreakPoint at:00480AB4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3628 VA:0026FAD6 Base:2162688 Address: 00480AD6 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1812 BreakPoint at:00480AD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3629 VA:0026FAF9 Base:2162688 Address: 00480AF9 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1813 BreakPoint at:00480AF9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3630 VA:0026FB1C Base:2162688 Address: 00480B1C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1814 BreakPoint at:00480B1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3631 VA:0026FB3F Base:2162688 Address: 00480B3F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1815 BreakPoint at:00480B3F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3632 VA:0026FB62 Base:2162688 Address: 00480B62 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1816 BreakPoint at:00480B62 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3633 VA:0026FB85 Base:2162688 Address: 00480B85 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1817 BreakPoint at:00480B85 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3634 VA:0026FBA8 Base:2162688 Address: 00480BA8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1818 BreakPoint at:00480BA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3635 VA:0026FBCB Base:2162688 Address: 00480BCB +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1819 BreakPoint at:00480BCB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3636 VA:0026FBEE Base:2162688 Address: 00480BEE +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1820 BreakPoint at:00480BEE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3637 VA:0026FC11 Base:2162688 Address: 00480C11 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1821 BreakPoint at:00480C11 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3638 VA:0026FC34 Base:2162688 Address: 00480C34 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1822 BreakPoint at:00480C34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3639 VA:0026FC57 Base:2162688 Address: 00480C57 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1823 BreakPoint at:00480C57 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3640 VA:0026FC7A Base:2162688 Address: 00480C7A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1824 BreakPoint at:00480C7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3641 VA:0026FC9D Base:2162688 Address: 00480C9D +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1825 BreakPoint at:00480C9D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3642 VA:0026FCC0 Base:2162688 Address: 00480CC0 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1826 BreakPoint at:00480CC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3643 VA:0026FCE3 Base:2162688 Address: 00480CE3 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1828 BreakPoint at:00480CE3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3644 VA:0026FD12 Base:2162688 Address: 00480D12 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1829 BreakPoint at:00480D12 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3645 VA:0026FD41 Base:2162688 Address: 00480D41 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1830 BreakPoint at:00480D41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3646 VA:0026FD70 Base:2162688 Address: 00480D70 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1831 BreakPoint at:00480D70 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3647 VA:0026FD9F Base:2162688 Address: 00480D9F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1832 BreakPoint at:00480D9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3648 VA:0026FDCE Base:2162688 Address: 00480DCE +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1833 BreakPoint at:00480DCE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3649 VA:0026FDFD Base:2162688 Address: 00480DFD +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1834 BreakPoint at:00480DFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3650 VA:0026FE2C Base:2162688 Address: 00480E2C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1835 BreakPoint at:00480E2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3651 VA:0026FE5B Base:2162688 Address: 00480E5B +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1836 BreakPoint at:00480E5B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3652 VA:0026FE8A Base:2162688 Address: 00480E8A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1837 BreakPoint at:00480E8A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3653 VA:0026FEB8 Base:2162688 Address: 00480EB8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1838 BreakPoint at:00480EB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3654 VA:0026FEE7 Base:2162688 Address: 00480EE7 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1839 BreakPoint at:00480EE7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3655 VA:0026FF16 Base:2162688 Address: 00480F16 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1840 BreakPoint at:00480F16 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3656 VA:0026FF45 Base:2162688 Address: 00480F45 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1841 BreakPoint at:00480F45 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3657 VA:0026FF74 Base:2162688 Address: 00480F74 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1842 BreakPoint at:00480F74 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3658 VA:0026FFA3 Base:2162688 Address: 00480FA3 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1843 BreakPoint at:00480FA3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3659 VA:0026FFD2 Base:2162688 Address: 00480FD2 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1845 BreakPoint at:00480FD2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3660 VA:0026FFFC Base:2162688 Address: 00480FFC +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1846 BreakPoint at:00480FFC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3661 VA:00270026 Base:2162688 Address: 00481026 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1847 BreakPoint at:00481026 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3662 VA:00270050 Base:2162688 Address: 00481050 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1848 BreakPoint at:00481050 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3663 VA:0027007A Base:2162688 Address: 0048107A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1849 BreakPoint at:0048107A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3664 VA:002700A4 Base:2162688 Address: 004810A4 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1850 BreakPoint at:004810A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3665 VA:002700CE Base:2162688 Address: 004810CE +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1851 BreakPoint at:004810CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3666 VA:002700F8 Base:2162688 Address: 004810F8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1852 BreakPoint at:004810F8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3667 VA:00270122 Base:2162688 Address: 00481122 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1853 BreakPoint at:00481122 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3668 VA:0027014C Base:2162688 Address: 0048114C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1854 BreakPoint at:0048114C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3669 VA:00270176 Base:2162688 Address: 00481176 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1855 BreakPoint at:00481176 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3670 VA:0027019F Base:2162688 Address: 0048119F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1856 BreakPoint at:0048119F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3671 VA:002701C9 Base:2162688 Address: 004811C9 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1857 BreakPoint at:004811C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3672 VA:002701F3 Base:2162688 Address: 004811F3 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1858 BreakPoint at:004811F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3673 VA:0027021D Base:2162688 Address: 0048121D +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1859 BreakPoint at:0048121D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3674 VA:00270247 Base:2162688 Address: 00481247 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1860 BreakPoint at:00481247 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3675 VA:00270271 Base:2162688 Address: 00481271 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1862 BreakPoint at:00481271 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3676 VA:002702A0 Base:2162688 Address: 004812A0 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1863 BreakPoint at:004812A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3677 VA:002702CF Base:2162688 Address: 004812CF +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1864 BreakPoint at:004812CF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3678 VA:002702FE Base:2162688 Address: 004812FE +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1865 BreakPoint at:004812FE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3679 VA:0027032D Base:2162688 Address: 0048132D +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1866 BreakPoint at:0048132D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3680 VA:0027035B Base:2162688 Address: 0048135B +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1867 BreakPoint at:0048135B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3681 VA:0027038A Base:2162688 Address: 0048138A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1868 BreakPoint at:0048138A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3682 VA:002703B9 Base:2162688 Address: 004813B9 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1869 BreakPoint at:004813B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3683 VA:002703E8 Base:2162688 Address: 004813E8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1870 BreakPoint at:004813E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3684 VA:00270417 Base:2162688 Address: 00481417 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1871 BreakPoint at:00481417 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3685 VA:00270446 Base:2162688 Address: 00481446 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1872 BreakPoint at:00481446 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3686 VA:00270475 Base:2162688 Address: 00481475 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1873 BreakPoint at:00481475 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3687 VA:002704A4 Base:2162688 Address: 004814A4 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1874 BreakPoint at:004814A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3688 VA:002704D3 Base:2162688 Address: 004814D3 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1875 BreakPoint at:004814D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3689 VA:00270502 Base:2162688 Address: 00481502 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1876 BreakPoint at:00481502 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3690 VA:00270531 Base:2162688 Address: 00481531 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1877 BreakPoint at:00481531 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3691 VA:00270560 Base:2162688 Address: 00481560 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1879 BreakPoint at:00481560 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3692 VA:00270572 Base:2162688 Address: 00481572 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1880 BreakPoint at:00481572 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3693 VA:00270584 Base:2162688 Address: 00481584 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1881 BreakPoint at:00481584 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3694 VA:00270596 Base:2162688 Address: 00481596 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1882 BreakPoint at:00481596 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3695 VA:002705A8 Base:2162688 Address: 004815A8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1884 BreakPoint at:004815A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3696 VA:002705D7 Base:2162688 Address: 004815D7 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1885 BreakPoint at:004815D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3697 VA:00270606 Base:2162688 Address: 00481606 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1886 BreakPoint at:00481606 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3698 VA:00270635 Base:2162688 Address: 00481635 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1887 BreakPoint at:00481635 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3699 VA:00270663 Base:2162688 Address: 00481663 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1888 BreakPoint at:00481663 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3700 VA:00270692 Base:2162688 Address: 00481692 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1889 BreakPoint at:00481692 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3701 VA:002706C1 Base:2162688 Address: 004816C1 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1890 BreakPoint at:004816C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3702 VA:002706F0 Base:2162688 Address: 004816F0 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1891 BreakPoint at:004816F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3703 VA:0027071F Base:2162688 Address: 0048171F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1892 BreakPoint at:0048171F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3704 VA:0027074E Base:2162688 Address: 0048174E +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1893 BreakPoint at:0048174E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3705 VA:0027077D Base:2162688 Address: 0048177D +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1894 BreakPoint at:0048177D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3706 VA:002707AC Base:2162688 Address: 004817AC +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1895 BreakPoint at:004817AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3707 VA:002707DB Base:2162688 Address: 004817DB +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1896 BreakPoint at:004817DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3708 VA:0027080A Base:2162688 Address: 0048180A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1897 BreakPoint at:0048180A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3709 VA:00270839 Base:2162688 Address: 00481839 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1898 BreakPoint at:00481839 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3710 VA:00270868 Base:2162688 Address: 00481868 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1899 BreakPoint at:00481868 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3711 VA:00270897 Base:2162688 Address: 00481897 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1901 BreakPoint at:00481897 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3712 VA:002708C1 Base:2162688 Address: 004818C1 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1902 BreakPoint at:004818C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3713 VA:002708EB Base:2162688 Address: 004818EB +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1903 BreakPoint at:004818EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3714 VA:00270915 Base:2162688 Address: 00481915 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1904 BreakPoint at:00481915 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3715 VA:0027093F Base:2162688 Address: 0048193F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1905 BreakPoint at:0048193F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3716 VA:00270968 Base:2162688 Address: 00481968 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1906 BreakPoint at:00481968 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3717 VA:00270992 Base:2162688 Address: 00481992 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1907 BreakPoint at:00481992 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3718 VA:002709BC Base:2162688 Address: 004819BC +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1908 BreakPoint at:004819BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3719 VA:002709E6 Base:2162688 Address: 004819E6 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1909 BreakPoint at:004819E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3720 VA:00270A10 Base:2162688 Address: 00481A10 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1910 BreakPoint at:00481A10 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3721 VA:00270A3A Base:2162688 Address: 00481A3A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1911 BreakPoint at:00481A3A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3722 VA:00270A64 Base:2162688 Address: 00481A64 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1912 BreakPoint at:00481A64 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3723 VA:00270A8E Base:2162688 Address: 00481A8E +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1913 BreakPoint at:00481A8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3724 VA:00270AB8 Base:2162688 Address: 00481AB8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1914 BreakPoint at:00481AB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3725 VA:00270AE2 Base:2162688 Address: 00481AE2 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1915 BreakPoint at:00481AE2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3726 VA:00270B0C Base:2162688 Address: 00481B0C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1916 BreakPoint at:00481B0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3727 VA:00270B36 Base:2162688 Address: 00481B36 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1918 BreakPoint at:00481B36 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3728 VA:00270B65 Base:2162688 Address: 00481B65 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1919 BreakPoint at:00481B65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3729 VA:00270B94 Base:2162688 Address: 00481B94 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1920 BreakPoint at:00481B94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3730 VA:00270BC3 Base:2162688 Address: 00481BC3 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1921 BreakPoint at:00481BC3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3731 VA:00270BF2 Base:2162688 Address: 00481BF2 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1922 BreakPoint at:00481BF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3732 VA:00270C21 Base:2162688 Address: 00481C21 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1923 BreakPoint at:00481C21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3733 VA:00270C50 Base:2162688 Address: 00481C50 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1924 BreakPoint at:00481C50 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3734 VA:00270C7F Base:2162688 Address: 00481C7F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1925 BreakPoint at:00481C7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3735 VA:00270CAE Base:2162688 Address: 00481CAE +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1926 BreakPoint at:00481CAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3736 VA:00270CDD Base:2162688 Address: 00481CDD +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1927 BreakPoint at:00481CDD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3737 VA:00270D0C Base:2162688 Address: 00481D0C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1928 BreakPoint at:00481D0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3738 VA:00270D3B Base:2162688 Address: 00481D3B +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1929 BreakPoint at:00481D3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3739 VA:00270D6A Base:2162688 Address: 00481D6A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1930 BreakPoint at:00481D6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3740 VA:00270D99 Base:2162688 Address: 00481D99 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1931 BreakPoint at:00481D99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3741 VA:00270DC7 Base:2162688 Address: 00481DC7 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1932 BreakPoint at:00481DC7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3742 VA:00270DF6 Base:2162688 Address: 00481DF6 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1933 BreakPoint at:00481DF6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3743 VA:00270E25 Base:2162688 Address: 00481E25 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1935 BreakPoint at:00481E25 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3744 VA:00270E48 Base:2162688 Address: 00481E48 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1936 BreakPoint at:00481E48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3745 VA:00270E6B Base:2162688 Address: 00481E6B +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1937 BreakPoint at:00481E6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3746 VA:00270E8E Base:2162688 Address: 00481E8E +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1938 BreakPoint at:00481E8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3747 VA:00270EB1 Base:2162688 Address: 00481EB1 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1939 BreakPoint at:00481EB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3748 VA:00270ED4 Base:2162688 Address: 00481ED4 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1940 BreakPoint at:00481ED4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3749 VA:00270EF7 Base:2162688 Address: 00481EF7 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1941 BreakPoint at:00481EF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3750 VA:00270F1A Base:2162688 Address: 00481F1A +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1942 BreakPoint at:00481F1A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3751 VA:00270F3C Base:2162688 Address: 00481F3C +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1943 BreakPoint at:00481F3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3752 VA:00270F5F Base:2162688 Address: 00481F5F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1944 BreakPoint at:00481F5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3753 VA:00270F82 Base:2162688 Address: 00481F82 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1945 BreakPoint at:00481F82 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3754 VA:00270FA5 Base:2162688 Address: 00481FA5 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1946 BreakPoint at:00481FA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3755 VA:00270FC8 Base:2162688 Address: 00481FC8 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1947 BreakPoint at:00481FC8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3756 VA:00270FEB Base:2162688 Address: 00481FEB +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1948 BreakPoint at:00481FEB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3757 VA:0027100E Base:2162688 Address: 0048200E +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1949 BreakPoint at:0048200E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3758 VA:00271031 Base:2162688 Address: 00482031 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1950 BreakPoint at:00482031 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3759 VA:00271054 Base:2162688 Address: 00482054 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1952 BreakPoint at:00482054 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3760 VA:00271060 Base:2162688 Address: 00482060 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1953 BreakPoint at:00482060 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3761 VA:00271072 Base:2162688 Address: 00482072 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1954 BreakPoint at:00482072 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3762 VA:00271084 Base:2162688 Address: 00482084 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1955 BreakPoint at:00482084 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3763 VA:00271096 Base:2162688 Address: 00482096 +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1956 BreakPoint at:00482096 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3764 VA:0027109F Base:2162688 Address: 0048209F +Adding breakpoint for DECHash.THash_RipeMD128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1957 BreakPoint at:0048209F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3765 VA:002710A4 Base:2162688 Address: 004820A4 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +Creating class info for DECHash class THash_RipeMD160 +TBreakPoint.Activate: +Activate DECHash.pas line 1968 BreakPoint at:004820A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3766 VA:002710B0 Base:2162688 Address: 004820B0 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1969 BreakPoint at:004820B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3767 VA:002710B9 Base:2162688 Address: 004820B9 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1970 BreakPoint at:004820B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3768 VA:002710C2 Base:2162688 Address: 004820C2 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1971 BreakPoint at:004820C2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3769 VA:002710CB Base:2162688 Address: 004820CB +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1972 BreakPoint at:004820CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3770 VA:002710D4 Base:2162688 Address: 004820D4 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1973 BreakPoint at:004820D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3771 VA:002710DD Base:2162688 Address: 004820DD +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1975 BreakPoint at:004820DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3772 VA:002710E6 Base:2162688 Address: 004820E6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1976 BreakPoint at:004820E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3773 VA:002710EF Base:2162688 Address: 004820EF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1977 BreakPoint at:004820EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3774 VA:002710F8 Base:2162688 Address: 004820F8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1978 BreakPoint at:004820F8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3775 VA:00271101 Base:2162688 Address: 00482101 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1979 BreakPoint at:00482101 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3776 VA:0027110A Base:2162688 Address: 0048210A +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1981 BreakPoint at:0048210A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3777 VA:00271140 Base:2162688 Address: 00482140 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1982 BreakPoint at:00482140 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3778 VA:00271177 Base:2162688 Address: 00482177 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1983 BreakPoint at:00482177 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3779 VA:002711AE Base:2162688 Address: 004821AE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1984 BreakPoint at:004821AE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3780 VA:002711E5 Base:2162688 Address: 004821E5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1985 BreakPoint at:004821E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3781 VA:0027121C Base:2162688 Address: 0048221C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1986 BreakPoint at:0048221C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3782 VA:00271253 Base:2162688 Address: 00482253 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1987 BreakPoint at:00482253 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3783 VA:0027128A Base:2162688 Address: 0048228A +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1988 BreakPoint at:0048228A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3784 VA:002712C1 Base:2162688 Address: 004822C1 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1989 BreakPoint at:004822C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3785 VA:002712F8 Base:2162688 Address: 004822F8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1990 BreakPoint at:004822F8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3786 VA:0027132F Base:2162688 Address: 0048232F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1991 BreakPoint at:0048232F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3787 VA:00271366 Base:2162688 Address: 00482366 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1992 BreakPoint at:00482366 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3788 VA:0027139D Base:2162688 Address: 0048239D +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1993 BreakPoint at:0048239D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3789 VA:002713D4 Base:2162688 Address: 004823D4 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1994 BreakPoint at:004823D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3790 VA:0027140B Base:2162688 Address: 0048240B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1995 BreakPoint at:0048240B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3791 VA:00271442 Base:2162688 Address: 00482442 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1996 BreakPoint at:00482442 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3792 VA:00271479 Base:2162688 Address: 00482479 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1998 BreakPoint at:00482479 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3793 VA:002714BC Base:2162688 Address: 004824BC +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 1999 BreakPoint at:004824BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3794 VA:002714FF Base:2162688 Address: 004824FF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2000 BreakPoint at:004824FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3795 VA:00271542 Base:2162688 Address: 00482542 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2001 BreakPoint at:00482542 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3796 VA:00271585 Base:2162688 Address: 00482585 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2002 BreakPoint at:00482585 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3797 VA:002715C8 Base:2162688 Address: 004825C8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2003 BreakPoint at:004825C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3798 VA:0027160B Base:2162688 Address: 0048260B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2004 BreakPoint at:0048260B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3799 VA:0027164E Base:2162688 Address: 0048264E +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2005 BreakPoint at:0048264E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3800 VA:00271691 Base:2162688 Address: 00482691 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2006 BreakPoint at:00482691 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3801 VA:002716D4 Base:2162688 Address: 004826D4 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2007 BreakPoint at:004826D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3802 VA:00271716 Base:2162688 Address: 00482716 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2008 BreakPoint at:00482716 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3803 VA:00271759 Base:2162688 Address: 00482759 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2009 BreakPoint at:00482759 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3804 VA:0027179C Base:2162688 Address: 0048279C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2010 BreakPoint at:0048279C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3805 VA:002717DF Base:2162688 Address: 004827DF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2011 BreakPoint at:004827DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3806 VA:00271822 Base:2162688 Address: 00482822 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2012 BreakPoint at:00482822 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3807 VA:00271865 Base:2162688 Address: 00482865 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2013 BreakPoint at:00482865 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3808 VA:002718A8 Base:2162688 Address: 004828A8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2015 BreakPoint at:004828A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3809 VA:002718E6 Base:2162688 Address: 004828E6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2016 BreakPoint at:004828E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3810 VA:00271924 Base:2162688 Address: 00482924 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2017 BreakPoint at:00482924 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3811 VA:00271962 Base:2162688 Address: 00482962 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2018 BreakPoint at:00482962 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3812 VA:002719A0 Base:2162688 Address: 004829A0 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2019 BreakPoint at:004829A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3813 VA:002719DE Base:2162688 Address: 004829DE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2020 BreakPoint at:004829DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3814 VA:00271A1C Base:2162688 Address: 00482A1C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2021 BreakPoint at:00482A1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3815 VA:00271A5A Base:2162688 Address: 00482A5A +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2022 BreakPoint at:00482A5A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3816 VA:00271A98 Base:2162688 Address: 00482A98 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2023 BreakPoint at:00482A98 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3817 VA:00271AD6 Base:2162688 Address: 00482AD6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2024 BreakPoint at:00482AD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3818 VA:00271B14 Base:2162688 Address: 00482B14 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2025 BreakPoint at:00482B14 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3819 VA:00271B51 Base:2162688 Address: 00482B51 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2026 BreakPoint at:00482B51 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3820 VA:00271B8F Base:2162688 Address: 00482B8F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2027 BreakPoint at:00482B8F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3821 VA:00271BCD Base:2162688 Address: 00482BCD +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2028 BreakPoint at:00482BCD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3822 VA:00271C0B Base:2162688 Address: 00482C0B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2029 BreakPoint at:00482C0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3823 VA:00271C49 Base:2162688 Address: 00482C49 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2030 BreakPoint at:00482C49 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3824 VA:00271C87 Base:2162688 Address: 00482C87 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2032 BreakPoint at:00482C87 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3825 VA:00271CCA Base:2162688 Address: 00482CCA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2033 BreakPoint at:00482CCA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3826 VA:00271D0D Base:2162688 Address: 00482D0D +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2034 BreakPoint at:00482D0D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3827 VA:00271D50 Base:2162688 Address: 00482D50 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2035 BreakPoint at:00482D50 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3828 VA:00271D93 Base:2162688 Address: 00482D93 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2036 BreakPoint at:00482D93 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3829 VA:00271DD5 Base:2162688 Address: 00482DD5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2037 BreakPoint at:00482DD5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3830 VA:00271E18 Base:2162688 Address: 00482E18 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2038 BreakPoint at:00482E18 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3831 VA:00271E5B Base:2162688 Address: 00482E5B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2039 BreakPoint at:00482E5B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3832 VA:00271E9E Base:2162688 Address: 00482E9E +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2040 BreakPoint at:00482E9E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3833 VA:00271EE1 Base:2162688 Address: 00482EE1 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2041 BreakPoint at:00482EE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3834 VA:00271F24 Base:2162688 Address: 00482F24 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2042 BreakPoint at:00482F24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3835 VA:00271F67 Base:2162688 Address: 00482F67 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2043 BreakPoint at:00482F67 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3836 VA:00271FAA Base:2162688 Address: 00482FAA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2044 BreakPoint at:00482FAA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3837 VA:00271FED Base:2162688 Address: 00482FED +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2045 BreakPoint at:00482FED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3838 VA:00272030 Base:2162688 Address: 00483030 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2046 BreakPoint at:00483030 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3839 VA:00272073 Base:2162688 Address: 00483073 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2047 BreakPoint at:00483073 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3840 VA:002720B6 Base:2162688 Address: 004830B6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2049 BreakPoint at:004830B6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3841 VA:002720F4 Base:2162688 Address: 004830F4 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2050 BreakPoint at:004830F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3842 VA:00272131 Base:2162688 Address: 00483131 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2051 BreakPoint at:00483131 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3843 VA:0027216F Base:2162688 Address: 0048316F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2052 BreakPoint at:0048316F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3844 VA:002721AD Base:2162688 Address: 004831AD +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2053 BreakPoint at:004831AD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3845 VA:002721EB Base:2162688 Address: 004831EB +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2054 BreakPoint at:004831EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3846 VA:00272229 Base:2162688 Address: 00483229 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2055 BreakPoint at:00483229 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3847 VA:00272267 Base:2162688 Address: 00483267 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2056 BreakPoint at:00483267 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3848 VA:002722A5 Base:2162688 Address: 004832A5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2057 BreakPoint at:004832A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3849 VA:002722E3 Base:2162688 Address: 004832E3 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2058 BreakPoint at:004832E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3850 VA:00272321 Base:2162688 Address: 00483321 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2059 BreakPoint at:00483321 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3851 VA:0027235F Base:2162688 Address: 0048335F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2060 BreakPoint at:0048335F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3852 VA:0027239D Base:2162688 Address: 0048339D +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2061 BreakPoint at:0048339D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3853 VA:002723DB Base:2162688 Address: 004833DB +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2062 BreakPoint at:004833DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3854 VA:00272419 Base:2162688 Address: 00483419 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2063 BreakPoint at:00483419 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3855 VA:00272457 Base:2162688 Address: 00483457 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2064 BreakPoint at:00483457 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3856 VA:00272495 Base:2162688 Address: 00483495 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2066 BreakPoint at:00483495 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3857 VA:002724A7 Base:2162688 Address: 004834A7 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2067 BreakPoint at:004834A7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3858 VA:002724B9 Base:2162688 Address: 004834B9 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2068 BreakPoint at:004834B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3859 VA:002724CB Base:2162688 Address: 004834CB +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2069 BreakPoint at:004834CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3860 VA:002724DD Base:2162688 Address: 004834DD +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2070 BreakPoint at:004834DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3861 VA:002724EF Base:2162688 Address: 004834EF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2072 BreakPoint at:004834EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3862 VA:0027252D Base:2162688 Address: 0048352D +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2073 BreakPoint at:0048352D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3863 VA:0027256B Base:2162688 Address: 0048356B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2074 BreakPoint at:0048356B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3864 VA:002725A9 Base:2162688 Address: 004835A9 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2075 BreakPoint at:004835A9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3865 VA:002725E6 Base:2162688 Address: 004835E6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2076 BreakPoint at:004835E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3866 VA:00272624 Base:2162688 Address: 00483624 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2077 BreakPoint at:00483624 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3867 VA:00272662 Base:2162688 Address: 00483662 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2078 BreakPoint at:00483662 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3868 VA:002726A0 Base:2162688 Address: 004836A0 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2079 BreakPoint at:004836A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3869 VA:002726DE Base:2162688 Address: 004836DE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2080 BreakPoint at:004836DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3870 VA:0027271C Base:2162688 Address: 0048371C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2081 BreakPoint at:0048371C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3871 VA:0027275A Base:2162688 Address: 0048375A +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2082 BreakPoint at:0048375A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3872 VA:00272798 Base:2162688 Address: 00483798 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2083 BreakPoint at:00483798 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3873 VA:002727D6 Base:2162688 Address: 004837D6 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2084 BreakPoint at:004837D6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3874 VA:00272814 Base:2162688 Address: 00483814 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2085 BreakPoint at:00483814 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3875 VA:00272852 Base:2162688 Address: 00483852 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2086 BreakPoint at:00483852 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3876 VA:00272890 Base:2162688 Address: 00483890 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2087 BreakPoint at:00483890 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3877 VA:002728CE Base:2162688 Address: 004838CE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2089 BreakPoint at:004838CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3878 VA:00272911 Base:2162688 Address: 00483911 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2090 BreakPoint at:00483911 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3879 VA:00272954 Base:2162688 Address: 00483954 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2091 BreakPoint at:00483954 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3880 VA:00272997 Base:2162688 Address: 00483997 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2092 BreakPoint at:00483997 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3881 VA:002729DA Base:2162688 Address: 004839DA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2093 BreakPoint at:004839DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3882 VA:00272A1C Base:2162688 Address: 00483A1C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2094 BreakPoint at:00483A1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3883 VA:00272A5F Base:2162688 Address: 00483A5F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2095 BreakPoint at:00483A5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3884 VA:00272AA2 Base:2162688 Address: 00483AA2 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2096 BreakPoint at:00483AA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3885 VA:00272AE5 Base:2162688 Address: 00483AE5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2097 BreakPoint at:00483AE5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3886 VA:00272B28 Base:2162688 Address: 00483B28 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2098 BreakPoint at:00483B28 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3887 VA:00272B6B Base:2162688 Address: 00483B6B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2099 BreakPoint at:00483B6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3888 VA:00272BAE Base:2162688 Address: 00483BAE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2100 BreakPoint at:00483BAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3889 VA:00272BF1 Base:2162688 Address: 00483BF1 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2101 BreakPoint at:00483BF1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3890 VA:00272C34 Base:2162688 Address: 00483C34 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2102 BreakPoint at:00483C34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3891 VA:00272C77 Base:2162688 Address: 00483C77 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2103 BreakPoint at:00483C77 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3892 VA:00272CBA Base:2162688 Address: 00483CBA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2104 BreakPoint at:00483CBA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3893 VA:00272CFD Base:2162688 Address: 00483CFD +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2106 BreakPoint at:00483CFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3894 VA:00272D3B Base:2162688 Address: 00483D3B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2107 BreakPoint at:00483D3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3895 VA:00272D79 Base:2162688 Address: 00483D79 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2108 BreakPoint at:00483D79 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3896 VA:00272DB7 Base:2162688 Address: 00483DB7 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2109 BreakPoint at:00483DB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3897 VA:00272DF5 Base:2162688 Address: 00483DF5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2110 BreakPoint at:00483DF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3898 VA:00272E33 Base:2162688 Address: 00483E33 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2111 BreakPoint at:00483E33 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3899 VA:00272E71 Base:2162688 Address: 00483E71 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2112 BreakPoint at:00483E71 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3900 VA:00272EAF Base:2162688 Address: 00483EAF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2113 BreakPoint at:00483EAF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3901 VA:00272EED Base:2162688 Address: 00483EED +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2114 BreakPoint at:00483EED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3902 VA:00272F2B Base:2162688 Address: 00483F2B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2115 BreakPoint at:00483F2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3903 VA:00272F69 Base:2162688 Address: 00483F69 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2116 BreakPoint at:00483F69 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3904 VA:00272FA7 Base:2162688 Address: 00483FA7 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2117 BreakPoint at:00483FA7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3905 VA:00272FE5 Base:2162688 Address: 00483FE5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2118 BreakPoint at:00483FE5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3906 VA:00273023 Base:2162688 Address: 00484023 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2119 BreakPoint at:00484023 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3907 VA:00273060 Base:2162688 Address: 00484060 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2120 BreakPoint at:00484060 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3908 VA:0027309E Base:2162688 Address: 0048409E +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2121 BreakPoint at:0048409E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3909 VA:002730DC Base:2162688 Address: 004840DC +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2123 BreakPoint at:004840DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3910 VA:0027311F Base:2162688 Address: 0048411F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2124 BreakPoint at:0048411F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3911 VA:00273162 Base:2162688 Address: 00484162 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2125 BreakPoint at:00484162 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3912 VA:002731A5 Base:2162688 Address: 004841A5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2126 BreakPoint at:004841A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3913 VA:002731E8 Base:2162688 Address: 004841E8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2127 BreakPoint at:004841E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3914 VA:0027322B Base:2162688 Address: 0048422B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2128 BreakPoint at:0048422B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3915 VA:0027326E Base:2162688 Address: 0048426E +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2129 BreakPoint at:0048426E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3916 VA:002732B1 Base:2162688 Address: 004842B1 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2130 BreakPoint at:004842B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3917 VA:002732F3 Base:2162688 Address: 004842F3 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2131 BreakPoint at:004842F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3918 VA:00273336 Base:2162688 Address: 00484336 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2132 BreakPoint at:00484336 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3919 VA:00273379 Base:2162688 Address: 00484379 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2133 BreakPoint at:00484379 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3920 VA:002733BC Base:2162688 Address: 004843BC +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2134 BreakPoint at:004843BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3921 VA:002733FF Base:2162688 Address: 004843FF +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2135 BreakPoint at:004843FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3922 VA:00273442 Base:2162688 Address: 00484442 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2136 BreakPoint at:00484442 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3923 VA:00273485 Base:2162688 Address: 00484485 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2137 BreakPoint at:00484485 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3924 VA:002734C8 Base:2162688 Address: 004844C8 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2138 BreakPoint at:004844C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3925 VA:0027350B Base:2162688 Address: 0048450B +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2140 BreakPoint at:0048450B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3926 VA:00273542 Base:2162688 Address: 00484542 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2141 BreakPoint at:00484542 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3927 VA:00273579 Base:2162688 Address: 00484579 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2142 BreakPoint at:00484579 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3928 VA:002735B0 Base:2162688 Address: 004845B0 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2143 BreakPoint at:004845B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3929 VA:002735E7 Base:2162688 Address: 004845E7 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2144 BreakPoint at:004845E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3930 VA:0027361E Base:2162688 Address: 0048461E +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2145 BreakPoint at:0048461E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3931 VA:00273655 Base:2162688 Address: 00484655 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2146 BreakPoint at:00484655 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3932 VA:0027368C Base:2162688 Address: 0048468C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2147 BreakPoint at:0048468C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3933 VA:002736C3 Base:2162688 Address: 004846C3 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2148 BreakPoint at:004846C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3934 VA:002736FA Base:2162688 Address: 004846FA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2149 BreakPoint at:004846FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3935 VA:00273731 Base:2162688 Address: 00484731 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2150 BreakPoint at:00484731 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3936 VA:00273768 Base:2162688 Address: 00484768 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2151 BreakPoint at:00484768 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3937 VA:0027379F Base:2162688 Address: 0048479F +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2152 BreakPoint at:0048479F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3938 VA:002737D5 Base:2162688 Address: 004847D5 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2153 BreakPoint at:004847D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3939 VA:0027380C Base:2162688 Address: 0048480C +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2154 BreakPoint at:0048480C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3940 VA:00273843 Base:2162688 Address: 00484843 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2155 BreakPoint at:00484843 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3941 VA:0027387A Base:2162688 Address: 0048487A +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2157 BreakPoint at:0048487A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3942 VA:00273886 Base:2162688 Address: 00484886 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2158 BreakPoint at:00484886 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3943 VA:00273898 Base:2162688 Address: 00484898 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2159 BreakPoint at:00484898 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3944 VA:002738AA Base:2162688 Address: 004848AA +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2160 BreakPoint at:004848AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3945 VA:002738BC Base:2162688 Address: 004848BC +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2161 BreakPoint at:004848BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3946 VA:002738CE Base:2162688 Address: 004848CE +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2162 BreakPoint at:004848CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3947 VA:002738D7 Base:2162688 Address: 004848D7 +Adding breakpoint for DECHash.THash_RipeMD160.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2163 BreakPoint at:004848D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3948 VA:002738DC Base:2162688 Address: 004848DC +Adding breakpoint for DECHash.THash_RipeMD160.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2167 BreakPoint at:004848DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3949 VA:002738E5 Base:2162688 Address: 004848E5 +Adding breakpoint for DECHash.THash_RipeMD160.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2168 BreakPoint at:004848E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3950 VA:002738EC Base:2162688 Address: 004848EC +Adding breakpoint for DECHash.THash_RipeMD160.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2169 BreakPoint at:004848EC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3951 VA:002738F4 Base:2162688 Address: 004848F4 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +Creating class info for DECHash class THash_RipeMD256 +TBreakPoint.Activate: +Activate DECHash.pas line 2179 BreakPoint at:004848F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3952 VA:00273900 Base:2162688 Address: 00484900 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2180 BreakPoint at:00484900 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3953 VA:00273909 Base:2162688 Address: 00484909 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2181 BreakPoint at:00484909 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3954 VA:00273912 Base:2162688 Address: 00484912 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2182 BreakPoint at:00484912 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3955 VA:0027391B Base:2162688 Address: 0048491B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2183 BreakPoint at:0048491B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3956 VA:00273924 Base:2162688 Address: 00484924 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2185 BreakPoint at:00484924 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3957 VA:0027392D Base:2162688 Address: 0048492D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2186 BreakPoint at:0048492D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3958 VA:00273936 Base:2162688 Address: 00484936 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2187 BreakPoint at:00484936 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3959 VA:0027393F Base:2162688 Address: 0048493F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2188 BreakPoint at:0048493F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3960 VA:00273948 Base:2162688 Address: 00484948 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2190 BreakPoint at:00484948 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3961 VA:0027396A Base:2162688 Address: 0048496A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2191 BreakPoint at:0048496A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3962 VA:0027398D Base:2162688 Address: 0048498D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2192 BreakPoint at:0048498D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3963 VA:002739B0 Base:2162688 Address: 004849B0 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2193 BreakPoint at:004849B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3964 VA:002739D3 Base:2162688 Address: 004849D3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2194 BreakPoint at:004849D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3965 VA:002739F6 Base:2162688 Address: 004849F6 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2195 BreakPoint at:004849F6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3966 VA:00273A19 Base:2162688 Address: 00484A19 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2196 BreakPoint at:00484A19 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3967 VA:00273A3C Base:2162688 Address: 00484A3C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2197 BreakPoint at:00484A3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3968 VA:00273A5F Base:2162688 Address: 00484A5F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2198 BreakPoint at:00484A5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3969 VA:00273A82 Base:2162688 Address: 00484A82 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2199 BreakPoint at:00484A82 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3970 VA:00273AA5 Base:2162688 Address: 00484AA5 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2200 BreakPoint at:00484AA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3971 VA:00273AC8 Base:2162688 Address: 00484AC8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2201 BreakPoint at:00484AC8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3972 VA:00273AEB Base:2162688 Address: 00484AEB +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2202 BreakPoint at:00484AEB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3973 VA:00273B0E Base:2162688 Address: 00484B0E +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2203 BreakPoint at:00484B0E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3974 VA:00273B31 Base:2162688 Address: 00484B31 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2204 BreakPoint at:00484B31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3975 VA:00273B54 Base:2162688 Address: 00484B54 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2205 BreakPoint at:00484B54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3976 VA:00273B77 Base:2162688 Address: 00484B77 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2207 BreakPoint at:00484B77 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3977 VA:00273B89 Base:2162688 Address: 00484B89 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2208 BreakPoint at:00484B89 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3978 VA:00273B9B Base:2162688 Address: 00484B9B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2209 BreakPoint at:00484B9B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3979 VA:00273BAD Base:2162688 Address: 00484BAD +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2210 BreakPoint at:00484BAD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3980 VA:00273BBF Base:2162688 Address: 00484BBF +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2212 BreakPoint at:00484BBF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3981 VA:00273BEE Base:2162688 Address: 00484BEE +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2213 BreakPoint at:00484BEE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3982 VA:00273C1D Base:2162688 Address: 00484C1D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2214 BreakPoint at:00484C1D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3983 VA:00273C4C Base:2162688 Address: 00484C4C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2215 BreakPoint at:00484C4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3984 VA:00273C7A Base:2162688 Address: 00484C7A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2216 BreakPoint at:00484C7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3985 VA:00273CA9 Base:2162688 Address: 00484CA9 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2217 BreakPoint at:00484CA9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3986 VA:00273CD8 Base:2162688 Address: 00484CD8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2218 BreakPoint at:00484CD8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3987 VA:00273D07 Base:2162688 Address: 00484D07 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2219 BreakPoint at:00484D07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3988 VA:00273D36 Base:2162688 Address: 00484D36 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2220 BreakPoint at:00484D36 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3989 VA:00273D65 Base:2162688 Address: 00484D65 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2221 BreakPoint at:00484D65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3990 VA:00273D94 Base:2162688 Address: 00484D94 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2222 BreakPoint at:00484D94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3991 VA:00273DC3 Base:2162688 Address: 00484DC3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2223 BreakPoint at:00484DC3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3992 VA:00273DF2 Base:2162688 Address: 00484DF2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2224 BreakPoint at:00484DF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3993 VA:00273E21 Base:2162688 Address: 00484E21 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2225 BreakPoint at:00484E21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3994 VA:00273E50 Base:2162688 Address: 00484E50 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2226 BreakPoint at:00484E50 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3995 VA:00273E7F Base:2162688 Address: 00484E7F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2227 BreakPoint at:00484E7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3996 VA:00273EAE Base:2162688 Address: 00484EAE +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2229 BreakPoint at:00484EAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3997 VA:00273EC0 Base:2162688 Address: 00484EC0 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2230 BreakPoint at:00484EC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3998 VA:00273ED2 Base:2162688 Address: 00484ED2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2231 BreakPoint at:00484ED2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:3999 VA:00273EE4 Base:2162688 Address: 00484EE4 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2233 BreakPoint at:00484EE4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4000 VA:00273F13 Base:2162688 Address: 00484F13 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2234 BreakPoint at:00484F13 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4001 VA:00273F42 Base:2162688 Address: 00484F42 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2235 BreakPoint at:00484F42 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4002 VA:00273F71 Base:2162688 Address: 00484F71 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2236 BreakPoint at:00484F71 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4003 VA:00273FA0 Base:2162688 Address: 00484FA0 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2237 BreakPoint at:00484FA0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4004 VA:00273FCF Base:2162688 Address: 00484FCF +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2238 BreakPoint at:00484FCF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4005 VA:00273FFE Base:2162688 Address: 00484FFE +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2239 BreakPoint at:00484FFE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4006 VA:0027402D Base:2162688 Address: 0048502D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2240 BreakPoint at:0048502D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4007 VA:0027405C Base:2162688 Address: 0048505C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2241 BreakPoint at:0048505C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4008 VA:0027408B Base:2162688 Address: 0048508B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2242 BreakPoint at:0048508B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4009 VA:002740B9 Base:2162688 Address: 004850B9 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2243 BreakPoint at:004850B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4010 VA:002740E8 Base:2162688 Address: 004850E8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2244 BreakPoint at:004850E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4011 VA:00274117 Base:2162688 Address: 00485117 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2245 BreakPoint at:00485117 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4012 VA:00274146 Base:2162688 Address: 00485146 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2246 BreakPoint at:00485146 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4013 VA:00274175 Base:2162688 Address: 00485175 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2247 BreakPoint at:00485175 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4014 VA:002741A4 Base:2162688 Address: 004851A4 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2248 BreakPoint at:004851A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4015 VA:002741D3 Base:2162688 Address: 004851D3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2250 BreakPoint at:004851D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4016 VA:002741E5 Base:2162688 Address: 004851E5 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2251 BreakPoint at:004851E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4017 VA:002741F7 Base:2162688 Address: 004851F7 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2252 BreakPoint at:004851F7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4018 VA:00274209 Base:2162688 Address: 00485209 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2253 BreakPoint at:00485209 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4019 VA:0027421B Base:2162688 Address: 0048521B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2255 BreakPoint at:0048521B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4020 VA:00274245 Base:2162688 Address: 00485245 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2256 BreakPoint at:00485245 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4021 VA:0027426F Base:2162688 Address: 0048526F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2257 BreakPoint at:0048526F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4022 VA:00274299 Base:2162688 Address: 00485299 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2258 BreakPoint at:00485299 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4023 VA:002742C3 Base:2162688 Address: 004852C3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2259 BreakPoint at:004852C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4024 VA:002742EC Base:2162688 Address: 004852EC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2260 BreakPoint at:004852EC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4025 VA:00274316 Base:2162688 Address: 00485316 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2261 BreakPoint at:00485316 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4026 VA:00274340 Base:2162688 Address: 00485340 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2262 BreakPoint at:00485340 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4027 VA:0027436A Base:2162688 Address: 0048536A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2263 BreakPoint at:0048536A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4028 VA:00274394 Base:2162688 Address: 00485394 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2264 BreakPoint at:00485394 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4029 VA:002743BE Base:2162688 Address: 004853BE +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2265 BreakPoint at:004853BE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4030 VA:002743E8 Base:2162688 Address: 004853E8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2266 BreakPoint at:004853E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4031 VA:00274412 Base:2162688 Address: 00485412 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2267 BreakPoint at:00485412 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4032 VA:0027443C Base:2162688 Address: 0048543C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2268 BreakPoint at:0048543C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4033 VA:00274466 Base:2162688 Address: 00485466 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2269 BreakPoint at:00485466 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4034 VA:00274490 Base:2162688 Address: 00485490 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2270 BreakPoint at:00485490 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4035 VA:002744BA Base:2162688 Address: 004854BA +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2272 BreakPoint at:004854BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4036 VA:002744CC Base:2162688 Address: 004854CC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2273 BreakPoint at:004854CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4037 VA:002744DE Base:2162688 Address: 004854DE +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2274 BreakPoint at:004854DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4038 VA:002744F0 Base:2162688 Address: 004854F0 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2276 BreakPoint at:004854F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4039 VA:0027451A Base:2162688 Address: 0048551A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2277 BreakPoint at:0048551A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4040 VA:00274544 Base:2162688 Address: 00485544 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2278 BreakPoint at:00485544 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4041 VA:0027456E Base:2162688 Address: 0048556E +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2279 BreakPoint at:0048556E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4042 VA:00274598 Base:2162688 Address: 00485598 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2280 BreakPoint at:00485598 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4043 VA:002745C2 Base:2162688 Address: 004855C2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2281 BreakPoint at:004855C2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4044 VA:002745EC Base:2162688 Address: 004855EC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2282 BreakPoint at:004855EC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4045 VA:00274616 Base:2162688 Address: 00485616 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2283 BreakPoint at:00485616 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4046 VA:00274640 Base:2162688 Address: 00485640 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2284 BreakPoint at:00485640 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4047 VA:0027466A Base:2162688 Address: 0048566A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2285 BreakPoint at:0048566A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4048 VA:00274694 Base:2162688 Address: 00485694 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2286 BreakPoint at:00485694 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4049 VA:002746BD Base:2162688 Address: 004856BD +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2287 BreakPoint at:004856BD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4050 VA:002746E7 Base:2162688 Address: 004856E7 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2288 BreakPoint at:004856E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4051 VA:00274711 Base:2162688 Address: 00485711 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2289 BreakPoint at:00485711 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4052 VA:0027473B Base:2162688 Address: 0048573B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2290 BreakPoint at:0048573B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4053 VA:00274765 Base:2162688 Address: 00485765 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2291 BreakPoint at:00485765 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4054 VA:0027478F Base:2162688 Address: 0048578F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2293 BreakPoint at:0048578F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4055 VA:002747A1 Base:2162688 Address: 004857A1 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2294 BreakPoint at:004857A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4056 VA:002747B3 Base:2162688 Address: 004857B3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2295 BreakPoint at:004857B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4057 VA:002747C5 Base:2162688 Address: 004857C5 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2296 BreakPoint at:004857C5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4058 VA:002747D7 Base:2162688 Address: 004857D7 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2298 BreakPoint at:004857D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4059 VA:00274806 Base:2162688 Address: 00485806 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2299 BreakPoint at:00485806 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4060 VA:00274835 Base:2162688 Address: 00485835 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2300 BreakPoint at:00485835 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4061 VA:00274864 Base:2162688 Address: 00485864 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2301 BreakPoint at:00485864 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4062 VA:00274893 Base:2162688 Address: 00485893 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2302 BreakPoint at:00485893 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4063 VA:002748C2 Base:2162688 Address: 004858C2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2303 BreakPoint at:004858C2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4064 VA:002748F1 Base:2162688 Address: 004858F1 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2304 BreakPoint at:004858F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4065 VA:00274920 Base:2162688 Address: 00485920 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2305 BreakPoint at:00485920 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4066 VA:0027494F Base:2162688 Address: 0048594F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2306 BreakPoint at:0048594F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4067 VA:0027497E Base:2162688 Address: 0048597E +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2307 BreakPoint at:0048597E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4068 VA:002749AD Base:2162688 Address: 004859AD +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2308 BreakPoint at:004859AD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4069 VA:002749DC Base:2162688 Address: 004859DC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2309 BreakPoint at:004859DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4070 VA:00274A0B Base:2162688 Address: 00485A0B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2310 BreakPoint at:00485A0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4071 VA:00274A3A Base:2162688 Address: 00485A3A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2311 BreakPoint at:00485A3A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4072 VA:00274A68 Base:2162688 Address: 00485A68 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2312 BreakPoint at:00485A68 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4073 VA:00274A97 Base:2162688 Address: 00485A97 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2313 BreakPoint at:00485A97 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4074 VA:00274AC6 Base:2162688 Address: 00485AC6 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2315 BreakPoint at:00485AC6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4075 VA:00274AD8 Base:2162688 Address: 00485AD8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2316 BreakPoint at:00485AD8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4076 VA:00274AEA Base:2162688 Address: 00485AEA +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2317 BreakPoint at:00485AEA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4077 VA:00274AFC Base:2162688 Address: 00485AFC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2319 BreakPoint at:00485AFC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4078 VA:00274B2B Base:2162688 Address: 00485B2B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2320 BreakPoint at:00485B2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4079 VA:00274B5A Base:2162688 Address: 00485B5A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2321 BreakPoint at:00485B5A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4080 VA:00274B89 Base:2162688 Address: 00485B89 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2322 BreakPoint at:00485B89 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4081 VA:00274BB8 Base:2162688 Address: 00485BB8 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2323 BreakPoint at:00485BB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4082 VA:00274BE6 Base:2162688 Address: 00485BE6 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2324 BreakPoint at:00485BE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4083 VA:00274C15 Base:2162688 Address: 00485C15 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2325 BreakPoint at:00485C15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4084 VA:00274C44 Base:2162688 Address: 00485C44 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2326 BreakPoint at:00485C44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4085 VA:00274C73 Base:2162688 Address: 00485C73 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2327 BreakPoint at:00485C73 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4086 VA:00274CA2 Base:2162688 Address: 00485CA2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2328 BreakPoint at:00485CA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4087 VA:00274CD1 Base:2162688 Address: 00485CD1 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2329 BreakPoint at:00485CD1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4088 VA:00274D00 Base:2162688 Address: 00485D00 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2330 BreakPoint at:00485D00 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4089 VA:00274D2F Base:2162688 Address: 00485D2F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2331 BreakPoint at:00485D2F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4090 VA:00274D5E Base:2162688 Address: 00485D5E +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2332 BreakPoint at:00485D5E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4091 VA:00274D8D Base:2162688 Address: 00485D8D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2333 BreakPoint at:00485D8D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4092 VA:00274DBC Base:2162688 Address: 00485DBC +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2334 BreakPoint at:00485DBC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4093 VA:00274DEB Base:2162688 Address: 00485DEB +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2336 BreakPoint at:00485DEB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4094 VA:00274DFD Base:2162688 Address: 00485DFD +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2337 BreakPoint at:00485DFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4095 VA:00274E0F Base:2162688 Address: 00485E0F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2338 BreakPoint at:00485E0F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4096 VA:00274E21 Base:2162688 Address: 00485E21 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2339 BreakPoint at:00485E21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4097 VA:00274E33 Base:2162688 Address: 00485E33 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2341 BreakPoint at:00485E33 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4098 VA:00274E56 Base:2162688 Address: 00485E56 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2342 BreakPoint at:00485E56 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4099 VA:00274E79 Base:2162688 Address: 00485E79 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2343 BreakPoint at:00485E79 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4100 VA:00274E9C Base:2162688 Address: 00485E9C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2344 BreakPoint at:00485E9C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4101 VA:00274EBF Base:2162688 Address: 00485EBF +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2345 BreakPoint at:00485EBF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4102 VA:00274EE2 Base:2162688 Address: 00485EE2 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2346 BreakPoint at:00485EE2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4103 VA:00274F05 Base:2162688 Address: 00485F05 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2347 BreakPoint at:00485F05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4104 VA:00274F28 Base:2162688 Address: 00485F28 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2348 BreakPoint at:00485F28 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4105 VA:00274F4A Base:2162688 Address: 00485F4A +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2349 BreakPoint at:00485F4A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4106 VA:00274F6D Base:2162688 Address: 00485F6D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2350 BreakPoint at:00485F6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4107 VA:00274F90 Base:2162688 Address: 00485F90 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2351 BreakPoint at:00485F90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4108 VA:00274FB3 Base:2162688 Address: 00485FB3 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2352 BreakPoint at:00485FB3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4109 VA:00274FD6 Base:2162688 Address: 00485FD6 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2353 BreakPoint at:00485FD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4110 VA:00274FF9 Base:2162688 Address: 00485FF9 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2354 BreakPoint at:00485FF9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4111 VA:0027501C Base:2162688 Address: 0048601C +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2355 BreakPoint at:0048601C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4112 VA:0027503F Base:2162688 Address: 0048603F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2356 BreakPoint at:0048603F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4113 VA:00275062 Base:2162688 Address: 00486062 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2358 BreakPoint at:00486062 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4114 VA:0027506B Base:2162688 Address: 0048606B +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2359 BreakPoint at:0048606B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4115 VA:00275074 Base:2162688 Address: 00486074 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2360 BreakPoint at:00486074 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4116 VA:0027507D Base:2162688 Address: 0048607D +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2361 BreakPoint at:0048607D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4117 VA:00275086 Base:2162688 Address: 00486086 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2363 BreakPoint at:00486086 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4118 VA:0027508F Base:2162688 Address: 0048608F +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2364 BreakPoint at:0048608F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4119 VA:00275098 Base:2162688 Address: 00486098 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2365 BreakPoint at:00486098 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4120 VA:002750A1 Base:2162688 Address: 004860A1 +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2366 BreakPoint at:004860A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4121 VA:002750AA Base:2162688 Address: 004860AA +Adding breakpoint for DECHash.THash_RipeMD256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2367 BreakPoint at:004860AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4122 VA:002750B0 Base:2162688 Address: 004860B0 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2371 BreakPoint at:004860B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4123 VA:002750B7 Base:2162688 Address: 004860B7 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2372 BreakPoint at:004860B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4124 VA:002750C1 Base:2162688 Address: 004860C1 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2373 BreakPoint at:004860C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4125 VA:002750CB Base:2162688 Address: 004860CB +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2374 BreakPoint at:004860CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4126 VA:002750D5 Base:2162688 Address: 004860D5 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2375 BreakPoint at:004860D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4127 VA:002750DF Base:2162688 Address: 004860DF +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2376 BreakPoint at:004860DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4128 VA:002750E9 Base:2162688 Address: 004860E9 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2377 BreakPoint at:004860E9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4129 VA:002750F3 Base:2162688 Address: 004860F3 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2378 BreakPoint at:004860F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4130 VA:002750FD Base:2162688 Address: 004860FD +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2379 BreakPoint at:004860FD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4131 VA:00275107 Base:2162688 Address: 00486107 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2380 BreakPoint at:00486107 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4132 VA:00275111 Base:2162688 Address: 00486111 +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2381 BreakPoint at:00486111 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4133 VA:0027511B Base:2162688 Address: 0048611B +Adding breakpoint for DECHash.THash_RipeMD256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2382 BreakPoint at:0048611B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4134 VA:00275120 Base:2162688 Address: 00486120 +Adding breakpoint for DECHash.THash_RipeMD256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2385 BreakPoint at:00486120 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4135 VA:00275129 Base:2162688 Address: 00486129 +Adding breakpoint for DECHash.THash_RipeMD256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2386 BreakPoint at:00486129 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4136 VA:00275130 Base:2162688 Address: 00486130 +Adding breakpoint for DECHash.THash_RipeMD256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2387 BreakPoint at:00486130 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4137 VA:00275138 Base:2162688 Address: 00486138 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +Creating class info for DECHash class THash_RipeMD320 +TBreakPoint.Activate: +Activate DECHash.pas line 2397 BreakPoint at:00486138 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4138 VA:00275144 Base:2162688 Address: 00486144 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2398 BreakPoint at:00486144 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4139 VA:0027514D Base:2162688 Address: 0048614D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2399 BreakPoint at:0048614D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4140 VA:00275156 Base:2162688 Address: 00486156 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2400 BreakPoint at:00486156 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4141 VA:0027515F Base:2162688 Address: 0048615F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2401 BreakPoint at:0048615F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4142 VA:00275168 Base:2162688 Address: 00486168 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2402 BreakPoint at:00486168 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4143 VA:00275171 Base:2162688 Address: 00486171 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2403 BreakPoint at:00486171 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4144 VA:0027517A Base:2162688 Address: 0048617A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2404 BreakPoint at:0048617A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4145 VA:00275183 Base:2162688 Address: 00486183 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2405 BreakPoint at:00486183 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4146 VA:0027518C Base:2162688 Address: 0048618C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2406 BreakPoint at:0048618C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4147 VA:00275195 Base:2162688 Address: 00486195 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2407 BreakPoint at:00486195 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4148 VA:0027519E Base:2162688 Address: 0048619E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2409 BreakPoint at:0048619E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4149 VA:002751D4 Base:2162688 Address: 004861D4 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2410 BreakPoint at:004861D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4150 VA:0027520B Base:2162688 Address: 0048620B +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2411 BreakPoint at:0048620B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4151 VA:00275242 Base:2162688 Address: 00486242 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2412 BreakPoint at:00486242 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4152 VA:00275279 Base:2162688 Address: 00486279 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2413 BreakPoint at:00486279 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4153 VA:002752B0 Base:2162688 Address: 004862B0 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2414 BreakPoint at:004862B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4154 VA:002752E7 Base:2162688 Address: 004862E7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2415 BreakPoint at:004862E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4155 VA:0027531E Base:2162688 Address: 0048631E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2416 BreakPoint at:0048631E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4156 VA:00275355 Base:2162688 Address: 00486355 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2417 BreakPoint at:00486355 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4157 VA:0027538C Base:2162688 Address: 0048638C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2418 BreakPoint at:0048638C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4158 VA:002753C3 Base:2162688 Address: 004863C3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2419 BreakPoint at:004863C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4159 VA:002753FA Base:2162688 Address: 004863FA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2420 BreakPoint at:004863FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4160 VA:00275431 Base:2162688 Address: 00486431 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2421 BreakPoint at:00486431 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4161 VA:00275468 Base:2162688 Address: 00486468 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2422 BreakPoint at:00486468 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4162 VA:0027549F Base:2162688 Address: 0048649F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2423 BreakPoint at:0048649F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4163 VA:002754D6 Base:2162688 Address: 004864D6 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2424 BreakPoint at:004864D6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4164 VA:0027550D Base:2162688 Address: 0048650D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2426 BreakPoint at:0048650D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4165 VA:0027551F Base:2162688 Address: 0048651F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2427 BreakPoint at:0048651F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4166 VA:00275531 Base:2162688 Address: 00486531 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2428 BreakPoint at:00486531 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4167 VA:00275543 Base:2162688 Address: 00486543 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2429 BreakPoint at:00486543 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4168 VA:00275555 Base:2162688 Address: 00486555 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2430 BreakPoint at:00486555 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4169 VA:00275567 Base:2162688 Address: 00486567 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2432 BreakPoint at:00486567 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4170 VA:002755A5 Base:2162688 Address: 004865A5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2433 BreakPoint at:004865A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4171 VA:002755E3 Base:2162688 Address: 004865E3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2434 BreakPoint at:004865E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4172 VA:00275621 Base:2162688 Address: 00486621 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2435 BreakPoint at:00486621 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4173 VA:0027565E Base:2162688 Address: 0048665E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2436 BreakPoint at:0048665E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4174 VA:0027569C Base:2162688 Address: 0048669C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2437 BreakPoint at:0048669C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4175 VA:002756DA Base:2162688 Address: 004866DA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2438 BreakPoint at:004866DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4176 VA:00275718 Base:2162688 Address: 00486718 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2439 BreakPoint at:00486718 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4177 VA:00275756 Base:2162688 Address: 00486756 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2440 BreakPoint at:00486756 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4178 VA:00275794 Base:2162688 Address: 00486794 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2441 BreakPoint at:00486794 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4179 VA:002757D2 Base:2162688 Address: 004867D2 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2442 BreakPoint at:004867D2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4180 VA:00275810 Base:2162688 Address: 00486810 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2443 BreakPoint at:00486810 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4181 VA:0027584E Base:2162688 Address: 0048684E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2444 BreakPoint at:0048684E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4182 VA:0027588C Base:2162688 Address: 0048688C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2445 BreakPoint at:0048688C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4183 VA:002758CA Base:2162688 Address: 004868CA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2446 BreakPoint at:004868CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4184 VA:00275908 Base:2162688 Address: 00486908 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2447 BreakPoint at:00486908 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4185 VA:00275946 Base:2162688 Address: 00486946 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2449 BreakPoint at:00486946 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4186 VA:00275958 Base:2162688 Address: 00486958 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2450 BreakPoint at:00486958 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4187 VA:0027596A Base:2162688 Address: 0048696A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2451 BreakPoint at:0048696A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4188 VA:0027597C Base:2162688 Address: 0048697C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2452 BreakPoint at:0048697C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4189 VA:0027598E Base:2162688 Address: 0048698E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2454 BreakPoint at:0048698E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4190 VA:002759D1 Base:2162688 Address: 004869D1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2455 BreakPoint at:004869D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4191 VA:00275A14 Base:2162688 Address: 00486A14 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2456 BreakPoint at:00486A14 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4192 VA:00275A57 Base:2162688 Address: 00486A57 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2457 BreakPoint at:00486A57 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4193 VA:00275A9A Base:2162688 Address: 00486A9A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2458 BreakPoint at:00486A9A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4194 VA:00275ADD Base:2162688 Address: 00486ADD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2459 BreakPoint at:00486ADD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4195 VA:00275B20 Base:2162688 Address: 00486B20 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2460 BreakPoint at:00486B20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4196 VA:00275B63 Base:2162688 Address: 00486B63 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2461 BreakPoint at:00486B63 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4197 VA:00275BA6 Base:2162688 Address: 00486BA6 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2462 BreakPoint at:00486BA6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4198 VA:00275BE9 Base:2162688 Address: 00486BE9 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2463 BreakPoint at:00486BE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4199 VA:00275C2B Base:2162688 Address: 00486C2B +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2464 BreakPoint at:00486C2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4200 VA:00275C6E Base:2162688 Address: 00486C6E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2465 BreakPoint at:00486C6E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4201 VA:00275CB1 Base:2162688 Address: 00486CB1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2466 BreakPoint at:00486CB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4202 VA:00275CF4 Base:2162688 Address: 00486CF4 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2467 BreakPoint at:00486CF4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4203 VA:00275D37 Base:2162688 Address: 00486D37 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2468 BreakPoint at:00486D37 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4204 VA:00275D7A Base:2162688 Address: 00486D7A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2469 BreakPoint at:00486D7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4205 VA:00275DBD Base:2162688 Address: 00486DBD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2471 BreakPoint at:00486DBD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4206 VA:00275DCF Base:2162688 Address: 00486DCF +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2472 BreakPoint at:00486DCF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4207 VA:00275DE1 Base:2162688 Address: 00486DE1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2473 BreakPoint at:00486DE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4208 VA:00275DF3 Base:2162688 Address: 00486DF3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2474 BreakPoint at:00486DF3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4209 VA:00275E05 Base:2162688 Address: 00486E05 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2475 BreakPoint at:00486E05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4210 VA:00275E17 Base:2162688 Address: 00486E17 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2477 BreakPoint at:00486E17 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4211 VA:00275E5A Base:2162688 Address: 00486E5A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2478 BreakPoint at:00486E5A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4212 VA:00275E9D Base:2162688 Address: 00486E9D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2479 BreakPoint at:00486E9D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4213 VA:00275EE0 Base:2162688 Address: 00486EE0 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2480 BreakPoint at:00486EE0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4214 VA:00275F23 Base:2162688 Address: 00486F23 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2481 BreakPoint at:00486F23 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4215 VA:00275F65 Base:2162688 Address: 00486F65 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2482 BreakPoint at:00486F65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4216 VA:00275FA8 Base:2162688 Address: 00486FA8 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2483 BreakPoint at:00486FA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4217 VA:00275FEB Base:2162688 Address: 00486FEB +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2484 BreakPoint at:00486FEB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4218 VA:0027602E Base:2162688 Address: 0048702E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2485 BreakPoint at:0048702E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4219 VA:00276071 Base:2162688 Address: 00487071 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2486 BreakPoint at:00487071 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4220 VA:002760B4 Base:2162688 Address: 004870B4 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2487 BreakPoint at:004870B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4221 VA:002760F7 Base:2162688 Address: 004870F7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2488 BreakPoint at:004870F7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4222 VA:0027613A Base:2162688 Address: 0048713A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2489 BreakPoint at:0048713A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4223 VA:0027617D Base:2162688 Address: 0048717D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2490 BreakPoint at:0048717D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4224 VA:002761C0 Base:2162688 Address: 004871C0 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2491 BreakPoint at:004871C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4225 VA:00276203 Base:2162688 Address: 00487203 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2492 BreakPoint at:00487203 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4226 VA:00276246 Base:2162688 Address: 00487246 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2494 BreakPoint at:00487246 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4227 VA:00276258 Base:2162688 Address: 00487258 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2495 BreakPoint at:00487258 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4228 VA:0027626A Base:2162688 Address: 0048726A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2496 BreakPoint at:0048726A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4229 VA:0027627C Base:2162688 Address: 0048727C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2497 BreakPoint at:0048727C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4230 VA:0027628E Base:2162688 Address: 0048728E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2499 BreakPoint at:0048728E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4231 VA:002762CC Base:2162688 Address: 004872CC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2500 BreakPoint at:004872CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4232 VA:0027630A Base:2162688 Address: 0048730A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2501 BreakPoint at:0048730A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4233 VA:00276348 Base:2162688 Address: 00487348 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2502 BreakPoint at:00487348 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4234 VA:00276386 Base:2162688 Address: 00487386 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2503 BreakPoint at:00487386 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4235 VA:002763C4 Base:2162688 Address: 004873C4 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2504 BreakPoint at:004873C4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4236 VA:00276402 Base:2162688 Address: 00487402 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2505 BreakPoint at:00487402 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4237 VA:00276440 Base:2162688 Address: 00487440 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2506 BreakPoint at:00487440 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4238 VA:0027647E Base:2162688 Address: 0048747E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2507 BreakPoint at:0048747E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4239 VA:002764BC Base:2162688 Address: 004874BC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2508 BreakPoint at:004874BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4240 VA:002764FA Base:2162688 Address: 004874FA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2509 BreakPoint at:004874FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4241 VA:00276537 Base:2162688 Address: 00487537 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2510 BreakPoint at:00487537 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4242 VA:00276575 Base:2162688 Address: 00487575 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2511 BreakPoint at:00487575 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4243 VA:002765B3 Base:2162688 Address: 004875B3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2512 BreakPoint at:004875B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4244 VA:002765F1 Base:2162688 Address: 004875F1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2513 BreakPoint at:004875F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4245 VA:0027662F Base:2162688 Address: 0048762F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2514 BreakPoint at:0048762F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4246 VA:0027666D Base:2162688 Address: 0048766D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2516 BreakPoint at:0048766D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4247 VA:0027667F Base:2162688 Address: 0048767F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2517 BreakPoint at:0048767F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4248 VA:00276691 Base:2162688 Address: 00487691 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2518 BreakPoint at:00487691 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4249 VA:002766A3 Base:2162688 Address: 004876A3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2519 BreakPoint at:004876A3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4250 VA:002766B5 Base:2162688 Address: 004876B5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2520 BreakPoint at:004876B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4251 VA:002766C7 Base:2162688 Address: 004876C7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2522 BreakPoint at:004876C7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4252 VA:00276705 Base:2162688 Address: 00487705 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2523 BreakPoint at:00487705 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4253 VA:00276743 Base:2162688 Address: 00487743 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2524 BreakPoint at:00487743 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4254 VA:00276781 Base:2162688 Address: 00487781 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2525 BreakPoint at:00487781 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4255 VA:002767BF Base:2162688 Address: 004877BF +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2526 BreakPoint at:004877BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4256 VA:002767FD Base:2162688 Address: 004877FD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2527 BreakPoint at:004877FD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4257 VA:0027683B Base:2162688 Address: 0048783B +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2528 BreakPoint at:0048783B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4258 VA:00276879 Base:2162688 Address: 00487879 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2529 BreakPoint at:00487879 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4259 VA:002768B7 Base:2162688 Address: 004878B7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2530 BreakPoint at:004878B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4260 VA:002768F5 Base:2162688 Address: 004878F5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2531 BreakPoint at:004878F5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4261 VA:00276933 Base:2162688 Address: 00487933 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2532 BreakPoint at:00487933 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4262 VA:00276971 Base:2162688 Address: 00487971 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2533 BreakPoint at:00487971 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4263 VA:002769AF Base:2162688 Address: 004879AF +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2534 BreakPoint at:004879AF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4264 VA:002769ED Base:2162688 Address: 004879ED +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2535 BreakPoint at:004879ED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4265 VA:00276A2A Base:2162688 Address: 00487A2A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2536 BreakPoint at:00487A2A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4266 VA:00276A68 Base:2162688 Address: 00487A68 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2537 BreakPoint at:00487A68 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4267 VA:00276AA6 Base:2162688 Address: 00487AA6 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2539 BreakPoint at:00487AA6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4268 VA:00276AB8 Base:2162688 Address: 00487AB8 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2540 BreakPoint at:00487AB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4269 VA:00276ACA Base:2162688 Address: 00487ACA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2541 BreakPoint at:00487ACA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4270 VA:00276ADC Base:2162688 Address: 00487ADC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2542 BreakPoint at:00487ADC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4271 VA:00276AEE Base:2162688 Address: 00487AEE +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2544 BreakPoint at:00487AEE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4272 VA:00276B31 Base:2162688 Address: 00487B31 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2545 BreakPoint at:00487B31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4273 VA:00276B74 Base:2162688 Address: 00487B74 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2546 BreakPoint at:00487B74 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4274 VA:00276BB7 Base:2162688 Address: 00487BB7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2547 BreakPoint at:00487BB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4275 VA:00276BFA Base:2162688 Address: 00487BFA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2548 BreakPoint at:00487BFA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4276 VA:00276C3C Base:2162688 Address: 00487C3C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2549 BreakPoint at:00487C3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4277 VA:00276C7F Base:2162688 Address: 00487C7F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2550 BreakPoint at:00487C7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4278 VA:00276CC2 Base:2162688 Address: 00487CC2 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2551 BreakPoint at:00487CC2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4279 VA:00276D05 Base:2162688 Address: 00487D05 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2552 BreakPoint at:00487D05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4280 VA:00276D48 Base:2162688 Address: 00487D48 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2553 BreakPoint at:00487D48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4281 VA:00276D8B Base:2162688 Address: 00487D8B +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2554 BreakPoint at:00487D8B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4282 VA:00276DCE Base:2162688 Address: 00487DCE +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2555 BreakPoint at:00487DCE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4283 VA:00276E11 Base:2162688 Address: 00487E11 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2556 BreakPoint at:00487E11 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4284 VA:00276E54 Base:2162688 Address: 00487E54 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2557 BreakPoint at:00487E54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4285 VA:00276E97 Base:2162688 Address: 00487E97 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2558 BreakPoint at:00487E97 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4286 VA:00276EDA Base:2162688 Address: 00487EDA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2559 BreakPoint at:00487EDA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4287 VA:00276F1D Base:2162688 Address: 00487F1D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2561 BreakPoint at:00487F1D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4288 VA:00276F2F Base:2162688 Address: 00487F2F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2562 BreakPoint at:00487F2F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4289 VA:00276F41 Base:2162688 Address: 00487F41 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2563 BreakPoint at:00487F41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4290 VA:00276F53 Base:2162688 Address: 00487F53 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2564 BreakPoint at:00487F53 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4291 VA:00276F65 Base:2162688 Address: 00487F65 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2565 BreakPoint at:00487F65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4292 VA:00276F77 Base:2162688 Address: 00487F77 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2567 BreakPoint at:00487F77 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4293 VA:00276FBA Base:2162688 Address: 00487FBA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2568 BreakPoint at:00487FBA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4294 VA:00276FFD Base:2162688 Address: 00487FFD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2569 BreakPoint at:00487FFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4295 VA:00277040 Base:2162688 Address: 00488040 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2570 BreakPoint at:00488040 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4296 VA:00277083 Base:2162688 Address: 00488083 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2571 BreakPoint at:00488083 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4297 VA:002770C6 Base:2162688 Address: 004880C6 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2572 BreakPoint at:004880C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4298 VA:00277109 Base:2162688 Address: 00488109 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2573 BreakPoint at:00488109 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4299 VA:0027714C Base:2162688 Address: 0048814C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2574 BreakPoint at:0048814C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4300 VA:0027718E Base:2162688 Address: 0048818E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2575 BreakPoint at:0048818E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4301 VA:002771D1 Base:2162688 Address: 004881D1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2576 BreakPoint at:004881D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4302 VA:00277214 Base:2162688 Address: 00488214 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2577 BreakPoint at:00488214 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4303 VA:00277257 Base:2162688 Address: 00488257 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2578 BreakPoint at:00488257 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4304 VA:0027729A Base:2162688 Address: 0048829A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2579 BreakPoint at:0048829A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4305 VA:002772DD Base:2162688 Address: 004882DD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2580 BreakPoint at:004882DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4306 VA:00277320 Base:2162688 Address: 00488320 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2581 BreakPoint at:00488320 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4307 VA:00277363 Base:2162688 Address: 00488363 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2582 BreakPoint at:00488363 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4308 VA:002773A6 Base:2162688 Address: 004883A6 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2584 BreakPoint at:004883A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4309 VA:002773B8 Base:2162688 Address: 004883B8 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2585 BreakPoint at:004883B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4310 VA:002773CA Base:2162688 Address: 004883CA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2586 BreakPoint at:004883CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4311 VA:002773DC Base:2162688 Address: 004883DC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2587 BreakPoint at:004883DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4312 VA:002773EE Base:2162688 Address: 004883EE +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2589 BreakPoint at:004883EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4313 VA:0027742C Base:2162688 Address: 0048842C +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2590 BreakPoint at:0048842C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4314 VA:00277469 Base:2162688 Address: 00488469 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2591 BreakPoint at:00488469 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4315 VA:002774A7 Base:2162688 Address: 004884A7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2592 BreakPoint at:004884A7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4316 VA:002774E5 Base:2162688 Address: 004884E5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2593 BreakPoint at:004884E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4317 VA:00277523 Base:2162688 Address: 00488523 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2594 BreakPoint at:00488523 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4318 VA:00277561 Base:2162688 Address: 00488561 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2595 BreakPoint at:00488561 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4319 VA:0027759F Base:2162688 Address: 0048859F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2596 BreakPoint at:0048859F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4320 VA:002775DD Base:2162688 Address: 004885DD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2597 BreakPoint at:004885DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4321 VA:0027761B Base:2162688 Address: 0048861B +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2598 BreakPoint at:0048861B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4322 VA:00277659 Base:2162688 Address: 00488659 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2599 BreakPoint at:00488659 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4323 VA:00277697 Base:2162688 Address: 00488697 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2600 BreakPoint at:00488697 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4324 VA:002776D5 Base:2162688 Address: 004886D5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2601 BreakPoint at:004886D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4325 VA:00277713 Base:2162688 Address: 00488713 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2602 BreakPoint at:00488713 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4326 VA:00277751 Base:2162688 Address: 00488751 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2603 BreakPoint at:00488751 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4327 VA:0027778F Base:2162688 Address: 0048878F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2604 BreakPoint at:0048878F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4328 VA:002777CD Base:2162688 Address: 004887CD +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2606 BreakPoint at:004887CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4329 VA:002777DF Base:2162688 Address: 004887DF +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2607 BreakPoint at:004887DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4330 VA:002777F1 Base:2162688 Address: 004887F1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2608 BreakPoint at:004887F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4331 VA:00277803 Base:2162688 Address: 00488803 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2609 BreakPoint at:00488803 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4332 VA:00277815 Base:2162688 Address: 00488815 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2610 BreakPoint at:00488815 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4333 VA:00277827 Base:2162688 Address: 00488827 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2612 BreakPoint at:00488827 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4334 VA:0027785E Base:2162688 Address: 0048885E +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2613 BreakPoint at:0048885E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4335 VA:00277895 Base:2162688 Address: 00488895 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2614 BreakPoint at:00488895 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4336 VA:002778CC Base:2162688 Address: 004888CC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2615 BreakPoint at:004888CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4337 VA:00277903 Base:2162688 Address: 00488903 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2616 BreakPoint at:00488903 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4338 VA:0027793A Base:2162688 Address: 0048893A +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2617 BreakPoint at:0048893A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4339 VA:00277971 Base:2162688 Address: 00488971 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2618 BreakPoint at:00488971 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4340 VA:002779A8 Base:2162688 Address: 004889A8 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2619 BreakPoint at:004889A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4341 VA:002779DF Base:2162688 Address: 004889DF +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2620 BreakPoint at:004889DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4342 VA:00277A16 Base:2162688 Address: 00488A16 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2621 BreakPoint at:00488A16 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4343 VA:00277A4D Base:2162688 Address: 00488A4D +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2622 BreakPoint at:00488A4D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4344 VA:00277A84 Base:2162688 Address: 00488A84 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2623 BreakPoint at:00488A84 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4345 VA:00277ABB Base:2162688 Address: 00488ABB +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2624 BreakPoint at:00488ABB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4346 VA:00277AF1 Base:2162688 Address: 00488AF1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2625 BreakPoint at:00488AF1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4347 VA:00277B28 Base:2162688 Address: 00488B28 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2626 BreakPoint at:00488B28 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4348 VA:00277B5F Base:2162688 Address: 00488B5F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2627 BreakPoint at:00488B5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4349 VA:00277B96 Base:2162688 Address: 00488B96 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2629 BreakPoint at:00488B96 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4350 VA:00277B9F Base:2162688 Address: 00488B9F +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2630 BreakPoint at:00488B9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4351 VA:00277BA8 Base:2162688 Address: 00488BA8 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2631 BreakPoint at:00488BA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4352 VA:00277BB1 Base:2162688 Address: 00488BB1 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2632 BreakPoint at:00488BB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4353 VA:00277BBA Base:2162688 Address: 00488BBA +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2633 BreakPoint at:00488BBA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4354 VA:00277BC3 Base:2162688 Address: 00488BC3 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2634 BreakPoint at:00488BC3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4355 VA:00277BCC Base:2162688 Address: 00488BCC +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2635 BreakPoint at:00488BCC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4356 VA:00277BD5 Base:2162688 Address: 00488BD5 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2636 BreakPoint at:00488BD5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4357 VA:00277BDE Base:2162688 Address: 00488BDE +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2637 BreakPoint at:00488BDE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4358 VA:00277BE7 Base:2162688 Address: 00488BE7 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2638 BreakPoint at:00488BE7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4359 VA:00277BF0 Base:2162688 Address: 00488BF0 +Adding breakpoint for DECHash.THash_RipeMD320.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2639 BreakPoint at:00488BF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4360 VA:00277BF4 Base:2162688 Address: 00488BF4 +Adding breakpoint for DECHash.THash_RipeMD320.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2643 BreakPoint at:00488BF4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4361 VA:00277BFD Base:2162688 Address: 00488BFD +Adding breakpoint for DECHash.THash_RipeMD320.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2644 BreakPoint at:00488BFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4362 VA:00277C04 Base:2162688 Address: 00488C04 +Adding breakpoint for DECHash.THash_RipeMD320.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2645 BreakPoint at:00488C04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4363 VA:00277C0C Base:2162688 Address: 00488C0C +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +Creating class info for DECHash class THash_SHA0 +TBreakPoint.Activate: +Activate DECHash.pas line 2655 BreakPoint at:00488C0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4364 VA:00277C1B Base:2162688 Address: 00488C1B +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2656 BreakPoint at:00488C1B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4365 VA:00277C2E Base:2162688 Address: 00488C2E +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2657 BreakPoint at:00488C2E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4366 VA:00277C3B Base:2162688 Address: 00488C3B +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2659 BreakPoint at:00488C3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4367 VA:00277C42 Base:2162688 Address: 00488C42 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2661 BreakPoint at:00488C42 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4368 VA:00277C6D Base:2162688 Address: 00488C6D +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2662 BreakPoint at:00488C6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4369 VA:00277C7A Base:2162688 Address: 00488C7A +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2663 BreakPoint at:00488C7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4370 VA:00277C7D Base:2162688 Address: 00488C7D +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2659 BreakPoint at:00488C7D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4371 VA:00277C85 Base:2162688 Address: 00488C85 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2667 BreakPoint at:00488C85 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4372 VA:00277C8C Base:2162688 Address: 00488C8C +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2669 BreakPoint at:00488C8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4373 VA:00277CB7 Base:2162688 Address: 00488CB7 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2670 BreakPoint at:00488CB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4374 VA:00277CCE Base:2162688 Address: 00488CCE +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2671 BreakPoint at:00488CCE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4375 VA:00277CD1 Base:2162688 Address: 00488CD1 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2667 BreakPoint at:00488CD1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4376 VA:00277CD7 Base:2162688 Address: 00488CD7 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2674 BreakPoint at:00488CD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4377 VA:00277CE0 Base:2162688 Address: 00488CE0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2675 BreakPoint at:00488CE0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4378 VA:00277CE9 Base:2162688 Address: 00488CE9 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2676 BreakPoint at:00488CE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4379 VA:00277CF2 Base:2162688 Address: 00488CF2 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2677 BreakPoint at:00488CF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4380 VA:00277CFB Base:2162688 Address: 00488CFB +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2678 BreakPoint at:00488CFB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4381 VA:00277D04 Base:2162688 Address: 00488D04 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2680 BreakPoint at:00488D04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4382 VA:00277D3F Base:2162688 Address: 00488D3F +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2681 BreakPoint at:00488D3F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4383 VA:00277D7A Base:2162688 Address: 00488D7A +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2682 BreakPoint at:00488D7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4384 VA:00277DB5 Base:2162688 Address: 00488DB5 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2683 BreakPoint at:00488DB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4385 VA:00277DF0 Base:2162688 Address: 00488DF0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2684 BreakPoint at:00488DF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4386 VA:00277E2B Base:2162688 Address: 00488E2B +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2685 BreakPoint at:00488E2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4387 VA:00277E66 Base:2162688 Address: 00488E66 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2686 BreakPoint at:00488E66 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4388 VA:00277EA1 Base:2162688 Address: 00488EA1 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2687 BreakPoint at:00488EA1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4389 VA:00277EDC Base:2162688 Address: 00488EDC +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2688 BreakPoint at:00488EDC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4390 VA:00277F17 Base:2162688 Address: 00488F17 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2689 BreakPoint at:00488F17 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4391 VA:00277F52 Base:2162688 Address: 00488F52 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2690 BreakPoint at:00488F52 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4392 VA:00277F8D Base:2162688 Address: 00488F8D +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2691 BreakPoint at:00488F8D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4393 VA:00277FC8 Base:2162688 Address: 00488FC8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2692 BreakPoint at:00488FC8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4394 VA:00278003 Base:2162688 Address: 00489003 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2693 BreakPoint at:00489003 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4395 VA:0027803E Base:2162688 Address: 0048903E +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2694 BreakPoint at:0048903E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4396 VA:00278079 Base:2162688 Address: 00489079 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2695 BreakPoint at:00489079 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4397 VA:002780B4 Base:2162688 Address: 004890B4 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2696 BreakPoint at:004890B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4398 VA:002780EF Base:2162688 Address: 004890EF +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2697 BreakPoint at:004890EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4399 VA:0027812A Base:2162688 Address: 0048912A +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2698 BreakPoint at:0048912A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4400 VA:00278165 Base:2162688 Address: 00489165 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2699 BreakPoint at:00489165 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4401 VA:002781A0 Base:2162688 Address: 004891A0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2701 BreakPoint at:004891A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4402 VA:002781D8 Base:2162688 Address: 004891D8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2702 BreakPoint at:004891D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4403 VA:00278210 Base:2162688 Address: 00489210 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2703 BreakPoint at:00489210 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4404 VA:00278248 Base:2162688 Address: 00489248 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2704 BreakPoint at:00489248 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4405 VA:00278280 Base:2162688 Address: 00489280 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2705 BreakPoint at:00489280 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4406 VA:002782B8 Base:2162688 Address: 004892B8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2706 BreakPoint at:004892B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4407 VA:002782F0 Base:2162688 Address: 004892F0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2707 BreakPoint at:004892F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4408 VA:00278328 Base:2162688 Address: 00489328 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2708 BreakPoint at:00489328 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4409 VA:00278360 Base:2162688 Address: 00489360 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2709 BreakPoint at:00489360 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4410 VA:00278398 Base:2162688 Address: 00489398 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2710 BreakPoint at:00489398 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4411 VA:002783D0 Base:2162688 Address: 004893D0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2711 BreakPoint at:004893D0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4412 VA:00278408 Base:2162688 Address: 00489408 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2712 BreakPoint at:00489408 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4413 VA:00278440 Base:2162688 Address: 00489440 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2713 BreakPoint at:00489440 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4414 VA:00278478 Base:2162688 Address: 00489478 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2714 BreakPoint at:00489478 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4415 VA:002784B0 Base:2162688 Address: 004894B0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2715 BreakPoint at:004894B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4416 VA:002784E8 Base:2162688 Address: 004894E8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2716 BreakPoint at:004894E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4417 VA:00278520 Base:2162688 Address: 00489520 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2717 BreakPoint at:00489520 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4418 VA:00278558 Base:2162688 Address: 00489558 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2718 BreakPoint at:00489558 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4419 VA:00278590 Base:2162688 Address: 00489590 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2719 BreakPoint at:00489590 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4420 VA:002785C8 Base:2162688 Address: 004895C8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2720 BreakPoint at:004895C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4421 VA:00278600 Base:2162688 Address: 00489600 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2722 BreakPoint at:00489600 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4422 VA:00278640 Base:2162688 Address: 00489640 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2723 BreakPoint at:00489640 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4423 VA:00278680 Base:2162688 Address: 00489680 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2724 BreakPoint at:00489680 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4424 VA:002786C0 Base:2162688 Address: 004896C0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2725 BreakPoint at:004896C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4425 VA:00278700 Base:2162688 Address: 00489700 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2726 BreakPoint at:00489700 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4426 VA:00278740 Base:2162688 Address: 00489740 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2727 BreakPoint at:00489740 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4427 VA:00278780 Base:2162688 Address: 00489780 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2728 BreakPoint at:00489780 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4428 VA:002787C0 Base:2162688 Address: 004897C0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2729 BreakPoint at:004897C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4429 VA:00278800 Base:2162688 Address: 00489800 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2730 BreakPoint at:00489800 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4430 VA:00278840 Base:2162688 Address: 00489840 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2731 BreakPoint at:00489840 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4431 VA:00278880 Base:2162688 Address: 00489880 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2732 BreakPoint at:00489880 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4432 VA:002788C0 Base:2162688 Address: 004898C0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2733 BreakPoint at:004898C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4433 VA:00278900 Base:2162688 Address: 00489900 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2734 BreakPoint at:00489900 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4434 VA:00278940 Base:2162688 Address: 00489940 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2735 BreakPoint at:00489940 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4435 VA:00278980 Base:2162688 Address: 00489980 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2736 BreakPoint at:00489980 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4436 VA:002789C0 Base:2162688 Address: 004899C0 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2737 BreakPoint at:004899C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4437 VA:00278A00 Base:2162688 Address: 00489A00 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2738 BreakPoint at:00489A00 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4438 VA:00278A40 Base:2162688 Address: 00489A40 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2739 BreakPoint at:00489A40 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4439 VA:00278A7D Base:2162688 Address: 00489A7D +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2740 BreakPoint at:00489A7D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4440 VA:00278ABA Base:2162688 Address: 00489ABA +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2741 BreakPoint at:00489ABA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4441 VA:00278AF7 Base:2162688 Address: 00489AF7 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2743 BreakPoint at:00489AF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4442 VA:00278B2C Base:2162688 Address: 00489B2C +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2744 BreakPoint at:00489B2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4443 VA:00278B61 Base:2162688 Address: 00489B61 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2745 BreakPoint at:00489B61 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4444 VA:00278B96 Base:2162688 Address: 00489B96 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2746 BreakPoint at:00489B96 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4445 VA:00278BCB Base:2162688 Address: 00489BCB +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2747 BreakPoint at:00489BCB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4446 VA:00278C00 Base:2162688 Address: 00489C00 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2748 BreakPoint at:00489C00 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4447 VA:00278C35 Base:2162688 Address: 00489C35 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2749 BreakPoint at:00489C35 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4448 VA:00278C6A Base:2162688 Address: 00489C6A +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2750 BreakPoint at:00489C6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4449 VA:00278C9F Base:2162688 Address: 00489C9F +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2751 BreakPoint at:00489C9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4450 VA:00278CD4 Base:2162688 Address: 00489CD4 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2752 BreakPoint at:00489CD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4451 VA:00278D09 Base:2162688 Address: 00489D09 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2753 BreakPoint at:00489D09 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4452 VA:00278D3E Base:2162688 Address: 00489D3E +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2754 BreakPoint at:00489D3E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4453 VA:00278D73 Base:2162688 Address: 00489D73 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2755 BreakPoint at:00489D73 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4454 VA:00278DA8 Base:2162688 Address: 00489DA8 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2756 BreakPoint at:00489DA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4455 VA:00278DDD Base:2162688 Address: 00489DDD +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2757 BreakPoint at:00489DDD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4456 VA:00278E12 Base:2162688 Address: 00489E12 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2758 BreakPoint at:00489E12 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4457 VA:00278E47 Base:2162688 Address: 00489E47 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2759 BreakPoint at:00489E47 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4458 VA:00278E7C Base:2162688 Address: 00489E7C +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2760 BreakPoint at:00489E7C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4459 VA:00278EB1 Base:2162688 Address: 00489EB1 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2761 BreakPoint at:00489EB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4460 VA:00278EE6 Base:2162688 Address: 00489EE6 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2762 BreakPoint at:00489EE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4461 VA:00278F1B Base:2162688 Address: 00489F1B +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2764 BreakPoint at:00489F1B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4462 VA:00278F24 Base:2162688 Address: 00489F24 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2765 BreakPoint at:00489F24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4463 VA:00278F2D Base:2162688 Address: 00489F2D +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2766 BreakPoint at:00489F2D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4464 VA:00278F36 Base:2162688 Address: 00489F36 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2767 BreakPoint at:00489F36 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4465 VA:00278F3F Base:2162688 Address: 00489F3F +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2768 BreakPoint at:00489F3F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4466 VA:00278F48 Base:2162688 Address: 00489F48 +Adding breakpoint for DECHash.THash_SHA0.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2769 BreakPoint at:00489F48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4467 VA:00278F4C Base:2162688 Address: 00489F4C +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2773 BreakPoint at:00489F4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4468 VA:00278F53 Base:2162688 Address: 00489F53 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2774 BreakPoint at:00489F53 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4469 VA:00278F61 Base:2162688 Address: 00489F61 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2775 BreakPoint at:00489F61 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4470 VA:00278F69 Base:2162688 Address: 00489F69 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2776 BreakPoint at:00489F69 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4471 VA:00278F72 Base:2162688 Address: 00489F72 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2777 BreakPoint at:00489F72 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4472 VA:00278F79 Base:2162688 Address: 00489F79 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2778 BreakPoint at:00489F79 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4473 VA:00278F8E Base:2162688 Address: 00489F8E +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2779 BreakPoint at:00489F8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4474 VA:00278F94 Base:2162688 Address: 00489F94 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2780 BreakPoint at:00489F94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4475 VA:00278FA7 Base:2162688 Address: 00489FA7 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2782 BreakPoint at:00489FA7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4476 VA:00278FC9 Base:2162688 Address: 00489FC9 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2783 BreakPoint at:00489FC9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4477 VA:00278FD7 Base:2162688 Address: 00489FD7 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2784 BreakPoint at:00489FD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4478 VA:00278FDF Base:2162688 Address: 00489FDF +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2786 BreakPoint at:00489FDF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4479 VA:00279001 Base:2162688 Address: 0048A001 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2787 BreakPoint at:0048A001 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4480 VA:0027901E Base:2162688 Address: 0048A01E +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2788 BreakPoint at:0048A01E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4481 VA:0027903B Base:2162688 Address: 0048A03B +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2789 BreakPoint at:0048A03B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4482 VA:00279049 Base:2162688 Address: 0048A049 +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2790 BreakPoint at:0048A049 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4483 VA:0027905F Base:2162688 Address: 0048A05F +Adding breakpoint for DECHash.THash_SHA0.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2791 BreakPoint at:0048A05F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4484 VA:00279064 Base:2162688 Address: 0048A064 +Adding breakpoint for DECHash.THash_SHA0.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2794 BreakPoint at:0048A064 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4485 VA:0027906D Base:2162688 Address: 0048A06D +Adding breakpoint for DECHash.THash_SHA0.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2795 BreakPoint at:0048A06D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4486 VA:00279074 Base:2162688 Address: 0048A074 +Adding breakpoint for DECHash.THash_SHA0.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2796 BreakPoint at:0048A074 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4487 VA:0027907C Base:2162688 Address: 0048A07C +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +Creating class info for DECHash class THash_SHA256 +TBreakPoint.Activate: +Activate DECHash.pas line 2801 BreakPoint at:0048A07C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4488 VA:00279083 Base:2162688 Address: 0048A083 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2802 BreakPoint at:0048A083 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4489 VA:0027908D Base:2162688 Address: 0048A08D +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2803 BreakPoint at:0048A08D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4490 VA:00279097 Base:2162688 Address: 0048A097 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2804 BreakPoint at:0048A097 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4491 VA:002790A1 Base:2162688 Address: 0048A0A1 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2805 BreakPoint at:0048A0A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4492 VA:002790AB Base:2162688 Address: 0048A0AB +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2806 BreakPoint at:0048A0AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4493 VA:002790B5 Base:2162688 Address: 0048A0B5 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2807 BreakPoint at:0048A0B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4494 VA:002790BF Base:2162688 Address: 0048A0BF +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2808 BreakPoint at:0048A0BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4495 VA:002790C9 Base:2162688 Address: 0048A0C9 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2809 BreakPoint at:0048A0C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4496 VA:002790D3 Base:2162688 Address: 0048A0D3 +Adding breakpoint for DECHash.THash_SHA256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2810 BreakPoint at:0048A0D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4497 VA:002790D8 Base:2162688 Address: 0048A0D8 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2819 BreakPoint at:0048A0D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4498 VA:002790E8 Base:2162688 Address: 0048A0E8 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2820 BreakPoint at:0048A0E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4499 VA:002790FB Base:2162688 Address: 0048A0FB +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2822 BreakPoint at:0048A0FB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4500 VA:00279102 Base:2162688 Address: 0048A102 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2824 BreakPoint at:0048A102 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4501 VA:0027910F Base:2162688 Address: 0048A10F +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2825 BreakPoint at:0048A10F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4502 VA:0027911C Base:2162688 Address: 0048A11C +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2826 BreakPoint at:0048A11C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4503 VA:0027918A Base:2162688 Address: 0048A18A +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2829 BreakPoint at:0048A18A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4504 VA:0027918D Base:2162688 Address: 0048A18D +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2822 BreakPoint at:0048A18D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4505 VA:00279197 Base:2162688 Address: 0048A197 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2832 BreakPoint at:0048A197 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4506 VA:002791A0 Base:2162688 Address: 0048A1A0 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2833 BreakPoint at:0048A1A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4507 VA:002791A9 Base:2162688 Address: 0048A1A9 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2834 BreakPoint at:0048A1A9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4508 VA:002791B2 Base:2162688 Address: 0048A1B2 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2835 BreakPoint at:0048A1B2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4509 VA:002791BB Base:2162688 Address: 0048A1BB +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2836 BreakPoint at:0048A1BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4510 VA:002791C4 Base:2162688 Address: 0048A1C4 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2837 BreakPoint at:0048A1C4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4511 VA:002791CD Base:2162688 Address: 0048A1CD +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2838 BreakPoint at:0048A1CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4512 VA:002791D6 Base:2162688 Address: 0048A1D6 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2839 BreakPoint at:0048A1D6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4513 VA:002791DF Base:2162688 Address: 0048A1DF +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2841 BreakPoint at:0048A1DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4514 VA:002791E4 Base:2162688 Address: 0048A1E4 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2843 BreakPoint at:0048A1E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4515 VA:0027923C Base:2162688 Address: 0048A23C +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2845 BreakPoint at:0048A23C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4516 VA:00279280 Base:2162688 Address: 0048A280 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2847 BreakPoint at:0048A280 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4517 VA:002792B6 Base:2162688 Address: 0048A2B6 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2848 BreakPoint at:0048A2B6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4518 VA:002792B9 Base:2162688 Address: 0048A2B9 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2841 BreakPoint at:0048A2B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4519 VA:002792C3 Base:2162688 Address: 0048A2C3 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2850 BreakPoint at:0048A2C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4520 VA:002792CC Base:2162688 Address: 0048A2CC +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2851 BreakPoint at:0048A2CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4521 VA:002792D5 Base:2162688 Address: 0048A2D5 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2852 BreakPoint at:0048A2D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4522 VA:002792DE Base:2162688 Address: 0048A2DE +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2853 BreakPoint at:0048A2DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4523 VA:002792E7 Base:2162688 Address: 0048A2E7 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2854 BreakPoint at:0048A2E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4524 VA:002792F0 Base:2162688 Address: 0048A2F0 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2855 BreakPoint at:0048A2F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4525 VA:002792F9 Base:2162688 Address: 0048A2F9 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2856 BreakPoint at:0048A2F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4526 VA:00279302 Base:2162688 Address: 0048A302 +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2857 BreakPoint at:0048A302 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4527 VA:0027930B Base:2162688 Address: 0048A30B +Adding breakpoint for DECHash.THash_SHA256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2858 BreakPoint at:0048A30B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4528 VA:00279310 Base:2162688 Address: 0048A310 +Adding breakpoint for DECHash.THash_SHA256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2862 BreakPoint at:0048A310 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4529 VA:00279319 Base:2162688 Address: 0048A319 +Adding breakpoint for DECHash.THash_SHA256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2863 BreakPoint at:0048A319 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4530 VA:00279320 Base:2162688 Address: 0048A320 +Adding breakpoint for DECHash.THash_SHA256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2864 BreakPoint at:0048A320 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4531 VA:00279328 Base:2162688 Address: 0048A328 +Adding breakpoint for DECHash.THash_SHA224.BlockSize in DECHash.pas +Creating class info for DECHash class THash_SHA224 +TBreakPoint.Activate: +Activate DECHash.pas line 2869 BreakPoint at:0048A328 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4532 VA:00279331 Base:2162688 Address: 0048A331 +Adding breakpoint for DECHash.THash_SHA224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2870 BreakPoint at:0048A331 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4533 VA:00279338 Base:2162688 Address: 0048A338 +Adding breakpoint for DECHash.THash_SHA224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2871 BreakPoint at:0048A338 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4534 VA:00279340 Base:2162688 Address: 0048A340 +Adding breakpoint for DECHash.THash_SHA224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2874 BreakPoint at:0048A340 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4535 VA:00279349 Base:2162688 Address: 0048A349 +Adding breakpoint for DECHash.THash_SHA224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2875 BreakPoint at:0048A349 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4536 VA:00279350 Base:2162688 Address: 0048A350 +Adding breakpoint for DECHash.THash_SHA224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2876 BreakPoint at:0048A350 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4537 VA:00279358 Base:2162688 Address: 0048A358 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2879 BreakPoint at:0048A358 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4538 VA:0027935F Base:2162688 Address: 0048A35F +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2880 BreakPoint at:0048A35F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4539 VA:00279369 Base:2162688 Address: 0048A369 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2881 BreakPoint at:0048A369 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4540 VA:00279373 Base:2162688 Address: 0048A373 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2882 BreakPoint at:0048A373 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4541 VA:0027937D Base:2162688 Address: 0048A37D +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2883 BreakPoint at:0048A37D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4542 VA:00279387 Base:2162688 Address: 0048A387 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2884 BreakPoint at:0048A387 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4543 VA:00279391 Base:2162688 Address: 0048A391 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2885 BreakPoint at:0048A391 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4544 VA:0027939B Base:2162688 Address: 0048A39B +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2886 BreakPoint at:0048A39B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4545 VA:002793A5 Base:2162688 Address: 0048A3A5 +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2887 BreakPoint at:0048A3A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4546 VA:002793AF Base:2162688 Address: 0048A3AF +Adding breakpoint for DECHash.THash_SHA224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2888 BreakPoint at:0048A3AF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4547 VA:002793B4 Base:2162688 Address: 0048A3B4 +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +Creating class info for DECHash class THash_SHA384 +TBreakPoint.Activate: +Activate DECHash.pas line 2893 BreakPoint at:0048A3B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4548 VA:002793BB Base:2162688 Address: 0048A3BB +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2894 BreakPoint at:0048A3BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4549 VA:002793CC Base:2162688 Address: 0048A3CC +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2895 BreakPoint at:0048A3CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4550 VA:002793DD Base:2162688 Address: 0048A3DD +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2896 BreakPoint at:0048A3DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4551 VA:002793EE Base:2162688 Address: 0048A3EE +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2897 BreakPoint at:0048A3EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4552 VA:002793FF Base:2162688 Address: 0048A3FF +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2898 BreakPoint at:0048A3FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4553 VA:00279410 Base:2162688 Address: 0048A410 +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2899 BreakPoint at:0048A410 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4554 VA:00279421 Base:2162688 Address: 0048A421 +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2900 BreakPoint at:0048A421 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4555 VA:00279432 Base:2162688 Address: 0048A432 +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2901 BreakPoint at:0048A432 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4556 VA:00279449 Base:2162688 Address: 0048A449 +Adding breakpoint for DECHash.THash_SHA384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2902 BreakPoint at:0048A449 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4557 VA:0027944C Base:2162688 Address: 0048A44C +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2911 BreakPoint at:0048A44C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4558 VA:0027945C Base:2162688 Address: 0048A45C +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2913 BreakPoint at:0048A45C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4559 VA:0027946F Base:2162688 Address: 0048A46F +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2916 BreakPoint at:0048A46F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4560 VA:00279476 Base:2162688 Address: 0048A476 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2918 BreakPoint at:0048A476 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4561 VA:0027948D Base:2162688 Address: 0048A48D +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2919 BreakPoint at:0048A48D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4562 VA:002794A4 Base:2162688 Address: 0048A4A4 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2920 BreakPoint at:0048A4A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4563 VA:002795BC Base:2162688 Address: 0048A5BC +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2923 BreakPoint at:0048A5BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4564 VA:002795BF Base:2162688 Address: 0048A5BF +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2916 BreakPoint at:0048A5BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4565 VA:002795C9 Base:2162688 Address: 0048A5C9 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2926 BreakPoint at:0048A5C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4566 VA:002795D8 Base:2162688 Address: 0048A5D8 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2927 BreakPoint at:0048A5D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4567 VA:002795E7 Base:2162688 Address: 0048A5E7 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2928 BreakPoint at:0048A5E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4568 VA:002795F6 Base:2162688 Address: 0048A5F6 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2929 BreakPoint at:0048A5F6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4569 VA:00279605 Base:2162688 Address: 0048A605 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2930 BreakPoint at:0048A605 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4570 VA:00279614 Base:2162688 Address: 0048A614 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2931 BreakPoint at:0048A614 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4571 VA:00279623 Base:2162688 Address: 0048A623 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2932 BreakPoint at:0048A623 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4572 VA:00279632 Base:2162688 Address: 0048A632 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2933 BreakPoint at:0048A632 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4573 VA:00279647 Base:2162688 Address: 0048A647 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2935 BreakPoint at:0048A647 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4574 VA:0027964C Base:2162688 Address: 0048A64C +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2937 BreakPoint at:0048A64C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4575 VA:00279718 Base:2162688 Address: 0048A718 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2939 BreakPoint at:0048A718 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4576 VA:002797CF Base:2162688 Address: 0048A7CF +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2941 BreakPoint at:0048A7CF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4577 VA:002797DB Base:2162688 Address: 0048A7DB +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2942 BreakPoint at:0048A7DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4578 VA:002797E7 Base:2162688 Address: 0048A7E7 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2943 BreakPoint at:0048A7E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4579 VA:002797F3 Base:2162688 Address: 0048A7F3 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2944 BreakPoint at:0048A7F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4580 VA:00279805 Base:2162688 Address: 0048A805 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2945 BreakPoint at:0048A805 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4581 VA:00279811 Base:2162688 Address: 0048A811 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2946 BreakPoint at:0048A811 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4582 VA:0027981D Base:2162688 Address: 0048A81D +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2947 BreakPoint at:0048A81D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4583 VA:00279829 Base:2162688 Address: 0048A829 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2948 BreakPoint at:0048A829 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4584 VA:0027983B Base:2162688 Address: 0048A83B +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2949 BreakPoint at:0048A83B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4585 VA:0027983E Base:2162688 Address: 0048A83E +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2935 BreakPoint at:0048A83E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4586 VA:00279848 Base:2162688 Address: 0048A848 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2951 BreakPoint at:0048A848 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4587 VA:00279857 Base:2162688 Address: 0048A857 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2952 BreakPoint at:0048A857 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4588 VA:00279866 Base:2162688 Address: 0048A866 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2953 BreakPoint at:0048A866 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4589 VA:00279875 Base:2162688 Address: 0048A875 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2954 BreakPoint at:0048A875 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4590 VA:00279884 Base:2162688 Address: 0048A884 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2955 BreakPoint at:0048A884 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4591 VA:00279893 Base:2162688 Address: 0048A893 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2956 BreakPoint at:0048A893 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4592 VA:002798A2 Base:2162688 Address: 0048A8A2 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2957 BreakPoint at:0048A8A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4593 VA:002798B1 Base:2162688 Address: 0048A8B1 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2958 BreakPoint at:0048A8B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4594 VA:002798C6 Base:2162688 Address: 0048A8C6 +Adding breakpoint for DECHash.THash_SHA384.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2959 BreakPoint at:0048A8C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4595 VA:002798CC Base:2162688 Address: 0048A8CC +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2963 BreakPoint at:0048A8CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4596 VA:002798D3 Base:2162688 Address: 0048A8D3 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2964 BreakPoint at:0048A8D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4597 VA:002798DC Base:2162688 Address: 0048A8DC +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2965 BreakPoint at:0048A8DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4598 VA:002798E3 Base:2162688 Address: 0048A8E3 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2966 BreakPoint at:0048A8E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4599 VA:002798F8 Base:2162688 Address: 0048A8F8 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2967 BreakPoint at:0048A8F8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4600 VA:002798FE Base:2162688 Address: 0048A8FE +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2968 BreakPoint at:0048A8FE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4601 VA:00279911 Base:2162688 Address: 0048A911 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2970 BreakPoint at:0048A911 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4602 VA:00279933 Base:2162688 Address: 0048A933 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2971 BreakPoint at:0048A933 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4603 VA:00279941 Base:2162688 Address: 0048A941 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2972 BreakPoint at:0048A941 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4604 VA:00279949 Base:2162688 Address: 0048A949 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2974 BreakPoint at:0048A949 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4605 VA:0027996B Base:2162688 Address: 0048A96B +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2975 BreakPoint at:0048A96B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4606 VA:00279981 Base:2162688 Address: 0048A981 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2976 BreakPoint at:0048A981 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4607 VA:00279999 Base:2162688 Address: 0048A999 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2977 BreakPoint at:0048A999 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4608 VA:002799B1 Base:2162688 Address: 0048A9B1 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2978 BreakPoint at:0048A9B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4609 VA:002799C9 Base:2162688 Address: 0048A9C9 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2979 BreakPoint at:0048A9C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4610 VA:002799E1 Base:2162688 Address: 0048A9E1 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2980 BreakPoint at:0048A9E1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4611 VA:002799EF Base:2162688 Address: 0048A9EF +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2981 BreakPoint at:0048A9EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4612 VA:00279A05 Base:2162688 Address: 0048AA05 +Adding breakpoint for DECHash.THash_SHA384.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2982 BreakPoint at:0048AA05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4613 VA:00279A08 Base:2162688 Address: 0048AA08 +Adding breakpoint for DECHash.THash_SHA384.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2985 BreakPoint at:0048AA08 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4614 VA:00279A11 Base:2162688 Address: 0048AA11 +Adding breakpoint for DECHash.THash_SHA384.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2986 BreakPoint at:0048AA11 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4615 VA:00279A1A Base:2162688 Address: 0048AA1A +Adding breakpoint for DECHash.THash_SHA384.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2987 BreakPoint at:0048AA1A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4616 VA:00279A24 Base:2162688 Address: 0048AA24 +Adding breakpoint for DECHash.THash_SHA384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2990 BreakPoint at:0048AA24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4617 VA:00279A2D Base:2162688 Address: 0048AA2D +Adding breakpoint for DECHash.THash_SHA384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2991 BreakPoint at:0048AA2D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4618 VA:00279A34 Base:2162688 Address: 0048AA34 +Adding breakpoint for DECHash.THash_SHA384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2992 BreakPoint at:0048AA34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4619 VA:00279A3C Base:2162688 Address: 0048AA3C +Adding breakpoint for DECHash.THash_SHA384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2995 BreakPoint at:0048AA3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4620 VA:00279A45 Base:2162688 Address: 0048AA45 +Adding breakpoint for DECHash.THash_SHA384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2996 BreakPoint at:0048AA45 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4621 VA:00279A4C Base:2162688 Address: 0048AA4C +Adding breakpoint for DECHash.THash_SHA384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 2997 BreakPoint at:0048AA4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4622 VA:00279A54 Base:2162688 Address: 0048AA54 +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +Creating class info for DECHash class THash_SHA512 +TBreakPoint.Activate: +Activate DECHash.pas line 3002 BreakPoint at:0048AA54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4623 VA:00279A5B Base:2162688 Address: 0048AA5B +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3003 BreakPoint at:0048AA5B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4624 VA:00279A6C Base:2162688 Address: 0048AA6C +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3004 BreakPoint at:0048AA6C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4625 VA:00279A7D Base:2162688 Address: 0048AA7D +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3005 BreakPoint at:0048AA7D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4626 VA:00279A8E Base:2162688 Address: 0048AA8E +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3006 BreakPoint at:0048AA8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4627 VA:00279A9F Base:2162688 Address: 0048AA9F +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3007 BreakPoint at:0048AA9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4628 VA:00279AB0 Base:2162688 Address: 0048AAB0 +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3008 BreakPoint at:0048AAB0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4629 VA:00279AC1 Base:2162688 Address: 0048AAC1 +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3009 BreakPoint at:0048AAC1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4630 VA:00279AD2 Base:2162688 Address: 0048AAD2 +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3010 BreakPoint at:0048AAD2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4631 VA:00279AE9 Base:2162688 Address: 0048AAE9 +Adding breakpoint for DECHash.THash_SHA512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3011 BreakPoint at:0048AAE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4632 VA:00279AEC Base:2162688 Address: 0048AAEC +Adding breakpoint for DECHash.THash_SHA512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3014 BreakPoint at:0048AAEC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4633 VA:00279AF5 Base:2162688 Address: 0048AAF5 +Adding breakpoint for DECHash.THash_SHA512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3015 BreakPoint at:0048AAF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4634 VA:00279AFC Base:2162688 Address: 0048AAFC +Adding breakpoint for DECHash.THash_SHA512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3016 BreakPoint at:0048AAFC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4635 VA:00279B04 Base:2162688 Address: 0048AB04 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +Creating class info for DECHash class THashBaseHaval +TBreakPoint.Activate: +Activate DECHash.pas line 3021 BreakPoint at:0048AB04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4636 VA:00279B10 Base:2162688 Address: 0048AB10 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3022 BreakPoint at:0048AB10 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4637 VA:00279B23 Base:2162688 Address: 0048AB23 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3024 BreakPoint at:0048AB23 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4638 VA:00279B30 Base:2162688 Address: 0048AB30 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3025 BreakPoint at:0048AB30 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4639 VA:00279B39 Base:2162688 Address: 0048AB39 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3028 BreakPoint at:0048AB39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4640 VA:00279B46 Base:2162688 Address: 0048AB46 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3029 BreakPoint at:0048AB46 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4641 VA:00279B4F Base:2162688 Address: 0048AB4F +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3031 BreakPoint at:0048AB4F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4642 VA:00279B56 Base:2162688 Address: 0048AB56 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3034 BreakPoint at:0048AB56 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4643 VA:00279B5F Base:2162688 Address: 0048AB5F +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3035 BreakPoint at:0048AB5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4644 VA:00279B72 Base:2162688 Address: 0048AB72 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3036 BreakPoint at:0048AB72 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4645 VA:00279B84 Base:2162688 Address: 0048AB84 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3037 BreakPoint at:0048AB84 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4646 VA:00279B96 Base:2162688 Address: 0048AB96 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3038 BreakPoint at:0048AB96 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4647 VA:00279BA6 Base:2162688 Address: 0048ABA6 +Adding breakpoint for DECHash.THashBaseHaval.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3040 BreakPoint at:0048ABA6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4648 VA:00279BAC Base:2162688 Address: 0048ABAC +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3043 BreakPoint at:0048ABAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4649 VA:00279BB3 Base:2162688 Address: 0048ABB3 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3044 BreakPoint at:0048ABB3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4650 VA:00279BC1 Base:2162688 Address: 0048ABC1 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3045 BreakPoint at:0048ABC1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4651 VA:00279BCB Base:2162688 Address: 0048ABCB +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3046 BreakPoint at:0048ABCB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4652 VA:00279BD5 Base:2162688 Address: 0048ABD5 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3047 BreakPoint at:0048ABD5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4653 VA:00279BDF Base:2162688 Address: 0048ABDF +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3048 BreakPoint at:0048ABDF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4654 VA:00279BE9 Base:2162688 Address: 0048ABE9 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3049 BreakPoint at:0048ABE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4655 VA:00279BF3 Base:2162688 Address: 0048ABF3 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3050 BreakPoint at:0048ABF3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4656 VA:00279BFD Base:2162688 Address: 0048ABFD +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3051 BreakPoint at:0048ABFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4657 VA:00279C07 Base:2162688 Address: 0048AC07 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3052 BreakPoint at:0048AC07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4658 VA:00279C11 Base:2162688 Address: 0048AC11 +Adding breakpoint for DECHash.THashBaseHaval.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3053 BreakPoint at:0048AC11 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4659 VA:00279C14 Base:2162688 Address: 0048AC14 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3056 BreakPoint at:0048AC14 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4660 VA:00279C21 Base:2162688 Address: 0048AC21 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3057 BreakPoint at:0048AC21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4661 VA:00279C2D Base:2162688 Address: 0048AC2D +Adding breakpoint for DECHash.THashBaseHaval.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3058 BreakPoint at:0048AC2D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4662 VA:00279C34 Base:2162688 Address: 0048AC34 +Adding breakpoint for DECHash.THashBaseHaval.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3061 BreakPoint at:0048AC34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4663 VA:00279C3D Base:2162688 Address: 0048AC3D +Adding breakpoint for DECHash.THashBaseHaval.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3062 BreakPoint at:0048AC3D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4664 VA:00279C44 Base:2162688 Address: 0048AC44 +Adding breakpoint for DECHash.THashBaseHaval.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3063 BreakPoint at:0048AC44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4665 VA:00279C4C Base:2162688 Address: 0048AC4C +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3066 BreakPoint at:0048AC4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4666 VA:00279C55 Base:2162688 Address: 0048AC55 +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3067 BreakPoint at:0048AC55 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4667 VA:00279C62 Base:2162688 Address: 0048AC62 +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3068 BreakPoint at:0048AC62 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4668 VA:00279C6B Base:2162688 Address: 0048AC6B +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3071 BreakPoint at:0048AC6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4669 VA:00279C78 Base:2162688 Address: 0048AC78 +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3072 BreakPoint at:0048AC78 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4670 VA:00279C81 Base:2162688 Address: 0048AC81 +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3074 BreakPoint at:0048AC81 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4671 VA:00279C88 Base:2162688 Address: 0048AC88 +Adding breakpoint for DECHash.THashBaseHaval.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3076 BreakPoint at:0048AC88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4672 VA:00279C90 Base:2162688 Address: 0048AC90 +Adding breakpoint for DECHash.THashBaseHaval.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3079 BreakPoint at:0048AC90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4673 VA:00279C99 Base:2162688 Address: 0048AC99 +Adding breakpoint for DECHash.THashBaseHaval.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3080 BreakPoint at:0048AC99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4674 VA:00279CA2 Base:2162688 Address: 0048ACA2 +Adding breakpoint for DECHash.THashBaseHaval.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3081 BreakPoint at:0048ACA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4675 VA:00279CAC Base:2162688 Address: 0048ACAC +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3089 BreakPoint at:0048ACAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4676 VA:00279CB8 Base:2162688 Address: 0048ACB8 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3090 BreakPoint at:0048ACB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4677 VA:00279CC0 Base:2162688 Address: 0048ACC0 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3091 BreakPoint at:0048ACC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4678 VA:00279CC8 Base:2162688 Address: 0048ACC8 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3093 BreakPoint at:0048ACC8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4679 VA:00279CD1 Base:2162688 Address: 0048ACD1 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3094 BreakPoint at:0048ACD1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4680 VA:00279CDA Base:2162688 Address: 0048ACDA +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3095 BreakPoint at:0048ACDA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4681 VA:00279CE3 Base:2162688 Address: 0048ACE3 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3096 BreakPoint at:0048ACE3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4682 VA:00279CEC Base:2162688 Address: 0048ACEC +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3097 BreakPoint at:0048ACEC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4683 VA:00279CF5 Base:2162688 Address: 0048ACF5 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3098 BreakPoint at:0048ACF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4684 VA:00279CFE Base:2162688 Address: 0048ACFE +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3099 BreakPoint at:0048ACFE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4685 VA:00279D07 Base:2162688 Address: 0048AD07 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3100 BreakPoint at:0048AD07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4686 VA:00279D10 Base:2162688 Address: 0048AD10 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3102 BreakPoint at:0048AD10 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4687 VA:00279D15 Base:2162688 Address: 0048AD15 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3104 BreakPoint at:0048AD15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4688 VA:00279D34 Base:2162688 Address: 0048AD34 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3105 BreakPoint at:0048AD34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4689 VA:00279D5E Base:2162688 Address: 0048AD5E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3106 BreakPoint at:0048AD5E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4690 VA:00279D8E Base:2162688 Address: 0048AD8E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3107 BreakPoint at:0048AD8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4691 VA:00279D91 Base:2162688 Address: 0048AD91 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3102 BreakPoint at:0048AD91 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4692 VA:00279D9B Base:2162688 Address: 0048AD9B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3109 BreakPoint at:0048AD9B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4693 VA:00279DA0 Base:2162688 Address: 0048ADA0 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3111 BreakPoint at:0048ADA0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4694 VA:00279DD2 Base:2162688 Address: 0048ADD2 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3112 BreakPoint at:0048ADD2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4695 VA:00279E04 Base:2162688 Address: 0048AE04 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3113 BreakPoint at:0048AE04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4696 VA:00279E07 Base:2162688 Address: 0048AE07 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3114 BreakPoint at:0048AE07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4697 VA:00279E0B Base:2162688 Address: 0048AE0B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3115 BreakPoint at:0048AE0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4698 VA:00279E3B Base:2162688 Address: 0048AE3B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3116 BreakPoint at:0048AE3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4699 VA:00279E3E Base:2162688 Address: 0048AE3E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3109 BreakPoint at:0048AE3E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4700 VA:00279E48 Base:2162688 Address: 0048AE48 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3118 BreakPoint at:0048AE48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4701 VA:00279E4D Base:2162688 Address: 0048AE4D +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3120 BreakPoint at:0048AE4D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4702 VA:00279E72 Base:2162688 Address: 0048AE72 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3121 BreakPoint at:0048AE72 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4703 VA:00279EA4 Base:2162688 Address: 0048AEA4 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3122 BreakPoint at:0048AEA4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4704 VA:00279EA7 Base:2162688 Address: 0048AEA7 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3123 BreakPoint at:0048AEA7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4705 VA:00279EAB Base:2162688 Address: 0048AEAB +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3124 BreakPoint at:0048AEAB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4706 VA:00279EDB Base:2162688 Address: 0048AEDB +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3125 BreakPoint at:0048AEDB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4707 VA:00279EDE Base:2162688 Address: 0048AEDE +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3118 BreakPoint at:0048AEDE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4708 VA:00279EE8 Base:2162688 Address: 0048AEE8 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3127 BreakPoint at:0048AEE8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4709 VA:00279EF1 Base:2162688 Address: 0048AEF1 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3128 BreakPoint at:0048AEF1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4710 VA:00279EFA Base:2162688 Address: 0048AEFA +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3129 BreakPoint at:0048AEFA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4711 VA:00279F03 Base:2162688 Address: 0048AF03 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3130 BreakPoint at:0048AF03 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4712 VA:00279F0C Base:2162688 Address: 0048AF0C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3131 BreakPoint at:0048AF0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4713 VA:00279F15 Base:2162688 Address: 0048AF15 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3132 BreakPoint at:0048AF15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4714 VA:00279F1E Base:2162688 Address: 0048AF1E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3133 BreakPoint at:0048AF1E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4715 VA:00279F27 Base:2162688 Address: 0048AF27 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3134 BreakPoint at:0048AF27 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4716 VA:00279F30 Base:2162688 Address: 0048AF30 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform3 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3135 BreakPoint at:0048AF30 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4717 VA:00279F34 Base:2162688 Address: 0048AF34 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3142 BreakPoint at:0048AF34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4718 VA:00279F40 Base:2162688 Address: 0048AF40 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3143 BreakPoint at:0048AF40 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4719 VA:00279F48 Base:2162688 Address: 0048AF48 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3144 BreakPoint at:0048AF48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4720 VA:00279F50 Base:2162688 Address: 0048AF50 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3146 BreakPoint at:0048AF50 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4721 VA:00279F59 Base:2162688 Address: 0048AF59 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3147 BreakPoint at:0048AF59 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4722 VA:00279F62 Base:2162688 Address: 0048AF62 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3148 BreakPoint at:0048AF62 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4723 VA:00279F6B Base:2162688 Address: 0048AF6B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3149 BreakPoint at:0048AF6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4724 VA:00279F74 Base:2162688 Address: 0048AF74 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3150 BreakPoint at:0048AF74 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4725 VA:00279F7D Base:2162688 Address: 0048AF7D +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3151 BreakPoint at:0048AF7D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4726 VA:00279F86 Base:2162688 Address: 0048AF86 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3152 BreakPoint at:0048AF86 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4727 VA:00279F8F Base:2162688 Address: 0048AF8F +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3153 BreakPoint at:0048AF8F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4728 VA:00279F98 Base:2162688 Address: 0048AF98 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3155 BreakPoint at:0048AF98 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4729 VA:00279F9D Base:2162688 Address: 0048AF9D +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3157 BreakPoint at:0048AF9D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4730 VA:00279FBC Base:2162688 Address: 0048AFBC +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3158 BreakPoint at:0048AFBC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4731 VA:00279FE6 Base:2162688 Address: 0048AFE6 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3159 BreakPoint at:0048AFE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4732 VA:0027A016 Base:2162688 Address: 0048B016 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3160 BreakPoint at:0048B016 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4733 VA:0027A019 Base:2162688 Address: 0048B019 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3155 BreakPoint at:0048B019 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4734 VA:0027A023 Base:2162688 Address: 0048B023 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3162 BreakPoint at:0048B023 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4735 VA:0027A028 Base:2162688 Address: 0048B028 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3164 BreakPoint at:0048B028 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4736 VA:0027A05A Base:2162688 Address: 0048B05A +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3165 BreakPoint at:0048B05A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4737 VA:0027A08C Base:2162688 Address: 0048B08C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3166 BreakPoint at:0048B08C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4738 VA:0027A08F Base:2162688 Address: 0048B08F +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3167 BreakPoint at:0048B08F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4739 VA:0027A093 Base:2162688 Address: 0048B093 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3168 BreakPoint at:0048B093 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4740 VA:0027A0C3 Base:2162688 Address: 0048B0C3 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3169 BreakPoint at:0048B0C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4741 VA:0027A0C6 Base:2162688 Address: 0048B0C6 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3162 BreakPoint at:0048B0C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4742 VA:0027A0D0 Base:2162688 Address: 0048B0D0 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3171 BreakPoint at:0048B0D0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4743 VA:0027A0D5 Base:2162688 Address: 0048B0D5 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3173 BreakPoint at:0048B0D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4744 VA:0027A0FA Base:2162688 Address: 0048B0FA +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3174 BreakPoint at:0048B0FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4745 VA:0027A12C Base:2162688 Address: 0048B12C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3175 BreakPoint at:0048B12C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4746 VA:0027A12F Base:2162688 Address: 0048B12F +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3176 BreakPoint at:0048B12F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4747 VA:0027A133 Base:2162688 Address: 0048B133 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3177 BreakPoint at:0048B133 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4748 VA:0027A163 Base:2162688 Address: 0048B163 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3178 BreakPoint at:0048B163 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4749 VA:0027A166 Base:2162688 Address: 0048B166 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3171 BreakPoint at:0048B166 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4750 VA:0027A170 Base:2162688 Address: 0048B170 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3180 BreakPoint at:0048B170 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4751 VA:0027A175 Base:2162688 Address: 0048B175 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3182 BreakPoint at:0048B175 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4752 VA:0027A1B2 Base:2162688 Address: 0048B1B2 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3184 BreakPoint at:0048B1B2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4753 VA:0027A1E4 Base:2162688 Address: 0048B1E4 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3185 BreakPoint at:0048B1E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4754 VA:0027A1E7 Base:2162688 Address: 0048B1E7 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3186 BreakPoint at:0048B1E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4755 VA:0027A1EB Base:2162688 Address: 0048B1EB +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3187 BreakPoint at:0048B1EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4756 VA:0027A21B Base:2162688 Address: 0048B21B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3188 BreakPoint at:0048B21B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4757 VA:0027A21E Base:2162688 Address: 0048B21E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3180 BreakPoint at:0048B21E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4758 VA:0027A228 Base:2162688 Address: 0048B228 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3190 BreakPoint at:0048B228 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4759 VA:0027A231 Base:2162688 Address: 0048B231 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3191 BreakPoint at:0048B231 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4760 VA:0027A23A Base:2162688 Address: 0048B23A +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3192 BreakPoint at:0048B23A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4761 VA:0027A243 Base:2162688 Address: 0048B243 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3193 BreakPoint at:0048B243 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4762 VA:0027A24C Base:2162688 Address: 0048B24C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3194 BreakPoint at:0048B24C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4763 VA:0027A255 Base:2162688 Address: 0048B255 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3195 BreakPoint at:0048B255 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4764 VA:0027A25E Base:2162688 Address: 0048B25E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3196 BreakPoint at:0048B25E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4765 VA:0027A267 Base:2162688 Address: 0048B267 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3197 BreakPoint at:0048B267 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4766 VA:0027A270 Base:2162688 Address: 0048B270 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform4 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3198 BreakPoint at:0048B270 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4767 VA:0027A274 Base:2162688 Address: 0048B274 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3205 BreakPoint at:0048B274 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4768 VA:0027A280 Base:2162688 Address: 0048B280 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3206 BreakPoint at:0048B280 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4769 VA:0027A288 Base:2162688 Address: 0048B288 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3207 BreakPoint at:0048B288 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4770 VA:0027A290 Base:2162688 Address: 0048B290 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3209 BreakPoint at:0048B290 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4771 VA:0027A299 Base:2162688 Address: 0048B299 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3210 BreakPoint at:0048B299 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4772 VA:0027A2A2 Base:2162688 Address: 0048B2A2 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3211 BreakPoint at:0048B2A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4773 VA:0027A2AB Base:2162688 Address: 0048B2AB +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3212 BreakPoint at:0048B2AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4774 VA:0027A2B4 Base:2162688 Address: 0048B2B4 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3213 BreakPoint at:0048B2B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4775 VA:0027A2BD Base:2162688 Address: 0048B2BD +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3214 BreakPoint at:0048B2BD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4776 VA:0027A2C6 Base:2162688 Address: 0048B2C6 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3215 BreakPoint at:0048B2C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4777 VA:0027A2CF Base:2162688 Address: 0048B2CF +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3216 BreakPoint at:0048B2CF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4778 VA:0027A2D8 Base:2162688 Address: 0048B2D8 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3218 BreakPoint at:0048B2D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4779 VA:0027A2DD Base:2162688 Address: 0048B2DD +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3220 BreakPoint at:0048B2DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4780 VA:0027A2FC Base:2162688 Address: 0048B2FC +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3221 BreakPoint at:0048B2FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4781 VA:0027A326 Base:2162688 Address: 0048B326 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3222 BreakPoint at:0048B326 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4782 VA:0027A356 Base:2162688 Address: 0048B356 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3223 BreakPoint at:0048B356 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4783 VA:0027A359 Base:2162688 Address: 0048B359 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3218 BreakPoint at:0048B359 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4784 VA:0027A363 Base:2162688 Address: 0048B363 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3225 BreakPoint at:0048B363 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4785 VA:0027A368 Base:2162688 Address: 0048B368 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3227 BreakPoint at:0048B368 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4786 VA:0027A39A Base:2162688 Address: 0048B39A +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3228 BreakPoint at:0048B39A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4787 VA:0027A3CC Base:2162688 Address: 0048B3CC +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3229 BreakPoint at:0048B3CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4788 VA:0027A3CF Base:2162688 Address: 0048B3CF +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3230 BreakPoint at:0048B3CF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4789 VA:0027A3D3 Base:2162688 Address: 0048B3D3 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3231 BreakPoint at:0048B3D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4790 VA:0027A403 Base:2162688 Address: 0048B403 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3232 BreakPoint at:0048B403 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4791 VA:0027A406 Base:2162688 Address: 0048B406 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3225 BreakPoint at:0048B406 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4792 VA:0027A410 Base:2162688 Address: 0048B410 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3234 BreakPoint at:0048B410 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4793 VA:0027A415 Base:2162688 Address: 0048B415 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3236 BreakPoint at:0048B415 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4794 VA:0027A43A Base:2162688 Address: 0048B43A +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3237 BreakPoint at:0048B43A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4795 VA:0027A46C Base:2162688 Address: 0048B46C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3238 BreakPoint at:0048B46C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4796 VA:0027A46F Base:2162688 Address: 0048B46F +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3239 BreakPoint at:0048B46F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4797 VA:0027A473 Base:2162688 Address: 0048B473 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3240 BreakPoint at:0048B473 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4798 VA:0027A4A3 Base:2162688 Address: 0048B4A3 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3241 BreakPoint at:0048B4A3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4799 VA:0027A4A6 Base:2162688 Address: 0048B4A6 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3234 BreakPoint at:0048B4A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4800 VA:0027A4B0 Base:2162688 Address: 0048B4B0 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3243 BreakPoint at:0048B4B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4801 VA:0027A4B5 Base:2162688 Address: 0048B4B5 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3245 BreakPoint at:0048B4B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4802 VA:0027A4F2 Base:2162688 Address: 0048B4F2 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3247 BreakPoint at:0048B4F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4803 VA:0027A524 Base:2162688 Address: 0048B524 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3248 BreakPoint at:0048B524 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4804 VA:0027A527 Base:2162688 Address: 0048B527 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3249 BreakPoint at:0048B527 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4805 VA:0027A52B Base:2162688 Address: 0048B52B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3250 BreakPoint at:0048B52B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4806 VA:0027A55B Base:2162688 Address: 0048B55B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3251 BreakPoint at:0048B55B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4807 VA:0027A55E Base:2162688 Address: 0048B55E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3243 BreakPoint at:0048B55E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4808 VA:0027A568 Base:2162688 Address: 0048B568 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3253 BreakPoint at:0048B568 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4809 VA:0027A56D Base:2162688 Address: 0048B56D +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3255 BreakPoint at:0048B56D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4810 VA:0027A59B Base:2162688 Address: 0048B59B +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3256 BreakPoint at:0048B59B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4811 VA:0027A5CD Base:2162688 Address: 0048B5CD +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3257 BreakPoint at:0048B5CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4812 VA:0027A5D4 Base:2162688 Address: 0048B5D4 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3258 BreakPoint at:0048B5D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4813 VA:0027A604 Base:2162688 Address: 0048B604 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3259 BreakPoint at:0048B604 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4814 VA:0027A607 Base:2162688 Address: 0048B607 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3253 BreakPoint at:0048B607 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4815 VA:0027A611 Base:2162688 Address: 0048B611 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3261 BreakPoint at:0048B611 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4816 VA:0027A61A Base:2162688 Address: 0048B61A +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3262 BreakPoint at:0048B61A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4817 VA:0027A623 Base:2162688 Address: 0048B623 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3263 BreakPoint at:0048B623 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4818 VA:0027A62C Base:2162688 Address: 0048B62C +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3264 BreakPoint at:0048B62C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4819 VA:0027A635 Base:2162688 Address: 0048B635 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3265 BreakPoint at:0048B635 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4820 VA:0027A63E Base:2162688 Address: 0048B63E +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3266 BreakPoint at:0048B63E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4821 VA:0027A647 Base:2162688 Address: 0048B647 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3267 BreakPoint at:0048B647 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4822 VA:0027A650 Base:2162688 Address: 0048B650 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3268 BreakPoint at:0048B650 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4823 VA:0027A659 Base:2162688 Address: 0048B659 +Adding breakpoint for DECHash.THashBaseHaval.DoTransform5 in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3269 BreakPoint at:0048B659 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4824 VA:0027A660 Base:2162688 Address: 0048B660 +Adding breakpoint for DECHash.ROR in DECHash.pas +Creating class info for DECHash class ROR +TBreakPoint.Activate: +Activate DECHash.pas line 3282 BreakPoint at:0048B660 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4825 VA:0027A66C Base:2162688 Address: 0048B66C +Adding breakpoint for DECHash.ROR in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3283 BreakPoint at:0048B66C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4826 VA:0027A686 Base:2162688 Address: 0048B686 +Adding breakpoint for DECHash.ROR in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3284 BreakPoint at:0048B686 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4827 VA:0027A690 Base:2162688 Address: 0048B690 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3289 BreakPoint at:0048B690 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4828 VA:0027A699 Base:2162688 Address: 0048B699 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3290 BreakPoint at:0048B699 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4829 VA:0027A6A7 Base:2162688 Address: 0048B6A7 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3291 BreakPoint at:0048B6A7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4830 VA:0027A6AF Base:2162688 Address: 0048B6AF +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3292 BreakPoint at:0048B6AF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4831 VA:0027A6B8 Base:2162688 Address: 0048B6B8 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3293 BreakPoint at:0048B6B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4832 VA:0027A6BF Base:2162688 Address: 0048B6BF +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3294 BreakPoint at:0048B6BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4833 VA:0027A6D4 Base:2162688 Address: 0048B6D4 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3295 BreakPoint at:0048B6D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4834 VA:0027A6DA Base:2162688 Address: 0048B6DA +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3296 BreakPoint at:0048B6DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4835 VA:0027A6ED Base:2162688 Address: 0048B6ED +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3298 BreakPoint at:0048B6ED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4836 VA:0027A712 Base:2162688 Address: 0048B712 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3299 BreakPoint at:0048B712 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4837 VA:0027A720 Base:2162688 Address: 0048B720 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3300 BreakPoint at:0048B720 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4838 VA:0027A728 Base:2162688 Address: 0048B728 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3302 BreakPoint at:0048B728 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4839 VA:0027A74D Base:2162688 Address: 0048B74D +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3303 BreakPoint at:0048B74D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4840 VA:0027A76D Base:2162688 Address: 0048B76D +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3304 BreakPoint at:0048B76D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4841 VA:0027A78A Base:2162688 Address: 0048B78A +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3305 BreakPoint at:0048B78A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4842 VA:0027A7AA Base:2162688 Address: 0048B7AA +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3306 BreakPoint at:0048B7AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4843 VA:0027A7B8 Base:2162688 Address: 0048B7B8 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3308 BreakPoint at:0048B7B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4844 VA:0027A7E5 Base:2162688 Address: 0048B7E5 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3313 BreakPoint at:0048B7E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4845 VA:0027A82C Base:2162688 Address: 0048B82C +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3314 BreakPoint at:0048B82C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4846 VA:0027A873 Base:2162688 Address: 0048B873 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3318 BreakPoint at:0048B873 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4847 VA:0027A8BA Base:2162688 Address: 0048B8BA +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3322 BreakPoint at:0048B8BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4848 VA:0027A8FA Base:2162688 Address: 0048B8FA +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3330 BreakPoint at:0048B8FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4849 VA:0027A931 Base:2162688 Address: 0048B931 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3331 BreakPoint at:0048B931 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4850 VA:0027A967 Base:2162688 Address: 0048B967 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3334 BreakPoint at:0048B967 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4851 VA:0027A991 Base:2162688 Address: 0048B991 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3337 BreakPoint at:0048B991 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4852 VA:0027A9C1 Base:2162688 Address: 0048B9C1 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3340 BreakPoint at:0048B9C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4853 VA:0027A9F6 Base:2162688 Address: 0048B9F6 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3346 BreakPoint at:0048B9F6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4854 VA:0027AA1F Base:2162688 Address: 0048BA1F +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3347 BreakPoint at:0048BA1F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4855 VA:0027AA3B Base:2162688 Address: 0048BA3B +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3349 BreakPoint at:0048BA3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4856 VA:0027AA5D Base:2162688 Address: 0048BA5D +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3351 BreakPoint at:0048BA5D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4857 VA:0027AA7F Base:2162688 Address: 0048BA7F +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3353 BreakPoint at:0048BA7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4858 VA:0027AAA1 Base:2162688 Address: 0048BAA1 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3355 BreakPoint at:0048BAA1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4859 VA:0027AAC5 Base:2162688 Address: 0048BAC5 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3359 BreakPoint at:0048BAC5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4860 VA:0027AAD7 Base:2162688 Address: 0048BAD7 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3360 BreakPoint at:0048BAD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4861 VA:0027AAE9 Base:2162688 Address: 0048BAE9 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3361 BreakPoint at:0048BAE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4862 VA:0027AAFB Base:2162688 Address: 0048BAFB +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3362 BreakPoint at:0048BAFB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4863 VA:0027AB0D Base:2162688 Address: 0048BB0D +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3363 BreakPoint at:0048BB0D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4864 VA:0027AB1F Base:2162688 Address: 0048BB1F +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3364 BreakPoint at:0048BB1F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4865 VA:0027AB31 Base:2162688 Address: 0048BB31 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3365 BreakPoint at:0048BB31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4866 VA:0027AB40 Base:2162688 Address: 0048BB40 +Adding breakpoint for DECHash.THashBaseHaval.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3368 BreakPoint at:0048BB40 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4867 VA:0027AB44 Base:2162688 Address: 0048BB44 +Adding breakpoint for DECHash.THashBaseHaval.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3371 BreakPoint at:0048BB44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4868 VA:0027AB4D Base:2162688 Address: 0048BB4D +Adding breakpoint for DECHash.THashBaseHaval.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3372 BreakPoint at:0048BB4D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4869 VA:0027AB56 Base:2162688 Address: 0048BB56 +Adding breakpoint for DECHash.THashBaseHaval.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3373 BreakPoint at:0048BB56 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4870 VA:0027AB60 Base:2162688 Address: 0048BB60 +Adding breakpoint for DECHash.THashBaseHaval.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3376 BreakPoint at:0048BB60 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4871 VA:0027AB69 Base:2162688 Address: 0048BB69 +Adding breakpoint for DECHash.THashBaseHaval.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3377 BreakPoint at:0048BB69 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4872 VA:0027AB70 Base:2162688 Address: 0048BB70 +Adding breakpoint for DECHash.THashBaseHaval.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3378 BreakPoint at:0048BB70 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4873 VA:0027AB78 Base:2162688 Address: 0048BB78 +Adding breakpoint for DECHash.THash_Haval128.DigestSize in DECHash.pas +Creating class info for DECHash class THash_Haval128 +TBreakPoint.Activate: +Activate DECHash.pas line 3383 BreakPoint at:0048BB78 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4874 VA:0027AB81 Base:2162688 Address: 0048BB81 +Adding breakpoint for DECHash.THash_Haval128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3384 BreakPoint at:0048BB81 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4875 VA:0027AB88 Base:2162688 Address: 0048BB88 +Adding breakpoint for DECHash.THash_Haval128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3385 BreakPoint at:0048BB88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4876 VA:0027AB90 Base:2162688 Address: 0048BB90 +Adding breakpoint for DECHash.THash_Haval160.DigestSize in DECHash.pas +Creating class info for DECHash class THash_Haval160 +TBreakPoint.Activate: +Activate DECHash.pas line 3390 BreakPoint at:0048BB90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4877 VA:0027AB99 Base:2162688 Address: 0048BB99 +Adding breakpoint for DECHash.THash_Haval160.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3391 BreakPoint at:0048BB99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4878 VA:0027ABA0 Base:2162688 Address: 0048BBA0 +Adding breakpoint for DECHash.THash_Haval160.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3392 BreakPoint at:0048BBA0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4879 VA:0027ABA8 Base:2162688 Address: 0048BBA8 +Adding breakpoint for DECHash.THash_Haval192.DigestSize in DECHash.pas +Creating class info for DECHash class THash_Haval192 +TBreakPoint.Activate: +Activate DECHash.pas line 3397 BreakPoint at:0048BBA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4880 VA:0027ABB1 Base:2162688 Address: 0048BBB1 +Adding breakpoint for DECHash.THash_Haval192.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3398 BreakPoint at:0048BBB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4881 VA:0027ABB8 Base:2162688 Address: 0048BBB8 +Adding breakpoint for DECHash.THash_Haval192.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3399 BreakPoint at:0048BBB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4882 VA:0027ABC0 Base:2162688 Address: 0048BBC0 +Adding breakpoint for DECHash.THash_Haval224.DigestSize in DECHash.pas +Creating class info for DECHash class THash_Haval224 +TBreakPoint.Activate: +Activate DECHash.pas line 3404 BreakPoint at:0048BBC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4883 VA:0027ABC9 Base:2162688 Address: 0048BBC9 +Adding breakpoint for DECHash.THash_Haval224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3405 BreakPoint at:0048BBC9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4884 VA:0027ABD0 Base:2162688 Address: 0048BBD0 +Adding breakpoint for DECHash.THash_Haval224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3406 BreakPoint at:0048BBD0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4885 VA:0027ABD8 Base:2162688 Address: 0048BBD8 +Adding breakpoint for DECHash.THash_Haval256.DigestSize in DECHash.pas +Creating class info for DECHash class THash_Haval256 +TBreakPoint.Activate: +Activate DECHash.pas line 3411 BreakPoint at:0048BBD8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4886 VA:0027ABE1 Base:2162688 Address: 0048BBE1 +Adding breakpoint for DECHash.THash_Haval256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3412 BreakPoint at:0048BBE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4887 VA:0027ABE8 Base:2162688 Address: 0048BBE8 +Adding breakpoint for DECHash.THash_Haval256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3413 BreakPoint at:0048BBE8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4888 VA:0027ABF0 Base:2162688 Address: 0048BBF0 +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +Creating class info for DECHash class THash_Tiger +TBreakPoint.Activate: +Activate DECHash.pas line 3418 BreakPoint at:0048BBF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4889 VA:0027ABFC Base:2162688 Address: 0048BBFC +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3419 BreakPoint at:0048BBFC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4890 VA:0027AC02 Base:2162688 Address: 0048BC02 +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3420 BreakPoint at:0048BC02 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4891 VA:0027AC09 Base:2162688 Address: 0048BC09 +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3422 BreakPoint at:0048BC09 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4892 VA:0027AC0F Base:2162688 Address: 0048BC0F +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3423 BreakPoint at:0048BC0F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4893 VA:0027AC16 Base:2162688 Address: 0048BC16 +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3425 BreakPoint at:0048BC16 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4894 VA:0027AC1F Base:2162688 Address: 0048BC1F +Adding breakpoint for DECHash.THash_Tiger.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3426 BreakPoint at:0048BC1F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4895 VA:0027AC24 Base:2162688 Address: 0048BC24 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3429 BreakPoint at:0048BC24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4896 VA:0027AC2B Base:2162688 Address: 0048BC2B +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3430 BreakPoint at:0048BC2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4897 VA:0027AC39 Base:2162688 Address: 0048BC39 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3431 BreakPoint at:0048BC39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4898 VA:0027AC42 Base:2162688 Address: 0048BC42 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3432 BreakPoint at:0048BC42 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4899 VA:0027AC49 Base:2162688 Address: 0048BC49 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3433 BreakPoint at:0048BC49 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4900 VA:0027AC53 Base:2162688 Address: 0048BC53 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3434 BreakPoint at:0048BC53 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4901 VA:0027AC5D Base:2162688 Address: 0048BC5D +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3435 BreakPoint at:0048BC5D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4902 VA:0027AC67 Base:2162688 Address: 0048BC67 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3436 BreakPoint at:0048BC67 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4903 VA:0027AC71 Base:2162688 Address: 0048BC71 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3437 BreakPoint at:0048BC71 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4904 VA:0027AC7B Base:2162688 Address: 0048BC7B +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3438 BreakPoint at:0048BC7B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4905 VA:0027AC85 Base:2162688 Address: 0048BC85 +Adding breakpoint for DECHash.THash_Tiger.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3439 BreakPoint at:0048BC85 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4906 VA:0027AC88 Base:2162688 Address: 0048BC88 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3454 BreakPoint at:0048BC88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4907 VA:0027AC94 Base:2162688 Address: 0048BC94 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3455 BreakPoint at:0048BC94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4908 VA:0027ACA5 Base:2162688 Address: 0048BCA5 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3456 BreakPoint at:0048BCA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4909 VA:0027ACB7 Base:2162688 Address: 0048BCB7 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3457 BreakPoint at:0048BCB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4910 VA:0027ACC9 Base:2162688 Address: 0048BCC9 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3458 BreakPoint at:0048BCC9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4911 VA:0027ACD7 Base:2162688 Address: 0048BCD7 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3459 BreakPoint at:0048BCD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4912 VA:0027ACE6 Base:2162688 Address: 0048BCE6 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3460 BreakPoint at:0048BCE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4913 VA:0027ACF5 Base:2162688 Address: 0048BCF5 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3461 BreakPoint at:0048BCF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4914 VA:0027AD04 Base:2162688 Address: 0048BD04 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3462 BreakPoint at:0048BD04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4915 VA:0027AD13 Base:2162688 Address: 0048BD13 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3463 BreakPoint at:0048BD13 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4916 VA:0027AD22 Base:2162688 Address: 0048BD22 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3464 BreakPoint at:0048BD22 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4917 VA:0027AD31 Base:2162688 Address: 0048BD31 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3465 BreakPoint at:0048BD31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4918 VA:0027AD40 Base:2162688 Address: 0048BD40 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3467 BreakPoint at:0048BD40 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4919 VA:0027AD58 Base:2162688 Address: 0048BD58 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3469 BreakPoint at:0048BD58 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4920 VA:0027AD62 Base:2162688 Address: 0048BD62 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3471 BreakPoint at:0048BD62 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4921 VA:0027AD7A Base:2162688 Address: 0048BD7A +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3472 BreakPoint at:0048BD7A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4922 VA:0027AD8C Base:2162688 Address: 0048BD8C +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3473 BreakPoint at:0048BD8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4923 VA:0027AD98 Base:2162688 Address: 0048BD98 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3474 BreakPoint at:0048BD98 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4924 VA:0027ADB5 Base:2162688 Address: 0048BDB5 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3475 BreakPoint at:0048BDB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4925 VA:0027ADC7 Base:2162688 Address: 0048BDC7 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3476 BreakPoint at:0048BDC7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4926 VA:0027ADD3 Base:2162688 Address: 0048BDD3 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3477 BreakPoint at:0048BDD3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4927 VA:0027ADF0 Base:2162688 Address: 0048BDF0 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3478 BreakPoint at:0048BDF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4928 VA:0027AE02 Base:2162688 Address: 0048BE02 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3479 BreakPoint at:0048BE02 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4929 VA:0027AE0E Base:2162688 Address: 0048BE0E +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3480 BreakPoint at:0048BE0E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4930 VA:0027AE2B Base:2162688 Address: 0048BE2B +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3481 BreakPoint at:0048BE2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4931 VA:0027AE3D Base:2162688 Address: 0048BE3D +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3482 BreakPoint at:0048BE3D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4932 VA:0027AE49 Base:2162688 Address: 0048BE49 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3483 BreakPoint at:0048BE49 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4933 VA:0027AE66 Base:2162688 Address: 0048BE66 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3484 BreakPoint at:0048BE66 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4934 VA:0027AE78 Base:2162688 Address: 0048BE78 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3485 BreakPoint at:0048BE78 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4935 VA:0027AE84 Base:2162688 Address: 0048BE84 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3486 BreakPoint at:0048BE84 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4936 VA:0027AE9C Base:2162688 Address: 0048BE9C +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3489 BreakPoint at:0048BE9C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4937 VA:0027AEAE Base:2162688 Address: 0048BEAE +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3490 BreakPoint at:0048BEAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4938 VA:0027AF49 Base:2162688 Address: 0048BF49 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3494 BreakPoint at:0048BF49 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4939 VA:0027AFDD Base:2162688 Address: 0048BFDD +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3499 BreakPoint at:0048BFDD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4940 VA:0027AFE3 Base:2162688 Address: 0048BFE3 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3500 BreakPoint at:0048BFE3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4941 VA:0027AFFE Base:2162688 Address: 0048BFFE +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3503 BreakPoint at:0048BFFE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4942 VA:0027B004 Base:2162688 Address: 0048C004 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3504 BreakPoint at:0048C004 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4943 VA:0027B01F Base:2162688 Address: 0048C01F +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3506 BreakPoint at:0048C01F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4944 VA:0027B038 Base:2162688 Address: 0048C038 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3509 BreakPoint at:0048C038 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4945 VA:0027B04A Base:2162688 Address: 0048C04A +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3510 BreakPoint at:0048C04A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4946 VA:0027B0E5 Base:2162688 Address: 0048C0E5 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3514 BreakPoint at:0048C0E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4947 VA:0027B179 Base:2162688 Address: 0048C179 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3519 BreakPoint at:0048C179 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4948 VA:0027B17F Base:2162688 Address: 0048C17F +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3520 BreakPoint at:0048C17F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4949 VA:0027B19A Base:2162688 Address: 0048C19A +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3523 BreakPoint at:0048C19A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4950 VA:0027B1A0 Base:2162688 Address: 0048C1A0 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3524 BreakPoint at:0048C1A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4951 VA:0027B1BB Base:2162688 Address: 0048C1BB +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3526 BreakPoint at:0048C1BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4952 VA:0027B1D4 Base:2162688 Address: 0048C1D4 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3529 BreakPoint at:0048C1D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4953 VA:0027B1E6 Base:2162688 Address: 0048C1E6 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3530 BreakPoint at:0048C1E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4954 VA:0027B281 Base:2162688 Address: 0048C281 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3534 BreakPoint at:0048C281 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4955 VA:0027B315 Base:2162688 Address: 0048C315 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3539 BreakPoint at:0048C315 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4956 VA:0027B31B Base:2162688 Address: 0048C31B +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3540 BreakPoint at:0048C31B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4957 VA:0027B336 Base:2162688 Address: 0048C336 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3543 BreakPoint at:0048C336 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4958 VA:0027B33C Base:2162688 Address: 0048C33C +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3544 BreakPoint at:0048C33C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4959 VA:0027B357 Base:2162688 Address: 0048C357 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3546 BreakPoint at:0048C357 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4960 VA:0027B370 Base:2162688 Address: 0048C370 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3549 BreakPoint at:0048C370 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4961 VA:0027B382 Base:2162688 Address: 0048C382 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3550 BreakPoint at:0048C382 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4962 VA:0027B41D Base:2162688 Address: 0048C41D +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3554 BreakPoint at:0048C41D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4963 VA:0027B4B1 Base:2162688 Address: 0048C4B1 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3559 BreakPoint at:0048C4B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4964 VA:0027B4B7 Base:2162688 Address: 0048C4B7 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3560 BreakPoint at:0048C4B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4965 VA:0027B4D2 Base:2162688 Address: 0048C4D2 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3563 BreakPoint at:0048C4D2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4966 VA:0027B4D8 Base:2162688 Address: 0048C4D8 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3564 BreakPoint at:0048C4D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4967 VA:0027B4F3 Base:2162688 Address: 0048C4F3 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3566 BreakPoint at:0048C4F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4968 VA:0027B50C Base:2162688 Address: 0048C50C +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3569 BreakPoint at:0048C50C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4969 VA:0027B51E Base:2162688 Address: 0048C51E +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3570 BreakPoint at:0048C51E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4970 VA:0027B5B9 Base:2162688 Address: 0048C5B9 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3574 BreakPoint at:0048C5B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4971 VA:0027B64D Base:2162688 Address: 0048C64D +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3579 BreakPoint at:0048C64D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4972 VA:0027B653 Base:2162688 Address: 0048C653 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3580 BreakPoint at:0048C653 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4973 VA:0027B66E Base:2162688 Address: 0048C66E +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3583 BreakPoint at:0048C66E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4974 VA:0027B674 Base:2162688 Address: 0048C674 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3584 BreakPoint at:0048C674 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4975 VA:0027B68F Base:2162688 Address: 0048C68F +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3586 BreakPoint at:0048C68F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4976 VA:0027B6A8 Base:2162688 Address: 0048C6A8 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3589 BreakPoint at:0048C6A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4977 VA:0027B6BA Base:2162688 Address: 0048C6BA +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3590 BreakPoint at:0048C6BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4978 VA:0027B755 Base:2162688 Address: 0048C755 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3594 BreakPoint at:0048C755 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4979 VA:0027B7E9 Base:2162688 Address: 0048C7E9 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3599 BreakPoint at:0048C7E9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4980 VA:0027B7EF Base:2162688 Address: 0048C7EF +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3600 BreakPoint at:0048C7EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4981 VA:0027B80A Base:2162688 Address: 0048C80A +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3603 BreakPoint at:0048C80A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4982 VA:0027B810 Base:2162688 Address: 0048C810 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3604 BreakPoint at:0048C810 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4983 VA:0027B82B Base:2162688 Address: 0048C82B +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3606 BreakPoint at:0048C82B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4984 VA:0027B844 Base:2162688 Address: 0048C844 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3609 BreakPoint at:0048C844 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4985 VA:0027B856 Base:2162688 Address: 0048C856 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3610 BreakPoint at:0048C856 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4986 VA:0027B8F1 Base:2162688 Address: 0048C8F1 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3614 BreakPoint at:0048C8F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4987 VA:0027B985 Base:2162688 Address: 0048C985 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3619 BreakPoint at:0048C985 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4988 VA:0027B98B Base:2162688 Address: 0048C98B +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3620 BreakPoint at:0048C98B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4989 VA:0027B9A6 Base:2162688 Address: 0048C9A6 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3623 BreakPoint at:0048C9A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4990 VA:0027B9AC Base:2162688 Address: 0048C9AC +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3624 BreakPoint at:0048C9AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4991 VA:0027B9C7 Base:2162688 Address: 0048C9C7 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3626 BreakPoint at:0048C9C7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4992 VA:0027B9E0 Base:2162688 Address: 0048C9E0 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3629 BreakPoint at:0048C9E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4993 VA:0027B9F2 Base:2162688 Address: 0048C9F2 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3630 BreakPoint at:0048C9F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4994 VA:0027BA8D Base:2162688 Address: 0048CA8D +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3634 BreakPoint at:0048CA8D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4995 VA:0027BB21 Base:2162688 Address: 0048CB21 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3639 BreakPoint at:0048CB21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4996 VA:0027BB27 Base:2162688 Address: 0048CB27 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3640 BreakPoint at:0048CB27 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4997 VA:0027BB42 Base:2162688 Address: 0048CB42 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3643 BreakPoint at:0048CB42 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4998 VA:0027BB48 Base:2162688 Address: 0048CB48 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3644 BreakPoint at:0048CB48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:4999 VA:0027BB63 Base:2162688 Address: 0048CB63 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3646 BreakPoint at:0048CB63 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5000 VA:0027BB7C Base:2162688 Address: 0048CB7C +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3649 BreakPoint at:0048CB7C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5001 VA:0027BBAC Base:2162688 Address: 0048CBAC +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3650 BreakPoint at:0048CBAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5002 VA:0027BBAF Base:2162688 Address: 0048CBAF +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3467 BreakPoint at:0048CBAF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5003 VA:0027BBB8 Base:2162688 Address: 0048CBB8 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3652 BreakPoint at:0048CBB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5004 VA:0027BBD4 Base:2162688 Address: 0048CBD4 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3653 BreakPoint at:0048CBD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5005 VA:0027BBF2 Base:2162688 Address: 0048CBF2 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3654 BreakPoint at:0048CBF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5006 VA:0027BC10 Base:2162688 Address: 0048CC10 +Adding breakpoint for DECHash.THash_Tiger.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3655 BreakPoint at:0048CC10 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5007 VA:0027BC14 Base:2162688 Address: 0048CC14 +Adding breakpoint for DECHash.THash_Tiger.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3659 BreakPoint at:0048CC14 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5008 VA:0027BC1D Base:2162688 Address: 0048CC1D +Adding breakpoint for DECHash.THash_Tiger.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3660 BreakPoint at:0048CC1D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5009 VA:0027BC24 Base:2162688 Address: 0048CC24 +Adding breakpoint for DECHash.THash_Tiger.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3661 BreakPoint at:0048CC24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5010 VA:0027BC2C Base:2162688 Address: 0048CC2C +Adding breakpoint for DECHash.THash_Tiger.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3664 BreakPoint at:0048CC2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5011 VA:0027BC35 Base:2162688 Address: 0048CC35 +Adding breakpoint for DECHash.THash_Tiger.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3665 BreakPoint at:0048CC35 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5012 VA:0027BC3C Base:2162688 Address: 0048CC3C +Adding breakpoint for DECHash.THash_Tiger.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3666 BreakPoint at:0048CC3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5013 VA:0027BC44 Base:2162688 Address: 0048CC44 +Adding breakpoint for DECHash.THash_Tiger.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3669 BreakPoint at:0048CC44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5014 VA:0027BC4D Base:2162688 Address: 0048CC4D +Adding breakpoint for DECHash.THash_Tiger.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3670 BreakPoint at:0048CC4D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5015 VA:0027BC56 Base:2162688 Address: 0048CC56 +Adding breakpoint for DECHash.THash_Tiger.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3671 BreakPoint at:0048CC56 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5016 VA:0027BC60 Base:2162688 Address: 0048CC60 +Adding breakpoint for DECHash.THash_Tiger.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3674 BreakPoint at:0048CC60 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5017 VA:0027BC69 Base:2162688 Address: 0048CC69 +Adding breakpoint for DECHash.THash_Tiger.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3675 BreakPoint at:0048CC69 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5018 VA:0027BC70 Base:2162688 Address: 0048CC70 +Adding breakpoint for DECHash.THash_Tiger.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3676 BreakPoint at:0048CC70 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5019 VA:0027BC78 Base:2162688 Address: 0048CC78 +Adding breakpoint for DECHash.THash_Panama.DoInit in DECHash.pas +Creating class info for DECHash class THash_Panama +TBreakPoint.Activate: +Activate DECHash.pas line 3681 BreakPoint at:0048CC78 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5020 VA:0027BC7F Base:2162688 Address: 0048CC7F +Adding breakpoint for DECHash.THash_Panama.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3682 BreakPoint at:0048CC7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5021 VA:0027BC91 Base:2162688 Address: 0048CC91 +Adding breakpoint for DECHash.THash_Panama.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3683 BreakPoint at:0048CC91 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5022 VA:0027BCA5 Base:2162688 Address: 0048CCA5 +Adding breakpoint for DECHash.THash_Panama.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3684 BreakPoint at:0048CCA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5023 VA:0027BCB0 Base:2162688 Address: 0048CCB0 +Adding breakpoint for DECHash.THash_Panama.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3685 BreakPoint at:0048CCB0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5024 VA:0027BCB4 Base:2162688 Address: 0048CCB4 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3692 BreakPoint at:0048CCB4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5025 VA:0027BCC0 Base:2162688 Address: 0048CCC0 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3694 BreakPoint at:0048CCC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5026 VA:0027BCCC Base:2162688 Address: 0048CCCC +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3695 BreakPoint at:0048CCCC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5027 VA:0027BCD8 Base:2162688 Address: 0048CCD8 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3696 BreakPoint at:0048CCD8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5028 VA:0027BCF7 Base:2162688 Address: 0048CCF7 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3697 BreakPoint at:0048CCF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5029 VA:0027BD16 Base:2162688 Address: 0048CD16 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3698 BreakPoint at:0048CD16 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5030 VA:0027BD35 Base:2162688 Address: 0048CD35 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3699 BreakPoint at:0048CD35 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5031 VA:0027BD54 Base:2162688 Address: 0048CD54 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3700 BreakPoint at:0048CD54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5032 VA:0027BD73 Base:2162688 Address: 0048CD73 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3701 BreakPoint at:0048CD73 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5033 VA:0027BD92 Base:2162688 Address: 0048CD92 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3702 BreakPoint at:0048CD92 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5034 VA:0027BDB1 Base:2162688 Address: 0048CDB1 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3703 BreakPoint at:0048CDB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5035 VA:0027BDD0 Base:2162688 Address: 0048CDD0 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3704 BreakPoint at:0048CDD0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5036 VA:0027BDEF Base:2162688 Address: 0048CDEF +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3705 BreakPoint at:0048CDEF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5037 VA:0027BE0E Base:2162688 Address: 0048CE0E +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3706 BreakPoint at:0048CE0E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5038 VA:0027BE2D Base:2162688 Address: 0048CE2D +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3707 BreakPoint at:0048CE2D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5039 VA:0027BE4C Base:2162688 Address: 0048CE4C +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3708 BreakPoint at:0048CE4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5040 VA:0027BE6B Base:2162688 Address: 0048CE6B +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3709 BreakPoint at:0048CE6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5041 VA:0027BE8A Base:2162688 Address: 0048CE8A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3710 BreakPoint at:0048CE8A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5042 VA:0027BEA9 Base:2162688 Address: 0048CEA9 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3711 BreakPoint at:0048CEA9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5043 VA:0027BEC2 Base:2162688 Address: 0048CEC2 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3712 BreakPoint at:0048CEC2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5044 VA:0027BED3 Base:2162688 Address: 0048CED3 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3715 BreakPoint at:0048CED3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5045 VA:0027BEDF Base:2162688 Address: 0048CEDF +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3716 BreakPoint at:0048CEDF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5046 VA:0027BF01 Base:2162688 Address: 0048CF01 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3717 BreakPoint at:0048CF01 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5047 VA:0027BF24 Base:2162688 Address: 0048CF24 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3718 BreakPoint at:0048CF24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5048 VA:0027BF47 Base:2162688 Address: 0048CF47 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3719 BreakPoint at:0048CF47 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5049 VA:0027BF6A Base:2162688 Address: 0048CF6A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3720 BreakPoint at:0048CF6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5050 VA:0027BF8D Base:2162688 Address: 0048CF8D +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3721 BreakPoint at:0048CF8D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5051 VA:0027BFB0 Base:2162688 Address: 0048CFB0 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3722 BreakPoint at:0048CFB0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5052 VA:0027BFD3 Base:2162688 Address: 0048CFD3 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3723 BreakPoint at:0048CFD3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5053 VA:0027BFF6 Base:2162688 Address: 0048CFF6 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3724 BreakPoint at:0048CFF6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5054 VA:0027C019 Base:2162688 Address: 0048D019 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3725 BreakPoint at:0048D019 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5055 VA:0027C03C Base:2162688 Address: 0048D03C +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3726 BreakPoint at:0048D03C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5056 VA:0027C05F Base:2162688 Address: 0048D05F +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3727 BreakPoint at:0048D05F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5057 VA:0027C082 Base:2162688 Address: 0048D082 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3728 BreakPoint at:0048D082 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5058 VA:0027C0A5 Base:2162688 Address: 0048D0A5 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3729 BreakPoint at:0048D0A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5059 VA:0027C0C8 Base:2162688 Address: 0048D0C8 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3730 BreakPoint at:0048D0C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5060 VA:0027C0EB Base:2162688 Address: 0048D0EB +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3731 BreakPoint at:0048D0EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5061 VA:0027C102 Base:2162688 Address: 0048D102 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3734 BreakPoint at:0048D102 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5062 VA:0027C11E Base:2162688 Address: 0048D11E +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3735 BreakPoint at:0048D11E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5063 VA:0027C134 Base:2162688 Address: 0048D134 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3736 BreakPoint at:0048D134 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5064 VA:0027C14A Base:2162688 Address: 0048D14A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3737 BreakPoint at:0048D14A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5065 VA:0027C166 Base:2162688 Address: 0048D166 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3740 BreakPoint at:0048D166 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5066 VA:0027C171 Base:2162688 Address: 0048D171 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3741 BreakPoint at:0048D171 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5067 VA:0027C17D Base:2162688 Address: 0048D17D +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3742 BreakPoint at:0048D17D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5068 VA:0027C189 Base:2162688 Address: 0048D189 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3743 BreakPoint at:0048D189 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5069 VA:0027C195 Base:2162688 Address: 0048D195 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3744 BreakPoint at:0048D195 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5070 VA:0027C1A1 Base:2162688 Address: 0048D1A1 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3745 BreakPoint at:0048D1A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5071 VA:0027C1AD Base:2162688 Address: 0048D1AD +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3746 BreakPoint at:0048D1AD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5072 VA:0027C1B8 Base:2162688 Address: 0048D1B8 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3747 BreakPoint at:0048D1B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5073 VA:0027C1C4 Base:2162688 Address: 0048D1C4 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3748 BreakPoint at:0048D1C4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5074 VA:0027C1CE Base:2162688 Address: 0048D1CE +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3749 BreakPoint at:0048D1CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5075 VA:0027C1DA Base:2162688 Address: 0048D1DA +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3750 BreakPoint at:0048D1DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5076 VA:0027C1E6 Base:2162688 Address: 0048D1E6 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3751 BreakPoint at:0048D1E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5077 VA:0027C1F2 Base:2162688 Address: 0048D1F2 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3752 BreakPoint at:0048D1F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5078 VA:0027C1FE Base:2162688 Address: 0048D1FE +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3753 BreakPoint at:0048D1FE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5079 VA:0027C20A Base:2162688 Address: 0048D20A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3754 BreakPoint at:0048D20A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5080 VA:0027C216 Base:2162688 Address: 0048D216 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3755 BreakPoint at:0048D216 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5081 VA:0027C222 Base:2162688 Address: 0048D222 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3758 BreakPoint at:0048D222 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5082 VA:0027C22E Base:2162688 Address: 0048D22E +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3759 BreakPoint at:0048D22E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5083 VA:0027C23A Base:2162688 Address: 0048D23A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3760 BreakPoint at:0048D23A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5084 VA:0027C246 Base:2162688 Address: 0048D246 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3761 BreakPoint at:0048D246 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5085 VA:0027C252 Base:2162688 Address: 0048D252 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3763 BreakPoint at:0048D252 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5086 VA:0027C279 Base:2162688 Address: 0048D279 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3764 BreakPoint at:0048D279 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5087 VA:0027C2A2 Base:2162688 Address: 0048D2A2 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3765 BreakPoint at:0048D2A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5088 VA:0027C2CC Base:2162688 Address: 0048D2CC +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3766 BreakPoint at:0048D2CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5089 VA:0027C2F6 Base:2162688 Address: 0048D2F6 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3767 BreakPoint at:0048D2F6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5090 VA:0027C320 Base:2162688 Address: 0048D320 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3768 BreakPoint at:0048D320 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5091 VA:0027C34A Base:2162688 Address: 0048D34A +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3769 BreakPoint at:0048D34A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5092 VA:0027C374 Base:2162688 Address: 0048D374 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3770 BreakPoint at:0048D374 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5093 VA:0027C39E Base:2162688 Address: 0048D39E +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3771 BreakPoint at:0048D39E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5094 VA:0027C3C8 Base:2162688 Address: 0048D3C8 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3773 BreakPoint at:0048D3C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5095 VA:0027C3F1 Base:2162688 Address: 0048D3F1 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3774 BreakPoint at:0048D3F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5096 VA:0027C41B Base:2162688 Address: 0048D41B +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3775 BreakPoint at:0048D41B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5097 VA:0027C445 Base:2162688 Address: 0048D445 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3776 BreakPoint at:0048D445 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5098 VA:0027C46F Base:2162688 Address: 0048D46F +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3777 BreakPoint at:0048D46F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5099 VA:0027C493 Base:2162688 Address: 0048D493 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3778 BreakPoint at:0048D493 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5100 VA:0027C4B7 Base:2162688 Address: 0048D4B7 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3779 BreakPoint at:0048D4B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5101 VA:0027C4DB Base:2162688 Address: 0048D4DB +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3780 BreakPoint at:0048D4DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5102 VA:0027C4F9 Base:2162688 Address: 0048D4F9 +Adding breakpoint for DECHash.THash_Panama.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3781 BreakPoint at:0048D4F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5103 VA:0027C500 Base:2162688 Address: 0048D500 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3785 BreakPoint at:0048D500 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5104 VA:0027C507 Base:2162688 Address: 0048D507 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3786 BreakPoint at:0048D507 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5105 VA:0027C510 Base:2162688 Address: 0048D510 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3787 BreakPoint at:0048D510 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5106 VA:0027C517 Base:2162688 Address: 0048D517 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3788 BreakPoint at:0048D517 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5107 VA:0027C52C Base:2162688 Address: 0048D52C +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3789 BreakPoint at:0048D52C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5108 VA:0027C532 Base:2162688 Address: 0048D532 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3790 BreakPoint at:0048D532 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5109 VA:0027C554 Base:2162688 Address: 0048D554 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3791 BreakPoint at:0048D554 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5110 VA:0027C562 Base:2162688 Address: 0048D562 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3792 BreakPoint at:0048D562 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5111 VA:0027C56A Base:2162688 Address: 0048D56A +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3793 BreakPoint at:0048D56A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5112 VA:0027C57C Base:2162688 Address: 0048D57C +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3794 BreakPoint at:0048D57C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5113 VA:0027C587 Base:2162688 Address: 0048D587 +Adding breakpoint for DECHash.THash_Panama.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3795 BreakPoint at:0048D587 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5114 VA:0027C58C Base:2162688 Address: 0048D58C +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3803 BreakPoint at:0048D58C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5115 VA:0027C595 Base:2162688 Address: 0048D595 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3804 BreakPoint at:0048D595 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5116 VA:0027C59A Base:2162688 Address: 0048D59A +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3807 BreakPoint at:0048D59A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5117 VA:0027C5B6 Base:2162688 Address: 0048D5B6 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3808 BreakPoint at:0048D5B6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5118 VA:0027C5D2 Base:2162688 Address: 0048D5D2 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3809 BreakPoint at:0048D5D2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5119 VA:0027C5E8 Base:2162688 Address: 0048D5E8 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3810 BreakPoint at:0048D5E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5120 VA:0027C5FE Base:2162688 Address: 0048D5FE +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3811 BreakPoint at:0048D5FE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5121 VA:0027C61A Base:2162688 Address: 0048D61A +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3814 BreakPoint at:0048D61A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5122 VA:0027C625 Base:2162688 Address: 0048D625 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3815 BreakPoint at:0048D625 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5123 VA:0027C631 Base:2162688 Address: 0048D631 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3816 BreakPoint at:0048D631 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5124 VA:0027C63D Base:2162688 Address: 0048D63D +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3817 BreakPoint at:0048D63D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5125 VA:0027C649 Base:2162688 Address: 0048D649 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3818 BreakPoint at:0048D649 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5126 VA:0027C655 Base:2162688 Address: 0048D655 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3819 BreakPoint at:0048D655 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5127 VA:0027C661 Base:2162688 Address: 0048D661 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3820 BreakPoint at:0048D661 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5128 VA:0027C66C Base:2162688 Address: 0048D66C +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3821 BreakPoint at:0048D66C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5129 VA:0027C678 Base:2162688 Address: 0048D678 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3822 BreakPoint at:0048D678 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5130 VA:0027C686 Base:2162688 Address: 0048D686 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3823 BreakPoint at:0048D686 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5131 VA:0027C695 Base:2162688 Address: 0048D695 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3824 BreakPoint at:0048D695 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5132 VA:0027C6A4 Base:2162688 Address: 0048D6A4 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3825 BreakPoint at:0048D6A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5133 VA:0027C6B3 Base:2162688 Address: 0048D6B3 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3826 BreakPoint at:0048D6B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5134 VA:0027C6C2 Base:2162688 Address: 0048D6C2 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3827 BreakPoint at:0048D6C2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5135 VA:0027C6D1 Base:2162688 Address: 0048D6D1 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3828 BreakPoint at:0048D6D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5136 VA:0027C6E0 Base:2162688 Address: 0048D6E0 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3829 BreakPoint at:0048D6E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5137 VA:0027C6EF Base:2162688 Address: 0048D6EF +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3832 BreakPoint at:0048D6EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5138 VA:0027C6FB Base:2162688 Address: 0048D6FB +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3833 BreakPoint at:0048D6FB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5139 VA:0027C707 Base:2162688 Address: 0048D707 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3834 BreakPoint at:0048D707 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5140 VA:0027C726 Base:2162688 Address: 0048D726 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3835 BreakPoint at:0048D726 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5141 VA:0027C745 Base:2162688 Address: 0048D745 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3836 BreakPoint at:0048D745 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5142 VA:0027C764 Base:2162688 Address: 0048D764 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3837 BreakPoint at:0048D764 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5143 VA:0027C783 Base:2162688 Address: 0048D783 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3838 BreakPoint at:0048D783 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5144 VA:0027C7A2 Base:2162688 Address: 0048D7A2 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3839 BreakPoint at:0048D7A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5145 VA:0027C7C1 Base:2162688 Address: 0048D7C1 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3840 BreakPoint at:0048D7C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5146 VA:0027C7E0 Base:2162688 Address: 0048D7E0 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3841 BreakPoint at:0048D7E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5147 VA:0027C7FF Base:2162688 Address: 0048D7FF +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3842 BreakPoint at:0048D7FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5148 VA:0027C81E Base:2162688 Address: 0048D81E +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3843 BreakPoint at:0048D81E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5149 VA:0027C83D Base:2162688 Address: 0048D83D +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3844 BreakPoint at:0048D83D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5150 VA:0027C85C Base:2162688 Address: 0048D85C +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3845 BreakPoint at:0048D85C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5151 VA:0027C87B Base:2162688 Address: 0048D87B +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3846 BreakPoint at:0048D87B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5152 VA:0027C89A Base:2162688 Address: 0048D89A +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3847 BreakPoint at:0048D89A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5153 VA:0027C8B9 Base:2162688 Address: 0048D8B9 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3848 BreakPoint at:0048D8B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5154 VA:0027C8D8 Base:2162688 Address: 0048D8D8 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3849 BreakPoint at:0048D8D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5155 VA:0027C8F1 Base:2162688 Address: 0048D8F1 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3850 BreakPoint at:0048D8F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5156 VA:0027C902 Base:2162688 Address: 0048D902 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3853 BreakPoint at:0048D902 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5157 VA:0027C90E Base:2162688 Address: 0048D90E +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3854 BreakPoint at:0048D90E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5158 VA:0027C930 Base:2162688 Address: 0048D930 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3855 BreakPoint at:0048D930 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5159 VA:0027C953 Base:2162688 Address: 0048D953 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3856 BreakPoint at:0048D953 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5160 VA:0027C976 Base:2162688 Address: 0048D976 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3857 BreakPoint at:0048D976 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5161 VA:0027C999 Base:2162688 Address: 0048D999 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3858 BreakPoint at:0048D999 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5162 VA:0027C9BC Base:2162688 Address: 0048D9BC +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3859 BreakPoint at:0048D9BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5163 VA:0027C9DF Base:2162688 Address: 0048D9DF +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3860 BreakPoint at:0048D9DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5164 VA:0027CA02 Base:2162688 Address: 0048DA02 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3861 BreakPoint at:0048DA02 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5165 VA:0027CA25 Base:2162688 Address: 0048DA25 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3862 BreakPoint at:0048DA25 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5166 VA:0027CA48 Base:2162688 Address: 0048DA48 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3863 BreakPoint at:0048DA48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5167 VA:0027CA6B Base:2162688 Address: 0048DA6B +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3864 BreakPoint at:0048DA6B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5168 VA:0027CA8E Base:2162688 Address: 0048DA8E +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3865 BreakPoint at:0048DA8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5169 VA:0027CAB1 Base:2162688 Address: 0048DAB1 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3866 BreakPoint at:0048DAB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5170 VA:0027CAD4 Base:2162688 Address: 0048DAD4 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3867 BreakPoint at:0048DAD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5171 VA:0027CAF7 Base:2162688 Address: 0048DAF7 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3868 BreakPoint at:0048DAF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5172 VA:0027CB1A Base:2162688 Address: 0048DB1A +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3869 BreakPoint at:0048DB1A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5173 VA:0027CB31 Base:2162688 Address: 0048DB31 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3872 BreakPoint at:0048DB31 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5174 VA:0027CB3D Base:2162688 Address: 0048DB3D +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3873 BreakPoint at:0048DB3D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5175 VA:0027CB49 Base:2162688 Address: 0048DB49 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3874 BreakPoint at:0048DB49 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5176 VA:0027CB55 Base:2162688 Address: 0048DB55 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3875 BreakPoint at:0048DB55 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5177 VA:0027CB61 Base:2162688 Address: 0048DB61 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3876 BreakPoint at:0048DB61 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5178 VA:0027CB88 Base:2162688 Address: 0048DB88 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3877 BreakPoint at:0048DB88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5179 VA:0027CBB1 Base:2162688 Address: 0048DBB1 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3878 BreakPoint at:0048DBB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5180 VA:0027CBDB Base:2162688 Address: 0048DBDB +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3879 BreakPoint at:0048DBDB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5181 VA:0027CC05 Base:2162688 Address: 0048DC05 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3880 BreakPoint at:0048DC05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5182 VA:0027CC2F Base:2162688 Address: 0048DC2F +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3881 BreakPoint at:0048DC2F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5183 VA:0027CC59 Base:2162688 Address: 0048DC59 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3882 BreakPoint at:0048DC59 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5184 VA:0027CC83 Base:2162688 Address: 0048DC83 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3883 BreakPoint at:0048DC83 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5185 VA:0027CCAD Base:2162688 Address: 0048DCAD +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3884 BreakPoint at:0048DCAD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5186 VA:0027CCD7 Base:2162688 Address: 0048DCD7 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3885 BreakPoint at:0048DCD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5187 VA:0027CD00 Base:2162688 Address: 0048DD00 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3886 BreakPoint at:0048DD00 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5188 VA:0027CD2A Base:2162688 Address: 0048DD2A +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3887 BreakPoint at:0048DD2A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5189 VA:0027CD54 Base:2162688 Address: 0048DD54 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3888 BreakPoint at:0048DD54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5190 VA:0027CD7E Base:2162688 Address: 0048DD7E +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3889 BreakPoint at:0048DD7E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5191 VA:0027CDA2 Base:2162688 Address: 0048DDA2 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3890 BreakPoint at:0048DDA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5192 VA:0027CDC6 Base:2162688 Address: 0048DDC6 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3891 BreakPoint at:0048DDC6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5193 VA:0027CDEA Base:2162688 Address: 0048DDEA +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3892 BreakPoint at:0048DDEA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5194 VA:0027CE08 Base:2162688 Address: 0048DE08 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3893 BreakPoint at:0048DE08 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5195 VA:0027CE0B Base:2162688 Address: 0048DE0B +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3804 BreakPoint at:0048DE0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5196 VA:0027CE15 Base:2162688 Address: 0048DE15 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3896 BreakPoint at:0048DE15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5197 VA:0027CE27 Base:2162688 Address: 0048DE27 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3897 BreakPoint at:0048DE27 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5198 VA:0027CE39 Base:2162688 Address: 0048DE39 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3898 BreakPoint at:0048DE39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5199 VA:0027CE4B Base:2162688 Address: 0048DE4B +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3899 BreakPoint at:0048DE4B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5200 VA:0027CE5D Base:2162688 Address: 0048DE5D +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3900 BreakPoint at:0048DE5D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5201 VA:0027CE6F Base:2162688 Address: 0048DE6F +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3901 BreakPoint at:0048DE6F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5202 VA:0027CE81 Base:2162688 Address: 0048DE81 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3902 BreakPoint at:0048DE81 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5203 VA:0027CE93 Base:2162688 Address: 0048DE93 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3903 BreakPoint at:0048DE93 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5204 VA:0027CEA5 Base:2162688 Address: 0048DEA5 +Adding breakpoint for DECHash.THash_Panama.DoPull in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3904 BreakPoint at:0048DEA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5205 VA:0027CEAC Base:2162688 Address: 0048DEAC +Adding breakpoint for DECHash.THash_Panama.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3908 BreakPoint at:0048DEAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5206 VA:0027CEB5 Base:2162688 Address: 0048DEB5 +Adding breakpoint for DECHash.THash_Panama.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3909 BreakPoint at:0048DEB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5207 VA:0027CEC0 Base:2162688 Address: 0048DEC0 +Adding breakpoint for DECHash.THash_Panama.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3910 BreakPoint at:0048DEC0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5208 VA:0027CEC8 Base:2162688 Address: 0048DEC8 +Adding breakpoint for DECHash.THash_Panama.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3913 BreakPoint at:0048DEC8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5209 VA:0027CED1 Base:2162688 Address: 0048DED1 +Adding breakpoint for DECHash.THash_Panama.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3914 BreakPoint at:0048DED1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5210 VA:0027CED8 Base:2162688 Address: 0048DED8 +Adding breakpoint for DECHash.THash_Panama.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3915 BreakPoint at:0048DED8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5211 VA:0027CEE0 Base:2162688 Address: 0048DEE0 +Adding breakpoint for DECHash.THash_Panama.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3918 BreakPoint at:0048DEE0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5212 VA:0027CEE9 Base:2162688 Address: 0048DEE9 +Adding breakpoint for DECHash.THash_Panama.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3919 BreakPoint at:0048DEE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5213 VA:0027CEF0 Base:2162688 Address: 0048DEF0 +Adding breakpoint for DECHash.THash_Panama.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3920 BreakPoint at:0048DEF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5214 VA:0027CEF8 Base:2162688 Address: 0048DEF8 +Adding breakpoint for DECHash.Whirl in DECHash.pas +Creating class info for DECHash class Whirl +TBreakPoint.Activate: +Activate DECHash.pas line 3933 BreakPoint at:0048DEF8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5215 VA:0027CF07 Base:2162688 Address: 0048DF07 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3934 BreakPoint at:0048DF07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5216 VA:0027CFCC Base:2162688 Address: 0048DFCC +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3942 BreakPoint at:0048DFCC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5217 VA:0027D093 Base:2162688 Address: 0048E093 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3950 BreakPoint at:0048E093 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5218 VA:0027D159 Base:2162688 Address: 0048E159 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3958 BreakPoint at:0048E159 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5219 VA:0027D220 Base:2162688 Address: 0048E220 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3966 BreakPoint at:0048E220 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5220 VA:0027D2E6 Base:2162688 Address: 0048E2E6 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3974 BreakPoint at:0048E2E6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5221 VA:0027D3AD Base:2162688 Address: 0048E3AD +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3982 BreakPoint at:0048E3AD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5222 VA:0027D473 Base:2162688 Address: 0048E473 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3990 BreakPoint at:0048E473 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5223 VA:0027D53A Base:2162688 Address: 0048E53A +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 3998 BreakPoint at:0048E53A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5224 VA:0027D601 Base:2162688 Address: 0048E601 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4006 BreakPoint at:0048E601 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5225 VA:0027D6C9 Base:2162688 Address: 0048E6C9 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4014 BreakPoint at:0048E6C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5226 VA:0027D790 Base:2162688 Address: 0048E790 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4022 BreakPoint at:0048E790 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5227 VA:0027D858 Base:2162688 Address: 0048E858 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4030 BreakPoint at:0048E858 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5228 VA:0027D91F Base:2162688 Address: 0048E91F +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4038 BreakPoint at:0048E91F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5229 VA:0027D9E7 Base:2162688 Address: 0048E9E7 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4046 BreakPoint at:0048E9E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5230 VA:0027DAAE Base:2162688 Address: 0048EAAE +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4054 BreakPoint at:0048EAAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5231 VA:0027DB76 Base:2162688 Address: 0048EB76 +Adding breakpoint for DECHash.Whirl in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4062 BreakPoint at:0048EB76 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5232 VA:0027DB7C Base:2162688 Address: 0048EB7C +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +Creating class info for DECHash class THashBaseWhirlpool +TBreakPoint.Activate: +Activate DECHash.pas line 4067 BreakPoint at:0048EB7C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5233 VA:0027DB8B Base:2162688 Address: 0048EB8B +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4068 BreakPoint at:0048EB8B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5234 VA:0027DBA1 Base:2162688 Address: 0048EBA1 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4070 BreakPoint at:0048EBA1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5235 VA:0027DBB7 Base:2162688 Address: 0048EBB7 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4071 BreakPoint at:0048EBB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5236 VA:0027DBCE Base:2162688 Address: 0048EBCE +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4074 BreakPoint at:0048EBCE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5237 VA:0027DBD3 Base:2162688 Address: 0048EBD3 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4076 BreakPoint at:0048EBD3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5238 VA:0027DBEF Base:2162688 Address: 0048EBEF +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4077 BreakPoint at:0048EBEF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5239 VA:0027DC07 Base:2162688 Address: 0048EC07 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4078 BreakPoint at:0048EC07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5240 VA:0027DC20 Base:2162688 Address: 0048EC20 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4079 BreakPoint at:0048EC20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5241 VA:0027DC39 Base:2162688 Address: 0048EC39 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4080 BreakPoint at:0048EC39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5242 VA:0027DC53 Base:2162688 Address: 0048EC53 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4082 BreakPoint at:0048EC53 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5243 VA:0027DC6F Base:2162688 Address: 0048EC6F +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4083 BreakPoint at:0048EC6F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5244 VA:0027DC88 Base:2162688 Address: 0048EC88 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4084 BreakPoint at:0048EC88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5245 VA:0027DCA1 Base:2162688 Address: 0048ECA1 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4085 BreakPoint at:0048ECA1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5246 VA:0027DCBA Base:2162688 Address: 0048ECBA +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4086 BreakPoint at:0048ECBA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5247 VA:0027DCD4 Base:2162688 Address: 0048ECD4 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4087 BreakPoint at:0048ECD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5248 VA:0027DCD7 Base:2162688 Address: 0048ECD7 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4074 BreakPoint at:0048ECD7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5249 VA:0027DCE1 Base:2162688 Address: 0048ECE1 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4089 BreakPoint at:0048ECE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5250 VA:0027DCF5 Base:2162688 Address: 0048ECF5 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4090 BreakPoint at:0048ECF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5251 VA:0027DD0F Base:2162688 Address: 0048ED0F +Adding breakpoint for DECHash.THashBaseWhirlpool.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4091 BreakPoint at:0048ED0F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5252 VA:0027DDB8 Base:2162688 Address: 0048EDB8 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4097 BreakPoint at:0048EDB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5253 VA:0027DDC1 Base:2162688 Address: 0048EDC1 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4098 BreakPoint at:0048EDC1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5254 VA:0027DDCA Base:2162688 Address: 0048EDCA +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4099 BreakPoint at:0048EDCA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5255 VA:0027DDD1 Base:2162688 Address: 0048EDD1 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4100 BreakPoint at:0048EDD1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5256 VA:0027DDE6 Base:2162688 Address: 0048EDE6 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4101 BreakPoint at:0048EDE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5257 VA:0027DDEC Base:2162688 Address: 0048EDEC +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4102 BreakPoint at:0048EDEC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5258 VA:0027DDFF Base:2162688 Address: 0048EDFF +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4104 BreakPoint at:0048EDFF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5259 VA:0027DE21 Base:2162688 Address: 0048EE21 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4105 BreakPoint at:0048EE21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5260 VA:0027DE2F Base:2162688 Address: 0048EE2F +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4106 BreakPoint at:0048EE2F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5261 VA:0027DE37 Base:2162688 Address: 0048EE37 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4108 BreakPoint at:0048EE37 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5262 VA:0027DE59 Base:2162688 Address: 0048EE59 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4109 BreakPoint at:0048EE59 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5263 VA:0027DE60 Base:2162688 Address: 0048EE60 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4110 BreakPoint at:0048EE60 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5264 VA:0027DE80 Base:2162688 Address: 0048EE80 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4109 BreakPoint at:0048EE80 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5265 VA:0027DE86 Base:2162688 Address: 0048EE86 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4111 BreakPoint at:0048EE86 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5266 VA:0027DE94 Base:2162688 Address: 0048EE94 +Adding breakpoint for DECHash.THashBaseWhirlpool.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4112 BreakPoint at:0048EE94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5267 VA:0027DE98 Base:2162688 Address: 0048EE98 +Adding breakpoint for DECHash.THashBaseWhirlpool.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4115 BreakPoint at:0048EE98 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5268 VA:0027DEA1 Base:2162688 Address: 0048EEA1 +Adding breakpoint for DECHash.THashBaseWhirlpool.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4116 BreakPoint at:0048EEA1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5269 VA:0027DEAA Base:2162688 Address: 0048EEAA +Adding breakpoint for DECHash.THashBaseWhirlpool.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4117 BreakPoint at:0048EEAA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5270 VA:0027DEB4 Base:2162688 Address: 0048EEB4 +Adding breakpoint for DECHash.THashBaseWhirlpool.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4120 BreakPoint at:0048EEB4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5271 VA:0027DEBD Base:2162688 Address: 0048EEBD +Adding breakpoint for DECHash.THashBaseWhirlpool.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4121 BreakPoint at:0048EEBD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5272 VA:0027DEC4 Base:2162688 Address: 0048EEC4 +Adding breakpoint for DECHash.THashBaseWhirlpool.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4122 BreakPoint at:0048EEC4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5273 VA:0027DECC Base:2162688 Address: 0048EECC +Adding breakpoint for DECHash.THashBaseWhirlpool.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4125 BreakPoint at:0048EECC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5274 VA:0027DED5 Base:2162688 Address: 0048EED5 +Adding breakpoint for DECHash.THashBaseWhirlpool.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4126 BreakPoint at:0048EED5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5275 VA:0027DEDC Base:2162688 Address: 0048EEDC +Adding breakpoint for DECHash.THashBaseWhirlpool.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4127 BreakPoint at:0048EEDC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5276 VA:0027DEE4 Base:2162688 Address: 0048EEE4 +Adding breakpoint for DECHash.THash_Whirlpool0.DoInit in DECHash.pas +Creating class info for DECHash class THash_Whirlpool0 +TBreakPoint.Activate: +Activate DECHash.pas line 4132 BreakPoint at:0048EEE4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5277 VA:0027DEEB Base:2162688 Address: 0048EEEB +Adding breakpoint for DECHash.THash_Whirlpool0.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4133 BreakPoint at:0048EEEB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5278 VA:0027DEFD Base:2162688 Address: 0048EEFD +Adding breakpoint for DECHash.THash_Whirlpool0.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4134 BreakPoint at:0048EEFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5279 VA:0027DF0B Base:2162688 Address: 0048EF0B +Adding breakpoint for DECHash.THash_Whirlpool0.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4135 BreakPoint at:0048EF0B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5280 VA:0027DF19 Base:2162688 Address: 0048EF19 +Adding breakpoint for DECHash.THash_Whirlpool0.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4136 BreakPoint at:0048EF19 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5281 VA:0027DF1C Base:2162688 Address: 0048EF1C +Adding breakpoint for DECHash.THash_WhirlpoolT.DoInit in DECHash.pas +Creating class info for DECHash class THash_WhirlpoolT +TBreakPoint.Activate: +Activate DECHash.pas line 4141 BreakPoint at:0048EF1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5282 VA:0027DF23 Base:2162688 Address: 0048EF23 +Adding breakpoint for DECHash.THash_WhirlpoolT.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4142 BreakPoint at:0048EF23 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5283 VA:0027DF35 Base:2162688 Address: 0048EF35 +Adding breakpoint for DECHash.THash_WhirlpoolT.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4143 BreakPoint at:0048EF35 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5284 VA:0027DF43 Base:2162688 Address: 0048EF43 +Adding breakpoint for DECHash.THash_WhirlpoolT.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4144 BreakPoint at:0048EF43 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5285 VA:0027DF51 Base:2162688 Address: 0048EF51 +Adding breakpoint for DECHash.THash_WhirlpoolT.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4145 BreakPoint at:0048EF51 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5286 VA:0027DF54 Base:2162688 Address: 0048EF54 +Adding breakpoint for DECHash.THash_Whirlpool1_.DoInit in DECHash.pas +Creating class info for DECHash class THash_Whirlpool1_ +TBreakPoint.Activate: +Activate DECHash.pas line 4150 BreakPoint at:0048EF54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5287 VA:0027DF5B Base:2162688 Address: 0048EF5B +Adding breakpoint for DECHash.THash_Whirlpool1_.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4151 BreakPoint at:0048EF5B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5288 VA:0027DF6D Base:2162688 Address: 0048EF6D +Adding breakpoint for DECHash.THash_Whirlpool1_.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4152 BreakPoint at:0048EF6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5289 VA:0027DF7B Base:2162688 Address: 0048EF7B +Adding breakpoint for DECHash.THash_Whirlpool1_.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4153 BreakPoint at:0048EF7B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5290 VA:0027DF89 Base:2162688 Address: 0048EF89 +Adding breakpoint for DECHash.THash_Whirlpool1_.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4154 BreakPoint at:0048EF89 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5291 VA:0027DF8C Base:2162688 Address: 0048EF8C +Adding breakpoint for DECHash.THash_Square.DoInit in DECHash.pas +Creating class info for DECHash class THash_Square +TBreakPoint.Activate: +Activate DECHash.pas line 4159 BreakPoint at:0048EF8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5292 VA:0027DF93 Base:2162688 Address: 0048EF93 +Adding breakpoint for DECHash.THash_Square.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4160 BreakPoint at:0048EF93 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5293 VA:0027DFA5 Base:2162688 Address: 0048EFA5 +Adding breakpoint for DECHash.THash_Square.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4161 BreakPoint at:0048EFA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5294 VA:0027DFA8 Base:2162688 Address: 0048EFA8 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4170 BreakPoint at:0048EFA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5295 VA:0027DFB7 Base:2162688 Address: 0048EFB7 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4172 BreakPoint at:0048EFB7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5296 VA:0027DFC3 Base:2162688 Address: 0048EFC3 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4173 BreakPoint at:0048EFC3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5297 VA:0027DFCF Base:2162688 Address: 0048EFCF +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4174 BreakPoint at:0048EFCF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5298 VA:0027DFDB Base:2162688 Address: 0048EFDB +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4175 BreakPoint at:0048EFDB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5299 VA:0027DFE7 Base:2162688 Address: 0048EFE7 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4177 BreakPoint at:0048EFE7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5300 VA:0027DFEE Base:2162688 Address: 0048EFEE +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4179 BreakPoint at:0048EFEE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5301 VA:0027E035 Base:2162688 Address: 0048F035 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4180 BreakPoint at:0048F035 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5302 VA:0027E059 Base:2162688 Address: 0048F059 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4181 BreakPoint at:0048F059 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5303 VA:0027E07D Base:2162688 Address: 0048F07D +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4182 BreakPoint at:0048F07D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5304 VA:0027E0A1 Base:2162688 Address: 0048F0A1 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4184 BreakPoint at:0048F0A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5305 VA:0027E127 Base:2162688 Address: 0048F127 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4188 BreakPoint at:0048F127 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5306 VA:0027E1AD Base:2162688 Address: 0048F1AD +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4192 BreakPoint at:0048F1AD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5307 VA:0027E233 Base:2162688 Address: 0048F233 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4196 BreakPoint at:0048F233 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5308 VA:0027E2B9 Base:2162688 Address: 0048F2B9 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4200 BreakPoint at:0048F2B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5309 VA:0027E2BC Base:2162688 Address: 0048F2BC +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4177 BreakPoint at:0048F2BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5310 VA:0027E2C6 Base:2162688 Address: 0048F2C6 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4203 BreakPoint at:0048F2C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5311 VA:0027E2D4 Base:2162688 Address: 0048F2D4 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4204 BreakPoint at:0048F2D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5312 VA:0027E2E3 Base:2162688 Address: 0048F2E3 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4205 BreakPoint at:0048F2E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5313 VA:0027E2F2 Base:2162688 Address: 0048F2F2 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4206 BreakPoint at:0048F2F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5314 VA:0027E301 Base:2162688 Address: 0048F301 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4208 BreakPoint at:0048F301 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5315 VA:0027E306 Base:2162688 Address: 0048F306 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4210 BreakPoint at:0048F306 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5316 VA:0027E368 Base:2162688 Address: 0048F368 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4214 BreakPoint at:0048F368 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5317 VA:0027E3D6 Base:2162688 Address: 0048F3D6 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4218 BreakPoint at:0048F3D6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5318 VA:0027E444 Base:2162688 Address: 0048F444 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4222 BreakPoint at:0048F444 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5319 VA:0027E49B Base:2162688 Address: 0048F49B +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4227 BreakPoint at:0048F49B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5320 VA:0027E4B3 Base:2162688 Address: 0048F4B3 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4228 BreakPoint at:0048F4B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5321 VA:0027E4B6 Base:2162688 Address: 0048F4B6 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4208 BreakPoint at:0048F4B6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5322 VA:0027E4C0 Base:2162688 Address: 0048F4C0 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4230 BreakPoint at:0048F4C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5323 VA:0027E524 Base:2162688 Address: 0048F524 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4235 BreakPoint at:0048F524 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5324 VA:0027E595 Base:2162688 Address: 0048F595 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4240 BreakPoint at:0048F595 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5325 VA:0027E606 Base:2162688 Address: 0048F606 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4245 BreakPoint at:0048F606 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5326 VA:0027E660 Base:2162688 Address: 0048F660 +Adding breakpoint for DECHash.THash_Square.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4250 BreakPoint at:0048F660 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5327 VA:0027E664 Base:2162688 Address: 0048F664 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4256 BreakPoint at:0048F664 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5328 VA:0027E66D Base:2162688 Address: 0048F66D +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4257 BreakPoint at:0048F66D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5329 VA:0027E676 Base:2162688 Address: 0048F676 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4258 BreakPoint at:0048F676 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5330 VA:0027E67D Base:2162688 Address: 0048F67D +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4259 BreakPoint at:0048F67D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5331 VA:0027E692 Base:2162688 Address: 0048F692 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4260 BreakPoint at:0048F692 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5332 VA:0027E698 Base:2162688 Address: 0048F698 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4261 BreakPoint at:0048F698 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5333 VA:0027E6AB Base:2162688 Address: 0048F6AB +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4263 BreakPoint at:0048F6AB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5334 VA:0027E6CD Base:2162688 Address: 0048F6CD +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4264 BreakPoint at:0048F6CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5335 VA:0027E6DB Base:2162688 Address: 0048F6DB +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4265 BreakPoint at:0048F6DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5336 VA:0027E6E3 Base:2162688 Address: 0048F6E3 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4267 BreakPoint at:0048F6E3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5337 VA:0027E705 Base:2162688 Address: 0048F705 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4268 BreakPoint at:0048F705 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5338 VA:0027E70C Base:2162688 Address: 0048F70C +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4269 BreakPoint at:0048F70C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5339 VA:0027E72C Base:2162688 Address: 0048F72C +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4268 BreakPoint at:0048F72C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5340 VA:0027E732 Base:2162688 Address: 0048F732 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4270 BreakPoint at:0048F732 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5341 VA:0027E740 Base:2162688 Address: 0048F740 +Adding breakpoint for DECHash.THash_Square.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4271 BreakPoint at:0048F740 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5342 VA:0027E744 Base:2162688 Address: 0048F744 +Adding breakpoint for DECHash.THash_Square.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4274 BreakPoint at:0048F744 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5343 VA:0027E74D Base:2162688 Address: 0048F74D +Adding breakpoint for DECHash.THash_Square.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4275 BreakPoint at:0048F74D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5344 VA:0027E756 Base:2162688 Address: 0048F756 +Adding breakpoint for DECHash.THash_Square.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4276 BreakPoint at:0048F756 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5345 VA:0027E760 Base:2162688 Address: 0048F760 +Adding breakpoint for DECHash.THash_Square.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4279 BreakPoint at:0048F760 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5346 VA:0027E769 Base:2162688 Address: 0048F769 +Adding breakpoint for DECHash.THash_Square.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4280 BreakPoint at:0048F769 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5347 VA:0027E770 Base:2162688 Address: 0048F770 +Adding breakpoint for DECHash.THash_Square.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4281 BreakPoint at:0048F770 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5348 VA:0027E778 Base:2162688 Address: 0048F778 +Adding breakpoint for DECHash.THash_Square.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4284 BreakPoint at:0048F778 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5349 VA:0027E781 Base:2162688 Address: 0048F781 +Adding breakpoint for DECHash.THash_Square.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4285 BreakPoint at:0048F781 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5350 VA:0027E788 Base:2162688 Address: 0048F788 +Adding breakpoint for DECHash.THash_Square.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4286 BreakPoint at:0048F788 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5351 VA:0027E790 Base:2162688 Address: 0048F790 +Adding breakpoint for DECHash.THashBaseSnefru.SetRounds in DECHash.pas +Creating class info for DECHash class THashBaseSnefru +TBreakPoint.Activate: +Activate DECHash.pas line 4291 BreakPoint at:0048F790 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5352 VA:0027E79C Base:2162688 Address: 0048F79C +Adding breakpoint for DECHash.THashBaseSnefru.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4292 BreakPoint at:0048F79C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5353 VA:0027E7A8 Base:2162688 Address: 0048F7A8 +Adding breakpoint for DECHash.THashBaseSnefru.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4293 BreakPoint at:0048F7A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5354 VA:0027E7AF Base:2162688 Address: 0048F7AF +Adding breakpoint for DECHash.THashBaseSnefru.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4294 BreakPoint at:0048F7AF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5355 VA:0027E7BB Base:2162688 Address: 0048F7BB +Adding breakpoint for DECHash.THashBaseSnefru.SetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4295 BreakPoint at:0048F7BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5356 VA:0027E7C0 Base:2162688 Address: 0048F7C0 +Adding breakpoint for DECHash.THashBaseSnefru.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4298 BreakPoint at:0048F7C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5357 VA:0027E7C7 Base:2162688 Address: 0048F7C7 +Adding breakpoint for DECHash.THashBaseSnefru.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4299 BreakPoint at:0048F7C7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5358 VA:0027E7D9 Base:2162688 Address: 0048F7D9 +Adding breakpoint for DECHash.THashBaseSnefru.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4300 BreakPoint at:0048F7D9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5359 VA:0027E7EA Base:2162688 Address: 0048F7EA +Adding breakpoint for DECHash.THashBaseSnefru.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4301 BreakPoint at:0048F7EA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5360 VA:0027E7F0 Base:2162688 Address: 0048F7F0 +Adding breakpoint for DECHash.THashBaseSnefru.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4304 BreakPoint at:0048F7F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5361 VA:0027E7F9 Base:2162688 Address: 0048F7F9 +Adding breakpoint for DECHash.THashBaseSnefru.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4305 BreakPoint at:0048F7F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5362 VA:0027E800 Base:2162688 Address: 0048F800 +Adding breakpoint for DECHash.THashBaseSnefru.GetMaxRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4306 BreakPoint at:0048F800 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5363 VA:0027E808 Base:2162688 Address: 0048F808 +Adding breakpoint for DECHash.THashBaseSnefru.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4309 BreakPoint at:0048F808 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5364 VA:0027E811 Base:2162688 Address: 0048F811 +Adding breakpoint for DECHash.THashBaseSnefru.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4310 BreakPoint at:0048F811 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5365 VA:0027E818 Base:2162688 Address: 0048F818 +Adding breakpoint for DECHash.THashBaseSnefru.GetMinRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4311 BreakPoint at:0048F818 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5366 VA:0027E820 Base:2162688 Address: 0048F820 +Adding breakpoint for DECHash.THashBaseSnefru.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4314 BreakPoint at:0048F820 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5367 VA:0027E829 Base:2162688 Address: 0048F829 +Adding breakpoint for DECHash.THashBaseSnefru.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4315 BreakPoint at:0048F829 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5368 VA:0027E835 Base:2162688 Address: 0048F835 +Adding breakpoint for DECHash.THashBaseSnefru.GetRounds in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4316 BreakPoint at:0048F835 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5369 VA:0027E83C Base:2162688 Address: 0048F83C +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4319 BreakPoint at:0048F83C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5370 VA:0027E843 Base:2162688 Address: 0048F843 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4320 BreakPoint at:0048F843 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5371 VA:0027E84C Base:2162688 Address: 0048F84C +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4322 BreakPoint at:0048F84C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5372 VA:0027E86E Base:2162688 Address: 0048F86E +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4323 BreakPoint at:0048F86E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5373 VA:0027E87C Base:2162688 Address: 0048F87C +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4324 BreakPoint at:0048F87C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5374 VA:0027E884 Base:2162688 Address: 0048F884 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4326 BreakPoint at:0048F884 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5375 VA:0027E8A6 Base:2162688 Address: 0048F8A6 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4327 BreakPoint at:0048F8A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5376 VA:0027E8C3 Base:2162688 Address: 0048F8C3 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4328 BreakPoint at:0048F8C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5377 VA:0027E8E0 Base:2162688 Address: 0048F8E0 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4329 BreakPoint at:0048F8E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5378 VA:0027E8EE Base:2162688 Address: 0048F8EE +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4330 BreakPoint at:0048F8EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5379 VA:0027E904 Base:2162688 Address: 0048F904 +Adding breakpoint for DECHash.THashBaseSnefru.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4331 BreakPoint at:0048F904 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5380 VA:0027E908 Base:2162688 Address: 0048F908 +Adding breakpoint for DECHash.THashBaseSnefru.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4334 BreakPoint at:0048F908 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5381 VA:0027E911 Base:2162688 Address: 0048F911 +Adding breakpoint for DECHash.THashBaseSnefru.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4335 BreakPoint at:0048F911 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5382 VA:0027E91A Base:2162688 Address: 0048F91A +Adding breakpoint for DECHash.THashBaseSnefru.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4336 BreakPoint at:0048F91A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5383 VA:0027E924 Base:2162688 Address: 0048F924 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +Creating class info for DECHash class THash_Snefru128 +TBreakPoint.Activate: +Activate DECHash.pas line 4347 BreakPoint at:0048F924 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5384 VA:0027E931 Base:2162688 Address: 0048F931 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4348 BreakPoint at:0048F931 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5385 VA:0027E93A Base:2162688 Address: 0048F93A +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4349 BreakPoint at:0048F93A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5386 VA:0027E94D Base:2162688 Address: 0048F94D +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4350 BreakPoint at:0048F94D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5387 VA:0027E960 Base:2162688 Address: 0048F960 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4351 BreakPoint at:0048F960 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5388 VA:0027E968 Base:2162688 Address: 0048F968 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4352 BreakPoint at:0048F968 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5389 VA:0027E975 Base:2162688 Address: 0048F975 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4353 BreakPoint at:0048F975 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5390 VA:0027E992 Base:2162688 Address: 0048F992 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4355 BreakPoint at:0048F992 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5391 VA:0027E997 Base:2162688 Address: 0048F997 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4357 BreakPoint at:0048F997 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5392 VA:0027E99C Base:2162688 Address: 0048F99C +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4358 BreakPoint at:0048F99C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5393 VA:0027E9A4 Base:2162688 Address: 0048F9A4 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4359 BreakPoint at:0048F9A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5394 VA:0027E9AE Base:2162688 Address: 0048F9AE +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4361 BreakPoint at:0048F9AE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5395 VA:0027E9BF Base:2162688 Address: 0048F9BF +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4362 BreakPoint at:0048F9BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5396 VA:0027E9E4 Base:2162688 Address: 0048F9E4 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4363 BreakPoint at:0048F9E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5397 VA:0027E9FC Base:2162688 Address: 0048F9FC +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4364 BreakPoint at:0048F9FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5398 VA:0027EA0D Base:2162688 Address: 0048FA0D +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4365 BreakPoint at:0048FA0D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5399 VA:0027EA34 Base:2162688 Address: 0048FA34 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4366 BreakPoint at:0048FA34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5400 VA:0027EA4C Base:2162688 Address: 0048FA4C +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4367 BreakPoint at:0048FA4C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5401 VA:0027EA5D Base:2162688 Address: 0048FA5D +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4368 BreakPoint at:0048FA5D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5402 VA:0027EA84 Base:2162688 Address: 0048FA84 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4369 BreakPoint at:0048FA84 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5403 VA:0027EA9C Base:2162688 Address: 0048FA9C +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4370 BreakPoint at:0048FA9C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5404 VA:0027EAAD Base:2162688 Address: 0048FAAD +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4371 BreakPoint at:0048FAAD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5405 VA:0027EAD4 Base:2162688 Address: 0048FAD4 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4372 BreakPoint at:0048FAD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5406 VA:0027EAEC Base:2162688 Address: 0048FAEC +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4373 BreakPoint at:0048FAEC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5407 VA:0027EAF0 Base:2162688 Address: 0048FAF0 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4359 BreakPoint at:0048FAF0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5408 VA:0027EAFA Base:2162688 Address: 0048FAFA +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4375 BreakPoint at:0048FAFA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5409 VA:0027EB07 Base:2162688 Address: 0048FB07 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4376 BreakPoint at:0048FB07 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5410 VA:0027EB12 Base:2162688 Address: 0048FB12 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4377 BreakPoint at:0048FB12 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5411 VA:0027EB17 Base:2162688 Address: 0048FB17 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4378 BreakPoint at:0048FB17 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5412 VA:0027EB41 Base:2162688 Address: 0048FB41 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4377 BreakPoint at:0048FB41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5413 VA:0027EB47 Base:2162688 Address: 0048FB47 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4379 BreakPoint at:0048FB47 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5414 VA:0027EB4A Base:2162688 Address: 0048FB4A +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4355 BreakPoint at:0048FB4A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5415 VA:0027EB54 Base:2162688 Address: 0048FB54 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4380 BreakPoint at:0048FB54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5416 VA:0027EB5F Base:2162688 Address: 0048FB5F +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4381 BreakPoint at:0048FB5F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5417 VA:0027EB6A Base:2162688 Address: 0048FB6A +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4382 BreakPoint at:0048FB6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5418 VA:0027EB6D Base:2162688 Address: 0048FB6D +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4353 BreakPoint at:0048FB6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5419 VA:0027EB76 Base:2162688 Address: 0048FB76 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4383 BreakPoint at:0048FB76 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5420 VA:0027EB7B Base:2162688 Address: 0048FB7B +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4384 BreakPoint at:0048FB7B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5421 VA:0027EB9F Base:2162688 Address: 0048FB9F +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4383 BreakPoint at:0048FB9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5422 VA:0027EBA5 Base:2162688 Address: 0048FBA5 +Adding breakpoint for DECHash.THash_Snefru128.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4385 BreakPoint at:0048FBA5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5423 VA:0027EBAC Base:2162688 Address: 0048FBAC +Adding breakpoint for DECHash.THash_Snefru128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4389 BreakPoint at:0048FBAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5424 VA:0027EBB5 Base:2162688 Address: 0048FBB5 +Adding breakpoint for DECHash.THash_Snefru128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4390 BreakPoint at:0048FBB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5425 VA:0027EBBC Base:2162688 Address: 0048FBBC +Adding breakpoint for DECHash.THash_Snefru128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4391 BreakPoint at:0048FBBC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5426 VA:0027EBC4 Base:2162688 Address: 0048FBC4 +Adding breakpoint for DECHash.THash_Snefru128.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4394 BreakPoint at:0048FBC4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5427 VA:0027EBCD Base:2162688 Address: 0048FBCD +Adding breakpoint for DECHash.THash_Snefru128.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4395 BreakPoint at:0048FBCD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5428 VA:0027EBD4 Base:2162688 Address: 0048FBD4 +Adding breakpoint for DECHash.THash_Snefru128.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4396 BreakPoint at:0048FBD4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5429 VA:0027EBDC Base:2162688 Address: 0048FBDC +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +Creating class info for DECHash class THash_Snefru256 +TBreakPoint.Activate: +Activate DECHash.pas line 4407 BreakPoint at:0048FBDC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5430 VA:0027EBE9 Base:2162688 Address: 0048FBE9 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4408 BreakPoint at:0048FBE9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5431 VA:0027EBF2 Base:2162688 Address: 0048FBF2 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4409 BreakPoint at:0048FBF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5432 VA:0027EC05 Base:2162688 Address: 0048FC05 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4410 BreakPoint at:0048FC05 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5433 VA:0027EC18 Base:2162688 Address: 0048FC18 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4411 BreakPoint at:0048FC18 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5434 VA:0027EC20 Base:2162688 Address: 0048FC20 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4412 BreakPoint at:0048FC20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5435 VA:0027EC2D Base:2162688 Address: 0048FC2D +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4413 BreakPoint at:0048FC2D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5436 VA:0027EC4A Base:2162688 Address: 0048FC4A +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4415 BreakPoint at:0048FC4A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5437 VA:0027EC4F Base:2162688 Address: 0048FC4F +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4417 BreakPoint at:0048FC4F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5438 VA:0027EC54 Base:2162688 Address: 0048FC54 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4418 BreakPoint at:0048FC54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5439 VA:0027EC5C Base:2162688 Address: 0048FC5C +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4419 BreakPoint at:0048FC5C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5440 VA:0027EC66 Base:2162688 Address: 0048FC66 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4421 BreakPoint at:0048FC66 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5441 VA:0027EC77 Base:2162688 Address: 0048FC77 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4422 BreakPoint at:0048FC77 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5442 VA:0027EC9C Base:2162688 Address: 0048FC9C +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4423 BreakPoint at:0048FC9C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5443 VA:0027ECB4 Base:2162688 Address: 0048FCB4 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4424 BreakPoint at:0048FCB4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5444 VA:0027ECC5 Base:2162688 Address: 0048FCC5 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4425 BreakPoint at:0048FCC5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5445 VA:0027ECEC Base:2162688 Address: 0048FCEC +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4426 BreakPoint at:0048FCEC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5446 VA:0027ED04 Base:2162688 Address: 0048FD04 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4427 BreakPoint at:0048FD04 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5447 VA:0027ED15 Base:2162688 Address: 0048FD15 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4428 BreakPoint at:0048FD15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5448 VA:0027ED3C Base:2162688 Address: 0048FD3C +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4429 BreakPoint at:0048FD3C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5449 VA:0027ED54 Base:2162688 Address: 0048FD54 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4430 BreakPoint at:0048FD54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5450 VA:0027ED65 Base:2162688 Address: 0048FD65 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4431 BreakPoint at:0048FD65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5451 VA:0027ED8C Base:2162688 Address: 0048FD8C +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4432 BreakPoint at:0048FD8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5452 VA:0027EDA4 Base:2162688 Address: 0048FDA4 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4433 BreakPoint at:0048FDA4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5453 VA:0027EDA8 Base:2162688 Address: 0048FDA8 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4419 BreakPoint at:0048FDA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5454 VA:0027EDB2 Base:2162688 Address: 0048FDB2 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4435 BreakPoint at:0048FDB2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5455 VA:0027EDBF Base:2162688 Address: 0048FDBF +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4436 BreakPoint at:0048FDBF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5456 VA:0027EDCA Base:2162688 Address: 0048FDCA +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4437 BreakPoint at:0048FDCA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5457 VA:0027EDCF Base:2162688 Address: 0048FDCF +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4438 BreakPoint at:0048FDCF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5458 VA:0027EDF9 Base:2162688 Address: 0048FDF9 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4437 BreakPoint at:0048FDF9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5459 VA:0027EDFF Base:2162688 Address: 0048FDFF +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4439 BreakPoint at:0048FDFF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5460 VA:0027EE02 Base:2162688 Address: 0048FE02 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4415 BreakPoint at:0048FE02 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5461 VA:0027EE0C Base:2162688 Address: 0048FE0C +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4440 BreakPoint at:0048FE0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5462 VA:0027EE17 Base:2162688 Address: 0048FE17 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4441 BreakPoint at:0048FE17 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5463 VA:0027EE22 Base:2162688 Address: 0048FE22 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4442 BreakPoint at:0048FE22 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5464 VA:0027EE25 Base:2162688 Address: 0048FE25 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4413 BreakPoint at:0048FE25 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5465 VA:0027EE2E Base:2162688 Address: 0048FE2E +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4443 BreakPoint at:0048FE2E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5466 VA:0027EE33 Base:2162688 Address: 0048FE33 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4444 BreakPoint at:0048FE33 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5467 VA:0027EE57 Base:2162688 Address: 0048FE57 +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4443 BreakPoint at:0048FE57 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5468 VA:0027EE5D Base:2162688 Address: 0048FE5D +Adding breakpoint for DECHash.THash_Snefru256.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4445 BreakPoint at:0048FE5D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5469 VA:0027EE64 Base:2162688 Address: 0048FE64 +Adding breakpoint for DECHash.THash_Snefru256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4449 BreakPoint at:0048FE64 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5470 VA:0027EE6D Base:2162688 Address: 0048FE6D +Adding breakpoint for DECHash.THash_Snefru256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4450 BreakPoint at:0048FE6D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5471 VA:0027EE74 Base:2162688 Address: 0048FE74 +Adding breakpoint for DECHash.THash_Snefru256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4451 BreakPoint at:0048FE74 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5472 VA:0027EE7C Base:2162688 Address: 0048FE7C +Adding breakpoint for DECHash.THash_Snefru256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4454 BreakPoint at:0048FE7C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5473 VA:0027EE85 Base:2162688 Address: 0048FE85 +Adding breakpoint for DECHash.THash_Snefru256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4455 BreakPoint at:0048FE85 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5474 VA:0027EE8C Base:2162688 Address: 0048FE8C +Adding breakpoint for DECHash.THash_Snefru256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4456 BreakPoint at:0048FE8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5475 VA:0027EE94 Base:2162688 Address: 0048FE94 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +Creating class info for DECHash class THash_Sapphire +TBreakPoint.Activate: +Activate DECHash.pas line 4463 BreakPoint at:0048FE94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5476 VA:0027EE9D Base:2162688 Address: 0048FE9D +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4464 BreakPoint at:0048FE9D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5477 VA:0027EEB1 Base:2162688 Address: 0048FEB1 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4465 BreakPoint at:0048FEB1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5478 VA:0027EEBE Base:2162688 Address: 0048FEBE +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4466 BreakPoint at:0048FEBE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5479 VA:0027EECB Base:2162688 Address: 0048FECB +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4467 BreakPoint at:0048FECB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5480 VA:0027EED8 Base:2162688 Address: 0048FED8 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4468 BreakPoint at:0048FED8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5481 VA:0027EEE5 Base:2162688 Address: 0048FEE5 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4469 BreakPoint at:0048FEE5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5482 VA:0027EEF2 Base:2162688 Address: 0048FEF2 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4470 BreakPoint at:0048FEF2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5483 VA:0027EEF7 Base:2162688 Address: 0048FEF7 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4471 BreakPoint at:0048FEF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5484 VA:0027EF0C Base:2162688 Address: 0048FF0C +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4470 BreakPoint at:0048FF0C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5485 VA:0027EF15 Base:2162688 Address: 0048FF15 +Adding breakpoint for DECHash.THash_Sapphire.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4472 BreakPoint at:0048FF15 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5486 VA:0027EF1C Base:2162688 Address: 0048FF1C +Adding breakpoint for DECHash.THash_Sapphire.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4475 BreakPoint at:0048FF1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5487 VA:0027EF28 Base:2162688 Address: 0048FF28 +Adding breakpoint for DECHash.THash_Sapphire.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4479 BreakPoint at:0048FF28 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5488 VA:0027EF2C Base:2162688 Address: 0048FF2C +Adding breakpoint for DECHash.THash_Sapphire.SetDigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4482 BreakPoint at:0048FF2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5489 VA:0027EF38 Base:2162688 Address: 0048FF38 +Adding breakpoint for DECHash.THash_Sapphire.SetDigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4483 BreakPoint at:0048FF38 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5490 VA:0027EF44 Base:2162688 Address: 0048FF44 +Adding breakpoint for DECHash.THash_Sapphire.SetDigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4484 BreakPoint at:0048FF44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5491 VA:0027EF52 Base:2162688 Address: 0048FF52 +Adding breakpoint for DECHash.THash_Sapphire.SetDigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4486 BreakPoint at:0048FF52 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5492 VA:0027EF63 Base:2162688 Address: 0048FF63 +Adding breakpoint for DECHash.THash_Sapphire.SetDigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4487 BreakPoint at:0048FF63 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5493 VA:0027EF68 Base:2162688 Address: 0048FF68 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4492 BreakPoint at:0048FF68 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5494 VA:0027EF72 Base:2162688 Address: 0048FF72 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4493 BreakPoint at:0048FF72 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5495 VA:0027EF79 Base:2162688 Address: 0048FF79 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4494 BreakPoint at:0048FF79 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5496 VA:0027EF8C Base:2162688 Address: 0048FF8C +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4493 BreakPoint at:0048FF8C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5497 VA:0027EF92 Base:2162688 Address: 0048FF92 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4495 BreakPoint at:0048FF92 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5498 VA:0027EFAA Base:2162688 Address: 0048FFAA +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4497 BreakPoint at:0048FFAA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5499 VA:0027EFBC Base:2162688 Address: 0048FFBC +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4498 BreakPoint at:0048FFBC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5500 VA:0027EFD3 Base:2162688 Address: 0048FFD3 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4499 BreakPoint at:0048FFD3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5501 VA:0027EFD6 Base:2162688 Address: 0048FFD6 +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4495 BreakPoint at:0048FFD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5502 VA:0027EFDB Base:2162688 Address: 0048FFDB +Adding breakpoint for DECHash.THash_Sapphire.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4500 BreakPoint at:0048FFDB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5503 VA:0027EFF4 Base:2162688 Address: 0048FFF4 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4507 BreakPoint at:0048FFF4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5504 VA:0027F003 Base:2162688 Address: 00490003 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4508 BreakPoint at:00490003 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5505 VA:0027F009 Base:2162688 Address: 00490009 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4509 BreakPoint at:00490009 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5506 VA:0027F015 Base:2162688 Address: 00490015 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4510 BreakPoint at:00490015 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5507 VA:0027F021 Base:2162688 Address: 00490021 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4511 BreakPoint at:00490021 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5508 VA:0027F02D Base:2162688 Address: 0049002D +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4512 BreakPoint at:0049002D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5509 VA:0027F039 Base:2162688 Address: 00490039 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4513 BreakPoint at:00490039 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5510 VA:0027F045 Base:2162688 Address: 00490045 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4515 BreakPoint at:00490045 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5511 VA:0027F04F Base:2162688 Address: 0049004F +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4517 BreakPoint at:0049004F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5512 VA:0027F052 Base:2162688 Address: 00490052 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4518 BreakPoint at:00490052 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5513 VA:0027F067 Base:2162688 Address: 00490067 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4519 BreakPoint at:00490067 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5514 VA:0027F073 Base:2162688 Address: 00490073 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4520 BreakPoint at:00490073 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5515 VA:0027F080 Base:2162688 Address: 00490080 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4521 BreakPoint at:00490080 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5516 VA:0027F094 Base:2162688 Address: 00490094 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4522 BreakPoint at:00490094 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5517 VA:0027F0A8 Base:2162688 Address: 004900A8 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4523 BreakPoint at:004900A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5518 VA:0027F0BC Base:2162688 Address: 004900BC +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4524 BreakPoint at:004900BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5519 VA:0027F0C9 Base:2162688 Address: 004900C9 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4525 BreakPoint at:004900C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5520 VA:0027F0DE Base:2162688 Address: 004900DE +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4526 BreakPoint at:004900DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5521 VA:0027F104 Base:2162688 Address: 00490104 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4527 BreakPoint at:00490104 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5522 VA:0027F110 Base:2162688 Address: 00490110 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4528 BreakPoint at:00490110 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5523 VA:0027F149 Base:2162688 Address: 00490149 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4515 BreakPoint at:00490149 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5524 VA:0027F153 Base:2162688 Address: 00490153 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4531 BreakPoint at:00490153 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5525 VA:0027F15F Base:2162688 Address: 0049015F +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4532 BreakPoint at:0049015F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5526 VA:0027F16B Base:2162688 Address: 0049016B +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4533 BreakPoint at:0049016B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5527 VA:0027F177 Base:2162688 Address: 00490177 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4534 BreakPoint at:00490177 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5528 VA:0027F183 Base:2162688 Address: 00490183 +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4535 BreakPoint at:00490183 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5529 VA:0027F18F Base:2162688 Address: 0049018F +Adding breakpoint for DECHash.THash_Sapphire.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4536 BreakPoint at:0049018F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5530 VA:0027F194 Base:2162688 Address: 00490194 +Adding breakpoint for DECHash.THash_Sapphire.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4540 BreakPoint at:00490194 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5531 VA:0027F19D Base:2162688 Address: 0049019D +Adding breakpoint for DECHash.THash_Sapphire.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4541 BreakPoint at:0049019D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5532 VA:0027F1A8 Base:2162688 Address: 004901A8 +Adding breakpoint for DECHash.THash_Sapphire.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4542 BreakPoint at:004901A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5533 VA:0027F1B0 Base:2162688 Address: 004901B0 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4547 BreakPoint at:004901B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5534 VA:0027F1BC Base:2162688 Address: 004901BC +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4548 BreakPoint at:004901BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5535 VA:0027F1C8 Base:2162688 Address: 004901C8 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4549 BreakPoint at:004901C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5536 VA:0027F1D7 Base:2162688 Address: 004901D7 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4551 BreakPoint at:004901D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5537 VA:0027F1E2 Base:2162688 Address: 004901E2 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4553 BreakPoint at:004901E2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5538 VA:0027F1FC Base:2162688 Address: 004901FC +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4554 BreakPoint at:004901FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5539 VA:0027F202 Base:2162688 Address: 00490202 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4555 BreakPoint at:00490202 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5540 VA:0027F217 Base:2162688 Address: 00490217 +Adding breakpoint for DECHash.THash_Sapphire.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4556 BreakPoint at:00490217 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5541 VA:0027F21C Base:2162688 Address: 0049021C +Adding breakpoint for DECHash.THash_Sapphire.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4559 BreakPoint at:0049021C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5542 VA:0027F225 Base:2162688 Address: 00490225 +Adding breakpoint for DECHash.THash_Sapphire.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4560 BreakPoint at:00490225 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5543 VA:0027F22C Base:2162688 Address: 0049022C +Adding breakpoint for DECHash.THash_Sapphire.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4561 BreakPoint at:0049022C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5544 VA:0027F234 Base:2162688 Address: 00490234 +Adding breakpoint for DECHash.THash_Sapphire.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4564 BreakPoint at:00490234 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5545 VA:0027F23D Base:2162688 Address: 0049023D +Adding breakpoint for DECHash.THash_Sapphire.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4565 BreakPoint at:0049023D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5546 VA:0027F244 Base:2162688 Address: 00490244 +Adding breakpoint for DECHash.THash_Sapphire.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4566 BreakPoint at:00490244 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5547 VA:0027F24C Base:2162688 Address: 0049024C +Adding breakpoint for DECHash.THash_Keccak_224.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Keccak_224 +TBreakPoint.Activate: +Activate DECHash.pas line 4574 BreakPoint at:0049024C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5548 VA:0027F255 Base:2162688 Address: 00490255 +Adding breakpoint for DECHash.THash_Keccak_224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4575 BreakPoint at:00490255 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5549 VA:0027F25C Base:2162688 Address: 0049025C +Adding breakpoint for DECHash.THash_Keccak_224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4576 BreakPoint at:0049025C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5550 VA:0027F264 Base:2162688 Address: 00490264 +Adding breakpoint for DECHash.THash_Keccak_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4579 BreakPoint at:00490264 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5551 VA:0027F26D Base:2162688 Address: 0049026D +Adding breakpoint for DECHash.THash_Keccak_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4580 BreakPoint at:0049026D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5552 VA:0027F274 Base:2162688 Address: 00490274 +Adding breakpoint for DECHash.THash_Keccak_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4581 BreakPoint at:00490274 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5553 VA:0027F27C Base:2162688 Address: 0049027C +Adding breakpoint for DECHash.THash_Keccak_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4584 BreakPoint at:0049027C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5554 VA:0027F283 Base:2162688 Address: 00490283 +Adding breakpoint for DECHash.THash_Keccak_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4585 BreakPoint at:00490283 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5555 VA:0027F28B Base:2162688 Address: 0049028B +Adding breakpoint for DECHash.THash_Keccak_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4587 BreakPoint at:0049028B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5556 VA:0027F295 Base:2162688 Address: 00490295 +Adding breakpoint for DECHash.THash_Keccak_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4588 BreakPoint at:00490295 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5557 VA:0027F298 Base:2162688 Address: 00490298 +Adding breakpoint for DECHash.THash_Keccak_256.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Keccak_256 +TBreakPoint.Activate: +Activate DECHash.pas line 4593 BreakPoint at:00490298 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5558 VA:0027F2A1 Base:2162688 Address: 004902A1 +Adding breakpoint for DECHash.THash_Keccak_256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4594 BreakPoint at:004902A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5559 VA:0027F2A8 Base:2162688 Address: 004902A8 +Adding breakpoint for DECHash.THash_Keccak_256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4595 BreakPoint at:004902A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5560 VA:0027F2B0 Base:2162688 Address: 004902B0 +Adding breakpoint for DECHash.THash_Keccak_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4598 BreakPoint at:004902B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5561 VA:0027F2B9 Base:2162688 Address: 004902B9 +Adding breakpoint for DECHash.THash_Keccak_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4599 BreakPoint at:004902B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5562 VA:0027F2C0 Base:2162688 Address: 004902C0 +Adding breakpoint for DECHash.THash_Keccak_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4600 BreakPoint at:004902C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5563 VA:0027F2C8 Base:2162688 Address: 004902C8 +Adding breakpoint for DECHash.THash_Keccak_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4603 BreakPoint at:004902C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5564 VA:0027F2CF Base:2162688 Address: 004902CF +Adding breakpoint for DECHash.THash_Keccak_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4604 BreakPoint at:004902CF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5565 VA:0027F2D7 Base:2162688 Address: 004902D7 +Adding breakpoint for DECHash.THash_Keccak_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4606 BreakPoint at:004902D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5566 VA:0027F2E1 Base:2162688 Address: 004902E1 +Adding breakpoint for DECHash.THash_Keccak_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4607 BreakPoint at:004902E1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5567 VA:0027F2E4 Base:2162688 Address: 004902E4 +Adding breakpoint for DECHash.THash_Keccak_384.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Keccak_384 +TBreakPoint.Activate: +Activate DECHash.pas line 4612 BreakPoint at:004902E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5568 VA:0027F2ED Base:2162688 Address: 004902ED +Adding breakpoint for DECHash.THash_Keccak_384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4613 BreakPoint at:004902ED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5569 VA:0027F2F4 Base:2162688 Address: 004902F4 +Adding breakpoint for DECHash.THash_Keccak_384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4614 BreakPoint at:004902F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5570 VA:0027F2FC Base:2162688 Address: 004902FC +Adding breakpoint for DECHash.THash_Keccak_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4617 BreakPoint at:004902FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5571 VA:0027F305 Base:2162688 Address: 00490305 +Adding breakpoint for DECHash.THash_Keccak_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4618 BreakPoint at:00490305 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5572 VA:0027F30C Base:2162688 Address: 0049030C +Adding breakpoint for DECHash.THash_Keccak_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4619 BreakPoint at:0049030C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5573 VA:0027F314 Base:2162688 Address: 00490314 +Adding breakpoint for DECHash.THash_Keccak_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4622 BreakPoint at:00490314 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5574 VA:0027F31B Base:2162688 Address: 0049031B +Adding breakpoint for DECHash.THash_Keccak_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4623 BreakPoint at:0049031B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5575 VA:0027F323 Base:2162688 Address: 00490323 +Adding breakpoint for DECHash.THash_Keccak_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4625 BreakPoint at:00490323 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5576 VA:0027F32D Base:2162688 Address: 0049032D +Adding breakpoint for DECHash.THash_Keccak_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4626 BreakPoint at:0049032D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5577 VA:0027F330 Base:2162688 Address: 00490330 +Adding breakpoint for DECHash.THash_Keccak_512.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Keccak_512 +TBreakPoint.Activate: +Activate DECHash.pas line 4631 BreakPoint at:00490330 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5578 VA:0027F339 Base:2162688 Address: 00490339 +Adding breakpoint for DECHash.THash_Keccak_512.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4632 BreakPoint at:00490339 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5579 VA:0027F340 Base:2162688 Address: 00490340 +Adding breakpoint for DECHash.THash_Keccak_512.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4633 BreakPoint at:00490340 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5580 VA:0027F348 Base:2162688 Address: 00490348 +Adding breakpoint for DECHash.THash_Keccak_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4636 BreakPoint at:00490348 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5581 VA:0027F351 Base:2162688 Address: 00490351 +Adding breakpoint for DECHash.THash_Keccak_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4637 BreakPoint at:00490351 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5582 VA:0027F358 Base:2162688 Address: 00490358 +Adding breakpoint for DECHash.THash_Keccak_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4638 BreakPoint at:00490358 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5583 VA:0027F360 Base:2162688 Address: 00490360 +Adding breakpoint for DECHash.THash_Keccak_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4641 BreakPoint at:00490360 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5584 VA:0027F367 Base:2162688 Address: 00490367 +Adding breakpoint for DECHash.THash_Keccak_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4642 BreakPoint at:00490367 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5585 VA:0027F36F Base:2162688 Address: 0049036F +Adding breakpoint for DECHash.THash_Keccak_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4644 BreakPoint at:0049036F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5586 VA:0027F379 Base:2162688 Address: 00490379 +Adding breakpoint for DECHash.THash_Keccak_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4645 BreakPoint at:00490379 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5587 VA:0027F37C Base:2162688 Address: 0049037C +Adding breakpoint for DECHash.THash_SHA3_224.BlockSize in DECHash.pas +Creating class info for DECHash class THash_SHA3_224 +TBreakPoint.Activate: +Activate DECHash.pas line 4650 BreakPoint at:0049037C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5588 VA:0027F385 Base:2162688 Address: 00490385 +Adding breakpoint for DECHash.THash_SHA3_224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4651 BreakPoint at:00490385 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5589 VA:0027F38C Base:2162688 Address: 0049038C +Adding breakpoint for DECHash.THash_SHA3_224.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4652 BreakPoint at:0049038C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5590 VA:0027F394 Base:2162688 Address: 00490394 +Adding breakpoint for DECHash.THash_SHA3_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4655 BreakPoint at:00490394 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5591 VA:0027F39D Base:2162688 Address: 0049039D +Adding breakpoint for DECHash.THash_SHA3_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4656 BreakPoint at:0049039D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5592 VA:0027F3A4 Base:2162688 Address: 004903A4 +Adding breakpoint for DECHash.THash_SHA3_224.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4657 BreakPoint at:004903A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5593 VA:0027F3AC Base:2162688 Address: 004903AC +Adding breakpoint for DECHash.THash_SHA3_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4660 BreakPoint at:004903AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5594 VA:0027F3B3 Base:2162688 Address: 004903B3 +Adding breakpoint for DECHash.THash_SHA3_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4661 BreakPoint at:004903B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5595 VA:0027F3BB Base:2162688 Address: 004903BB +Adding breakpoint for DECHash.THash_SHA3_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4663 BreakPoint at:004903BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5596 VA:0027F3CB Base:2162688 Address: 004903CB +Adding breakpoint for DECHash.THash_SHA3_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4664 BreakPoint at:004903CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5597 VA:0027F3D7 Base:2162688 Address: 004903D7 +Adding breakpoint for DECHash.THash_SHA3_224.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4665 BreakPoint at:004903D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5598 VA:0027F3DC Base:2162688 Address: 004903DC +Adding breakpoint for DECHash.THash_SHA3_256.BlockSize in DECHash.pas +Creating class info for DECHash class THash_SHA3_256 +TBreakPoint.Activate: +Activate DECHash.pas line 4670 BreakPoint at:004903DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5599 VA:0027F3E5 Base:2162688 Address: 004903E5 +Adding breakpoint for DECHash.THash_SHA3_256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4671 BreakPoint at:004903E5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5600 VA:0027F3EC Base:2162688 Address: 004903EC +Adding breakpoint for DECHash.THash_SHA3_256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4672 BreakPoint at:004903EC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5601 VA:0027F3F4 Base:2162688 Address: 004903F4 +Adding breakpoint for DECHash.THash_SHA3_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4675 BreakPoint at:004903F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5602 VA:0027F3FD Base:2162688 Address: 004903FD +Adding breakpoint for DECHash.THash_SHA3_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4676 BreakPoint at:004903FD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5603 VA:0027F404 Base:2162688 Address: 00490404 +Adding breakpoint for DECHash.THash_SHA3_256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4677 BreakPoint at:00490404 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5604 VA:0027F40C Base:2162688 Address: 0049040C +Adding breakpoint for DECHash.THash_SHA3_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4680 BreakPoint at:0049040C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5605 VA:0027F413 Base:2162688 Address: 00490413 +Adding breakpoint for DECHash.THash_SHA3_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4681 BreakPoint at:00490413 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5606 VA:0027F41B Base:2162688 Address: 0049041B +Adding breakpoint for DECHash.THash_SHA3_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4683 BreakPoint at:0049041B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5607 VA:0027F42B Base:2162688 Address: 0049042B +Adding breakpoint for DECHash.THash_SHA3_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4684 BreakPoint at:0049042B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5608 VA:0027F437 Base:2162688 Address: 00490437 +Adding breakpoint for DECHash.THash_SHA3_256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4685 BreakPoint at:00490437 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5609 VA:0027F43C Base:2162688 Address: 0049043C +Adding breakpoint for DECHash.THash_SHA3_384.BlockSize in DECHash.pas +Creating class info for DECHash class THash_SHA3_384 +TBreakPoint.Activate: +Activate DECHash.pas line 4690 BreakPoint at:0049043C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5610 VA:0027F445 Base:2162688 Address: 00490445 +Adding breakpoint for DECHash.THash_SHA3_384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4691 BreakPoint at:00490445 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5611 VA:0027F44C Base:2162688 Address: 0049044C +Adding breakpoint for DECHash.THash_SHA3_384.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4692 BreakPoint at:0049044C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5612 VA:0027F454 Base:2162688 Address: 00490454 +Adding breakpoint for DECHash.THash_SHA3_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4695 BreakPoint at:00490454 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5613 VA:0027F45D Base:2162688 Address: 0049045D +Adding breakpoint for DECHash.THash_SHA3_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4696 BreakPoint at:0049045D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5614 VA:0027F464 Base:2162688 Address: 00490464 +Adding breakpoint for DECHash.THash_SHA3_384.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4697 BreakPoint at:00490464 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5615 VA:0027F46C Base:2162688 Address: 0049046C +Adding breakpoint for DECHash.THash_SHA3_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4700 BreakPoint at:0049046C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5616 VA:0027F473 Base:2162688 Address: 00490473 +Adding breakpoint for DECHash.THash_SHA3_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4701 BreakPoint at:00490473 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5617 VA:0027F47B Base:2162688 Address: 0049047B +Adding breakpoint for DECHash.THash_SHA3_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4703 BreakPoint at:0049047B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5618 VA:0027F48B Base:2162688 Address: 0049048B +Adding breakpoint for DECHash.THash_SHA3_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4704 BreakPoint at:0049048B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5619 VA:0027F497 Base:2162688 Address: 00490497 +Adding breakpoint for DECHash.THash_SHA3_384.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4705 BreakPoint at:00490497 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5620 VA:0027F49C Base:2162688 Address: 0049049C +Adding breakpoint for DECHash.THash_SHA3_512.BlockSize in DECHash.pas +Creating class info for DECHash class THash_SHA3_512 +TBreakPoint.Activate: +Activate DECHash.pas line 4710 BreakPoint at:0049049C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5621 VA:0027F4A5 Base:2162688 Address: 004904A5 +Adding breakpoint for DECHash.THash_SHA3_512.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4711 BreakPoint at:004904A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5622 VA:0027F4AC Base:2162688 Address: 004904AC +Adding breakpoint for DECHash.THash_SHA3_512.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4712 BreakPoint at:004904AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5623 VA:0027F4B4 Base:2162688 Address: 004904B4 +Adding breakpoint for DECHash.THash_SHA3_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4715 BreakPoint at:004904B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5624 VA:0027F4BD Base:2162688 Address: 004904BD +Adding breakpoint for DECHash.THash_SHA3_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4716 BreakPoint at:004904BD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5625 VA:0027F4C4 Base:2162688 Address: 004904C4 +Adding breakpoint for DECHash.THash_SHA3_512.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4717 BreakPoint at:004904C4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5626 VA:0027F4CC Base:2162688 Address: 004904CC +Adding breakpoint for DECHash.THash_SHA3_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4720 BreakPoint at:004904CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5627 VA:0027F4D3 Base:2162688 Address: 004904D3 +Adding breakpoint for DECHash.THash_SHA3_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4721 BreakPoint at:004904D3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5628 VA:0027F4DB Base:2162688 Address: 004904DB +Adding breakpoint for DECHash.THash_SHA3_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4723 BreakPoint at:004904DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5629 VA:0027F4EB Base:2162688 Address: 004904EB +Adding breakpoint for DECHash.THash_SHA3_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4724 BreakPoint at:004904EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5630 VA:0027F4F7 Base:2162688 Address: 004904F7 +Adding breakpoint for DECHash.THash_SHA3_512.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4725 BreakPoint at:004904F7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5631 VA:0027F4FC Base:2162688 Address: 004904FC +Adding breakpoint for DECHash.THash_Shake128.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Shake128 +TBreakPoint.Activate: +Activate DECHash.pas line 4730 BreakPoint at:004904FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5632 VA:0027F505 Base:2162688 Address: 00490505 +Adding breakpoint for DECHash.THash_Shake128.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4731 BreakPoint at:00490505 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5633 VA:0027F50C Base:2162688 Address: 0049050C +Adding breakpoint for DECHash.THash_Shake128.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4732 BreakPoint at:0049050C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5634 VA:0027F514 Base:2162688 Address: 00490514 +Adding breakpoint for DECHash.THash_Shake128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4735 BreakPoint at:00490514 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5635 VA:0027F51D Base:2162688 Address: 0049051D +Adding breakpoint for DECHash.THash_Shake128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4737 BreakPoint at:0049051D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5636 VA:0027F522 Base:2162688 Address: 00490522 +Adding breakpoint for DECHash.THash_Shake128.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4738 BreakPoint at:00490522 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5637 VA:0027F52C Base:2162688 Address: 0049052C +Adding breakpoint for DECHash.THash_Shake128.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4741 BreakPoint at:0049052C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5638 VA:0027F533 Base:2162688 Address: 00490533 +Adding breakpoint for DECHash.THash_Shake128.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4742 BreakPoint at:00490533 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5639 VA:0027F53B Base:2162688 Address: 0049053B +Adding breakpoint for DECHash.THash_Shake128.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4744 BreakPoint at:0049053B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5640 VA:0027F54B Base:2162688 Address: 0049054B +Adding breakpoint for DECHash.THash_Shake128.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4745 BreakPoint at:0049054B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5641 VA:0027F550 Base:2162688 Address: 00490550 +Adding breakpoint for DECHash.THash_Shake256.BlockSize in DECHash.pas +Creating class info for DECHash class THash_Shake256 +TBreakPoint.Activate: +Activate DECHash.pas line 4750 BreakPoint at:00490550 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5642 VA:0027F559 Base:2162688 Address: 00490559 +Adding breakpoint for DECHash.THash_Shake256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4751 BreakPoint at:00490559 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5643 VA:0027F560 Base:2162688 Address: 00490560 +Adding breakpoint for DECHash.THash_Shake256.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4752 BreakPoint at:00490560 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5644 VA:0027F568 Base:2162688 Address: 00490568 +Adding breakpoint for DECHash.THash_Shake256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4755 BreakPoint at:00490568 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5645 VA:0027F571 Base:2162688 Address: 00490571 +Adding breakpoint for DECHash.THash_Shake256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4757 BreakPoint at:00490571 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5646 VA:0027F576 Base:2162688 Address: 00490576 +Adding breakpoint for DECHash.THash_Shake256.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4758 BreakPoint at:00490576 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5647 VA:0027F580 Base:2162688 Address: 00490580 +Adding breakpoint for DECHash.THash_Shake256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4761 BreakPoint at:00490580 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5648 VA:0027F587 Base:2162688 Address: 00490587 +Adding breakpoint for DECHash.THash_Shake256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4762 BreakPoint at:00490587 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5649 VA:0027F58F Base:2162688 Address: 0049058F +Adding breakpoint for DECHash.THash_Shake256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4764 BreakPoint at:0049058F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5650 VA:0027F59F Base:2162688 Address: 0049059F +Adding breakpoint for DECHash.THash_Shake256.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4765 BreakPoint at:0049059F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5651 VA:0027F5A4 Base:2162688 Address: 004905A4 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +Creating class info for DECHash class THash_SHA3Base +TBreakPoint.Activate: +Activate DECHash.pas line 4772 BreakPoint at:004905A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5652 VA:0027F5D2 Base:2162688 Address: 004905D2 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4773 BreakPoint at:004905D2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5653 VA:0027F5DE Base:2162688 Address: 004905DE +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4774 BreakPoint at:004905DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5654 VA:0027F5EE Base:2162688 Address: 004905EE +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4777 BreakPoint at:004905EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5655 VA:0027F5F4 Base:2162688 Address: 004905F4 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4779 BreakPoint at:004905F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5656 VA:0027F606 Base:2162688 Address: 00490606 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4781 BreakPoint at:00490606 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5657 VA:0027F633 Base:2162688 Address: 00490633 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4783 BreakPoint at:00490633 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5658 VA:0027F6A5 Base:2162688 Address: 004906A5 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4787 BreakPoint at:004906A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5659 VA:0027F6B3 Base:2162688 Address: 004906B3 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4788 BreakPoint at:004906B3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5660 VA:0027F6C1 Base:2162688 Address: 004906C1 +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4790 BreakPoint at:004906C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5661 VA:0027F6CD Base:2162688 Address: 004906CD +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4791 BreakPoint at:004906CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5662 VA:0027F6DB Base:2162688 Address: 004906DB +Adding breakpoint for DECHash.THash_SHA3Base.InitSponge in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4792 BreakPoint at:004906DB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5663 VA:0027F75C Base:2162688 Address: 0049075C +Adding breakpoint for DECHash.THash_SHA3Base.KeccakAbsorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4795 BreakPoint at:0049075C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5664 VA:0027F76B Base:2162688 Address: 0049076B +Adding breakpoint for DECHash.THash_SHA3Base.KeccakAbsorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4796 BreakPoint at:0049076B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5665 VA:0027F77D Base:2162688 Address: 0049077D +Adding breakpoint for DECHash.THash_SHA3Base.KeccakAbsorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4797 BreakPoint at:0049077D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5666 VA:0027F788 Base:2162688 Address: 00490788 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakAbsorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4798 BreakPoint at:00490788 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5667 VA:0027F790 Base:2162688 Address: 00490790 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4818 BreakPoint at:00490790 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5668 VA:0027F79F Base:2162688 Address: 0049079F +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4819 BreakPoint at:0049079F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5669 VA:0027F7A5 Base:2162688 Address: 004907A5 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4820 BreakPoint at:004907A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5670 VA:0027F7AA Base:2162688 Address: 004907AA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4822 BreakPoint at:004907AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5671 VA:0027F7E2 Base:2162688 Address: 004907E2 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4823 BreakPoint at:004907E2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5672 VA:0027F821 Base:2162688 Address: 00490821 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4824 BreakPoint at:00490821 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5673 VA:0027F860 Base:2162688 Address: 00490860 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4825 BreakPoint at:00490860 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5674 VA:0027F89F Base:2162688 Address: 0049089F +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4826 BreakPoint at:0049089F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5675 VA:0027F8DE Base:2162688 Address: 004908DE +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4828 BreakPoint at:004908DE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5676 VA:0027F90A Base:2162688 Address: 0049090A +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4829 BreakPoint at:0049090A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5677 VA:0027F936 Base:2162688 Address: 00490936 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4830 BreakPoint at:00490936 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5678 VA:0027F962 Base:2162688 Address: 00490962 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4831 BreakPoint at:00490962 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5679 VA:0027F98E Base:2162688 Address: 0049098E +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4832 BreakPoint at:0049098E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5680 VA:0027F9BA Base:2162688 Address: 004909BA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4834 BreakPoint at:004909BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5681 VA:0027F9D4 Base:2162688 Address: 004909D4 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4835 BreakPoint at:004909D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5682 VA:0027FA16 Base:2162688 Address: 00490A16 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4836 BreakPoint at:00490A16 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5683 VA:0027FA58 Base:2162688 Address: 00490A58 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4837 BreakPoint at:00490A58 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5684 VA:0027FAA0 Base:2162688 Address: 00490AA0 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4838 BreakPoint at:00490AA0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5685 VA:0027FAF7 Base:2162688 Address: 00490AF7 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4839 BreakPoint at:00490AF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5686 VA:0027FB48 Base:2162688 Address: 00490B48 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4840 BreakPoint at:00490B48 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5687 VA:0027FB99 Base:2162688 Address: 00490B99 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4841 BreakPoint at:00490B99 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5688 VA:0027FBEA Base:2162688 Address: 00490BEA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4842 BreakPoint at:00490BEA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5689 VA:0027FC41 Base:2162688 Address: 00490C41 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4843 BreakPoint at:00490C41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5690 VA:0027FC98 Base:2162688 Address: 00490C98 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4844 BreakPoint at:00490C98 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5691 VA:0027FCE8 Base:2162688 Address: 00490CE8 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4845 BreakPoint at:00490CE8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5692 VA:0027FD39 Base:2162688 Address: 00490D39 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4846 BreakPoint at:00490D39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5693 VA:0027FD8A Base:2162688 Address: 00490D8A +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4847 BreakPoint at:00490D8A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5694 VA:0027FDE1 Base:2162688 Address: 00490DE1 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4848 BreakPoint at:00490DE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5695 VA:0027FE38 Base:2162688 Address: 00490E38 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4849 BreakPoint at:00490E38 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5696 VA:0027FE89 Base:2162688 Address: 00490E89 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4850 BreakPoint at:00490E89 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5697 VA:0027FEDA Base:2162688 Address: 00490EDA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4851 BreakPoint at:00490EDA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5698 VA:0027FF2B Base:2162688 Address: 00490F2B +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4852 BreakPoint at:00490F2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5699 VA:0027FF82 Base:2162688 Address: 00490F82 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4853 BreakPoint at:00490F82 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5700 VA:0027FFD9 Base:2162688 Address: 00490FD9 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4854 BreakPoint at:00490FD9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5701 VA:0028002A Base:2162688 Address: 0049102A +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4855 BreakPoint at:0049102A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5702 VA:0028007B Base:2162688 Address: 0049107B +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4856 BreakPoint at:0049107B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5703 VA:002800CC Base:2162688 Address: 004910CC +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4857 BreakPoint at:004910CC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5704 VA:0028011D Base:2162688 Address: 0049111D +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4858 BreakPoint at:0049111D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5705 VA:00280174 Base:2162688 Address: 00491174 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4860 BreakPoint at:00491174 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5706 VA:002801A4 Base:2162688 Address: 004911A4 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4861 BreakPoint at:004911A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5707 VA:002801D5 Base:2162688 Address: 004911D5 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4862 BreakPoint at:004911D5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5708 VA:00280206 Base:2162688 Address: 00491206 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4863 BreakPoint at:00491206 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5709 VA:00280237 Base:2162688 Address: 00491237 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4864 BreakPoint at:00491237 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5710 VA:00280268 Base:2162688 Address: 00491268 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4865 BreakPoint at:00491268 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5711 VA:00280299 Base:2162688 Address: 00491299 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4866 BreakPoint at:00491299 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5712 VA:002802CA Base:2162688 Address: 004912CA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4867 BreakPoint at:004912CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5713 VA:002802FB Base:2162688 Address: 004912FB +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4868 BreakPoint at:004912FB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5714 VA:0028032C Base:2162688 Address: 0049132C +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4869 BreakPoint at:0049132C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5715 VA:0028035D Base:2162688 Address: 0049135D +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4870 BreakPoint at:0049135D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5716 VA:0028038E Base:2162688 Address: 0049138E +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4871 BreakPoint at:0049138E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5717 VA:002803BF Base:2162688 Address: 004913BF +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4872 BreakPoint at:004913BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5718 VA:002803F0 Base:2162688 Address: 004913F0 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4873 BreakPoint at:004913F0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5719 VA:00280421 Base:2162688 Address: 00491421 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4874 BreakPoint at:00491421 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5720 VA:00280452 Base:2162688 Address: 00491452 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4875 BreakPoint at:00491452 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5721 VA:00280483 Base:2162688 Address: 00491483 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4876 BreakPoint at:00491483 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5722 VA:002804BA Base:2162688 Address: 004914BA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4877 BreakPoint at:004914BA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5723 VA:002804F1 Base:2162688 Address: 004914F1 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4878 BreakPoint at:004914F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5724 VA:00280528 Base:2162688 Address: 00491528 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4879 BreakPoint at:00491528 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5725 VA:0028055F Base:2162688 Address: 0049155F +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4880 BreakPoint at:0049155F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5726 VA:00280596 Base:2162688 Address: 00491596 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4881 BreakPoint at:00491596 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5727 VA:002805CD Base:2162688 Address: 004915CD +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4882 BreakPoint at:004915CD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5728 VA:00280604 Base:2162688 Address: 00491604 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4883 BreakPoint at:00491604 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5729 VA:0028063B Base:2162688 Address: 0049163B +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4884 BreakPoint at:0049163B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5730 VA:00280672 Base:2162688 Address: 00491672 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4886 BreakPoint at:00491672 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5731 VA:0028069D Base:2162688 Address: 0049169D +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4887 BreakPoint at:0049169D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5732 VA:002806A0 Base:2162688 Address: 004916A0 +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4820 BreakPoint at:004916A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5733 VA:002806AA Base:2162688 Address: 004916AA +Adding breakpoint for DECHash.THash_SHA3Base.KeccakPermutation in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4888 BreakPoint at:004916AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5734 VA:002806B0 Base:2162688 Address: 004916B0 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4935 BreakPoint at:004916B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5735 VA:002806B9 Base:2162688 Address: 004916B9 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4937 BreakPoint at:004916B9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5736 VA:002806DF Base:2162688 Address: 004916DF +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4939 BreakPoint at:004916DF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5737 VA:002806EF Base:2162688 Address: 004916EF +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4940 BreakPoint at:004916EF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5738 VA:00280747 Base:2162688 Address: 00491747 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4942 BreakPoint at:00491747 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5739 VA:0028074F Base:2162688 Address: 0049174F +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4943 BreakPoint at:0049174F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5740 VA:00280770 Base:2162688 Address: 00491770 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4947 BreakPoint at:00491770 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5741 VA:00280780 Base:2162688 Address: 00491780 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4948 BreakPoint at:00491780 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5742 VA:002807E1 Base:2162688 Address: 004917E1 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4950 BreakPoint at:004917E1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5743 VA:00280839 Base:2162688 Address: 00491839 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4954 BreakPoint at:00491839 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5744 VA:0028085A Base:2162688 Address: 0049185A +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4955 BreakPoint at:0049185A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5745 VA:002808BB Base:2162688 Address: 004918BB +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4957 BreakPoint at:004918BB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5746 VA:002808C3 Base:2162688 Address: 004918C3 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4958 BreakPoint at:004918C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5747 VA:002808E8 Base:2162688 Address: 004918E8 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4961 BreakPoint at:004918E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5748 VA:002808FC Base:2162688 Address: 004918FC +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4962 BreakPoint at:004918FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5749 VA:00280906 Base:2162688 Address: 00491906 +Adding breakpoint for DECHash.THash_SHA3Base.PadAndSwitchToSqueezingPhase in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4963 BreakPoint at:00491906 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5750 VA:0028090C Base:2162688 Address: 0049190C +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4969 BreakPoint at:0049190C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5751 VA:0028092F Base:2162688 Address: 0049192F +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4970 BreakPoint at:0049192F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5752 VA:0028093B Base:2162688 Address: 0049193B +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4971 BreakPoint at:0049193B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5753 VA:00280943 Base:2162688 Address: 00491943 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4974 BreakPoint at:00491943 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5754 VA:00280949 Base:2162688 Address: 00491949 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4975 BreakPoint at:00491949 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5755 VA:00280986 Base:2162688 Address: 00491986 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4978 BreakPoint at:00491986 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5756 VA:0028098B Base:2162688 Address: 0049198B +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4979 BreakPoint at:0049198B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5757 VA:00280997 Base:2162688 Address: 00491997 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4981 BreakPoint at:00491997 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5758 VA:002809A4 Base:2162688 Address: 004919A4 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4983 BreakPoint at:004919A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5759 VA:002809B2 Base:2162688 Address: 004919B2 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4984 BreakPoint at:004919B2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5760 VA:002809D7 Base:2162688 Address: 004919D7 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4986 BreakPoint at:004919D7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5761 VA:002809EB Base:2162688 Address: 004919EB +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4989 BreakPoint at:004919EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5762 VA:00280A0F Base:2162688 Address: 00491A0F +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4990 BreakPoint at:00491A0F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5763 VA:00280A24 Base:2162688 Address: 00491A24 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4991 BreakPoint at:00491A24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5764 VA:00280A4B Base:2162688 Address: 00491A4B +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4993 BreakPoint at:00491A4B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5765 VA:00280ABE Base:2162688 Address: 00491ABE +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4995 BreakPoint at:00491ABE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5766 VA:00280AD3 Base:2162688 Address: 00491AD3 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4996 BreakPoint at:00491AD3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5767 VA:00280AE1 Base:2162688 Address: 00491AE1 +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4979 BreakPoint at:00491AE1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5768 VA:00280AED Base:2162688 Address: 00491AED +Adding breakpoint for DECHash.THash_SHA3Base.Squeeze in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 4998 BreakPoint at:00491AED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5769 VA:00280B2C Base:2162688 Address: 00491B2C +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5004 BreakPoint at:00491B2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5770 VA:00280B3B Base:2162688 Address: 00491B3B +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5005 BreakPoint at:00491B3B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5771 VA:00280B41 Base:2162688 Address: 00491B41 +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5006 BreakPoint at:00491B41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5772 VA:00280B56 Base:2162688 Address: 00491B56 +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5007 BreakPoint at:00491B56 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5773 VA:00280B6E Base:2162688 Address: 00491B6E +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5008 BreakPoint at:00491B6E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5774 VA:00280B72 Base:2162688 Address: 00491B72 +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5009 BreakPoint at:00491B72 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5775 VA:00280B76 Base:2162688 Address: 00491B76 +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5010 BreakPoint at:00491B76 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5776 VA:00280B79 Base:2162688 Address: 00491B79 +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5006 BreakPoint at:00491B79 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5777 VA:00280B7F Base:2162688 Address: 00491B7F +Adding breakpoint for DECHash.THash_SHA3Base.XORIntoState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5011 BreakPoint at:00491B7F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5778 VA:00280B88 Base:2162688 Address: 00491B88 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5019 BreakPoint at:00491B88 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5779 VA:00280BAE Base:2162688 Address: 00491BAE +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5022 BreakPoint at:00491BAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5780 VA:00280BC6 Base:2162688 Address: 00491BC6 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5024 BreakPoint at:00491BC6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5781 VA:00280C1B Base:2162688 Address: 00491C1B +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5029 BreakPoint at:00491C1B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5782 VA:00280C20 Base:2162688 Address: 00491C20 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5031 BreakPoint at:00491C20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5783 VA:00280C2C Base:2162688 Address: 00491C2C +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5033 BreakPoint at:00491C2C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5784 VA:00280C6F Base:2162688 Address: 00491C6F +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5036 BreakPoint at:00491C6F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5785 VA:00280C8E Base:2162688 Address: 00491C8E +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5037 BreakPoint at:00491C8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5786 VA:00280CB0 Base:2162688 Address: 00491CB0 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5038 BreakPoint at:00491CB0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5787 VA:00280CB5 Base:2162688 Address: 00491CB5 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5039 BreakPoint at:00491CB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5788 VA:00280CBD Base:2162688 Address: 00491CBD +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5041 BreakPoint at:00491CBD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5789 VA:00280CDC Base:2162688 Address: 00491CDC +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5042 BreakPoint at:00491CDC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5790 VA:00280CE7 Base:2162688 Address: 00491CE7 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5043 BreakPoint at:00491CE7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5791 VA:00280CF7 Base:2162688 Address: 00491CF7 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5039 BreakPoint at:00491CF7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5792 VA:00280CFF Base:2162688 Address: 00491CFF +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5045 BreakPoint at:00491CFF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5793 VA:00280D26 Base:2162688 Address: 00491D26 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5049 BreakPoint at:00491D26 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5794 VA:00280D36 Base:2162688 Address: 00491D36 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5050 BreakPoint at:00491D36 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5795 VA:00280D58 Base:2162688 Address: 00491D58 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5051 BreakPoint at:00491D58 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5796 VA:00280D78 Base:2162688 Address: 00491D78 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5053 BreakPoint at:00491D78 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5797 VA:00280D81 Base:2162688 Address: 00491D81 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5054 BreakPoint at:00491D81 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5798 VA:00280D8E Base:2162688 Address: 00491D8E +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5055 BreakPoint at:00491D8E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5799 VA:00280DE2 Base:2162688 Address: 00491DE2 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5056 BreakPoint at:00491DE2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5800 VA:00280DF6 Base:2162688 Address: 00491DF6 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5057 BreakPoint at:00491DF6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5801 VA:00280E03 Base:2162688 Address: 00491E03 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5058 BreakPoint at:00491E03 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5802 VA:00280E19 Base:2162688 Address: 00491E19 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5059 BreakPoint at:00491E19 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5803 VA:00280E21 Base:2162688 Address: 00491E21 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5061 BreakPoint at:00491E21 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5804 VA:00280E2B Base:2162688 Address: 00491E2B +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5064 BreakPoint at:00491E2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5805 VA:00280E92 Base:2162688 Address: 00491E92 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5066 BreakPoint at:00491E92 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5806 VA:00280EA6 Base:2162688 Address: 00491EA6 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5067 BreakPoint at:00491EA6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5807 VA:00280EB3 Base:2162688 Address: 00491EB3 +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5031 BreakPoint at:00491EB3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5808 VA:00280EBF Base:2162688 Address: 00491EBF +Adding breakpoint for DECHash.THash_SHA3Base.Absorb in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5071 BreakPoint at:00491EBF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5809 VA:00280EE8 Base:2162688 Address: 00491EE8 +Adding breakpoint for DECHash.THash_SHA3Base.AbsorbQueue in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5074 BreakPoint at:00491EE8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5810 VA:00280EEF Base:2162688 Address: 00491EEF +Adding breakpoint for DECHash.THash_SHA3Base.AbsorbQueue in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5076 BreakPoint at:00491EEF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5811 VA:00280F14 Base:2162688 Address: 00491F14 +Adding breakpoint for DECHash.THash_SHA3Base.AbsorbQueue in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5077 BreakPoint at:00491F14 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5812 VA:00280F20 Base:2162688 Address: 00491F20 +Adding breakpoint for DECHash.THash_SHA3Base.AbsorbQueue in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5078 BreakPoint at:00491F20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5813 VA:00280F24 Base:2162688 Address: 00491F24 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5087 BreakPoint at:00491F24 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5814 VA:00280F33 Base:2162688 Address: 00491F33 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5089 BreakPoint at:00491F33 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5815 VA:00280F39 Base:2162688 Address: 00491F39 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5091 BreakPoint at:00491F39 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5816 VA:00280F41 Base:2162688 Address: 00491F41 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5095 BreakPoint at:00491F41 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5817 VA:00280F50 Base:2162688 Address: 00491F50 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5096 BreakPoint at:00491F50 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5818 VA:00280F59 Base:2162688 Address: 00491F59 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5097 BreakPoint at:00491F59 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5819 VA:00280F60 Base:2162688 Address: 00491F60 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5099 BreakPoint at:00491F60 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5820 VA:00280F87 Base:2162688 Address: 00491F87 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5100 BreakPoint at:00491F87 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5821 VA:00280F94 Base:2162688 Address: 00491F94 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5101 BreakPoint at:00491F94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5822 VA:00280FA8 Base:2162688 Address: 00491FA8 +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5093 BreakPoint at:00491FA8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5823 VA:00280FAE Base:2162688 Address: 00491FAE +Adding breakpoint for DECHash.THash_SHA3Base.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5105 BreakPoint at:00491FAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5824 VA:00280FB4 Base:2162688 Address: 00491FB4 +Adding breakpoint for DECHash.THash_SHA3Base.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5108 BreakPoint at:00491FB4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5825 VA:00280FCC Base:2162688 Address: 00491FCC +Adding breakpoint for DECHash.THash_SHA3Base.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5109 BreakPoint at:00491FCC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5826 VA:00280FD6 Base:2162688 Address: 00491FD6 +Adding breakpoint for DECHash.THash_SHA3Base.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5111 BreakPoint at:00491FD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5827 VA:00280FE0 Base:2162688 Address: 00491FE0 +Adding breakpoint for DECHash.THash_SHA3Base.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5112 BreakPoint at:00491FE0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5828 VA:00280FFD Base:2162688 Address: 00491FFD +Adding breakpoint for DECHash.THash_SHA3Base.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5113 BreakPoint at:00491FFD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5829 VA:0028101C Base:2162688 Address: 0049201C +Adding breakpoint for DECHash.THash_SHA3Base.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5116 BreakPoint at:0049201C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5830 VA:00281025 Base:2162688 Address: 00492025 +Adding breakpoint for DECHash.THash_SHA3Base.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5117 BreakPoint at:00492025 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5831 VA:00281044 Base:2162688 Address: 00492044 +Adding breakpoint for DECHash.THash_SHA3Base.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5118 BreakPoint at:00492044 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5832 VA:0028104C Base:2162688 Address: 0049204C +Adding breakpoint for DECHash.THash_SHA3Base.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5121 BreakPoint at:0049204C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5833 VA:00281053 Base:2162688 Address: 00492053 +Adding breakpoint for DECHash.THash_SHA3Base.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5122 BreakPoint at:00492053 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5834 VA:0028105F Base:2162688 Address: 0049205F +Adding breakpoint for DECHash.THash_SHA3Base.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5123 BreakPoint at:0049205F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5835 VA:0028107E Base:2162688 Address: 0049207E +Adding breakpoint for DECHash.THash_SHA3Base.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5124 BreakPoint at:0049207E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5836 VA:00281084 Base:2162688 Address: 00492084 +Adding breakpoint for DECHash.THash_SHA3Base.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5127 BreakPoint at:00492084 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5837 VA:0028108D Base:2162688 Address: 0049208D +Adding breakpoint for DECHash.THash_SHA3Base.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5130 BreakPoint at:0049208D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5838 VA:00281097 Base:2162688 Address: 00492097 +Adding breakpoint for DECHash.THash_SHA3Base.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5131 BreakPoint at:00492097 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5839 VA:002810E0 Base:2162688 Address: 004920E0 +Adding breakpoint for DECHash.THash_SHA3Base.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5132 BreakPoint at:004920E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5840 VA:002810E4 Base:2162688 Address: 004920E4 +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5137 BreakPoint at:004920E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5841 VA:002810F3 Base:2162688 Address: 004920F3 +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5139 BreakPoint at:004920F3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5842 VA:002810F9 Base:2162688 Address: 004920F9 +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5140 BreakPoint at:004920F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5843 VA:00281109 Base:2162688 Address: 00492109 +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5145 BreakPoint at:00492109 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5844 VA:00281126 Base:2162688 Address: 00492126 +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5148 BreakPoint at:00492126 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5845 VA:0028116B Base:2162688 Address: 0049216B +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5149 BreakPoint at:0049216B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5846 VA:0028117C Base:2162688 Address: 0049217C +Adding breakpoint for DECHash.THash_SHA3Base.DoUpdate in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5151 BreakPoint at:0049217C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5847 VA:00281180 Base:2162688 Address: 00492180 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5157 BreakPoint at:00492180 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5848 VA:0028118F Base:2162688 Address: 0049218F +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5158 BreakPoint at:0049218F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5849 VA:00281195 Base:2162688 Address: 00492195 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5159 BreakPoint at:00492195 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5850 VA:0028119B Base:2162688 Address: 0049219B +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5160 BreakPoint at:0049219B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5851 VA:002811B0 Base:2162688 Address: 004921B0 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5162 BreakPoint at:004921B0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5852 VA:002811C0 Base:2162688 Address: 004921C0 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5163 BreakPoint at:004921C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5853 VA:002811C4 Base:2162688 Address: 004921C4 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5164 BreakPoint at:004921C4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5854 VA:002811C8 Base:2162688 Address: 004921C8 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5165 BreakPoint at:004921C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5855 VA:002811CB Base:2162688 Address: 004921CB +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5160 BreakPoint at:004921CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5856 VA:002811D1 Base:2162688 Address: 004921D1 +Adding breakpoint for DECHash.THash_SHA3Base.ExtractFromState in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5166 BreakPoint at:004921D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5857 VA:002811D8 Base:2162688 Address: 004921D8 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5173 BreakPoint at:004921D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5858 VA:002811E8 Base:2162688 Address: 004921E8 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5175 BreakPoint at:004921E8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5859 VA:002811ED Base:2162688 Address: 004921ED +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5176 BreakPoint at:004921ED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5860 VA:002811F4 Base:2162688 Address: 004921F4 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5177 BreakPoint at:004921F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5861 VA:002811FC Base:2162688 Address: 004921FC +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5179 BreakPoint at:004921FC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5862 VA:00281228 Base:2162688 Address: 00492228 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5183 BreakPoint at:00492228 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5863 VA:00281252 Base:2162688 Address: 00492252 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5185 BreakPoint at:00492252 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5864 VA:00281273 Base:2162688 Address: 00492273 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5186 BreakPoint at:00492273 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5865 VA:0028129D Base:2162688 Address: 0049229D +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5190 BreakPoint at:0049229D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5866 VA:002812A9 Base:2162688 Address: 004922A9 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5193 BreakPoint at:004922A9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5867 VA:002812CA Base:2162688 Address: 004922CA +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5195 BreakPoint at:004922CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5868 VA:002812F4 Base:2162688 Address: 004922F4 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5198 BreakPoint at:004922F4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5869 VA:00281312 Base:2162688 Address: 00492312 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5202 BreakPoint at:00492312 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5870 VA:00281319 Base:2162688 Address: 00492319 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5205 BreakPoint at:00492319 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5871 VA:00281341 Base:2162688 Address: 00492341 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5206 BreakPoint at:00492341 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5872 VA:00281350 Base:2162688 Address: 00492350 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5208 BreakPoint at:00492350 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5873 VA:00281367 Base:2162688 Address: 00492367 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5213 BreakPoint at:00492367 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5874 VA:00281377 Base:2162688 Address: 00492377 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5216 BreakPoint at:00492377 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5875 VA:00281383 Base:2162688 Address: 00492383 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5217 BreakPoint at:00492383 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5876 VA:0028139D Base:2162688 Address: 0049239D +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5218 BreakPoint at:0049239D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5877 VA:002813AC Base:2162688 Address: 004923AC +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5220 BreakPoint at:004923AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5878 VA:002813C1 Base:2162688 Address: 004923C1 +Adding breakpoint for DECHash.THash_SHA3Base.FinalBit_LSB in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5222 BreakPoint at:004923C1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5879 VA:002813C8 Base:2162688 Address: 004923C8 +Adding breakpoint for DECHash.THash_SHA3Base.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5225 BreakPoint at:004923C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5880 VA:002813D4 Base:2162688 Address: 004923D4 +Adding breakpoint for DECHash.THash_SHA3Base.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5228 BreakPoint at:004923D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5881 VA:002813D8 Base:2162688 Address: 004923D8 +Adding breakpoint for DECHash.THash_ShakeBase.GetHashSize in DECHash.pas +Creating class info for DECHash class THash_ShakeBase +TBreakPoint.Activate: +Activate DECHash.pas line 5233 BreakPoint at:004923D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5882 VA:002813E1 Base:2162688 Address: 004923E1 +Adding breakpoint for DECHash.THash_ShakeBase.GetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5235 BreakPoint at:004923E1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5883 VA:002813FE Base:2162688 Address: 004923FE +Adding breakpoint for DECHash.THash_ShakeBase.GetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5236 BreakPoint at:004923FE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5884 VA:00281408 Base:2162688 Address: 00492408 +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5239 BreakPoint at:00492408 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5885 VA:0028142B Base:2162688 Address: 0049242B +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5240 BreakPoint at:0049242B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5886 VA:00281432 Base:2162688 Address: 00492432 +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5241 BreakPoint at:00492432 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5887 VA:0028147C Base:2162688 Address: 0049247C +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5245 BreakPoint at:0049247C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5888 VA:002814A4 Base:2162688 Address: 004924A4 +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5248 BreakPoint at:004924A4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5889 VA:002814AE Base:2162688 Address: 004924AE +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5250 BreakPoint at:004924AE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5890 VA:002814CE Base:2162688 Address: 004924CE +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5251 BreakPoint at:004924CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5891 VA:00281517 Base:2162688 Address: 00492517 +Adding breakpoint for DECHash.THash_ShakeBase.SetHashSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5252 BreakPoint at:00492517 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5892 VA:00281540 Base:2162688 Address: 00492540 +Adding breakpoint for DECHash.THash_ShakeBase.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5255 BreakPoint at:00492540 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5893 VA:0028154C Base:2162688 Address: 0049254C +Adding breakpoint for DECHash.THash_ShakeBase.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5256 BreakPoint at:0049254C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5894 VA:00281570 Base:2162688 Address: 00492570 +Adding breakpoint for DECHash.THash_ShakeBase.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5257 BreakPoint at:00492570 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5895 VA:0028157D Base:2162688 Address: 0049257D +Adding breakpoint for DECHash.THash_ShakeBase.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5258 BreakPoint at:0049257D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5896 VA:002815C3 Base:2162688 Address: 004925C3 +Adding breakpoint for DECHash.THash_ShakeBase.DigestAsBytes in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5259 BreakPoint at:004925C3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5897 VA:002815C8 Base:2162688 Address: 004925C8 +Adding breakpoint for DECHash.THash_BCrypt.BlockSize in DECHash.pas +Creating class info for DECHash class THash_BCrypt +TBreakPoint.Activate: +Activate DECHash.pas line 5264 BreakPoint at:004925C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5898 VA:002815D1 Base:2162688 Address: 004925D1 +Adding breakpoint for DECHash.THash_BCrypt.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5265 BreakPoint at:004925D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5899 VA:002815D8 Base:2162688 Address: 004925D8 +Adding breakpoint for DECHash.THash_BCrypt.BlockSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5266 BreakPoint at:004925D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5900 VA:002815E0 Base:2162688 Address: 004925E0 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5276 BreakPoint at:004925E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5901 VA:00281609 Base:2162688 Address: 00492609 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5277 BreakPoint at:00492609 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5902 VA:0028161B Base:2162688 Address: 0049261B +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5278 BreakPoint at:0049261B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5903 VA:00281656 Base:2162688 Address: 00492656 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5282 BreakPoint at:00492656 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5904 VA:002816C8 Base:2162688 Address: 004926C8 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5283 BreakPoint at:004926C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5905 VA:00281717 Base:2162688 Address: 00492717 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5287 BreakPoint at:00492717 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5906 VA:0028173B Base:2162688 Address: 0049273B +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5288 BreakPoint at:0049273B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5907 VA:0028175B Base:2162688 Address: 0049275B +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5290 BreakPoint at:0049275B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5908 VA:00281773 Base:2162688 Address: 00492773 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5292 BreakPoint at:00492773 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5909 VA:00281788 Base:2162688 Address: 00492788 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5295 BreakPoint at:00492788 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5910 VA:0028178F Base:2162688 Address: 0049278F +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5297 BreakPoint at:0049278F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5911 VA:002817A3 Base:2162688 Address: 004927A3 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5298 BreakPoint at:004927A3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5912 VA:002817B7 Base:2162688 Address: 004927B7 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5299 BreakPoint at:004927B7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5913 VA:002817CB Base:2162688 Address: 004927CB +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5300 BreakPoint at:004927CB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5914 VA:002817CE Base:2162688 Address: 004927CE +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5295 BreakPoint at:004927CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5915 VA:002817D4 Base:2162688 Address: 004927D4 +Adding breakpoint for DECHash.THash_BCrypt.Calc in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5302 BreakPoint at:004927D4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5916 VA:00281810 Base:2162688 Address: 00492810 +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5310 BreakPoint at:00492810 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5917 VA:0028181F Base:2162688 Address: 0049281F +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5312 BreakPoint at:0049281F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5918 VA:0028182B Base:2162688 Address: 0049282B +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5313 BreakPoint at:0049282B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5919 VA:00281834 Base:2162688 Address: 00492834 +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5315 BreakPoint at:00492834 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5920 VA:0028185A Base:2162688 Address: 0049285A +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5318 BreakPoint at:0049285A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5921 VA:0028186F Base:2162688 Address: 0049286F +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5321 BreakPoint at:0049286F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5922 VA:0028187A Base:2162688 Address: 0049287A +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5323 BreakPoint at:0049287A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5923 VA:0028188F Base:2162688 Address: 0049288F +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5324 BreakPoint at:0049288F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5924 VA:002818A5 Base:2162688 Address: 004928A5 +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5325 BreakPoint at:004928A5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5925 VA:002818A8 Base:2162688 Address: 004928A8 +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5321 BreakPoint at:004928A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5926 VA:002818AE Base:2162688 Address: 004928AE +Adding breakpoint for DECHash.THash_BCrypt.EksBlowfishSetup in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5326 BreakPoint at:004928AE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5927 VA:002818B4 Base:2162688 Address: 004928B4 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5339 BreakPoint at:004928B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5928 VA:002818DA Base:2162688 Address: 004928DA +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5340 BreakPoint at:004928DA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5929 VA:002818F5 Base:2162688 Address: 004928F5 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5352 BreakPoint at:004928F5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5930 VA:002818FA Base:2162688 Address: 004928FA +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5353 BreakPoint at:004928FA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5931 VA:002818FF Base:2162688 Address: 004928FF +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5355 BreakPoint at:004928FF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5932 VA:00281904 Base:2162688 Address: 00492904 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5356 BreakPoint at:00492904 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5933 VA:00281909 Base:2162688 Address: 00492909 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5358 BreakPoint at:00492909 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5934 VA:00281928 Base:2162688 Address: 00492928 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5359 BreakPoint at:00492928 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5935 VA:00281933 Base:2162688 Address: 00492933 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5361 BreakPoint at:00492933 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5936 VA:0028193B Base:2162688 Address: 0049293B +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5362 BreakPoint at:0049293B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5937 VA:00281940 Base:2162688 Address: 00492940 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5363 BreakPoint at:00492940 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5938 VA:00281943 Base:2162688 Address: 00492943 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5356 BreakPoint at:00492943 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5939 VA:00281949 Base:2162688 Address: 00492949 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5365 BreakPoint at:00492949 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5940 VA:00281963 Base:2162688 Address: 00492963 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5366 BreakPoint at:00492963 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5941 VA:00281966 Base:2162688 Address: 00492966 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5353 BreakPoint at:00492966 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5942 VA:0028196C Base:2162688 Address: 0049296C +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5370 BreakPoint at:0049296C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5943 VA:0028198F Base:2162688 Address: 0049298F +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5373 BreakPoint at:0049298F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5944 VA:002819A0 Base:2162688 Address: 004929A0 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5374 BreakPoint at:004929A0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5945 VA:002819B1 Base:2162688 Address: 004929B1 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5382 BreakPoint at:004929B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5946 VA:002819B8 Base:2162688 Address: 004929B8 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5383 BreakPoint at:004929B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5947 VA:002819BF Base:2162688 Address: 004929BF +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5385 BreakPoint at:004929BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5948 VA:002819E7 Base:2162688 Address: 004929E7 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5386 BreakPoint at:004929E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5949 VA:002819EB Base:2162688 Address: 004929EB +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5387 BreakPoint at:004929EB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5950 VA:002819F9 Base:2162688 Address: 004929F9 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5388 BreakPoint at:004929F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5951 VA:00281A20 Base:2162688 Address: 00492A20 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5389 BreakPoint at:00492A20 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5952 VA:00281A51 Base:2162688 Address: 00492A51 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5390 BreakPoint at:00492A51 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5953 VA:00281A54 Base:2162688 Address: 00492A54 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5383 BreakPoint at:00492A54 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5954 VA:00281A5E Base:2162688 Address: 00492A5E +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5395 BreakPoint at:00492A5E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5955 VA:00281A63 Base:2162688 Address: 00492A63 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5397 BreakPoint at:00492A63 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5956 VA:00281A68 Base:2162688 Address: 00492A68 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5399 BreakPoint at:00492A68 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5957 VA:00281A90 Base:2162688 Address: 00492A90 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5400 BreakPoint at:00492A90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5958 VA:00281A94 Base:2162688 Address: 00492A94 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5401 BreakPoint at:00492A94 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5959 VA:00281AA2 Base:2162688 Address: 00492AA2 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5402 BreakPoint at:00492AA2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5960 VA:00281AE6 Base:2162688 Address: 00492AE6 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5403 BreakPoint at:00492AE6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5961 VA:00281B34 Base:2162688 Address: 00492B34 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5404 BreakPoint at:00492B34 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5962 VA:00281B37 Base:2162688 Address: 00492B37 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5397 BreakPoint at:00492B37 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5963 VA:00281B44 Base:2162688 Address: 00492B44 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5405 BreakPoint at:00492B44 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5964 VA:00281B47 Base:2162688 Address: 00492B47 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5395 BreakPoint at:00492B47 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5965 VA:00281B51 Base:2162688 Address: 00492B51 +Adding breakpoint for DECHash.THash_BCrypt.Expandkey in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5406 BreakPoint at:00492B51 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5966 VA:00281B80 Base:2162688 Address: 00492B80 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5414 BreakPoint at:00492B80 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5967 VA:00281BAE Base:2162688 Address: 00492BAE +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5415 BreakPoint at:00492BAE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5968 VA:00281BBD Base:2162688 Address: 00492BBD +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5416 BreakPoint at:00492BBD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5969 VA:00281BCB Base:2162688 Address: 00492BCB +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5417 BreakPoint at:00492BCB +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5970 VA:00281BEA Base:2162688 Address: 00492BEA +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5418 BreakPoint at:00492BEA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5971 VA:00281BF5 Base:2162688 Address: 00492BF5 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5421 BreakPoint at:00492BF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5972 VA:00281C58 Base:2162688 Address: 00492C58 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5423 BreakPoint at:00492C58 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5973 VA:00281C6A Base:2162688 Address: 00492C6A +Adding breakpoint for DECHash.THash_BCrypt.GetCryptHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5425 BreakPoint at:00492C6A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5974 VA:00281CAC Base:2162688 Address: 00492CAC +Adding breakpoint for DECHash.THash_BCrypt.GetCryptID in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5428 BreakPoint at:00492CAC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5975 VA:00281CB8 Base:2162688 Address: 00492CB8 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptID in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5429 BreakPoint at:00492CB8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5976 VA:00281CC5 Base:2162688 Address: 00492CC5 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptID in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5430 BreakPoint at:00492CC5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5977 VA:00281CE0 Base:2162688 Address: 00492CE0 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5434 BreakPoint at:00492CE0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5978 VA:00281CEF Base:2162688 Address: 00492CEF +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5435 BreakPoint at:00492CEF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5979 VA:00281CFA Base:2162688 Address: 00492CFA +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5436 BreakPoint at:00492CFA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5980 VA:00281D19 Base:2162688 Address: 00492D19 +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5437 BreakPoint at:00492D19 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5981 VA:00281D2B Base:2162688 Address: 00492D2B +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5439 BreakPoint at:00492D2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5982 VA:00281D3D Base:2162688 Address: 00492D3D +Adding breakpoint for DECHash.THash_BCrypt.GetCryptParams in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5440 BreakPoint at:00492D3D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5983 VA:00281D64 Base:2162688 Address: 00492D64 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5448 BreakPoint at:00492D64 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5984 VA:00281DA3 Base:2162688 Address: 00492DA3 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5449 BreakPoint at:00492DA3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5985 VA:00281DA7 Base:2162688 Address: 00492DA7 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5451 BreakPoint at:00492DA7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5986 VA:00281DC4 Base:2162688 Address: 00492DC4 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5453 BreakPoint at:00492DC4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5987 VA:00281DD6 Base:2162688 Address: 00492DD6 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5456 BreakPoint at:00492DD6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5988 VA:00281E00 Base:2162688 Address: 00492E00 +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5459 BreakPoint at:00492E00 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5989 VA:00281E1C Base:2162688 Address: 00492E1C +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5465 BreakPoint at:00492E1C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5990 VA:00281E2B Base:2162688 Address: 00492E2B +Adding breakpoint for DECHash.THash_BCrypt.IsValidPassword in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5468 BreakPoint at:00492E2B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5991 VA:00281E90 Base:2162688 Address: 00492E90 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5503 BreakPoint at:00492E90 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5992 VA:00281E9F Base:2162688 Address: 00492E9F +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5504 BreakPoint at:00492E9F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5993 VA:00281EB5 Base:2162688 Address: 00492EB5 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5505 BreakPoint at:00492EB5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5994 VA:00281EC3 Base:2162688 Address: 00492EC3 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5506 BreakPoint at:00492EC3 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5995 VA:00281ECE Base:2162688 Address: 00492ECE +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5510 BreakPoint at:00492ECE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5996 VA:00281ED5 Base:2162688 Address: 00492ED5 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5516 BreakPoint at:00492ED5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5997 VA:00281F61 Base:2162688 Address: 00492F61 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5520 BreakPoint at:00492F61 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5998 VA:00281F65 Base:2162688 Address: 00492F65 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5521 BreakPoint at:00492F65 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:5999 VA:00281FF1 Base:2162688 Address: 00492FF1 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5525 BreakPoint at:00492FF1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6000 VA:00281FF5 Base:2162688 Address: 00492FF5 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5526 BreakPoint at:00492FF5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6001 VA:00281FF8 Base:2162688 Address: 00492FF8 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5510 BreakPoint at:00492FF8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6002 VA:00282002 Base:2162688 Address: 00493002 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5529 BreakPoint at:00493002 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6003 VA:00282010 Base:2162688 Address: 00493010 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5530 BreakPoint at:00493010 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6004 VA:00282022 Base:2162688 Address: 00493022 +Adding breakpoint for DECHash.THash_BCrypt.BF_Encrypt in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5531 BreakPoint at:00493022 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6005 VA:00282028 Base:2162688 Address: 00493028 +Adding breakpoint for DECHash.THash_BCrypt.BF_XorBlock in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5534 BreakPoint at:00493028 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6006 VA:00282037 Base:2162688 Address: 00493037 +Adding breakpoint for DECHash.THash_BCrypt.BF_XorBlock in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5535 BreakPoint at:00493037 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6007 VA:00282046 Base:2162688 Address: 00493046 +Adding breakpoint for DECHash.THash_BCrypt.BF_XorBlock in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5536 BreakPoint at:00493046 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6008 VA:00282058 Base:2162688 Address: 00493058 +Adding breakpoint for DECHash.THash_BCrypt.BF_XorBlock in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5537 BreakPoint at:00493058 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6009 VA:00282060 Base:2162688 Address: 00493060 +Adding breakpoint for DECHash.THash_BCrypt.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5540 BreakPoint at:00493060 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6010 VA:00282078 Base:2162688 Address: 00493078 +Adding breakpoint for DECHash.THash_BCrypt.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5541 BreakPoint at:00493078 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6011 VA:00282082 Base:2162688 Address: 00493082 +Adding breakpoint for DECHash.THash_BCrypt.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5543 BreakPoint at:00493082 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6012 VA:0028208C Base:2162688 Address: 0049308C +Adding breakpoint for DECHash.THash_BCrypt.Create in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5545 BreakPoint at:0049308C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6013 VA:002820AC Base:2162688 Address: 004930AC +Adding breakpoint for DECHash.THash_BCrypt.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5548 BreakPoint at:004930AC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6014 VA:002820B5 Base:2162688 Address: 004930B5 +Adding breakpoint for DECHash.THash_BCrypt.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5549 BreakPoint at:004930B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6015 VA:002820BE Base:2162688 Address: 004930BE +Adding breakpoint for DECHash.THash_BCrypt.Digest in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5550 BreakPoint at:004930BE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6016 VA:002820C8 Base:2162688 Address: 004930C8 +Adding breakpoint for DECHash.THash_BCrypt.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5553 BreakPoint at:004930C8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6017 VA:002820D1 Base:2162688 Address: 004930D1 +Adding breakpoint for DECHash.THash_BCrypt.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5556 BreakPoint at:004930D1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6018 VA:002820D8 Base:2162688 Address: 004930D8 +Adding breakpoint for DECHash.THash_BCrypt.DigestSize in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5557 BreakPoint at:004930D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6019 VA:002820E0 Base:2162688 Address: 004930E0 +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5560 BreakPoint at:004930E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6020 VA:002820E7 Base:2162688 Address: 004930E7 +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5561 BreakPoint at:004930E7 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6021 VA:002820F9 Base:2162688 Address: 004930F9 +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5562 BreakPoint at:004930F9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6022 VA:0028210B Base:2162688 Address: 0049310B +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5563 BreakPoint at:0049310B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6023 VA:0028211D Base:2162688 Address: 0049311D +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5565 BreakPoint at:0049311D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6024 VA:00282125 Base:2162688 Address: 00493125 +Adding breakpoint for DECHash.THash_BCrypt.DoDone in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5566 BreakPoint at:00493125 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6025 VA:00282128 Base:2162688 Address: 00493128 +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5569 BreakPoint at:00493128 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6026 VA:00282131 Base:2162688 Address: 00493131 +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5570 BreakPoint at:00493131 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6027 VA:00282143 Base:2162688 Address: 00493143 +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5571 BreakPoint at:00493143 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6028 VA:00282155 Base:2162688 Address: 00493155 +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5573 BreakPoint at:00493155 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6029 VA:00282168 Base:2162688 Address: 00493168 +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5574 BreakPoint at:00493168 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6030 VA:0028217E Base:2162688 Address: 0049317E +Adding breakpoint for DECHash.THash_BCrypt.DoInit in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5575 BreakPoint at:0049317E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6031 VA:00282184 Base:2162688 Address: 00493184 +Adding breakpoint for DECHash.THash_BCrypt.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5578 BreakPoint at:00493184 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6032 VA:00282190 Base:2162688 Address: 00493190 +Adding breakpoint for DECHash.THash_BCrypt.DoTransform in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5581 BreakPoint at:00493190 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6033 VA:00282194 Base:2162688 Address: 00493194 +Adding breakpoint for DECHash.THash_BCrypt.MaxCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5584 BreakPoint at:00493194 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6034 VA:0028219D Base:2162688 Address: 0049319D +Adding breakpoint for DECHash.THash_BCrypt.MaxCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5585 BreakPoint at:0049319D +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6035 VA:002821A1 Base:2162688 Address: 004931A1 +Adding breakpoint for DECHash.THash_BCrypt.MaxCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5586 BreakPoint at:004931A1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6036 VA:002821A8 Base:2162688 Address: 004931A8 +Adding breakpoint for DECHash.THash_BCrypt.MaxPasswordLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5589 BreakPoint at:004931A8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6037 VA:002821B1 Base:2162688 Address: 004931B1 +Adding breakpoint for DECHash.THash_BCrypt.MaxPasswordLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5590 BreakPoint at:004931B1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6038 VA:002821B5 Base:2162688 Address: 004931B5 +Adding breakpoint for DECHash.THash_BCrypt.MaxPasswordLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5591 BreakPoint at:004931B5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6039 VA:002821BC Base:2162688 Address: 004931BC +Adding breakpoint for DECHash.THash_BCrypt.MaxSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5594 BreakPoint at:004931BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6040 VA:002821C5 Base:2162688 Address: 004931C5 +Adding breakpoint for DECHash.THash_BCrypt.MaxSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5595 BreakPoint at:004931C5 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6041 VA:002821C9 Base:2162688 Address: 004931C9 +Adding breakpoint for DECHash.THash_BCrypt.MaxSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5596 BreakPoint at:004931C9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6042 VA:002821D0 Base:2162688 Address: 004931D0 +Adding breakpoint for DECHash.THash_BCrypt.MinCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5599 BreakPoint at:004931D0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6043 VA:002821D9 Base:2162688 Address: 004931D9 +Adding breakpoint for DECHash.THash_BCrypt.MinCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5600 BreakPoint at:004931D9 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6044 VA:002821DD Base:2162688 Address: 004931DD +Adding breakpoint for DECHash.THash_BCrypt.MinCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5601 BreakPoint at:004931DD +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6045 VA:002821E4 Base:2162688 Address: 004931E4 +Adding breakpoint for DECHash.THash_BCrypt.MinSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5604 BreakPoint at:004931E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6046 VA:002821ED Base:2162688 Address: 004931ED +Adding breakpoint for DECHash.THash_BCrypt.MinSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5605 BreakPoint at:004931ED +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6047 VA:002821F1 Base:2162688 Address: 004931F1 +Adding breakpoint for DECHash.THash_BCrypt.MinSaltLength in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5606 BreakPoint at:004931F1 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6048 VA:002821F8 Base:2162688 Address: 004931F8 +Adding breakpoint for DECHash.THash_BCrypt.SetCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5609 BreakPoint at:004931F8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6049 VA:00282217 Base:2162688 Address: 00493217 +Adding breakpoint for DECHash.THash_BCrypt.SetCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5610 BreakPoint at:00493217 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6050 VA:00282263 Base:2162688 Address: 00493263 +Adding breakpoint for DECHash.THash_BCrypt.SetCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5611 BreakPoint at:00493263 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6051 VA:00282271 Base:2162688 Address: 00493271 +Adding breakpoint for DECHash.THash_BCrypt.SetCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5613 BreakPoint at:00493271 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6052 VA:002822C0 Base:2162688 Address: 004932C0 +Adding breakpoint for DECHash.THash_BCrypt.SetCost in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5614 BreakPoint at:004932C0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6053 VA:002822E4 Base:2162688 Address: 004932E4 +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5620 BreakPoint at:004932E4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6054 VA:00282307 Base:2162688 Address: 00493307 +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5621 BreakPoint at:00493307 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6055 VA:0028230B Base:2162688 Address: 0049330B +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5623 BreakPoint at:0049330B +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6056 VA:00282320 Base:2162688 Address: 00493320 +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5625 BreakPoint at:00493320 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6057 VA:00282341 Base:2162688 Address: 00493341 +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5627 BreakPoint at:00493341 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6058 VA:0028235F Base:2162688 Address: 0049335F +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5628 BreakPoint at:0049335F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6059 VA:002823BF Base:2162688 Address: 004933BF +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5629 BreakPoint at:004933BF +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6060 VA:002823EE Base:2162688 Address: 004933EE +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5630 BreakPoint at:004933EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6061 VA:002823F2 Base:2162688 Address: 004933F2 +Adding breakpoint for DECHash.THash_BCrypt.SplitTestVector in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5632 BreakPoint at:004933F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:6062 VA:00282424 Base:2162688 Address: 00493424 +Adding breakpoint for DECHash.Finalization in DECHash.pas +Creating class info for DECHash class DECHash +TBreakPoint.Activate: +Activate DECHash.pas line 5701 BreakPoint at:00493424 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10665 VA:002C3938 Base:2162688 Address: 004D4938 +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +Creating class info for DECCipherBase class ValidCipher +TBreakPoint.Activate: +Activate DECCipherBase.pas line 823 BreakPoint at:004D4938 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10666 VA:002C3941 Base:2162688 Address: 004D4941 +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 824 BreakPoint at:004D4941 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10667 VA:002C3947 Base:2162688 Address: 004D4947 +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 825 BreakPoint at:004D4947 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10668 VA:002C394F Base:2162688 Address: 004D494F +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 827 BreakPoint at:004D494F +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10669 VA:002C3957 Base:2162688 Address: 004D4957 +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 829 BreakPoint at:004D4957 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10670 VA:002C395D Base:2162688 Address: 004D495D +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 830 BreakPoint at:004D495D +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10671 VA:002C3973 Base:2162688 Address: 004D4973 +Adding breakpoint for DECCipherBase.ValidCipher in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 831 BreakPoint at:004D4973 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10672 VA:002C397C Base:2162688 Address: 004D497C +Adding breakpoint for DECCipherBase.SetDefaultCipherClass in DECCipherBase.pas +Creating class info for DECCipherBase class SetDefaultCipherClass +TBreakPoint.Activate: +Activate DECCipherBase.pas line 834 BreakPoint at:004D497C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10673 VA:002C3983 Base:2162688 Address: 004D4983 +Adding breakpoint for DECCipherBase.SetDefaultCipherClass in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 835 BreakPoint at:004D4983 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10674 VA:002C399D Base:2162688 Address: 004D499D +Adding breakpoint for DECCipherBase.SetDefaultCipherClass in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 837 BreakPoint at:004D499D +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10675 VA:002C39A5 Base:2162688 Address: 004D49A5 +Adding breakpoint for DECCipherBase.SetDefaultCipherClass in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 838 BreakPoint at:004D49A5 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10676 VA:002C3A74 Base:2162688 Address: 004D4A74 +Adding breakpoint for DECCipherBase.IsAuthenticatedBlockMode in DECCipherBase.pas +Creating class info for DECCipherBase class IsAuthenticatedBlockMode +TBreakPoint.Activate: +Activate DECCipherBase.pas line 841 BreakPoint at:004D4A74 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10677 VA:002C3A7B Base:2162688 Address: 004D4A7B +Adding breakpoint for DECCipherBase.IsAuthenticatedBlockMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 842 BreakPoint at:004D4A7B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10678 VA:002C3A83 Base:2162688 Address: 004D4A83 +Adding breakpoint for DECCipherBase.IsAuthenticatedBlockMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 843 BreakPoint at:004D4A83 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10679 VA:002C3A8C Base:2162688 Address: 004D4A8C +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +Creating class info for DECCipherBase class TDECCipher +TBreakPoint.Activate: +Activate DECCipherBase.pas line 850 BreakPoint at:004D4A8C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10680 VA:002C3AA4 Base:2162688 Address: 004D4AA4 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 851 BreakPoint at:004D4AA4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10681 VA:002C3AAE Base:2162688 Address: 004D4AAE +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 853 BreakPoint at:004D4AAE +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10682 VA:002C3AC2 Base:2162688 Address: 004D4AC2 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 854 BreakPoint at:004D4AC2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10683 VA:002C3AD6 Base:2162688 Address: 004D4AD6 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 855 BreakPoint at:004D4AD6 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10684 VA:002C3AE7 Base:2162688 Address: 004D4AE7 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 858 BreakPoint at:004D4AE7 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10685 VA:002C3AFC Base:2162688 Address: 004D4AFC +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 860 BreakPoint at:004D4AFC +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10686 VA:002C3B02 Base:2162688 Address: 004D4B02 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 864 BreakPoint at:004D4B02 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10687 VA:002C3B0E Base:2162688 Address: 004D4B0E +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 867 BreakPoint at:004D4B0E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10688 VA:002C3B2A Base:2162688 Address: 004D4B2A +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 868 BreakPoint at:004D4B2A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10689 VA:002C3B36 Base:2162688 Address: 004D4B36 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 869 BreakPoint at:004D4B36 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10690 VA:002C3B3E Base:2162688 Address: 004D4B3E +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 870 BreakPoint at:004D4B3E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10691 VA:002C3B53 Base:2162688 Address: 004D4B53 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 871 BreakPoint at:004D4B53 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10692 VA:002C3B68 Base:2162688 Address: 004D4B68 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 872 BreakPoint at:004D4B68 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10693 VA:002C3B7D Base:2162688 Address: 004D4B7D +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 874 BreakPoint at:004D4B7D +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10694 VA:002C3B83 Base:2162688 Address: 004D4B83 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 876 BreakPoint at:004D4B83 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10695 VA:002C3B9A Base:2162688 Address: 004D4B9A +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 878 BreakPoint at:004D4B9A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10696 VA:002C3BA2 Base:2162688 Address: 004D4BA2 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 880 BreakPoint at:004D4BA2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10697 VA:002C3BA9 Base:2162688 Address: 004D4BA9 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 881 BreakPoint at:004D4BA9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10698 VA:002C3BB0 Base:2162688 Address: 004D4BB0 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 883 BreakPoint at:004D4BB0 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10699 VA:002C3BB8 Base:2162688 Address: 004D4BB8 +Adding breakpoint for DECCipherBase.TDECCipher.Create in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 884 BreakPoint at:004D4BB8 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10700 VA:002C3BD8 Base:2162688 Address: 004D4BD8 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 887 BreakPoint at:004D4BD8 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10701 VA:002C3BE9 Base:2162688 Address: 004D4BE9 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 888 BreakPoint at:004D4BE9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10702 VA:002C3BF1 Base:2162688 Address: 004D4BF1 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 891 BreakPoint at:004D4BF1 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10703 VA:002C3C02 Base:2162688 Address: 004D4C02 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 892 BreakPoint at:004D4C02 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10704 VA:002C3C0A Base:2162688 Address: 004D4C0A +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 893 BreakPoint at:004D4C0A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10705 VA:002C3C12 Base:2162688 Address: 004D4C12 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 894 BreakPoint at:004D4C12 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10706 VA:002C3C1A Base:2162688 Address: 004D4C1A +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 895 BreakPoint at:004D4C1A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10707 VA:002C3C22 Base:2162688 Address: 004D4C22 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 896 BreakPoint at:004D4C22 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10708 VA:002C3C2A Base:2162688 Address: 004D4C2A +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 897 BreakPoint at:004D4C2A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10709 VA:002C3C38 Base:2162688 Address: 004D4C38 +Adding breakpoint for DECCipherBase.TDECCipher.Destroy in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 898 BreakPoint at:004D4C38 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10710 VA:002C3C4C Base:2162688 Address: 004D4C4C +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 901 BreakPoint at:004D4C4C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10711 VA:002C3C58 Base:2162688 Address: 004D4C58 +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 902 BreakPoint at:004D4C58 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10712 VA:002C3C63 Base:2162688 Address: 004D4C63 +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 904 BreakPoint at:004D4C63 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10713 VA:002C3C71 Base:2162688 Address: 004D4C71 +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 905 BreakPoint at:004D4C71 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10714 VA:002C3C79 Base:2162688 Address: 004D4C79 +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 907 BreakPoint at:004D4C79 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10715 VA:002C3C82 Base:2162688 Address: 004D4C82 +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 908 BreakPoint at:004D4C82 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10716 VA:002C3C8A Base:2162688 Address: 004D4C8A +Adding breakpoint for DECCipherBase.TDECCipher.SetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 910 BreakPoint at:004D4C8A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10717 VA:002C3C90 Base:2162688 Address: 004D4C90 +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 913 BreakPoint at:004D4C90 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10718 VA:002C3C9C Base:2162688 Address: 004D4C9C +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 914 BreakPoint at:004D4C9C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10719 VA:002C3CB2 Base:2162688 Address: 004D4CB2 +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 916 BreakPoint at:004D4CB2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10720 VA:002C3CBB Base:2162688 Address: 004D4CBB +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 917 BreakPoint at:004D4CBB +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10721 VA:002C3CD3 Base:2162688 Address: 004D4CD3 +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 919 BreakPoint at:004D4CD3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10722 VA:002C3CE9 Base:2162688 Address: 004D4CE9 +Adding breakpoint for DECCipherBase.TDECCipher.CheckState in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 921 BreakPoint at:004D4CE9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10723 VA:002C3CF0 Base:2162688 Address: 004D4CF0 +Adding breakpoint for DECCipherBase.TDECCipher.ClassByIdentity in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 924 BreakPoint at:004D4CF0 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10724 VA:002C3CF9 Base:2162688 Address: 004D4CF9 +Adding breakpoint for DECCipherBase.TDECCipher.ClassByIdentity in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 925 BreakPoint at:004D4CF9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10725 VA:002C3D0C Base:2162688 Address: 004D4D0C +Adding breakpoint for DECCipherBase.TDECCipher.ClassByIdentity in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 926 BreakPoint at:004D4D0C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10726 VA:002C3D18 Base:2162688 Address: 004D4D18 +Adding breakpoint for DECCipherBase.TDECCipher.ClassByName in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 929 BreakPoint at:004D4D18 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10727 VA:002C3D24 Base:2162688 Address: 004D4D24 +Adding breakpoint for DECCipherBase.TDECCipher.ClassByName in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 930 BreakPoint at:004D4D24 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10728 VA:002C3D34 Base:2162688 Address: 004D4D34 +Adding breakpoint for DECCipherBase.TDECCipher.ClassByName in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 931 BreakPoint at:004D4D34 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10729 VA:002C3D3C Base:2162688 Address: 004D4D3C +Adding breakpoint for DECCipherBase.TDECCipher.Context in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 934 BreakPoint at:004D4D3C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10730 VA:002C3D5B Base:2162688 Address: 004D4D5B +Adding breakpoint for DECCipherBase.TDECCipher.Context in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 937 BreakPoint at:004D4D5B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10731 VA:002C3D7A Base:2162688 Address: 004D4D7A +Adding breakpoint for DECCipherBase.TDECCipher.Context in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 938 BreakPoint at:004D4D7A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10732 VA:002C3DA0 Base:2162688 Address: 004D4DA0 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 943 BreakPoint at:004D4DA0 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10733 VA:002C3DC3 Base:2162688 Address: 004D4DC3 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 944 BreakPoint at:004D4DC3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10734 VA:002C3DCA Base:2162688 Address: 004D4DCA +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 945 BreakPoint at:004D4DCA +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10735 VA:002C3DD3 Base:2162688 Address: 004D4DD3 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 946 BreakPoint at:004D4DD3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10736 VA:002C3DDB Base:2162688 Address: 004D4DDB +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 948 BreakPoint at:004D4DDB +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10737 VA:002C3DFF Base:2162688 Address: 004D4DFF +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 949 BreakPoint at:004D4DFF +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10738 VA:002C3E15 Base:2162688 Address: 004D4E15 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 951 BreakPoint at:004D4E15 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10739 VA:002C3E2C Base:2162688 Address: 004D4E2C +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 952 BreakPoint at:004D4E2C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10740 VA:002C3E42 Base:2162688 Address: 004D4E42 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 954 BreakPoint at:004D4E42 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10741 VA:002C3E50 Base:2162688 Address: 004D4E50 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 955 BreakPoint at:004D4E50 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10742 VA:002C3E59 Base:2162688 Address: 004D4E59 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 957 BreakPoint at:004D4E59 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10743 VA:002C3E70 Base:2162688 Address: 004D4E70 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 959 BreakPoint at:004D4E70 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10744 VA:002C3E86 Base:2162688 Address: 004D4E86 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 961 BreakPoint at:004D4E86 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10745 VA:002C3EA0 Base:2162688 Address: 004D4EA0 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 962 BreakPoint at:004D4EA0 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10746 VA:002C3EA6 Base:2162688 Address: 004D4EA6 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 963 BreakPoint at:004D4EA6 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10747 VA:002C3EB4 Base:2162688 Address: 004D4EB4 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 966 BreakPoint at:004D4EB4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10748 VA:002C3EC3 Base:2162688 Address: 004D4EC3 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 968 BreakPoint at:004D4EC3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10749 VA:002C3EDE Base:2162688 Address: 004D4EDE +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 969 BreakPoint at:004D4EDE +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10750 VA:002C3EE7 Base:2162688 Address: 004D4EE7 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 971 BreakPoint at:004D4EE7 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10751 VA:002C3F00 Base:2162688 Address: 004D4F00 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 974 BreakPoint at:004D4F00 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10752 VA:002C3F11 Base:2162688 Address: 004D4F11 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 976 BreakPoint at:004D4F11 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10753 VA:002C3F1C Base:2162688 Address: 004D4F1C +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 978 BreakPoint at:004D4F1C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10754 VA:002C3F33 Base:2162688 Address: 004D4F33 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 980 BreakPoint at:004D4F33 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10755 VA:002C3F3A Base:2162688 Address: 004D4F3A +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 981 BreakPoint at:004D4F3A +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10756 VA:002C3F68 Base:2162688 Address: 004D4F68 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 984 BreakPoint at:004D4F68 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10757 VA:002C3F77 Base:2162688 Address: 004D4F77 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 986 BreakPoint at:004D4F77 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10758 VA:002C3FAE Base:2162688 Address: 004D4FAE +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 988 BreakPoint at:004D4FAE +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10759 VA:002C3FC4 Base:2162688 Address: 004D4FC4 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 990 BreakPoint at:004D4FC4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10760 VA:002C3FCA Base:2162688 Address: 004D4FCA +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 991 BreakPoint at:004D4FCA +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10761 VA:002C4014 Base:2162688 Address: 004D5014 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 993 BreakPoint at:004D5014 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10762 VA:002C4045 Base:2162688 Address: 004D5045 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 994 BreakPoint at:004D5045 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10763 VA:002C404C Base:2162688 Address: 004D504C +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 999 BreakPoint at:004D504C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10764 VA:002C405B Base:2162688 Address: 004D505B +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1001 BreakPoint at:004D505B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10765 VA:002C4092 Base:2162688 Address: 004D5092 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1003 BreakPoint at:004D5092 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10766 VA:002C40A8 Base:2162688 Address: 004D50A8 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1005 BreakPoint at:004D50A8 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10767 VA:002C40C5 Base:2162688 Address: 004D50C5 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1007 BreakPoint at:004D50C5 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10768 VA:002C411B Base:2162688 Address: 004D511B +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1015 BreakPoint at:004D511B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10769 VA:002C4153 Base:2162688 Address: 004D5153 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1019 BreakPoint at:004D5153 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10770 VA:002C415C Base:2162688 Address: 004D515C +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1048 BreakPoint at:004D515C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10771 VA:002C416B Base:2162688 Address: 004D516B +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1050 BreakPoint at:004D516B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10772 VA:002C41A4 Base:2162688 Address: 004D51A4 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1052 BreakPoint at:004D51A4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10773 VA:002C41BA Base:2162688 Address: 004D51BA +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1054 BreakPoint at:004D51BA +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10774 VA:002C41D9 Base:2162688 Address: 004D51D9 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1056 BreakPoint at:004D51D9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10775 VA:002C4237 Base:2162688 Address: 004D5237 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1064 BreakPoint at:004D5237 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10776 VA:002C4273 Base:2162688 Address: 004D5273 +Adding breakpoint for DECCipherBase.TDECCipher.Init in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1068 BreakPoint at:004D5273 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10777 VA:002C427C Base:2162688 Address: 004D527C +Adding breakpoint for DECCipherBase.TDECCipher.IsAuthenticated in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1072 BreakPoint at:004D527C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10778 VA:002C4285 Base:2162688 Address: 004D5285 +Adding breakpoint for DECCipherBase.TDECCipher.IsAuthenticated in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1073 BreakPoint at:004D5285 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10779 VA:002C4293 Base:2162688 Address: 004D5293 +Adding breakpoint for DECCipherBase.TDECCipher.IsAuthenticated in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1074 BreakPoint at:004D5293 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10780 VA:002C429C Base:2162688 Address: 004D529C +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1077 BreakPoint at:004D529C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10781 VA:002C42A4 Base:2162688 Address: 004D52A4 +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1078 BreakPoint at:004D52A4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10782 VA:002C42AD Base:2162688 Address: 004D52AD +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1080 BreakPoint at:004D52AD +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10783 VA:002C42B4 Base:2162688 Address: 004D52B4 +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1081 BreakPoint at:004D52B4 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10784 VA:002C42BC Base:2162688 Address: 004D52BC +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1082 BreakPoint at:004D52BC +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10785 VA:002C42D7 Base:2162688 Address: 004D52D7 +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1083 BreakPoint at:004D52D7 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10786 VA:002C42EE Base:2162688 Address: 004D52EE +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1084 BreakPoint at:004D52EE +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10787 VA:002C42F7 Base:2162688 Address: 004D52F7 +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1085 BreakPoint at:004D52F7 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10788 VA:002C430E Base:2162688 Address: 004D530E +Adding breakpoint for DECCipherBase.TDECCipher.Done in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1087 BreakPoint at:004D530E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10789 VA:002C4314 Base:2162688 Address: 004D5314 +Adding breakpoint for DECCipherBase.TDECCipher.SecureErase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1090 BreakPoint at:004D5314 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10790 VA:002C431B Base:2162688 Address: 004D531B +Adding breakpoint for DECCipherBase.TDECCipher.SecureErase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1091 BreakPoint at:004D531B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10791 VA:002C432C Base:2162688 Address: 004D532C +Adding breakpoint for DECCipherBase.TDECCipher.SecureErase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1092 BreakPoint at:004D532C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10792 VA:002C4330 Base:2162688 Address: 004D5330 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1097 BreakPoint at:004D5330 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10793 VA:002C4356 Base:2162688 Address: 004D5356 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1098 BreakPoint at:004D5356 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10794 VA:002C4364 Base:2162688 Address: 004D5364 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1099 BreakPoint at:004D5364 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10795 VA:002C4381 Base:2162688 Address: 004D5381 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1102 BreakPoint at:004D5381 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10796 VA:002C43B2 Base:2162688 Address: 004D53B2 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1103 BreakPoint at:004D53B2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10797 VA:002C43E2 Base:2162688 Address: 004D53E2 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1108 BreakPoint at:004D53E2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10798 VA:002C4400 Base:2162688 Address: 004D5400 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1110 BreakPoint at:004D5400 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10799 VA:002C443C Base:2162688 Address: 004D543C +Adding breakpoint for DECCipherBase.TDECCipher.GetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1113 BreakPoint at:004D543C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10800 VA:002C4445 Base:2162688 Address: 004D5445 +Adding breakpoint for DECCipherBase.TDECCipher.GetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1114 BreakPoint at:004D5445 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10801 VA:002C444E Base:2162688 Address: 004D544E +Adding breakpoint for DECCipherBase.TDECCipher.GetMode in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1115 BreakPoint at:004D544E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10802 VA:002C4458 Base:2162688 Address: 004D5458 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1118 BreakPoint at:004D5458 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10803 VA:002C447B Base:2162688 Address: 004D547B +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1119 BreakPoint at:004D547B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10804 VA:002C4489 Base:2162688 Address: 004D5489 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1120 BreakPoint at:004D5489 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10805 VA:002C44AA Base:2162688 Address: 004D54AA +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1122 BreakPoint at:004D54AA +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10806 VA:002C44DB Base:2162688 Address: 004D54DB +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1123 BreakPoint at:004D54DB +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10807 VA:002C4506 Base:2162688 Address: 004D5506 +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1124 BreakPoint at:004D5506 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10808 VA:002C452C Base:2162688 Address: 004D552C +Adding breakpoint for DECCipherBase.TDECCipher.EncodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1126 BreakPoint at:004D552C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10809 VA:002C4558 Base:2162688 Address: 004D5558 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1131 BreakPoint at:004D5558 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10810 VA:002C457E Base:2162688 Address: 004D557E +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1132 BreakPoint at:004D557E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10811 VA:002C4586 Base:2162688 Address: 004D5586 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1133 BreakPoint at:004D5586 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10812 VA:002C45A3 Base:2162688 Address: 004D55A3 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1140 BreakPoint at:004D55A3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10813 VA:002C45C3 Base:2162688 Address: 004D55C3 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1143 BreakPoint at:004D55C3 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10814 VA:002C45F9 Base:2162688 Address: 004D55F9 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeRawByteString in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1148 BreakPoint at:004D55F9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10815 VA:002C4634 Base:2162688 Address: 004D5634 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1151 BreakPoint at:004D5634 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10816 VA:002C4644 Base:2162688 Address: 004D5644 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1152 BreakPoint at:004D5644 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10817 VA:002C4652 Base:2162688 Address: 004D5652 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1153 BreakPoint at:004D5652 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10818 VA:002C466F Base:2162688 Address: 004D566F +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1155 BreakPoint at:004D566F +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10819 VA:002C4682 Base:2162688 Address: 004D5682 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1156 BreakPoint at:004D5682 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10820 VA:002C46B1 Base:2162688 Address: 004D56B1 +Adding breakpoint for DECCipherBase.TDECCipher.DecodeBytes in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1158 BreakPoint at:004D56B1 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10821 VA:002C46B8 Base:2162688 Address: 004D56B8 +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1162 BreakPoint at:004D56B8 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10822 VA:002C46C7 Base:2162688 Address: 004D56C7 +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1163 BreakPoint at:004D56C7 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10823 VA:002C46CF Base:2162688 Address: 004D56CF +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1164 BreakPoint at:004D56CF +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10824 VA:002C46D9 Base:2162688 Address: 004D56D9 +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1165 BreakPoint at:004D56D9 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10825 VA:002C46F1 Base:2162688 Address: 004D56F1 +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1167 BreakPoint at:004D56F1 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10826 VA:002C470E Base:2162688 Address: 004D570E +Adding breakpoint for DECCipherBase.TDECCipher.CalcMAC in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1169 BreakPoint at:004D570E +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10827 VA:002C4714 Base:2162688 Address: 004D5714 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +Creating class info for DECCipherBase class ModuleUnload +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1190 BreakPoint at:004D5714 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10828 VA:002C4730 Base:2162688 Address: 004D5730 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1193 BreakPoint at:004D5730 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10829 VA:002C475B Base:2162688 Address: 004D575B +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1196 BreakPoint at:004D575B +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10830 VA:002C4768 Base:2162688 Address: 004D5768 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1197 BreakPoint at:004D5768 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10831 VA:002C4794 Base:2162688 Address: 004D5794 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1199 BreakPoint at:004D5794 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10832 VA:002C47BB Base:2162688 Address: 004D57BB +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1200 BreakPoint at:004D57BB +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10833 VA:002C47E2 Base:2162688 Address: 004D57E2 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1201 BreakPoint at:004D57E2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10834 VA:002C47E5 Base:2162688 Address: 004D57E5 +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1197 BreakPoint at:004D57E5 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10835 VA:002C47EB Base:2162688 Address: 004D57EB +Adding breakpoint for DECCipherBase.ModuleUnload in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1203 BreakPoint at:004D57EB +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10836 VA:002C4814 Base:2162688 Address: 004D5814 +Adding breakpoint for DECCipherBase.Finalization in DECCipherBase.pas +Creating class info for DECCipherBase class DECCipherBase +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1219 BreakPoint at:004D5814 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10837 VA:002C4829 Base:2162688 Address: 004D5829 +Adding breakpoint for DECCipherBase.Finalization in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1222 BreakPoint at:004D5829 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:10838 VA:002C4833 Base:2162688 Address: 004D5833 +Adding breakpoint for DECCipherBase.Finalization in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1223 BreakPoint at:004D5833 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10839 VA:002C4CF4 Base:2162688 Address: 004D5CF4 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +Creating class info for DECCipherModesGCM class TGCM +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 411 BreakPoint at:004D5CF4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10840 VA:002C4D03 Base:2162688 Address: 004D5D03 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 412 BreakPoint at:004D5D03 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10841 VA:002C4D0D Base:2162688 Address: 004D5D0D +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 413 BreakPoint at:004D5D0D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10842 VA:002C4D12 Base:2162688 Address: 004D5D12 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 415 BreakPoint at:004D5D12 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10843 VA:002C4D16 Base:2162688 Address: 004D5D16 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 416 BreakPoint at:004D5D16 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10844 VA:002C4D1B Base:2162688 Address: 004D5D1B +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 418 BreakPoint at:004D5D1B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10845 VA:002C4D55 Base:2162688 Address: 004D5D55 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 420 BreakPoint at:004D5D55 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10846 VA:002C4D5B Base:2162688 Address: 004D5D5B +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 421 BreakPoint at:004D5D5B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10847 VA:002C4D68 Base:2162688 Address: 004D5D68 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 424 BreakPoint at:004D5D68 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10848 VA:002C4D73 Base:2162688 Address: 004D5D73 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 425 BreakPoint at:004D5D73 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10849 VA:002C4D77 Base:2162688 Address: 004D5D77 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 428 BreakPoint at:004D5D77 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10850 VA:002C4D8D Base:2162688 Address: 004D5D8D +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 429 BreakPoint at:004D5D8D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10851 VA:002C4D90 Base:2162688 Address: 004D5D90 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 416 BreakPoint at:004D5D90 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10852 VA:002C4D96 Base:2162688 Address: 004D5D96 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 430 BreakPoint at:004D5D96 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10853 VA:002C4D99 Base:2162688 Address: 004D5D99 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 413 BreakPoint at:004D5D99 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10854 VA:002C4DA3 Base:2162688 Address: 004D5DA3 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 432 BreakPoint at:004D5DA3 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10855 VA:002C4DA8 Base:2162688 Address: 004D5DA8 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 434 BreakPoint at:004D5DA8 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10856 VA:002C4DAF Base:2162688 Address: 004D5DAF +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 436 BreakPoint at:004D5DAF +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10857 VA:002C4DBC Base:2162688 Address: 004D5DBC +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 438 BreakPoint at:004D5DBC +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10858 VA:002C4DDB Base:2162688 Address: 004D5DDB +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 439 BreakPoint at:004D5DDB +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10859 VA:002C4F1B Base:2162688 Address: 004D5F1B +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 438 BreakPoint at:004D5F1B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10860 VA:002C4F24 Base:2162688 Address: 004D5F24 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 440 BreakPoint at:004D5F24 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10861 VA:002C4F32 Base:2162688 Address: 004D5F32 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 436 BreakPoint at:004D5F32 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10862 VA:002C4F3F Base:2162688 Address: 004D5F3F +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 443 BreakPoint at:004D5F3F +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10863 VA:002C4F6A Base:2162688 Address: 004D5F6A +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 444 BreakPoint at:004D5F6A +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10864 VA:002C4F6D Base:2162688 Address: 004D5F6D +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 432 BreakPoint at:004D5F6D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10865 VA:002C4F77 Base:2162688 Address: 004D5F77 +Adding breakpoint for DECCipherModesGCM.TGCM.GenerateTableM8Bit in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 445 BreakPoint at:004D5F77 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10866 VA:002C4F80 Base:2162688 Address: 004D5F80 +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 452 BreakPoint at:004D5F80 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10867 VA:002C4F8C Base:2162688 Address: 004D5F8C +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 453 BreakPoint at:004D5F8C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10868 VA:002C4F93 Base:2162688 Address: 004D5F93 +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 454 BreakPoint at:004D5F93 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10869 VA:002C4FF6 Base:2162688 Address: 004D5FF6 +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 453 BreakPoint at:004D5FF6 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10870 VA:002C4FFC Base:2162688 Address: 004D5FFC +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 456 BreakPoint at:004D5FFC +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10871 VA:002C5015 Base:2162688 Address: 004D6015 +Adding breakpoint for DECCipherModesGCM.TGCM.ShiftRight in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 457 BreakPoint at:004D6015 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10872 VA:002C501C Base:2162688 Address: 004D601C +Adding breakpoint for DECCipherModesGCM.TGCM.SetAuthenticationTagLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 460 BreakPoint at:004D601C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10873 VA:002C5028 Base:2162688 Address: 004D6028 +Adding breakpoint for DECCipherModesGCM.TGCM.SetAuthenticationTagLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 461 BreakPoint at:004D6028 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10874 VA:002C5037 Base:2162688 Address: 004D6037 +Adding breakpoint for DECCipherModesGCM.TGCM.SetAuthenticationTagLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 462 BreakPoint at:004D6037 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10875 VA:002C505C Base:2162688 Address: 004D605C +Adding breakpoint for DECCipherModesGCM.TGCM.SetAuthenticationTagLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 463 BreakPoint at:004D605C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10876 VA:002C5060 Base:2162688 Address: 004D6060 +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 469 BreakPoint at:004D6060 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10877 VA:002C506C Base:2162688 Address: 004D606C +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 472 BreakPoint at:004D606C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10878 VA:002C5072 Base:2162688 Address: 004D6072 +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 473 BreakPoint at:004D6072 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10879 VA:002C507B Base:2162688 Address: 004D607B +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 475 BreakPoint at:004D607B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10880 VA:002C5081 Base:2162688 Address: 004D6081 +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 477 BreakPoint at:004D6081 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10881 VA:002C508A Base:2162688 Address: 004D608A +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 479 BreakPoint at:004D608A +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10882 VA:002C5090 Base:2162688 Address: 004D6090 +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 481 BreakPoint at:004D6090 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10883 VA:002C5099 Base:2162688 Address: 004D6099 +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 482 BreakPoint at:004D6099 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10884 VA:002C509F Base:2162688 Address: 004D609F +Adding breakpoint for DECCipherModesGCM.TGCM.INCR in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 486 BreakPoint at:004D609F +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10885 VA:002C50A4 Base:2162688 Address: 004D60A4 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 493 BreakPoint at:004D60A4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10886 VA:002C50C9 Base:2162688 Address: 004D60C9 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 494 BreakPoint at:004D60C9 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10887 VA:002C50E4 Base:2162688 Address: 004D60E4 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 497 BreakPoint at:004D60E4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10888 VA:002C510D Base:2162688 Address: 004D610D +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 498 BreakPoint at:004D610D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10889 VA:002C5156 Base:2162688 Address: 004D6156 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 500 BreakPoint at:004D6156 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10890 VA:002C516B Base:2162688 Address: 004D616B +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 502 BreakPoint at:004D616B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10891 VA:002C517C Base:2162688 Address: 004D617C +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 503 BreakPoint at:004D617C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10892 VA:002C518D Base:2162688 Address: 004D618D +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 505 BreakPoint at:004D618D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10893 VA:002C519D Base:2162688 Address: 004D619D +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 506 BreakPoint at:004D619D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10894 VA:002C51B4 Base:2162688 Address: 004D61B4 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 509 BreakPoint at:004D61B4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10895 VA:002C51E6 Base:2162688 Address: 004D61E6 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 510 BreakPoint at:004D61E6 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10896 VA:002C51F7 Base:2162688 Address: 004D61F7 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 512 BreakPoint at:004D61F7 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10897 VA:002C5214 Base:2162688 Address: 004D6214 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 514 BreakPoint at:004D6214 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10898 VA:002C522B Base:2162688 Address: 004D622B +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 515 BreakPoint at:004D622B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10899 VA:002C5254 Base:2162688 Address: 004D6254 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 516 BreakPoint at:004D6254 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10900 VA:002C525F Base:2162688 Address: 004D625F +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 517 BreakPoint at:004D625F +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10901 VA:002C5263 Base:2162688 Address: 004D6263 +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 518 BreakPoint at:004D6263 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10902 VA:002C526B Base:2162688 Address: 004D626B +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 521 BreakPoint at:004D626B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10903 VA:002C528C Base:2162688 Address: 004D628C +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 523 BreakPoint at:004D628C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10904 VA:002C52AF Base:2162688 Address: 004D62AF +Adding breakpoint for DECCipherModesGCM.TGCM.Init in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 524 BreakPoint at:004D62AF +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10905 VA:002C53A4 Base:2162688 Address: 004D63A4 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +Creating class info for DECCipherModesGCM class encode +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 536 BreakPoint at:004D63A4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10906 VA:002C53C8 Base:2162688 Address: 004D63C8 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 537 BreakPoint at:004D63C8 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10907 VA:002C53FB Base:2162688 Address: 004D63FB +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 538 BreakPoint at:004D63FB +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10908 VA:002C540B Base:2162688 Address: 004D640B +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 540 BreakPoint at:004D640B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10909 VA:002C541C Base:2162688 Address: 004D641C +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 541 BreakPoint at:004D641C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10910 VA:002C5431 Base:2162688 Address: 004D6431 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 542 BreakPoint at:004D6431 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10911 VA:002C5441 Base:2162688 Address: 004D6441 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 546 BreakPoint at:004D6441 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10912 VA:002C5454 Base:2162688 Address: 004D6454 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 549 BreakPoint at:004D6454 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10913 VA:002C55B1 Base:2162688 Address: 004D65B1 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 550 BreakPoint at:004D65B1 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10914 VA:002C55C3 Base:2162688 Address: 004D65C3 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 552 BreakPoint at:004D65C3 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10915 VA:002C55D2 Base:2162688 Address: 004D65D2 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 547 BreakPoint at:004D65D2 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10916 VA:002C55F3 Base:2162688 Address: 004D65F3 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 556 BreakPoint at:004D65F3 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10917 VA:002C5608 Base:2162688 Address: 004D6608 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 557 BreakPoint at:004D6608 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10918 VA:002C5618 Base:2162688 Address: 004D6618 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 559 BreakPoint at:004D6618 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10919 VA:002C5628 Base:2162688 Address: 004D6628 +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 560 BreakPoint at:004D6628 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10920 VA:002C566E Base:2162688 Address: 004D666E +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 561 BreakPoint at:004D666E +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10921 VA:002C57BF Base:2162688 Address: 004D67BF +Adding breakpoint for DECCipherModesGCM.encode in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 564 BreakPoint at:004D67BF +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10922 VA:002C57EC Base:2162688 Address: 004D67EC +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 566 BreakPoint at:004D67EC +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10923 VA:002C581B Base:2162688 Address: 004D681B +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 567 BreakPoint at:004D681B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10924 VA:002C5828 Base:2162688 Address: 004D6828 +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 568 BreakPoint at:004D6828 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10925 VA:002C5832 Base:2162688 Address: 004D6832 +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 569 BreakPoint at:004D6832 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10926 VA:002C583C Base:2162688 Address: 004D683C +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 570 BreakPoint at:004D683C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10927 VA:002C598B Base:2162688 Address: 004D698B +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 572 BreakPoint at:004D698B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10928 VA:002C5A8C Base:2162688 Address: 004D6A8C +Adding breakpoint for DECCipherModesGCM.TGCM.CalcGaloisHash in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 573 BreakPoint at:004D6A8C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10929 VA:002C5AC0 Base:2162688 Address: 004D6AC0 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 579 BreakPoint at:004D6AC0 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10930 VA:002C5AF2 Base:2162688 Address: 004D6AF2 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 580 BreakPoint at:004D6AF2 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10931 VA:002C5B00 Base:2162688 Address: 004D6B00 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 581 BreakPoint at:004D6B00 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10932 VA:002C5B26 Base:2162688 Address: 004D6B26 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 583 BreakPoint at:004D6B26 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10933 VA:002C5B53 Base:2162688 Address: 004D6B53 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 585 BreakPoint at:004D6B53 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10934 VA:002C5B64 Base:2162688 Address: 004D6B64 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 586 BreakPoint at:004D6B64 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10935 VA:002C5BFA Base:2162688 Address: 004D6BFA +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 587 BreakPoint at:004D6BFA +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10936 VA:002C5C09 Base:2162688 Address: 004D6C09 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 588 BreakPoint at:004D6C09 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10937 VA:002C5C11 Base:2162688 Address: 004D6C11 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 583 BreakPoint at:004D6C11 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10938 VA:002C5C29 Base:2162688 Address: 004D6C29 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 590 BreakPoint at:004D6C29 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10939 VA:002C5C40 Base:2162688 Address: 004D6C40 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 592 BreakPoint at:004D6C40 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10940 VA:002C5C51 Base:2162688 Address: 004D6C51 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 593 BreakPoint at:004D6C51 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10941 VA:002C5D2C Base:2162688 Address: 004D6D2C +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 596 BreakPoint at:004D6D2C +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10942 VA:002C5D87 Base:2162688 Address: 004D6D87 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 598 BreakPoint at:004D6D87 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10943 VA:002C5DAC Base:2162688 Address: 004D6DAC +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 599 BreakPoint at:004D6DAC +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10944 VA:002C5DE1 Base:2162688 Address: 004D6DE1 +Adding breakpoint for DECCipherModesGCM.TGCM.DecodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 610 BreakPoint at:004D6DE1 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10945 VA:002C5E14 Base:2162688 Address: 004D6E14 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 616 BreakPoint at:004D6E14 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10946 VA:002C5E46 Base:2162688 Address: 004D6E46 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 617 BreakPoint at:004D6E46 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10947 VA:002C5E54 Base:2162688 Address: 004D6E54 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 618 BreakPoint at:004D6E54 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10948 VA:002C5E7A Base:2162688 Address: 004D6E7A +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 622 BreakPoint at:004D6E7A +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10949 VA:002C5E8D Base:2162688 Address: 004D6E8D +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 625 BreakPoint at:004D6E8D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10950 VA:002C5E9E Base:2162688 Address: 004D6E9E +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 627 BreakPoint at:004D6E9E +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10951 VA:002C5F2B Base:2162688 Address: 004D6F2B +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 629 BreakPoint at:004D6F2B +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10952 VA:002C5F3A Base:2162688 Address: 004D6F3A +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 631 BreakPoint at:004D6F3A +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10953 VA:002C5F49 Base:2162688 Address: 004D6F49 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 623 BreakPoint at:004D6F49 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10954 VA:002C5F5D Base:2162688 Address: 004D6F5D +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 634 BreakPoint at:004D6F5D +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10955 VA:002C5F74 Base:2162688 Address: 004D6F74 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 636 BreakPoint at:004D6F74 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10956 VA:002C5F85 Base:2162688 Address: 004D6F85 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 637 BreakPoint at:004D6F85 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10957 VA:002C6060 Base:2162688 Address: 004D7060 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 640 BreakPoint at:004D7060 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10958 VA:002C60BB Base:2162688 Address: 004D70BB +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 641 BreakPoint at:004D70BB +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10959 VA:002C60E0 Base:2162688 Address: 004D70E0 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 642 BreakPoint at:004D70E0 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10960 VA:002C6115 Base:2162688 Address: 004D7115 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeGCM in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 643 BreakPoint at:004D7115 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10961 VA:002C6148 Base:2162688 Address: 004D7148 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeT128 in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 646 BreakPoint at:004D7148 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10962 VA:002C6160 Base:2162688 Address: 004D7160 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeT128 in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 647 BreakPoint at:004D7160 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10963 VA:002C6177 Base:2162688 Address: 004D7177 +Adding breakpoint for DECCipherModesGCM.TGCM.EncodeT128 in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 648 BreakPoint at:004D7177 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10964 VA:002C6180 Base:2162688 Address: 004D7180 +Adding breakpoint for DECCipherModesGCM.TGCM.GetAuthenticationTagBitLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 651 BreakPoint at:004D7180 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10965 VA:002C6189 Base:2162688 Address: 004D7189 +Adding breakpoint for DECCipherModesGCM.TGCM.GetAuthenticationTagBitLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 652 BreakPoint at:004D7189 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10966 VA:002C6198 Base:2162688 Address: 004D7198 +Adding breakpoint for DECCipherModesGCM.TGCM.GetAuthenticationTagBitLength in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 653 BreakPoint at:004D7198 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10967 VA:002C61A0 Base:2162688 Address: 004D71A0 +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 660 BreakPoint at:004D71A0 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10968 VA:002C61AC Base:2162688 Address: 004D71AC +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 661 BreakPoint at:004D71AC +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10969 VA:002C61C4 Base:2162688 Address: 004D71C4 +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 664 BreakPoint at:004D71C4 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10970 VA:002C61C9 Base:2162688 Address: 004D71C9 +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 665 BreakPoint at:004D71C9 +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10971 VA:002C61FB Base:2162688 Address: 004D71FB +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 664 BreakPoint at:004D71FB +Setting BreakPoint for module: DECCipherModesGCM unit DECCipherModesGCM.pas moduleName: DECCipherModesGCM unitModuleName: DECCipherModesGCM addr:10972 VA:002C6201 Base:2162688 Address: 004D7201 +Adding breakpoint for DECCipherModesGCM.TGCM.GetStandardAuthenticationTagBitLengths in DECCipherModesGCM.pas +TBreakPoint.Activate: +Activate DECCipherModesGCM.pas line 666 BreakPoint at:004D7201 +Module name "DECCipherModesGCM" did not match module from address name "DECCipherInterface" at address:002C620C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10974 VA:002C66F8 Base:2162688 Address: 004D76F8 +Adding breakpoint for DECCipherModes.TDECCipherModes.ReportInvalidMessageLength in DECCipherModes.pas +Creating class info for DECCipherModes class TDECCipherModes +TBreakPoint.Activate: +Activate DECCipherModes.pas line 471 BreakPoint at:004D76F8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10975 VA:002C6717 Base:2162688 Address: 004D7717 +Adding breakpoint for DECCipherModes.TDECCipherModes.ReportInvalidMessageLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 472 BreakPoint at:004D7717 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10976 VA:002C676B Base:2162688 Address: 004D776B +Adding breakpoint for DECCipherModes.TDECCipherModes.ReportInvalidMessageLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 476 BreakPoint at:004D776B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10977 VA:002C6790 Base:2162688 Address: 004D7790 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 479 BreakPoint at:004D7790 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10978 VA:002C679C Base:2162688 Address: 004D779C +Adding breakpoint for DECCipherModes.TDECCipherModes.SetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 480 BreakPoint at:004D779C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10979 VA:002C67A5 Base:2162688 Address: 004D77A5 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 481 BreakPoint at:004D77A5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10980 VA:002C67C0 Base:2162688 Address: 004D77C0 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 483 BreakPoint at:004D77C0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10981 VA:002C67E8 Base:2162688 Address: 004D77E8 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 484 BreakPoint at:004D77E8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10982 VA:002C6804 Base:2162688 Address: 004D7804 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 487 BreakPoint at:004D7804 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10983 VA:002C6810 Base:2162688 Address: 004D7810 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 488 BreakPoint at:004D7810 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10984 VA:002C6819 Base:2162688 Address: 004D7819 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 489 BreakPoint at:004D7819 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10985 VA:002C6834 Base:2162688 Address: 004D7834 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 491 BreakPoint at:004D7834 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10986 VA:002C685C Base:2162688 Address: 004D785C +Adding breakpoint for DECCipherModes.TDECCipherModes.SetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 492 BreakPoint at:004D785C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10987 VA:002C6878 Base:2162688 Address: 004D7878 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 496 BreakPoint at:004D7878 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10988 VA:002C6884 Base:2162688 Address: 004D7884 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 497 BreakPoint at:004D7884 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10989 VA:002C688D Base:2162688 Address: 004D788D +Adding breakpoint for DECCipherModes.TDECCipherModes.SetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 498 BreakPoint at:004D788D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10990 VA:002C68A6 Base:2162688 Address: 004D78A6 +Adding breakpoint for DECCipherModes.TDECCipherModes.SetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 500 BreakPoint at:004D78A6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10991 VA:002C68CE Base:2162688 Address: 004D78CE +Adding breakpoint for DECCipherModes.TDECCipherModes.SetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 501 BreakPoint at:004D78CE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10992 VA:002C68EC Base:2162688 Address: 004D78EC +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 504 BreakPoint at:004D78EC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10993 VA:002C68FC Base:2162688 Address: 004D78FC +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 505 BreakPoint at:004D78FC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10994 VA:002C690A Base:2162688 Address: 004D790A +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 507 BreakPoint at:004D790A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10995 VA:002C6949 Base:2162688 Address: 004D7949 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 508 BreakPoint at:004D7949 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10996 VA:002C6960 Base:2162688 Address: 004D7960 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 509 BreakPoint at:004D7960 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10997 VA:002C6977 Base:2162688 Address: 004D7977 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 510 BreakPoint at:004D7977 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10998 VA:002C698E Base:2162688 Address: 004D798E +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 514 BreakPoint at:004D798E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:10999 VA:002C69A2 Base:2162688 Address: 004D79A2 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 515 BreakPoint at:004D79A2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11000 VA:002C69B6 Base:2162688 Address: 004D79B6 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 516 BreakPoint at:004D79B6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11001 VA:002C69CA Base:2162688 Address: 004D79CA +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 517 BreakPoint at:004D79CA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11002 VA:002C69DE Base:2162688 Address: 004D79DE +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 518 BreakPoint at:004D79DE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11003 VA:002C69F2 Base:2162688 Address: 004D79F2 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 519 BreakPoint at:004D79F2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11004 VA:002C6A06 Base:2162688 Address: 004D7A06 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 520 BreakPoint at:004D7A06 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11005 VA:002C6A18 Base:2162688 Address: 004D7A18 +Adding breakpoint for DECCipherModes.TDECCipherModes.Encode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 522 BreakPoint at:004D7A18 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11006 VA:002C6A24 Base:2162688 Address: 004D7A24 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 527 BreakPoint at:004D7A24 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11007 VA:002C6A34 Base:2162688 Address: 004D7A34 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 528 BreakPoint at:004D7A34 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11008 VA:002C6A45 Base:2162688 Address: 004D7A45 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 530 BreakPoint at:004D7A45 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11009 VA:002C6A57 Base:2162688 Address: 004D7A57 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 531 BreakPoint at:004D7A57 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11010 VA:002C6A63 Base:2162688 Address: 004D7A63 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 535 BreakPoint at:004D7A63 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11011 VA:002C6A73 Base:2162688 Address: 004D7A73 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 536 BreakPoint at:004D7A73 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11012 VA:002C6A78 Base:2162688 Address: 004D7A78 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 537 BreakPoint at:004D7A78 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11013 VA:002C6A80 Base:2162688 Address: 004D7A80 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 539 BreakPoint at:004D7A80 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11014 VA:002C6AB8 Base:2162688 Address: 004D7AB8 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 540 BreakPoint at:004D7AB8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11015 VA:002C6AC8 Base:2162688 Address: 004D7AC8 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 537 BreakPoint at:004D7AC8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11016 VA:002C6AD0 Base:2162688 Address: 004D7AD0 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 542 BreakPoint at:004D7AD0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11017 VA:002C6AEA Base:2162688 Address: 004D7AEA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 543 BreakPoint at:004D7AEA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11018 VA:002C6AF0 Base:2162688 Address: 004D7AF0 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 545 BreakPoint at:004D7AF0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11019 VA:002C6B06 Base:2162688 Address: 004D7B06 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 547 BreakPoint at:004D7B06 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11020 VA:002C6B3B Base:2162688 Address: 004D7B3B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 548 BreakPoint at:004D7B3B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11021 VA:002C6B44 Base:2162688 Address: 004D7B44 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 552 BreakPoint at:004D7B44 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11022 VA:002C6B4B Base:2162688 Address: 004D7B4B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 553 BreakPoint at:004D7B4B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11023 VA:002C6B56 Base:2162688 Address: 004D7B56 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 557 BreakPoint at:004D7B56 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11024 VA:002C6B60 Base:2162688 Address: 004D7B60 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 562 BreakPoint at:004D7B60 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11025 VA:002C6B70 Base:2162688 Address: 004D7B70 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 563 BreakPoint at:004D7B70 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11026 VA:002C6B75 Base:2162688 Address: 004D7B75 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 564 BreakPoint at:004D7B75 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11027 VA:002C6B81 Base:2162688 Address: 004D7B81 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 566 BreakPoint at:004D7B81 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11028 VA:002C6B9C Base:2162688 Address: 004D7B9C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 567 BreakPoint at:004D7B9C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11029 VA:002C6BBE Base:2162688 Address: 004D7BBE +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 568 BreakPoint at:004D7BBE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11030 VA:002C6BEB Base:2162688 Address: 004D7BEB +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 569 BreakPoint at:004D7BEB +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11031 VA:002C6C1E Base:2162688 Address: 004D7C1E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 570 BreakPoint at:004D7C1E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11032 VA:002C6C29 Base:2162688 Address: 004D7C29 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 564 BreakPoint at:004D7C29 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11033 VA:002C6C35 Base:2162688 Address: 004D7C35 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 572 BreakPoint at:004D7C35 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11034 VA:002C6C3C Base:2162688 Address: 004D7C3C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 573 BreakPoint at:004D7C3C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11035 VA:002C6C44 Base:2162688 Address: 004D7C44 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 579 BreakPoint at:004D7C44 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11036 VA:002C6C54 Base:2162688 Address: 004D7C54 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 580 BreakPoint at:004D7C54 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11037 VA:002C6C59 Base:2162688 Address: 004D7C59 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 581 BreakPoint at:004D7C59 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11038 VA:002C6C65 Base:2162688 Address: 004D7C65 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 583 BreakPoint at:004D7C65 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11039 VA:002C6C80 Base:2162688 Address: 004D7C80 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 584 BreakPoint at:004D7C80 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11040 VA:002C6CA2 Base:2162688 Address: 004D7CA2 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 585 BreakPoint at:004D7CA2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11041 VA:002C6CD5 Base:2162688 Address: 004D7CD5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 586 BreakPoint at:004D7CD5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11042 VA:002C6D10 Base:2162688 Address: 004D7D10 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 587 BreakPoint at:004D7D10 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11043 VA:002C6D1B Base:2162688 Address: 004D7D1B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 581 BreakPoint at:004D7D1B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11044 VA:002C6D27 Base:2162688 Address: 004D7D27 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 589 BreakPoint at:004D7D27 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11045 VA:002C6D2E Base:2162688 Address: 004D7D2E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 590 BreakPoint at:004D7D2E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11046 VA:002C6D38 Base:2162688 Address: 004D7D38 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 596 BreakPoint at:004D7D38 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11047 VA:002C6D48 Base:2162688 Address: 004D7D48 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 597 BreakPoint at:004D7D48 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11048 VA:002C6D4D Base:2162688 Address: 004D7D4D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 598 BreakPoint at:004D7D4D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11049 VA:002C6D59 Base:2162688 Address: 004D7D59 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 600 BreakPoint at:004D7D59 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11050 VA:002C6D74 Base:2162688 Address: 004D7D74 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 601 BreakPoint at:004D7D74 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11051 VA:002C6DA7 Base:2162688 Address: 004D7DA7 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 602 BreakPoint at:004D7DA7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11052 VA:002C6DC9 Base:2162688 Address: 004D7DC9 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 603 BreakPoint at:004D7DC9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11053 VA:002C6E04 Base:2162688 Address: 004D7E04 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 604 BreakPoint at:004D7E04 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11054 VA:002C6E0F Base:2162688 Address: 004D7E0F +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 598 BreakPoint at:004D7E0F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11055 VA:002C6E1B Base:2162688 Address: 004D7E1B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 606 BreakPoint at:004D7E1B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11056 VA:002C6E22 Base:2162688 Address: 004D7E22 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 607 BreakPoint at:004D7E22 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11057 VA:002C6E2C Base:2162688 Address: 004D7E2C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 614 BreakPoint at:004D7E2C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11058 VA:002C6E3C Base:2162688 Address: 004D7E3C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 615 BreakPoint at:004D7E3C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11059 VA:002C6E43 Base:2162688 Address: 004D7E43 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 616 BreakPoint at:004D7E43 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11060 VA:002C6E50 Base:2162688 Address: 004D7E50 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 618 BreakPoint at:004D7E50 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11061 VA:002C6E66 Base:2162688 Address: 004D7E66 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 619 BreakPoint at:004D7E66 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11062 VA:002C6E6E Base:2162688 Address: 004D7E6E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 620 BreakPoint at:004D7E6E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11063 VA:002C6E74 Base:2162688 Address: 004D7E74 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 621 BreakPoint at:004D7E74 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11064 VA:002C6E9D Base:2162688 Address: 004D7E9D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 622 BreakPoint at:004D7E9D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11065 VA:002C6EC2 Base:2162688 Address: 004D7EC2 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 623 BreakPoint at:004D7EC2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11066 VA:002C6ED2 Base:2162688 Address: 004D7ED2 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 624 BreakPoint at:004D7ED2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11067 VA:002C6EE4 Base:2162688 Address: 004D7EE4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 626 BreakPoint at:004D7EE4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11068 VA:002C6EF1 Base:2162688 Address: 004D7EF1 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 627 BreakPoint at:004D7EF1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11069 VA:002C6F09 Base:2162688 Address: 004D7F09 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 628 BreakPoint at:004D7F09 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11070 VA:002C6F21 Base:2162688 Address: 004D7F21 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 629 BreakPoint at:004D7F21 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11071 VA:002C6F29 Base:2162688 Address: 004D7F29 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 631 BreakPoint at:004D7F29 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11072 VA:002C6F39 Base:2162688 Address: 004D7F39 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 632 BreakPoint at:004D7F39 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11073 VA:002C6F42 Base:2162688 Address: 004D7F42 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 633 BreakPoint at:004D7F42 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11074 VA:002C6F47 Base:2162688 Address: 004D7F47 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 634 BreakPoint at:004D7F47 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11075 VA:002C6F53 Base:2162688 Address: 004D7F53 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 636 BreakPoint at:004D7F53 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11076 VA:002C6F6B Base:2162688 Address: 004D7F6B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 637 BreakPoint at:004D7F6B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11077 VA:002C6FA7 Base:2162688 Address: 004D7FA7 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 638 BreakPoint at:004D7FA7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11078 VA:002C6FBF Base:2162688 Address: 004D7FBF +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 639 BreakPoint at:004D7FBF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11079 VA:002C6FCF Base:2162688 Address: 004D7FCF +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 634 BreakPoint at:004D7FCF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11080 VA:002C6FDB Base:2162688 Address: 004D7FDB +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 641 BreakPoint at:004D7FDB +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11081 VA:002C6FE6 Base:2162688 Address: 004D7FE6 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 642 BreakPoint at:004D7FE6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11082 VA:002C6FFA Base:2162688 Address: 004D7FFA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 643 BreakPoint at:004D7FFA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11083 VA:002C7014 Base:2162688 Address: 004D8014 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 644 BreakPoint at:004D8014 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11084 VA:002C701E Base:2162688 Address: 004D801E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 646 BreakPoint at:004D801E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11085 VA:002C7039 Base:2162688 Address: 004D8039 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 647 BreakPoint at:004D8039 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11086 VA:002C7072 Base:2162688 Address: 004D8072 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 648 BreakPoint at:004D8072 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11087 VA:002C7095 Base:2162688 Address: 004D8095 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 649 BreakPoint at:004D8095 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11088 VA:002C709E Base:2162688 Address: 004D809E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 651 BreakPoint at:004D809E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11089 VA:002C70A8 Base:2162688 Address: 004D80A8 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 657 BreakPoint at:004D80A8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11090 VA:002C70B8 Base:2162688 Address: 004D80B8 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 658 BreakPoint at:004D80B8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11091 VA:002C70BF Base:2162688 Address: 004D80BF +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 659 BreakPoint at:004D80BF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11092 VA:002C70CC Base:2162688 Address: 004D80CC +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 661 BreakPoint at:004D80CC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11093 VA:002C70E2 Base:2162688 Address: 004D80E2 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 662 BreakPoint at:004D80E2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11094 VA:002C70EA Base:2162688 Address: 004D80EA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 663 BreakPoint at:004D80EA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11095 VA:002C70F0 Base:2162688 Address: 004D80F0 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 664 BreakPoint at:004D80F0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11096 VA:002C7119 Base:2162688 Address: 004D8119 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 665 BreakPoint at:004D8119 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11097 VA:002C7129 Base:2162688 Address: 004D8129 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 666 BreakPoint at:004D8129 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11098 VA:002C713B Base:2162688 Address: 004D813B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 668 BreakPoint at:004D813B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11099 VA:002C7148 Base:2162688 Address: 004D8148 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 669 BreakPoint at:004D8148 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11100 VA:002C7160 Base:2162688 Address: 004D8160 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 670 BreakPoint at:004D8160 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11101 VA:002C7178 Base:2162688 Address: 004D8178 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 671 BreakPoint at:004D8178 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11102 VA:002C7180 Base:2162688 Address: 004D8180 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 673 BreakPoint at:004D8180 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11103 VA:002C7190 Base:2162688 Address: 004D8190 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 674 BreakPoint at:004D8190 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11104 VA:002C7195 Base:2162688 Address: 004D8195 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 675 BreakPoint at:004D8195 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11105 VA:002C719D Base:2162688 Address: 004D819D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 677 BreakPoint at:004D819D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11106 VA:002C71B8 Base:2162688 Address: 004D81B8 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 678 BreakPoint at:004D81B8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11107 VA:002C71F4 Base:2162688 Address: 004D81F4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 679 BreakPoint at:004D81F4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11108 VA:002C7204 Base:2162688 Address: 004D8204 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 675 BreakPoint at:004D8204 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11109 VA:002C720C Base:2162688 Address: 004D820C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 681 BreakPoint at:004D820C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11110 VA:002C7226 Base:2162688 Address: 004D8226 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 682 BreakPoint at:004D8226 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11111 VA:002C722C Base:2162688 Address: 004D822C +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 684 BreakPoint at:004D822C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11112 VA:002C7247 Base:2162688 Address: 004D8247 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 685 BreakPoint at:004D8247 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11113 VA:002C7280 Base:2162688 Address: 004D8280 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 686 BreakPoint at:004D8280 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11114 VA:002C7289 Base:2162688 Address: 004D8289 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 688 BreakPoint at:004D8289 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11115 VA:002C7290 Base:2162688 Address: 004D8290 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 691 BreakPoint at:004D8290 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11116 VA:002C729C Base:2162688 Address: 004D829C +Adding breakpoint for DECCipherModes.TDECCipherModes.GetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 692 BreakPoint at:004D829C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11117 VA:002C72A5 Base:2162688 Address: 004D82A5 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 693 BreakPoint at:004D82A5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11118 VA:002C72C1 Base:2162688 Address: 004D82C1 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 695 BreakPoint at:004D82C1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11119 VA:002C72E9 Base:2162688 Address: 004D82E9 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetDataToAuthenticate in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 696 BreakPoint at:004D82E9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11120 VA:002C7308 Base:2162688 Address: 004D8308 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 699 BreakPoint at:004D8308 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11121 VA:002C7314 Base:2162688 Address: 004D8314 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 700 BreakPoint at:004D8314 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11122 VA:002C731D Base:2162688 Address: 004D831D +Adding breakpoint for DECCipherModes.TDECCipherModes.GetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 701 BreakPoint at:004D831D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11123 VA:002C7339 Base:2162688 Address: 004D8339 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 703 BreakPoint at:004D8339 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11124 VA:002C7361 Base:2162688 Address: 004D8361 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetExpectedAuthenticationResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 704 BreakPoint at:004D8361 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11125 VA:002C7380 Base:2162688 Address: 004D8380 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 707 BreakPoint at:004D8380 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11126 VA:002C738C Base:2162688 Address: 004D838C +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 708 BreakPoint at:004D838C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11127 VA:002C7396 Base:2162688 Address: 004D8396 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 709 BreakPoint at:004D8396 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11128 VA:002C73A6 Base:2162688 Address: 004D83A6 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 712 BreakPoint at:004D83A6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11129 VA:002C73BE Base:2162688 Address: 004D83BE +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 713 BreakPoint at:004D83BE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11130 VA:002C73D9 Base:2162688 Address: 004D83D9 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetStandardAuthenticationTagBitLengths in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 716 BreakPoint at:004D83D9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11131 VA:002C73E0 Base:2162688 Address: 004D83E0 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 719 BreakPoint at:004D83E0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11132 VA:002C73E9 Base:2162688 Address: 004D83E9 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 720 BreakPoint at:004D83E9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11133 VA:002C73F2 Base:2162688 Address: 004D83F2 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 721 BreakPoint at:004D83F2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11134 VA:002C740B Base:2162688 Address: 004D840B +Adding breakpoint for DECCipherModes.TDECCipherModes.GetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 723 BreakPoint at:004D840B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11135 VA:002C7433 Base:2162688 Address: 004D8433 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetAuthenticationResultBitLength in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 724 BreakPoint at:004D8433 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11136 VA:002C7454 Base:2162688 Address: 004D8454 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetCalcAuthenticatonResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 727 BreakPoint at:004D8454 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11137 VA:002C7460 Base:2162688 Address: 004D8460 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetCalcAuthenticatonResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 728 BreakPoint at:004D8460 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11138 VA:002C7469 Base:2162688 Address: 004D8469 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetCalcAuthenticatonResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 729 BreakPoint at:004D8469 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11139 VA:002C7485 Base:2162688 Address: 004D8485 +Adding breakpoint for DECCipherModes.TDECCipherModes.GetCalcAuthenticatonResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 731 BreakPoint at:004D8485 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11140 VA:002C74AD Base:2162688 Address: 004D84AD +Adding breakpoint for DECCipherModes.TDECCipherModes.GetCalcAuthenticatonResult in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 732 BreakPoint at:004D84AD +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11141 VA:002C74CC Base:2162688 Address: 004D84CC +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 735 BreakPoint at:004D84CC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11142 VA:002C74E8 Base:2162688 Address: 004D84E8 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 736 BreakPoint at:004D84E8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11143 VA:002C74F1 Base:2162688 Address: 004D84F1 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 738 BreakPoint at:004D84F1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11144 VA:002C7502 Base:2162688 Address: 004D8502 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 739 BreakPoint at:004D8502 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11145 VA:002C7516 Base:2162688 Address: 004D8516 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 742 BreakPoint at:004D8516 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11146 VA:002C755E Base:2162688 Address: 004D855E +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 747 BreakPoint at:004D855E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11147 VA:002C7567 Base:2162688 Address: 004D8567 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 748 BreakPoint at:004D8567 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11148 VA:002C7587 Base:2162688 Address: 004D8587 +Adding breakpoint for DECCipherModes.TDECCipherModes.InitMode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 749 BreakPoint at:004D8587 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11149 VA:002C75AC Base:2162688 Address: 004D85AC +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 755 BreakPoint at:004D85AC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11150 VA:002C75BC Base:2162688 Address: 004D85BC +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 756 BreakPoint at:004D85BC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11151 VA:002C75C3 Base:2162688 Address: 004D85C3 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 757 BreakPoint at:004D85C3 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11152 VA:002C75D0 Base:2162688 Address: 004D85D0 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 759 BreakPoint at:004D85D0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11153 VA:002C75E6 Base:2162688 Address: 004D85E6 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 760 BreakPoint at:004D85E6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11154 VA:002C75EE Base:2162688 Address: 004D85EE +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 761 BreakPoint at:004D85EE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11155 VA:002C75F4 Base:2162688 Address: 004D85F4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 762 BreakPoint at:004D85F4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11156 VA:002C761D Base:2162688 Address: 004D861D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 763 BreakPoint at:004D861D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11157 VA:002C765E Base:2162688 Address: 004D865E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 764 BreakPoint at:004D865E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11158 VA:002C766E Base:2162688 Address: 004D866E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 765 BreakPoint at:004D866E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11159 VA:002C7680 Base:2162688 Address: 004D8680 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 767 BreakPoint at:004D8680 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11160 VA:002C768D Base:2162688 Address: 004D868D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 768 BreakPoint at:004D868D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11161 VA:002C76A5 Base:2162688 Address: 004D86A5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 769 BreakPoint at:004D86A5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11162 VA:002C76BD Base:2162688 Address: 004D86BD +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 770 BreakPoint at:004D86BD +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11163 VA:002C76C5 Base:2162688 Address: 004D86C5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 772 BreakPoint at:004D86C5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11164 VA:002C76D5 Base:2162688 Address: 004D86D5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 773 BreakPoint at:004D86D5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11165 VA:002C76DA Base:2162688 Address: 004D86DA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 774 BreakPoint at:004D86DA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11166 VA:002C76E6 Base:2162688 Address: 004D86E6 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 776 BreakPoint at:004D86E6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11167 VA:002C7701 Base:2162688 Address: 004D8701 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 777 BreakPoint at:004D8701 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11168 VA:002C773D Base:2162688 Address: 004D873D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 778 BreakPoint at:004D873D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11169 VA:002C776A Base:2162688 Address: 004D876A +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 779 BreakPoint at:004D876A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11170 VA:002C777A Base:2162688 Address: 004D877A +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 774 BreakPoint at:004D877A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11171 VA:002C7786 Base:2162688 Address: 004D8786 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 781 BreakPoint at:004D8786 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11172 VA:002C77A0 Base:2162688 Address: 004D87A0 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 782 BreakPoint at:004D87A0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11173 VA:002C77AA Base:2162688 Address: 004D87AA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 784 BreakPoint at:004D87AA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11174 VA:002C77C5 Base:2162688 Address: 004D87C5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 785 BreakPoint at:004D87C5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11175 VA:002C77FE Base:2162688 Address: 004D87FE +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 786 BreakPoint at:004D87FE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11176 VA:002C7828 Base:2162688 Address: 004D8828 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 787 BreakPoint at:004D8828 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11177 VA:002C7831 Base:2162688 Address: 004D8831 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 789 BreakPoint at:004D8831 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11178 VA:002C7838 Base:2162688 Address: 004D8838 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 795 BreakPoint at:004D8838 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11179 VA:002C7848 Base:2162688 Address: 004D8848 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 796 BreakPoint at:004D8848 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11180 VA:002C7858 Base:2162688 Address: 004D8858 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 797 BreakPoint at:004D8858 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11181 VA:002C7861 Base:2162688 Address: 004D8861 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 798 BreakPoint at:004D8861 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11182 VA:002C7866 Base:2162688 Address: 004D8866 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 799 BreakPoint at:004D8866 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11183 VA:002C786E Base:2162688 Address: 004D886E +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 801 BreakPoint at:004D886E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11184 VA:002C78A7 Base:2162688 Address: 004D88A7 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 802 BreakPoint at:004D88A7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11185 VA:002C78BF Base:2162688 Address: 004D88BF +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 803 BreakPoint at:004D88BF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11186 VA:002C78D4 Base:2162688 Address: 004D88D4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 804 BreakPoint at:004D88D4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11187 VA:002C78E4 Base:2162688 Address: 004D88E4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 799 BreakPoint at:004D88E4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11188 VA:002C78EC Base:2162688 Address: 004D88EC +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 806 BreakPoint at:004D88EC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11189 VA:002C78F7 Base:2162688 Address: 004D88F7 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 807 BreakPoint at:004D88F7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11190 VA:002C790B Base:2162688 Address: 004D890B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 808 BreakPoint at:004D890B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11191 VA:002C7925 Base:2162688 Address: 004D8925 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 809 BreakPoint at:004D8925 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11192 VA:002C792B Base:2162688 Address: 004D892B +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 811 BreakPoint at:004D892B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11193 VA:002C7960 Base:2162688 Address: 004D8960 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 812 BreakPoint at:004D8960 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11194 VA:002C7969 Base:2162688 Address: 004D8969 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 815 BreakPoint at:004D8969 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11195 VA:002C7970 Base:2162688 Address: 004D8970 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 816 BreakPoint at:004D8970 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11196 VA:002C7978 Base:2162688 Address: 004D8978 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 821 BreakPoint at:004D8978 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11197 VA:002C7988 Base:2162688 Address: 004D8988 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 822 BreakPoint at:004D8988 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11198 VA:002C7998 Base:2162688 Address: 004D8998 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 823 BreakPoint at:004D8998 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11199 VA:002C799D Base:2162688 Address: 004D899D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 824 BreakPoint at:004D899D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11200 VA:002C79A9 Base:2162688 Address: 004D89A9 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 826 BreakPoint at:004D89A9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11201 VA:002C79E5 Base:2162688 Address: 004D89E5 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 827 BreakPoint at:004D89E5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11202 VA:002C7A1D Base:2162688 Address: 004D8A1D +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 828 BreakPoint at:004D8A1D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11203 VA:002C7A4A Base:2162688 Address: 004D8A4A +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 829 BreakPoint at:004D8A4A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11204 VA:002C7A5A Base:2162688 Address: 004D8A5A +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 824 BreakPoint at:004D8A5A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11205 VA:002C7A66 Base:2162688 Address: 004D8A66 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 831 BreakPoint at:004D8A66 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11206 VA:002C7A80 Base:2162688 Address: 004D8A80 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 832 BreakPoint at:004D8A80 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11207 VA:002C7A86 Base:2162688 Address: 004D8A86 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 834 BreakPoint at:004D8A86 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11208 VA:002C7ABB Base:2162688 Address: 004D8ABB +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 835 BreakPoint at:004D8ABB +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11209 VA:002C7AC4 Base:2162688 Address: 004D8AC4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 838 BreakPoint at:004D8AC4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11210 VA:002C7ACB Base:2162688 Address: 004D8ACB +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 839 BreakPoint at:004D8ACB +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11211 VA:002C7AD4 Base:2162688 Address: 004D8AD4 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 845 BreakPoint at:004D8AD4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11212 VA:002C7AFA Base:2162688 Address: 004D8AFA +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 846 BreakPoint at:004D8AFA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11213 VA:002C7B00 Base:2162688 Address: 004D8B00 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 848 BreakPoint at:004D8B00 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11214 VA:002C7B11 Base:2162688 Address: 004D8B11 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 849 BreakPoint at:004D8B11 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11215 VA:002C7B24 Base:2162688 Address: 004D8B24 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 853 BreakPoint at:004D8B24 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11216 VA:002C7B32 Base:2162688 Address: 004D8B32 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 854 BreakPoint at:004D8B32 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11217 VA:002C7B40 Base:2162688 Address: 004D8B40 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 857 BreakPoint at:004D8B40 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11218 VA:002C7B55 Base:2162688 Address: 004D8B55 +Adding breakpoint for DECCipherModes.TDECCipherModes.EncodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 858 BreakPoint at:004D8B55 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11219 VA:002C7B88 Base:2162688 Address: 004D8B88 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 886 BreakPoint at:004D8B88 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11220 VA:002C7B98 Base:2162688 Address: 004D8B98 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 887 BreakPoint at:004D8B98 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11221 VA:002C7BA6 Base:2162688 Address: 004D8BA6 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 889 BreakPoint at:004D8BA6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11222 VA:002C7BE5 Base:2162688 Address: 004D8BE5 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 890 BreakPoint at:004D8BE5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11223 VA:002C7BFC Base:2162688 Address: 004D8BFC +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 891 BreakPoint at:004D8BFC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11224 VA:002C7C13 Base:2162688 Address: 004D8C13 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 892 BreakPoint at:004D8C13 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11225 VA:002C7C2A Base:2162688 Address: 004D8C2A +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 896 BreakPoint at:004D8C2A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11226 VA:002C7C3E Base:2162688 Address: 004D8C3E +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 897 BreakPoint at:004D8C3E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11227 VA:002C7C52 Base:2162688 Address: 004D8C52 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 898 BreakPoint at:004D8C52 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11228 VA:002C7C66 Base:2162688 Address: 004D8C66 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 899 BreakPoint at:004D8C66 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11229 VA:002C7C7A Base:2162688 Address: 004D8C7A +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 900 BreakPoint at:004D8C7A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11230 VA:002C7C8E Base:2162688 Address: 004D8C8E +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 901 BreakPoint at:004D8C8E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11231 VA:002C7CA2 Base:2162688 Address: 004D8CA2 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 902 BreakPoint at:004D8CA2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11232 VA:002C7CB4 Base:2162688 Address: 004D8CB4 +Adding breakpoint for DECCipherModes.TDECCipherModes.Decode in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 904 BreakPoint at:004D8CB4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11233 VA:002C7CC0 Base:2162688 Address: 004D8CC0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 909 BreakPoint at:004D8CC0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11234 VA:002C7CD0 Base:2162688 Address: 004D8CD0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 910 BreakPoint at:004D8CD0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11235 VA:002C7CE1 Base:2162688 Address: 004D8CE1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 912 BreakPoint at:004D8CE1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11236 VA:002C7CF3 Base:2162688 Address: 004D8CF3 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 913 BreakPoint at:004D8CF3 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11237 VA:002C7CFF Base:2162688 Address: 004D8CFF +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 917 BreakPoint at:004D8CFF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11238 VA:002C7D0F Base:2162688 Address: 004D8D0F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 918 BreakPoint at:004D8D0F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11239 VA:002C7D14 Base:2162688 Address: 004D8D14 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 919 BreakPoint at:004D8D14 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11240 VA:002C7D1C Base:2162688 Address: 004D8D1C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 921 BreakPoint at:004D8D1C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11241 VA:002C7D54 Base:2162688 Address: 004D8D54 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 922 BreakPoint at:004D8D54 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11242 VA:002C7D64 Base:2162688 Address: 004D8D64 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 919 BreakPoint at:004D8D64 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11243 VA:002C7D6C Base:2162688 Address: 004D8D6C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 924 BreakPoint at:004D8D6C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11244 VA:002C7D86 Base:2162688 Address: 004D8D86 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 925 BreakPoint at:004D8D86 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11245 VA:002C7D8C Base:2162688 Address: 004D8D8C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 927 BreakPoint at:004D8D8C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11246 VA:002C7DA2 Base:2162688 Address: 004D8DA2 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 929 BreakPoint at:004D8DA2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11247 VA:002C7DD7 Base:2162688 Address: 004D8DD7 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 930 BreakPoint at:004D8DD7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11248 VA:002C7DE0 Base:2162688 Address: 004D8DE0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 934 BreakPoint at:004D8DE0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11249 VA:002C7DE7 Base:2162688 Address: 004D8DE7 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 935 BreakPoint at:004D8DE7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11250 VA:002C7DF2 Base:2162688 Address: 004D8DF2 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeECBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 939 BreakPoint at:004D8DF2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11251 VA:002C7DFC Base:2162688 Address: 004D8DFC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 945 BreakPoint at:004D8DFC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11252 VA:002C7E22 Base:2162688 Address: 004D8E22 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 946 BreakPoint at:004D8E22 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11253 VA:002C7E28 Base:2162688 Address: 004D8E28 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 948 BreakPoint at:004D8E28 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11254 VA:002C7E39 Base:2162688 Address: 004D8E39 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 949 BreakPoint at:004D8E39 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11255 VA:002C7E4C Base:2162688 Address: 004D8E4C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 953 BreakPoint at:004D8E4C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11256 VA:002C7E5A Base:2162688 Address: 004D8E5A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 954 BreakPoint at:004D8E5A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11257 VA:002C7E68 Base:2162688 Address: 004D8E68 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 957 BreakPoint at:004D8E68 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11258 VA:002C7E7D Base:2162688 Address: 004D8E7D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeGCM in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 958 BreakPoint at:004D8E7D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11259 VA:002C7EB0 Base:2162688 Address: 004D8EB0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 964 BreakPoint at:004D8EB0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11260 VA:002C7EC0 Base:2162688 Address: 004D8EC0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 965 BreakPoint at:004D8EC0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11261 VA:002C7EC5 Base:2162688 Address: 004D8EC5 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 966 BreakPoint at:004D8EC5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11262 VA:002C7ED1 Base:2162688 Address: 004D8ED1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 968 BreakPoint at:004D8ED1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11263 VA:002C7EEC Base:2162688 Address: 004D8EEC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 969 BreakPoint at:004D8EEC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11264 VA:002C7F0E Base:2162688 Address: 004D8F0E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 970 BreakPoint at:004D8F0E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11265 VA:002C7F49 Base:2162688 Address: 004D8F49 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 971 BreakPoint at:004D8F49 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11266 VA:002C7F7C Base:2162688 Address: 004D8F7C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 972 BreakPoint at:004D8F7C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11267 VA:002C7F87 Base:2162688 Address: 004D8F87 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 966 BreakPoint at:004D8F87 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11268 VA:002C7F93 Base:2162688 Address: 004D8F93 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 974 BreakPoint at:004D8F93 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11269 VA:002C7F9A Base:2162688 Address: 004D8F9A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 975 BreakPoint at:004D8F9A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11270 VA:002C7FA4 Base:2162688 Address: 004D8FA4 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 981 BreakPoint at:004D8FA4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11271 VA:002C7FB4 Base:2162688 Address: 004D8FB4 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 982 BreakPoint at:004D8FB4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11272 VA:002C7FB9 Base:2162688 Address: 004D8FB9 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 983 BreakPoint at:004D8FB9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11273 VA:002C7FC5 Base:2162688 Address: 004D8FC5 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 985 BreakPoint at:004D8FC5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11274 VA:002C7FE0 Base:2162688 Address: 004D8FE0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 986 BreakPoint at:004D8FE0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11275 VA:002C8002 Base:2162688 Address: 004D9002 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 987 BreakPoint at:004D9002 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11276 VA:002C802F Base:2162688 Address: 004D902F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 988 BreakPoint at:004D902F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11277 VA:002C8062 Base:2162688 Address: 004D9062 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 989 BreakPoint at:004D9062 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11278 VA:002C806D Base:2162688 Address: 004D906D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 983 BreakPoint at:004D906D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11279 VA:002C8079 Base:2162688 Address: 004D9079 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 991 BreakPoint at:004D9079 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11280 VA:002C8080 Base:2162688 Address: 004D9080 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFB8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 992 BreakPoint at:004D9080 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11281 VA:002C8088 Base:2162688 Address: 004D9088 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 997 BreakPoint at:004D9088 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11282 VA:002C8098 Base:2162688 Address: 004D9098 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 998 BreakPoint at:004D9098 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11283 VA:002C809D Base:2162688 Address: 004D909D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 999 BreakPoint at:004D909D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11284 VA:002C80A9 Base:2162688 Address: 004D90A9 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1001 BreakPoint at:004D90A9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11285 VA:002C80C4 Base:2162688 Address: 004D90C4 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1002 BreakPoint at:004D90C4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11286 VA:002C80E6 Base:2162688 Address: 004D90E6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1003 BreakPoint at:004D90E6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11287 VA:002C8121 Base:2162688 Address: 004D9121 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1004 BreakPoint at:004D9121 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11288 VA:002C8154 Base:2162688 Address: 004D9154 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1005 BreakPoint at:004D9154 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11289 VA:002C815F Base:2162688 Address: 004D915F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 999 BreakPoint at:004D915F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11290 VA:002C816B Base:2162688 Address: 004D916B +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1007 BreakPoint at:004D916B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11291 VA:002C8172 Base:2162688 Address: 004D9172 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFS8 in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1008 BreakPoint at:004D9172 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11292 VA:002C817C Base:2162688 Address: 004D917C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1015 BreakPoint at:004D917C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11293 VA:002C818C Base:2162688 Address: 004D918C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1016 BreakPoint at:004D918C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11294 VA:002C8193 Base:2162688 Address: 004D9193 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1017 BreakPoint at:004D9193 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11295 VA:002C81A0 Base:2162688 Address: 004D91A0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1019 BreakPoint at:004D91A0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11296 VA:002C81B6 Base:2162688 Address: 004D91B6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1020 BreakPoint at:004D91B6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11297 VA:002C81BE Base:2162688 Address: 004D91BE +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1021 BreakPoint at:004D91BE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11298 VA:002C81C4 Base:2162688 Address: 004D91C4 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1022 BreakPoint at:004D91C4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11299 VA:002C81E9 Base:2162688 Address: 004D91E9 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1023 BreakPoint at:004D91E9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11300 VA:002C8212 Base:2162688 Address: 004D9212 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1024 BreakPoint at:004D9212 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11301 VA:002C8222 Base:2162688 Address: 004D9222 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1025 BreakPoint at:004D9222 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11302 VA:002C8234 Base:2162688 Address: 004D9234 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1027 BreakPoint at:004D9234 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11303 VA:002C8241 Base:2162688 Address: 004D9241 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1028 BreakPoint at:004D9241 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11304 VA:002C8259 Base:2162688 Address: 004D9259 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1029 BreakPoint at:004D9259 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11305 VA:002C8271 Base:2162688 Address: 004D9271 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1030 BreakPoint at:004D9271 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11306 VA:002C8279 Base:2162688 Address: 004D9279 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1033 BreakPoint at:004D9279 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11307 VA:002C8289 Base:2162688 Address: 004D9289 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1034 BreakPoint at:004D9289 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11308 VA:002C828E Base:2162688 Address: 004D928E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1035 BreakPoint at:004D928E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11309 VA:002C829A Base:2162688 Address: 004D929A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1037 BreakPoint at:004D929A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11310 VA:002C82A3 Base:2162688 Address: 004D92A3 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1038 BreakPoint at:004D92A3 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11311 VA:002C82AF Base:2162688 Address: 004D92AF +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1040 BreakPoint at:004D92AF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11312 VA:002C82C7 Base:2162688 Address: 004D92C7 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1041 BreakPoint at:004D92C7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11313 VA:002C8303 Base:2162688 Address: 004D9303 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1042 BreakPoint at:004D9303 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11314 VA:002C831B Base:2162688 Address: 004D931B +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1043 BreakPoint at:004D931B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11315 VA:002C832B Base:2162688 Address: 004D932B +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1038 BreakPoint at:004D932B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11316 VA:002C8337 Base:2162688 Address: 004D9337 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1045 BreakPoint at:004D9337 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11317 VA:002C8346 Base:2162688 Address: 004D9346 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1046 BreakPoint at:004D9346 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11318 VA:002C835F Base:2162688 Address: 004D935F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1049 BreakPoint at:004D935F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11319 VA:002C836B Base:2162688 Address: 004D936B +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1051 BreakPoint at:004D936B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11320 VA:002C8386 Base:2162688 Address: 004D9386 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1052 BreakPoint at:004D9386 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11321 VA:002C83AC Base:2162688 Address: 004D93AC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1053 BreakPoint at:004D93AC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11322 VA:002C83E8 Base:2162688 Address: 004D93E8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1054 BreakPoint at:004D93E8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11323 VA:002C83F8 Base:2162688 Address: 004D93F8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1049 BreakPoint at:004D93F8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11324 VA:002C8404 Base:2162688 Address: 004D9404 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1056 BreakPoint at:004D9404 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11325 VA:002C841E Base:2162688 Address: 004D941E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1057 BreakPoint at:004D941E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11326 VA:002C8428 Base:2162688 Address: 004D9428 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1059 BreakPoint at:004D9428 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11327 VA:002C8443 Base:2162688 Address: 004D9443 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1060 BreakPoint at:004D9443 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11328 VA:002C8466 Base:2162688 Address: 004D9466 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1061 BreakPoint at:004D9466 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11329 VA:002C849F Base:2162688 Address: 004D949F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1062 BreakPoint at:004D949F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11330 VA:002C84A8 Base:2162688 Address: 004D94A8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1064 BreakPoint at:004D94A8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11331 VA:002C84B0 Base:2162688 Address: 004D94B0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1070 BreakPoint at:004D94B0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11332 VA:002C84C0 Base:2162688 Address: 004D94C0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1071 BreakPoint at:004D94C0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11333 VA:002C84C7 Base:2162688 Address: 004D94C7 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1072 BreakPoint at:004D94C7 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11334 VA:002C84D4 Base:2162688 Address: 004D94D4 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1074 BreakPoint at:004D94D4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11335 VA:002C84EA Base:2162688 Address: 004D94EA +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1075 BreakPoint at:004D94EA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11336 VA:002C84F2 Base:2162688 Address: 004D94F2 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1076 BreakPoint at:004D94F2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11337 VA:002C84F8 Base:2162688 Address: 004D94F8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1077 BreakPoint at:004D94F8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11338 VA:002C8521 Base:2162688 Address: 004D9521 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1078 BreakPoint at:004D9521 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11339 VA:002C8531 Base:2162688 Address: 004D9531 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1079 BreakPoint at:004D9531 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11340 VA:002C8543 Base:2162688 Address: 004D9543 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1081 BreakPoint at:004D9543 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11341 VA:002C8550 Base:2162688 Address: 004D9550 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1082 BreakPoint at:004D9550 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11342 VA:002C8568 Base:2162688 Address: 004D9568 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1083 BreakPoint at:004D9568 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11343 VA:002C8580 Base:2162688 Address: 004D9580 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1084 BreakPoint at:004D9580 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11344 VA:002C8588 Base:2162688 Address: 004D9588 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1086 BreakPoint at:004D9588 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11345 VA:002C8598 Base:2162688 Address: 004D9598 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1087 BreakPoint at:004D9598 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11346 VA:002C859D Base:2162688 Address: 004D959D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1088 BreakPoint at:004D959D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11347 VA:002C85A5 Base:2162688 Address: 004D95A5 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1090 BreakPoint at:004D95A5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11348 VA:002C85C0 Base:2162688 Address: 004D95C0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1091 BreakPoint at:004D95C0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11349 VA:002C85FC Base:2162688 Address: 004D95FC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1092 BreakPoint at:004D95FC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11350 VA:002C860C Base:2162688 Address: 004D960C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1088 BreakPoint at:004D960C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11351 VA:002C8614 Base:2162688 Address: 004D9614 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1094 BreakPoint at:004D9614 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11352 VA:002C862E Base:2162688 Address: 004D962E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1095 BreakPoint at:004D962E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11353 VA:002C8634 Base:2162688 Address: 004D9634 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1097 BreakPoint at:004D9634 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11354 VA:002C864F Base:2162688 Address: 004D964F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1098 BreakPoint at:004D964F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11355 VA:002C8688 Base:2162688 Address: 004D9688 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1099 BreakPoint at:004D9688 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11356 VA:002C8691 Base:2162688 Address: 004D9691 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeOFBx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1101 BreakPoint at:004D9691 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11357 VA:002C8698 Base:2162688 Address: 004D9698 +Adding breakpoint for DECCipherModes.TDECCipherModes.Destroy in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1104 BreakPoint at:004D9698 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11358 VA:002C86A9 Base:2162688 Address: 004D96A9 +Adding breakpoint for DECCipherModes.TDECCipherModes.Destroy in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1105 BreakPoint at:004D96A9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11359 VA:002C86B4 Base:2162688 Address: 004D96B4 +Adding breakpoint for DECCipherModes.TDECCipherModes.Destroy in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1107 BreakPoint at:004D96B4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11360 VA:002C86C2 Base:2162688 Address: 004D96C2 +Adding breakpoint for DECCipherModes.TDECCipherModes.Destroy in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1108 BreakPoint at:004D96C2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11361 VA:002C86D4 Base:2162688 Address: 004D96D4 +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1111 BreakPoint at:004D96D4 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11362 VA:002C86F0 Base:2162688 Address: 004D96F0 +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1112 BreakPoint at:004D96F0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11363 VA:002C86F8 Base:2162688 Address: 004D96F8 +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1114 BreakPoint at:004D96F8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11364 VA:002C8701 Base:2162688 Address: 004D9701 +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1116 BreakPoint at:004D9701 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11365 VA:002C874E Base:2162688 Address: 004D974E +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1118 BreakPoint at:004D974E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11366 VA:002C876F Base:2162688 Address: 004D976F +Adding breakpoint for DECCipherModes.TDECCipherModes.Done in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1120 BreakPoint at:004D976F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11367 VA:002C8794 Base:2162688 Address: 004D9794 +Adding breakpoint for DECCipherModes.TDECCipherModes.OnAfterInitVectorInitialization in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1123 BreakPoint at:004D9794 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11368 VA:002C87A0 Base:2162688 Address: 004D97A0 +Adding breakpoint for DECCipherModes.TDECCipherModes.OnAfterInitVectorInitialization in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1126 BreakPoint at:004D97A0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11369 VA:002C87A9 Base:2162688 Address: 004D97A9 +Adding breakpoint for DECCipherModes.TDECCipherModes.OnAfterInitVectorInitialization in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1127 BreakPoint at:004D97A9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11370 VA:002C87C1 Base:2162688 Address: 004D97C1 +Adding breakpoint for DECCipherModes.TDECCipherModes.OnAfterInitVectorInitialization in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1128 BreakPoint at:004D97C1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11371 VA:002C87C8 Base:2162688 Address: 004D97C8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1134 BreakPoint at:004D97C8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11372 VA:002C87D8 Base:2162688 Address: 004D97D8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1135 BreakPoint at:004D97D8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11373 VA:002C87DF Base:2162688 Address: 004D97DF +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1136 BreakPoint at:004D97DF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11374 VA:002C87EC Base:2162688 Address: 004D97EC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1138 BreakPoint at:004D97EC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11375 VA:002C8802 Base:2162688 Address: 004D9802 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1139 BreakPoint at:004D9802 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11376 VA:002C880A Base:2162688 Address: 004D980A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1140 BreakPoint at:004D980A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11377 VA:002C8810 Base:2162688 Address: 004D9810 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1141 BreakPoint at:004D9810 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11378 VA:002C8851 Base:2162688 Address: 004D9851 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1142 BreakPoint at:004D9851 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11379 VA:002C887A Base:2162688 Address: 004D987A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1143 BreakPoint at:004D987A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11380 VA:002C888A Base:2162688 Address: 004D988A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1144 BreakPoint at:004D988A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11381 VA:002C889C Base:2162688 Address: 004D989C +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1146 BreakPoint at:004D989C +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11382 VA:002C88A9 Base:2162688 Address: 004D98A9 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1147 BreakPoint at:004D98A9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11383 VA:002C88C1 Base:2162688 Address: 004D98C1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1148 BreakPoint at:004D98C1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11384 VA:002C88D9 Base:2162688 Address: 004D98D9 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1149 BreakPoint at:004D98D9 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11385 VA:002C88E1 Base:2162688 Address: 004D98E1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1152 BreakPoint at:004D98E1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11386 VA:002C88F1 Base:2162688 Address: 004D98F1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1153 BreakPoint at:004D98F1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11387 VA:002C88F6 Base:2162688 Address: 004D98F6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1154 BreakPoint at:004D98F6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11388 VA:002C8902 Base:2162688 Address: 004D9902 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1156 BreakPoint at:004D9902 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11389 VA:002C891D Base:2162688 Address: 004D991D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1157 BreakPoint at:004D991D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11390 VA:002C894A Base:2162688 Address: 004D994A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1158 BreakPoint at:004D994A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11391 VA:002C8986 Base:2162688 Address: 004D9986 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1159 BreakPoint at:004D9986 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11392 VA:002C8996 Base:2162688 Address: 004D9996 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1154 BreakPoint at:004D9996 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11393 VA:002C89A2 Base:2162688 Address: 004D99A2 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1161 BreakPoint at:004D99A2 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11394 VA:002C89BC Base:2162688 Address: 004D99BC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1162 BreakPoint at:004D99BC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11395 VA:002C89C6 Base:2162688 Address: 004D99C6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1164 BreakPoint at:004D99C6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11396 VA:002C89E1 Base:2162688 Address: 004D99E1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1165 BreakPoint at:004D99E1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11397 VA:002C8A0B Base:2162688 Address: 004D9A0B +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1166 BreakPoint at:004D9A0B +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11398 VA:002C8A44 Base:2162688 Address: 004D9A44 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1167 BreakPoint at:004D9A44 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11399 VA:002C8A4D Base:2162688 Address: 004D9A4D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCFSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1169 BreakPoint at:004D9A4D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11400 VA:002C8A54 Base:2162688 Address: 004D9A54 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1175 BreakPoint at:004D9A54 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11401 VA:002C8A64 Base:2162688 Address: 004D9A64 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1176 BreakPoint at:004D9A64 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11402 VA:002C8A74 Base:2162688 Address: 004D9A74 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1177 BreakPoint at:004D9A74 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11403 VA:002C8A7D Base:2162688 Address: 004D9A7D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1178 BreakPoint at:004D9A7D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11404 VA:002C8A82 Base:2162688 Address: 004D9A82 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1179 BreakPoint at:004D9A82 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11405 VA:002C8A8E Base:2162688 Address: 004D9A8E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1181 BreakPoint at:004D9A8E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11406 VA:002C8A97 Base:2162688 Address: 004D9A97 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1182 BreakPoint at:004D9A97 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11407 VA:002C8AA3 Base:2162688 Address: 004D9AA3 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1184 BreakPoint at:004D9AA3 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11408 VA:002C8AC6 Base:2162688 Address: 004D9AC6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1185 BreakPoint at:004D9AC6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11409 VA:002C8AFE Base:2162688 Address: 004D9AFE +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1186 BreakPoint at:004D9AFE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11410 VA:002C8B37 Base:2162688 Address: 004D9B37 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1187 BreakPoint at:004D9B37 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11411 VA:002C8B3D Base:2162688 Address: 004D9B3D +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1188 BreakPoint at:004D9B3D +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11412 VA:002C8B43 Base:2162688 Address: 004D9B43 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1189 BreakPoint at:004D9B43 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11413 VA:002C8B49 Base:2162688 Address: 004D9B49 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1190 BreakPoint at:004D9B49 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11414 VA:002C8B59 Base:2162688 Address: 004D9B59 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1182 BreakPoint at:004D9B59 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11415 VA:002C8B6A Base:2162688 Address: 004D9B6A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1195 BreakPoint at:004D9B6A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11416 VA:002C8B76 Base:2162688 Address: 004D9B76 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1197 BreakPoint at:004D9B76 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11417 VA:002C8BAE Base:2162688 Address: 004D9BAE +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1198 BreakPoint at:004D9BAE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11418 VA:002C8BE6 Base:2162688 Address: 004D9BE6 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1199 BreakPoint at:004D9BE6 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11419 VA:002C8BFE Base:2162688 Address: 004D9BFE +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1200 BreakPoint at:004D9BFE +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11420 VA:002C8C0E Base:2162688 Address: 004D9C0E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1195 BreakPoint at:004D9C0E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11421 VA:002C8C1A Base:2162688 Address: 004D9C1A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1203 BreakPoint at:004D9C1A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11422 VA:002C8C25 Base:2162688 Address: 004D9C25 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1204 BreakPoint at:004D9C25 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11423 VA:002C8C39 Base:2162688 Address: 004D9C39 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1205 BreakPoint at:004D9C39 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11424 VA:002C8C53 Base:2162688 Address: 004D9C53 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1206 BreakPoint at:004D9C53 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11425 VA:002C8C59 Base:2162688 Address: 004D9C59 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1208 BreakPoint at:004D9C59 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11426 VA:002C8C8E Base:2162688 Address: 004D9C8E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1209 BreakPoint at:004D9C8E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11427 VA:002C8C97 Base:2162688 Address: 004D9C97 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1212 BreakPoint at:004D9C97 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11428 VA:002C8C9E Base:2162688 Address: 004D9C9E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCBCx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1213 BreakPoint at:004D9C9E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11429 VA:002C8CA8 Base:2162688 Address: 004D9CA8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1219 BreakPoint at:004D9CA8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11430 VA:002C8CB8 Base:2162688 Address: 004D9CB8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1220 BreakPoint at:004D9CB8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11431 VA:002C8CC8 Base:2162688 Address: 004D9CC8 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1221 BreakPoint at:004D9CC8 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11432 VA:002C8CD1 Base:2162688 Address: 004D9CD1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1222 BreakPoint at:004D9CD1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11433 VA:002C8CDA Base:2162688 Address: 004D9CDA +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1223 BreakPoint at:004D9CDA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11434 VA:002C8CDF Base:2162688 Address: 004D9CDF +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1224 BreakPoint at:004D9CDF +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11435 VA:002C8CEB Base:2162688 Address: 004D9CEB +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1226 BreakPoint at:004D9CEB +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11436 VA:002C8D12 Base:2162688 Address: 004D9D12 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1227 BreakPoint at:004D9D12 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11437 VA:002C8D4A Base:2162688 Address: 004D9D4A +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1228 BreakPoint at:004D9D4A +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11438 VA:002C8D83 Base:2162688 Address: 004D9D83 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1229 BreakPoint at:004D9D83 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11439 VA:002C8D89 Base:2162688 Address: 004D9D89 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1230 BreakPoint at:004D9D89 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11440 VA:002C8D8F Base:2162688 Address: 004D9D8F +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1231 BreakPoint at:004D9D8F +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11441 VA:002C8D95 Base:2162688 Address: 004D9D95 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1232 BreakPoint at:004D9D95 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11442 VA:002C8DA5 Base:2162688 Address: 004D9DA5 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1224 BreakPoint at:004D9DA5 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11443 VA:002C8DB1 Base:2162688 Address: 004D9DB1 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1234 BreakPoint at:004D9DB1 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11444 VA:002C8DBC Base:2162688 Address: 004D9DBC +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1235 BreakPoint at:004D9DBC +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11445 VA:002C8DD0 Base:2162688 Address: 004D9DD0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1236 BreakPoint at:004D9DD0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11446 VA:002C8DEA Base:2162688 Address: 004D9DEA +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1237 BreakPoint at:004D9DEA +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11447 VA:002C8DF0 Base:2162688 Address: 004D9DF0 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1239 BreakPoint at:004D9DF0 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11448 VA:002C8E25 Base:2162688 Address: 004D9E25 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1240 BreakPoint at:004D9E25 +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11449 VA:002C8E2E Base:2162688 Address: 004D9E2E +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1243 BreakPoint at:004D9E2E +Setting BreakPoint for module: DECCipherModes unit DECCipherModes.pas moduleName: DECCipherModes unitModuleName: DECCipherModes addr:11450 VA:002C8E35 Base:2162688 Address: 004D9E35 +Adding breakpoint for DECCipherModes.TDECCipherModes.DecodeCTSx in DECCipherModes.pas +TBreakPoint.Activate: +Activate DECCipherModes.pas line 1244 BreakPoint at:004D9E35 +Module name "DECCipherModes" did not match module from address name "DECCipherFormats" at address:002C8E43 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11452 VA:002C9810 Base:2162688 Address: 004DA810 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +Creating class info for DECCipherFormats class TDECFormattedCipher +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 698 BreakPoint at:004DA810 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11453 VA:002C9820 Base:2162688 Address: 004DA820 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 699 BreakPoint at:004DA820 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11454 VA:002C9851 Base:2162688 Address: 004DA851 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 700 BreakPoint at:004DA851 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11455 VA:002C9870 Base:2162688 Address: 004DA870 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 701 BreakPoint at:004DA870 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11456 VA:002C98C2 Base:2162688 Address: 004DA8C2 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 703 BreakPoint at:004DA8C2 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11457 VA:002C98CB Base:2162688 Address: 004DA8CB +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 704 BreakPoint at:004DA8CB +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11458 VA:002C98DB Base:2162688 Address: 004DA8DB +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 705 BreakPoint at:004DA8DB +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11459 VA:002C98E0 Base:2162688 Address: 004DA8E0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 708 BreakPoint at:004DA8E0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11460 VA:002C98F0 Base:2162688 Address: 004DA8F0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 709 BreakPoint at:004DA8F0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11461 VA:002C9901 Base:2162688 Address: 004DA901 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 711 BreakPoint at:004DA901 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11462 VA:002C9924 Base:2162688 Address: 004DA924 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 713 BreakPoint at:004DA924 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11463 VA:002C992D Base:2162688 Address: 004DA92D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 714 BreakPoint at:004DA92D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11464 VA:002C995E Base:2162688 Address: 004DA95E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 716 BreakPoint at:004DA95E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11465 VA:002C99B0 Base:2162688 Address: 004DA9B0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 719 BreakPoint at:004DA9B0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11466 VA:002C99B9 Base:2162688 Address: 004DA9B9 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 720 BreakPoint at:004DA9B9 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11467 VA:002C99C9 Base:2162688 Address: 004DA9C9 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 721 BreakPoint at:004DA9C9 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11468 VA:002C99D0 Base:2162688 Address: 004DA9D0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 732 BreakPoint at:004DA9D0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11469 VA:002C99F6 Base:2162688 Address: 004DA9F6 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 733 BreakPoint at:004DA9F6 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11470 VA:002C9A04 Base:2162688 Address: 004DAA04 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 734 BreakPoint at:004DAA04 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11471 VA:002C9A14 Base:2162688 Address: 004DAA14 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 735 BreakPoint at:004DAA14 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11472 VA:002C9A2E Base:2162688 Address: 004DAA2E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 737 BreakPoint at:004DAA2E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11473 VA:002C9A47 Base:2162688 Address: 004DAA47 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 738 BreakPoint at:004DAA47 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11474 VA:002C9A53 Base:2162688 Address: 004DAA53 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 740 BreakPoint at:004DAA53 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11475 VA:002C9A6B Base:2162688 Address: 004DAA6B +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 742 BreakPoint at:004DAA6B +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11476 VA:002C9A79 Base:2162688 Address: 004DAA79 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 743 BreakPoint at:004DAA79 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11477 VA:002C9A7F Base:2162688 Address: 004DAA7F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 744 BreakPoint at:004DAA7F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11478 VA:002C9A93 Base:2162688 Address: 004DAA93 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 746 BreakPoint at:004DAA93 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11479 VA:002C9A9D Base:2162688 Address: 004DAA9D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 747 BreakPoint at:004DAA9D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11480 VA:002C9AA8 Base:2162688 Address: 004DAAA8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 748 BreakPoint at:004DAAA8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11481 VA:002C9AC1 Base:2162688 Address: 004DAAC1 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 749 BreakPoint at:004DAAC1 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11482 VA:002C9AC7 Base:2162688 Address: 004DAAC7 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 750 BreakPoint at:004DAAC7 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11483 VA:002C9AD3 Base:2162688 Address: 004DAAD3 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 752 BreakPoint at:004DAAD3 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11484 VA:002C9AFD Base:2162688 Address: 004DAAFD +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 753 BreakPoint at:004DAAFD +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11485 VA:002C9B0F Base:2162688 Address: 004DAB0F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 754 BreakPoint at:004DAB0F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11486 VA:002C9B2B Base:2162688 Address: 004DAB2B +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 756 BreakPoint at:004DAB2B +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11487 VA:002C9B45 Base:2162688 Address: 004DAB45 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 758 BreakPoint at:004DAB45 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11488 VA:002C9B56 Base:2162688 Address: 004DAB56 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 759 BreakPoint at:004DAB56 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11489 VA:002C9B63 Base:2162688 Address: 004DAB63 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 760 BreakPoint at:004DAB63 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11490 VA:002C9B99 Base:2162688 Address: 004DAB99 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 764 BreakPoint at:004DAB99 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11491 VA:002C9B9F Base:2162688 Address: 004DAB9F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 765 BreakPoint at:004DAB9F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11492 VA:002C9BB1 Base:2162688 Address: 004DABB1 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 766 BreakPoint at:004DABB1 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11493 VA:002C9BC8 Base:2162688 Address: 004DABC8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 767 BreakPoint at:004DABC8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11494 VA:002C9BE8 Base:2162688 Address: 004DABE8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 770 BreakPoint at:004DABE8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11495 VA:002C9C1D Base:2162688 Address: 004DAC1D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 771 BreakPoint at:004DAC1D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11496 VA:002C9C3D Base:2162688 Address: 004DAC3D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 772 BreakPoint at:004DAC3D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11497 VA:002C9C4E Base:2162688 Address: 004DAC4E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 773 BreakPoint at:004DAC4E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11498 VA:002C9C5F Base:2162688 Address: 004DAC5F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 775 BreakPoint at:004DAC5F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11499 VA:002C9C65 Base:2162688 Address: 004DAC65 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 776 BreakPoint at:004DAC65 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11500 VA:002C9C8A Base:2162688 Address: 004DAC8A +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 762 BreakPoint at:004DAC8A +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11501 VA:002C9CAF Base:2162688 Address: 004DACAF +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 779 BreakPoint at:004DACAF +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11502 VA:002C9CB7 Base:2162688 Address: 004DACB7 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 780 BreakPoint at:004DACB7 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11503 VA:002C9CC0 Base:2162688 Address: 004DACC0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 781 BreakPoint at:004DACC0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11504 VA:002C9CC8 Base:2162688 Address: 004DACC8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 782 BreakPoint at:004DACC8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11505 VA:002C9CCE Base:2162688 Address: 004DACCE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 783 BreakPoint at:004DACCE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11506 VA:002C9CEE Base:2162688 Address: 004DACEE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 787 BreakPoint at:004DACEE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11507 VA:002C9CF7 Base:2162688 Address: 004DACF7 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 789 BreakPoint at:004DACF7 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11508 VA:002C9D05 Base:2162688 Address: 004DAD05 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 790 BreakPoint at:004DAD05 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11509 VA:002C9D13 Base:2162688 Address: 004DAD13 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 792 BreakPoint at:004DAD13 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11510 VA:002C9D44 Base:2162688 Address: 004DAD44 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 796 BreakPoint at:004DAD44 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11511 VA:002C9D53 Base:2162688 Address: 004DAD53 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 797 BreakPoint at:004DAD53 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11512 VA:002C9D74 Base:2162688 Address: 004DAD74 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 799 BreakPoint at:004DAD74 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11513 VA:002C9D7C Base:2162688 Address: 004DAD7C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 803 BreakPoint at:004DAD7C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11514 VA:002C9D8B Base:2162688 Address: 004DAD8B +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 804 BreakPoint at:004DAD8B +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11515 VA:002C9DAC Base:2162688 Address: 004DADAC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStream in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 806 BreakPoint at:004DADAC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11516 VA:002C9DB4 Base:2162688 Address: 004DADB4 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 813 BreakPoint at:004DADB4 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11517 VA:002C9DC3 Base:2162688 Address: 004DADC3 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 814 BreakPoint at:004DADC3 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11518 VA:002C9DE4 Base:2162688 Address: 004DADE4 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 816 BreakPoint at:004DADE4 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11519 VA:002C9DF8 Base:2162688 Address: 004DADF8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 817 BreakPoint at:004DADF8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11520 VA:002C9E06 Base:2162688 Address: 004DAE06 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 818 BreakPoint at:004DAE06 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11521 VA:002C9E1D Base:2162688 Address: 004DAE1D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 819 BreakPoint at:004DAE1D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11522 VA:002C9E2B Base:2162688 Address: 004DAE2B +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 820 BreakPoint at:004DAE2B +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11523 VA:002C9E59 Base:2162688 Address: 004DAE59 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 822 BreakPoint at:004DAE59 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11524 VA:002C9E78 Base:2162688 Address: 004DAE78 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 825 BreakPoint at:004DAE78 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11525 VA:002C9E8A Base:2162688 Address: 004DAE8A +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DoEncodeDecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 827 BreakPoint at:004DAE8A +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11526 VA:002C9F6C Base:2162688 Address: 004DAF6C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 831 BreakPoint at:004DAF6C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11527 VA:002C9F7B Base:2162688 Address: 004DAF7B +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 832 BreakPoint at:004DAF7B +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11528 VA:002C9F96 Base:2162688 Address: 004DAF96 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 833 BreakPoint at:004DAF96 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11529 VA:002C9F9C Base:2162688 Address: 004DAF9C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 837 BreakPoint at:004DAF9C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11530 VA:002C9FAB Base:2162688 Address: 004DAFAB +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 838 BreakPoint at:004DAFAB +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11531 VA:002C9FC6 Base:2162688 Address: 004DAFC6 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeFile in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 839 BreakPoint at:004DAFC6 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11532 VA:002C9FCC Base:2162688 Address: 004DAFCC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 845 BreakPoint at:004DAFCC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11533 VA:002C9FEF Base:2162688 Address: 004DAFEF +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 846 BreakPoint at:004DAFEF +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11534 VA:002CA010 Base:2162688 Address: 004DB010 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 849 BreakPoint at:004DB010 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11535 VA:002CA035 Base:2162688 Address: 004DB035 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 850 BreakPoint at:004DB035 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11536 VA:002CA04F Base:2162688 Address: 004DB04F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 851 BreakPoint at:004DB04F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11537 VA:002CA08F Base:2162688 Address: 004DB08F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 858 BreakPoint at:004DB08F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11538 VA:002CA0B7 Base:2162688 Address: 004DB0B7 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 861 BreakPoint at:004DB0B7 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11539 VA:002CA0C5 Base:2162688 Address: 004DB0C5 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 862 BreakPoint at:004DB0C5 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11540 VA:002CA0F4 Base:2162688 Address: 004DB0F4 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 867 BreakPoint at:004DB0F4 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11541 VA:002CA117 Base:2162688 Address: 004DB117 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 868 BreakPoint at:004DB117 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11542 VA:002CA138 Base:2162688 Address: 004DB138 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 871 BreakPoint at:004DB138 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11543 VA:002CA15D Base:2162688 Address: 004DB15D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 872 BreakPoint at:004DB15D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11544 VA:002CA177 Base:2162688 Address: 004DB177 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 873 BreakPoint at:004DB177 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11545 VA:002CA1B7 Base:2162688 Address: 004DB1B7 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 880 BreakPoint at:004DB1B7 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11546 VA:002CA1DF Base:2162688 Address: 004DB1DF +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 883 BreakPoint at:004DB1DF +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11547 VA:002CA1ED Base:2162688 Address: 004DB1ED +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 884 BreakPoint at:004DB1ED +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11548 VA:002CA21C Base:2162688 Address: 004DB21C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 890 BreakPoint at:004DB21C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11549 VA:002CA242 Base:2162688 Address: 004DB242 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 891 BreakPoint at:004DB242 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11550 VA:002CA263 Base:2162688 Address: 004DB263 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 893 BreakPoint at:004DB263 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11551 VA:002CA283 Base:2162688 Address: 004DB283 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 895 BreakPoint at:004DB283 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11552 VA:002CA2A0 Base:2162688 Address: 004DB2A0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 896 BreakPoint at:004DB2A0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11553 VA:002CA2B1 Base:2162688 Address: 004DB2B1 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 897 BreakPoint at:004DB2B1 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11554 VA:002CA2EE Base:2162688 Address: 004DB2EE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 900 BreakPoint at:004DB2EE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11555 VA:002CA2FC Base:2162688 Address: 004DB2FC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 901 BreakPoint at:004DB2FC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11556 VA:002CA338 Base:2162688 Address: 004DB338 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 907 BreakPoint at:004DB338 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11557 VA:002CA35E Base:2162688 Address: 004DB35E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 908 BreakPoint at:004DB35E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11558 VA:002CA37F Base:2162688 Address: 004DB37F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 910 BreakPoint at:004DB37F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11559 VA:002CA39F Base:2162688 Address: 004DB39F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 912 BreakPoint at:004DB39F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11560 VA:002CA3BC Base:2162688 Address: 004DB3BC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 913 BreakPoint at:004DB3BC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11561 VA:002CA3CD Base:2162688 Address: 004DB3CD +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 914 BreakPoint at:004DB3CD +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11562 VA:002CA40A Base:2162688 Address: 004DB40A +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 917 BreakPoint at:004DB40A +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11563 VA:002CA418 Base:2162688 Address: 004DB418 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 918 BreakPoint at:004DB418 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11564 VA:002CA454 Base:2162688 Address: 004DB454 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 961 BreakPoint at:004DB454 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11565 VA:002CA477 Base:2162688 Address: 004DB477 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 962 BreakPoint at:004DB477 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11566 VA:002CA49A Base:2162688 Address: 004DB49A +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 964 BreakPoint at:004DB49A +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11567 VA:002CA4C1 Base:2162688 Address: 004DB4C1 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 965 BreakPoint at:004DB4C1 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11568 VA:002CA4DB Base:2162688 Address: 004DB4DB +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 966 BreakPoint at:004DB4DB +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11569 VA:002CA521 Base:2162688 Address: 004DB521 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 968 BreakPoint at:004DB521 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11570 VA:002CA549 Base:2162688 Address: 004DB549 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 971 BreakPoint at:004DB549 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11571 VA:002CA557 Base:2162688 Address: 004DB557 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 972 BreakPoint at:004DB557 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11572 VA:002CA584 Base:2162688 Address: 004DB584 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 976 BreakPoint at:004DB584 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11573 VA:002CA5AA Base:2162688 Address: 004DB5AA +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 977 BreakPoint at:004DB5AA +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11574 VA:002CA5D2 Base:2162688 Address: 004DB5D2 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 978 BreakPoint at:004DB5D2 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11575 VA:002CA600 Base:2162688 Address: 004DB600 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1009 BreakPoint at:004DB600 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11576 VA:002CA626 Base:2162688 Address: 004DB626 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1010 BreakPoint at:004DB626 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11577 VA:002CA647 Base:2162688 Address: 004DB647 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1013 BreakPoint at:004DB647 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11578 VA:002CA66C Base:2162688 Address: 004DB66C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1014 BreakPoint at:004DB66C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11579 VA:002CA686 Base:2162688 Address: 004DB686 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1015 BreakPoint at:004DB686 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11580 VA:002CA6C4 Base:2162688 Address: 004DB6C4 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1022 BreakPoint at:004DB6C4 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11581 VA:002CA6E4 Base:2162688 Address: 004DB6E4 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1025 BreakPoint at:004DB6E4 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11582 VA:002CA6EC Base:2162688 Address: 004DB6EC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1026 BreakPoint at:004DB6EC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11583 VA:002CA728 Base:2162688 Address: 004DB728 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1034 BreakPoint at:004DB728 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11584 VA:002CA74E Base:2162688 Address: 004DB74E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1035 BreakPoint at:004DB74E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11585 VA:002CA76F Base:2162688 Address: 004DB76F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1038 BreakPoint at:004DB76F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11586 VA:002CA794 Base:2162688 Address: 004DB794 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1039 BreakPoint at:004DB794 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11587 VA:002CA7AE Base:2162688 Address: 004DB7AE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1040 BreakPoint at:004DB7AE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11588 VA:002CA7EC Base:2162688 Address: 004DB7EC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1047 BreakPoint at:004DB7EC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11589 VA:002CA7FF Base:2162688 Address: 004DB7FF +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1048 BreakPoint at:004DB7FF +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11590 VA:002CA823 Base:2162688 Address: 004DB823 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1050 BreakPoint at:004DB823 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11591 VA:002CA881 Base:2162688 Address: 004DB881 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1056 BreakPoint at:004DB881 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11592 VA:002CA889 Base:2162688 Address: 004DB889 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.EncodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1057 BreakPoint at:004DB889 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11593 VA:002CA8BC Base:2162688 Address: 004DB8BC +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1064 BreakPoint at:004DB8BC +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11594 VA:002CA8E5 Base:2162688 Address: 004DB8E5 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1065 BreakPoint at:004DB8E5 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11595 VA:002CA908 Base:2162688 Address: 004DB908 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1067 BreakPoint at:004DB908 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11596 VA:002CA933 Base:2162688 Address: 004DB933 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1069 BreakPoint at:004DB933 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11597 VA:002CA950 Base:2162688 Address: 004DB950 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1070 BreakPoint at:004DB950 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11598 VA:002CA96A Base:2162688 Address: 004DB96A +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1071 BreakPoint at:004DB96A +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11599 VA:002CA9A5 Base:2162688 Address: 004DB9A5 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1074 BreakPoint at:004DB9A5 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11600 VA:002CA9B3 Base:2162688 Address: 004DB9B3 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToBytes in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1075 BreakPoint at:004DB9B3 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11601 VA:002CA9F8 Base:2162688 Address: 004DB9F8 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1110 BreakPoint at:004DB9F8 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11602 VA:002CAA1E Base:2162688 Address: 004DBA1E +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1111 BreakPoint at:004DBA1E +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11603 VA:002CAA46 Base:2162688 Address: 004DBA46 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1112 BreakPoint at:004DBA46 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11604 VA:002CAA74 Base:2162688 Address: 004DBA74 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1121 BreakPoint at:004DBA74 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11605 VA:002CAA9D Base:2162688 Address: 004DBA9D +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1122 BreakPoint at:004DBA9D +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11606 VA:002CAABE Base:2162688 Address: 004DBABE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1124 BreakPoint at:004DBABE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11607 VA:002CAADE Base:2162688 Address: 004DBADE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1126 BreakPoint at:004DBADE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11608 VA:002CAAFB Base:2162688 Address: 004DBAFB +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1127 BreakPoint at:004DBAFB +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11609 VA:002CAB15 Base:2162688 Address: 004DBB15 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1128 BreakPoint at:004DBB15 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11610 VA:002CAB4C Base:2162688 Address: 004DBB4C +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1130 BreakPoint at:004DBB4C +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11611 VA:002CAB70 Base:2162688 Address: 004DBB70 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1133 BreakPoint at:004DBB70 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11612 VA:002CABCE Base:2162688 Address: 004DBBCE +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1139 BreakPoint at:004DBBCE +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11613 VA:002CABD6 Base:2162688 Address: 004DBBD6 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1140 BreakPoint at:004DBBD6 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11614 VA:002CAC18 Base:2162688 Address: 004DBC18 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1148 BreakPoint at:004DBC18 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11615 VA:002CAC41 Base:2162688 Address: 004DBC41 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1149 BreakPoint at:004DBC41 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11616 VA:002CAC62 Base:2162688 Address: 004DBC62 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1151 BreakPoint at:004DBC62 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11617 VA:002CAC82 Base:2162688 Address: 004DBC82 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1153 BreakPoint at:004DBC82 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11618 VA:002CAC9F Base:2162688 Address: 004DBC9F +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1154 BreakPoint at:004DBC9F +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11619 VA:002CACB9 Base:2162688 Address: 004DBCB9 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1155 BreakPoint at:004DBCB9 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11620 VA:002CACF0 Base:2162688 Address: 004DBCF0 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1156 BreakPoint at:004DBCF0 +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11621 VA:002CACFD Base:2162688 Address: 004DBCFD +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1159 BreakPoint at:004DBCFD +Setting BreakPoint for module: DECCipherFormats unit DECCipherFormats.pas moduleName: DECCipherFormats unitModuleName: DECCipherFormats addr:11622 VA:002CAD05 Base:2162688 Address: 004DBD05 +Adding breakpoint for DECCipherFormats.TDECFormattedCipher.DecodeStringToString in DECCipherFormats.pas +TBreakPoint.Activate: +Activate DECCipherFormats.pas line 1160 BreakPoint at:004DBD05 +Module name "DECCipherFormats" did not match module from address name "DECCiphers" at address:002CAD4B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11624 VA:002CE448 Base:2162688 Address: 004DF448 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Null +TBreakPoint.Activate: +Activate DECCiphers.pas line 1033 BreakPoint at:004DF448 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11625 VA:002CE454 Base:2162688 Address: 004DF454 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1034 BreakPoint at:004DF454 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11626 VA:002CE45B Base:2162688 Address: 004DF45B +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1035 BreakPoint at:004DF45B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11627 VA:002CE465 Base:2162688 Address: 004DF465 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1036 BreakPoint at:004DF465 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11628 VA:002CE46F Base:2162688 Address: 004DF46F +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1037 BreakPoint at:004DF46F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11629 VA:002CE477 Base:2162688 Address: 004DF477 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1038 BreakPoint at:004DF477 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11630 VA:002CE47E Base:2162688 Address: 004DF47E +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1039 BreakPoint at:004DF47E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11631 VA:002CE487 Base:2162688 Address: 004DF487 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1040 BreakPoint at:004DF487 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11632 VA:002CE490 Base:2162688 Address: 004DF490 +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1041 BreakPoint at:004DF490 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11633 VA:002CE49C Base:2162688 Address: 004DF49C +Adding breakpoint for DECCiphers.TCipher_Null.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1042 BreakPoint at:004DF49C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11634 VA:002CE4A4 Base:2162688 Address: 004DF4A4 +Adding breakpoint for DECCiphers.TCipher_Null.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1045 BreakPoint at:004DF4A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11635 VA:002CE4B3 Base:2162688 Address: 004DF4B3 +Adding breakpoint for DECCiphers.TCipher_Null.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1047 BreakPoint at:004DF4B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11636 VA:002CE4B8 Base:2162688 Address: 004DF4B8 +Adding breakpoint for DECCiphers.TCipher_Null.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1050 BreakPoint at:004DF4B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11637 VA:002CE4C7 Base:2162688 Address: 004DF4C7 +Adding breakpoint for DECCiphers.TCipher_Null.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1051 BreakPoint at:004DF4C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11638 VA:002CE4CF Base:2162688 Address: 004DF4CF +Adding breakpoint for DECCiphers.TCipher_Null.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1052 BreakPoint at:004DF4CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11639 VA:002CE4DD Base:2162688 Address: 004DF4DD +Adding breakpoint for DECCiphers.TCipher_Null.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1053 BreakPoint at:004DF4DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11640 VA:002CE4E4 Base:2162688 Address: 004DF4E4 +Adding breakpoint for DECCiphers.TCipher_Null.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1056 BreakPoint at:004DF4E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11641 VA:002CE4F3 Base:2162688 Address: 004DF4F3 +Adding breakpoint for DECCiphers.TCipher_Null.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1057 BreakPoint at:004DF4F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11642 VA:002CE4FB Base:2162688 Address: 004DF4FB +Adding breakpoint for DECCiphers.TCipher_Null.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1058 BreakPoint at:004DF4FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11643 VA:002CE509 Base:2162688 Address: 004DF509 +Adding breakpoint for DECCiphers.TCipher_Null.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1059 BreakPoint at:004DF509 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11644 VA:002CE510 Base:2162688 Address: 004DF510 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Blowfish +TBreakPoint.Activate: +Activate DECCiphers.pas line 1064 BreakPoint at:004DF510 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11645 VA:002CE51C Base:2162688 Address: 004DF51C +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1065 BreakPoint at:004DF51C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11646 VA:002CE525 Base:2162688 Address: 004DF525 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1066 BreakPoint at:004DF525 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11647 VA:002CE52F Base:2162688 Address: 004DF52F +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1067 BreakPoint at:004DF52F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11648 VA:002CE539 Base:2162688 Address: 004DF539 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1068 BreakPoint at:004DF539 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11649 VA:002CE543 Base:2162688 Address: 004DF543 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1069 BreakPoint at:004DF543 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11650 VA:002CE54A Base:2162688 Address: 004DF54A +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1070 BreakPoint at:004DF54A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11651 VA:002CE553 Base:2162688 Address: 004DF553 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1071 BreakPoint at:004DF553 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11652 VA:002CE55C Base:2162688 Address: 004DF55C +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1072 BreakPoint at:004DF55C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11653 VA:002CE568 Base:2162688 Address: 004DF568 +Adding breakpoint for DECCiphers.TCipher_Blowfish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1073 BreakPoint at:004DF568 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11654 VA:002CE570 Base:2162688 Address: 004DF570 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1082 BreakPoint at:004DF570 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11655 VA:002CE580 Base:2162688 Address: 004DF580 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1083 BreakPoint at:004DF580 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11656 VA:002CE586 Base:2162688 Address: 004DF586 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1084 BreakPoint at:004DF586 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11657 VA:002CE58F Base:2162688 Address: 004DF58F +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1085 BreakPoint at:004DF58F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11658 VA:002CE59D Base:2162688 Address: 004DF59D +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1087 BreakPoint at:004DF59D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11659 VA:002CE5AF Base:2162688 Address: 004DF5AF +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1088 BreakPoint at:004DF5AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11660 VA:002CE5C1 Base:2162688 Address: 004DF5C1 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1089 BreakPoint at:004DF5C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11661 VA:002CE5C6 Base:2162688 Address: 004DF5C6 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1090 BreakPoint at:004DF5C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11662 VA:002CE5CC Base:2162688 Address: 004DF5CC +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1091 BreakPoint at:004DF5CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11663 VA:002CE5D1 Base:2162688 Address: 004DF5D1 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1093 BreakPoint at:004DF5D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11664 VA:002CE629 Base:2162688 Address: 004DF629 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1097 BreakPoint at:004DF629 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11665 VA:002CE636 Base:2162688 Address: 004DF636 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1098 BreakPoint at:004DF636 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11666 VA:002CE639 Base:2162688 Address: 004DF639 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1091 BreakPoint at:004DF639 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11667 VA:002CE63F Base:2162688 Address: 004DF63F +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1099 BreakPoint at:004DF63F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11668 VA:002CE64E Base:2162688 Address: 004DF64E +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1101 BreakPoint at:004DF64E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11669 VA:002CE653 Base:2162688 Address: 004DF653 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1103 BreakPoint at:004DF653 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11670 VA:002CE663 Base:2162688 Address: 004DF663 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1104 BreakPoint at:004DF663 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11671 VA:002CE676 Base:2162688 Address: 004DF676 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1105 BreakPoint at:004DF676 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11672 VA:002CE68A Base:2162688 Address: 004DF68A +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1106 BreakPoint at:004DF68A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11673 VA:002CE68D Base:2162688 Address: 004DF68D +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1101 BreakPoint at:004DF68D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11674 VA:002CE693 Base:2162688 Address: 004DF693 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1107 BreakPoint at:004DF693 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11675 VA:002CE698 Base:2162688 Address: 004DF698 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1108 BreakPoint at:004DF698 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11676 VA:002CE69D Base:2162688 Address: 004DF69D +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1110 BreakPoint at:004DF69D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11677 VA:002CE6AD Base:2162688 Address: 004DF6AD +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1111 BreakPoint at:004DF6AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11678 VA:002CE6C9 Base:2162688 Address: 004DF6C9 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1112 BreakPoint at:004DF6C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11679 VA:002CE6E6 Base:2162688 Address: 004DF6E6 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1113 BreakPoint at:004DF6E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11680 VA:002CE6E9 Base:2162688 Address: 004DF6E9 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1108 BreakPoint at:004DF6E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11681 VA:002CE6F2 Base:2162688 Address: 004DF6F2 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1113 BreakPoint at:004DF6F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11682 VA:002CE6F5 Base:2162688 Address: 004DF6F5 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1107 BreakPoint at:004DF6F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11683 VA:002CE6FB Base:2162688 Address: 004DF6FB +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1114 BreakPoint at:004DF6FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11684 VA:002CE70A Base:2162688 Address: 004DF70A +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1117 BreakPoint at:004DF70A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11685 VA:002CE710 Base:2162688 Address: 004DF710 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1170 BreakPoint at:004DF710 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11686 VA:002CE739 Base:2162688 Address: 004DF739 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1172 BreakPoint at:004DF739 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11687 VA:002CE7A1 Base:2162688 Address: 004DF7A1 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1174 BreakPoint at:004DF7A1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11688 VA:002CE7AA Base:2162688 Address: 004DF7AA +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1175 BreakPoint at:004DF7AA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11689 VA:002CE7B8 Base:2162688 Address: 004DF7B8 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1176 BreakPoint at:004DF7B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11690 VA:002CE7D3 Base:2162688 Address: 004DF7D3 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1177 BreakPoint at:004DF7D3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11691 VA:002CE7E1 Base:2162688 Address: 004DF7E1 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1178 BreakPoint at:004DF7E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11692 VA:002CE7E6 Base:2162688 Address: 004DF7E6 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1182 BreakPoint at:004DF7E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11693 VA:002CE83E Base:2162688 Address: 004DF83E +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1187 BreakPoint at:004DF83E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11694 VA:002CE897 Base:2162688 Address: 004DF897 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1191 BreakPoint at:004DF897 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11695 VA:002CE8A0 Base:2162688 Address: 004DF8A0 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1192 BreakPoint at:004DF8A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11696 VA:002CE8A3 Base:2162688 Address: 004DF8A3 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1178 BreakPoint at:004DF8A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11697 VA:002CE8AD Base:2162688 Address: 004DF8AD +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1193 BreakPoint at:004DF8AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11698 VA:002CE8BF Base:2162688 Address: 004DF8BF +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1194 BreakPoint at:004DF8BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11699 VA:002CE8CD Base:2162688 Address: 004DF8CD +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1195 BreakPoint at:004DF8CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11700 VA:002CE9E0 Base:2162688 Address: 004DF9E0 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1247 BreakPoint at:004DF9E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11701 VA:002CE9EF Base:2162688 Address: 004DF9EF +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1248 BreakPoint at:004DF9EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11702 VA:002CEA16 Base:2162688 Address: 004DFA16 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1250 BreakPoint at:004DFA16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11703 VA:002CEA1F Base:2162688 Address: 004DFA1F +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1251 BreakPoint at:004DFA1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11704 VA:002CEA33 Base:2162688 Address: 004DFA33 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1252 BreakPoint at:004DFA33 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11705 VA:002CEA45 Base:2162688 Address: 004DFA45 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1253 BreakPoint at:004DFA45 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11706 VA:002CEA53 Base:2162688 Address: 004DFA53 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1254 BreakPoint at:004DFA53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11707 VA:002CEA58 Base:2162688 Address: 004DFA58 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1256 BreakPoint at:004DFA58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11708 VA:002CEA5C Base:2162688 Address: 004DFA5C +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1257 BreakPoint at:004DFA5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11709 VA:002CEAB5 Base:2162688 Address: 004DFAB5 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1261 BreakPoint at:004DFAB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11710 VA:002CEB0D Base:2162688 Address: 004DFB0D +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1265 BreakPoint at:004DFB0D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11711 VA:002CEB10 Base:2162688 Address: 004DFB10 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1254 BreakPoint at:004DFB10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11712 VA:002CEB1A Base:2162688 Address: 004DFB1A +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1266 BreakPoint at:004DFB1A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11713 VA:002CEB1E Base:2162688 Address: 004DFB1E +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1267 BreakPoint at:004DFB1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11714 VA:002CEB30 Base:2162688 Address: 004DFB30 +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1268 BreakPoint at:004DFB30 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11715 VA:002CEB3E Base:2162688 Address: 004DFB3E +Adding breakpoint for DECCiphers.TCipher_Blowfish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1269 BreakPoint at:004DFB3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11716 VA:002CEBF0 Base:2162688 Address: 004DFBF0 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Twofish +TBreakPoint.Activate: +Activate DECCiphers.pas line 1285 BreakPoint at:004DFBF0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11717 VA:002CEBFC Base:2162688 Address: 004DFBFC +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1286 BreakPoint at:004DFBFC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11718 VA:002CEC05 Base:2162688 Address: 004DFC05 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1287 BreakPoint at:004DFC05 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11719 VA:002CEC0F Base:2162688 Address: 004DFC0F +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1288 BreakPoint at:004DFC0F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11720 VA:002CEC19 Base:2162688 Address: 004DFC19 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1289 BreakPoint at:004DFC19 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11721 VA:002CEC23 Base:2162688 Address: 004DFC23 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1290 BreakPoint at:004DFC23 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11722 VA:002CEC2A Base:2162688 Address: 004DFC2A +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1291 BreakPoint at:004DFC2A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11723 VA:002CEC33 Base:2162688 Address: 004DFC33 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1292 BreakPoint at:004DFC33 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11724 VA:002CEC3C Base:2162688 Address: 004DFC3C +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1293 BreakPoint at:004DFC3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11725 VA:002CEC48 Base:2162688 Address: 004DFC48 +Adding breakpoint for DECCiphers.TCipher_Twofish.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1294 BreakPoint at:004DFC48 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11726 VA:002CEC50 Base:2162688 Address: 004DFC50 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +Creating class info for DECCiphers class Encode +TBreakPoint.Activate: +Activate DECCiphers.pas line 1308 BreakPoint at:004DFC50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11727 VA:002CEC5C Base:2162688 Address: 004DFC5C +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1309 BreakPoint at:004DFC5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11728 VA:002CEC61 Base:2162688 Address: 004DFC61 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1310 BreakPoint at:004DFC61 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11729 VA:002CEC66 Base:2162688 Address: 004DFC66 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1312 BreakPoint at:004DFC66 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11730 VA:002CEC6C Base:2162688 Address: 004DFC6C +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1313 BreakPoint at:004DFC6C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11731 VA:002CEC74 Base:2162688 Address: 004DFC74 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1315 BreakPoint at:004DFC74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11732 VA:002CEC7A Base:2162688 Address: 004DFC7A +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1316 BreakPoint at:004DFC7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11733 VA:002CEC7F Base:2162688 Address: 004DFC7F +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1318 BreakPoint at:004DFC7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11734 VA:002CEC88 Base:2162688 Address: 004DFC88 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1319 BreakPoint at:004DFC88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11735 VA:002CEC8E Base:2162688 Address: 004DFC8E +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1320 BreakPoint at:004DFC8E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11736 VA:002CECA4 Base:2162688 Address: 004DFCA4 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1322 BreakPoint at:004DFCA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11737 VA:002CECB3 Base:2162688 Address: 004DFCB3 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1323 BreakPoint at:004DFCB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11738 VA:002CECB9 Base:2162688 Address: 004DFCB9 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1324 BreakPoint at:004DFCB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11739 VA:002CECD0 Base:2162688 Address: 004DFCD0 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1326 BreakPoint at:004DFCD0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11740 VA:002CECE0 Base:2162688 Address: 004DFCE0 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1327 BreakPoint at:004DFCE0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11741 VA:002CED08 Base:2162688 Address: 004DFD08 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1328 BreakPoint at:004DFD08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11742 VA:002CED0B Base:2162688 Address: 004DFD0B +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1316 BreakPoint at:004DFD0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11743 VA:002CED15 Base:2162688 Address: 004DFD15 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1329 BreakPoint at:004DFD15 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11744 VA:002CED18 Base:2162688 Address: 004DFD18 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1310 BreakPoint at:004DFD18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11745 VA:002CED22 Base:2162688 Address: 004DFD22 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1330 BreakPoint at:004DFD22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11746 VA:002CED28 Base:2162688 Address: 004DFD28 +Adding breakpoint for DECCiphers.Encode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1331 BreakPoint at:004DFD28 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11747 VA:002CED30 Base:2162688 Address: 004DFD30 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +Creating class info for DECCiphers class F32 +TBreakPoint.Activate: +Activate DECCiphers.pas line 1336 BreakPoint at:004DFD30 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11748 VA:002CED50 Base:2162688 Address: 004DFD50 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1337 BreakPoint at:004DFD50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11749 VA:002CED5B Base:2162688 Address: 004DFD5B +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1338 BreakPoint at:004DFD5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11750 VA:002CED69 Base:2162688 Address: 004DFD69 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1339 BreakPoint at:004DFD69 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11751 VA:002CED77 Base:2162688 Address: 004DFD77 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1340 BreakPoint at:004DFD77 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11752 VA:002CED80 Base:2162688 Address: 004DFD80 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1341 BreakPoint at:004DFD80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11753 VA:002CED8C Base:2162688 Address: 004DFD8C +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1343 BreakPoint at:004DFD8C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11754 VA:002CEDAD Base:2162688 Address: 004DFDAD +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1344 BreakPoint at:004DFDAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11755 VA:002CEDCD Base:2162688 Address: 004DFDCD +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1345 BreakPoint at:004DFDCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11756 VA:002CEDED Base:2162688 Address: 004DFDED +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1346 BreakPoint at:004DFDED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11757 VA:002CEE0B Base:2162688 Address: 004DFE0B +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1348 BreakPoint at:004DFE0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11758 VA:002CEE17 Base:2162688 Address: 004DFE17 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1350 BreakPoint at:004DFE17 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11759 VA:002CEE38 Base:2162688 Address: 004DFE38 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1351 BreakPoint at:004DFE38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11760 VA:002CEE5C Base:2162688 Address: 004DFE5C +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1352 BreakPoint at:004DFE5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11761 VA:002CEE7C Base:2162688 Address: 004DFE7C +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1353 BreakPoint at:004DFE7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11762 VA:002CEE96 Base:2162688 Address: 004DFE96 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1355 BreakPoint at:004DFE96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11763 VA:002CEEB3 Base:2162688 Address: 004DFEB3 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1356 BreakPoint at:004DFEB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11764 VA:002CEED7 Base:2162688 Address: 004DFED7 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1357 BreakPoint at:004DFED7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11765 VA:002CEEF7 Base:2162688 Address: 004DFEF7 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1358 BreakPoint at:004DFEF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11766 VA:002CEF15 Base:2162688 Address: 004DFF15 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1360 BreakPoint at:004DFF15 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11767 VA:002CEF31 Base:2162688 Address: 004DFF31 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1361 BreakPoint at:004DFF31 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11768 VA:002CEF50 Base:2162688 Address: 004DFF50 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1362 BreakPoint at:004DFF50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11769 VA:002CEF73 Base:2162688 Address: 004DFF73 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1363 BreakPoint at:004DFF73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11770 VA:002CEF90 Base:2162688 Address: 004DFF90 +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1365 BreakPoint at:004DFF90 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11771 VA:002CEFCE Base:2162688 Address: 004DFFCE +Adding breakpoint for DECCiphers.F32 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1367 BreakPoint at:004DFFCE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11772 VA:002CEFDC Base:2162688 Address: 004DFFDC +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +Creating class info for DECCiphers class SetupKey +TBreakPoint.Activate: +Activate DECCiphers.pas line 1373 BreakPoint at:004DFFDC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11773 VA:002CEFE2 Base:2162688 Address: 004DFFE2 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1374 BreakPoint at:004DFFE2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11774 VA:002CEFF1 Base:2162688 Address: 004DFFF1 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1375 BreakPoint at:004DFFF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11775 VA:002CF005 Base:2162688 Address: 004E0005 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1376 BreakPoint at:004E0005 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11776 VA:002CF00E Base:2162688 Address: 004E000E +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1377 BreakPoint at:004E000E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11777 VA:002CF01A Base:2162688 Address: 004E001A +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1379 BreakPoint at:004E001A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11778 VA:002CF023 Base:2162688 Address: 004E0023 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1380 BreakPoint at:004E0023 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11779 VA:002CF02F Base:2162688 Address: 004E002F +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1382 BreakPoint at:004E002F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11780 VA:002CF039 Base:2162688 Address: 004E0039 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1383 BreakPoint at:004E0039 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11781 VA:002CF046 Base:2162688 Address: 004E0046 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1384 BreakPoint at:004E0046 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11782 VA:002CF058 Base:2162688 Address: 004E0058 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1386 BreakPoint at:004E0058 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11783 VA:002CF068 Base:2162688 Address: 004E0068 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1387 BreakPoint at:004E0068 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11784 VA:002CF078 Base:2162688 Address: 004E0078 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1388 BreakPoint at:004E0078 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11785 VA:002CF097 Base:2162688 Address: 004E0097 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1389 BreakPoint at:004E0097 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11786 VA:002CF09A Base:2162688 Address: 004E009A +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1390 BreakPoint at:004E009A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11787 VA:002CF09D Base:2162688 Address: 004E009D +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1384 BreakPoint at:004E009D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11788 VA:002CF0A2 Base:2162688 Address: 004E00A2 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1391 BreakPoint at:004E00A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11789 VA:002CF0A7 Base:2162688 Address: 004E00A7 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1392 BreakPoint at:004E00A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11790 VA:002CF0AC Base:2162688 Address: 004E00AC +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1394 BreakPoint at:004E00AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11791 VA:002CF0C1 Base:2162688 Address: 004E00C1 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1395 BreakPoint at:004E00C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11792 VA:002CF0DB Base:2162688 Address: 004E00DB +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1396 BreakPoint at:004E00DB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11793 VA:002CF0EC Base:2162688 Address: 004E00EC +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1397 BreakPoint at:004E00EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11794 VA:002CF100 Base:2162688 Address: 004E0100 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1398 BreakPoint at:004E0100 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11795 VA:002CF10B Base:2162688 Address: 004E010B +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1399 BreakPoint at:004E010B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11796 VA:002CF128 Base:2162688 Address: 004E0128 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1400 BreakPoint at:004E0128 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11797 VA:002CF12F Base:2162688 Address: 004E012F +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1401 BreakPoint at:004E012F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11798 VA:002CF132 Base:2162688 Address: 004E0132 +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1392 BreakPoint at:004E0132 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11799 VA:002CF13C Base:2162688 Address: 004E013C +Adding breakpoint for DECCiphers.SetupKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1402 BreakPoint at:004E013C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11800 VA:002CF140 Base:2162688 Address: 004E0140 +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +Creating class info for DECCiphers class DoXOR +TBreakPoint.Activate: +Activate DECCiphers.pas line 1407 BreakPoint at:004E0140 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11801 VA:002CF14F Base:2162688 Address: 004E014F +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1408 BreakPoint at:004E014F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11802 VA:002CF160 Base:2162688 Address: 004E0160 +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1409 BreakPoint at:004E0160 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11803 VA:002CF165 Base:2162688 Address: 004E0165 +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1410 BreakPoint at:004E0165 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11804 VA:002CF17D Base:2162688 Address: 004E017D +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1409 BreakPoint at:004E017D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11805 VA:002CF183 Base:2162688 Address: 004E0183 +Adding breakpoint for DECCiphers.DoXOR in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1411 BreakPoint at:004E0183 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11806 VA:002CF188 Base:2162688 Address: 004E0188 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +Creating class info for DECCiphers class SetupBox128 +TBreakPoint.Activate: +Activate DECCiphers.pas line 1417 BreakPoint at:004E0188 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11807 VA:002CF191 Base:2162688 Address: 004E0191 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1418 BreakPoint at:004E0191 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11808 VA:002CF1AD Base:2162688 Address: 004E01AD +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1419 BreakPoint at:004E01AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11809 VA:002CF1B7 Base:2162688 Address: 004E01B7 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1420 BreakPoint at:004E01B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11810 VA:002CF1BC Base:2162688 Address: 004E01BC +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1421 BreakPoint at:004E01BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11811 VA:002CF1EC Base:2162688 Address: 004E01EC +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1420 BreakPoint at:004E01EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11812 VA:002CF1F5 Base:2162688 Address: 004E01F5 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1422 BreakPoint at:004E01F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11813 VA:002CF21A Base:2162688 Address: 004E021A +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1423 BreakPoint at:004E021A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11814 VA:002CF224 Base:2162688 Address: 004E0224 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1424 BreakPoint at:004E0224 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11815 VA:002CF229 Base:2162688 Address: 004E0229 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1425 BreakPoint at:004E0229 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11816 VA:002CF261 Base:2162688 Address: 004E0261 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1424 BreakPoint at:004E0261 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11817 VA:002CF26A Base:2162688 Address: 004E026A +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1426 BreakPoint at:004E026A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11818 VA:002CF289 Base:2162688 Address: 004E0289 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1427 BreakPoint at:004E0289 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11819 VA:002CF293 Base:2162688 Address: 004E0293 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1428 BreakPoint at:004E0293 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11820 VA:002CF298 Base:2162688 Address: 004E0298 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1429 BreakPoint at:004E0298 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11821 VA:002CF2D4 Base:2162688 Address: 004E02D4 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1428 BreakPoint at:004E02D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11822 VA:002CF2DD Base:2162688 Address: 004E02DD +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1430 BreakPoint at:004E02DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11823 VA:002CF302 Base:2162688 Address: 004E0302 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1431 BreakPoint at:004E0302 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11824 VA:002CF30C Base:2162688 Address: 004E030C +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1432 BreakPoint at:004E030C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11825 VA:002CF311 Base:2162688 Address: 004E0311 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1433 BreakPoint at:004E0311 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11826 VA:002CF34D Base:2162688 Address: 004E034D +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1432 BreakPoint at:004E034D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11827 VA:002CF356 Base:2162688 Address: 004E0356 +Adding breakpoint for DECCiphers.SetupBox128 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1434 BreakPoint at:004E0356 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11828 VA:002CF35C Base:2162688 Address: 004E035C +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +Creating class info for DECCiphers class SetupBox192 +TBreakPoint.Activate: +Activate DECCiphers.pas line 1440 BreakPoint at:004E035C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11829 VA:002CF365 Base:2162688 Address: 004E0365 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1441 BreakPoint at:004E0365 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11830 VA:002CF387 Base:2162688 Address: 004E0387 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1442 BreakPoint at:004E0387 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11831 VA:002CF391 Base:2162688 Address: 004E0391 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1443 BreakPoint at:004E0391 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11832 VA:002CF39B Base:2162688 Address: 004E039B +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1444 BreakPoint at:004E039B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11833 VA:002CF3A0 Base:2162688 Address: 004E03A0 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1445 BreakPoint at:004E03A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11834 VA:002CF3DD Base:2162688 Address: 004E03DD +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1444 BreakPoint at:004E03DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11835 VA:002CF3E6 Base:2162688 Address: 004E03E6 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1446 BreakPoint at:004E03E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11836 VA:002CF40B Base:2162688 Address: 004E040B +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1447 BreakPoint at:004E040B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11837 VA:002CF415 Base:2162688 Address: 004E0415 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1448 BreakPoint at:004E0415 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11838 VA:002CF41F Base:2162688 Address: 004E041F +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1449 BreakPoint at:004E041F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11839 VA:002CF424 Base:2162688 Address: 004E0424 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1450 BreakPoint at:004E0424 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11840 VA:002CF46D Base:2162688 Address: 004E046D +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1449 BreakPoint at:004E046D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11841 VA:002CF476 Base:2162688 Address: 004E0476 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1451 BreakPoint at:004E0476 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11842 VA:002CF495 Base:2162688 Address: 004E0495 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1452 BreakPoint at:004E0495 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11843 VA:002CF49F Base:2162688 Address: 004E049F +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1453 BreakPoint at:004E049F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11844 VA:002CF4A9 Base:2162688 Address: 004E04A9 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1454 BreakPoint at:004E04A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11845 VA:002CF4AE Base:2162688 Address: 004E04AE +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1455 BreakPoint at:004E04AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11846 VA:002CF4F7 Base:2162688 Address: 004E04F7 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1454 BreakPoint at:004E04F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11847 VA:002CF500 Base:2162688 Address: 004E0500 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1456 BreakPoint at:004E0500 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11848 VA:002CF51F Base:2162688 Address: 004E051F +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1457 BreakPoint at:004E051F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11849 VA:002CF529 Base:2162688 Address: 004E0529 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1458 BreakPoint at:004E0529 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11850 VA:002CF533 Base:2162688 Address: 004E0533 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1459 BreakPoint at:004E0533 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11851 VA:002CF538 Base:2162688 Address: 004E0538 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1460 BreakPoint at:004E0538 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11852 VA:002CF585 Base:2162688 Address: 004E0585 +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1459 BreakPoint at:004E0585 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11853 VA:002CF58E Base:2162688 Address: 004E058E +Adding breakpoint for DECCiphers.SetupBox192 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1461 BreakPoint at:004E058E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11854 VA:002CF594 Base:2162688 Address: 004E0594 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +Creating class info for DECCiphers class SetupBox256 +TBreakPoint.Activate: +Activate DECCiphers.pas line 1468 BreakPoint at:004E0594 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11855 VA:002CF59D Base:2162688 Address: 004E059D +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1469 BreakPoint at:004E059D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11856 VA:002CF5BF Base:2162688 Address: 004E05BF +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1470 BreakPoint at:004E05BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11857 VA:002CF5C4 Base:2162688 Address: 004E05C4 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1471 BreakPoint at:004E05C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11858 VA:002CF5E9 Base:2162688 Address: 004E05E9 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1470 BreakPoint at:004E05E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11859 VA:002CF5F2 Base:2162688 Address: 004E05F2 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1472 BreakPoint at:004E05F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11860 VA:002CF60E Base:2162688 Address: 004E060E +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1473 BreakPoint at:004E060E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11861 VA:002CF618 Base:2162688 Address: 004E0618 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1474 BreakPoint at:004E0618 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11862 VA:002CF622 Base:2162688 Address: 004E0622 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1475 BreakPoint at:004E0622 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11863 VA:002CF627 Base:2162688 Address: 004E0627 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1476 BreakPoint at:004E0627 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11864 VA:002CF664 Base:2162688 Address: 004E0664 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1475 BreakPoint at:004E0664 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11865 VA:002CF66D Base:2162688 Address: 004E066D +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1477 BreakPoint at:004E066D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11866 VA:002CF68C Base:2162688 Address: 004E068C +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1478 BreakPoint at:004E068C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11867 VA:002CF691 Base:2162688 Address: 004E0691 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1479 BreakPoint at:004E0691 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11868 VA:002CF6B6 Base:2162688 Address: 004E06B6 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1478 BreakPoint at:004E06B6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11869 VA:002CF6BF Base:2162688 Address: 004E06BF +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1480 BreakPoint at:004E06BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11870 VA:002CF6DE Base:2162688 Address: 004E06DE +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1481 BreakPoint at:004E06DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11871 VA:002CF6E8 Base:2162688 Address: 004E06E8 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1482 BreakPoint at:004E06E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11872 VA:002CF6F2 Base:2162688 Address: 004E06F2 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1483 BreakPoint at:004E06F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11873 VA:002CF6F7 Base:2162688 Address: 004E06F7 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1484 BreakPoint at:004E06F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11874 VA:002CF740 Base:2162688 Address: 004E0740 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1483 BreakPoint at:004E0740 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11875 VA:002CF749 Base:2162688 Address: 004E0749 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1485 BreakPoint at:004E0749 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11876 VA:002CF768 Base:2162688 Address: 004E0768 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1486 BreakPoint at:004E0768 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11877 VA:002CF76D Base:2162688 Address: 004E076D +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1487 BreakPoint at:004E076D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11878 VA:002CF78E Base:2162688 Address: 004E078E +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1486 BreakPoint at:004E078E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11879 VA:002CF797 Base:2162688 Address: 004E0797 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1488 BreakPoint at:004E0797 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11880 VA:002CF7B6 Base:2162688 Address: 004E07B6 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1489 BreakPoint at:004E07B6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11881 VA:002CF7C0 Base:2162688 Address: 004E07C0 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1490 BreakPoint at:004E07C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11882 VA:002CF7CA Base:2162688 Address: 004E07CA +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1491 BreakPoint at:004E07CA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11883 VA:002CF7CF Base:2162688 Address: 004E07CF +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1492 BreakPoint at:004E07CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11884 VA:002CF818 Base:2162688 Address: 004E0818 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1491 BreakPoint at:004E0818 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11885 VA:002CF821 Base:2162688 Address: 004E0821 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1493 BreakPoint at:004E0821 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11886 VA:002CF846 Base:2162688 Address: 004E0846 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1494 BreakPoint at:004E0846 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11887 VA:002CF84B Base:2162688 Address: 004E084B +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1495 BreakPoint at:004E084B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11888 VA:002CF86C Base:2162688 Address: 004E086C +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1494 BreakPoint at:004E086C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11889 VA:002CF875 Base:2162688 Address: 004E0875 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1496 BreakPoint at:004E0875 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11890 VA:002CF894 Base:2162688 Address: 004E0894 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1497 BreakPoint at:004E0894 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11891 VA:002CF89E Base:2162688 Address: 004E089E +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1498 BreakPoint at:004E089E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11892 VA:002CF8A8 Base:2162688 Address: 004E08A8 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1499 BreakPoint at:004E08A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11893 VA:002CF8AD Base:2162688 Address: 004E08AD +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1500 BreakPoint at:004E08AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11894 VA:002CF8FA Base:2162688 Address: 004E08FA +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1499 BreakPoint at:004E08FA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11895 VA:002CF903 Base:2162688 Address: 004E0903 +Adding breakpoint for DECCiphers.SetupBox256 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1501 BreakPoint at:004E0903 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11896 VA:002CF908 Base:2162688 Address: 004E0908 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1503 BreakPoint at:004E0908 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11897 VA:002CF917 Base:2162688 Address: 004E0917 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1504 BreakPoint at:004E0917 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11898 VA:002CF920 Base:2162688 Address: 004E0920 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1505 BreakPoint at:004E0920 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11899 VA:002CF92B Base:2162688 Address: 004E092B +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1506 BreakPoint at:004E092B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11900 VA:002CF932 Base:2162688 Address: 004E0932 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1507 BreakPoint at:004E0932 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11901 VA:002CF938 Base:2162688 Address: 004E0938 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1508 BreakPoint at:004E0938 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11902 VA:002CF941 Base:2162688 Address: 004E0941 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1510 BreakPoint at:004E0941 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11903 VA:002CF947 Base:2162688 Address: 004E0947 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1511 BreakPoint at:004E0947 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11904 VA:002CF950 Base:2162688 Address: 004E0950 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1513 BreakPoint at:004E0950 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11905 VA:002CF957 Base:2162688 Address: 004E0957 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1516 BreakPoint at:004E0957 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11906 VA:002CF95C Base:2162688 Address: 004E095C +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1524 BreakPoint at:004E095C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11907 VA:002CF96B Base:2162688 Address: 004E096B +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1525 BreakPoint at:004E096B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11908 VA:002CF992 Base:2162688 Address: 004E0992 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1527 BreakPoint at:004E0992 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11909 VA:002CF99B Base:2162688 Address: 004E099B +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1528 BreakPoint at:004E099B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11910 VA:002CF9A8 Base:2162688 Address: 004E09A8 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1529 BreakPoint at:004E09A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11911 VA:002CF9B7 Base:2162688 Address: 004E09B7 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1530 BreakPoint at:004E09B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11912 VA:002CF9C6 Base:2162688 Address: 004E09C6 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1531 BreakPoint at:004E09C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11913 VA:002CF9D5 Base:2162688 Address: 004E09D5 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1533 BreakPoint at:004E09D5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11914 VA:002CF9E0 Base:2162688 Address: 004E09E0 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1534 BreakPoint at:004E09E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11915 VA:002CF9E9 Base:2162688 Address: 004E09E9 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1535 BreakPoint at:004E09E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11916 VA:002CF9EE Base:2162688 Address: 004E09EE +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1537 BreakPoint at:004E09EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11917 VA:002CFA29 Base:2162688 Address: 004E0A29 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1538 BreakPoint at:004E0A29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11918 VA:002CFA64 Base:2162688 Address: 004E0A64 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1539 BreakPoint at:004E0A64 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11919 VA:002CFA74 Base:2162688 Address: 004E0A74 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1540 BreakPoint at:004E0A74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11920 VA:002CFA82 Base:2162688 Address: 004E0A82 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1541 BreakPoint at:004E0A82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11921 VA:002CFA93 Base:2162688 Address: 004E0A93 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1542 BreakPoint at:004E0A93 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11922 VA:002CFAA3 Base:2162688 Address: 004E0AA3 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1544 BreakPoint at:004E0AA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11923 VA:002CFADE Base:2162688 Address: 004E0ADE +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1545 BreakPoint at:004E0ADE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11924 VA:002CFB19 Base:2162688 Address: 004E0B19 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1546 BreakPoint at:004E0B19 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11925 VA:002CFB29 Base:2162688 Address: 004E0B29 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1547 BreakPoint at:004E0B29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11926 VA:002CFB38 Base:2162688 Address: 004E0B38 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1548 BreakPoint at:004E0B38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11927 VA:002CFB49 Base:2162688 Address: 004E0B49 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1549 BreakPoint at:004E0B49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11928 VA:002CFB59 Base:2162688 Address: 004E0B59 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1551 BreakPoint at:004E0B59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11929 VA:002CFB62 Base:2162688 Address: 004E0B62 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1552 BreakPoint at:004E0B62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11930 VA:002CFB65 Base:2162688 Address: 004E0B65 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1535 BreakPoint at:004E0B65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11931 VA:002CFB6F Base:2162688 Address: 004E0B6F +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1553 BreakPoint at:004E0B6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11932 VA:002CFB78 Base:2162688 Address: 004E0B78 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1554 BreakPoint at:004E0B78 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11933 VA:002CFB86 Base:2162688 Address: 004E0B86 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1555 BreakPoint at:004E0B86 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11934 VA:002CFB95 Base:2162688 Address: 004E0B95 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1556 BreakPoint at:004E0B95 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11935 VA:002CFBA4 Base:2162688 Address: 004E0BA4 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1557 BreakPoint at:004E0BA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11936 VA:002CFBB3 Base:2162688 Address: 004E0BB3 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1558 BreakPoint at:004E0BB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11937 VA:002CFC68 Base:2162688 Address: 004E0C68 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1566 BreakPoint at:004E0C68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11938 VA:002CFC77 Base:2162688 Address: 004E0C77 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1567 BreakPoint at:004E0C77 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11939 VA:002CFC9E Base:2162688 Address: 004E0C9E +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1569 BreakPoint at:004E0C9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11940 VA:002CFCA7 Base:2162688 Address: 004E0CA7 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1570 BreakPoint at:004E0CA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11941 VA:002CFCB2 Base:2162688 Address: 004E0CB2 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1571 BreakPoint at:004E0CB2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11942 VA:002CFCC0 Base:2162688 Address: 004E0CC0 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1572 BreakPoint at:004E0CC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11943 VA:002CFCCF Base:2162688 Address: 004E0CCF +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1573 BreakPoint at:004E0CCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11944 VA:002CFCDE Base:2162688 Address: 004E0CDE +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1574 BreakPoint at:004E0CDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11945 VA:002CFCED Base:2162688 Address: 004E0CED +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1575 BreakPoint at:004E0CED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11946 VA:002CFCF8 Base:2162688 Address: 004E0CF8 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1576 BreakPoint at:004E0CF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11947 VA:002CFCFD Base:2162688 Address: 004E0CFD +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1578 BreakPoint at:004E0CFD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11948 VA:002CFD38 Base:2162688 Address: 004E0D38 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1579 BreakPoint at:004E0D38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11949 VA:002CFD73 Base:2162688 Address: 004E0D73 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1580 BreakPoint at:004E0D73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11950 VA:002CFD83 Base:2162688 Address: 004E0D83 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1581 BreakPoint at:004E0D83 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11951 VA:002CFD94 Base:2162688 Address: 004E0D94 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1582 BreakPoint at:004E0D94 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11952 VA:002CFDA3 Base:2162688 Address: 004E0DA3 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1583 BreakPoint at:004E0DA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11953 VA:002CFDB3 Base:2162688 Address: 004E0DB3 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1585 BreakPoint at:004E0DB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11954 VA:002CFDEE Base:2162688 Address: 004E0DEE +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1586 BreakPoint at:004E0DEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11955 VA:002CFE29 Base:2162688 Address: 004E0E29 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1587 BreakPoint at:004E0E29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11956 VA:002CFE39 Base:2162688 Address: 004E0E39 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1588 BreakPoint at:004E0E39 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11957 VA:002CFE4A Base:2162688 Address: 004E0E4A +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1589 BreakPoint at:004E0E4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11958 VA:002CFE58 Base:2162688 Address: 004E0E58 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1590 BreakPoint at:004E0E58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11959 VA:002CFE68 Base:2162688 Address: 004E0E68 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1592 BreakPoint at:004E0E68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11960 VA:002CFE6C Base:2162688 Address: 004E0E6C +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1593 BreakPoint at:004E0E6C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11961 VA:002CFE6F Base:2162688 Address: 004E0E6F +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1576 BreakPoint at:004E0E6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11962 VA:002CFE79 Base:2162688 Address: 004E0E79 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1594 BreakPoint at:004E0E79 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11963 VA:002CFE82 Base:2162688 Address: 004E0E82 +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1595 BreakPoint at:004E0E82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11964 VA:002CFE8F Base:2162688 Address: 004E0E8F +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1596 BreakPoint at:004E0E8F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11965 VA:002CFE9E Base:2162688 Address: 004E0E9E +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1597 BreakPoint at:004E0E9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11966 VA:002CFEAD Base:2162688 Address: 004E0EAD +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1598 BreakPoint at:004E0EAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11967 VA:002CFEBC Base:2162688 Address: 004E0EBC +Adding breakpoint for DECCiphers.TCipher_Twofish.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1599 BreakPoint at:004E0EBC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11968 VA:002CFF70 Base:2162688 Address: 004E0F70 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_IDEA +TBreakPoint.Activate: +Activate DECCiphers.pas line 1604 BreakPoint at:004E0F70 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11969 VA:002CFF7C Base:2162688 Address: 004E0F7C +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1605 BreakPoint at:004E0F7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11970 VA:002CFF85 Base:2162688 Address: 004E0F85 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1606 BreakPoint at:004E0F85 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11971 VA:002CFF8F Base:2162688 Address: 004E0F8F +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1607 BreakPoint at:004E0F8F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11972 VA:002CFF99 Base:2162688 Address: 004E0F99 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1608 BreakPoint at:004E0F99 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11973 VA:002CFFA3 Base:2162688 Address: 004E0FA3 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1609 BreakPoint at:004E0FA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11974 VA:002CFFAA Base:2162688 Address: 004E0FAA +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1610 BreakPoint at:004E0FAA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11975 VA:002CFFB3 Base:2162688 Address: 004E0FB3 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1611 BreakPoint at:004E0FB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11976 VA:002CFFBC Base:2162688 Address: 004E0FBC +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1612 BreakPoint at:004E0FBC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11977 VA:002CFFC8 Base:2162688 Address: 004E0FC8 +Adding breakpoint for DECCiphers.TCipher_IDEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1613 BreakPoint at:004E0FC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11978 VA:002CFFD0 Base:2162688 Address: 004E0FD0 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +Creating class info for DECCiphers class IDEAInv +TBreakPoint.Activate: +Activate DECCiphers.pas line 1620 BreakPoint at:004E0FD0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11979 VA:002CFFDA Base:2162688 Address: 004E0FDA +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1621 BreakPoint at:004E0FDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11980 VA:002CFFE1 Base:2162688 Address: 004E0FE1 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1623 BreakPoint at:004E0FE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11981 VA:002CFFE9 Base:2162688 Address: 004E0FE9 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1624 BreakPoint at:004E0FE9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11982 VA:002CFFEE Base:2162688 Address: 004E0FEE +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1626 BreakPoint at:004E0FEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11983 VA:002CFFF4 Base:2162688 Address: 004E0FF4 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1627 BreakPoint at:004E0FF4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11984 VA:002D0009 Base:2162688 Address: 004E1009 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1628 BreakPoint at:004E1009 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11985 VA:002D001E Base:2162688 Address: 004E101E +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1629 BreakPoint at:004E101E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11986 VA:002D0025 Base:2162688 Address: 004E1025 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1631 BreakPoint at:004E1025 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11987 VA:002D0037 Base:2162688 Address: 004E1037 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1632 BreakPoint at:004E1037 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11988 VA:002D0049 Base:2162688 Address: 004E1049 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1633 BreakPoint at:004E1049 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11989 VA:002D0055 Base:2162688 Address: 004E1055 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1634 BreakPoint at:004E1055 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11990 VA:002D005C Base:2162688 Address: 004E105C +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1636 BreakPoint at:004E105C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11991 VA:002D0064 Base:2162688 Address: 004E1064 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1637 BreakPoint at:004E1064 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11992 VA:002D0066 Base:2162688 Address: 004E1066 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1639 BreakPoint at:004E1066 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11993 VA:002D0078 Base:2162688 Address: 004E1078 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1640 BreakPoint at:004E1078 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11994 VA:002D008A Base:2162688 Address: 004E108A +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1641 BreakPoint at:004E108A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11995 VA:002D0096 Base:2162688 Address: 004E1096 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1629 BreakPoint at:004E1096 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11996 VA:002D009D Base:2162688 Address: 004E109D +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1643 BreakPoint at:004E109D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11997 VA:002D00A9 Base:2162688 Address: 004E10A9 +Adding breakpoint for DECCiphers.IDEAInv in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1644 BreakPoint at:004E10A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11998 VA:002D00B4 Base:2162688 Address: 004E10B4 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1651 BreakPoint at:004E10B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:11999 VA:002D00C3 Base:2162688 Address: 004E10C3 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1652 BreakPoint at:004E10C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12000 VA:002D00CC Base:2162688 Address: 004E10CC +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1653 BreakPoint at:004E10CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12001 VA:002D00DA Base:2162688 Address: 004E10DA +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1654 BreakPoint at:004E10DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12002 VA:002D00DF Base:2162688 Address: 004E10DF +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1655 BreakPoint at:004E10DF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12003 VA:002D00F8 Base:2162688 Address: 004E10F8 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1654 BreakPoint at:004E10F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12004 VA:002D00FE Base:2162688 Address: 004E10FE +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1656 BreakPoint at:004E10FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12005 VA:002D0103 Base:2162688 Address: 004E1103 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1657 BreakPoint at:004E1103 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12006 VA:002D0145 Base:2162688 Address: 004E1145 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1658 BreakPoint at:004E1145 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12007 VA:002D0148 Base:2162688 Address: 004E1148 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1656 BreakPoint at:004E1148 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12008 VA:002D014E Base:2162688 Address: 004E114E +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1659 BreakPoint at:004E114E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12009 VA:002D0155 Base:2162688 Address: 004E1155 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1660 BreakPoint at:004E1155 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12010 VA:002D0181 Base:2162688 Address: 004E1181 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1659 BreakPoint at:004E1181 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12011 VA:002D0187 Base:2162688 Address: 004E1187 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1661 BreakPoint at:004E1187 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12012 VA:002D018D Base:2162688 Address: 004E118D +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1662 BreakPoint at:004E118D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12013 VA:002D0198 Base:2162688 Address: 004E1198 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1663 BreakPoint at:004E1198 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12014 VA:002D01A9 Base:2162688 Address: 004E11A9 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1664 BreakPoint at:004E11A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12015 VA:002D01B6 Base:2162688 Address: 004E11B6 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1665 BreakPoint at:004E11B6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12016 VA:002D01C3 Base:2162688 Address: 004E11C3 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1666 BreakPoint at:004E11C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12017 VA:002D01D8 Base:2162688 Address: 004E11D8 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1667 BreakPoint at:004E11D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12018 VA:002D01E3 Base:2162688 Address: 004E11E3 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1668 BreakPoint at:004E11E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12019 VA:002D01EE Base:2162688 Address: 004E11EE +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1669 BreakPoint at:004E11EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12020 VA:002D01F8 Base:2162688 Address: 004E11F8 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1670 BreakPoint at:004E11F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12021 VA:002D01FC Base:2162688 Address: 004E11FC +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1671 BreakPoint at:004E11FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12022 VA:002D0203 Base:2162688 Address: 004E1203 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1673 BreakPoint at:004E1203 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12023 VA:002D0207 Base:2162688 Address: 004E1207 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1674 BreakPoint at:004E1207 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12024 VA:002D0211 Base:2162688 Address: 004E1211 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1675 BreakPoint at:004E1211 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12025 VA:002D021F Base:2162688 Address: 004E121F +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1676 BreakPoint at:004E121F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12026 VA:002D022A Base:2162688 Address: 004E122A +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1677 BreakPoint at:004E122A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12027 VA:002D023C Base:2162688 Address: 004E123C +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1678 BreakPoint at:004E123C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12028 VA:002D0249 Base:2162688 Address: 004E1249 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1679 BreakPoint at:004E1249 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12029 VA:002D0256 Base:2162688 Address: 004E1256 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1680 BreakPoint at:004E1256 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12030 VA:002D026B Base:2162688 Address: 004E126B +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1681 BreakPoint at:004E126B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12031 VA:002D0276 Base:2162688 Address: 004E1276 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1682 BreakPoint at:004E1276 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12032 VA:002D0281 Base:2162688 Address: 004E1281 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1683 BreakPoint at:004E1281 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12033 VA:002D028B Base:2162688 Address: 004E128B +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1684 BreakPoint at:004E128B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12034 VA:002D028F Base:2162688 Address: 004E128F +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1685 BreakPoint at:004E128F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12035 VA:002D0292 Base:2162688 Address: 004E1292 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1671 BreakPoint at:004E1292 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12036 VA:002D029C Base:2162688 Address: 004E129C +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1686 BreakPoint at:004E129C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12037 VA:002D02A7 Base:2162688 Address: 004E12A7 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1687 BreakPoint at:004E12A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12038 VA:002D02B5 Base:2162688 Address: 004E12B5 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1688 BreakPoint at:004E12B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12039 VA:002D02C0 Base:2162688 Address: 004E12C0 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1691 BreakPoint at:004E12C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12040 VA:002D02C4 Base:2162688 Address: 004E12C4 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +Creating class info for DECCiphers class IDEAMul +TBreakPoint.Activate: +Activate DECCiphers.pas line 1715 BreakPoint at:004E12C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12041 VA:002D02D0 Base:2162688 Address: 004E12D0 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1716 BreakPoint at:004E12D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12042 VA:002D02D7 Base:2162688 Address: 004E12D7 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1717 BreakPoint at:004E12D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12043 VA:002D02DD Base:2162688 Address: 004E12DD +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1719 BreakPoint at:004E12DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12044 VA:002D02E4 Base:2162688 Address: 004E12E4 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1720 BreakPoint at:004E12E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12045 VA:002D02EA Base:2162688 Address: 004E12EA +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1722 BreakPoint at:004E12EA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12046 VA:002D02F4 Base:2162688 Address: 004E12F4 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1723 BreakPoint at:004E12F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12047 VA:002D0302 Base:2162688 Address: 004E1302 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1724 BreakPoint at:004E1302 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12048 VA:002D030C Base:2162688 Address: 004E130C +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1725 BreakPoint at:004E130C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12049 VA:002D030F Base:2162688 Address: 004E130F +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1726 BreakPoint at:004E130F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12050 VA:002D0311 Base:2162688 Address: 004E1311 +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1729 BreakPoint at:004E1311 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12051 VA:002D031D Base:2162688 Address: 004E131D +Adding breakpoint for DECCiphers.IDEAMul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1730 BreakPoint at:004E131D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12052 VA:002D0324 Base:2162688 Address: 004E1324 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +Creating class info for DECCiphers class IDEACipher +TBreakPoint.Activate: +Activate DECCiphers.pas line 1737 BreakPoint at:004E1324 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12053 VA:002D0333 Base:2162688 Address: 004E1333 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1738 BreakPoint at:004E1333 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12054 VA:002D0340 Base:2162688 Address: 004E1340 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1739 BreakPoint at:004E1340 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12055 VA:002D0349 Base:2162688 Address: 004E1349 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1740 BreakPoint at:004E1349 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12056 VA:002D0354 Base:2162688 Address: 004E1354 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1741 BreakPoint at:004E1354 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12057 VA:002D0362 Base:2162688 Address: 004E1362 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1742 BreakPoint at:004E1362 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12058 VA:002D036B Base:2162688 Address: 004E136B +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1743 BreakPoint at:004E136B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12059 VA:002D0376 Base:2162688 Address: 004E1376 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1744 BreakPoint at:004E1376 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12060 VA:002D037B Base:2162688 Address: 004E137B +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1746 BreakPoint at:004E137B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12061 VA:002D038C Base:2162688 Address: 004E138C +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1747 BreakPoint at:004E138C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12062 VA:002D0396 Base:2162688 Address: 004E1396 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1748 BreakPoint at:004E1396 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12063 VA:002D03A0 Base:2162688 Address: 004E13A0 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1749 BreakPoint at:004E13A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12064 VA:002D03B2 Base:2162688 Address: 004E13B2 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1750 BreakPoint at:004E13B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12065 VA:002D03BB Base:2162688 Address: 004E13BB +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1751 BreakPoint at:004E13BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12066 VA:002D03CD Base:2162688 Address: 004E13CD +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1752 BreakPoint at:004E13CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12067 VA:002D03D9 Base:2162688 Address: 004E13D9 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1753 BreakPoint at:004E13D9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12068 VA:002D03EB Base:2162688 Address: 004E13EB +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1754 BreakPoint at:004E13EB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12069 VA:002D03F1 Base:2162688 Address: 004E13F1 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1755 BreakPoint at:004E13F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12070 VA:002D03F7 Base:2162688 Address: 004E13F7 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1756 BreakPoint at:004E13F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12071 VA:002D03FD Base:2162688 Address: 004E13FD +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1757 BreakPoint at:004E13FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12072 VA:002D0403 Base:2162688 Address: 004E1403 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1758 BreakPoint at:004E1403 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12073 VA:002D040C Base:2162688 Address: 004E140C +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1759 BreakPoint at:004E140C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12074 VA:002D0412 Base:2162688 Address: 004E1412 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1760 BreakPoint at:004E1412 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12075 VA:002D041B Base:2162688 Address: 004E141B +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1761 BreakPoint at:004E141B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12076 VA:002D041E Base:2162688 Address: 004E141E +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1744 BreakPoint at:004E141E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12077 VA:002D0428 Base:2162688 Address: 004E1428 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1762 BreakPoint at:004E1428 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12078 VA:002D0455 Base:2162688 Address: 004E1455 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1763 BreakPoint at:004E1455 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12079 VA:002D0483 Base:2162688 Address: 004E1483 +Adding breakpoint for DECCiphers.IDEACipher in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1764 BreakPoint at:004E1483 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12080 VA:002D0488 Base:2162688 Address: 004E1488 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1767 BreakPoint at:004E1488 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12081 VA:002D0497 Base:2162688 Address: 004E1497 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1768 BreakPoint at:004E1497 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12082 VA:002D04BE Base:2162688 Address: 004E14BE +Adding breakpoint for DECCiphers.TCipher_IDEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1770 BreakPoint at:004E14BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12083 VA:002D04CF Base:2162688 Address: 004E14CF +Adding breakpoint for DECCiphers.TCipher_IDEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1771 BreakPoint at:004E14CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12084 VA:002D0584 Base:2162688 Address: 004E1584 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1774 BreakPoint at:004E1584 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12085 VA:002D0593 Base:2162688 Address: 004E1593 +Adding breakpoint for DECCiphers.TCipher_IDEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1775 BreakPoint at:004E1593 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12086 VA:002D05BA Base:2162688 Address: 004E15BA +Adding breakpoint for DECCiphers.TCipher_IDEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1777 BreakPoint at:004E15BA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12087 VA:002D05CE Base:2162688 Address: 004E15CE +Adding breakpoint for DECCiphers.TCipher_IDEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1778 BreakPoint at:004E15CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12088 VA:002D0680 Base:2162688 Address: 004E1680 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Cast256 +TBreakPoint.Activate: +Activate DECCiphers.pas line 1783 BreakPoint at:004E1680 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12089 VA:002D068C Base:2162688 Address: 004E168C +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1784 BreakPoint at:004E168C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12090 VA:002D0695 Base:2162688 Address: 004E1695 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1785 BreakPoint at:004E1695 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12091 VA:002D069F Base:2162688 Address: 004E169F +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1786 BreakPoint at:004E169F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12092 VA:002D06A9 Base:2162688 Address: 004E16A9 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1787 BreakPoint at:004E16A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12093 VA:002D06B3 Base:2162688 Address: 004E16B3 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1788 BreakPoint at:004E16B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12094 VA:002D06BA Base:2162688 Address: 004E16BA +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1789 BreakPoint at:004E16BA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12095 VA:002D06C3 Base:2162688 Address: 004E16C3 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1790 BreakPoint at:004E16C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12096 VA:002D06CC Base:2162688 Address: 004E16CC +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1791 BreakPoint at:004E16CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12097 VA:002D06D8 Base:2162688 Address: 004E16D8 +Adding breakpoint for DECCiphers.TCipher_Cast256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1792 BreakPoint at:004E16D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12098 VA:002D06E0 Base:2162688 Address: 004E16E0 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1799 BreakPoint at:004E16E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12099 VA:002D06EF Base:2162688 Address: 004E16EF +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1800 BreakPoint at:004E16EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12100 VA:002D06FE Base:2162688 Address: 004E16FE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1801 BreakPoint at:004E16FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12101 VA:002D070C Base:2162688 Address: 004E170C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1802 BreakPoint at:004E170C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12102 VA:002D071C Base:2162688 Address: 004E171C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1803 BreakPoint at:004E171C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12103 VA:002D0725 Base:2162688 Address: 004E1725 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1804 BreakPoint at:004E1725 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12104 VA:002D072C Base:2162688 Address: 004E172C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1805 BreakPoint at:004E172C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12105 VA:002D0733 Base:2162688 Address: 004E1733 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1806 BreakPoint at:004E1733 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12106 VA:002D0738 Base:2162688 Address: 004E1738 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1808 BreakPoint at:004E1738 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12107 VA:002D073D Base:2162688 Address: 004E173D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1810 BreakPoint at:004E173D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12108 VA:002D0746 Base:2162688 Address: 004E1746 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1811 BreakPoint at:004E1746 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12109 VA:002D0760 Base:2162688 Address: 004E1760 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1812 BreakPoint at:004E1760 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12110 VA:002D07BA Base:2162688 Address: 004E17BA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1816 BreakPoint at:004E17BA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12111 VA:002D07C1 Base:2162688 Address: 004E17C1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1817 BreakPoint at:004E17C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12112 VA:002D07C5 Base:2162688 Address: 004E17C5 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1818 BreakPoint at:004E17C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12113 VA:002D07CE Base:2162688 Address: 004E17CE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1819 BreakPoint at:004E17CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12114 VA:002D07E8 Base:2162688 Address: 004E17E8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1820 BreakPoint at:004E17E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12115 VA:002D0842 Base:2162688 Address: 004E1842 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1824 BreakPoint at:004E1842 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12116 VA:002D0849 Base:2162688 Address: 004E1849 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1825 BreakPoint at:004E1849 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12117 VA:002D084D Base:2162688 Address: 004E184D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1826 BreakPoint at:004E184D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12118 VA:002D0856 Base:2162688 Address: 004E1856 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1827 BreakPoint at:004E1856 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12119 VA:002D0870 Base:2162688 Address: 004E1870 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1828 BreakPoint at:004E1870 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12120 VA:002D08CA Base:2162688 Address: 004E18CA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1832 BreakPoint at:004E18CA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12121 VA:002D08D1 Base:2162688 Address: 004E18D1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1833 BreakPoint at:004E18D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12122 VA:002D08D5 Base:2162688 Address: 004E18D5 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1834 BreakPoint at:004E18D5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12123 VA:002D08DE Base:2162688 Address: 004E18DE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1835 BreakPoint at:004E18DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12124 VA:002D08F8 Base:2162688 Address: 004E18F8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1836 BreakPoint at:004E18F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12125 VA:002D0952 Base:2162688 Address: 004E1952 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1840 BreakPoint at:004E1952 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12126 VA:002D0959 Base:2162688 Address: 004E1959 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1841 BreakPoint at:004E1959 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12127 VA:002D095D Base:2162688 Address: 004E195D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1842 BreakPoint at:004E195D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12128 VA:002D0966 Base:2162688 Address: 004E1966 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1843 BreakPoint at:004E1966 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12129 VA:002D0980 Base:2162688 Address: 004E1980 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1844 BreakPoint at:004E1980 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12130 VA:002D09DA Base:2162688 Address: 004E19DA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1848 BreakPoint at:004E19DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12131 VA:002D09E1 Base:2162688 Address: 004E19E1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1849 BreakPoint at:004E19E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12132 VA:002D09E5 Base:2162688 Address: 004E19E5 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1850 BreakPoint at:004E19E5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12133 VA:002D09EE Base:2162688 Address: 004E19EE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1851 BreakPoint at:004E19EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12134 VA:002D0A08 Base:2162688 Address: 004E1A08 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1852 BreakPoint at:004E1A08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12135 VA:002D0A62 Base:2162688 Address: 004E1A62 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1856 BreakPoint at:004E1A62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12136 VA:002D0A69 Base:2162688 Address: 004E1A69 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1857 BreakPoint at:004E1A69 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12137 VA:002D0A6D Base:2162688 Address: 004E1A6D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1858 BreakPoint at:004E1A6D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12138 VA:002D0A76 Base:2162688 Address: 004E1A76 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1859 BreakPoint at:004E1A76 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12139 VA:002D0A90 Base:2162688 Address: 004E1A90 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1860 BreakPoint at:004E1A90 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12140 VA:002D0AEA Base:2162688 Address: 004E1AEA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1864 BreakPoint at:004E1AEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12141 VA:002D0AF1 Base:2162688 Address: 004E1AF1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1865 BreakPoint at:004E1AF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12142 VA:002D0AF5 Base:2162688 Address: 004E1AF5 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1866 BreakPoint at:004E1AF5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12143 VA:002D0AFE Base:2162688 Address: 004E1AFE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1867 BreakPoint at:004E1AFE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12144 VA:002D0B18 Base:2162688 Address: 004E1B18 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1868 BreakPoint at:004E1B18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12145 VA:002D0B72 Base:2162688 Address: 004E1B72 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1872 BreakPoint at:004E1B72 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12146 VA:002D0B79 Base:2162688 Address: 004E1B79 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1873 BreakPoint at:004E1B79 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12147 VA:002D0B7D Base:2162688 Address: 004E1B7D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1874 BreakPoint at:004E1B7D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12148 VA:002D0B80 Base:2162688 Address: 004E1B80 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1808 BreakPoint at:004E1B80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12149 VA:002D0B8A Base:2162688 Address: 004E1B8A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1875 BreakPoint at:004E1B8A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12150 VA:002D0B90 Base:2162688 Address: 004E1B90 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1877 BreakPoint at:004E1B90 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12151 VA:002D0B9F Base:2162688 Address: 004E1B9F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1878 BreakPoint at:004E1B9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12152 VA:002D0BAE Base:2162688 Address: 004E1BAE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1879 BreakPoint at:004E1BAE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12153 VA:002D0BBD Base:2162688 Address: 004E1BBD +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1880 BreakPoint at:004E1BBD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12154 VA:002D0BCC Base:2162688 Address: 004E1BCC +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1881 BreakPoint at:004E1BCC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12155 VA:002D0BD4 Base:2162688 Address: 004E1BD4 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1882 BreakPoint at:004E1BD4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12156 VA:002D0BDD Base:2162688 Address: 004E1BDD +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1883 BreakPoint at:004E1BDD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12157 VA:002D0BE6 Base:2162688 Address: 004E1BE6 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1884 BreakPoint at:004E1BE6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12158 VA:002D0BF1 Base:2162688 Address: 004E1BF1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1888 BreakPoint at:004E1BF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12159 VA:002D0C00 Base:2162688 Address: 004E1C00 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1889 BreakPoint at:004E1C00 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12160 VA:002D0C0F Base:2162688 Address: 004E1C0F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1890 BreakPoint at:004E1C0F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12161 VA:002D0C1E Base:2162688 Address: 004E1C1E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1891 BreakPoint at:004E1C1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12162 VA:002D0C2D Base:2162688 Address: 004E1C2D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1892 BreakPoint at:004E1C2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12163 VA:002D0C35 Base:2162688 Address: 004E1C35 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1893 BreakPoint at:004E1C35 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12164 VA:002D0C3E Base:2162688 Address: 004E1C3E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1894 BreakPoint at:004E1C3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12165 VA:002D0C47 Base:2162688 Address: 004E1C47 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1895 BreakPoint at:004E1C47 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12166 VA:002D0C50 Base:2162688 Address: 004E1C50 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1897 BreakPoint at:004E1C50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12167 VA:002D0C59 Base:2162688 Address: 004E1C59 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1898 BreakPoint at:004E1C59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12168 VA:002D0C5C Base:2162688 Address: 004E1C5C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1806 BreakPoint at:004E1C5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12169 VA:002D0C66 Base:2162688 Address: 004E1C66 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1899 BreakPoint at:004E1C66 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12170 VA:002D0C73 Base:2162688 Address: 004E1C73 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1902 BreakPoint at:004E1C73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12171 VA:002D0C78 Base:2162688 Address: 004E1C78 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1908 BreakPoint at:004E1C78 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12172 VA:002D0C87 Base:2162688 Address: 004E1C87 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1909 BreakPoint at:004E1C87 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12173 VA:002D0CAE Base:2162688 Address: 004E1CAE +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1911 BreakPoint at:004E1CAE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12174 VA:002D0CB7 Base:2162688 Address: 004E1CB7 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1912 BreakPoint at:004E1CB7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12175 VA:002D0CC7 Base:2162688 Address: 004E1CC7 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1913 BreakPoint at:004E1CC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12176 VA:002D0CCF Base:2162688 Address: 004E1CCF +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1914 BreakPoint at:004E1CCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12177 VA:002D0CD8 Base:2162688 Address: 004E1CD8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1915 BreakPoint at:004E1CD8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12178 VA:002D0CE1 Base:2162688 Address: 004E1CE1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1916 BreakPoint at:004E1CE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12179 VA:002D0CEA Base:2162688 Address: 004E1CEA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1917 BreakPoint at:004E1CEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12180 VA:002D0CEF Base:2162688 Address: 004E1CEF +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1919 BreakPoint at:004E1CEF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12181 VA:002D0CFA Base:2162688 Address: 004E1CFA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1920 BreakPoint at:004E1CFA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12182 VA:002D0D20 Base:2162688 Address: 004E1D20 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1921 BreakPoint at:004E1D20 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12183 VA:002D0D7A Base:2162688 Address: 004E1D7A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1925 BreakPoint at:004E1D7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12184 VA:002D0D86 Base:2162688 Address: 004E1D86 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1926 BreakPoint at:004E1D86 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12185 VA:002D0DAC Base:2162688 Address: 004E1DAC +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1927 BreakPoint at:004E1DAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12186 VA:002D0E06 Base:2162688 Address: 004E1E06 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1931 BreakPoint at:004E1E06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12187 VA:002D0E12 Base:2162688 Address: 004E1E12 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1932 BreakPoint at:004E1E12 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12188 VA:002D0E38 Base:2162688 Address: 004E1E38 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1933 BreakPoint at:004E1E38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12189 VA:002D0E92 Base:2162688 Address: 004E1E92 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1937 BreakPoint at:004E1E92 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12190 VA:002D0E9E Base:2162688 Address: 004E1E9E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1938 BreakPoint at:004E1E9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12191 VA:002D0EC4 Base:2162688 Address: 004E1EC4 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1939 BreakPoint at:004E1EC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12192 VA:002D0F1E Base:2162688 Address: 004E1F1E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1943 BreakPoint at:004E1F1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12193 VA:002D0F27 Base:2162688 Address: 004E1F27 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1944 BreakPoint at:004E1F27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12194 VA:002D0F2A Base:2162688 Address: 004E1F2A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1917 BreakPoint at:004E1F2A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12195 VA:002D0F34 Base:2162688 Address: 004E1F34 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1945 BreakPoint at:004E1F34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12196 VA:002D0F39 Base:2162688 Address: 004E1F39 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1947 BreakPoint at:004E1F39 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12197 VA:002D0F44 Base:2162688 Address: 004E1F44 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1948 BreakPoint at:004E1F44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12198 VA:002D0F6A Base:2162688 Address: 004E1F6A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1949 BreakPoint at:004E1F6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12199 VA:002D0FC4 Base:2162688 Address: 004E1FC4 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1953 BreakPoint at:004E1FC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12200 VA:002D0FD0 Base:2162688 Address: 004E1FD0 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1954 BreakPoint at:004E1FD0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12201 VA:002D0FF6 Base:2162688 Address: 004E1FF6 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1955 BreakPoint at:004E1FF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12202 VA:002D1050 Base:2162688 Address: 004E2050 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1959 BreakPoint at:004E2050 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12203 VA:002D105C Base:2162688 Address: 004E205C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1960 BreakPoint at:004E205C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12204 VA:002D1082 Base:2162688 Address: 004E2082 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1961 BreakPoint at:004E2082 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12205 VA:002D10DC Base:2162688 Address: 004E20DC +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1965 BreakPoint at:004E20DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12206 VA:002D10E8 Base:2162688 Address: 004E20E8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1966 BreakPoint at:004E20E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12207 VA:002D110E Base:2162688 Address: 004E210E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1967 BreakPoint at:004E210E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12208 VA:002D1168 Base:2162688 Address: 004E2168 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1971 BreakPoint at:004E2168 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12209 VA:002D1171 Base:2162688 Address: 004E2171 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1972 BreakPoint at:004E2171 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12210 VA:002D1174 Base:2162688 Address: 004E2174 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1945 BreakPoint at:004E2174 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12211 VA:002D117E Base:2162688 Address: 004E217E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1973 BreakPoint at:004E217E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12212 VA:002D1186 Base:2162688 Address: 004E2186 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1974 BreakPoint at:004E2186 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12213 VA:002D118F Base:2162688 Address: 004E218F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1975 BreakPoint at:004E218F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12214 VA:002D1198 Base:2162688 Address: 004E2198 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1976 BreakPoint at:004E2198 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12215 VA:002D11A1 Base:2162688 Address: 004E21A1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1977 BreakPoint at:004E21A1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12216 VA:002D11B1 Base:2162688 Address: 004E21B1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1978 BreakPoint at:004E21B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12217 VA:002D1264 Base:2162688 Address: 004E2264 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1984 BreakPoint at:004E2264 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12218 VA:002D1273 Base:2162688 Address: 004E2273 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1985 BreakPoint at:004E2273 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12219 VA:002D129A Base:2162688 Address: 004E229A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1987 BreakPoint at:004E229A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12220 VA:002D12A8 Base:2162688 Address: 004E22A8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1988 BreakPoint at:004E22A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12221 VA:002D12B8 Base:2162688 Address: 004E22B8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1989 BreakPoint at:004E22B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12222 VA:002D12C0 Base:2162688 Address: 004E22C0 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1990 BreakPoint at:004E22C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12223 VA:002D12C9 Base:2162688 Address: 004E22C9 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1991 BreakPoint at:004E22C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12224 VA:002D12D2 Base:2162688 Address: 004E22D2 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1992 BreakPoint at:004E22D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12225 VA:002D12DB Base:2162688 Address: 004E22DB +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1993 BreakPoint at:004E22DB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12226 VA:002D12E0 Base:2162688 Address: 004E22E0 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1995 BreakPoint at:004E22E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12227 VA:002D12EC Base:2162688 Address: 004E22EC +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1996 BreakPoint at:004E22EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12228 VA:002D1312 Base:2162688 Address: 004E2312 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1997 BreakPoint at:004E2312 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12229 VA:002D136C Base:2162688 Address: 004E236C +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2001 BreakPoint at:004E236C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12230 VA:002D1378 Base:2162688 Address: 004E2378 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2002 BreakPoint at:004E2378 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12231 VA:002D139E Base:2162688 Address: 004E239E +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2003 BreakPoint at:004E239E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12232 VA:002D13F8 Base:2162688 Address: 004E23F8 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2007 BreakPoint at:004E23F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12233 VA:002D1404 Base:2162688 Address: 004E2404 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2008 BreakPoint at:004E2404 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12234 VA:002D142A Base:2162688 Address: 004E242A +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2009 BreakPoint at:004E242A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12235 VA:002D1484 Base:2162688 Address: 004E2484 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2013 BreakPoint at:004E2484 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12236 VA:002D148F Base:2162688 Address: 004E248F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2014 BreakPoint at:004E248F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12237 VA:002D14B5 Base:2162688 Address: 004E24B5 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2015 BreakPoint at:004E24B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12238 VA:002D150F Base:2162688 Address: 004E250F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2019 BreakPoint at:004E250F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12239 VA:002D1513 Base:2162688 Address: 004E2513 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2020 BreakPoint at:004E2513 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12240 VA:002D1516 Base:2162688 Address: 004E2516 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 1993 BreakPoint at:004E2516 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12241 VA:002D1520 Base:2162688 Address: 004E2520 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2021 BreakPoint at:004E2520 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12242 VA:002D1525 Base:2162688 Address: 004E2525 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2023 BreakPoint at:004E2525 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12243 VA:002D1531 Base:2162688 Address: 004E2531 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2024 BreakPoint at:004E2531 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12244 VA:002D1557 Base:2162688 Address: 004E2557 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2025 BreakPoint at:004E2557 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12245 VA:002D15B1 Base:2162688 Address: 004E25B1 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2029 BreakPoint at:004E25B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12246 VA:002D15BD Base:2162688 Address: 004E25BD +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2030 BreakPoint at:004E25BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12247 VA:002D15E3 Base:2162688 Address: 004E25E3 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2031 BreakPoint at:004E25E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12248 VA:002D163D Base:2162688 Address: 004E263D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2035 BreakPoint at:004E263D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12249 VA:002D1649 Base:2162688 Address: 004E2649 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2036 BreakPoint at:004E2649 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12250 VA:002D166F Base:2162688 Address: 004E266F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2037 BreakPoint at:004E266F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12251 VA:002D16C9 Base:2162688 Address: 004E26C9 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2041 BreakPoint at:004E26C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12252 VA:002D16D4 Base:2162688 Address: 004E26D4 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2042 BreakPoint at:004E26D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12253 VA:002D16FA Base:2162688 Address: 004E26FA +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2043 BreakPoint at:004E26FA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12254 VA:002D1754 Base:2162688 Address: 004E2754 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2047 BreakPoint at:004E2754 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12255 VA:002D1758 Base:2162688 Address: 004E2758 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2048 BreakPoint at:004E2758 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12256 VA:002D175B Base:2162688 Address: 004E275B +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2021 BreakPoint at:004E275B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12257 VA:002D1765 Base:2162688 Address: 004E2765 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2049 BreakPoint at:004E2765 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12258 VA:002D176D Base:2162688 Address: 004E276D +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2050 BreakPoint at:004E276D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12259 VA:002D1776 Base:2162688 Address: 004E2776 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2051 BreakPoint at:004E2776 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12260 VA:002D177F Base:2162688 Address: 004E277F +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2052 BreakPoint at:004E277F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12261 VA:002D1788 Base:2162688 Address: 004E2788 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2053 BreakPoint at:004E2788 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12262 VA:002D1798 Base:2162688 Address: 004E2798 +Adding breakpoint for DECCiphers.TCipher_Cast256.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2054 BreakPoint at:004E2798 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12263 VA:002D184C Base:2162688 Address: 004E284C +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Mars +TBreakPoint.Activate: +Activate DECCiphers.pas line 2059 BreakPoint at:004E284C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12264 VA:002D1858 Base:2162688 Address: 004E2858 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2060 BreakPoint at:004E2858 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12265 VA:002D1861 Base:2162688 Address: 004E2861 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2061 BreakPoint at:004E2861 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12266 VA:002D186B Base:2162688 Address: 004E286B +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2062 BreakPoint at:004E286B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12267 VA:002D1875 Base:2162688 Address: 004E2875 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2063 BreakPoint at:004E2875 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12268 VA:002D187F Base:2162688 Address: 004E287F +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2064 BreakPoint at:004E287F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12269 VA:002D1886 Base:2162688 Address: 004E2886 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2065 BreakPoint at:004E2886 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12270 VA:002D188F Base:2162688 Address: 004E288F +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2066 BreakPoint at:004E288F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12271 VA:002D1898 Base:2162688 Address: 004E2898 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2067 BreakPoint at:004E2898 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12272 VA:002D18A4 Base:2162688 Address: 004E28A4 +Adding breakpoint for DECCiphers.TCipher_Mars.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2068 BreakPoint at:004E28A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12273 VA:002D18AC Base:2162688 Address: 004E28AC +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +Creating class info for DECCiphers class FixKey +TBreakPoint.Activate: +Activate DECCiphers.pas line 2078 BreakPoint at:004E28AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12274 VA:002D18B9 Base:2162688 Address: 004E28B9 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2079 BreakPoint at:004E28B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12275 VA:002D18C2 Base:2162688 Address: 004E28C2 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2080 BreakPoint at:004E28C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12276 VA:002D18C6 Base:2162688 Address: 004E28C6 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2081 BreakPoint at:004E28C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12277 VA:002D18D5 Base:2162688 Address: 004E28D5 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2082 BreakPoint at:004E28D5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12278 VA:002D18E0 Base:2162688 Address: 004E28E0 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2083 BreakPoint at:004E28E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12279 VA:002D18E9 Base:2162688 Address: 004E28E9 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2084 BreakPoint at:004E28E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12280 VA:002D18F2 Base:2162688 Address: 004E28F2 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2085 BreakPoint at:004E28F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12281 VA:002D18FB Base:2162688 Address: 004E28FB +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2086 BreakPoint at:004E28FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12282 VA:002D1902 Base:2162688 Address: 004E2902 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2087 BreakPoint at:004E2902 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12283 VA:002D1908 Base:2162688 Address: 004E2908 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2089 BreakPoint at:004E2908 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12284 VA:002D190E Base:2162688 Address: 004E290E +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2090 BreakPoint at:004E290E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12285 VA:002D1913 Base:2162688 Address: 004E2913 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2092 BreakPoint at:004E2913 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12286 VA:002D191E Base:2162688 Address: 004E291E +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2093 BreakPoint at:004E291E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12287 VA:002D1927 Base:2162688 Address: 004E2927 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2094 BreakPoint at:004E2927 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12288 VA:002D1930 Base:2162688 Address: 004E2930 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2095 BreakPoint at:004E2930 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12289 VA:002D1939 Base:2162688 Address: 004E2939 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2096 BreakPoint at:004E2939 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12290 VA:002D195B Base:2162688 Address: 004E295B +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2097 BreakPoint at:004E295B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12291 VA:002D1998 Base:2162688 Address: 004E2998 +Adding breakpoint for DECCiphers.FixKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2098 BreakPoint at:004E2998 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12292 VA:002D19A0 Base:2162688 Address: 004E29A0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2105 BreakPoint at:004E29A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12293 VA:002D19B0 Base:2162688 Address: 004E29B0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2106 BreakPoint at:004E29B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12294 VA:002D19B9 Base:2162688 Address: 004E29B9 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2107 BreakPoint at:004E29B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12295 VA:002D19C1 Base:2162688 Address: 004E29C1 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2108 BreakPoint at:004E29C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12296 VA:002D19D0 Base:2162688 Address: 004E29D0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2109 BreakPoint at:004E29D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12297 VA:002D19DE Base:2162688 Address: 004E29DE +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2110 BreakPoint at:004E29DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12298 VA:002D19EE Base:2162688 Address: 004E29EE +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2111 BreakPoint at:004E29EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12299 VA:002D19F8 Base:2162688 Address: 004E29F8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2112 BreakPoint at:004E29F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12300 VA:002D19FD Base:2162688 Address: 004E29FD +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2114 BreakPoint at:004E29FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12301 VA:002D1A02 Base:2162688 Address: 004E2A02 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2116 BreakPoint at:004E2A02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12302 VA:002D1A2B Base:2162688 Address: 004E2A2B +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2117 BreakPoint at:004E2A2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12303 VA:002D1A52 Base:2162688 Address: 004E2A52 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2118 BreakPoint at:004E2A52 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12304 VA:002D1A55 Base:2162688 Address: 004E2A55 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2114 BreakPoint at:004E2A55 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12305 VA:002D1A5B Base:2162688 Address: 004E2A5B +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2119 BreakPoint at:004E2A5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12306 VA:002D1A60 Base:2162688 Address: 004E2A60 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2121 BreakPoint at:004E2A60 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12307 VA:002D1A65 Base:2162688 Address: 004E2A65 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2123 BreakPoint at:004E2A65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12308 VA:002D1A8A Base:2162688 Address: 004E2A8A +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2124 BreakPoint at:004E2A8A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12309 VA:002D1AA7 Base:2162688 Address: 004E2AA7 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2125 BreakPoint at:004E2AA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12310 VA:002D1AAA Base:2162688 Address: 004E2AAA +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2121 BreakPoint at:004E2AAA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12311 VA:002D1AB0 Base:2162688 Address: 004E2AB0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2126 BreakPoint at:004E2AB0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12312 VA:002D1AB3 Base:2162688 Address: 004E2AB3 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2119 BreakPoint at:004E2AB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12313 VA:002D1AB9 Base:2162688 Address: 004E2AB9 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2127 BreakPoint at:004E2AB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12314 VA:002D1ABE Base:2162688 Address: 004E2ABE +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2128 BreakPoint at:004E2ABE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12315 VA:002D1AE5 Base:2162688 Address: 004E2AE5 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2127 BreakPoint at:004E2AE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12316 VA:002D1AEB Base:2162688 Address: 004E2AEB +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2129 BreakPoint at:004E2AEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12317 VA:002D1AEE Base:2162688 Address: 004E2AEE +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2112 BreakPoint at:004E2AEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12318 VA:002D1AF8 Base:2162688 Address: 004E2AF8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2130 BreakPoint at:004E2AF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12319 VA:002D1AFF Base:2162688 Address: 004E2AFF +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2132 BreakPoint at:004E2AFF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12320 VA:002D1B22 Base:2162688 Address: 004E2B22 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2133 BreakPoint at:004E2B22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12321 VA:002D1B26 Base:2162688 Address: 004E2B26 +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2134 BreakPoint at:004E2B26 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12322 VA:002D1B2C Base:2162688 Address: 004E2B2C +Adding breakpoint for DECCiphers.TCipher_Mars.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2137 BreakPoint at:004E2B2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12323 VA:002D1B34 Base:2162688 Address: 004E2B34 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2143 BreakPoint at:004E2B34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12324 VA:002D1B43 Base:2162688 Address: 004E2B43 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2144 BreakPoint at:004E2B43 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12325 VA:002D1B6A Base:2162688 Address: 004E2B6A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2146 BreakPoint at:004E2B6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12326 VA:002D1B73 Base:2162688 Address: 004E2B73 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2147 BreakPoint at:004E2B73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12327 VA:002D1B80 Base:2162688 Address: 004E2B80 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2148 BreakPoint at:004E2B80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12328 VA:002D1B8F Base:2162688 Address: 004E2B8F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2149 BreakPoint at:004E2B8F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12329 VA:002D1B9E Base:2162688 Address: 004E2B9E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2150 BreakPoint at:004E2B9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12330 VA:002D1BAD Base:2162688 Address: 004E2BAD +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2151 BreakPoint at:004E2BAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12331 VA:002D1BB6 Base:2162688 Address: 004E2BB6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2152 BreakPoint at:004E2BB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12332 VA:002D1BBB Base:2162688 Address: 004E2BBB +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2154 BreakPoint at:004E2BBB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12333 VA:002D1BEB Base:2162688 Address: 004E2BEB +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2155 BreakPoint at:004E2BEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12334 VA:002D1C02 Base:2162688 Address: 004E2C02 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2156 BreakPoint at:004E2C02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12335 VA:002D1C18 Base:2162688 Address: 004E2C18 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2157 BreakPoint at:004E2C18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12336 VA:002D1C2C Base:2162688 Address: 004E2C2C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2159 BreakPoint at:004E2C2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12337 VA:002D1C5C Base:2162688 Address: 004E2C5C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2160 BreakPoint at:004E2C5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12338 VA:002D1C73 Base:2162688 Address: 004E2C73 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2161 BreakPoint at:004E2C73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12339 VA:002D1C89 Base:2162688 Address: 004E2C89 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2162 BreakPoint at:004E2C89 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12340 VA:002D1C9D Base:2162688 Address: 004E2C9D +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2164 BreakPoint at:004E2C9D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12341 VA:002D1CCD Base:2162688 Address: 004E2CCD +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2165 BreakPoint at:004E2CCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12342 VA:002D1CE4 Base:2162688 Address: 004E2CE4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2166 BreakPoint at:004E2CE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12343 VA:002D1CFA Base:2162688 Address: 004E2CFA +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2167 BreakPoint at:004E2CFA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12344 VA:002D1D0B Base:2162688 Address: 004E2D0B +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2169 BreakPoint at:004E2D0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12345 VA:002D1D3B Base:2162688 Address: 004E2D3B +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2170 BreakPoint at:004E2D3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12346 VA:002D1D52 Base:2162688 Address: 004E2D52 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2171 BreakPoint at:004E2D52 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12347 VA:002D1D68 Base:2162688 Address: 004E2D68 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2172 BreakPoint at:004E2D68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12348 VA:002D1D79 Base:2162688 Address: 004E2D79 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2173 BreakPoint at:004E2D79 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12349 VA:002D1D7C Base:2162688 Address: 004E2D7C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2152 BreakPoint at:004E2D7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12350 VA:002D1D86 Base:2162688 Address: 004E2D86 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2175 BreakPoint at:004E2D86 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12351 VA:002D1D8B Base:2162688 Address: 004E2D8B +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2177 BreakPoint at:004E2D8B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12352 VA:002D1D96 Base:2162688 Address: 004E2D96 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2178 BreakPoint at:004E2D96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12353 VA:002D1DA7 Base:2162688 Address: 004E2DA7 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2179 BreakPoint at:004E2DA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12354 VA:002D1DB3 Base:2162688 Address: 004E2DB3 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2180 BreakPoint at:004E2DB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12355 VA:002D1DC4 Base:2162688 Address: 004E2DC4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2181 BreakPoint at:004E2DC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12356 VA:002D1DDE Base:2162688 Address: 004E2DDE +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2182 BreakPoint at:004E2DDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12357 VA:002D1DF5 Base:2162688 Address: 004E2DF5 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2183 BreakPoint at:004E2DF5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12358 VA:002D1E06 Base:2162688 Address: 004E2E06 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2184 BreakPoint at:004E2E06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12359 VA:002D1E0C Base:2162688 Address: 004E2E0C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2185 BreakPoint at:004E2E0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12360 VA:002D1E26 Base:2162688 Address: 004E2E26 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2187 BreakPoint at:004E2E26 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12361 VA:002D1E2C Base:2162688 Address: 004E2E2C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2189 BreakPoint at:004E2E2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12362 VA:002D1E32 Base:2162688 Address: 004E2E32 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2190 BreakPoint at:004E2E32 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12363 VA:002D1E3A Base:2162688 Address: 004E2E3A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2194 BreakPoint at:004E2E3A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12364 VA:002D1E40 Base:2162688 Address: 004E2E40 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2195 BreakPoint at:004E2E40 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12365 VA:002D1E46 Base:2162688 Address: 004E2E46 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2197 BreakPoint at:004E2E46 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12366 VA:002D1E52 Base:2162688 Address: 004E2E52 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2198 BreakPoint at:004E2E52 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12367 VA:002D1E63 Base:2162688 Address: 004E2E63 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2199 BreakPoint at:004E2E63 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12368 VA:002D1E6F Base:2162688 Address: 004E2E6F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2200 BreakPoint at:004E2E6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12369 VA:002D1E80 Base:2162688 Address: 004E2E80 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2201 BreakPoint at:004E2E80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12370 VA:002D1E9A Base:2162688 Address: 004E2E9A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2202 BreakPoint at:004E2E9A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12371 VA:002D1EB1 Base:2162688 Address: 004E2EB1 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2203 BreakPoint at:004E2EB1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12372 VA:002D1EC2 Base:2162688 Address: 004E2EC2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2204 BreakPoint at:004E2EC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12373 VA:002D1EC8 Base:2162688 Address: 004E2EC8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2205 BreakPoint at:004E2EC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12374 VA:002D1EE2 Base:2162688 Address: 004E2EE2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2206 BreakPoint at:004E2EE2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12375 VA:002D1EE8 Base:2162688 Address: 004E2EE8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2208 BreakPoint at:004E2EE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12376 VA:002D1EEE Base:2162688 Address: 004E2EEE +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2209 BreakPoint at:004E2EEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12377 VA:002D1EF6 Base:2162688 Address: 004E2EF6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2213 BreakPoint at:004E2EF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12378 VA:002D1EFC Base:2162688 Address: 004E2EFC +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2214 BreakPoint at:004E2EFC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12379 VA:002D1F02 Base:2162688 Address: 004E2F02 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2216 BreakPoint at:004E2F02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12380 VA:002D1F0E Base:2162688 Address: 004E2F0E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2217 BreakPoint at:004E2F0E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12381 VA:002D1F1F Base:2162688 Address: 004E2F1F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2218 BreakPoint at:004E2F1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12382 VA:002D1F2B Base:2162688 Address: 004E2F2B +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2219 BreakPoint at:004E2F2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12383 VA:002D1F3C Base:2162688 Address: 004E2F3C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2220 BreakPoint at:004E2F3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12384 VA:002D1F56 Base:2162688 Address: 004E2F56 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2221 BreakPoint at:004E2F56 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12385 VA:002D1F6D Base:2162688 Address: 004E2F6D +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2222 BreakPoint at:004E2F6D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12386 VA:002D1F7E Base:2162688 Address: 004E2F7E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2223 BreakPoint at:004E2F7E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12387 VA:002D1F84 Base:2162688 Address: 004E2F84 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2224 BreakPoint at:004E2F84 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12388 VA:002D1F9E Base:2162688 Address: 004E2F9E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2225 BreakPoint at:004E2F9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12389 VA:002D1FA4 Base:2162688 Address: 004E2FA4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2227 BreakPoint at:004E2FA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12390 VA:002D1FAA Base:2162688 Address: 004E2FAA +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2228 BreakPoint at:004E2FAA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12391 VA:002D1FB2 Base:2162688 Address: 004E2FB2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2232 BreakPoint at:004E2FB2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12392 VA:002D1FB8 Base:2162688 Address: 004E2FB8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2233 BreakPoint at:004E2FB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12393 VA:002D1FBE Base:2162688 Address: 004E2FBE +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2235 BreakPoint at:004E2FBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12394 VA:002D1FCA Base:2162688 Address: 004E2FCA +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2236 BreakPoint at:004E2FCA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12395 VA:002D1FDB Base:2162688 Address: 004E2FDB +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2237 BreakPoint at:004E2FDB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12396 VA:002D1FE7 Base:2162688 Address: 004E2FE7 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2238 BreakPoint at:004E2FE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12397 VA:002D1FF8 Base:2162688 Address: 004E2FF8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2239 BreakPoint at:004E2FF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12398 VA:002D2012 Base:2162688 Address: 004E3012 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2240 BreakPoint at:004E3012 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12399 VA:002D2029 Base:2162688 Address: 004E3029 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2241 BreakPoint at:004E3029 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12400 VA:002D203A Base:2162688 Address: 004E303A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2242 BreakPoint at:004E303A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12401 VA:002D2040 Base:2162688 Address: 004E3040 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2243 BreakPoint at:004E3040 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12402 VA:002D205A Base:2162688 Address: 004E305A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2244 BreakPoint at:004E305A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12403 VA:002D2060 Base:2162688 Address: 004E3060 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2246 BreakPoint at:004E3060 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12404 VA:002D2066 Base:2162688 Address: 004E3066 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2247 BreakPoint at:004E3066 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12405 VA:002D206E Base:2162688 Address: 004E306E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2251 BreakPoint at:004E306E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12406 VA:002D2074 Base:2162688 Address: 004E3074 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2252 BreakPoint at:004E3074 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12407 VA:002D207A Base:2162688 Address: 004E307A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2254 BreakPoint at:004E307A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12408 VA:002D2083 Base:2162688 Address: 004E3083 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2255 BreakPoint at:004E3083 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12409 VA:002D2086 Base:2162688 Address: 004E3086 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2175 BreakPoint at:004E3086 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12410 VA:002D2090 Base:2162688 Address: 004E3090 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2256 BreakPoint at:004E3090 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12411 VA:002D2095 Base:2162688 Address: 004E3095 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2258 BreakPoint at:004E3095 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12412 VA:002D20AD Base:2162688 Address: 004E30AD +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2259 BreakPoint at:004E30AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12413 VA:002D20BF Base:2162688 Address: 004E30BF +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2260 BreakPoint at:004E30BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12414 VA:002D20F1 Base:2162688 Address: 004E30F1 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2261 BreakPoint at:004E30F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12415 VA:002D2102 Base:2162688 Address: 004E3102 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2262 BreakPoint at:004E3102 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12416 VA:002D211A Base:2162688 Address: 004E311A +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2263 BreakPoint at:004E311A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12417 VA:002D212C Base:2162688 Address: 004E312C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2264 BreakPoint at:004E312C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12418 VA:002D215E Base:2162688 Address: 004E315E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2265 BreakPoint at:004E315E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12419 VA:002D216F Base:2162688 Address: 004E316F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2266 BreakPoint at:004E316F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12420 VA:002D2175 Base:2162688 Address: 004E3175 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2267 BreakPoint at:004E3175 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12421 VA:002D218D Base:2162688 Address: 004E318D +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2268 BreakPoint at:004E318D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12422 VA:002D219F Base:2162688 Address: 004E319F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2269 BreakPoint at:004E319F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12423 VA:002D21D1 Base:2162688 Address: 004E31D1 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2270 BreakPoint at:004E31D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12424 VA:002D21E2 Base:2162688 Address: 004E31E2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2271 BreakPoint at:004E31E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12425 VA:002D21E8 Base:2162688 Address: 004E31E8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2272 BreakPoint at:004E31E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12426 VA:002D2200 Base:2162688 Address: 004E3200 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2273 BreakPoint at:004E3200 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12427 VA:002D2212 Base:2162688 Address: 004E3212 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2274 BreakPoint at:004E3212 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12428 VA:002D2244 Base:2162688 Address: 004E3244 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2275 BreakPoint at:004E3244 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12429 VA:002D2255 Base:2162688 Address: 004E3255 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2276 BreakPoint at:004E3255 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12430 VA:002D2258 Base:2162688 Address: 004E3258 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2256 BreakPoint at:004E3258 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12431 VA:002D2262 Base:2162688 Address: 004E3262 +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2277 BreakPoint at:004E3262 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12432 VA:002D226F Base:2162688 Address: 004E326F +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2278 BreakPoint at:004E326F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12433 VA:002D227E Base:2162688 Address: 004E327E +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2279 BreakPoint at:004E327E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12434 VA:002D228D Base:2162688 Address: 004E328D +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2280 BreakPoint at:004E328D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12435 VA:002D229C Base:2162688 Address: 004E329C +Adding breakpoint for DECCiphers.TCipher_Mars.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2281 BreakPoint at:004E329C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12436 VA:002D2350 Base:2162688 Address: 004E3350 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2287 BreakPoint at:004E3350 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12437 VA:002D235F Base:2162688 Address: 004E335F +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2288 BreakPoint at:004E335F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12438 VA:002D2386 Base:2162688 Address: 004E3386 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2290 BreakPoint at:004E3386 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12439 VA:002D2392 Base:2162688 Address: 004E3392 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2291 BreakPoint at:004E3392 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12440 VA:002D23A0 Base:2162688 Address: 004E33A0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2292 BreakPoint at:004E33A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12441 VA:002D23AF Base:2162688 Address: 004E33AF +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2293 BreakPoint at:004E33AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12442 VA:002D23BE Base:2162688 Address: 004E33BE +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2294 BreakPoint at:004E33BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12443 VA:002D23CD Base:2162688 Address: 004E33CD +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2295 BreakPoint at:004E33CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12444 VA:002D23D2 Base:2162688 Address: 004E33D2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2297 BreakPoint at:004E33D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12445 VA:002D23E3 Base:2162688 Address: 004E33E3 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2298 BreakPoint at:004E33E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12446 VA:002D2416 Base:2162688 Address: 004E3416 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2299 BreakPoint at:004E3416 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12447 VA:002D2428 Base:2162688 Address: 004E3428 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2300 BreakPoint at:004E3428 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12448 VA:002D2440 Base:2162688 Address: 004E3440 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2301 BreakPoint at:004E3440 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12449 VA:002D2446 Base:2162688 Address: 004E3446 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2302 BreakPoint at:004E3446 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12450 VA:002D2457 Base:2162688 Address: 004E3457 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2303 BreakPoint at:004E3457 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12451 VA:002D248A Base:2162688 Address: 004E348A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2304 BreakPoint at:004E348A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12452 VA:002D249C Base:2162688 Address: 004E349C +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2305 BreakPoint at:004E349C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12453 VA:002D24B4 Base:2162688 Address: 004E34B4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2306 BreakPoint at:004E34B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12454 VA:002D24BA Base:2162688 Address: 004E34BA +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2307 BreakPoint at:004E34BA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12455 VA:002D24CB Base:2162688 Address: 004E34CB +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2308 BreakPoint at:004E34CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12456 VA:002D24FE Base:2162688 Address: 004E34FE +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2309 BreakPoint at:004E34FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12457 VA:002D2510 Base:2162688 Address: 004E3510 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2310 BreakPoint at:004E3510 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12458 VA:002D2528 Base:2162688 Address: 004E3528 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2311 BreakPoint at:004E3528 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12459 VA:002D2539 Base:2162688 Address: 004E3539 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2312 BreakPoint at:004E3539 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12460 VA:002D256C Base:2162688 Address: 004E356C +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2313 BreakPoint at:004E356C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12461 VA:002D257E Base:2162688 Address: 004E357E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2314 BreakPoint at:004E357E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12462 VA:002D2596 Base:2162688 Address: 004E3596 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2315 BreakPoint at:004E3596 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12463 VA:002D2599 Base:2162688 Address: 004E3599 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2295 BreakPoint at:004E3599 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12464 VA:002D25A3 Base:2162688 Address: 004E35A3 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2316 BreakPoint at:004E35A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12465 VA:002D25A8 Base:2162688 Address: 004E35A8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2318 BreakPoint at:004E35A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12466 VA:002D25B4 Base:2162688 Address: 004E35B4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2319 BreakPoint at:004E35B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12467 VA:002D25C5 Base:2162688 Address: 004E35C5 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2320 BreakPoint at:004E35C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12468 VA:002D25D6 Base:2162688 Address: 004E35D6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2321 BreakPoint at:004E35D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12469 VA:002D25E2 Base:2162688 Address: 004E35E2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2322 BreakPoint at:004E35E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12470 VA:002D25FC Base:2162688 Address: 004E35FC +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2323 BreakPoint at:004E35FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12471 VA:002D2613 Base:2162688 Address: 004E3613 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2324 BreakPoint at:004E3613 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12472 VA:002D2624 Base:2162688 Address: 004E3624 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2325 BreakPoint at:004E3624 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12473 VA:002D262A Base:2162688 Address: 004E362A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2326 BreakPoint at:004E362A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12474 VA:002D2644 Base:2162688 Address: 004E3644 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2327 BreakPoint at:004E3644 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12475 VA:002D264A Base:2162688 Address: 004E364A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2329 BreakPoint at:004E364A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12476 VA:002D2650 Base:2162688 Address: 004E3650 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2330 BreakPoint at:004E3650 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12477 VA:002D2658 Base:2162688 Address: 004E3658 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2334 BreakPoint at:004E3658 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12478 VA:002D265E Base:2162688 Address: 004E365E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2335 BreakPoint at:004E365E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12479 VA:002D2664 Base:2162688 Address: 004E3664 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2337 BreakPoint at:004E3664 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12480 VA:002D2670 Base:2162688 Address: 004E3670 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2338 BreakPoint at:004E3670 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12481 VA:002D2681 Base:2162688 Address: 004E3681 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2339 BreakPoint at:004E3681 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12482 VA:002D2692 Base:2162688 Address: 004E3692 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2340 BreakPoint at:004E3692 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12483 VA:002D269E Base:2162688 Address: 004E369E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2341 BreakPoint at:004E369E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12484 VA:002D26B8 Base:2162688 Address: 004E36B8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2342 BreakPoint at:004E36B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12485 VA:002D26CF Base:2162688 Address: 004E36CF +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2343 BreakPoint at:004E36CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12486 VA:002D26E0 Base:2162688 Address: 004E36E0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2344 BreakPoint at:004E36E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12487 VA:002D26E6 Base:2162688 Address: 004E36E6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2345 BreakPoint at:004E36E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12488 VA:002D2700 Base:2162688 Address: 004E3700 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2346 BreakPoint at:004E3700 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12489 VA:002D2706 Base:2162688 Address: 004E3706 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2348 BreakPoint at:004E3706 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12490 VA:002D270C Base:2162688 Address: 004E370C +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2349 BreakPoint at:004E370C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12491 VA:002D2714 Base:2162688 Address: 004E3714 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2353 BreakPoint at:004E3714 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12492 VA:002D271A Base:2162688 Address: 004E371A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2354 BreakPoint at:004E371A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12493 VA:002D2720 Base:2162688 Address: 004E3720 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2356 BreakPoint at:004E3720 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12494 VA:002D272C Base:2162688 Address: 004E372C +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2357 BreakPoint at:004E372C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12495 VA:002D273D Base:2162688 Address: 004E373D +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2358 BreakPoint at:004E373D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12496 VA:002D274E Base:2162688 Address: 004E374E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2359 BreakPoint at:004E374E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12497 VA:002D275A Base:2162688 Address: 004E375A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2360 BreakPoint at:004E375A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12498 VA:002D2774 Base:2162688 Address: 004E3774 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2361 BreakPoint at:004E3774 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12499 VA:002D278B Base:2162688 Address: 004E378B +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2362 BreakPoint at:004E378B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12500 VA:002D279C Base:2162688 Address: 004E379C +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2363 BreakPoint at:004E379C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12501 VA:002D27A2 Base:2162688 Address: 004E37A2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2364 BreakPoint at:004E37A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12502 VA:002D27BC Base:2162688 Address: 004E37BC +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2365 BreakPoint at:004E37BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12503 VA:002D27C2 Base:2162688 Address: 004E37C2 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2367 BreakPoint at:004E37C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12504 VA:002D27C8 Base:2162688 Address: 004E37C8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2368 BreakPoint at:004E37C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12505 VA:002D27D0 Base:2162688 Address: 004E37D0 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2372 BreakPoint at:004E37D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12506 VA:002D27D6 Base:2162688 Address: 004E37D6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2373 BreakPoint at:004E37D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12507 VA:002D27DC Base:2162688 Address: 004E37DC +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2375 BreakPoint at:004E37DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12508 VA:002D27E8 Base:2162688 Address: 004E37E8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2376 BreakPoint at:004E37E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12509 VA:002D27F9 Base:2162688 Address: 004E37F9 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2377 BreakPoint at:004E37F9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12510 VA:002D280A Base:2162688 Address: 004E380A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2378 BreakPoint at:004E380A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12511 VA:002D2815 Base:2162688 Address: 004E3815 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2379 BreakPoint at:004E3815 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12512 VA:002D282F Base:2162688 Address: 004E382F +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2380 BreakPoint at:004E382F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12513 VA:002D2846 Base:2162688 Address: 004E3846 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2381 BreakPoint at:004E3846 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12514 VA:002D2857 Base:2162688 Address: 004E3857 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2382 BreakPoint at:004E3857 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12515 VA:002D285D Base:2162688 Address: 004E385D +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2383 BreakPoint at:004E385D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12516 VA:002D2877 Base:2162688 Address: 004E3877 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2384 BreakPoint at:004E3877 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12517 VA:002D287D Base:2162688 Address: 004E387D +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2386 BreakPoint at:004E387D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12518 VA:002D2883 Base:2162688 Address: 004E3883 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2387 BreakPoint at:004E3883 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12519 VA:002D288B Base:2162688 Address: 004E388B +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2391 BreakPoint at:004E388B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12520 VA:002D2891 Base:2162688 Address: 004E3891 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2392 BreakPoint at:004E3891 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12521 VA:002D2897 Base:2162688 Address: 004E3897 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2394 BreakPoint at:004E3897 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12522 VA:002D289B Base:2162688 Address: 004E389B +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2395 BreakPoint at:004E389B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12523 VA:002D289E Base:2162688 Address: 004E389E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2316 BreakPoint at:004E389E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12524 VA:002D28A8 Base:2162688 Address: 004E38A8 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2396 BreakPoint at:004E38A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12525 VA:002D28AD Base:2162688 Address: 004E38AD +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2398 BreakPoint at:004E38AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12526 VA:002D28BE Base:2162688 Address: 004E38BE +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2399 BreakPoint at:004E38BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12527 VA:002D28D4 Base:2162688 Address: 004E38D4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2400 BreakPoint at:004E38D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12528 VA:002D28EB Base:2162688 Address: 004E38EB +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2401 BreakPoint at:004E38EB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12529 VA:002D291A Base:2162688 Address: 004E391A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2402 BreakPoint at:004E391A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12530 VA:002D292B Base:2162688 Address: 004E392B +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2403 BreakPoint at:004E392B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12531 VA:002D2941 Base:2162688 Address: 004E3941 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2404 BreakPoint at:004E3941 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12532 VA:002D2958 Base:2162688 Address: 004E3958 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2405 BreakPoint at:004E3958 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12533 VA:002D2987 Base:2162688 Address: 004E3987 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2406 BreakPoint at:004E3987 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12534 VA:002D298D Base:2162688 Address: 004E398D +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2407 BreakPoint at:004E398D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12535 VA:002D299E Base:2162688 Address: 004E399E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2408 BreakPoint at:004E399E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12536 VA:002D29B4 Base:2162688 Address: 004E39B4 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2409 BreakPoint at:004E39B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12537 VA:002D29CB Base:2162688 Address: 004E39CB +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2410 BreakPoint at:004E39CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12538 VA:002D29FA Base:2162688 Address: 004E39FA +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2411 BreakPoint at:004E39FA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12539 VA:002D2A00 Base:2162688 Address: 004E3A00 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2412 BreakPoint at:004E3A00 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12540 VA:002D2A11 Base:2162688 Address: 004E3A11 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2413 BreakPoint at:004E3A11 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12541 VA:002D2A27 Base:2162688 Address: 004E3A27 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2414 BreakPoint at:004E3A27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12542 VA:002D2A3E Base:2162688 Address: 004E3A3E +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2415 BreakPoint at:004E3A3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12543 VA:002D2A6D Base:2162688 Address: 004E3A6D +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2416 BreakPoint at:004E3A6D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12544 VA:002D2A70 Base:2162688 Address: 004E3A70 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2396 BreakPoint at:004E3A70 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12545 VA:002D2A7A Base:2162688 Address: 004E3A7A +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2417 BreakPoint at:004E3A7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12546 VA:002D2A88 Base:2162688 Address: 004E3A88 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2418 BreakPoint at:004E3A88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12547 VA:002D2A97 Base:2162688 Address: 004E3A97 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2419 BreakPoint at:004E3A97 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12548 VA:002D2AA6 Base:2162688 Address: 004E3AA6 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2420 BreakPoint at:004E3AA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12549 VA:002D2AB5 Base:2162688 Address: 004E3AB5 +Adding breakpoint for DECCiphers.TCipher_Mars.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2421 BreakPoint at:004E3AB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12550 VA:002D2B68 Base:2162688 Address: 004E3B68 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_RC4 +TBreakPoint.Activate: +Activate DECCiphers.pas line 2426 BreakPoint at:004E3B68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12551 VA:002D2B74 Base:2162688 Address: 004E3B74 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2427 BreakPoint at:004E3B74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12552 VA:002D2B7D Base:2162688 Address: 004E3B7D +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2428 BreakPoint at:004E3B7D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12553 VA:002D2B87 Base:2162688 Address: 004E3B87 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2429 BreakPoint at:004E3B87 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12554 VA:002D2B91 Base:2162688 Address: 004E3B91 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2430 BreakPoint at:004E3B91 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12555 VA:002D2B9B Base:2162688 Address: 004E3B9B +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2431 BreakPoint at:004E3B9B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12556 VA:002D2BA2 Base:2162688 Address: 004E3BA2 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2432 BreakPoint at:004E3BA2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12557 VA:002D2BAB Base:2162688 Address: 004E3BAB +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2433 BreakPoint at:004E3BAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12558 VA:002D2BB4 Base:2162688 Address: 004E3BB4 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2434 BreakPoint at:004E3BB4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12559 VA:002D2BC0 Base:2162688 Address: 004E3BC0 +Adding breakpoint for DECCiphers.TCipher_RC4.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2435 BreakPoint at:004E3BC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12560 VA:002D2BC8 Base:2162688 Address: 004E3BC8 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2442 BreakPoint at:004E3BC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12561 VA:002D2BDA Base:2162688 Address: 004E3BDA +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2443 BreakPoint at:004E3BDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12562 VA:002D2BE3 Base:2162688 Address: 004E3BE3 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2444 BreakPoint at:004E3BE3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12563 VA:002D2BE7 Base:2162688 Address: 004E3BE7 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2446 BreakPoint at:004E3BE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12564 VA:002D2BF5 Base:2162688 Address: 004E3BF5 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2447 BreakPoint at:004E3BF5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12565 VA:002D2BFB Base:2162688 Address: 004E3BFB +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2448 BreakPoint at:004E3BFB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12566 VA:002D2C16 Base:2162688 Address: 004E3C16 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2449 BreakPoint at:004E3C16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12567 VA:002D2C19 Base:2162688 Address: 004E3C19 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2444 BreakPoint at:004E3C19 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12568 VA:002D2C1F Base:2162688 Address: 004E3C1F +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2450 BreakPoint at:004E3C1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12569 VA:002D2C23 Base:2162688 Address: 004E3C23 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2451 BreakPoint at:004E3C23 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12570 VA:002D2C27 Base:2162688 Address: 004E3C27 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2453 BreakPoint at:004E3C27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12571 VA:002D2C44 Base:2162688 Address: 004E3C44 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2454 BreakPoint at:004E3C44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12572 VA:002D2C52 Base:2162688 Address: 004E3C52 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2455 BreakPoint at:004E3C52 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12573 VA:002D2C68 Base:2162688 Address: 004E3C68 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2456 BreakPoint at:004E3C68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12574 VA:002D2C76 Base:2162688 Address: 004E3C76 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2457 BreakPoint at:004E3C76 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12575 VA:002D2C79 Base:2162688 Address: 004E3C79 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2451 BreakPoint at:004E3C79 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12576 VA:002D2C7F Base:2162688 Address: 004E3C7F +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2458 BreakPoint at:004E3C7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12577 VA:002D2C89 Base:2162688 Address: 004E3C89 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2459 BreakPoint at:004E3C89 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12578 VA:002D2C93 Base:2162688 Address: 004E3C93 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2460 BreakPoint at:004E3C93 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12579 VA:002D2CA3 Base:2162688 Address: 004E3CA3 +Adding breakpoint for DECCiphers.TCipher_RC4.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2463 BreakPoint at:004E3CA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12580 VA:002D2CA8 Base:2162688 Address: 004E3CA8 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2470 BreakPoint at:004E3CA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12581 VA:002D2CB7 Base:2162688 Address: 004E3CB7 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2471 BreakPoint at:004E3CB7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12582 VA:002D2CC0 Base:2162688 Address: 004E3CC0 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2472 BreakPoint at:004E3CC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12583 VA:002D2CCC Base:2162688 Address: 004E3CCC +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2473 BreakPoint at:004E3CCC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12584 VA:002D2CD8 Base:2162688 Address: 004E3CD8 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2474 BreakPoint at:004E3CD8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12585 VA:002D2CEB Base:2162688 Address: 004E3CEB +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2476 BreakPoint at:004E3CEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12586 VA:002D2CEE Base:2162688 Address: 004E3CEE +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2477 BreakPoint at:004E3CEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12587 VA:002D2CFC Base:2162688 Address: 004E3CFC +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2478 BreakPoint at:004E3CFC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12588 VA:002D2D02 Base:2162688 Address: 004E3D02 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2479 BreakPoint at:004E3D02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12589 VA:002D2D18 Base:2162688 Address: 004E3D18 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2480 BreakPoint at:004E3D18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12590 VA:002D2D26 Base:2162688 Address: 004E3D26 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2481 BreakPoint at:004E3D26 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12591 VA:002D2D51 Base:2162688 Address: 004E3D51 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2482 BreakPoint at:004E3D51 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12592 VA:002D2D54 Base:2162688 Address: 004E3D54 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2474 BreakPoint at:004E3D54 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12593 VA:002D2D59 Base:2162688 Address: 004E3D59 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2483 BreakPoint at:004E3D59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12594 VA:002D2D65 Base:2162688 Address: 004E3D65 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2484 BreakPoint at:004E3D65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12595 VA:002D2D71 Base:2162688 Address: 004E3D71 +Adding breakpoint for DECCiphers.TCipher_RC4.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2485 BreakPoint at:004E3D71 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12596 VA:002D2D78 Base:2162688 Address: 004E3D78 +Adding breakpoint for DECCiphers.TCipher_RC4.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2488 BreakPoint at:004E3D78 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12597 VA:002D2D88 Base:2162688 Address: 004E3D88 +Adding breakpoint for DECCiphers.TCipher_RC4.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2489 BreakPoint at:004E3D88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12598 VA:002D2D9A Base:2162688 Address: 004E3D9A +Adding breakpoint for DECCiphers.TCipher_RC4.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2490 BreakPoint at:004E3D9A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12599 VA:002D2DA4 Base:2162688 Address: 004E3DA4 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_RC6 +TBreakPoint.Activate: +Activate DECCiphers.pas line 2495 BreakPoint at:004E3DA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12600 VA:002D2DB0 Base:2162688 Address: 004E3DB0 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2496 BreakPoint at:004E3DB0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12601 VA:002D2DB9 Base:2162688 Address: 004E3DB9 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2497 BreakPoint at:004E3DB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12602 VA:002D2DC3 Base:2162688 Address: 004E3DC3 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2498 BreakPoint at:004E3DC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12603 VA:002D2DCD Base:2162688 Address: 004E3DCD +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2499 BreakPoint at:004E3DCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12604 VA:002D2DD7 Base:2162688 Address: 004E3DD7 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2500 BreakPoint at:004E3DD7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12605 VA:002D2DDE Base:2162688 Address: 004E3DDE +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2501 BreakPoint at:004E3DDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12606 VA:002D2DE7 Base:2162688 Address: 004E3DE7 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2502 BreakPoint at:004E3DE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12607 VA:002D2DF0 Base:2162688 Address: 004E3DF0 +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2503 BreakPoint at:004E3DF0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12608 VA:002D2DFC Base:2162688 Address: 004E3DFC +Adding breakpoint for DECCiphers.TCipher_RC6.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2504 BreakPoint at:004E3DFC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12609 VA:002D2E04 Base:2162688 Address: 004E3E04 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2507 BreakPoint at:004E3E04 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12610 VA:002D2E10 Base:2162688 Address: 004E3E10 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2508 BreakPoint at:004E3E10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12611 VA:002D2E24 Base:2162688 Address: 004E3E24 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2509 BreakPoint at:004E3E24 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12612 VA:002D2E38 Base:2162688 Address: 004E3E38 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2511 BreakPoint at:004E3E38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12613 VA:002D2E4C Base:2162688 Address: 004E3E4C +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2512 BreakPoint at:004E3E4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12614 VA:002D2E5E Base:2162688 Address: 004E3E5E +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2513 BreakPoint at:004E3E5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12615 VA:002D2E69 Base:2162688 Address: 004E3E69 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2515 BreakPoint at:004E3E69 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12616 VA:002D2E77 Base:2162688 Address: 004E3E77 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2516 BreakPoint at:004E3E77 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12617 VA:002D2E7F Base:2162688 Address: 004E3E7F +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2517 BreakPoint at:004E3E7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12618 VA:002D2E88 Base:2162688 Address: 004E3E88 +Adding breakpoint for DECCiphers.TCipher_RC6.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2519 BreakPoint at:004E3E88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12619 VA:002D2E8C Base:2162688 Address: 004E3E8C +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2526 BreakPoint at:004E3E8C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12620 VA:002D2E9E Base:2162688 Address: 004E3E9E +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2527 BreakPoint at:004E3E9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12621 VA:002D2EA6 Base:2162688 Address: 004E3EA6 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2529 BreakPoint at:004E3EA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12622 VA:002D2EAF Base:2162688 Address: 004E3EAF +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2530 BreakPoint at:004E3EAF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12623 VA:002D2EC1 Base:2162688 Address: 004E3EC1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2531 BreakPoint at:004E3EC1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12624 VA:002D2ED2 Base:2162688 Address: 004E3ED2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2532 BreakPoint at:004E3ED2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12625 VA:002D2EDB Base:2162688 Address: 004E3EDB +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2533 BreakPoint at:004E3EDB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12626 VA:002D2EE1 Base:2162688 Address: 004E3EE1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2534 BreakPoint at:004E3EE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12627 VA:002D2EE4 Base:2162688 Address: 004E3EE4 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2535 BreakPoint at:004E3EE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12628 VA:002D2EEA Base:2162688 Address: 004E3EEA +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2536 BreakPoint at:004E3EEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12629 VA:002D2EF1 Base:2162688 Address: 004E3EF1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2537 BreakPoint at:004E3EF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12630 VA:002D2EF8 Base:2162688 Address: 004E3EF8 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2538 BreakPoint at:004E3EF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12631 VA:002D2F12 Base:2162688 Address: 004E3F12 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2540 BreakPoint at:004E3F12 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12632 VA:002D2F1E Base:2162688 Address: 004E3F1E +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2541 BreakPoint at:004E3F1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12633 VA:002D2F25 Base:2162688 Address: 004E3F25 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2542 BreakPoint at:004E3F25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12634 VA:002D2F28 Base:2162688 Address: 004E3F28 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2538 BreakPoint at:004E3F28 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12635 VA:002D2F2D Base:2162688 Address: 004E3F2D +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2543 BreakPoint at:004E3F2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12636 VA:002D2F3D Base:2162688 Address: 004E3F3D +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2544 BreakPoint at:004E3F3D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12637 VA:002D2F48 Base:2162688 Address: 004E3F48 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2546 BreakPoint at:004E3F48 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12638 VA:002D2F59 Base:2162688 Address: 004E3F59 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2547 BreakPoint at:004E3F59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12639 VA:002D2F5E Base:2162688 Address: 004E3F5E +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2548 BreakPoint at:004E3F5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12640 VA:002D2F63 Base:2162688 Address: 004E3F63 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2549 BreakPoint at:004E3F63 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12641 VA:002D2F68 Base:2162688 Address: 004E3F68 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2550 BreakPoint at:004E3F68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12642 VA:002D2F6D Base:2162688 Address: 004E3F6D +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2551 BreakPoint at:004E3F6D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12643 VA:002D2F7C Base:2162688 Address: 004E3F7C +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2553 BreakPoint at:004E3F7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12644 VA:002D2F90 Base:2162688 Address: 004E3F90 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2554 BreakPoint at:004E3F90 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12645 VA:002D2FA1 Base:2162688 Address: 004E3FA1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2555 BreakPoint at:004E3FA1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12646 VA:002D2FAD Base:2162688 Address: 004E3FAD +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2556 BreakPoint at:004E3FAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12647 VA:002D2FB6 Base:2162688 Address: 004E3FB6 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2557 BreakPoint at:004E3FB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12648 VA:002D2FC6 Base:2162688 Address: 004E3FC6 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2558 BreakPoint at:004E3FC6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12649 VA:002D2FE0 Base:2162688 Address: 004E3FE0 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2559 BreakPoint at:004E3FE0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12650 VA:002D2FED Base:2162688 Address: 004E3FED +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2560 BreakPoint at:004E3FED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12651 VA:002D3005 Base:2162688 Address: 004E4005 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2561 BreakPoint at:004E4005 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12652 VA:002D3011 Base:2162688 Address: 004E4011 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2562 BreakPoint at:004E4011 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12653 VA:002D3014 Base:2162688 Address: 004E4014 +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2551 BreakPoint at:004E4014 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12654 VA:002D301E Base:2162688 Address: 004E401E +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2563 BreakPoint at:004E401E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12655 VA:002D302E Base:2162688 Address: 004E402E +Adding breakpoint for DECCiphers.TCipher_RC6.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2566 BreakPoint at:004E402E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12656 VA:002D3034 Base:2162688 Address: 004E4034 +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2569 BreakPoint at:004E4034 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12657 VA:002D303B Base:2162688 Address: 004E403B +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2570 BreakPoint at:004E403B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12658 VA:002D3044 Base:2162688 Address: 004E4044 +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2571 BreakPoint at:004E4044 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12659 VA:002D3051 Base:2162688 Address: 004E4051 +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2573 BreakPoint at:004E4051 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12660 VA:002D305A Base:2162688 Address: 004E405A +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2574 BreakPoint at:004E405A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12661 VA:002D3066 Base:2162688 Address: 004E4066 +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2576 BreakPoint at:004E4066 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12662 VA:002D306F Base:2162688 Address: 004E406F +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2577 BreakPoint at:004E406F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12663 VA:002D3079 Base:2162688 Address: 004E4079 +Adding breakpoint for DECCiphers.TCipher_RC6.LimitRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2578 BreakPoint at:004E4079 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12664 VA:002D307C Base:2162688 Address: 004E407C +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2635 BreakPoint at:004E407C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12665 VA:002D308B Base:2162688 Address: 004E408B +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2636 BreakPoint at:004E408B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12666 VA:002D30B2 Base:2162688 Address: 004E40B2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2638 BreakPoint at:004E40B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12667 VA:002D30BB Base:2162688 Address: 004E40BB +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2639 BreakPoint at:004E40BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12668 VA:002D30C3 Base:2162688 Address: 004E40C3 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2640 BreakPoint at:004E40C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12669 VA:002D30D1 Base:2162688 Address: 004E40D1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2641 BreakPoint at:004E40D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12670 VA:002D30DA Base:2162688 Address: 004E40DA +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2642 BreakPoint at:004E40DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12671 VA:002D30E9 Base:2162688 Address: 004E40E9 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2643 BreakPoint at:004E40E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12672 VA:002D3101 Base:2162688 Address: 004E4101 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2645 BreakPoint at:004E4101 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12673 VA:002D310A Base:2162688 Address: 004E410A +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2646 BreakPoint at:004E410A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12674 VA:002D3117 Base:2162688 Address: 004E4117 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2647 BreakPoint at:004E4117 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12675 VA:002D3128 Base:2162688 Address: 004E4128 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2648 BreakPoint at:004E4128 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12676 VA:002D3135 Base:2162688 Address: 004E4135 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2649 BreakPoint at:004E4135 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12677 VA:002D3146 Base:2162688 Address: 004E4146 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2650 BreakPoint at:004E4146 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12678 VA:002D314C Base:2162688 Address: 004E414C +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2651 BreakPoint at:004E414C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12679 VA:002D316B Base:2162688 Address: 004E416B +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2652 BreakPoint at:004E416B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12680 VA:002D3171 Base:2162688 Address: 004E4171 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2653 BreakPoint at:004E4171 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12681 VA:002D3191 Base:2162688 Address: 004E4191 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2654 BreakPoint at:004E4191 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12682 VA:002D31AF Base:2162688 Address: 004E41AF +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2655 BreakPoint at:004E41AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12683 VA:002D31B2 Base:2162688 Address: 004E41B2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2643 BreakPoint at:004E41B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12684 VA:002D31BB Base:2162688 Address: 004E41BB +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2656 BreakPoint at:004E41BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12685 VA:002D31C9 Base:2162688 Address: 004E41C9 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2657 BreakPoint at:004E41C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12686 VA:002D31D2 Base:2162688 Address: 004E41D2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2658 BreakPoint at:004E41D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12687 VA:002D31E1 Base:2162688 Address: 004E41E1 +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2659 BreakPoint at:004E41E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12688 VA:002D31EA Base:2162688 Address: 004E41EA +Adding breakpoint for DECCiphers.TCipher_RC6.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2660 BreakPoint at:004E41EA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12689 VA:002D329C Base:2162688 Address: 004E429C +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2718 BreakPoint at:004E429C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12690 VA:002D32AB Base:2162688 Address: 004E42AB +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2719 BreakPoint at:004E42AB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12691 VA:002D32D2 Base:2162688 Address: 004E42D2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2721 BreakPoint at:004E42D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12692 VA:002D32E6 Base:2162688 Address: 004E42E6 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2722 BreakPoint at:004E42E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12693 VA:002D32F4 Base:2162688 Address: 004E42F4 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2723 BreakPoint at:004E42F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12694 VA:002D32FD Base:2162688 Address: 004E42FD +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2724 BreakPoint at:004E42FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12695 VA:002D330C Base:2162688 Address: 004E430C +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2725 BreakPoint at:004E430C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12696 VA:002D3315 Base:2162688 Address: 004E4315 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2727 BreakPoint at:004E4315 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12697 VA:002D332D Base:2162688 Address: 004E432D +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2729 BreakPoint at:004E432D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12698 VA:002D334B Base:2162688 Address: 004E434B +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2730 BreakPoint at:004E434B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12699 VA:002D3358 Base:2162688 Address: 004E4358 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2731 BreakPoint at:004E4358 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12700 VA:002D3369 Base:2162688 Address: 004E4369 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2732 BreakPoint at:004E4369 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12701 VA:002D3376 Base:2162688 Address: 004E4376 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2733 BreakPoint at:004E4376 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12702 VA:002D3387 Base:2162688 Address: 004E4387 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2734 BreakPoint at:004E4387 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12703 VA:002D3390 Base:2162688 Address: 004E4390 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2735 BreakPoint at:004E4390 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12704 VA:002D33AD Base:2162688 Address: 004E43AD +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2736 BreakPoint at:004E43AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12705 VA:002D33B5 Base:2162688 Address: 004E43B5 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2737 BreakPoint at:004E43B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12706 VA:002D33D2 Base:2162688 Address: 004E43D2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2738 BreakPoint at:004E43D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12707 VA:002D33D6 Base:2162688 Address: 004E43D6 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2739 BreakPoint at:004E43D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12708 VA:002D33D9 Base:2162688 Address: 004E43D9 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2727 BreakPoint at:004E43D9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12709 VA:002D33E2 Base:2162688 Address: 004E43E2 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2741 BreakPoint at:004E43E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12710 VA:002D33EA Base:2162688 Address: 004E43EA +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2742 BreakPoint at:004E43EA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12711 VA:002D33F8 Base:2162688 Address: 004E43F8 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2743 BreakPoint at:004E43F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12712 VA:002D3401 Base:2162688 Address: 004E4401 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2744 BreakPoint at:004E4401 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12713 VA:002D3410 Base:2162688 Address: 004E4410 +Adding breakpoint for DECCiphers.TCipher_RC6.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2745 BreakPoint at:004E4410 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12714 VA:002D34C4 Base:2162688 Address: 004E44C4 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Rijndael +TBreakPoint.Activate: +Activate DECCiphers.pas line 2755 BreakPoint at:004E44C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12715 VA:002D34D0 Base:2162688 Address: 004E44D0 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2756 BreakPoint at:004E44D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12716 VA:002D34D9 Base:2162688 Address: 004E44D9 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2757 BreakPoint at:004E44D9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12717 VA:002D34E3 Base:2162688 Address: 004E44E3 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2758 BreakPoint at:004E44E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12718 VA:002D34ED Base:2162688 Address: 004E44ED +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2759 BreakPoint at:004E44ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12719 VA:002D34F7 Base:2162688 Address: 004E44F7 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2760 BreakPoint at:004E44F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12720 VA:002D34FE Base:2162688 Address: 004E44FE +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2761 BreakPoint at:004E44FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12721 VA:002D3507 Base:2162688 Address: 004E4507 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2762 BreakPoint at:004E4507 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12722 VA:002D3510 Base:2162688 Address: 004E4510 +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2763 BreakPoint at:004E4510 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12723 VA:002D351C Base:2162688 Address: 004E451C +Adding breakpoint for DECCiphers.TCipher_Rijndael.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2764 BreakPoint at:004E451C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12724 VA:002D3524 Base:2162688 Address: 004E4524 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2856 BreakPoint at:004E4524 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12725 VA:002D3533 Base:2162688 Address: 004E4533 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2857 BreakPoint at:004E4533 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12726 VA:002D3539 Base:2162688 Address: 004E4539 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2858 BreakPoint at:004E4539 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12727 VA:002D3545 Base:2162688 Address: 004E4545 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2860 BreakPoint at:004E4545 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12728 VA:002D354B Base:2162688 Address: 004E454B +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2861 BreakPoint at:004E454B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12729 VA:002D3557 Base:2162688 Address: 004E4557 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2863 BreakPoint at:004E4557 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12730 VA:002D3561 Base:2162688 Address: 004E4561 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2864 BreakPoint at:004E4561 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12731 VA:002D3573 Base:2162688 Address: 004E4573 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2865 BreakPoint at:004E4573 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12732 VA:002D3584 Base:2162688 Address: 004E4584 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2866 BreakPoint at:004E4584 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12733 VA:002D358F Base:2162688 Address: 004E458F +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2867 BreakPoint at:004E458F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12734 VA:002D3597 Base:2162688 Address: 004E4597 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2870 BreakPoint at:004E4597 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12735 VA:002D359C Base:2162688 Address: 004E459C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2877 BreakPoint at:004E459C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12736 VA:002D35A8 Base:2162688 Address: 004E45A8 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2878 BreakPoint at:004E45A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12737 VA:002D35B1 Base:2162688 Address: 004E45B1 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2879 BreakPoint at:004E45B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12738 VA:002D35BB Base:2162688 Address: 004E45BB +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2881 BreakPoint at:004E45BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12739 VA:002D35C0 Base:2162688 Address: 004E45C0 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2883 BreakPoint at:004E45C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12740 VA:002D35C9 Base:2162688 Address: 004E45C9 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2884 BreakPoint at:004E45C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12741 VA:002D363D Base:2162688 Address: 004E463D +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2888 BreakPoint at:004E463D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12742 VA:002D364F Base:2162688 Address: 004E464F +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2889 BreakPoint at:004E464F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12743 VA:002D3661 Base:2162688 Address: 004E4661 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2890 BreakPoint at:004E4661 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12744 VA:002D3673 Base:2162688 Address: 004E4673 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2891 BreakPoint at:004E4673 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12745 VA:002D367C Base:2162688 Address: 004E467C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2892 BreakPoint at:004E467C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12746 VA:002D367F Base:2162688 Address: 004E467F +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2881 BreakPoint at:004E467F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12747 VA:002D368E Base:2162688 Address: 004E468E +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2895 BreakPoint at:004E468E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12748 VA:002D3698 Base:2162688 Address: 004E4698 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2897 BreakPoint at:004E4698 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12749 VA:002D369D Base:2162688 Address: 004E469D +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2899 BreakPoint at:004E469D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12750 VA:002D36A6 Base:2162688 Address: 004E46A6 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2900 BreakPoint at:004E46A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12751 VA:002D371A Base:2162688 Address: 004E471A +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2904 BreakPoint at:004E471A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12752 VA:002D372C Base:2162688 Address: 004E472C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2905 BreakPoint at:004E472C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12753 VA:002D373E Base:2162688 Address: 004E473E +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2906 BreakPoint at:004E473E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12754 VA:002D3750 Base:2162688 Address: 004E4750 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2907 BreakPoint at:004E4750 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12755 VA:002D375A Base:2162688 Address: 004E475A +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2909 BreakPoint at:004E475A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12756 VA:002D376C Base:2162688 Address: 004E476C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2910 BreakPoint at:004E476C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12757 VA:002D377E Base:2162688 Address: 004E477E +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2911 BreakPoint at:004E477E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12758 VA:002D3787 Base:2162688 Address: 004E4787 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2912 BreakPoint at:004E4787 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12759 VA:002D378A Base:2162688 Address: 004E478A +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2897 BreakPoint at:004E478A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12760 VA:002D3799 Base:2162688 Address: 004E4799 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2916 BreakPoint at:004E4799 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12761 VA:002D379E Base:2162688 Address: 004E479E +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2918 BreakPoint at:004E479E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12762 VA:002D37A7 Base:2162688 Address: 004E47A7 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2919 BreakPoint at:004E47A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12763 VA:002D381B Base:2162688 Address: 004E481B +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2923 BreakPoint at:004E481B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12764 VA:002D382D Base:2162688 Address: 004E482D +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2924 BreakPoint at:004E482D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12765 VA:002D383F Base:2162688 Address: 004E483F +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2925 BreakPoint at:004E483F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12766 VA:002D3851 Base:2162688 Address: 004E4851 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2926 BreakPoint at:004E4851 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12767 VA:002D385B Base:2162688 Address: 004E485B +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2928 BreakPoint at:004E485B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12768 VA:002D3864 Base:2162688 Address: 004E4864 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2929 BreakPoint at:004E4864 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12769 VA:002D38CD Base:2162688 Address: 004E48CD +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2933 BreakPoint at:004E48CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12770 VA:002D38DF Base:2162688 Address: 004E48DF +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2934 BreakPoint at:004E48DF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12771 VA:002D38F1 Base:2162688 Address: 004E48F1 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2935 BreakPoint at:004E48F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12772 VA:002D3903 Base:2162688 Address: 004E4903 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2936 BreakPoint at:004E4903 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12773 VA:002D390C Base:2162688 Address: 004E490C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2937 BreakPoint at:004E490C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12774 VA:002D390F Base:2162688 Address: 004E490F +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2916 BreakPoint at:004E490F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12775 VA:002D3919 Base:2162688 Address: 004E4919 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildEncodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2939 BreakPoint at:004E4919 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12776 VA:002D3920 Base:2162688 Address: 004E4920 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2945 BreakPoint at:004E4920 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12777 VA:002D3929 Base:2162688 Address: 004E4929 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2946 BreakPoint at:004E4929 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12778 VA:002D393C Base:2162688 Address: 004E493C +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2947 BreakPoint at:004E493C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12779 VA:002D3952 Base:2162688 Address: 004E4952 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2948 BreakPoint at:004E4952 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12780 VA:002D3956 Base:2162688 Address: 004E4956 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2949 BreakPoint at:004E4956 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12781 VA:002D3975 Base:2162688 Address: 004E4975 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2951 BreakPoint at:004E4975 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12782 VA:002D3A04 Base:2162688 Address: 004E4A04 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2955 BreakPoint at:004E4A04 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12783 VA:002D3A08 Base:2162688 Address: 004E4A08 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2956 BreakPoint at:004E4A08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12784 VA:002D3A0B Base:2162688 Address: 004E4A0B +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2949 BreakPoint at:004E4A0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12785 VA:002D3A14 Base:2162688 Address: 004E4A14 +Adding breakpoint for DECCiphers.TCipher_Rijndael.BuildDecodeKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2957 BreakPoint at:004E4A14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12786 VA:002D3A18 Base:2162688 Address: 004E4A18 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2965 BreakPoint at:004E4A18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12787 VA:002D3A27 Base:2162688 Address: 004E4A27 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2966 BreakPoint at:004E4A27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12788 VA:002D3A4E Base:2162688 Address: 004E4A4E +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2968 BreakPoint at:004E4A4E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12789 VA:002D3A57 Base:2162688 Address: 004E4A57 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2969 BreakPoint at:004E4A57 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12790 VA:002D3A5F Base:2162688 Address: 004E4A5F +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2970 BreakPoint at:004E4A5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12791 VA:002D3A68 Base:2162688 Address: 004E4A68 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2971 BreakPoint at:004E4A68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12792 VA:002D3A71 Base:2162688 Address: 004E4A71 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2972 BreakPoint at:004E4A71 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12793 VA:002D3A7A Base:2162688 Address: 004E4A7A +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2974 BreakPoint at:004E4A7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12794 VA:002D3A94 Base:2162688 Address: 004E4A94 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2976 BreakPoint at:004E4A94 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12795 VA:002D3A9F Base:2162688 Address: 004E4A9F +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2977 BreakPoint at:004E4A9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12796 VA:002D3AAB Base:2162688 Address: 004E4AAB +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2978 BreakPoint at:004E4AAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12797 VA:002D3AB7 Base:2162688 Address: 004E4AB7 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2979 BreakPoint at:004E4AB7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12798 VA:002D3AC3 Base:2162688 Address: 004E4AC3 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2981 BreakPoint at:004E4AC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12799 VA:002D3B1C Base:2162688 Address: 004E4B1C +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2985 BreakPoint at:004E4B1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12800 VA:002D3B75 Base:2162688 Address: 004E4B75 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2989 BreakPoint at:004E4B75 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12801 VA:002D3BCE Base:2162688 Address: 004E4BCE +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2993 BreakPoint at:004E4BCE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12802 VA:002D3C27 Base:2162688 Address: 004E4C27 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2998 BreakPoint at:004E4C27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12803 VA:002D3C30 Base:2162688 Address: 004E4C30 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2999 BreakPoint at:004E4C30 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12804 VA:002D3C33 Base:2162688 Address: 004E4C33 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 2974 BreakPoint at:004E4C33 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12805 VA:002D3C3C Base:2162688 Address: 004E4C3C +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3001 BreakPoint at:004E4C3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12806 VA:002D3C47 Base:2162688 Address: 004E4C47 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3002 BreakPoint at:004E4C47 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12807 VA:002D3C53 Base:2162688 Address: 004E4C53 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3003 BreakPoint at:004E4C53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12808 VA:002D3C5F Base:2162688 Address: 004E4C5F +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3004 BreakPoint at:004E4C5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12809 VA:002D3C6B Base:2162688 Address: 004E4C6B +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3006 BreakPoint at:004E4C6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12810 VA:002D3CD3 Base:2162688 Address: 004E4CD3 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3010 BreakPoint at:004E4CD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12811 VA:002D3D3C Base:2162688 Address: 004E4D3C +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3014 BreakPoint at:004E4D3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12812 VA:002D3DA5 Base:2162688 Address: 004E4DA5 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3018 BreakPoint at:004E4DA5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12813 VA:002D3E0E Base:2162688 Address: 004E4E0E +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3022 BreakPoint at:004E4E0E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12814 VA:002D3EC0 Base:2162688 Address: 004E4EC0 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3030 BreakPoint at:004E4EC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12815 VA:002D3ECF Base:2162688 Address: 004E4ECF +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3031 BreakPoint at:004E4ECF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12816 VA:002D3EF6 Base:2162688 Address: 004E4EF6 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3033 BreakPoint at:004E4EF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12817 VA:002D3F14 Base:2162688 Address: 004E4F14 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3034 BreakPoint at:004E4F14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12818 VA:002D3F1C Base:2162688 Address: 004E4F1C +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3035 BreakPoint at:004E4F1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12819 VA:002D3F25 Base:2162688 Address: 004E4F25 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3036 BreakPoint at:004E4F25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12820 VA:002D3F2E Base:2162688 Address: 004E4F2E +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3037 BreakPoint at:004E4F2E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12821 VA:002D3F37 Base:2162688 Address: 004E4F37 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3039 BreakPoint at:004E4F37 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12822 VA:002D3F51 Base:2162688 Address: 004E4F51 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3041 BreakPoint at:004E4F51 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12823 VA:002D3F5C Base:2162688 Address: 004E4F5C +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3042 BreakPoint at:004E4F5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12824 VA:002D3F68 Base:2162688 Address: 004E4F68 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3043 BreakPoint at:004E4F68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12825 VA:002D3F74 Base:2162688 Address: 004E4F74 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3044 BreakPoint at:004E4F74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12826 VA:002D3F80 Base:2162688 Address: 004E4F80 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3046 BreakPoint at:004E4F80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12827 VA:002D3FDD Base:2162688 Address: 004E4FDD +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3050 BreakPoint at:004E4FDD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12828 VA:002D403A Base:2162688 Address: 004E503A +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3054 BreakPoint at:004E503A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12829 VA:002D4097 Base:2162688 Address: 004E5097 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3058 BreakPoint at:004E5097 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12830 VA:002D40F4 Base:2162688 Address: 004E50F4 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3063 BreakPoint at:004E50F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12831 VA:002D40F8 Base:2162688 Address: 004E50F8 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3064 BreakPoint at:004E50F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12832 VA:002D40FB Base:2162688 Address: 004E50FB +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3039 BreakPoint at:004E50FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12833 VA:002D4104 Base:2162688 Address: 004E5104 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3066 BreakPoint at:004E5104 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12834 VA:002D410F Base:2162688 Address: 004E510F +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3067 BreakPoint at:004E510F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12835 VA:002D411B Base:2162688 Address: 004E511B +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3068 BreakPoint at:004E511B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12836 VA:002D4127 Base:2162688 Address: 004E5127 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3069 BreakPoint at:004E5127 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12837 VA:002D4133 Base:2162688 Address: 004E5133 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3071 BreakPoint at:004E5133 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12838 VA:002D4137 Base:2162688 Address: 004E5137 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3073 BreakPoint at:004E5137 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12839 VA:002D41AE Base:2162688 Address: 004E51AE +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3077 BreakPoint at:004E51AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12840 VA:002D4227 Base:2162688 Address: 004E5227 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3081 BreakPoint at:004E5227 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12841 VA:002D42A0 Base:2162688 Address: 004E52A0 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3085 BreakPoint at:004E52A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12842 VA:002D4319 Base:2162688 Address: 004E5319 +Adding breakpoint for DECCiphers.TCipher_Rijndael.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3089 BreakPoint at:004E5319 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12843 VA:002D43CC Base:2162688 Address: 004E53CC +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_AES128 +TBreakPoint.Activate: +Activate DECCiphers.pas line 3098 BreakPoint at:004E53CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12844 VA:002D43D8 Base:2162688 Address: 004E53D8 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3099 BreakPoint at:004E53D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12845 VA:002D43E1 Base:2162688 Address: 004E53E1 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3100 BreakPoint at:004E53E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12846 VA:002D43EB Base:2162688 Address: 004E53EB +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3101 BreakPoint at:004E53EB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12847 VA:002D43F5 Base:2162688 Address: 004E53F5 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3102 BreakPoint at:004E53F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12848 VA:002D43FF Base:2162688 Address: 004E53FF +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3103 BreakPoint at:004E53FF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12849 VA:002D4406 Base:2162688 Address: 004E5406 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3104 BreakPoint at:004E5406 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12850 VA:002D440F Base:2162688 Address: 004E540F +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3105 BreakPoint at:004E540F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12851 VA:002D4418 Base:2162688 Address: 004E5418 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3106 BreakPoint at:004E5418 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12852 VA:002D4424 Base:2162688 Address: 004E5424 +Adding breakpoint for DECCiphers.TCipher_AES128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3107 BreakPoint at:004E5424 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12853 VA:002D442C Base:2162688 Address: 004E542C +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3110 BreakPoint at:004E542C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12854 VA:002D443B Base:2162688 Address: 004E543B +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3114 BreakPoint at:004E543B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12855 VA:002D4445 Base:2162688 Address: 004E5445 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3116 BreakPoint at:004E5445 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12856 VA:002D4457 Base:2162688 Address: 004E5457 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3117 BreakPoint at:004E5457 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12857 VA:002D4468 Base:2162688 Address: 004E5468 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3118 BreakPoint at:004E5468 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12858 VA:002D47D9 Base:2162688 Address: 004E57D9 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3119 BreakPoint at:004E57D9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12859 VA:002D48C4 Base:2162688 Address: 004E58C4 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3121 BreakPoint at:004E58C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12860 VA:002D48D2 Base:2162688 Address: 004E58D2 +Adding breakpoint for DECCiphers.TCipher_AES128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3122 BreakPoint at:004E58D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12861 VA:002D48D8 Base:2162688 Address: 004E58D8 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_AES192 +TBreakPoint.Activate: +Activate DECCiphers.pas line 3131 BreakPoint at:004E58D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12862 VA:002D48E4 Base:2162688 Address: 004E58E4 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3132 BreakPoint at:004E58E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12863 VA:002D48ED Base:2162688 Address: 004E58ED +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3133 BreakPoint at:004E58ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12864 VA:002D48F7 Base:2162688 Address: 004E58F7 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3134 BreakPoint at:004E58F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12865 VA:002D4901 Base:2162688 Address: 004E5901 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3135 BreakPoint at:004E5901 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12866 VA:002D490B Base:2162688 Address: 004E590B +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3136 BreakPoint at:004E590B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12867 VA:002D4912 Base:2162688 Address: 004E5912 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3137 BreakPoint at:004E5912 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12868 VA:002D491B Base:2162688 Address: 004E591B +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3138 BreakPoint at:004E591B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12869 VA:002D4924 Base:2162688 Address: 004E5924 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3139 BreakPoint at:004E5924 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12870 VA:002D4930 Base:2162688 Address: 004E5930 +Adding breakpoint for DECCiphers.TCipher_AES192.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3140 BreakPoint at:004E5930 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12871 VA:002D4938 Base:2162688 Address: 004E5938 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3143 BreakPoint at:004E5938 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12872 VA:002D4947 Base:2162688 Address: 004E5947 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3147 BreakPoint at:004E5947 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12873 VA:002D4951 Base:2162688 Address: 004E5951 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3149 BreakPoint at:004E5951 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12874 VA:002D4963 Base:2162688 Address: 004E5963 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3150 BreakPoint at:004E5963 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12875 VA:002D4974 Base:2162688 Address: 004E5974 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3151 BreakPoint at:004E5974 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12876 VA:002D4CE5 Base:2162688 Address: 004E5CE5 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3152 BreakPoint at:004E5CE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12877 VA:002D4DD0 Base:2162688 Address: 004E5DD0 +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3154 BreakPoint at:004E5DD0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12878 VA:002D4DDE Base:2162688 Address: 004E5DDE +Adding breakpoint for DECCiphers.TCipher_AES192.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3155 BreakPoint at:004E5DDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12879 VA:002D4DE4 Base:2162688 Address: 004E5DE4 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_AES256 +TBreakPoint.Activate: +Activate DECCiphers.pas line 3164 BreakPoint at:004E5DE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12880 VA:002D4DF0 Base:2162688 Address: 004E5DF0 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3165 BreakPoint at:004E5DF0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12881 VA:002D4DF9 Base:2162688 Address: 004E5DF9 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3166 BreakPoint at:004E5DF9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12882 VA:002D4E03 Base:2162688 Address: 004E5E03 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3167 BreakPoint at:004E5E03 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12883 VA:002D4E0D Base:2162688 Address: 004E5E0D +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3168 BreakPoint at:004E5E0D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12884 VA:002D4E17 Base:2162688 Address: 004E5E17 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3169 BreakPoint at:004E5E17 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12885 VA:002D4E1E Base:2162688 Address: 004E5E1E +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3170 BreakPoint at:004E5E1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12886 VA:002D4E27 Base:2162688 Address: 004E5E27 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3171 BreakPoint at:004E5E27 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12887 VA:002D4E30 Base:2162688 Address: 004E5E30 +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3172 BreakPoint at:004E5E30 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12888 VA:002D4E3C Base:2162688 Address: 004E5E3C +Adding breakpoint for DECCiphers.TCipher_AES256.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3173 BreakPoint at:004E5E3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12889 VA:002D4E44 Base:2162688 Address: 004E5E44 +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3176 BreakPoint at:004E5E44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12890 VA:002D4E53 Base:2162688 Address: 004E5E53 +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3180 BreakPoint at:004E5E53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12891 VA:002D4E5D Base:2162688 Address: 004E5E5D +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3182 BreakPoint at:004E5E5D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12892 VA:002D4E6F Base:2162688 Address: 004E5E6F +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3183 BreakPoint at:004E5E6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12893 VA:002D4E80 Base:2162688 Address: 004E5E80 +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3184 BreakPoint at:004E5E80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12894 VA:002D51F1 Base:2162688 Address: 004E61F1 +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3185 BreakPoint at:004E61F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12895 VA:002D52DC Base:2162688 Address: 004E62DC +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3187 BreakPoint at:004E62DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12896 VA:002D52EA Base:2162688 Address: 004E62EA +Adding breakpoint for DECCiphers.TCipher_AES256.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3188 BreakPoint at:004E62EA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12897 VA:002D52F0 Base:2162688 Address: 004E62F0 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Square +TBreakPoint.Activate: +Activate DECCiphers.pas line 3193 BreakPoint at:004E62F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12898 VA:002D52FC Base:2162688 Address: 004E62FC +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3194 BreakPoint at:004E62FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12899 VA:002D5305 Base:2162688 Address: 004E6305 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3195 BreakPoint at:004E6305 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12900 VA:002D530F Base:2162688 Address: 004E630F +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3196 BreakPoint at:004E630F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12901 VA:002D5319 Base:2162688 Address: 004E6319 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3197 BreakPoint at:004E6319 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12902 VA:002D5323 Base:2162688 Address: 004E6323 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3198 BreakPoint at:004E6323 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12903 VA:002D532A Base:2162688 Address: 004E632A +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3199 BreakPoint at:004E632A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12904 VA:002D5333 Base:2162688 Address: 004E6333 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3200 BreakPoint at:004E6333 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12905 VA:002D533C Base:2162688 Address: 004E633C +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3201 BreakPoint at:004E633C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12906 VA:002D5348 Base:2162688 Address: 004E6348 +Adding breakpoint for DECCiphers.TCipher_Square.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3202 BreakPoint at:004E6348 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12907 VA:002D5350 Base:2162688 Address: 004E6350 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3212 BreakPoint at:004E6350 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12908 VA:002D5361 Base:2162688 Address: 004E6361 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3213 BreakPoint at:004E6361 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12909 VA:002D536A Base:2162688 Address: 004E636A +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3214 BreakPoint at:004E636A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12910 VA:002D537A Base:2162688 Address: 004E637A +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3215 BreakPoint at:004E637A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12911 VA:002D5388 Base:2162688 Address: 004E6388 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3217 BreakPoint at:004E6388 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12912 VA:002D538F Base:2162688 Address: 004E638F +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3219 BreakPoint at:004E638F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12913 VA:002D539E Base:2162688 Address: 004E639E +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3220 BreakPoint at:004E639E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12914 VA:002D53AF Base:2162688 Address: 004E63AF +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3221 BreakPoint at:004E63AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12915 VA:002D53D6 Base:2162688 Address: 004E63D6 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3222 BreakPoint at:004E63D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12916 VA:002D53F9 Base:2162688 Address: 004E63F9 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3223 BreakPoint at:004E63F9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12917 VA:002D541D Base:2162688 Address: 004E641D +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3224 BreakPoint at:004E641D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12918 VA:002D5441 Base:2162688 Address: 004E6441 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3226 BreakPoint at:004E6441 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12919 VA:002D545C Base:2162688 Address: 004E645C +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3227 BreakPoint at:004E645C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12920 VA:002D5479 Base:2162688 Address: 004E6479 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3228 BreakPoint at:004E6479 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12921 VA:002D5496 Base:2162688 Address: 004E6496 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3229 BreakPoint at:004E6496 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12922 VA:002D54B3 Base:2162688 Address: 004E64B3 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3231 BreakPoint at:004E64B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12923 VA:002D54B8 Base:2162688 Address: 004E64B8 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3233 BreakPoint at:004E64B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12924 VA:002D54CD Base:2162688 Address: 004E64CD +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3234 BreakPoint at:004E64CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12925 VA:002D54E1 Base:2162688 Address: 004E64E1 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3235 BreakPoint at:004E64E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12926 VA:002D54F8 Base:2162688 Address: 004E64F8 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3236 BreakPoint at:004E64F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12927 VA:002D5509 Base:2162688 Address: 004E6509 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3237 BreakPoint at:004E6509 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12928 VA:002D550F Base:2162688 Address: 004E650F +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3238 BreakPoint at:004E650F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12929 VA:002D5526 Base:2162688 Address: 004E6526 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3239 BreakPoint at:004E6526 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12930 VA:002D5537 Base:2162688 Address: 004E6537 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3240 BreakPoint at:004E6537 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12931 VA:002D553D Base:2162688 Address: 004E653D +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3241 BreakPoint at:004E653D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12932 VA:002D554F Base:2162688 Address: 004E654F +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3242 BreakPoint at:004E654F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12933 VA:002D5560 Base:2162688 Address: 004E6560 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3243 BreakPoint at:004E6560 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12934 VA:002D5566 Base:2162688 Address: 004E6566 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3244 BreakPoint at:004E6566 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12935 VA:002D557B Base:2162688 Address: 004E657B +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3245 BreakPoint at:004E657B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12936 VA:002D557E Base:2162688 Address: 004E657E +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3231 BreakPoint at:004E657E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12937 VA:002D5588 Base:2162688 Address: 004E6588 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3246 BreakPoint at:004E6588 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12938 VA:002D558B Base:2162688 Address: 004E658B +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3217 BreakPoint at:004E658B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12939 VA:002D5595 Base:2162688 Address: 004E6595 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3248 BreakPoint at:004E6595 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12940 VA:002D55A5 Base:2162688 Address: 004E65A5 +Adding breakpoint for DECCiphers.TCipher_Square.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3251 BreakPoint at:004E65A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12941 VA:002D55AC Base:2162688 Address: 004E65AC +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3259 BreakPoint at:004E65AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12942 VA:002D55BB Base:2162688 Address: 004E65BB +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3260 BreakPoint at:004E65BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12943 VA:002D55C4 Base:2162688 Address: 004E65C4 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3261 BreakPoint at:004E65C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12944 VA:002D55D1 Base:2162688 Address: 004E65D1 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3262 BreakPoint at:004E65D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12945 VA:002D55E0 Base:2162688 Address: 004E65E0 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3263 BreakPoint at:004E65E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12946 VA:002D55EF Base:2162688 Address: 004E65EF +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3264 BreakPoint at:004E65EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12947 VA:002D55FE Base:2162688 Address: 004E65FE +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3265 BreakPoint at:004E65FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12948 VA:002D5607 Base:2162688 Address: 004E6607 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3267 BreakPoint at:004E6607 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12949 VA:002D560C Base:2162688 Address: 004E660C +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3269 BreakPoint at:004E660C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12950 VA:002D5667 Base:2162688 Address: 004E6667 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3273 BreakPoint at:004E6667 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12951 VA:002D56CF Base:2162688 Address: 004E66CF +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3277 BreakPoint at:004E66CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12952 VA:002D5737 Base:2162688 Address: 004E6737 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3281 BreakPoint at:004E6737 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12953 VA:002D5788 Base:2162688 Address: 004E6788 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3286 BreakPoint at:004E6788 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12954 VA:002D579A Base:2162688 Address: 004E679A +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3288 BreakPoint at:004E679A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12955 VA:002D57A3 Base:2162688 Address: 004E67A3 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3289 BreakPoint at:004E67A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12956 VA:002D57A6 Base:2162688 Address: 004E67A6 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3267 BreakPoint at:004E67A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12957 VA:002D57B0 Base:2162688 Address: 004E67B0 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3291 BreakPoint at:004E67B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12958 VA:002D5814 Base:2162688 Address: 004E6814 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3295 BreakPoint at:004E6814 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12959 VA:002D5886 Base:2162688 Address: 004E6886 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3299 BreakPoint at:004E6886 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12960 VA:002D58F8 Base:2162688 Address: 004E68F8 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3303 BreakPoint at:004E68F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12961 VA:002D5953 Base:2162688 Address: 004E6953 +Adding breakpoint for DECCiphers.TCipher_Square.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3307 BreakPoint at:004E6953 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12962 VA:002D595C Base:2162688 Address: 004E695C +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3315 BreakPoint at:004E695C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12963 VA:002D596B Base:2162688 Address: 004E696B +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3316 BreakPoint at:004E696B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12964 VA:002D5979 Base:2162688 Address: 004E6979 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3317 BreakPoint at:004E6979 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12965 VA:002D5986 Base:2162688 Address: 004E6986 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3318 BreakPoint at:004E6986 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12966 VA:002D5995 Base:2162688 Address: 004E6995 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3319 BreakPoint at:004E6995 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12967 VA:002D59A4 Base:2162688 Address: 004E69A4 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3320 BreakPoint at:004E69A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12968 VA:002D59B3 Base:2162688 Address: 004E69B3 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3321 BreakPoint at:004E69B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12969 VA:002D59BC Base:2162688 Address: 004E69BC +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3323 BreakPoint at:004E69BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12970 VA:002D59C1 Base:2162688 Address: 004E69C1 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3325 BreakPoint at:004E69C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12971 VA:002D5A1C Base:2162688 Address: 004E6A1C +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3329 BreakPoint at:004E6A1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12972 VA:002D5A84 Base:2162688 Address: 004E6A84 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3333 BreakPoint at:004E6A84 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12973 VA:002D5AEC Base:2162688 Address: 004E6AEC +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3337 BreakPoint at:004E6AEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12974 VA:002D5B3D Base:2162688 Address: 004E6B3D +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3342 BreakPoint at:004E6B3D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12975 VA:002D5B4F Base:2162688 Address: 004E6B4F +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3343 BreakPoint at:004E6B4F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12976 VA:002D5B58 Base:2162688 Address: 004E6B58 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3344 BreakPoint at:004E6B58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12977 VA:002D5B5B Base:2162688 Address: 004E6B5B +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3323 BreakPoint at:004E6B5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12978 VA:002D5B65 Base:2162688 Address: 004E6B65 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3346 BreakPoint at:004E6B65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12979 VA:002D5BC9 Base:2162688 Address: 004E6BC9 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3350 BreakPoint at:004E6BC9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12980 VA:002D5C3B Base:2162688 Address: 004E6C3B +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3354 BreakPoint at:004E6C3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12981 VA:002D5CAD Base:2162688 Address: 004E6CAD +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3358 BreakPoint at:004E6CAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12982 VA:002D5D08 Base:2162688 Address: 004E6D08 +Adding breakpoint for DECCiphers.TCipher_Square.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3362 BreakPoint at:004E6D08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12983 VA:002D5D10 Base:2162688 Address: 004E6D10 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_SCOP +TBreakPoint.Activate: +Activate DECCiphers.pas line 3367 BreakPoint at:004E6D10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12984 VA:002D5D1C Base:2162688 Address: 004E6D1C +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3368 BreakPoint at:004E6D1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12985 VA:002D5D25 Base:2162688 Address: 004E6D25 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3369 BreakPoint at:004E6D25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12986 VA:002D5D2F Base:2162688 Address: 004E6D2F +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3370 BreakPoint at:004E6D2F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12987 VA:002D5D39 Base:2162688 Address: 004E6D39 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3371 BreakPoint at:004E6D39 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12988 VA:002D5D43 Base:2162688 Address: 004E6D43 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3372 BreakPoint at:004E6D43 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12989 VA:002D5D4A Base:2162688 Address: 004E6D4A +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3373 BreakPoint at:004E6D4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12990 VA:002D5D53 Base:2162688 Address: 004E6D53 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3374 BreakPoint at:004E6D53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12991 VA:002D5D5C Base:2162688 Address: 004E6D5C +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3375 BreakPoint at:004E6D5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12992 VA:002D5D68 Base:2162688 Address: 004E6D68 +Adding breakpoint for DECCiphers.TCipher_SCOP.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3376 BreakPoint at:004E6D68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12993 VA:002D5D70 Base:2162688 Address: 004E6D70 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +Creating class info for DECCiphers class ExpandKey +TBreakPoint.Activate: +Activate DECCiphers.pas line 3389 BreakPoint at:004E6D70 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12994 VA:002D5D76 Base:2162688 Address: 004E6D76 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3390 BreakPoint at:004E6D76 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12995 VA:002D5D7D Base:2162688 Address: 004E6D7D +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3391 BreakPoint at:004E6D7D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12996 VA:002D5D86 Base:2162688 Address: 004E6D86 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3392 BreakPoint at:004E6D86 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12997 VA:002D5D9A Base:2162688 Address: 004E6D9A +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3393 BreakPoint at:004E6D9A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12998 VA:002D5DA8 Base:2162688 Address: 004E6DA8 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3394 BreakPoint at:004E6DA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:12999 VA:002D5DD3 Base:2162688 Address: 004E6DD3 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3393 BreakPoint at:004E6DD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13000 VA:002D5DD9 Base:2162688 Address: 004E6DD9 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3395 BreakPoint at:004E6DD9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13001 VA:002D5DDE Base:2162688 Address: 004E6DDE +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3396 BreakPoint at:004E6DDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13002 VA:002D5DEA Base:2162688 Address: 004E6DEA +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3398 BreakPoint at:004E6DEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13003 VA:002D5DF6 Base:2162688 Address: 004E6DF6 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3399 BreakPoint at:004E6DF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13004 VA:002D5DF9 Base:2162688 Address: 004E6DF9 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3400 BreakPoint at:004E6DF9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13005 VA:002D5DFC Base:2162688 Address: 004E6DFC +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3395 BreakPoint at:004E6DFC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13006 VA:002D5E02 Base:2162688 Address: 004E6E02 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3401 BreakPoint at:004E6E02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13007 VA:002D5E08 Base:2162688 Address: 004E6E08 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +Creating class info for DECCiphers class GP8 +TBreakPoint.Activate: +Activate DECCiphers.pas line 3409 BreakPoint at:004E6E08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13008 VA:002D5E11 Base:2162688 Address: 004E6E11 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3410 BreakPoint at:004E6E11 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13009 VA:002D5E16 Base:2162688 Address: 004E6E16 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3411 BreakPoint at:004E6E16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13010 VA:002D5E1B Base:2162688 Address: 004E6E1B +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3412 BreakPoint at:004E6E1B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13011 VA:002D5E25 Base:2162688 Address: 004E6E25 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3414 BreakPoint at:004E6E25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13012 VA:002D5E35 Base:2162688 Address: 004E6E35 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3415 BreakPoint at:004E6E35 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13013 VA:002D5E3E Base:2162688 Address: 004E6E3E +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3416 BreakPoint at:004E6E3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13014 VA:002D5E47 Base:2162688 Address: 004E6E47 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3417 BreakPoint at:004E6E47 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13015 VA:002D5E50 Base:2162688 Address: 004E6E50 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3418 BreakPoint at:004E6E50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13016 VA:002D5E95 Base:2162688 Address: 004E6E95 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3422 BreakPoint at:004E6E95 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13017 VA:002D5EA7 Base:2162688 Address: 004E6EA7 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3423 BreakPoint at:004E6EA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13018 VA:002D5EB0 Base:2162688 Address: 004E6EB0 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3424 BreakPoint at:004E6EB0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13019 VA:002D5EB9 Base:2162688 Address: 004E6EB9 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3425 BreakPoint at:004E6EB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13020 VA:002D5EC2 Base:2162688 Address: 004E6EC2 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3426 BreakPoint at:004E6EC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13021 VA:002D5F07 Base:2162688 Address: 004E6F07 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3430 BreakPoint at:004E6F07 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13022 VA:002D5F21 Base:2162688 Address: 004E6F21 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3431 BreakPoint at:004E6F21 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13023 VA:002D5F38 Base:2162688 Address: 004E6F38 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3432 BreakPoint at:004E6F38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13024 VA:002D5F3B Base:2162688 Address: 004E6F3B +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3433 BreakPoint at:004E6F3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13025 VA:002D5F3F Base:2162688 Address: 004E6F3F +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3412 BreakPoint at:004E6F3F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13026 VA:002D5F49 Base:2162688 Address: 004E6F49 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3435 BreakPoint at:004E6F49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13027 VA:002D5F5D Base:2162688 Address: 004E6F5D +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3436 BreakPoint at:004E6F5D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13028 VA:002D5F71 Base:2162688 Address: 004E6F71 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3437 BreakPoint at:004E6F71 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13029 VA:002D5F85 Base:2162688 Address: 004E6F85 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3438 BreakPoint at:004E6F85 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13030 VA:002D5F99 Base:2162688 Address: 004E6F99 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3439 BreakPoint at:004E6F99 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13031 VA:002D5FA0 Base:2162688 Address: 004E6FA0 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3445 BreakPoint at:004E6FA0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13032 VA:002D5FAF Base:2162688 Address: 004E6FAF +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3446 BreakPoint at:004E6FAF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13033 VA:002D5FBE Base:2162688 Address: 004E6FBE +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3447 BreakPoint at:004E6FBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13034 VA:002D5FCD Base:2162688 Address: 004E6FCD +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3448 BreakPoint at:004E6FCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13035 VA:002D5FD9 Base:2162688 Address: 004E6FD9 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3449 BreakPoint at:004E6FD9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13036 VA:002D5FE0 Base:2162688 Address: 004E6FE0 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3450 BreakPoint at:004E6FE0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13037 VA:002D5FE5 Base:2162688 Address: 004E6FE5 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3451 BreakPoint at:004E6FE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13038 VA:002D5FF2 Base:2162688 Address: 004E6FF2 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3450 BreakPoint at:004E6FF2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13039 VA:002D5FF8 Base:2162688 Address: 004E6FF8 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3452 BreakPoint at:004E6FF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13040 VA:002D5FFD Base:2162688 Address: 004E6FFD +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3454 BreakPoint at:004E6FFD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13041 VA:002D6002 Base:2162688 Address: 004E7002 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3455 BreakPoint at:004E7002 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13042 VA:002D6020 Base:2162688 Address: 004E7020 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3454 BreakPoint at:004E7020 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13043 VA:002D6026 Base:2162688 Address: 004E7026 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3456 BreakPoint at:004E7026 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13044 VA:002D6030 Base:2162688 Address: 004E7030 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3457 BreakPoint at:004E7030 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13045 VA:002D6033 Base:2162688 Address: 004E7033 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3452 BreakPoint at:004E7033 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13046 VA:002D6039 Base:2162688 Address: 004E7039 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3458 BreakPoint at:004E7039 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13047 VA:002D6043 Base:2162688 Address: 004E7043 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3459 BreakPoint at:004E7043 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13048 VA:002D604C Base:2162688 Address: 004E704C +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3460 BreakPoint at:004E704C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13049 VA:002D6056 Base:2162688 Address: 004E7056 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3461 BreakPoint at:004E7056 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13050 VA:002D605F Base:2162688 Address: 004E705F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3462 BreakPoint at:004E705F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13051 VA:002D606F Base:2162688 Address: 004E706F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3463 BreakPoint at:004E706F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13052 VA:002D6080 Base:2162688 Address: 004E7080 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3464 BreakPoint at:004E7080 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13053 VA:002D6091 Base:2162688 Address: 004E7091 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3465 BreakPoint at:004E7091 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13054 VA:002D609E Base:2162688 Address: 004E709E +Adding breakpoint for DECCiphers.TCipher_SCOP.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3468 BreakPoint at:004E709E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13055 VA:002D60A4 Base:2162688 Address: 004E70A4 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3476 BreakPoint at:004E70A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13056 VA:002D60B3 Base:2162688 Address: 004E70B3 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3477 BreakPoint at:004E70B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13057 VA:002D60BC Base:2162688 Address: 004E70BC +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3478 BreakPoint at:004E70BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13058 VA:002D60C4 Base:2162688 Address: 004E70C4 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3479 BreakPoint at:004E70C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13059 VA:002D60CD Base:2162688 Address: 004E70CD +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3480 BreakPoint at:004E70CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13060 VA:002D60D6 Base:2162688 Address: 004E70D6 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3481 BreakPoint at:004E70D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13061 VA:002D60F7 Base:2162688 Address: 004E70F7 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3483 BreakPoint at:004E70F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13062 VA:002D6112 Base:2162688 Address: 004E7112 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3484 BreakPoint at:004E7112 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13063 VA:002D6127 Base:2162688 Address: 004E7127 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3485 BreakPoint at:004E7127 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13064 VA:002D613F Base:2162688 Address: 004E713F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3486 BreakPoint at:004E713F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13065 VA:002D6154 Base:2162688 Address: 004E7154 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3487 BreakPoint at:004E7154 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13066 VA:002D6169 Base:2162688 Address: 004E7169 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3488 BreakPoint at:004E7169 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13067 VA:002D616F Base:2162688 Address: 004E716F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3489 BreakPoint at:004E716F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13068 VA:002D6172 Base:2162688 Address: 004E7172 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3481 BreakPoint at:004E7172 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13069 VA:002D6177 Base:2162688 Address: 004E7177 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3490 BreakPoint at:004E7177 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13070 VA:002D6181 Base:2162688 Address: 004E7181 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3491 BreakPoint at:004E7181 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13071 VA:002D618C Base:2162688 Address: 004E718C +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3492 BreakPoint at:004E718C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13072 VA:002D6195 Base:2162688 Address: 004E7195 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3493 BreakPoint at:004E7195 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13073 VA:002D619C Base:2162688 Address: 004E719C +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3501 BreakPoint at:004E719C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13074 VA:002D61AB Base:2162688 Address: 004E71AB +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3502 BreakPoint at:004E71AB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13075 VA:002D61B4 Base:2162688 Address: 004E71B4 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3503 BreakPoint at:004E71B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13076 VA:002D61BC Base:2162688 Address: 004E71BC +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3504 BreakPoint at:004E71BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13077 VA:002D61C5 Base:2162688 Address: 004E71C5 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3505 BreakPoint at:004E71C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13078 VA:002D61CE Base:2162688 Address: 004E71CE +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3506 BreakPoint at:004E71CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13079 VA:002D61EF Base:2162688 Address: 004E71EF +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3508 BreakPoint at:004E71EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13080 VA:002D620A Base:2162688 Address: 004E720A +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3509 BreakPoint at:004E720A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13081 VA:002D621F Base:2162688 Address: 004E721F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3510 BreakPoint at:004E721F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13082 VA:002D6237 Base:2162688 Address: 004E7237 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3511 BreakPoint at:004E7237 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13083 VA:002D6249 Base:2162688 Address: 004E7249 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3512 BreakPoint at:004E7249 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13084 VA:002D624C Base:2162688 Address: 004E724C +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3513 BreakPoint at:004E724C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13085 VA:002D6261 Base:2162688 Address: 004E7261 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3514 BreakPoint at:004E7261 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13086 VA:002D6267 Base:2162688 Address: 004E7267 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3515 BreakPoint at:004E7267 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13087 VA:002D626A Base:2162688 Address: 004E726A +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3506 BreakPoint at:004E726A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13088 VA:002D626F Base:2162688 Address: 004E726F +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3516 BreakPoint at:004E726F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13089 VA:002D6279 Base:2162688 Address: 004E7279 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3517 BreakPoint at:004E7279 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13090 VA:002D6284 Base:2162688 Address: 004E7284 +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3518 BreakPoint at:004E7284 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13091 VA:002D628D Base:2162688 Address: 004E728D +Adding breakpoint for DECCiphers.TCipher_SCOP.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3519 BreakPoint at:004E728D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13092 VA:002D6294 Base:2162688 Address: 004E7294 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_SCOP_DEC52 +TBreakPoint.Activate: +Activate DECCiphers.pas line 3524 BreakPoint at:004E7294 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13093 VA:002D62A0 Base:2162688 Address: 004E72A0 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3525 BreakPoint at:004E72A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13094 VA:002D62A9 Base:2162688 Address: 004E72A9 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3526 BreakPoint at:004E72A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13095 VA:002D62B3 Base:2162688 Address: 004E72B3 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3527 BreakPoint at:004E72B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13096 VA:002D62BD Base:2162688 Address: 004E72BD +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3528 BreakPoint at:004E72BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13097 VA:002D62C7 Base:2162688 Address: 004E72C7 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3529 BreakPoint at:004E72C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13098 VA:002D62CE Base:2162688 Address: 004E72CE +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3530 BreakPoint at:004E72CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13099 VA:002D62D7 Base:2162688 Address: 004E72D7 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3531 BreakPoint at:004E72D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13100 VA:002D62E0 Base:2162688 Address: 004E72E0 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3532 BreakPoint at:004E72E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13101 VA:002D62EC Base:2162688 Address: 004E72EC +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3533 BreakPoint at:004E72EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13102 VA:002D62F4 Base:2162688 Address: 004E72F4 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3546 BreakPoint at:004E72F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13103 VA:002D62FA Base:2162688 Address: 004E72FA +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3547 BreakPoint at:004E72FA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13104 VA:002D6301 Base:2162688 Address: 004E7301 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3548 BreakPoint at:004E7301 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13105 VA:002D630A Base:2162688 Address: 004E730A +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3549 BreakPoint at:004E730A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13106 VA:002D631E Base:2162688 Address: 004E731E +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3550 BreakPoint at:004E731E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13107 VA:002D632C Base:2162688 Address: 004E732C +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3551 BreakPoint at:004E732C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13108 VA:002D6357 Base:2162688 Address: 004E7357 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3550 BreakPoint at:004E7357 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13109 VA:002D635D Base:2162688 Address: 004E735D +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3552 BreakPoint at:004E735D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13110 VA:002D6362 Base:2162688 Address: 004E7362 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3553 BreakPoint at:004E7362 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13111 VA:002D636E Base:2162688 Address: 004E736E +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3555 BreakPoint at:004E736E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13112 VA:002D637A Base:2162688 Address: 004E737A +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3556 BreakPoint at:004E737A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13113 VA:002D637D Base:2162688 Address: 004E737D +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3557 BreakPoint at:004E737D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13114 VA:002D6380 Base:2162688 Address: 004E7380 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3552 BreakPoint at:004E7380 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13115 VA:002D6386 Base:2162688 Address: 004E7386 +Adding breakpoint for DECCiphers.ExpandKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3558 BreakPoint at:004E7386 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13116 VA:002D638C Base:2162688 Address: 004E738C +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3566 BreakPoint at:004E738C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13117 VA:002D6395 Base:2162688 Address: 004E7395 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3567 BreakPoint at:004E7395 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13118 VA:002D639A Base:2162688 Address: 004E739A +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3568 BreakPoint at:004E739A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13119 VA:002D639F Base:2162688 Address: 004E739F +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3569 BreakPoint at:004E739F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13120 VA:002D63A9 Base:2162688 Address: 004E73A9 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3571 BreakPoint at:004E73A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13121 VA:002D63B9 Base:2162688 Address: 004E73B9 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3572 BreakPoint at:004E73B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13122 VA:002D63C2 Base:2162688 Address: 004E73C2 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3573 BreakPoint at:004E73C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13123 VA:002D63CB Base:2162688 Address: 004E73CB +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3574 BreakPoint at:004E73CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13124 VA:002D63D4 Base:2162688 Address: 004E73D4 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3575 BreakPoint at:004E73D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13125 VA:002D6419 Base:2162688 Address: 004E7419 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3579 BreakPoint at:004E7419 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13126 VA:002D642B Base:2162688 Address: 004E742B +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3580 BreakPoint at:004E742B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13127 VA:002D6434 Base:2162688 Address: 004E7434 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3581 BreakPoint at:004E7434 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13128 VA:002D643D Base:2162688 Address: 004E743D +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3582 BreakPoint at:004E743D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13129 VA:002D6446 Base:2162688 Address: 004E7446 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3583 BreakPoint at:004E7446 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13130 VA:002D648B Base:2162688 Address: 004E748B +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3587 BreakPoint at:004E748B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13131 VA:002D64A5 Base:2162688 Address: 004E74A5 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3588 BreakPoint at:004E74A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13132 VA:002D64BC Base:2162688 Address: 004E74BC +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3589 BreakPoint at:004E74BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13133 VA:002D64BF Base:2162688 Address: 004E74BF +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3590 BreakPoint at:004E74BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13134 VA:002D64C3 Base:2162688 Address: 004E74C3 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3569 BreakPoint at:004E74C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13135 VA:002D64CD Base:2162688 Address: 004E74CD +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3592 BreakPoint at:004E74CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13136 VA:002D64E1 Base:2162688 Address: 004E74E1 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3593 BreakPoint at:004E74E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13137 VA:002D64F5 Base:2162688 Address: 004E74F5 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3594 BreakPoint at:004E74F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13138 VA:002D6509 Base:2162688 Address: 004E7509 +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3595 BreakPoint at:004E7509 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13139 VA:002D651D Base:2162688 Address: 004E751D +Adding breakpoint for DECCiphers.GP8 in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3596 BreakPoint at:004E751D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13140 VA:002D6524 Base:2162688 Address: 004E7524 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3602 BreakPoint at:004E7524 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13141 VA:002D6533 Base:2162688 Address: 004E7533 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3603 BreakPoint at:004E7533 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13142 VA:002D6542 Base:2162688 Address: 004E7542 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3604 BreakPoint at:004E7542 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13143 VA:002D6551 Base:2162688 Address: 004E7551 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3605 BreakPoint at:004E7551 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13144 VA:002D655D Base:2162688 Address: 004E755D +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3606 BreakPoint at:004E755D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13145 VA:002D6564 Base:2162688 Address: 004E7564 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3607 BreakPoint at:004E7564 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13146 VA:002D6569 Base:2162688 Address: 004E7569 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3608 BreakPoint at:004E7569 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13147 VA:002D6576 Base:2162688 Address: 004E7576 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3607 BreakPoint at:004E7576 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13148 VA:002D657C Base:2162688 Address: 004E757C +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3609 BreakPoint at:004E757C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13149 VA:002D6581 Base:2162688 Address: 004E7581 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3611 BreakPoint at:004E7581 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13150 VA:002D6586 Base:2162688 Address: 004E7586 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3612 BreakPoint at:004E7586 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13151 VA:002D65A4 Base:2162688 Address: 004E75A4 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3611 BreakPoint at:004E75A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13152 VA:002D65AA Base:2162688 Address: 004E75AA +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3613 BreakPoint at:004E75AA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13153 VA:002D65B4 Base:2162688 Address: 004E75B4 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3614 BreakPoint at:004E75B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13154 VA:002D65B7 Base:2162688 Address: 004E75B7 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3609 BreakPoint at:004E75B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13155 VA:002D65BD Base:2162688 Address: 004E75BD +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3615 BreakPoint at:004E75BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13156 VA:002D65C7 Base:2162688 Address: 004E75C7 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3616 BreakPoint at:004E75C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13157 VA:002D65D0 Base:2162688 Address: 004E75D0 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3617 BreakPoint at:004E75D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13158 VA:002D65DB Base:2162688 Address: 004E75DB +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3618 BreakPoint at:004E75DB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13159 VA:002D65E4 Base:2162688 Address: 004E75E4 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3619 BreakPoint at:004E75E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13160 VA:002D65F4 Base:2162688 Address: 004E75F4 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3620 BreakPoint at:004E75F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13161 VA:002D6605 Base:2162688 Address: 004E7605 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3621 BreakPoint at:004E7605 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13162 VA:002D6616 Base:2162688 Address: 004E7616 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3622 BreakPoint at:004E7616 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13163 VA:002D6623 Base:2162688 Address: 004E7623 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3625 BreakPoint at:004E7623 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13164 VA:002D6628 Base:2162688 Address: 004E7628 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3633 BreakPoint at:004E7628 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13165 VA:002D6637 Base:2162688 Address: 004E7637 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3634 BreakPoint at:004E7637 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13166 VA:002D6640 Base:2162688 Address: 004E7640 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3635 BreakPoint at:004E7640 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13167 VA:002D6648 Base:2162688 Address: 004E7648 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3636 BreakPoint at:004E7648 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13168 VA:002D6651 Base:2162688 Address: 004E7651 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3637 BreakPoint at:004E7651 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13169 VA:002D665A Base:2162688 Address: 004E765A +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3638 BreakPoint at:004E765A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13170 VA:002D667B Base:2162688 Address: 004E767B +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3640 BreakPoint at:004E767B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13171 VA:002D6696 Base:2162688 Address: 004E7696 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3641 BreakPoint at:004E7696 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13172 VA:002D66AB Base:2162688 Address: 004E76AB +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3642 BreakPoint at:004E76AB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13173 VA:002D66C3 Base:2162688 Address: 004E76C3 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3643 BreakPoint at:004E76C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13174 VA:002D66D8 Base:2162688 Address: 004E76D8 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3644 BreakPoint at:004E76D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13175 VA:002D66ED Base:2162688 Address: 004E76ED +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3645 BreakPoint at:004E76ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13176 VA:002D66F3 Base:2162688 Address: 004E76F3 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3646 BreakPoint at:004E76F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13177 VA:002D66F6 Base:2162688 Address: 004E76F6 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3638 BreakPoint at:004E76F6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13178 VA:002D66FB Base:2162688 Address: 004E76FB +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3647 BreakPoint at:004E76FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13179 VA:002D6705 Base:2162688 Address: 004E7705 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3648 BreakPoint at:004E7705 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13180 VA:002D6710 Base:2162688 Address: 004E7710 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3649 BreakPoint at:004E7710 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13181 VA:002D6719 Base:2162688 Address: 004E7719 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3650 BreakPoint at:004E7719 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13182 VA:002D6720 Base:2162688 Address: 004E7720 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3658 BreakPoint at:004E7720 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13183 VA:002D672F Base:2162688 Address: 004E772F +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3659 BreakPoint at:004E772F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13184 VA:002D6738 Base:2162688 Address: 004E7738 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3660 BreakPoint at:004E7738 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13185 VA:002D6740 Base:2162688 Address: 004E7740 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3661 BreakPoint at:004E7740 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13186 VA:002D6749 Base:2162688 Address: 004E7749 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3662 BreakPoint at:004E7749 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13187 VA:002D6752 Base:2162688 Address: 004E7752 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3663 BreakPoint at:004E7752 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13188 VA:002D6773 Base:2162688 Address: 004E7773 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3665 BreakPoint at:004E7773 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13189 VA:002D678E Base:2162688 Address: 004E778E +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3666 BreakPoint at:004E778E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13190 VA:002D67A3 Base:2162688 Address: 004E77A3 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3667 BreakPoint at:004E77A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13191 VA:002D67BB Base:2162688 Address: 004E77BB +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3668 BreakPoint at:004E77BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13192 VA:002D67CD Base:2162688 Address: 004E77CD +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3669 BreakPoint at:004E77CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13193 VA:002D67D0 Base:2162688 Address: 004E77D0 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3670 BreakPoint at:004E77D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13194 VA:002D67E5 Base:2162688 Address: 004E77E5 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3671 BreakPoint at:004E77E5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13195 VA:002D67EB Base:2162688 Address: 004E77EB +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3672 BreakPoint at:004E77EB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13196 VA:002D67EE Base:2162688 Address: 004E77EE +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3663 BreakPoint at:004E77EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13197 VA:002D67F3 Base:2162688 Address: 004E77F3 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3673 BreakPoint at:004E77F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13198 VA:002D67FD Base:2162688 Address: 004E77FD +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3674 BreakPoint at:004E77FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13199 VA:002D6808 Base:2162688 Address: 004E7808 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3675 BreakPoint at:004E7808 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13200 VA:002D6811 Base:2162688 Address: 004E7811 +Adding breakpoint for DECCiphers.TCipher_SCOP_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3676 BreakPoint at:004E7811 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13201 VA:002D6818 Base:2162688 Address: 004E7818 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Sapphire +TBreakPoint.Activate: +Activate DECCiphers.pas line 3692 BreakPoint at:004E7818 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13202 VA:002D6824 Base:2162688 Address: 004E7824 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3693 BreakPoint at:004E7824 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13203 VA:002D682D Base:2162688 Address: 004E782D +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3694 BreakPoint at:004E782D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13204 VA:002D6837 Base:2162688 Address: 004E7837 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3695 BreakPoint at:004E7837 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13205 VA:002D6841 Base:2162688 Address: 004E7841 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3696 BreakPoint at:004E7841 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13206 VA:002D684B Base:2162688 Address: 004E784B +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3697 BreakPoint at:004E784B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13207 VA:002D6852 Base:2162688 Address: 004E7852 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3698 BreakPoint at:004E7852 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13208 VA:002D685B Base:2162688 Address: 004E785B +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3699 BreakPoint at:004E785B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13209 VA:002D6864 Base:2162688 Address: 004E7864 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3700 BreakPoint at:004E7864 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13210 VA:002D6870 Base:2162688 Address: 004E7870 +Adding breakpoint for DECCiphers.TCipher_Sapphire.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3701 BreakPoint at:004E7870 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13211 VA:002D6878 Base:2162688 Address: 004E7878 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +Creating class info for DECCiphers class KeyRand +TBreakPoint.Activate: +Activate DECCiphers.pas line 3711 BreakPoint at:004E7878 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13212 VA:002D6881 Base:2162688 Address: 004E7881 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3712 BreakPoint at:004E7881 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13213 VA:002D6885 Base:2162688 Address: 004E7885 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3713 BreakPoint at:004E7885 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13214 VA:002D688F Base:2162688 Address: 004E788F +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3715 BreakPoint at:004E788F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13215 VA:002D6894 Base:2162688 Address: 004E7894 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3716 BreakPoint at:004E7894 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13216 VA:002D689B Base:2162688 Address: 004E789B +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3718 BreakPoint at:004E789B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13217 VA:002D68A3 Base:2162688 Address: 004E78A3 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3719 BreakPoint at:004E78A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13218 VA:002D68AC Base:2162688 Address: 004E78AC +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3718 BreakPoint at:004E78AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13219 VA:002D68B4 Base:2162688 Address: 004E78B4 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3722 BreakPoint at:004E78B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13220 VA:002D68C9 Base:2162688 Address: 004E78C9 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3723 BreakPoint at:004E78C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13221 VA:002D68CF Base:2162688 Address: 004E78CF +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3724 BreakPoint at:004E78CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13222 VA:002D68DD Base:2162688 Address: 004E78DD +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3726 BreakPoint at:004E78DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13223 VA:002D68E5 Base:2162688 Address: 004E78E5 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3727 BreakPoint at:004E78E5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13224 VA:002D68F1 Base:2162688 Address: 004E78F1 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3729 BreakPoint at:004E78F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13225 VA:002D68FD Base:2162688 Address: 004E78FD +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3730 BreakPoint at:004E78FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13226 VA:002D6900 Base:2162688 Address: 004E7900 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3731 BreakPoint at:004E7900 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13227 VA:002D6906 Base:2162688 Address: 004E7906 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3732 BreakPoint at:004E7906 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13228 VA:002D6913 Base:2162688 Address: 004E7913 +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3733 BreakPoint at:004E7913 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13229 VA:002D691D Base:2162688 Address: 004E791D +Adding breakpoint for DECCiphers.KeyRand in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3734 BreakPoint at:004E791D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13230 VA:002D6924 Base:2162688 Address: 004E7924 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3739 BreakPoint at:004E7924 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13231 VA:002D6933 Base:2162688 Address: 004E7933 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3740 BreakPoint at:004E7933 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13232 VA:002D693C Base:2162688 Address: 004E793C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3741 BreakPoint at:004E793C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13233 VA:002D6942 Base:2162688 Address: 004E7942 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3743 BreakPoint at:004E7942 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13234 VA:002D694F Base:2162688 Address: 004E794F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3744 BreakPoint at:004E794F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13235 VA:002D695C Base:2162688 Address: 004E795C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3745 BreakPoint at:004E795C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13236 VA:002D6969 Base:2162688 Address: 004E7969 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3746 BreakPoint at:004E7969 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13237 VA:002D6976 Base:2162688 Address: 004E7976 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3747 BreakPoint at:004E7976 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13238 VA:002D6983 Base:2162688 Address: 004E7983 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3748 BreakPoint at:004E7983 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13239 VA:002D6988 Base:2162688 Address: 004E7988 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3749 BreakPoint at:004E7988 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13240 VA:002D699C Base:2162688 Address: 004E799C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3748 BreakPoint at:004E799C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13241 VA:002D69AA Base:2162688 Address: 004E79AA +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3753 BreakPoint at:004E79AA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13242 VA:002D69AF Base:2162688 Address: 004E79AF +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3754 BreakPoint at:004E79AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13243 VA:002D69BE Base:2162688 Address: 004E79BE +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3753 BreakPoint at:004E79BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13244 VA:002D69C7 Base:2162688 Address: 004E79C7 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3755 BreakPoint at:004E79C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13245 VA:002D69CC Base:2162688 Address: 004E79CC +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3756 BreakPoint at:004E79CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13246 VA:002D69D0 Base:2162688 Address: 004E79D0 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3757 BreakPoint at:004E79D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13247 VA:002D69D7 Base:2162688 Address: 004E79D7 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3759 BreakPoint at:004E79D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13248 VA:002D69E9 Base:2162688 Address: 004E79E9 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3760 BreakPoint at:004E79E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13249 VA:002D69F5 Base:2162688 Address: 004E79F5 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3761 BreakPoint at:004E79F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13250 VA:002D6A07 Base:2162688 Address: 004E7A07 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3762 BreakPoint at:004E7A07 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13251 VA:002D6A13 Base:2162688 Address: 004E7A13 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3763 BreakPoint at:004E7A13 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13252 VA:002D6A16 Base:2162688 Address: 004E7A16 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3757 BreakPoint at:004E7A16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13253 VA:002D6A1C Base:2162688 Address: 004E7A1C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3764 BreakPoint at:004E7A1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13254 VA:002D6A2B Base:2162688 Address: 004E7A2B +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3765 BreakPoint at:004E7A2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13255 VA:002D6A3A Base:2162688 Address: 004E7A3A +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3766 BreakPoint at:004E7A3A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13256 VA:002D6A49 Base:2162688 Address: 004E7A49 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3767 BreakPoint at:004E7A49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13257 VA:002D6A58 Base:2162688 Address: 004E7A58 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3768 BreakPoint at:004E7A58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13258 VA:002D6A6C Base:2162688 Address: 004E7A6C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3772 BreakPoint at:004E7A6C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13259 VA:002D6A70 Base:2162688 Address: 004E7A70 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3779 BreakPoint at:004E7A70 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13260 VA:002D6A7F Base:2162688 Address: 004E7A7F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3780 BreakPoint at:004E7A7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13261 VA:002D6A88 Base:2162688 Address: 004E7A88 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3781 BreakPoint at:004E7A88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13262 VA:002D6A9F Base:2162688 Address: 004E7A9F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3783 BreakPoint at:004E7A9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13263 VA:002D6AC5 Base:2162688 Address: 004E7AC5 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3784 BreakPoint at:004E7AC5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13264 VA:002D6ADD Base:2162688 Address: 004E7ADD +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3785 BreakPoint at:004E7ADD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13265 VA:002D6AEF Base:2162688 Address: 004E7AEF +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3786 BreakPoint at:004E7AEF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13266 VA:002D6B0D Base:2162688 Address: 004E7B0D +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3787 BreakPoint at:004E7B0D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13267 VA:002D6B2B Base:2162688 Address: 004E7B2B +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3788 BreakPoint at:004E7B2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13268 VA:002D6B49 Base:2162688 Address: 004E7B49 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3789 BreakPoint at:004E7B49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13269 VA:002D6B5B Base:2162688 Address: 004E7B5B +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3790 BreakPoint at:004E7B5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13270 VA:002D6B7B Base:2162688 Address: 004E7B7B +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3791 BreakPoint at:004E7B7B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13271 VA:002D6BB0 Base:2162688 Address: 004E7BB0 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3792 BreakPoint at:004E7BB0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13272 VA:002D6BC3 Base:2162688 Address: 004E7BC3 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3793 BreakPoint at:004E7BC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13273 VA:002D6C0F Base:2162688 Address: 004E7C0F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3796 BreakPoint at:004E7C0F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13274 VA:002D6C21 Base:2162688 Address: 004E7C21 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3797 BreakPoint at:004E7C21 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13275 VA:002D6C24 Base:2162688 Address: 004E7C24 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3781 BreakPoint at:004E7C24 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13276 VA:002D6C2D Base:2162688 Address: 004E7C2D +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3798 BreakPoint at:004E7C2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13277 VA:002D6C34 Base:2162688 Address: 004E7C34 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3805 BreakPoint at:004E7C34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13278 VA:002D6C43 Base:2162688 Address: 004E7C43 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3806 BreakPoint at:004E7C43 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13279 VA:002D6C4C Base:2162688 Address: 004E7C4C +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3807 BreakPoint at:004E7C4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13280 VA:002D6C63 Base:2162688 Address: 004E7C63 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3809 BreakPoint at:004E7C63 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13281 VA:002D6C89 Base:2162688 Address: 004E7C89 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3810 BreakPoint at:004E7C89 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13282 VA:002D6CA1 Base:2162688 Address: 004E7CA1 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3811 BreakPoint at:004E7CA1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13283 VA:002D6CB3 Base:2162688 Address: 004E7CB3 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3812 BreakPoint at:004E7CB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13284 VA:002D6CD1 Base:2162688 Address: 004E7CD1 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3813 BreakPoint at:004E7CD1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13285 VA:002D6CEF Base:2162688 Address: 004E7CEF +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3814 BreakPoint at:004E7CEF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13286 VA:002D6D0D Base:2162688 Address: 004E7D0D +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3815 BreakPoint at:004E7D0D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13287 VA:002D6D1F Base:2162688 Address: 004E7D1F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3816 BreakPoint at:004E7D1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13288 VA:002D6D3F Base:2162688 Address: 004E7D3F +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3817 BreakPoint at:004E7D3F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13289 VA:002D6D74 Base:2162688 Address: 004E7D74 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3818 BreakPoint at:004E7D74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13290 VA:002D6D87 Base:2162688 Address: 004E7D87 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3819 BreakPoint at:004E7D87 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13291 VA:002D6DD3 Base:2162688 Address: 004E7DD3 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3822 BreakPoint at:004E7DD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13292 VA:002D6DE5 Base:2162688 Address: 004E7DE5 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3823 BreakPoint at:004E7DE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13293 VA:002D6DE8 Base:2162688 Address: 004E7DE8 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3807 BreakPoint at:004E7DE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13294 VA:002D6DF1 Base:2162688 Address: 004E7DF1 +Adding breakpoint for DECCiphers.TCipher_Sapphire.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3824 BreakPoint at:004E7DF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13295 VA:002D6DF8 Base:2162688 Address: 004E7DF8 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +Creating class info for DECCiphers class DES_Func +TBreakPoint.Activate: +Activate DECCiphers.pas line 3831 BreakPoint at:004E7DF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13296 VA:002D6E07 Base:2162688 Address: 004E7E07 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3832 BreakPoint at:004E7E07 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13297 VA:002D6E14 Base:2162688 Address: 004E7E14 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3833 BreakPoint at:004E7E14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13298 VA:002D6E22 Base:2162688 Address: 004E7E22 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3835 BreakPoint at:004E7E22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13299 VA:002D6E42 Base:2162688 Address: 004E7E42 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3836 BreakPoint at:004E7E42 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13300 VA:002D6E62 Base:2162688 Address: 004E7E62 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3837 BreakPoint at:004E7E62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13301 VA:002D6E82 Base:2162688 Address: 004E7E82 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3838 BreakPoint at:004E7E82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13302 VA:002D6EA2 Base:2162688 Address: 004E7EA2 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3840 BreakPoint at:004E7EA2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13303 VA:002D6EB2 Base:2162688 Address: 004E7EB2 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3841 BreakPoint at:004E7EB2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13304 VA:002D6EC0 Base:2162688 Address: 004E7EC0 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3842 BreakPoint at:004E7EC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13305 VA:002D6EC6 Base:2162688 Address: 004E7EC6 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3843 BreakPoint at:004E7EC6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13306 VA:002D6ECC Base:2162688 Address: 004E7ECC +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3844 BreakPoint at:004E7ECC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13307 VA:002D6EDC Base:2162688 Address: 004E7EDC +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3846 BreakPoint at:004E7EDC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13308 VA:002D6EE1 Base:2162688 Address: 004E7EE1 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3848 BreakPoint at:004E7EE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13309 VA:002D6EF7 Base:2162688 Address: 004E7EF7 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3849 BreakPoint at:004E7EF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13310 VA:002D6F03 Base:2162688 Address: 004E7F03 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3850 BreakPoint at:004E7F03 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13311 VA:002D6FAC Base:2162688 Address: 004E7FAC +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3855 BreakPoint at:004E7FAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13312 VA:002D6FC3 Base:2162688 Address: 004E7FC3 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3856 BreakPoint at:004E7FC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13313 VA:002D6FCF Base:2162688 Address: 004E7FCF +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3857 BreakPoint at:004E7FCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13314 VA:002D7078 Base:2162688 Address: 004E8078 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3861 BreakPoint at:004E8078 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13315 VA:002D7081 Base:2162688 Address: 004E8081 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3862 BreakPoint at:004E8081 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13316 VA:002D7084 Base:2162688 Address: 004E8084 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3846 BreakPoint at:004E8084 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13317 VA:002D708E Base:2162688 Address: 004E808E +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3864 BreakPoint at:004E808E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13318 VA:002D709E Base:2162688 Address: 004E809E +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3865 BreakPoint at:004E809E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13319 VA:002D70AC Base:2162688 Address: 004E80AC +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3866 BreakPoint at:004E80AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13320 VA:002D70B2 Base:2162688 Address: 004E80B2 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3867 BreakPoint at:004E80B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13321 VA:002D70B8 Base:2162688 Address: 004E80B8 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3868 BreakPoint at:004E80B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13322 VA:002D70C8 Base:2162688 Address: 004E80C8 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3870 BreakPoint at:004E80C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13323 VA:002D70E8 Base:2162688 Address: 004E80E8 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3871 BreakPoint at:004E80E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13324 VA:002D7108 Base:2162688 Address: 004E8108 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3872 BreakPoint at:004E8108 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13325 VA:002D7128 Base:2162688 Address: 004E8128 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3873 BreakPoint at:004E8128 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13326 VA:002D7148 Base:2162688 Address: 004E8148 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3875 BreakPoint at:004E8148 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13327 VA:002D7155 Base:2162688 Address: 004E8155 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3876 BreakPoint at:004E8155 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13328 VA:002D7163 Base:2162688 Address: 004E8163 +Adding breakpoint for DECCiphers.DES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3877 BreakPoint at:004E8163 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13329 VA:002D7168 Base:2162688 Address: 004E8168 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +Creating class info for DECCiphers class TCipher_DESBase +TBreakPoint.Activate: +Activate DECCiphers.pas line 3886 BreakPoint at:004E8168 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13330 VA:002D717A Base:2162688 Address: 004E817A +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3887 BreakPoint at:004E817A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13331 VA:002D718C Base:2162688 Address: 004E818C +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3888 BreakPoint at:004E818C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13332 VA:002D7191 Base:2162688 Address: 004E8191 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3889 BreakPoint at:004E8191 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13333 VA:002D71C1 Base:2162688 Address: 004E81C1 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3890 BreakPoint at:004E81C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13334 VA:002D71CB Base:2162688 Address: 004E81CB +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3892 BreakPoint at:004E81CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13335 VA:002D71D6 Base:2162688 Address: 004E81D6 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3888 BreakPoint at:004E81D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13336 VA:002D71DC Base:2162688 Address: 004E81DC +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3893 BreakPoint at:004E81DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13337 VA:002D71E1 Base:2162688 Address: 004E81E1 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3895 BreakPoint at:004E81E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13338 VA:002D71E7 Base:2162688 Address: 004E81E7 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3896 BreakPoint at:004E81E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13339 VA:002D71F6 Base:2162688 Address: 004E81F6 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3898 BreakPoint at:004E81F6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13340 VA:002D71FE Base:2162688 Address: 004E81FE +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3899 BreakPoint at:004E81FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13341 VA:002D7205 Base:2162688 Address: 004E8205 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3900 BreakPoint at:004E8205 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13342 VA:002D720A Base:2162688 Address: 004E820A +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3902 BreakPoint at:004E820A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13343 VA:002D721A Base:2162688 Address: 004E821A +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3903 BreakPoint at:004E821A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13344 VA:002D7220 Base:2162688 Address: 004E8220 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3904 BreakPoint at:004E8220 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13345 VA:002D7233 Base:2162688 Address: 004E8233 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3906 BreakPoint at:004E8233 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13346 VA:002D7244 Base:2162688 Address: 004E8244 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3907 BreakPoint at:004E8244 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13347 VA:002D7247 Base:2162688 Address: 004E8247 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3900 BreakPoint at:004E8247 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13348 VA:002D724D Base:2162688 Address: 004E824D +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3908 BreakPoint at:004E824D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13349 VA:002D7254 Base:2162688 Address: 004E8254 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3910 BreakPoint at:004E8254 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13350 VA:002D7264 Base:2162688 Address: 004E8264 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3911 BreakPoint at:004E8264 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13351 VA:002D726A Base:2162688 Address: 004E826A +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3912 BreakPoint at:004E826A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13352 VA:002D727D Base:2162688 Address: 004E827D +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3914 BreakPoint at:004E827D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13353 VA:002D728E Base:2162688 Address: 004E828E +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3915 BreakPoint at:004E828E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13354 VA:002D7291 Base:2162688 Address: 004E8291 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3908 BreakPoint at:004E8291 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13355 VA:002D7297 Base:2162688 Address: 004E8297 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3916 BreakPoint at:004E8297 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13356 VA:002D729E Base:2162688 Address: 004E829E +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3917 BreakPoint at:004E829E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13357 VA:002D72A3 Base:2162688 Address: 004E82A3 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3919 BreakPoint at:004E82A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13358 VA:002D72A6 Base:2162688 Address: 004E82A6 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3920 BreakPoint at:004E82A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13359 VA:002D72BC Base:2162688 Address: 004E82BC +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3921 BreakPoint at:004E82BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13360 VA:002D72C9 Base:2162688 Address: 004E82C9 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3922 BreakPoint at:004E82C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13361 VA:002D72E0 Base:2162688 Address: 004E82E0 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3923 BreakPoint at:004E82E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13362 VA:002D72ED Base:2162688 Address: 004E82ED +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3924 BreakPoint at:004E82ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13363 VA:002D72F0 Base:2162688 Address: 004E82F0 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3917 BreakPoint at:004E82F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13364 VA:002D72F6 Base:2162688 Address: 004E82F6 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3925 BreakPoint at:004E82F6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13365 VA:002D72F9 Base:2162688 Address: 004E82F9 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3893 BreakPoint at:004E82F9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13366 VA:002D7303 Base:2162688 Address: 004E8303 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3926 BreakPoint at:004E8303 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13367 VA:002D7308 Base:2162688 Address: 004E8308 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3928 BreakPoint at:004E8308 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13368 VA:002D7310 Base:2162688 Address: 004E8310 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3929 BreakPoint at:004E8310 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13369 VA:002D7317 Base:2162688 Address: 004E8317 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3930 BreakPoint at:004E8317 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13370 VA:002D736D Base:2162688 Address: 004E836D +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3934 BreakPoint at:004E836D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13371 VA:002D73BB Base:2162688 Address: 004E83BB +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3938 BreakPoint at:004E83BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13372 VA:002D73C4 Base:2162688 Address: 004E83C4 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3939 BreakPoint at:004E83C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13373 VA:002D73C7 Base:2162688 Address: 004E83C7 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3926 BreakPoint at:004E83C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13374 VA:002D73D1 Base:2162688 Address: 004E83D1 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3940 BreakPoint at:004E83D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13375 VA:002D73E1 Base:2162688 Address: 004E83E1 +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3941 BreakPoint at:004E83E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13376 VA:002D73EE Base:2162688 Address: 004E83EE +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3942 BreakPoint at:004E83EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13377 VA:002D73FE Base:2162688 Address: 004E83FE +Adding breakpoint for DECCiphers.TCipher_DESBase.DoInitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3943 BreakPoint at:004E83FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13378 VA:002D7404 Base:2162688 Address: 004E8404 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_1DES +TBreakPoint.Activate: +Activate DECCiphers.pas line 3948 BreakPoint at:004E8404 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13379 VA:002D7410 Base:2162688 Address: 004E8410 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3949 BreakPoint at:004E8410 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13380 VA:002D7419 Base:2162688 Address: 004E8419 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3950 BreakPoint at:004E8419 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13381 VA:002D7423 Base:2162688 Address: 004E8423 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3951 BreakPoint at:004E8423 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13382 VA:002D742D Base:2162688 Address: 004E842D +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3952 BreakPoint at:004E842D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13383 VA:002D7437 Base:2162688 Address: 004E8437 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3953 BreakPoint at:004E8437 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13384 VA:002D743E Base:2162688 Address: 004E843E +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3954 BreakPoint at:004E843E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13385 VA:002D7447 Base:2162688 Address: 004E8447 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3955 BreakPoint at:004E8447 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13386 VA:002D7450 Base:2162688 Address: 004E8450 +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3956 BreakPoint at:004E8450 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13387 VA:002D745C Base:2162688 Address: 004E845C +Adding breakpoint for DECCiphers.TCipher_1DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3957 BreakPoint at:004E845C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13388 VA:002D7464 Base:2162688 Address: 004E8464 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3962 BreakPoint at:004E8464 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13389 VA:002D7473 Base:2162688 Address: 004E8473 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3963 BreakPoint at:004E8473 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13390 VA:002D7482 Base:2162688 Address: 004E8482 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3964 BreakPoint at:004E8482 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13391 VA:002D7490 Base:2162688 Address: 004E8490 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3965 BreakPoint at:004E8490 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13392 VA:002D74A9 Base:2162688 Address: 004E84A9 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3966 BreakPoint at:004E84A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13393 VA:002D74C7 Base:2162688 Address: 004E84C7 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3967 BreakPoint at:004E84C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13394 VA:002D74D4 Base:2162688 Address: 004E84D4 +Adding breakpoint for DECCiphers.TCipher_1DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3970 BreakPoint at:004E84D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13395 VA:002D74D8 Base:2162688 Address: 004E84D8 +Adding breakpoint for DECCiphers.TCipher_1DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3973 BreakPoint at:004E84D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13396 VA:002D74E7 Base:2162688 Address: 004E84E7 +Adding breakpoint for DECCiphers.TCipher_1DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3974 BreakPoint at:004E84E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13397 VA:002D750E Base:2162688 Address: 004E850E +Adding breakpoint for DECCiphers.TCipher_1DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3975 BreakPoint at:004E850E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13398 VA:002D751F Base:2162688 Address: 004E851F +Adding breakpoint for DECCiphers.TCipher_1DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3976 BreakPoint at:004E851F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13399 VA:002D75D4 Base:2162688 Address: 004E85D4 +Adding breakpoint for DECCiphers.TCipher_1DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3979 BreakPoint at:004E85D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13400 VA:002D75E3 Base:2162688 Address: 004E85E3 +Adding breakpoint for DECCiphers.TCipher_1DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3980 BreakPoint at:004E85E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13401 VA:002D760A Base:2162688 Address: 004E860A +Adding breakpoint for DECCiphers.TCipher_1DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3981 BreakPoint at:004E860A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13402 VA:002D7621 Base:2162688 Address: 004E8621 +Adding breakpoint for DECCiphers.TCipher_1DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3982 BreakPoint at:004E8621 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13403 VA:002D76D4 Base:2162688 Address: 004E86D4 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_2DES +TBreakPoint.Activate: +Activate DECCiphers.pas line 3987 BreakPoint at:004E86D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13404 VA:002D76E0 Base:2162688 Address: 004E86E0 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3988 BreakPoint at:004E86E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13405 VA:002D76E9 Base:2162688 Address: 004E86E9 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3989 BreakPoint at:004E86E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13406 VA:002D76F3 Base:2162688 Address: 004E86F3 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3990 BreakPoint at:004E86F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13407 VA:002D76FD Base:2162688 Address: 004E86FD +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3991 BreakPoint at:004E86FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13408 VA:002D7707 Base:2162688 Address: 004E8707 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3992 BreakPoint at:004E8707 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13409 VA:002D770E Base:2162688 Address: 004E870E +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3993 BreakPoint at:004E870E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13410 VA:002D7717 Base:2162688 Address: 004E8717 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3994 BreakPoint at:004E8717 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13411 VA:002D7720 Base:2162688 Address: 004E8720 +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3995 BreakPoint at:004E8720 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13412 VA:002D772C Base:2162688 Address: 004E872C +Adding breakpoint for DECCiphers.TCipher_2DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 3996 BreakPoint at:004E872C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13413 VA:002D7734 Base:2162688 Address: 004E8734 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4002 BreakPoint at:004E8734 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13414 VA:002D7743 Base:2162688 Address: 004E8743 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4003 BreakPoint at:004E8743 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13415 VA:002D7752 Base:2162688 Address: 004E8752 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4004 BreakPoint at:004E8752 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13416 VA:002D7760 Base:2162688 Address: 004E8760 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4005 BreakPoint at:004E8760 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13417 VA:002D7769 Base:2162688 Address: 004E8769 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4006 BreakPoint at:004E8769 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13418 VA:002D777C Base:2162688 Address: 004E877C +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4007 BreakPoint at:004E877C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13419 VA:002D7794 Base:2162688 Address: 004E8794 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4008 BreakPoint at:004E8794 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13420 VA:002D77AC Base:2162688 Address: 004E87AC +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4009 BreakPoint at:004E87AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13421 VA:002D77C4 Base:2162688 Address: 004E87C4 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4010 BreakPoint at:004E87C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13422 VA:002D77D1 Base:2162688 Address: 004E87D1 +Adding breakpoint for DECCiphers.TCipher_2DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4013 BreakPoint at:004E87D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13423 VA:002D77D8 Base:2162688 Address: 004E87D8 +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4016 BreakPoint at:004E87D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13424 VA:002D77E7 Base:2162688 Address: 004E87E7 +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4017 BreakPoint at:004E87E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13425 VA:002D780E Base:2162688 Address: 004E880E +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4018 BreakPoint at:004E880E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13426 VA:002D781F Base:2162688 Address: 004E881F +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4019 BreakPoint at:004E881F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13427 VA:002D7836 Base:2162688 Address: 004E8836 +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4020 BreakPoint at:004E8836 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13428 VA:002D7847 Base:2162688 Address: 004E8847 +Adding breakpoint for DECCiphers.TCipher_2DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4021 BreakPoint at:004E8847 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13429 VA:002D78FC Base:2162688 Address: 004E88FC +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4024 BreakPoint at:004E88FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13430 VA:002D790B Base:2162688 Address: 004E890B +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4025 BreakPoint at:004E890B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13431 VA:002D7932 Base:2162688 Address: 004E8932 +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4026 BreakPoint at:004E8932 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13432 VA:002D7949 Base:2162688 Address: 004E8949 +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4027 BreakPoint at:004E8949 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13433 VA:002D7960 Base:2162688 Address: 004E8960 +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4028 BreakPoint at:004E8960 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13434 VA:002D7977 Base:2162688 Address: 004E8977 +Adding breakpoint for DECCiphers.TCipher_2DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4029 BreakPoint at:004E8977 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13435 VA:002D7A2C Base:2162688 Address: 004E8A2C +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_3DES +TBreakPoint.Activate: +Activate DECCiphers.pas line 4034 BreakPoint at:004E8A2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13436 VA:002D7A38 Base:2162688 Address: 004E8A38 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4035 BreakPoint at:004E8A38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13437 VA:002D7A41 Base:2162688 Address: 004E8A41 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4036 BreakPoint at:004E8A41 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13438 VA:002D7A4B Base:2162688 Address: 004E8A4B +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4037 BreakPoint at:004E8A4B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13439 VA:002D7A55 Base:2162688 Address: 004E8A55 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4038 BreakPoint at:004E8A55 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13440 VA:002D7A5F Base:2162688 Address: 004E8A5F +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4039 BreakPoint at:004E8A5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13441 VA:002D7A66 Base:2162688 Address: 004E8A66 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4040 BreakPoint at:004E8A66 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13442 VA:002D7A6F Base:2162688 Address: 004E8A6F +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4041 BreakPoint at:004E8A6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13443 VA:002D7A78 Base:2162688 Address: 004E8A78 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4042 BreakPoint at:004E8A78 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13444 VA:002D7A84 Base:2162688 Address: 004E8A84 +Adding breakpoint for DECCiphers.TCipher_3DES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4043 BreakPoint at:004E8A84 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13445 VA:002D7A8C Base:2162688 Address: 004E8A8C +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4049 BreakPoint at:004E8A8C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13446 VA:002D7A9B Base:2162688 Address: 004E8A9B +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4050 BreakPoint at:004E8A9B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13447 VA:002D7AAA Base:2162688 Address: 004E8AAA +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4051 BreakPoint at:004E8AAA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13448 VA:002D7AB8 Base:2162688 Address: 004E8AB8 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4052 BreakPoint at:004E8AB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13449 VA:002D7AC1 Base:2162688 Address: 004E8AC1 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4053 BreakPoint at:004E8AC1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13450 VA:002D7AD4 Base:2162688 Address: 004E8AD4 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4054 BreakPoint at:004E8AD4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13451 VA:002D7AEC Base:2162688 Address: 004E8AEC +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4055 BreakPoint at:004E8AEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13452 VA:002D7B04 Base:2162688 Address: 004E8B04 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4056 BreakPoint at:004E8B04 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13453 VA:002D7B1C Base:2162688 Address: 004E8B1C +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4057 BreakPoint at:004E8B1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13454 VA:002D7B34 Base:2162688 Address: 004E8B34 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4058 BreakPoint at:004E8B34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13455 VA:002D7B4C Base:2162688 Address: 004E8B4C +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4059 BreakPoint at:004E8B4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13456 VA:002D7B59 Base:2162688 Address: 004E8B59 +Adding breakpoint for DECCiphers.TCipher_3DES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4062 BreakPoint at:004E8B59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13457 VA:002D7B60 Base:2162688 Address: 004E8B60 +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4065 BreakPoint at:004E8B60 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13458 VA:002D7B6F Base:2162688 Address: 004E8B6F +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4066 BreakPoint at:004E8B6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13459 VA:002D7B96 Base:2162688 Address: 004E8B96 +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4067 BreakPoint at:004E8B96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13460 VA:002D7BA7 Base:2162688 Address: 004E8BA7 +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4068 BreakPoint at:004E8BA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13461 VA:002D7BBE Base:2162688 Address: 004E8BBE +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4069 BreakPoint at:004E8BBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13462 VA:002D7BD5 Base:2162688 Address: 004E8BD5 +Adding breakpoint for DECCiphers.TCipher_3DES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4070 BreakPoint at:004E8BD5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13463 VA:002D7C88 Base:2162688 Address: 004E8C88 +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4073 BreakPoint at:004E8C88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13464 VA:002D7C97 Base:2162688 Address: 004E8C97 +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4074 BreakPoint at:004E8C97 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13465 VA:002D7CBE Base:2162688 Address: 004E8CBE +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4075 BreakPoint at:004E8CBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13466 VA:002D7CD5 Base:2162688 Address: 004E8CD5 +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4076 BreakPoint at:004E8CD5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13467 VA:002D7CEC Base:2162688 Address: 004E8CEC +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4077 BreakPoint at:004E8CEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13468 VA:002D7D03 Base:2162688 Address: 004E8D03 +Adding breakpoint for DECCiphers.TCipher_3DES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4078 BreakPoint at:004E8D03 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13469 VA:002D7DB8 Base:2162688 Address: 004E8DB8 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_2DDES +TBreakPoint.Activate: +Activate DECCiphers.pas line 4083 BreakPoint at:004E8DB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13470 VA:002D7DC4 Base:2162688 Address: 004E8DC4 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4084 BreakPoint at:004E8DC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13471 VA:002D7DCF Base:2162688 Address: 004E8DCF +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4085 BreakPoint at:004E8DCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13472 VA:002D7DD9 Base:2162688 Address: 004E8DD9 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4086 BreakPoint at:004E8DD9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13473 VA:002D7DE3 Base:2162688 Address: 004E8DE3 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4087 BreakPoint at:004E8DE3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13474 VA:002D7DEC Base:2162688 Address: 004E8DEC +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4088 BreakPoint at:004E8DEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13475 VA:002D7DF5 Base:2162688 Address: 004E8DF5 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4089 BreakPoint at:004E8DF5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13476 VA:002D7E01 Base:2162688 Address: 004E8E01 +Adding breakpoint for DECCiphers.TCipher_2DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4090 BreakPoint at:004E8E01 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13477 VA:002D7E0C Base:2162688 Address: 004E8E0C +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4095 BreakPoint at:004E8E0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13478 VA:002D7E1B Base:2162688 Address: 004E8E1B +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4096 BreakPoint at:004E8E1B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13479 VA:002D7E42 Base:2162688 Address: 004E8E42 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4098 BreakPoint at:004E8E42 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13480 VA:002D7E53 Base:2162688 Address: 004E8E53 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4099 BreakPoint at:004E8E53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13481 VA:002D7E6A Base:2162688 Address: 004E8E6A +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4100 BreakPoint at:004E8E6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13482 VA:002D7E73 Base:2162688 Address: 004E8E73 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4101 BreakPoint at:004E8E73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13483 VA:002D7E7F Base:2162688 Address: 004E8E7F +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4102 BreakPoint at:004E8E7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13484 VA:002D7E88 Base:2162688 Address: 004E8E88 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4103 BreakPoint at:004E8E88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13485 VA:002D7E9F Base:2162688 Address: 004E8E9F +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4104 BreakPoint at:004E8E9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13486 VA:002D7EBC Base:2162688 Address: 004E8EBC +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4105 BreakPoint at:004E8EBC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13487 VA:002D7EC5 Base:2162688 Address: 004E8EC5 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4106 BreakPoint at:004E8EC5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13488 VA:002D7ED1 Base:2162688 Address: 004E8ED1 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4107 BreakPoint at:004E8ED1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13489 VA:002D7EDA Base:2162688 Address: 004E8EDA +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4108 BreakPoint at:004E8EDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13490 VA:002D7EEB Base:2162688 Address: 004E8EEB +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4109 BreakPoint at:004E8EEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13491 VA:002D7F02 Base:2162688 Address: 004E8F02 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4110 BreakPoint at:004E8F02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13492 VA:002D7FB4 Base:2162688 Address: 004E8FB4 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4115 BreakPoint at:004E8FB4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13493 VA:002D7FC3 Base:2162688 Address: 004E8FC3 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4116 BreakPoint at:004E8FC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13494 VA:002D7FEA Base:2162688 Address: 004E8FEA +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4118 BreakPoint at:004E8FEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13495 VA:002D8001 Base:2162688 Address: 004E9001 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4119 BreakPoint at:004E9001 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13496 VA:002D801E Base:2162688 Address: 004E901E +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4120 BreakPoint at:004E901E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13497 VA:002D8027 Base:2162688 Address: 004E9027 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4121 BreakPoint at:004E9027 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13498 VA:002D8033 Base:2162688 Address: 004E9033 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4122 BreakPoint at:004E9033 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13499 VA:002D803C Base:2162688 Address: 004E903C +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4123 BreakPoint at:004E903C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13500 VA:002D8053 Base:2162688 Address: 004E9053 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4124 BreakPoint at:004E9053 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13501 VA:002D8070 Base:2162688 Address: 004E9070 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4125 BreakPoint at:004E9070 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13502 VA:002D8079 Base:2162688 Address: 004E9079 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4126 BreakPoint at:004E9079 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13503 VA:002D8085 Base:2162688 Address: 004E9085 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4127 BreakPoint at:004E9085 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13504 VA:002D808E Base:2162688 Address: 004E908E +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4128 BreakPoint at:004E908E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13505 VA:002D80A5 Base:2162688 Address: 004E90A5 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4129 BreakPoint at:004E90A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13506 VA:002D80C2 Base:2162688 Address: 004E90C2 +Adding breakpoint for DECCiphers.TCipher_2DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4130 BreakPoint at:004E90C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13507 VA:002D8174 Base:2162688 Address: 004E9174 +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_3DDES +TBreakPoint.Activate: +Activate DECCiphers.pas line 4135 BreakPoint at:004E9174 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13508 VA:002D8180 Base:2162688 Address: 004E9180 +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4136 BreakPoint at:004E9180 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13509 VA:002D818B Base:2162688 Address: 004E918B +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4137 BreakPoint at:004E918B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13510 VA:002D8195 Base:2162688 Address: 004E9195 +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4138 BreakPoint at:004E9195 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13511 VA:002D819F Base:2162688 Address: 004E919F +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4139 BreakPoint at:004E919F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13512 VA:002D81A8 Base:2162688 Address: 004E91A8 +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4140 BreakPoint at:004E91A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13513 VA:002D81B1 Base:2162688 Address: 004E91B1 +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4141 BreakPoint at:004E91B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13514 VA:002D81BD Base:2162688 Address: 004E91BD +Adding breakpoint for DECCiphers.TCipher_3DDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4142 BreakPoint at:004E91BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13515 VA:002D81C8 Base:2162688 Address: 004E91C8 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4147 BreakPoint at:004E91C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13516 VA:002D81D7 Base:2162688 Address: 004E91D7 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4148 BreakPoint at:004E91D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13517 VA:002D81FE Base:2162688 Address: 004E91FE +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4150 BreakPoint at:004E91FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13518 VA:002D820F Base:2162688 Address: 004E920F +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4151 BreakPoint at:004E920F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13519 VA:002D8226 Base:2162688 Address: 004E9226 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4152 BreakPoint at:004E9226 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13520 VA:002D822F Base:2162688 Address: 004E922F +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4153 BreakPoint at:004E922F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13521 VA:002D823B Base:2162688 Address: 004E923B +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4154 BreakPoint at:004E923B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13522 VA:002D8244 Base:2162688 Address: 004E9244 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4155 BreakPoint at:004E9244 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13523 VA:002D825B Base:2162688 Address: 004E925B +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4156 BreakPoint at:004E925B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13524 VA:002D8278 Base:2162688 Address: 004E9278 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4157 BreakPoint at:004E9278 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13525 VA:002D8281 Base:2162688 Address: 004E9281 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4158 BreakPoint at:004E9281 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13526 VA:002D828D Base:2162688 Address: 004E928D +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4159 BreakPoint at:004E928D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13527 VA:002D8296 Base:2162688 Address: 004E9296 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4160 BreakPoint at:004E9296 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13528 VA:002D82AD Base:2162688 Address: 004E92AD +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4161 BreakPoint at:004E92AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13529 VA:002D82CA Base:2162688 Address: 004E92CA +Adding breakpoint for DECCiphers.TCipher_3DDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4162 BreakPoint at:004E92CA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13530 VA:002D837C Base:2162688 Address: 004E937C +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4167 BreakPoint at:004E937C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13531 VA:002D838B Base:2162688 Address: 004E938B +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4168 BreakPoint at:004E938B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13532 VA:002D83B2 Base:2162688 Address: 004E93B2 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4170 BreakPoint at:004E93B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13533 VA:002D83C9 Base:2162688 Address: 004E93C9 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4171 BreakPoint at:004E93C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13534 VA:002D83E6 Base:2162688 Address: 004E93E6 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4172 BreakPoint at:004E93E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13535 VA:002D83EF Base:2162688 Address: 004E93EF +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4173 BreakPoint at:004E93EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13536 VA:002D83FB Base:2162688 Address: 004E93FB +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4174 BreakPoint at:004E93FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13537 VA:002D8404 Base:2162688 Address: 004E9404 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4175 BreakPoint at:004E9404 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13538 VA:002D841B Base:2162688 Address: 004E941B +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4176 BreakPoint at:004E941B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13539 VA:002D8438 Base:2162688 Address: 004E9438 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4177 BreakPoint at:004E9438 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13540 VA:002D8441 Base:2162688 Address: 004E9441 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4178 BreakPoint at:004E9441 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13541 VA:002D844D Base:2162688 Address: 004E944D +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4179 BreakPoint at:004E944D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13542 VA:002D8456 Base:2162688 Address: 004E9456 +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4180 BreakPoint at:004E9456 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13543 VA:002D846D Base:2162688 Address: 004E946D +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4181 BreakPoint at:004E946D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13544 VA:002D848A Base:2162688 Address: 004E948A +Adding breakpoint for DECCiphers.TCipher_3DDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4182 BreakPoint at:004E948A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13545 VA:002D853C Base:2162688 Address: 004E953C +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_3TDES +TBreakPoint.Activate: +Activate DECCiphers.pas line 4187 BreakPoint at:004E953C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13546 VA:002D8548 Base:2162688 Address: 004E9548 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4188 BreakPoint at:004E9548 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13547 VA:002D8553 Base:2162688 Address: 004E9553 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4189 BreakPoint at:004E9553 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13548 VA:002D855D Base:2162688 Address: 004E955D +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4190 BreakPoint at:004E955D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13549 VA:002D8567 Base:2162688 Address: 004E9567 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4191 BreakPoint at:004E9567 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13550 VA:002D8570 Base:2162688 Address: 004E9570 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4192 BreakPoint at:004E9570 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13551 VA:002D8579 Base:2162688 Address: 004E9579 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4193 BreakPoint at:004E9579 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13552 VA:002D8585 Base:2162688 Address: 004E9585 +Adding breakpoint for DECCiphers.TCipher_3TDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4194 BreakPoint at:004E9585 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13553 VA:002D8590 Base:2162688 Address: 004E9590 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4199 BreakPoint at:004E9590 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13554 VA:002D859F Base:2162688 Address: 004E959F +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4200 BreakPoint at:004E959F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13555 VA:002D85C6 Base:2162688 Address: 004E95C6 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4202 BreakPoint at:004E95C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13556 VA:002D85D7 Base:2162688 Address: 004E95D7 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4203 BreakPoint at:004E95D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13557 VA:002D85EE Base:2162688 Address: 004E95EE +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4204 BreakPoint at:004E95EE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13558 VA:002D8605 Base:2162688 Address: 004E9605 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4205 BreakPoint at:004E9605 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13559 VA:002D860E Base:2162688 Address: 004E960E +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4206 BreakPoint at:004E960E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13560 VA:002D861A Base:2162688 Address: 004E961A +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4207 BreakPoint at:004E961A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13561 VA:002D8623 Base:2162688 Address: 004E9623 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4208 BreakPoint at:004E9623 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13562 VA:002D862C Base:2162688 Address: 004E962C +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4209 BreakPoint at:004E962C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13563 VA:002D8638 Base:2162688 Address: 004E9638 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4210 BreakPoint at:004E9638 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13564 VA:002D8641 Base:2162688 Address: 004E9641 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4211 BreakPoint at:004E9641 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13565 VA:002D8658 Base:2162688 Address: 004E9658 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4212 BreakPoint at:004E9658 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13566 VA:002D8675 Base:2162688 Address: 004E9675 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4213 BreakPoint at:004E9675 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13567 VA:002D8692 Base:2162688 Address: 004E9692 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4214 BreakPoint at:004E9692 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13568 VA:002D869B Base:2162688 Address: 004E969B +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4215 BreakPoint at:004E969B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13569 VA:002D86A7 Base:2162688 Address: 004E96A7 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4216 BreakPoint at:004E96A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13570 VA:002D86B0 Base:2162688 Address: 004E96B0 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4217 BreakPoint at:004E96B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13571 VA:002D86B9 Base:2162688 Address: 004E96B9 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4218 BreakPoint at:004E96B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13572 VA:002D86C5 Base:2162688 Address: 004E96C5 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4219 BreakPoint at:004E96C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13573 VA:002D86CE Base:2162688 Address: 004E96CE +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4220 BreakPoint at:004E96CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13574 VA:002D86E5 Base:2162688 Address: 004E96E5 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4221 BreakPoint at:004E96E5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13575 VA:002D8702 Base:2162688 Address: 004E9702 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4222 BreakPoint at:004E9702 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13576 VA:002D871F Base:2162688 Address: 004E971F +Adding breakpoint for DECCiphers.TCipher_3TDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4223 BreakPoint at:004E971F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13577 VA:002D87D4 Base:2162688 Address: 004E97D4 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4228 BreakPoint at:004E97D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13578 VA:002D87E3 Base:2162688 Address: 004E97E3 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4229 BreakPoint at:004E97E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13579 VA:002D880A Base:2162688 Address: 004E980A +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4231 BreakPoint at:004E980A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13580 VA:002D8821 Base:2162688 Address: 004E9821 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4232 BreakPoint at:004E9821 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13581 VA:002D883E Base:2162688 Address: 004E983E +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4233 BreakPoint at:004E983E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13582 VA:002D885B Base:2162688 Address: 004E985B +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4234 BreakPoint at:004E985B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13583 VA:002D8864 Base:2162688 Address: 004E9864 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4235 BreakPoint at:004E9864 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13584 VA:002D8870 Base:2162688 Address: 004E9870 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4236 BreakPoint at:004E9870 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13585 VA:002D8879 Base:2162688 Address: 004E9879 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4237 BreakPoint at:004E9879 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13586 VA:002D8882 Base:2162688 Address: 004E9882 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4238 BreakPoint at:004E9882 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13587 VA:002D888E Base:2162688 Address: 004E988E +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4239 BreakPoint at:004E988E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13588 VA:002D8897 Base:2162688 Address: 004E9897 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4240 BreakPoint at:004E9897 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13589 VA:002D88AE Base:2162688 Address: 004E98AE +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4241 BreakPoint at:004E98AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13590 VA:002D88CB Base:2162688 Address: 004E98CB +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4242 BreakPoint at:004E98CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13591 VA:002D88E8 Base:2162688 Address: 004E98E8 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4243 BreakPoint at:004E98E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13592 VA:002D88F1 Base:2162688 Address: 004E98F1 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4244 BreakPoint at:004E98F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13593 VA:002D88FD Base:2162688 Address: 004E98FD +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4245 BreakPoint at:004E98FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13594 VA:002D8906 Base:2162688 Address: 004E9906 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4246 BreakPoint at:004E9906 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13595 VA:002D890F Base:2162688 Address: 004E990F +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4247 BreakPoint at:004E990F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13596 VA:002D891B Base:2162688 Address: 004E991B +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4248 BreakPoint at:004E991B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13597 VA:002D8924 Base:2162688 Address: 004E9924 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4249 BreakPoint at:004E9924 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13598 VA:002D893B Base:2162688 Address: 004E993B +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4250 BreakPoint at:004E993B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13599 VA:002D8958 Base:2162688 Address: 004E9958 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4251 BreakPoint at:004E9958 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13600 VA:002D8975 Base:2162688 Address: 004E9975 +Adding breakpoint for DECCiphers.TCipher_3TDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4252 BreakPoint at:004E9975 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13601 VA:002D8A28 Base:2162688 Address: 004E9A28 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_3Way +TBreakPoint.Activate: +Activate DECCiphers.pas line 4266 BreakPoint at:004E9A28 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13602 VA:002D8A34 Base:2162688 Address: 004E9A34 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4267 BreakPoint at:004E9A34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13603 VA:002D8A3D Base:2162688 Address: 004E9A3D +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4268 BreakPoint at:004E9A3D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13604 VA:002D8A47 Base:2162688 Address: 004E9A47 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4269 BreakPoint at:004E9A47 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13605 VA:002D8A51 Base:2162688 Address: 004E9A51 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4270 BreakPoint at:004E9A51 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13606 VA:002D8A5B Base:2162688 Address: 004E9A5B +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4271 BreakPoint at:004E9A5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13607 VA:002D8A62 Base:2162688 Address: 004E9A62 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4272 BreakPoint at:004E9A62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13608 VA:002D8A6B Base:2162688 Address: 004E9A6B +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4273 BreakPoint at:004E9A6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13609 VA:002D8A74 Base:2162688 Address: 004E9A74 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4274 BreakPoint at:004E9A74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13610 VA:002D8A80 Base:2162688 Address: 004E9A80 +Adding breakpoint for DECCiphers.TCipher_3Way.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4275 BreakPoint at:004E9A80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13611 VA:002D8A88 Base:2162688 Address: 004E9A88 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +Creating class info for DECCiphers class RANDGenerate +TBreakPoint.Activate: +Activate DECCiphers.pas line 4282 BreakPoint at:004E9A88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13612 VA:002D8A97 Base:2162688 Address: 004E9A97 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4283 BreakPoint at:004E9A97 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13613 VA:002D8A9C Base:2162688 Address: 004E9A9C +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4285 BreakPoint at:004E9A9C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13614 VA:002D8AA8 Base:2162688 Address: 004E9AA8 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4286 BreakPoint at:004E9AA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13615 VA:002D8AAB Base:2162688 Address: 004E9AAB +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4287 BreakPoint at:004E9AAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13616 VA:002D8AB1 Base:2162688 Address: 004E9AB1 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4288 BreakPoint at:004E9AB1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13617 VA:002D8AB8 Base:2162688 Address: 004E9AB8 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4289 BreakPoint at:004E9AB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13618 VA:002D8ABB Base:2162688 Address: 004E9ABB +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4283 BreakPoint at:004E9ABB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13619 VA:002D8AC1 Base:2162688 Address: 004E9AC1 +Adding breakpoint for DECCiphers.RANDGenerate in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4290 BreakPoint at:004E9AC1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13620 VA:002D8AC8 Base:2162688 Address: 004E9AC8 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4296 BreakPoint at:004E9AC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13621 VA:002D8AD7 Base:2162688 Address: 004E9AD7 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4297 BreakPoint at:004E9AD7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13622 VA:002D8AE0 Base:2162688 Address: 004E9AE0 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4299 BreakPoint at:004E9AE0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13623 VA:002D8AEE Base:2162688 Address: 004E9AEE +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4300 BreakPoint at:004E9AEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13624 VA:002D8AFF Base:2162688 Address: 004E9AFF +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4301 BreakPoint at:004E9AFF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13625 VA:002D8B16 Base:2162688 Address: 004E9B16 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4302 BreakPoint at:004E9B16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13626 VA:002D8B2D Base:2162688 Address: 004E9B2D +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4303 BreakPoint at:004E9B2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13627 VA:002D8B36 Base:2162688 Address: 004E9B36 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4304 BreakPoint at:004E9B36 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13628 VA:002D8B3F Base:2162688 Address: 004E9B3F +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4305 BreakPoint at:004E9B3F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13629 VA:002D8B48 Base:2162688 Address: 004E9B48 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4306 BreakPoint at:004E9B48 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13630 VA:002D8BAC Base:2162688 Address: 004E9BAC +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4309 BreakPoint at:004E9BAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13631 VA:002D8C10 Base:2162688 Address: 004E9C10 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4312 BreakPoint at:004E9C10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13632 VA:002D8C74 Base:2162688 Address: 004E9C74 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4315 BreakPoint at:004E9C74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13633 VA:002D8C82 Base:2162688 Address: 004E9C82 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4316 BreakPoint at:004E9C82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13634 VA:002D8C90 Base:2162688 Address: 004E9C90 +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4317 BreakPoint at:004E9C90 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13635 VA:002D8C9E Base:2162688 Address: 004E9C9E +Adding breakpoint for DECCiphers.TCipher_3Way.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4320 BreakPoint at:004E9C9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13636 VA:002D8CA4 Base:2162688 Address: 004E9CA4 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4330 BreakPoint at:004E9CA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13637 VA:002D8CB3 Base:2162688 Address: 004E9CB3 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4331 BreakPoint at:004E9CB3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13638 VA:002D8CDA Base:2162688 Address: 004E9CDA +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4332 BreakPoint at:004E9CDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13639 VA:002D8CE3 Base:2162688 Address: 004E9CE3 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4334 BreakPoint at:004E9CE3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13640 VA:002D8CEB Base:2162688 Address: 004E9CEB +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4335 BreakPoint at:004E9CEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13641 VA:002D8CF4 Base:2162688 Address: 004E9CF4 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4336 BreakPoint at:004E9CF4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13642 VA:002D8CFD Base:2162688 Address: 004E9CFD +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4337 BreakPoint at:004E9CFD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13643 VA:002D8D06 Base:2162688 Address: 004E9D06 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4339 BreakPoint at:004E9D06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13644 VA:002D8D0E Base:2162688 Address: 004E9D0E +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4340 BreakPoint at:004E9D0E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13645 VA:002D8D17 Base:2162688 Address: 004E9D17 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4341 BreakPoint at:004E9D17 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13646 VA:002D8D20 Base:2162688 Address: 004E9D20 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4342 BreakPoint at:004E9D20 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13647 VA:002D8D25 Base:2162688 Address: 004E9D25 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4344 BreakPoint at:004E9D25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13648 VA:002D8D38 Base:2162688 Address: 004E9D38 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4345 BreakPoint at:004E9D38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13649 VA:002D8D3E Base:2162688 Address: 004E9D3E +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4346 BreakPoint at:004E9D3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13650 VA:002D8D4C Base:2162688 Address: 004E9D4C +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4347 BreakPoint at:004E9D4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13651 VA:002D8D50 Base:2162688 Address: 004E9D50 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4349 BreakPoint at:004E9D50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13652 VA:002D8DB4 Base:2162688 Address: 004E9DB4 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4352 BreakPoint at:004E9DB4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13653 VA:002D8E18 Base:2162688 Address: 004E9E18 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4355 BreakPoint at:004E9E18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13654 VA:002D8E7C Base:2162688 Address: 004E9E7C +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4358 BreakPoint at:004E9E7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13655 VA:002D8E8D Base:2162688 Address: 004E9E8D +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4359 BreakPoint at:004E9E8D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13656 VA:002D8E9D Base:2162688 Address: 004E9E9D +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4360 BreakPoint at:004E9E9D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13657 VA:002D8EAB Base:2162688 Address: 004E9EAB +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4361 BreakPoint at:004E9EAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13658 VA:002D8EB9 Base:2162688 Address: 004E9EB9 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4362 BreakPoint at:004E9EB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13659 VA:002D8EC7 Base:2162688 Address: 004E9EC7 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4363 BreakPoint at:004E9EC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13660 VA:002D8ED7 Base:2162688 Address: 004E9ED7 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4364 BreakPoint at:004E9ED7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13661 VA:002D8EE8 Base:2162688 Address: 004E9EE8 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4365 BreakPoint at:004E9EE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13662 VA:002D8EEB Base:2162688 Address: 004E9EEB +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4342 BreakPoint at:004E9EEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13663 VA:002D8EF5 Base:2162688 Address: 004E9EF5 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4366 BreakPoint at:004E9EF5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13664 VA:002D8F08 Base:2162688 Address: 004E9F08 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4367 BreakPoint at:004E9F08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13665 VA:002D8F0E Base:2162688 Address: 004E9F0E +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4368 BreakPoint at:004E9F0E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13666 VA:002D8F1C Base:2162688 Address: 004E9F1C +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4369 BreakPoint at:004E9F1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13667 VA:002D8F82 Base:2162688 Address: 004E9F82 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4372 BreakPoint at:004E9F82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13668 VA:002D8FE9 Base:2162688 Address: 004E9FE9 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4375 BreakPoint at:004E9FE9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13669 VA:002D9050 Base:2162688 Address: 004EA050 +Adding breakpoint for DECCiphers.TCipher_3Way.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4378 BreakPoint at:004EA050 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13670 VA:002D9104 Base:2162688 Address: 004EA104 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4388 BreakPoint at:004EA104 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13671 VA:002D9113 Base:2162688 Address: 004EA113 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4389 BreakPoint at:004EA113 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13672 VA:002D913A Base:2162688 Address: 004EA13A +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4390 BreakPoint at:004EA13A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13673 VA:002D9143 Base:2162688 Address: 004EA143 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4392 BreakPoint at:004EA143 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13674 VA:002D914C Base:2162688 Address: 004EA14C +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4393 BreakPoint at:004EA14C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13675 VA:002D9155 Base:2162688 Address: 004EA155 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4394 BreakPoint at:004EA155 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13676 VA:002D915E Base:2162688 Address: 004EA15E +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4395 BreakPoint at:004EA15E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13677 VA:002D9167 Base:2162688 Address: 004EA167 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4397 BreakPoint at:004EA167 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13678 VA:002D9175 Base:2162688 Address: 004EA175 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4398 BreakPoint at:004EA175 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13679 VA:002D9183 Base:2162688 Address: 004EA183 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4399 BreakPoint at:004EA183 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13680 VA:002D9190 Base:2162688 Address: 004EA190 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4400 BreakPoint at:004EA190 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13681 VA:002D9195 Base:2162688 Address: 004EA195 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4402 BreakPoint at:004EA195 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13682 VA:002D91A8 Base:2162688 Address: 004EA1A8 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4403 BreakPoint at:004EA1A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13683 VA:002D91AE Base:2162688 Address: 004EA1AE +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4404 BreakPoint at:004EA1AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13684 VA:002D91BC Base:2162688 Address: 004EA1BC +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4405 BreakPoint at:004EA1BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13685 VA:002D91C0 Base:2162688 Address: 004EA1C0 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4407 BreakPoint at:004EA1C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13686 VA:002D9224 Base:2162688 Address: 004EA224 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4410 BreakPoint at:004EA224 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13687 VA:002D9288 Base:2162688 Address: 004EA288 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4413 BreakPoint at:004EA288 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13688 VA:002D92EC Base:2162688 Address: 004EA2EC +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4416 BreakPoint at:004EA2EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13689 VA:002D92FD Base:2162688 Address: 004EA2FD +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4417 BreakPoint at:004EA2FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13690 VA:002D930D Base:2162688 Address: 004EA30D +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4418 BreakPoint at:004EA30D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13691 VA:002D931B Base:2162688 Address: 004EA31B +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4419 BreakPoint at:004EA31B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13692 VA:002D9329 Base:2162688 Address: 004EA329 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4420 BreakPoint at:004EA329 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13693 VA:002D9337 Base:2162688 Address: 004EA337 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4421 BreakPoint at:004EA337 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13694 VA:002D9347 Base:2162688 Address: 004EA347 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4422 BreakPoint at:004EA347 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13695 VA:002D9358 Base:2162688 Address: 004EA358 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4423 BreakPoint at:004EA358 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13696 VA:002D935B Base:2162688 Address: 004EA35B +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4400 BreakPoint at:004EA35B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13697 VA:002D9365 Base:2162688 Address: 004EA365 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4424 BreakPoint at:004EA365 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13698 VA:002D9378 Base:2162688 Address: 004EA378 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4425 BreakPoint at:004EA378 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13699 VA:002D937E Base:2162688 Address: 004EA37E +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4426 BreakPoint at:004EA37E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13700 VA:002D938C Base:2162688 Address: 004EA38C +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4427 BreakPoint at:004EA38C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13701 VA:002D93F0 Base:2162688 Address: 004EA3F0 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4430 BreakPoint at:004EA3F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13702 VA:002D9454 Base:2162688 Address: 004EA454 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4433 BreakPoint at:004EA454 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13703 VA:002D94B8 Base:2162688 Address: 004EA4B8 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4437 BreakPoint at:004EA4B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13704 VA:002D94C6 Base:2162688 Address: 004EA4C6 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4438 BreakPoint at:004EA4C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13705 VA:002D94D4 Base:2162688 Address: 004EA4D4 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4439 BreakPoint at:004EA4D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13706 VA:002D94E1 Base:2162688 Address: 004EA4E1 +Adding breakpoint for DECCiphers.TCipher_3Way.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4440 BreakPoint at:004EA4E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13707 VA:002D9594 Base:2162688 Address: 004EA594 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Cast128 +TBreakPoint.Activate: +Activate DECCiphers.pas line 4445 BreakPoint at:004EA594 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13708 VA:002D95A0 Base:2162688 Address: 004EA5A0 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4446 BreakPoint at:004EA5A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13709 VA:002D95A9 Base:2162688 Address: 004EA5A9 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4447 BreakPoint at:004EA5A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13710 VA:002D95B3 Base:2162688 Address: 004EA5B3 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4448 BreakPoint at:004EA5B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13711 VA:002D95BD Base:2162688 Address: 004EA5BD +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4449 BreakPoint at:004EA5BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13712 VA:002D95C7 Base:2162688 Address: 004EA5C7 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4450 BreakPoint at:004EA5C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13713 VA:002D95CE Base:2162688 Address: 004EA5CE +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4451 BreakPoint at:004EA5CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13714 VA:002D95D7 Base:2162688 Address: 004EA5D7 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4452 BreakPoint at:004EA5D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13715 VA:002D95E0 Base:2162688 Address: 004EA5E0 +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4453 BreakPoint at:004EA5E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13716 VA:002D95EC Base:2162688 Address: 004EA5EC +Adding breakpoint for DECCiphers.TCipher_Cast128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4454 BreakPoint at:004EA5EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13717 VA:002D95F4 Base:2162688 Address: 004EA5F4 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4461 BreakPoint at:004EA5F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13718 VA:002D9603 Base:2162688 Address: 004EA603 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4464 BreakPoint at:004EA603 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13719 VA:002D9609 Base:2162688 Address: 004EA609 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4465 BreakPoint at:004EA609 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13720 VA:002D9615 Base:2162688 Address: 004EA615 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4467 BreakPoint at:004EA615 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13721 VA:002D961F Base:2162688 Address: 004EA61F +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4469 BreakPoint at:004EA61F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13722 VA:002D9628 Base:2162688 Address: 004EA628 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4470 BreakPoint at:004EA628 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13723 VA:002D9637 Base:2162688 Address: 004EA637 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4471 BreakPoint at:004EA637 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13724 VA:002D9645 Base:2162688 Address: 004EA645 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4472 BreakPoint at:004EA645 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13725 VA:002D9655 Base:2162688 Address: 004EA655 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4473 BreakPoint at:004EA655 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13726 VA:002D965A Base:2162688 Address: 004EA65A +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4474 BreakPoint at:004EA65A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13727 VA:002D9664 Base:2162688 Address: 004EA664 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4476 BreakPoint at:004EA664 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13728 VA:002D966E Base:2162688 Address: 004EA66E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4478 BreakPoint at:004EA66E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13729 VA:002D96DD Base:2162688 Address: 004EA6DD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4483 BreakPoint at:004EA6DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13730 VA:002D96E3 Base:2162688 Address: 004EA6E3 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4484 BreakPoint at:004EA6E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13731 VA:002D9759 Base:2162688 Address: 004EA759 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4489 BreakPoint at:004EA759 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13732 VA:002D975F Base:2162688 Address: 004EA75F +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4490 BreakPoint at:004EA75F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13733 VA:002D97D0 Base:2162688 Address: 004EA7D0 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4495 BreakPoint at:004EA7D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13734 VA:002D97D6 Base:2162688 Address: 004EA7D6 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4496 BreakPoint at:004EA7D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13735 VA:002D9848 Base:2162688 Address: 004EA848 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4501 BreakPoint at:004EA848 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13736 VA:002D9853 Base:2162688 Address: 004EA853 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4505 BreakPoint at:004EA853 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13737 VA:002D98C2 Base:2162688 Address: 004EA8C2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4510 BreakPoint at:004EA8C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13738 VA:002D98C8 Base:2162688 Address: 004EA8C8 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4511 BreakPoint at:004EA8C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13739 VA:002D993E Base:2162688 Address: 004EA93E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4516 BreakPoint at:004EA93E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13740 VA:002D9944 Base:2162688 Address: 004EA944 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4517 BreakPoint at:004EA944 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13741 VA:002D99B5 Base:2162688 Address: 004EA9B5 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4522 BreakPoint at:004EA9B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13742 VA:002D99BB Base:2162688 Address: 004EA9BB +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4523 BreakPoint at:004EA9BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13743 VA:002D9A2D Base:2162688 Address: 004EAA2D +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4528 BreakPoint at:004EAA2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13744 VA:002D9A33 Base:2162688 Address: 004EAA33 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4530 BreakPoint at:004EAA33 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13745 VA:002D9A59 Base:2162688 Address: 004EAA59 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4533 BreakPoint at:004EAA59 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13746 VA:002D9AB9 Base:2162688 Address: 004EAAB9 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4537 BreakPoint at:004EAAB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13747 VA:002D9B19 Base:2162688 Address: 004EAB19 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4541 BreakPoint at:004EAB19 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13748 VA:002D9B7A Base:2162688 Address: 004EAB7A +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4545 BreakPoint at:004EAB7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13749 VA:002D9BDF Base:2162688 Address: 004EABDF +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4552 BreakPoint at:004EABDF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13750 VA:002D9C3E Base:2162688 Address: 004EAC3E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4556 BreakPoint at:004EAC3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13751 VA:002D9C9E Base:2162688 Address: 004EAC9E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4560 BreakPoint at:004EAC9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13752 VA:002D9CFE Base:2162688 Address: 004EACFE +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4564 BreakPoint at:004EACFE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13753 VA:002D9D5E Base:2162688 Address: 004EAD5E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4570 BreakPoint at:004EAD5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13754 VA:002D9D89 Base:2162688 Address: 004EAD89 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4572 BreakPoint at:004EAD89 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13755 VA:002D9DA6 Base:2162688 Address: 004EADA6 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4573 BreakPoint at:004EADA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13756 VA:002D9DC8 Base:2162688 Address: 004EADC8 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4574 BreakPoint at:004EADC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13757 VA:002D9DEA Base:2162688 Address: 004EADEA +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4575 BreakPoint at:004EADEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13758 VA:002D9E0C Base:2162688 Address: 004EAE0C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4578 BreakPoint at:004EAE0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13759 VA:002D9E24 Base:2162688 Address: 004EAE24 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4579 BreakPoint at:004EAE24 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13760 VA:002D9E46 Base:2162688 Address: 004EAE46 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4580 BreakPoint at:004EAE46 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13761 VA:002D9E65 Base:2162688 Address: 004EAE65 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4581 BreakPoint at:004EAE65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13762 VA:002D9E89 Base:2162688 Address: 004EAE89 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4584 BreakPoint at:004EAE89 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13763 VA:002D9EA6 Base:2162688 Address: 004EAEA6 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4585 BreakPoint at:004EAEA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13764 VA:002D9EC3 Base:2162688 Address: 004EAEC3 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4586 BreakPoint at:004EAEC3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13765 VA:002D9EE5 Base:2162688 Address: 004EAEE5 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4587 BreakPoint at:004EAEE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13766 VA:002D9F09 Base:2162688 Address: 004EAF09 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4590 BreakPoint at:004EAF09 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13767 VA:002D9F23 Base:2162688 Address: 004EAF23 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4591 BreakPoint at:004EAF23 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13768 VA:002D9F42 Base:2162688 Address: 004EAF42 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4592 BreakPoint at:004EAF42 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13769 VA:002D9F5F Base:2162688 Address: 004EAF5F +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4593 BreakPoint at:004EAF5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13770 VA:002D9F81 Base:2162688 Address: 004EAF81 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4596 BreakPoint at:004EAF81 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13771 VA:002D9F87 Base:2162688 Address: 004EAF87 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4598 BreakPoint at:004EAF87 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13772 VA:002D9F91 Base:2162688 Address: 004EAF91 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4599 BreakPoint at:004EAF91 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13773 VA:002D9F9C Base:2162688 Address: 004EAF9C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4600 BreakPoint at:004EAF9C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13774 VA:002D9FA7 Base:2162688 Address: 004EAFA7 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4601 BreakPoint at:004EAFA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13775 VA:002D9FB2 Base:2162688 Address: 004EAFB2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4603 BreakPoint at:004EAFB2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13776 VA:002D9FB6 Base:2162688 Address: 004EAFB6 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4474 BreakPoint at:004EAFB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13777 VA:002D9FC0 Base:2162688 Address: 004EAFC0 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4605 BreakPoint at:004EAFC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13778 VA:002D9FCD Base:2162688 Address: 004EAFCD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4606 BreakPoint at:004EAFCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13779 VA:002D9FDA Base:2162688 Address: 004EAFDA +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4607 BreakPoint at:004EAFDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13780 VA:002D9FE7 Base:2162688 Address: 004EAFE7 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4610 BreakPoint at:004EAFE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13781 VA:002D9FEC Base:2162688 Address: 004EAFEC +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4616 BreakPoint at:004EAFEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13782 VA:002D9FFB Base:2162688 Address: 004EAFFB +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4617 BreakPoint at:004EAFFB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13783 VA:002DA022 Base:2162688 Address: 004EB022 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4619 BreakPoint at:004EB022 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13784 VA:002DA02B Base:2162688 Address: 004EB02B +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4620 BreakPoint at:004EB02B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13785 VA:002DA038 Base:2162688 Address: 004EB038 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4621 BreakPoint at:004EB038 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13786 VA:002DA046 Base:2162688 Address: 004EB046 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4622 BreakPoint at:004EB046 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13787 VA:002DA04B Base:2162688 Address: 004EB04B +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4624 BreakPoint at:004EB04B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13788 VA:002DA056 Base:2162688 Address: 004EB056 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4625 BreakPoint at:004EB056 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13789 VA:002DA076 Base:2162688 Address: 004EB076 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4626 BreakPoint at:004EB076 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13790 VA:002DA0D0 Base:2162688 Address: 004EB0D0 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4630 BreakPoint at:004EB0D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13791 VA:002DA0DC Base:2162688 Address: 004EB0DC +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4631 BreakPoint at:004EB0DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13792 VA:002DA0FC Base:2162688 Address: 004EB0FC +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4632 BreakPoint at:004EB0FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13793 VA:002DA156 Base:2162688 Address: 004EB156 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4636 BreakPoint at:004EB156 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13794 VA:002DA162 Base:2162688 Address: 004EB162 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4637 BreakPoint at:004EB162 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13795 VA:002DA182 Base:2162688 Address: 004EB182 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4638 BreakPoint at:004EB182 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13796 VA:002DA1DC Base:2162688 Address: 004EB1DC +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4642 BreakPoint at:004EB1DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13797 VA:002DA1E8 Base:2162688 Address: 004EB1E8 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4643 BreakPoint at:004EB1E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13798 VA:002DA208 Base:2162688 Address: 004EB208 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4644 BreakPoint at:004EB208 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13799 VA:002DA262 Base:2162688 Address: 004EB262 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4648 BreakPoint at:004EB262 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13800 VA:002DA26C Base:2162688 Address: 004EB26C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4650 BreakPoint at:004EB26C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13801 VA:002DA278 Base:2162688 Address: 004EB278 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4651 BreakPoint at:004EB278 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13802 VA:002DA298 Base:2162688 Address: 004EB298 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4652 BreakPoint at:004EB298 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13803 VA:002DA2F2 Base:2162688 Address: 004EB2F2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4656 BreakPoint at:004EB2F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13804 VA:002DA2FE Base:2162688 Address: 004EB2FE +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4657 BreakPoint at:004EB2FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13805 VA:002DA31E Base:2162688 Address: 004EB31E +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4658 BreakPoint at:004EB31E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13806 VA:002DA378 Base:2162688 Address: 004EB378 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4662 BreakPoint at:004EB378 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13807 VA:002DA387 Base:2162688 Address: 004EB387 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4664 BreakPoint at:004EB387 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13808 VA:002DA390 Base:2162688 Address: 004EB390 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4665 BreakPoint at:004EB390 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13809 VA:002DA393 Base:2162688 Address: 004EB393 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4622 BreakPoint at:004EB393 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13810 VA:002DA39D Base:2162688 Address: 004EB39D +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4666 BreakPoint at:004EB39D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13811 VA:002DA3AA Base:2162688 Address: 004EB3AA +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4667 BreakPoint at:004EB3AA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13812 VA:002DA3B8 Base:2162688 Address: 004EB3B8 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4668 BreakPoint at:004EB3B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13813 VA:002DA46C Base:2162688 Address: 004EB46C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4675 BreakPoint at:004EB46C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13814 VA:002DA47B Base:2162688 Address: 004EB47B +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4676 BreakPoint at:004EB47B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13815 VA:002DA4A2 Base:2162688 Address: 004EB4A2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4677 BreakPoint at:004EB4A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13816 VA:002DA4A6 Base:2162688 Address: 004EB4A6 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4679 BreakPoint at:004EB4A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13817 VA:002DA4B2 Base:2162688 Address: 004EB4B2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4680 BreakPoint at:004EB4B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13818 VA:002DA4BF Base:2162688 Address: 004EB4BF +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4681 BreakPoint at:004EB4BF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13819 VA:002DA4CD Base:2162688 Address: 004EB4CD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4682 BreakPoint at:004EB4CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13820 VA:002DA4D4 Base:2162688 Address: 004EB4D4 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4684 BreakPoint at:004EB4D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13821 VA:002DA4DD Base:2162688 Address: 004EB4DD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4685 BreakPoint at:004EB4DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13822 VA:002DA4E3 Base:2162688 Address: 004EB4E3 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4687 BreakPoint at:004EB4E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13823 VA:002DA4E7 Base:2162688 Address: 004EB4E7 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4689 BreakPoint at:004EB4E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13824 VA:002DA4F1 Base:2162688 Address: 004EB4F1 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4691 BreakPoint at:004EB4F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13825 VA:002DA4FB Base:2162688 Address: 004EB4FB +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4693 BreakPoint at:004EB4FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13826 VA:002DA4FE Base:2162688 Address: 004EB4FE +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4694 BreakPoint at:004EB4FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13827 VA:002DA50A Base:2162688 Address: 004EB50A +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4695 BreakPoint at:004EB50A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13828 VA:002DA52A Base:2162688 Address: 004EB52A +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4696 BreakPoint at:004EB52A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13829 VA:002DA584 Base:2162688 Address: 004EB584 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4700 BreakPoint at:004EB584 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13830 VA:002DA590 Base:2162688 Address: 004EB590 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4701 BreakPoint at:004EB590 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13831 VA:002DA5B0 Base:2162688 Address: 004EB5B0 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4702 BreakPoint at:004EB5B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13832 VA:002DA60C Base:2162688 Address: 004EB60C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4708 BreakPoint at:004EB60C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13833 VA:002DA610 Base:2162688 Address: 004EB610 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4710 BreakPoint at:004EB610 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13834 VA:002DA61C Base:2162688 Address: 004EB61C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4711 BreakPoint at:004EB61C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13835 VA:002DA63C Base:2162688 Address: 004EB63C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4712 BreakPoint at:004EB63C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13836 VA:002DA696 Base:2162688 Address: 004EB696 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4716 BreakPoint at:004EB696 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13837 VA:002DA6A2 Base:2162688 Address: 004EB6A2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4717 BreakPoint at:004EB6A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13838 VA:002DA6C2 Base:2162688 Address: 004EB6C2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4718 BreakPoint at:004EB6C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13839 VA:002DA71C Base:2162688 Address: 004EB71C +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4722 BreakPoint at:004EB71C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13840 VA:002DA728 Base:2162688 Address: 004EB728 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4723 BreakPoint at:004EB728 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13841 VA:002DA748 Base:2162688 Address: 004EB748 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4724 BreakPoint at:004EB748 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13842 VA:002DA7A2 Base:2162688 Address: 004EB7A2 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4728 BreakPoint at:004EB7A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13843 VA:002DA7AD Base:2162688 Address: 004EB7AD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4729 BreakPoint at:004EB7AD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13844 VA:002DA7CD Base:2162688 Address: 004EB7CD +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4730 BreakPoint at:004EB7CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13845 VA:002DA827 Base:2162688 Address: 004EB827 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4734 BreakPoint at:004EB827 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13846 VA:002DA82B Base:2162688 Address: 004EB82B +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4689 BreakPoint at:004EB82B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13847 VA:002DA835 Base:2162688 Address: 004EB835 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4737 BreakPoint at:004EB835 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13848 VA:002DA842 Base:2162688 Address: 004EB842 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4738 BreakPoint at:004EB842 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13849 VA:002DA850 Base:2162688 Address: 004EB850 +Adding breakpoint for DECCiphers.TCipher_Cast128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4739 BreakPoint at:004EB850 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13850 VA:002DA904 Base:2162688 Address: 004EB904 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Gost +TBreakPoint.Activate: +Activate DECCiphers.pas line 4744 BreakPoint at:004EB904 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13851 VA:002DA910 Base:2162688 Address: 004EB910 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4745 BreakPoint at:004EB910 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13852 VA:002DA919 Base:2162688 Address: 004EB919 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4746 BreakPoint at:004EB919 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13853 VA:002DA923 Base:2162688 Address: 004EB923 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4747 BreakPoint at:004EB923 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13854 VA:002DA92D Base:2162688 Address: 004EB92D +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4748 BreakPoint at:004EB92D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13855 VA:002DA937 Base:2162688 Address: 004EB937 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4749 BreakPoint at:004EB937 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13856 VA:002DA93E Base:2162688 Address: 004EB93E +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4750 BreakPoint at:004EB93E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13857 VA:002DA947 Base:2162688 Address: 004EB947 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4751 BreakPoint at:004EB947 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13858 VA:002DA950 Base:2162688 Address: 004EB950 +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4752 BreakPoint at:004EB950 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13859 VA:002DA95C Base:2162688 Address: 004EB95C +Adding breakpoint for DECCiphers.TCipher_Gost.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4753 BreakPoint at:004EB95C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13860 VA:002DA964 Base:2162688 Address: 004EB964 +Adding breakpoint for DECCiphers.TCipher_Gost.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4756 BreakPoint at:004EB964 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13861 VA:002DA973 Base:2162688 Address: 004EB973 +Adding breakpoint for DECCiphers.TCipher_Gost.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4757 BreakPoint at:004EB973 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13862 VA:002DA984 Base:2162688 Address: 004EB984 +Adding breakpoint for DECCiphers.TCipher_Gost.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4760 BreakPoint at:004EB984 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13863 VA:002DA988 Base:2162688 Address: 004EB988 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4766 BreakPoint at:004EB988 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13864 VA:002DA997 Base:2162688 Address: 004EB997 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4767 BreakPoint at:004EB997 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13865 VA:002DA9BE Base:2162688 Address: 004EB9BE +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4769 BreakPoint at:004EB9BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13866 VA:002DA9C7 Base:2162688 Address: 004EB9C7 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4770 BreakPoint at:004EB9C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13867 VA:002DA9CF Base:2162688 Address: 004EB9CF +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4771 BreakPoint at:004EB9CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13868 VA:002DA9D8 Base:2162688 Address: 004EB9D8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4773 BreakPoint at:004EB9D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13869 VA:002DA9DD Base:2162688 Address: 004EB9DD +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4775 BreakPoint at:004EB9DD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13870 VA:002DA9E3 Base:2162688 Address: 004EB9E3 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4776 BreakPoint at:004EB9E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13871 VA:002DA9EC Base:2162688 Address: 004EB9EC +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4777 BreakPoint at:004EB9EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13872 VA:002DA9F7 Base:2162688 Address: 004EB9F7 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4778 BreakPoint at:004EB9F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13873 VA:002DAA53 Base:2162688 Address: 004EBA53 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4782 BreakPoint at:004EBA53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13874 VA:002DAA5F Base:2162688 Address: 004EBA5F +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4783 BreakPoint at:004EBA5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13875 VA:002DAABB Base:2162688 Address: 004EBABB +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4787 BreakPoint at:004EBABB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13876 VA:002DAAC4 Base:2162688 Address: 004EBAC4 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4788 BreakPoint at:004EBAC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13877 VA:002DAAC7 Base:2162688 Address: 004EBAC7 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4773 BreakPoint at:004EBAC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13878 VA:002DAAD1 Base:2162688 Address: 004EBAD1 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4790 BreakPoint at:004EBAD1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13879 VA:002DAADD Base:2162688 Address: 004EBADD +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4792 BreakPoint at:004EBADD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13880 VA:002DAAE2 Base:2162688 Address: 004EBAE2 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4794 BreakPoint at:004EBAE2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13881 VA:002DAAEE Base:2162688 Address: 004EBAEE +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4795 BreakPoint at:004EBAEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13882 VA:002DAB4A Base:2162688 Address: 004EBB4A +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4799 BreakPoint at:004EBB4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13883 VA:002DAB55 Base:2162688 Address: 004EBB55 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4800 BreakPoint at:004EBB55 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13884 VA:002DABB1 Base:2162688 Address: 004EBBB1 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4804 BreakPoint at:004EBBB1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13885 VA:002DABB5 Base:2162688 Address: 004EBBB5 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4805 BreakPoint at:004EBBB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13886 VA:002DABB8 Base:2162688 Address: 004EBBB8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4792 BreakPoint at:004EBBB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13887 VA:002DABC2 Base:2162688 Address: 004EBBC2 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4807 BreakPoint at:004EBBC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13888 VA:002DABCA Base:2162688 Address: 004EBBCA +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4808 BreakPoint at:004EBBCA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13889 VA:002DABD3 Base:2162688 Address: 004EBBD3 +Adding breakpoint for DECCiphers.TCipher_Gost.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4809 BreakPoint at:004EBBD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13890 VA:002DAC88 Base:2162688 Address: 004EBC88 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4815 BreakPoint at:004EBC88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13891 VA:002DAC97 Base:2162688 Address: 004EBC97 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4816 BreakPoint at:004EBC97 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13892 VA:002DACBE Base:2162688 Address: 004EBCBE +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4818 BreakPoint at:004EBCBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13893 VA:002DACC6 Base:2162688 Address: 004EBCC6 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4819 BreakPoint at:004EBCC6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13894 VA:002DACCF Base:2162688 Address: 004EBCCF +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4820 BreakPoint at:004EBCCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13895 VA:002DACD8 Base:2162688 Address: 004EBCD8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4822 BreakPoint at:004EBCD8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13896 VA:002DACDD Base:2162688 Address: 004EBCDD +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4824 BreakPoint at:004EBCDD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13897 VA:002DACE8 Base:2162688 Address: 004EBCE8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4825 BreakPoint at:004EBCE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13898 VA:002DAD44 Base:2162688 Address: 004EBD44 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4829 BreakPoint at:004EBD44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13899 VA:002DAD50 Base:2162688 Address: 004EBD50 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4830 BreakPoint at:004EBD50 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13900 VA:002DADAC Base:2162688 Address: 004EBDAC +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4834 BreakPoint at:004EBDAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13901 VA:002DADB5 Base:2162688 Address: 004EBDB5 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4835 BreakPoint at:004EBDB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13902 VA:002DADB8 Base:2162688 Address: 004EBDB8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4822 BreakPoint at:004EBDB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13903 VA:002DADC2 Base:2162688 Address: 004EBDC2 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4837 BreakPoint at:004EBDC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13904 VA:002DADC7 Base:2162688 Address: 004EBDC7 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4839 BreakPoint at:004EBDC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13905 VA:002DADCD Base:2162688 Address: 004EBDCD +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4840 BreakPoint at:004EBDCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13906 VA:002DADD9 Base:2162688 Address: 004EBDD9 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4841 BreakPoint at:004EBDD9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13907 VA:002DADE5 Base:2162688 Address: 004EBDE5 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4842 BreakPoint at:004EBDE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13908 VA:002DAE41 Base:2162688 Address: 004EBE41 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4846 BreakPoint at:004EBE41 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13909 VA:002DAE4C Base:2162688 Address: 004EBE4C +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4847 BreakPoint at:004EBE4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13910 VA:002DAEA8 Base:2162688 Address: 004EBEA8 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4851 BreakPoint at:004EBEA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13911 VA:002DAEAC Base:2162688 Address: 004EBEAC +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4852 BreakPoint at:004EBEAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13912 VA:002DAEAF Base:2162688 Address: 004EBEAF +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4837 BreakPoint at:004EBEAF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13913 VA:002DAEB9 Base:2162688 Address: 004EBEB9 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4854 BreakPoint at:004EBEB9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13914 VA:002DAEC1 Base:2162688 Address: 004EBEC1 +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4855 BreakPoint at:004EBEC1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13915 VA:002DAECA Base:2162688 Address: 004EBECA +Adding breakpoint for DECCiphers.TCipher_Gost.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4856 BreakPoint at:004EBECA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13916 VA:002DAF7C Base:2162688 Address: 004EBF7C +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Misty +TBreakPoint.Activate: +Activate DECCiphers.pas line 4861 BreakPoint at:004EBF7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13917 VA:002DAF88 Base:2162688 Address: 004EBF88 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4862 BreakPoint at:004EBF88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13918 VA:002DAF91 Base:2162688 Address: 004EBF91 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4863 BreakPoint at:004EBF91 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13919 VA:002DAF9B Base:2162688 Address: 004EBF9B +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4864 BreakPoint at:004EBF9B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13920 VA:002DAFA5 Base:2162688 Address: 004EBFA5 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4865 BreakPoint at:004EBFA5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13921 VA:002DAFAF Base:2162688 Address: 004EBFAF +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4866 BreakPoint at:004EBFAF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13922 VA:002DAFB6 Base:2162688 Address: 004EBFB6 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4867 BreakPoint at:004EBFB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13923 VA:002DAFBF Base:2162688 Address: 004EBFBF +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4868 BreakPoint at:004EBFBF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13924 VA:002DAFC8 Base:2162688 Address: 004EBFC8 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4869 BreakPoint at:004EBFC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13925 VA:002DAFD4 Base:2162688 Address: 004EBFD4 +Adding breakpoint for DECCiphers.TCipher_Misty.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4870 BreakPoint at:004EBFD4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13926 VA:002DAFDC Base:2162688 Address: 004EBFDC +Adding breakpoint for DECCiphers.Misty_I in DECCiphers.pas +Creating class info for DECCiphers class Misty_I +TBreakPoint.Activate: +Activate DECCiphers.pas line 4873 BreakPoint at:004EBFDC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13927 VA:002DAFE8 Base:2162688 Address: 004EBFE8 +Adding breakpoint for DECCiphers.Misty_I in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4874 BreakPoint at:004EBFE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13928 VA:002DB008 Base:2162688 Address: 004EC008 +Adding breakpoint for DECCiphers.Misty_I in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4875 BreakPoint at:004EC008 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13929 VA:002DB02E Base:2162688 Address: 004EC02E +Adding breakpoint for DECCiphers.Misty_I in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4876 BreakPoint at:004EC02E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13930 VA:002DB051 Base:2162688 Address: 004EC051 +Adding breakpoint for DECCiphers.Misty_I in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4877 BreakPoint at:004EC051 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13931 VA:002DB058 Base:2162688 Address: 004EC058 +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +Creating class info for DECCiphers class Misty_O +TBreakPoint.Activate: +Activate DECCiphers.pas line 4880 BreakPoint at:004EC058 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13932 VA:002DB067 Base:2162688 Address: 004EC067 +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4881 BreakPoint at:004EC067 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13933 VA:002DB09B Base:2162688 Address: 004EC09B +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4882 BreakPoint at:004EC09B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13934 VA:002DB0CE Base:2162688 Address: 004EC0CE +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4883 BreakPoint at:004EC0CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13935 VA:002DB0FB Base:2162688 Address: 004EC0FB +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4884 BreakPoint at:004EC0FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13936 VA:002DB113 Base:2162688 Address: 004EC113 +Adding breakpoint for DECCiphers.Misty_O in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4885 BreakPoint at:004EC113 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13937 VA:002DB11C Base:2162688 Address: 004EC11C +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +Creating class info for DECCiphers class Misty_E +TBreakPoint.Activate: +Activate DECCiphers.pas line 4888 BreakPoint at:004EC11C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13938 VA:002DB12B Base:2162688 Address: 004EC12B +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4889 BreakPoint at:004EC12B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13939 VA:002DB134 Base:2162688 Address: 004EC134 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4890 BreakPoint at:004EC134 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13940 VA:002DB13B Base:2162688 Address: 004EC13B +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4892 BreakPoint at:004EC13B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13941 VA:002DB141 Base:2162688 Address: 004EC141 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4894 BreakPoint at:004EC141 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13942 VA:002DB144 Base:2162688 Address: 004EC144 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4895 BreakPoint at:004EC144 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13943 VA:002DB15A Base:2162688 Address: 004EC15A +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4896 BreakPoint at:004EC15A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13944 VA:002DB171 Base:2162688 Address: 004EC171 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4900 BreakPoint at:004EC171 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13945 VA:002DB174 Base:2162688 Address: 004EC174 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4901 BreakPoint at:004EC174 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13946 VA:002DB183 Base:2162688 Address: 004EC183 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4902 BreakPoint at:004EC183 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13947 VA:002DB199 Base:2162688 Address: 004EC199 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4905 BreakPoint at:004EC199 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13948 VA:002DB1A5 Base:2162688 Address: 004EC1A5 +Adding breakpoint for DECCiphers.Misty_E in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4906 BreakPoint at:004EC1A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13949 VA:002DB1AC Base:2162688 Address: 004EC1AC +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +Creating class info for DECCiphers class Misty_D +TBreakPoint.Activate: +Activate DECCiphers.pas line 4909 BreakPoint at:004EC1AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13950 VA:002DB1BB Base:2162688 Address: 004EC1BB +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4910 BreakPoint at:004EC1BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13951 VA:002DB1C4 Base:2162688 Address: 004EC1C4 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4911 BreakPoint at:004EC1C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13952 VA:002DB1CB Base:2162688 Address: 004EC1CB +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4913 BreakPoint at:004EC1CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13953 VA:002DB1D1 Base:2162688 Address: 004EC1D1 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4915 BreakPoint at:004EC1D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13954 VA:002DB1D4 Base:2162688 Address: 004EC1D4 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4916 BreakPoint at:004EC1D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13955 VA:002DB1E9 Base:2162688 Address: 004EC1E9 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4917 BreakPoint at:004EC1E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13956 VA:002DB201 Base:2162688 Address: 004EC201 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4921 BreakPoint at:004EC201 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13957 VA:002DB204 Base:2162688 Address: 004EC204 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4922 BreakPoint at:004EC204 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13958 VA:002DB21A Base:2162688 Address: 004EC21A +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4923 BreakPoint at:004EC21A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13959 VA:002DB229 Base:2162688 Address: 004EC229 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4926 BreakPoint at:004EC229 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13960 VA:002DB235 Base:2162688 Address: 004EC235 +Adding breakpoint for DECCiphers.Misty_D in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4927 BreakPoint at:004EC235 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13961 VA:002DB23C Base:2162688 Address: 004EC23C +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4934 BreakPoint at:004EC23C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13962 VA:002DB24B Base:2162688 Address: 004EC24B +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4935 BreakPoint at:004EC24B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13963 VA:002DB25A Base:2162688 Address: 004EC25A +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4936 BreakPoint at:004EC25A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13964 VA:002DB268 Base:2162688 Address: 004EC268 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4937 BreakPoint at:004EC268 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13965 VA:002DB271 Base:2162688 Address: 004EC271 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4939 BreakPoint at:004EC271 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13966 VA:002DB276 Base:2162688 Address: 004EC276 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4940 BreakPoint at:004EC276 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13967 VA:002DB29B Base:2162688 Address: 004EC29B +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4939 BreakPoint at:004EC29B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13968 VA:002DB2A1 Base:2162688 Address: 004EC2A1 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4942 BreakPoint at:004EC2A1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13969 VA:002DB2A6 Base:2162688 Address: 004EC2A6 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4944 BreakPoint at:004EC2A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13970 VA:002DB2CB Base:2162688 Address: 004EC2CB +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4945 BreakPoint at:004EC2CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13971 VA:002DB2E4 Base:2162688 Address: 004EC2E4 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4946 BreakPoint at:004EC2E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13972 VA:002DB2FB Base:2162688 Address: 004EC2FB +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4947 BreakPoint at:004EC2FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13973 VA:002DB2FE Base:2162688 Address: 004EC2FE +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4942 BreakPoint at:004EC2FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13974 VA:002DB304 Base:2162688 Address: 004EC304 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4949 BreakPoint at:004EC304 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13975 VA:002DB311 Base:2162688 Address: 004EC311 +Adding breakpoint for DECCiphers.TCipher_Misty.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4952 BreakPoint at:004EC311 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13976 VA:002DB318 Base:2162688 Address: 004EC318 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4957 BreakPoint at:004EC318 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13977 VA:002DB328 Base:2162688 Address: 004EC328 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4958 BreakPoint at:004EC328 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13978 VA:002DB34F Base:2162688 Address: 004EC34F +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4960 BreakPoint at:004EC34F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13979 VA:002DB357 Base:2162688 Address: 004EC357 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4961 BreakPoint at:004EC357 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13980 VA:002DB360 Base:2162688 Address: 004EC360 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4962 BreakPoint at:004EC360 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13981 VA:002DB373 Base:2162688 Address: 004EC373 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4963 BreakPoint at:004EC373 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13982 VA:002DB39D Base:2162688 Address: 004EC39D +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4964 BreakPoint at:004EC39D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13983 VA:002DB3B3 Base:2162688 Address: 004EC3B3 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4965 BreakPoint at:004EC3B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13984 VA:002DB3C9 Base:2162688 Address: 004EC3C9 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4966 BreakPoint at:004EC3C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13985 VA:002DB3F6 Base:2162688 Address: 004EC3F6 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4967 BreakPoint at:004EC3F6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13986 VA:002DB40C Base:2162688 Address: 004EC40C +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4968 BreakPoint at:004EC40C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13987 VA:002DB422 Base:2162688 Address: 004EC422 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4969 BreakPoint at:004EC422 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13988 VA:002DB44F Base:2162688 Address: 004EC44F +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4970 BreakPoint at:004EC44F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13989 VA:002DB465 Base:2162688 Address: 004EC465 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4971 BreakPoint at:004EC465 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13990 VA:002DB47B Base:2162688 Address: 004EC47B +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4972 BreakPoint at:004EC47B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13991 VA:002DB4A8 Base:2162688 Address: 004EC4A8 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4973 BreakPoint at:004EC4A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13992 VA:002DB4BE Base:2162688 Address: 004EC4BE +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4975 BreakPoint at:004EC4BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13993 VA:002DB4D6 Base:2162688 Address: 004EC4D6 +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4976 BreakPoint at:004EC4D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13994 VA:002DB4EF Base:2162688 Address: 004EC4EF +Adding breakpoint for DECCiphers.TCipher_Misty.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4977 BreakPoint at:004EC4EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13995 VA:002DB5A4 Base:2162688 Address: 004EC5A4 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4982 BreakPoint at:004EC5A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13996 VA:002DB5B3 Base:2162688 Address: 004EC5B3 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4983 BreakPoint at:004EC5B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13997 VA:002DB5DA Base:2162688 Address: 004EC5DA +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4985 BreakPoint at:004EC5DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13998 VA:002DB5F2 Base:2162688 Address: 004EC5F2 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4986 BreakPoint at:004EC5F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:13999 VA:002DB60B Base:2162688 Address: 004EC60B +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4987 BreakPoint at:004EC60B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14000 VA:002DB621 Base:2162688 Address: 004EC621 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4988 BreakPoint at:004EC621 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14001 VA:002DB64A Base:2162688 Address: 004EC64A +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4989 BreakPoint at:004EC64A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14002 VA:002DB660 Base:2162688 Address: 004EC660 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4990 BreakPoint at:004EC660 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14003 VA:002DB676 Base:2162688 Address: 004EC676 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4991 BreakPoint at:004EC676 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14004 VA:002DB69F Base:2162688 Address: 004EC69F +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4992 BreakPoint at:004EC69F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14005 VA:002DB6B5 Base:2162688 Address: 004EC6B5 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4993 BreakPoint at:004EC6B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14006 VA:002DB6CB Base:2162688 Address: 004EC6CB +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4994 BreakPoint at:004EC6CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14007 VA:002DB6F4 Base:2162688 Address: 004EC6F4 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4995 BreakPoint at:004EC6F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14008 VA:002DB70A Base:2162688 Address: 004EC70A +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4996 BreakPoint at:004EC70A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14009 VA:002DB720 Base:2162688 Address: 004EC720 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4998 BreakPoint at:004EC720 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14010 VA:002DB735 Base:2162688 Address: 004EC735 +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 4999 BreakPoint at:004EC735 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14011 VA:002DB75E Base:2162688 Address: 004EC75E +Adding breakpoint for DECCiphers.TCipher_Misty.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5000 BreakPoint at:004EC75E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14012 VA:002DB810 Base:2162688 Address: 004EC810 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +Creating class info for DECCiphers class NewDES_Func +TBreakPoint.Activate: +Activate DECCiphers.pas line 5008 BreakPoint at:004EC810 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14013 VA:002DB81F Base:2162688 Address: 004EC81F +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5009 BreakPoint at:004EC81F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14014 VA:002DB827 Base:2162688 Address: 004EC827 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5010 BreakPoint at:004EC827 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14015 VA:002DB830 Base:2162688 Address: 004EC830 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5011 BreakPoint at:004EC830 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14016 VA:002DB839 Base:2162688 Address: 004EC839 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5012 BreakPoint at:004EC839 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14017 VA:002DB842 Base:2162688 Address: 004EC842 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5013 BreakPoint at:004EC842 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14018 VA:002DB84B Base:2162688 Address: 004EC84B +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5014 BreakPoint at:004EC84B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14019 VA:002DB854 Base:2162688 Address: 004EC854 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5015 BreakPoint at:004EC854 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14020 VA:002DB85D Base:2162688 Address: 004EC85D +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5016 BreakPoint at:004EC85D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14021 VA:002DB866 Base:2162688 Address: 004EC866 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5018 BreakPoint at:004EC866 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14022 VA:002DB86B Base:2162688 Address: 004EC86B +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5020 BreakPoint at:004EC86B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14023 VA:002DB884 Base:2162688 Address: 004EC884 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5021 BreakPoint at:004EC884 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14024 VA:002DB89E Base:2162688 Address: 004EC89E +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5022 BreakPoint at:004EC89E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14025 VA:002DB8B8 Base:2162688 Address: 004EC8B8 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5023 BreakPoint at:004EC8B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14026 VA:002DB8D2 Base:2162688 Address: 004EC8D2 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5024 BreakPoint at:004EC8D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14027 VA:002DB8EC Base:2162688 Address: 004EC8EC +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5025 BreakPoint at:004EC8EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14028 VA:002DB903 Base:2162688 Address: 004EC903 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5026 BreakPoint at:004EC903 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14029 VA:002DB91D Base:2162688 Address: 004EC91D +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5027 BreakPoint at:004EC91D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14030 VA:002DB937 Base:2162688 Address: 004EC937 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5028 BreakPoint at:004EC937 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14031 VA:002DB940 Base:2162688 Address: 004EC940 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5029 BreakPoint at:004EC940 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14032 VA:002DB943 Base:2162688 Address: 004EC943 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5018 BreakPoint at:004EC943 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14033 VA:002DB94D Base:2162688 Address: 004EC94D +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5031 BreakPoint at:004EC94D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14034 VA:002DB966 Base:2162688 Address: 004EC966 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5032 BreakPoint at:004EC966 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14035 VA:002DB980 Base:2162688 Address: 004EC980 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5033 BreakPoint at:004EC980 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14036 VA:002DB99A Base:2162688 Address: 004EC99A +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5034 BreakPoint at:004EC99A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14037 VA:002DB9B4 Base:2162688 Address: 004EC9B4 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5036 BreakPoint at:004EC9B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14038 VA:002DB9BC Base:2162688 Address: 004EC9BC +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5037 BreakPoint at:004EC9BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14039 VA:002DB9C5 Base:2162688 Address: 004EC9C5 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5038 BreakPoint at:004EC9C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14040 VA:002DB9CE Base:2162688 Address: 004EC9CE +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5039 BreakPoint at:004EC9CE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14041 VA:002DB9D7 Base:2162688 Address: 004EC9D7 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5040 BreakPoint at:004EC9D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14042 VA:002DB9E0 Base:2162688 Address: 004EC9E0 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5041 BreakPoint at:004EC9E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14043 VA:002DB9E9 Base:2162688 Address: 004EC9E9 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5042 BreakPoint at:004EC9E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14044 VA:002DB9F2 Base:2162688 Address: 004EC9F2 +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5043 BreakPoint at:004EC9F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14045 VA:002DB9FB Base:2162688 Address: 004EC9FB +Adding breakpoint for DECCiphers.NewDES_Func in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5044 BreakPoint at:004EC9FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14046 VA:002DBA00 Base:2162688 Address: 004ECA00 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_NewDES +TBreakPoint.Activate: +Activate DECCiphers.pas line 5047 BreakPoint at:004ECA00 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14047 VA:002DBA0C Base:2162688 Address: 004ECA0C +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5048 BreakPoint at:004ECA0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14048 VA:002DBA15 Base:2162688 Address: 004ECA15 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5049 BreakPoint at:004ECA15 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14049 VA:002DBA1F Base:2162688 Address: 004ECA1F +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5050 BreakPoint at:004ECA1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14050 VA:002DBA29 Base:2162688 Address: 004ECA29 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5051 BreakPoint at:004ECA29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14051 VA:002DBA33 Base:2162688 Address: 004ECA33 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5052 BreakPoint at:004ECA33 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14052 VA:002DBA3A Base:2162688 Address: 004ECA3A +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5053 BreakPoint at:004ECA3A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14053 VA:002DBA43 Base:2162688 Address: 004ECA43 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5054 BreakPoint at:004ECA43 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14054 VA:002DBA4C Base:2162688 Address: 004ECA4C +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5055 BreakPoint at:004ECA4C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14055 VA:002DBA58 Base:2162688 Address: 004ECA58 +Adding breakpoint for DECCiphers.TCipher_NewDES.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5056 BreakPoint at:004ECA58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14056 VA:002DBA60 Base:2162688 Address: 004ECA60 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5063 BreakPoint at:004ECA60 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14057 VA:002DBA6F Base:2162688 Address: 004ECA6F +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5064 BreakPoint at:004ECA6F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14058 VA:002DBA7E Base:2162688 Address: 004ECA7E +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5065 BreakPoint at:004ECA7E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14059 VA:002DBA8C Base:2162688 Address: 004ECA8C +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5066 BreakPoint at:004ECA8C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14060 VA:002DBA95 Base:2162688 Address: 004ECA95 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5067 BreakPoint at:004ECA95 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14061 VA:002DBAA5 Base:2162688 Address: 004ECAA5 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5068 BreakPoint at:004ECAA5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14062 VA:002DBAB8 Base:2162688 Address: 004ECAB8 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5069 BreakPoint at:004ECAB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14063 VA:002DBACB Base:2162688 Address: 004ECACB +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5070 BreakPoint at:004ECACB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14064 VA:002DBADE Base:2162688 Address: 004ECADE +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5071 BreakPoint at:004ECADE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14065 VA:002DBAE7 Base:2162688 Address: 004ECAE7 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5072 BreakPoint at:004ECAE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14066 VA:002DBAEE Base:2162688 Address: 004ECAEE +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5075 BreakPoint at:004ECAEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14067 VA:002DBB09 Base:2162688 Address: 004ECB09 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5076 BreakPoint at:004ECB09 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14068 VA:002DBB25 Base:2162688 Address: 004ECB25 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5077 BreakPoint at:004ECB25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14069 VA:002DBB41 Base:2162688 Address: 004ECB41 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5078 BreakPoint at:004ECB41 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14070 VA:002DBB5F Base:2162688 Address: 004ECB5F +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5079 BreakPoint at:004ECB5F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14071 VA:002DBB65 Base:2162688 Address: 004ECB65 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5081 BreakPoint at:004ECB65 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14072 VA:002DBB75 Base:2162688 Address: 004ECB75 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5082 BreakPoint at:004ECB75 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14073 VA:002DBB85 Base:2162688 Address: 004ECB85 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5083 BreakPoint at:004ECB85 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14074 VA:002DBBA3 Base:2162688 Address: 004ECBA3 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5084 BreakPoint at:004ECBA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14075 VA:002DBBAC Base:2162688 Address: 004ECBAC +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5085 BreakPoint at:004ECBAC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14076 VA:002DBBB1 Base:2162688 Address: 004ECBB1 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5087 BreakPoint at:004ECBB1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14077 VA:002DBBBE Base:2162688 Address: 004ECBBE +Adding breakpoint for DECCiphers.TCipher_NewDES.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5090 BreakPoint at:004ECBBE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14078 VA:002DBBC4 Base:2162688 Address: 004ECBC4 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5093 BreakPoint at:004ECBC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14079 VA:002DBBD3 Base:2162688 Address: 004ECBD3 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5094 BreakPoint at:004ECBD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14080 VA:002DBBFA Base:2162688 Address: 004ECBFA +Adding breakpoint for DECCiphers.TCipher_NewDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5095 BreakPoint at:004ECBFA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14081 VA:002DBC0B Base:2162688 Address: 004ECC0B +Adding breakpoint for DECCiphers.TCipher_NewDES.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5096 BreakPoint at:004ECC0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14082 VA:002DBCC0 Base:2162688 Address: 004ECCC0 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5099 BreakPoint at:004ECCC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14083 VA:002DBCCF Base:2162688 Address: 004ECCCF +Adding breakpoint for DECCiphers.TCipher_NewDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5100 BreakPoint at:004ECCCF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14084 VA:002DBCF6 Base:2162688 Address: 004ECCF6 +Adding breakpoint for DECCiphers.TCipher_NewDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5101 BreakPoint at:004ECCF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14085 VA:002DBD0A Base:2162688 Address: 004ECD0A +Adding breakpoint for DECCiphers.TCipher_NewDES.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5102 BreakPoint at:004ECD0A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14086 VA:002DBDBC Base:2162688 Address: 004ECDBC +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Q128 +TBreakPoint.Activate: +Activate DECCiphers.pas line 5107 BreakPoint at:004ECDBC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14087 VA:002DBDC8 Base:2162688 Address: 004ECDC8 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5108 BreakPoint at:004ECDC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14088 VA:002DBDD1 Base:2162688 Address: 004ECDD1 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5109 BreakPoint at:004ECDD1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14089 VA:002DBDDB Base:2162688 Address: 004ECDDB +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5110 BreakPoint at:004ECDDB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14090 VA:002DBDE5 Base:2162688 Address: 004ECDE5 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5111 BreakPoint at:004ECDE5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14091 VA:002DBDEF Base:2162688 Address: 004ECDEF +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5112 BreakPoint at:004ECDEF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14092 VA:002DBDF6 Base:2162688 Address: 004ECDF6 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5113 BreakPoint at:004ECDF6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14093 VA:002DBDFF Base:2162688 Address: 004ECDFF +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5114 BreakPoint at:004ECDFF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14094 VA:002DBE08 Base:2162688 Address: 004ECE08 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5115 BreakPoint at:004ECE08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14095 VA:002DBE14 Base:2162688 Address: 004ECE14 +Adding breakpoint for DECCiphers.TCipher_Q128.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5116 BreakPoint at:004ECE14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14096 VA:002DBE1C Base:2162688 Address: 004ECE1C +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5123 BreakPoint at:004ECE1C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14097 VA:002DBE2B Base:2162688 Address: 004ECE2B +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5124 BreakPoint at:004ECE2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14098 VA:002DBE3A Base:2162688 Address: 004ECE3A +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5125 BreakPoint at:004ECE3A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14099 VA:002DBE48 Base:2162688 Address: 004ECE48 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5126 BreakPoint at:004ECE48 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14100 VA:002DBE51 Base:2162688 Address: 004ECE51 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5128 BreakPoint at:004ECE51 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14101 VA:002DBE58 Base:2162688 Address: 004ECE58 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5130 BreakPoint at:004ECE58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14102 VA:002DBE7D Base:2162688 Address: 004ECE7D +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5131 BreakPoint at:004ECE7D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14103 VA:002DBEA2 Base:2162688 Address: 004ECEA2 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5132 BreakPoint at:004ECEA2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14104 VA:002DBEC7 Base:2162688 Address: 004ECEC7 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5133 BreakPoint at:004ECEC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14105 VA:002DBEEC Base:2162688 Address: 004ECEEC +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5134 BreakPoint at:004ECEEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14106 VA:002DBEF2 Base:2162688 Address: 004ECEF2 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5136 BreakPoint at:004ECEF2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14107 VA:002DBEFA Base:2162688 Address: 004ECEFA +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5137 BreakPoint at:004ECEFA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14108 VA:002DBF03 Base:2162688 Address: 004ECF03 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5138 BreakPoint at:004ECF03 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14109 VA:002DBF0C Base:2162688 Address: 004ECF0C +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5139 BreakPoint at:004ECF0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14110 VA:002DBF15 Base:2162688 Address: 004ECF15 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5140 BreakPoint at:004ECF15 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14111 VA:002DBF1E Base:2162688 Address: 004ECF1E +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5142 BreakPoint at:004ECF1E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14112 VA:002DBF21 Base:2162688 Address: 004ECF21 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5128 BreakPoint at:004ECF21 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14113 VA:002DBF2B Base:2162688 Address: 004ECF2B +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5144 BreakPoint at:004ECF2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14114 VA:002DBF38 Base:2162688 Address: 004ECF38 +Adding breakpoint for DECCiphers.TCipher_Q128.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5147 BreakPoint at:004ECF38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14115 VA:002DBF3C Base:2162688 Address: 004ECF3C +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5204 BreakPoint at:004ECF3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14116 VA:002DBF4B Base:2162688 Address: 004ECF4B +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5205 BreakPoint at:004ECF4B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14117 VA:002DBF72 Base:2162688 Address: 004ECF72 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5207 BreakPoint at:004ECF72 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14118 VA:002DBF7B Base:2162688 Address: 004ECF7B +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5208 BreakPoint at:004ECF7B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14119 VA:002DBF83 Base:2162688 Address: 004ECF83 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5209 BreakPoint at:004ECF83 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14120 VA:002DBF8C Base:2162688 Address: 004ECF8C +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5210 BreakPoint at:004ECF8C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14121 VA:002DBF95 Base:2162688 Address: 004ECF95 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5211 BreakPoint at:004ECF95 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14122 VA:002DBF9E Base:2162688 Address: 004ECF9E +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5212 BreakPoint at:004ECF9E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14123 VA:002DBFA3 Base:2162688 Address: 004ECFA3 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5214 BreakPoint at:004ECFA3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14124 VA:002DBFCD Base:2162688 Address: 004ECFCD +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5215 BreakPoint at:004ECFCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14125 VA:002DBFF8 Base:2162688 Address: 004ECFF8 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5216 BreakPoint at:004ECFF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14126 VA:002DC023 Base:2162688 Address: 004ED023 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5217 BreakPoint at:004ED023 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14127 VA:002DC04E Base:2162688 Address: 004ED04E +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5218 BreakPoint at:004ED04E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14128 VA:002DC057 Base:2162688 Address: 004ED057 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5219 BreakPoint at:004ED057 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14129 VA:002DC05A Base:2162688 Address: 004ED05A +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5212 BreakPoint at:004ED05A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14130 VA:002DC064 Base:2162688 Address: 004ED064 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5220 BreakPoint at:004ED064 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14131 VA:002DC06C Base:2162688 Address: 004ED06C +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5221 BreakPoint at:004ED06C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14132 VA:002DC075 Base:2162688 Address: 004ED075 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5222 BreakPoint at:004ED075 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14133 VA:002DC07E Base:2162688 Address: 004ED07E +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5223 BreakPoint at:004ED07E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14134 VA:002DC087 Base:2162688 Address: 004ED087 +Adding breakpoint for DECCiphers.TCipher_Q128.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5224 BreakPoint at:004ED087 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14135 VA:002DC13C Base:2162688 Address: 004ED13C +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5283 BreakPoint at:004ED13C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14136 VA:002DC14B Base:2162688 Address: 004ED14B +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5284 BreakPoint at:004ED14B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14137 VA:002DC172 Base:2162688 Address: 004ED172 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5286 BreakPoint at:004ED172 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14138 VA:002DC180 Base:2162688 Address: 004ED180 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5287 BreakPoint at:004ED180 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14139 VA:002DC188 Base:2162688 Address: 004ED188 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5288 BreakPoint at:004ED188 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14140 VA:002DC191 Base:2162688 Address: 004ED191 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5289 BreakPoint at:004ED191 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14141 VA:002DC19A Base:2162688 Address: 004ED19A +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5290 BreakPoint at:004ED19A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14142 VA:002DC1A3 Base:2162688 Address: 004ED1A3 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5291 BreakPoint at:004ED1A3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14143 VA:002DC1A8 Base:2162688 Address: 004ED1A8 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5293 BreakPoint at:004ED1A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14144 VA:002DC1D3 Base:2162688 Address: 004ED1D3 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5294 BreakPoint at:004ED1D3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14145 VA:002DC1FE Base:2162688 Address: 004ED1FE +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5295 BreakPoint at:004ED1FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14146 VA:002DC229 Base:2162688 Address: 004ED229 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5296 BreakPoint at:004ED229 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14147 VA:002DC253 Base:2162688 Address: 004ED253 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5297 BreakPoint at:004ED253 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14148 VA:002DC257 Base:2162688 Address: 004ED257 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5298 BreakPoint at:004ED257 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14149 VA:002DC25A Base:2162688 Address: 004ED25A +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5291 BreakPoint at:004ED25A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14150 VA:002DC264 Base:2162688 Address: 004ED264 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5299 BreakPoint at:004ED264 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14151 VA:002DC26C Base:2162688 Address: 004ED26C +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5300 BreakPoint at:004ED26C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14152 VA:002DC275 Base:2162688 Address: 004ED275 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5301 BreakPoint at:004ED275 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14153 VA:002DC27E Base:2162688 Address: 004ED27E +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5302 BreakPoint at:004ED27E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14154 VA:002DC287 Base:2162688 Address: 004ED287 +Adding breakpoint for DECCiphers.TCipher_Q128.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5303 BreakPoint at:004ED287 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14155 VA:002DC33C Base:2162688 Address: 004ED33C +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_RC2 +TBreakPoint.Activate: +Activate DECCiphers.pas line 5309 BreakPoint at:004ED33C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14156 VA:002DC348 Base:2162688 Address: 004ED348 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5310 BreakPoint at:004ED348 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14157 VA:002DC351 Base:2162688 Address: 004ED351 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5311 BreakPoint at:004ED351 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14158 VA:002DC35B Base:2162688 Address: 004ED35B +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5312 BreakPoint at:004ED35B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14159 VA:002DC365 Base:2162688 Address: 004ED365 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5313 BreakPoint at:004ED365 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14160 VA:002DC36F Base:2162688 Address: 004ED36F +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5314 BreakPoint at:004ED36F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14161 VA:002DC376 Base:2162688 Address: 004ED376 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5315 BreakPoint at:004ED376 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14162 VA:002DC37F Base:2162688 Address: 004ED37F +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5316 BreakPoint at:004ED37F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14163 VA:002DC388 Base:2162688 Address: 004ED388 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5317 BreakPoint at:004ED388 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14164 VA:002DC394 Base:2162688 Address: 004ED394 +Adding breakpoint for DECCiphers.TCipher_RC2.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5318 BreakPoint at:004ED394 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14165 VA:002DC39C Base:2162688 Address: 004ED39C +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5327 BreakPoint at:004ED39C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14166 VA:002DC3AB Base:2162688 Address: 004ED3AB +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5328 BreakPoint at:004ED3AB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14167 VA:002DC3B5 Base:2162688 Address: 004ED3B5 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5330 BreakPoint at:004ED3B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14168 VA:002DC3BE Base:2162688 Address: 004ED3BE +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5331 BreakPoint at:004ED3BE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14169 VA:002DC3C7 Base:2162688 Address: 004ED3C7 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5332 BreakPoint at:004ED3C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14170 VA:002DC3CD Base:2162688 Address: 004ED3CD +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5333 BreakPoint at:004ED3CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14171 VA:002DC3D6 Base:2162688 Address: 004ED3D6 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5335 BreakPoint at:004ED3D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14172 VA:002DC3E8 Base:2162688 Address: 004ED3E8 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5336 BreakPoint at:004ED3E8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14173 VA:002DC3F4 Base:2162688 Address: 004ED3F4 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5337 BreakPoint at:004ED3F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14174 VA:002DC3FD Base:2162688 Address: 004ED3FD +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5338 BreakPoint at:004ED3FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14175 VA:002DC40B Base:2162688 Address: 004ED40B +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5339 BreakPoint at:004ED40B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14176 VA:002DC416 Base:2162688 Address: 004ED416 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5340 BreakPoint at:004ED416 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14177 VA:002DC44A Base:2162688 Address: 004ED44A +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5339 BreakPoint at:004ED44A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14178 VA:002DC453 Base:2162688 Address: 004ED453 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5341 BreakPoint at:004ED453 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14179 VA:002DC47C Base:2162688 Address: 004ED47C +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5342 BreakPoint at:004ED47C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14180 VA:002DC48C Base:2162688 Address: 004ED48C +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5343 BreakPoint at:004ED48C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14181 VA:002DC4BC Base:2162688 Address: 004ED4BC +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5342 BreakPoint at:004ED4BC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14182 VA:002DC4C2 Base:2162688 Address: 004ED4C2 +Adding breakpoint for DECCiphers.TCipher_RC2.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5346 BreakPoint at:004ED4C2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14183 VA:002DC4C8 Base:2162688 Address: 004ED4C8 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5353 BreakPoint at:004ED4C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14184 VA:002DC4D7 Base:2162688 Address: 004ED4D7 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5354 BreakPoint at:004ED4D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14185 VA:002DC4FE Base:2162688 Address: 004ED4FE +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5356 BreakPoint at:004ED4FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14186 VA:002DC507 Base:2162688 Address: 004ED507 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5357 BreakPoint at:004ED507 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14187 VA:002DC511 Base:2162688 Address: 004ED511 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5358 BreakPoint at:004ED511 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14188 VA:002DC51C Base:2162688 Address: 004ED51C +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5359 BreakPoint at:004ED51C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14189 VA:002DC527 Base:2162688 Address: 004ED527 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5360 BreakPoint at:004ED527 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14190 VA:002DC532 Base:2162688 Address: 004ED532 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5361 BreakPoint at:004ED532 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14191 VA:002DC537 Base:2162688 Address: 004ED537 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5363 BreakPoint at:004ED537 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14192 VA:002DC572 Base:2162688 Address: 004ED572 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5364 BreakPoint at:004ED572 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14193 VA:002DC5AF Base:2162688 Address: 004ED5AF +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5365 BreakPoint at:004ED5AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14194 VA:002DC5EC Base:2162688 Address: 004ED5EC +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5366 BreakPoint at:004ED5EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14195 VA:002DC629 Base:2162688 Address: 004ED629 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5367 BreakPoint at:004ED629 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14196 VA:002DC636 Base:2162688 Address: 004ED636 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5369 BreakPoint at:004ED636 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14197 VA:002DC64C Base:2162688 Address: 004ED64C +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5370 BreakPoint at:004ED64C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14198 VA:002DC662 Base:2162688 Address: 004ED662 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5371 BreakPoint at:004ED662 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14199 VA:002DC678 Base:2162688 Address: 004ED678 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5372 BreakPoint at:004ED678 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14200 VA:002DC68E Base:2162688 Address: 004ED68E +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5374 BreakPoint at:004ED68E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14201 VA:002DC691 Base:2162688 Address: 004ED691 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5361 BreakPoint at:004ED691 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14202 VA:002DC69B Base:2162688 Address: 004ED69B +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5375 BreakPoint at:004ED69B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14203 VA:002DC6A5 Base:2162688 Address: 004ED6A5 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5376 BreakPoint at:004ED6A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14204 VA:002DC6B0 Base:2162688 Address: 004ED6B0 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5377 BreakPoint at:004ED6B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14205 VA:002DC6BB Base:2162688 Address: 004ED6BB +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5378 BreakPoint at:004ED6BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14206 VA:002DC6C6 Base:2162688 Address: 004ED6C6 +Adding breakpoint for DECCiphers.TCipher_RC2.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5379 BreakPoint at:004ED6C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14207 VA:002DC778 Base:2162688 Address: 004ED778 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5386 BreakPoint at:004ED778 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14208 VA:002DC787 Base:2162688 Address: 004ED787 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5387 BreakPoint at:004ED787 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14209 VA:002DC7AE Base:2162688 Address: 004ED7AE +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5389 BreakPoint at:004ED7AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14210 VA:002DC7B7 Base:2162688 Address: 004ED7B7 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5390 BreakPoint at:004ED7B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14211 VA:002DC7C1 Base:2162688 Address: 004ED7C1 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5391 BreakPoint at:004ED7C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14212 VA:002DC7CC Base:2162688 Address: 004ED7CC +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5392 BreakPoint at:004ED7CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14213 VA:002DC7D7 Base:2162688 Address: 004ED7D7 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5393 BreakPoint at:004ED7D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14214 VA:002DC7E2 Base:2162688 Address: 004ED7E2 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5394 BreakPoint at:004ED7E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14215 VA:002DC7E9 Base:2162688 Address: 004ED7E9 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5396 BreakPoint at:004ED7E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14216 VA:002DC825 Base:2162688 Address: 004ED825 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5397 BreakPoint at:004ED825 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14217 VA:002DC861 Base:2162688 Address: 004ED861 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5398 BreakPoint at:004ED861 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14218 VA:002DC89D Base:2162688 Address: 004ED89D +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5399 BreakPoint at:004ED89D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14219 VA:002DC8D7 Base:2162688 Address: 004ED8D7 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5400 BreakPoint at:004ED8D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14220 VA:002DC8E4 Base:2162688 Address: 004ED8E4 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5402 BreakPoint at:004ED8E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14221 VA:002DC8FA Base:2162688 Address: 004ED8FA +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5403 BreakPoint at:004ED8FA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14222 VA:002DC910 Base:2162688 Address: 004ED910 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5404 BreakPoint at:004ED910 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14223 VA:002DC926 Base:2162688 Address: 004ED926 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5405 BreakPoint at:004ED926 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14224 VA:002DC93C Base:2162688 Address: 004ED93C +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5407 BreakPoint at:004ED93C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14225 VA:002DC93F Base:2162688 Address: 004ED93F +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5394 BreakPoint at:004ED93F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14226 VA:002DC949 Base:2162688 Address: 004ED949 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5408 BreakPoint at:004ED949 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14227 VA:002DC953 Base:2162688 Address: 004ED953 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5409 BreakPoint at:004ED953 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14228 VA:002DC95E Base:2162688 Address: 004ED95E +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5410 BreakPoint at:004ED95E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14229 VA:002DC969 Base:2162688 Address: 004ED969 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5411 BreakPoint at:004ED969 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14230 VA:002DC974 Base:2162688 Address: 004ED974 +Adding breakpoint for DECCiphers.TCipher_RC2.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5412 BreakPoint at:004ED974 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14231 VA:002DCA28 Base:2162688 Address: 004EDA28 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_RC5 +TBreakPoint.Activate: +Activate DECCiphers.pas line 5417 BreakPoint at:004EDA28 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14232 VA:002DCA34 Base:2162688 Address: 004EDA34 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5418 BreakPoint at:004EDA34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14233 VA:002DCA3D Base:2162688 Address: 004EDA3D +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5419 BreakPoint at:004EDA3D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14234 VA:002DCA47 Base:2162688 Address: 004EDA47 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5420 BreakPoint at:004EDA47 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14235 VA:002DCA51 Base:2162688 Address: 004EDA51 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5421 BreakPoint at:004EDA51 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14236 VA:002DCA5B Base:2162688 Address: 004EDA5B +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5422 BreakPoint at:004EDA5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14237 VA:002DCA62 Base:2162688 Address: 004EDA62 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5423 BreakPoint at:004EDA62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14238 VA:002DCA6B Base:2162688 Address: 004EDA6B +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5424 BreakPoint at:004EDA6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14239 VA:002DCA74 Base:2162688 Address: 004EDA74 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5425 BreakPoint at:004EDA74 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14240 VA:002DCA80 Base:2162688 Address: 004EDA80 +Adding breakpoint for DECCiphers.TCipher_RC5.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5426 BreakPoint at:004EDA80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14241 VA:002DCA88 Base:2162688 Address: 004EDA88 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5429 BreakPoint at:004EDA88 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14242 VA:002DCA94 Base:2162688 Address: 004EDA94 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5430 BreakPoint at:004EDA94 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14243 VA:002DCA9F Base:2162688 Address: 004EDA9F +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5432 BreakPoint at:004EDA9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14244 VA:002DCAAD Base:2162688 Address: 004EDAAD +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5433 BreakPoint at:004EDAAD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14245 VA:002DCAB5 Base:2162688 Address: 004EDAB5 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5435 BreakPoint at:004EDAB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14246 VA:002DCABB Base:2162688 Address: 004EDABB +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5436 BreakPoint at:004EDABB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14247 VA:002DCAC2 Base:2162688 Address: 004EDAC2 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5438 BreakPoint at:004EDAC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14248 VA:002DCAD6 Base:2162688 Address: 004EDAD6 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5439 BreakPoint at:004EDAD6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14249 VA:002DCAE8 Base:2162688 Address: 004EDAE8 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5441 BreakPoint at:004EDAE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14250 VA:002DCAF1 Base:2162688 Address: 004EDAF1 +Adding breakpoint for DECCiphers.TCipher_RC5.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5443 BreakPoint at:004EDAF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14251 VA:002DCAF8 Base:2162688 Address: 004EDAF8 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5451 BreakPoint at:004EDAF8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14252 VA:002DCB0A Base:2162688 Address: 004EDB0A +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5452 BreakPoint at:004EDB0A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14253 VA:002DCB13 Base:2162688 Address: 004EDB13 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5453 BreakPoint at:004EDB13 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14254 VA:002DCB1D Base:2162688 Address: 004EDB1D +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5454 BreakPoint at:004EDB1D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14255 VA:002DCB2F Base:2162688 Address: 004EDB2F +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5455 BreakPoint at:004EDB2F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14256 VA:002DCB40 Base:2162688 Address: 004EDB40 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5456 BreakPoint at:004EDB40 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14257 VA:002DCB49 Base:2162688 Address: 004EDB49 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5457 BreakPoint at:004EDB49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14258 VA:002DCB55 Base:2162688 Address: 004EDB55 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5458 BreakPoint at:004EDB55 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14259 VA:002DCB5B Base:2162688 Address: 004EDB5B +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5459 BreakPoint at:004EDB5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14260 VA:002DCB62 Base:2162688 Address: 004EDB62 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5460 BreakPoint at:004EDB62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14261 VA:002DCB69 Base:2162688 Address: 004EDB69 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5461 BreakPoint at:004EDB69 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14262 VA:002DCB81 Base:2162688 Address: 004EDB81 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5463 BreakPoint at:004EDB81 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14263 VA:002DCB8D Base:2162688 Address: 004EDB8D +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5464 BreakPoint at:004EDB8D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14264 VA:002DCB94 Base:2162688 Address: 004EDB94 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5465 BreakPoint at:004EDB94 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14265 VA:002DCB97 Base:2162688 Address: 004EDB97 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5461 BreakPoint at:004EDB97 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14266 VA:002DCB9C Base:2162688 Address: 004EDB9C +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5466 BreakPoint at:004EDB9C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14267 VA:002DCBAA Base:2162688 Address: 004EDBAA +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5467 BreakPoint at:004EDBAA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14268 VA:002DCBB5 Base:2162688 Address: 004EDBB5 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5469 BreakPoint at:004EDBB5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14269 VA:002DCBC4 Base:2162688 Address: 004EDBC4 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5470 BreakPoint at:004EDBC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14270 VA:002DCBC9 Base:2162688 Address: 004EDBC9 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5471 BreakPoint at:004EDBC9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14271 VA:002DCBCE Base:2162688 Address: 004EDBCE +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5472 BreakPoint at:004EDBCE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14272 VA:002DCBD3 Base:2162688 Address: 004EDBD3 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5473 BreakPoint at:004EDBD3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14273 VA:002DCBD8 Base:2162688 Address: 004EDBD8 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5474 BreakPoint at:004EDBD8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14274 VA:002DCBE7 Base:2162688 Address: 004EDBE7 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5476 BreakPoint at:004EDBE7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14275 VA:002DCBF9 Base:2162688 Address: 004EDBF9 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5477 BreakPoint at:004EDBF9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14276 VA:002DCC0A Base:2162688 Address: 004EDC0A +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5478 BreakPoint at:004EDC0A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14277 VA:002DCC16 Base:2162688 Address: 004EDC16 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5479 BreakPoint at:004EDC16 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14278 VA:002DCC1F Base:2162688 Address: 004EDC1F +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5480 BreakPoint at:004EDC1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14279 VA:002DCC2F Base:2162688 Address: 004EDC2F +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5481 BreakPoint at:004EDC2F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14280 VA:002DCC49 Base:2162688 Address: 004EDC49 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5482 BreakPoint at:004EDC49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14281 VA:002DCC56 Base:2162688 Address: 004EDC56 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5483 BreakPoint at:004EDC56 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14282 VA:002DCC6B Base:2162688 Address: 004EDC6B +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5484 BreakPoint at:004EDC6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14283 VA:002DCC76 Base:2162688 Address: 004EDC76 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5485 BreakPoint at:004EDC76 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14284 VA:002DCC79 Base:2162688 Address: 004EDC79 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5474 BreakPoint at:004EDC79 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14285 VA:002DCC83 Base:2162688 Address: 004EDC83 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5486 BreakPoint at:004EDC83 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14286 VA:002DCC93 Base:2162688 Address: 004EDC93 +Adding breakpoint for DECCiphers.TCipher_RC5.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5489 BreakPoint at:004EDC93 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14287 VA:002DCC98 Base:2162688 Address: 004EDC98 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5496 BreakPoint at:004EDC98 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14288 VA:002DCCA7 Base:2162688 Address: 004EDCA7 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5497 BreakPoint at:004EDCA7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14289 VA:002DCCCE Base:2162688 Address: 004EDCCE +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5499 BreakPoint at:004EDCCE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14290 VA:002DCCD7 Base:2162688 Address: 004EDCD7 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5500 BreakPoint at:004EDCD7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14291 VA:002DCCE4 Base:2162688 Address: 004EDCE4 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5501 BreakPoint at:004EDCE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14292 VA:002DCCF3 Base:2162688 Address: 004EDCF3 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5502 BreakPoint at:004EDCF3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14293 VA:002DCD07 Base:2162688 Address: 004EDD07 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5504 BreakPoint at:004EDD07 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14294 VA:002DCD32 Base:2162688 Address: 004EDD32 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5505 BreakPoint at:004EDD32 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14295 VA:002DCD5E Base:2162688 Address: 004EDD5E +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5506 BreakPoint at:004EDD5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14296 VA:002DCD61 Base:2162688 Address: 004EDD61 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5502 BreakPoint at:004EDD61 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14297 VA:002DCD66 Base:2162688 Address: 004EDD66 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5507 BreakPoint at:004EDD66 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14298 VA:002DCD6E Base:2162688 Address: 004EDD6E +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5508 BreakPoint at:004EDD6E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14299 VA:002DCD77 Base:2162688 Address: 004EDD77 +Adding breakpoint for DECCiphers.TCipher_RC5.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5509 BreakPoint at:004EDD77 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14300 VA:002DCE2C Base:2162688 Address: 004EDE2C +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5516 BreakPoint at:004EDE2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14301 VA:002DCE3B Base:2162688 Address: 004EDE3B +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5517 BreakPoint at:004EDE3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14302 VA:002DCE62 Base:2162688 Address: 004EDE62 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5519 BreakPoint at:004EDE62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14303 VA:002DCE6B Base:2162688 Address: 004EDE6B +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5520 BreakPoint at:004EDE6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14304 VA:002DCE73 Base:2162688 Address: 004EDE73 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5521 BreakPoint at:004EDE73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14305 VA:002DCE7C Base:2162688 Address: 004EDE7C +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5522 BreakPoint at:004EDE7C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14306 VA:002DCE8A Base:2162688 Address: 004EDE8A +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5524 BreakPoint at:004EDE8A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14307 VA:002DCEB6 Base:2162688 Address: 004EDEB6 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5525 BreakPoint at:004EDEB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14308 VA:002DCEE1 Base:2162688 Address: 004EDEE1 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5526 BreakPoint at:004EDEE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14309 VA:002DCEE4 Base:2162688 Address: 004EDEE4 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5522 BreakPoint at:004EDEE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14310 VA:002DCEEA Base:2162688 Address: 004EDEEA +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5527 BreakPoint at:004EDEEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14311 VA:002DCEF7 Base:2162688 Address: 004EDEF7 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5528 BreakPoint at:004EDEF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14312 VA:002DCF06 Base:2162688 Address: 004EDF06 +Adding breakpoint for DECCiphers.TCipher_RC5.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5529 BreakPoint at:004EDF06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14313 VA:002DCFB8 Base:2162688 Address: 004EDFB8 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_SAFER +TBreakPoint.Activate: +Activate DECCiphers.pas line 5534 BreakPoint at:004EDFB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14314 VA:002DCFC4 Base:2162688 Address: 004EDFC4 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5535 BreakPoint at:004EDFC4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14315 VA:002DCFCD Base:2162688 Address: 004EDFCD +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5536 BreakPoint at:004EDFCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14316 VA:002DCFD7 Base:2162688 Address: 004EDFD7 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5537 BreakPoint at:004EDFD7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14317 VA:002DCFE1 Base:2162688 Address: 004EDFE1 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5538 BreakPoint at:004EDFE1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14318 VA:002DCFEB Base:2162688 Address: 004EDFEB +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5539 BreakPoint at:004EDFEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14319 VA:002DCFF2 Base:2162688 Address: 004EDFF2 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5540 BreakPoint at:004EDFF2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14320 VA:002DCFFB Base:2162688 Address: 004EDFFB +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5541 BreakPoint at:004EDFFB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14321 VA:002DD004 Base:2162688 Address: 004EE004 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5542 BreakPoint at:004EE004 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14322 VA:002DD010 Base:2162688 Address: 004EE010 +Adding breakpoint for DECCiphers.TCipher_SAFER.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5543 BreakPoint at:004EE010 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14323 VA:002DD018 Base:2162688 Address: 004EE018 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5546 BreakPoint at:004EE018 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14324 VA:002DD024 Base:2162688 Address: 004EE024 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5547 BreakPoint at:004EE024 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14325 VA:002DD032 Base:2162688 Address: 004EE032 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5548 BreakPoint at:004EE032 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14326 VA:002DD03A Base:2162688 Address: 004EE03A +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5549 BreakPoint at:004EE03A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14327 VA:002DD046 Base:2162688 Address: 004EE046 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5550 BreakPoint at:004EE046 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14328 VA:002DD071 Base:2162688 Address: 004EE071 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5551 BreakPoint at:004EE071 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14329 VA:002DD07A Base:2162688 Address: 004EE07A +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5552 BreakPoint at:004EE07A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14330 VA:002DD083 Base:2162688 Address: 004EE083 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5553 BreakPoint at:004EE083 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14331 VA:002DD08C Base:2162688 Address: 004EE08C +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5555 BreakPoint at:004EE08C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14332 VA:002DD093 Base:2162688 Address: 004EE093 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5557 BreakPoint at:004EE093 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14333 VA:002DD09C Base:2162688 Address: 004EE09C +Adding breakpoint for DECCiphers.TCipher_SAFER.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5558 BreakPoint at:004EE09C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14334 VA:002DD0A0 Base:2162688 Address: 004EE0A0 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5561 BreakPoint at:004EE0A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14335 VA:002DD0AC Base:2162688 Address: 004EE0AC +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5562 BreakPoint at:004EE0AC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14336 VA:002DD0B7 Base:2162688 Address: 004EE0B7 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5564 BreakPoint at:004EE0B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14337 VA:002DD0C5 Base:2162688 Address: 004EE0C5 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5565 BreakPoint at:004EE0C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14338 VA:002DD0CD Base:2162688 Address: 004EE0CD +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5566 BreakPoint at:004EE0CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14339 VA:002DD0D6 Base:2162688 Address: 004EE0D6 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5567 BreakPoint at:004EE0D6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14340 VA:002DD0E0 Base:2162688 Address: 004EE0E0 +Adding breakpoint for DECCiphers.TCipher_SAFER.SetVersion in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5569 BreakPoint at:004EE0E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14341 VA:002DD0E4 Base:2162688 Address: 004EE0E4 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +Creating class info for DECCiphers class InitTab +TBreakPoint.Activate: +Activate DECCiphers.pas line 5578 BreakPoint at:004EE0E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14342 VA:002DD0EA Base:2162688 Address: 004EE0EA +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5579 BreakPoint at:004EE0EA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14343 VA:002DD0F6 Base:2162688 Address: 004EE0F6 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5580 BreakPoint at:004EE0F6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14344 VA:002DD101 Base:2162688 Address: 004EE101 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5581 BreakPoint at:004EE101 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14345 VA:002DD108 Base:2162688 Address: 004EE108 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5582 BreakPoint at:004EE108 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14346 VA:002DD10D Base:2162688 Address: 004EE10D +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5584 BreakPoint at:004EE10D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14347 VA:002DD11C Base:2162688 Address: 004EE11C +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5585 BreakPoint at:004EE11C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14348 VA:002DD12D Base:2162688 Address: 004EE12D +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5586 BreakPoint at:004EE12D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14349 VA:002DD141 Base:2162688 Address: 004EE141 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5587 BreakPoint at:004EE141 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14350 VA:002DD144 Base:2162688 Address: 004EE144 +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5582 BreakPoint at:004EE144 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14351 VA:002DD14D Base:2162688 Address: 004EE14D +Adding breakpoint for DECCiphers.InitTab in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5588 BreakPoint at:004EE14D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14352 VA:002DD154 Base:2162688 Address: 004EE154 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +Creating class info for DECCiphers class InitKey +TBreakPoint.Activate: +Activate DECCiphers.pas line 5597 BreakPoint at:004EE154 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14353 VA:002DD15A Base:2162688 Address: 004EE15A +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5598 BreakPoint at:004EE15A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14354 VA:002DD16B Base:2162688 Address: 004EE16B +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5599 BreakPoint at:004EE16B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14355 VA:002DD177 Base:2162688 Address: 004EE177 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5600 BreakPoint at:004EE177 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14356 VA:002DD182 Base:2162688 Address: 004EE182 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5601 BreakPoint at:004EE182 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14357 VA:002DD191 Base:2162688 Address: 004EE191 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5603 BreakPoint at:004EE191 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14358 VA:002DD19A Base:2162688 Address: 004EE19A +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5604 BreakPoint at:004EE19A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14359 VA:002DD1A0 Base:2162688 Address: 004EE1A0 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5605 BreakPoint at:004EE1A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14360 VA:002DD1A7 Base:2162688 Address: 004EE1A7 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5606 BreakPoint at:004EE1A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14361 VA:002DD1B8 Base:2162688 Address: 004EE1B8 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5608 BreakPoint at:004EE1B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14362 VA:002DD1C9 Base:2162688 Address: 004EE1C9 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5610 BreakPoint at:004EE1C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14363 VA:002DD1D4 Base:2162688 Address: 004EE1D4 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5611 BreakPoint at:004EE1D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14364 VA:002DD1E2 Base:2162688 Address: 004EE1E2 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5612 BreakPoint at:004EE1E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14365 VA:002DD1F0 Base:2162688 Address: 004EE1F0 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5613 BreakPoint at:004EE1F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14366 VA:002DD1FB Base:2162688 Address: 004EE1FB +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5614 BreakPoint at:004EE1FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14367 VA:002DD20D Base:2162688 Address: 004EE20D +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5618 BreakPoint at:004EE20D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14368 VA:002DD216 Base:2162688 Address: 004EE216 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5620 BreakPoint at:004EE216 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14369 VA:002DD222 Base:2162688 Address: 004EE222 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5621 BreakPoint at:004EE222 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14370 VA:002DD228 Base:2162688 Address: 004EE228 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5622 BreakPoint at:004EE228 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14371 VA:002DD22F Base:2162688 Address: 004EE22F +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5623 BreakPoint at:004EE22F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14372 VA:002DD245 Base:2162688 Address: 004EE245 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5626 BreakPoint at:004EE245 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14373 VA:002DD255 Base:2162688 Address: 004EE255 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5627 BreakPoint at:004EE255 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14374 VA:002DD25A Base:2162688 Address: 004EE25A +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5629 BreakPoint at:004EE25A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14375 VA:002DD264 Base:2162688 Address: 004EE264 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5630 BreakPoint at:004EE264 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14376 VA:002DD26E Base:2162688 Address: 004EE26E +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5631 BreakPoint at:004EE26E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14377 VA:002DD271 Base:2162688 Address: 004EE271 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5627 BreakPoint at:004EE271 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14378 VA:002DD277 Base:2162688 Address: 004EE277 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5634 BreakPoint at:004EE277 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14379 VA:002DD287 Base:2162688 Address: 004EE287 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5635 BreakPoint at:004EE287 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14380 VA:002DD28B Base:2162688 Address: 004EE28B +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5637 BreakPoint at:004EE28B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14381 VA:002DD290 Base:2162688 Address: 004EE290 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5638 BreakPoint at:004EE290 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14382 VA:002DD2B1 Base:2162688 Address: 004EE2B1 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5637 BreakPoint at:004EE2B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14383 VA:002DD2B7 Base:2162688 Address: 004EE2B7 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5640 BreakPoint at:004EE2B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14384 VA:002DD2D2 Base:2162688 Address: 004EE2D2 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5642 BreakPoint at:004EE2D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14385 VA:002DD2D7 Base:2162688 Address: 004EE2D7 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5644 BreakPoint at:004EE2D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14386 VA:002DD2F5 Base:2162688 Address: 004EE2F5 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5645 BreakPoint at:004EE2F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14387 VA:002DD313 Base:2162688 Address: 004EE313 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5646 BreakPoint at:004EE313 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14388 VA:002DD316 Base:2162688 Address: 004EE316 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5642 BreakPoint at:004EE316 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14389 VA:002DD31C Base:2162688 Address: 004EE31C +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5647 BreakPoint at:004EE31C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14390 VA:002DD321 Base:2162688 Address: 004EE321 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5649 BreakPoint at:004EE321 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14391 VA:002DD327 Base:2162688 Address: 004EE327 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5650 BreakPoint at:004EE327 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14392 VA:002DD35C Base:2162688 Address: 004EE35C +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5652 BreakPoint at:004EE35C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14393 VA:002DD381 Base:2162688 Address: 004EE381 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5653 BreakPoint at:004EE381 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14394 VA:002DD384 Base:2162688 Address: 004EE384 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5654 BreakPoint at:004EE384 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14395 VA:002DD387 Base:2162688 Address: 004EE387 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5647 BreakPoint at:004EE387 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14396 VA:002DD38D Base:2162688 Address: 004EE38D +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5655 BreakPoint at:004EE38D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14397 VA:002DD392 Base:2162688 Address: 004EE392 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5657 BreakPoint at:004EE392 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14398 VA:002DD398 Base:2162688 Address: 004EE398 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5658 BreakPoint at:004EE398 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14399 VA:002DD3CC Base:2162688 Address: 004EE3CC +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5660 BreakPoint at:004EE3CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14400 VA:002DD3F1 Base:2162688 Address: 004EE3F1 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5661 BreakPoint at:004EE3F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14401 VA:002DD3F4 Base:2162688 Address: 004EE3F4 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5662 BreakPoint at:004EE3F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14402 VA:002DD3F7 Base:2162688 Address: 004EE3F7 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5655 BreakPoint at:004EE3F7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14403 VA:002DD3FD Base:2162688 Address: 004EE3FD +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5663 BreakPoint at:004EE3FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14404 VA:002DD400 Base:2162688 Address: 004EE400 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5640 BreakPoint at:004EE400 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14405 VA:002DD409 Base:2162688 Address: 004EE409 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5664 BreakPoint at:004EE409 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14406 VA:002DD416 Base:2162688 Address: 004EE416 +Adding breakpoint for DECCiphers.InitKey in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5665 BreakPoint at:004EE416 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14407 VA:002DD41C Base:2162688 Address: 004EE41C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5667 BreakPoint at:004EE41C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14408 VA:002DD42B Base:2162688 Address: 004EE42B +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5668 BreakPoint at:004EE42B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14409 VA:002DD43D Base:2162688 Address: 004EE43D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5669 BreakPoint at:004EE43D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14410 VA:002DD468 Base:2162688 Address: 004EE468 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5670 BreakPoint at:004EE468 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14411 VA:002DD474 Base:2162688 Address: 004EE474 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5671 BreakPoint at:004EE474 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14412 VA:002DD480 Base:2162688 Address: 004EE480 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5672 BreakPoint at:004EE480 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14413 VA:002DD48C Base:2162688 Address: 004EE48C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5674 BreakPoint at:004EE48C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14414 VA:002DD496 Base:2162688 Address: 004EE496 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5676 BreakPoint at:004EE496 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14415 VA:002DD49D Base:2162688 Address: 004EE49D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5677 BreakPoint at:004EE49D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14416 VA:002DD4A4 Base:2162688 Address: 004EE4A4 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5680 BreakPoint at:004EE4A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14417 VA:002DD4A8 Base:2162688 Address: 004EE4A8 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5687 BreakPoint at:004EE4A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14418 VA:002DD4B7 Base:2162688 Address: 004EE4B7 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5688 BreakPoint at:004EE4B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14419 VA:002DD4DE Base:2162688 Address: 004EE4DE +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5690 BreakPoint at:004EE4DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14420 VA:002DD4E7 Base:2162688 Address: 004EE4E7 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5691 BreakPoint at:004EE4E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14421 VA:002DD4F2 Base:2162688 Address: 004EE4F2 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5692 BreakPoint at:004EE4F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14422 VA:002DD4FD Base:2162688 Address: 004EE4FD +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5694 BreakPoint at:004EE4FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14423 VA:002DD505 Base:2162688 Address: 004EE505 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5695 BreakPoint at:004EE505 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14424 VA:002DD50E Base:2162688 Address: 004EE50E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5696 BreakPoint at:004EE50E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14425 VA:002DD517 Base:2162688 Address: 004EE517 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5697 BreakPoint at:004EE517 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14426 VA:002DD520 Base:2162688 Address: 004EE520 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5698 BreakPoint at:004EE520 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14427 VA:002DD529 Base:2162688 Address: 004EE529 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5699 BreakPoint at:004EE529 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14428 VA:002DD532 Base:2162688 Address: 004EE532 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5700 BreakPoint at:004EE532 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14429 VA:002DD53B Base:2162688 Address: 004EE53B +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5701 BreakPoint at:004EE53B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14430 VA:002DD544 Base:2162688 Address: 004EE544 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5703 BreakPoint at:004EE544 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14431 VA:002DD55E Base:2162688 Address: 004EE55E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5705 BreakPoint at:004EE55E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14432 VA:002DD566 Base:2162688 Address: 004EE566 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5706 BreakPoint at:004EE566 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14433 VA:002DD56F Base:2162688 Address: 004EE56F +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5707 BreakPoint at:004EE56F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14434 VA:002DD578 Base:2162688 Address: 004EE578 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5708 BreakPoint at:004EE578 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14435 VA:002DD581 Base:2162688 Address: 004EE581 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5709 BreakPoint at:004EE581 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14436 VA:002DD58A Base:2162688 Address: 004EE58A +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5710 BreakPoint at:004EE58A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14437 VA:002DD593 Base:2162688 Address: 004EE593 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5711 BreakPoint at:004EE593 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14438 VA:002DD59C Base:2162688 Address: 004EE59C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5712 BreakPoint at:004EE59C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14439 VA:002DD5A5 Base:2162688 Address: 004EE5A5 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5714 BreakPoint at:004EE5A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14440 VA:002DD5B9 Base:2162688 Address: 004EE5B9 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5715 BreakPoint at:004EE5B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14441 VA:002DD5CD Base:2162688 Address: 004EE5CD +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5716 BreakPoint at:004EE5CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14442 VA:002DD5E1 Base:2162688 Address: 004EE5E1 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5717 BreakPoint at:004EE5E1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14443 VA:002DD5F5 Base:2162688 Address: 004EE5F5 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5718 BreakPoint at:004EE5F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14444 VA:002DD609 Base:2162688 Address: 004EE609 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5719 BreakPoint at:004EE609 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14445 VA:002DD61D Base:2162688 Address: 004EE61D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5720 BreakPoint at:004EE61D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14446 VA:002DD631 Base:2162688 Address: 004EE631 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5721 BreakPoint at:004EE631 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14447 VA:002DD645 Base:2162688 Address: 004EE645 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5722 BreakPoint at:004EE645 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14448 VA:002DD651 Base:2162688 Address: 004EE651 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5723 BreakPoint at:004EE651 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14449 VA:002DD65D Base:2162688 Address: 004EE65D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5724 BreakPoint at:004EE65D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14450 VA:002DD669 Base:2162688 Address: 004EE669 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5725 BreakPoint at:004EE669 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14451 VA:002DD675 Base:2162688 Address: 004EE675 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5726 BreakPoint at:004EE675 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14452 VA:002DD681 Base:2162688 Address: 004EE681 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5727 BreakPoint at:004EE681 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14453 VA:002DD68D Base:2162688 Address: 004EE68D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5728 BreakPoint at:004EE68D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14454 VA:002DD699 Base:2162688 Address: 004EE699 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5729 BreakPoint at:004EE699 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14455 VA:002DD6A5 Base:2162688 Address: 004EE6A5 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5730 BreakPoint at:004EE6A5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14456 VA:002DD6B1 Base:2162688 Address: 004EE6B1 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5731 BreakPoint at:004EE6B1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14457 VA:002DD6BD Base:2162688 Address: 004EE6BD +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5732 BreakPoint at:004EE6BD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14458 VA:002DD6C9 Base:2162688 Address: 004EE6C9 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5733 BreakPoint at:004EE6C9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14459 VA:002DD6D5 Base:2162688 Address: 004EE6D5 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5734 BreakPoint at:004EE6D5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14460 VA:002DD6ED Base:2162688 Address: 004EE6ED +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5735 BreakPoint at:004EE6ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14461 VA:002DD705 Base:2162688 Address: 004EE705 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5736 BreakPoint at:004EE705 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14462 VA:002DD70E Base:2162688 Address: 004EE70E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5737 BreakPoint at:004EE70E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14463 VA:002DD711 Base:2162688 Address: 004EE711 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5703 BreakPoint at:004EE711 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14464 VA:002DD71A Base:2162688 Address: 004EE71A +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5739 BreakPoint at:004EE71A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14465 VA:002DD727 Base:2162688 Address: 004EE727 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5740 BreakPoint at:004EE727 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14466 VA:002DD736 Base:2162688 Address: 004EE736 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5741 BreakPoint at:004EE736 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14467 VA:002DD745 Base:2162688 Address: 004EE745 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5742 BreakPoint at:004EE745 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14468 VA:002DD754 Base:2162688 Address: 004EE754 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5743 BreakPoint at:004EE754 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14469 VA:002DD763 Base:2162688 Address: 004EE763 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5744 BreakPoint at:004EE763 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14470 VA:002DD772 Base:2162688 Address: 004EE772 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5745 BreakPoint at:004EE772 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14471 VA:002DD781 Base:2162688 Address: 004EE781 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5746 BreakPoint at:004EE781 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14472 VA:002DD790 Base:2162688 Address: 004EE790 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5747 BreakPoint at:004EE790 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14473 VA:002DD844 Base:2162688 Address: 004EE844 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5754 BreakPoint at:004EE844 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14474 VA:002DD853 Base:2162688 Address: 004EE853 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5755 BreakPoint at:004EE853 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14475 VA:002DD87A Base:2162688 Address: 004EE87A +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5757 BreakPoint at:004EE87A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14476 VA:002DD883 Base:2162688 Address: 004EE883 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5758 BreakPoint at:004EE883 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14477 VA:002DD88E Base:2162688 Address: 004EE88E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5759 BreakPoint at:004EE88E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14478 VA:002DD8A8 Base:2162688 Address: 004EE8A8 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5761 BreakPoint at:004EE8A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14479 VA:002DD8B5 Base:2162688 Address: 004EE8B5 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5762 BreakPoint at:004EE8B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14480 VA:002DD8C4 Base:2162688 Address: 004EE8C4 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5763 BreakPoint at:004EE8C4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14481 VA:002DD8D3 Base:2162688 Address: 004EE8D3 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5764 BreakPoint at:004EE8D3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14482 VA:002DD8E2 Base:2162688 Address: 004EE8E2 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5765 BreakPoint at:004EE8E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14483 VA:002DD8F1 Base:2162688 Address: 004EE8F1 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5766 BreakPoint at:004EE8F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14484 VA:002DD900 Base:2162688 Address: 004EE900 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5767 BreakPoint at:004EE900 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14485 VA:002DD90F Base:2162688 Address: 004EE90F +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5768 BreakPoint at:004EE90F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14486 VA:002DD91E Base:2162688 Address: 004EE91E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5770 BreakPoint at:004EE91E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14487 VA:002DD938 Base:2162688 Address: 004EE938 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5772 BreakPoint at:004EE938 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14488 VA:002DD93C Base:2162688 Address: 004EE93C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5773 BreakPoint at:004EE93C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14489 VA:002DD954 Base:2162688 Address: 004EE954 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5774 BreakPoint at:004EE954 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14490 VA:002DD96C Base:2162688 Address: 004EE96C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5775 BreakPoint at:004EE96C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14491 VA:002DD978 Base:2162688 Address: 004EE978 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5776 BreakPoint at:004EE978 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14492 VA:002DD984 Base:2162688 Address: 004EE984 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5777 BreakPoint at:004EE984 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14493 VA:002DD990 Base:2162688 Address: 004EE990 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5778 BreakPoint at:004EE990 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14494 VA:002DD99C Base:2162688 Address: 004EE99C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5779 BreakPoint at:004EE99C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14495 VA:002DD9A8 Base:2162688 Address: 004EE9A8 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5780 BreakPoint at:004EE9A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14496 VA:002DD9B4 Base:2162688 Address: 004EE9B4 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5781 BreakPoint at:004EE9B4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14497 VA:002DD9C0 Base:2162688 Address: 004EE9C0 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5782 BreakPoint at:004EE9C0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14498 VA:002DD9CC Base:2162688 Address: 004EE9CC +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5783 BreakPoint at:004EE9CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14499 VA:002DD9D8 Base:2162688 Address: 004EE9D8 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5784 BreakPoint at:004EE9D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14500 VA:002DD9E4 Base:2162688 Address: 004EE9E4 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5785 BreakPoint at:004EE9E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14501 VA:002DD9F0 Base:2162688 Address: 004EE9F0 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5786 BreakPoint at:004EE9F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14502 VA:002DD9FC Base:2162688 Address: 004EE9FC +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5787 BreakPoint at:004EE9FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14503 VA:002DDA05 Base:2162688 Address: 004EEA05 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5788 BreakPoint at:004EEA05 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14504 VA:002DDA0E Base:2162688 Address: 004EEA0E +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5789 BreakPoint at:004EEA0E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14505 VA:002DDA17 Base:2162688 Address: 004EEA17 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5790 BreakPoint at:004EEA17 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14506 VA:002DDA20 Base:2162688 Address: 004EEA20 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5791 BreakPoint at:004EEA20 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14507 VA:002DDA29 Base:2162688 Address: 004EEA29 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5792 BreakPoint at:004EEA29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14508 VA:002DDA32 Base:2162688 Address: 004EEA32 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5793 BreakPoint at:004EEA32 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14509 VA:002DDA3B Base:2162688 Address: 004EEA3B +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5794 BreakPoint at:004EEA3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14510 VA:002DDA44 Base:2162688 Address: 004EEA44 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5795 BreakPoint at:004EEA44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14511 VA:002DDA58 Base:2162688 Address: 004EEA58 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5796 BreakPoint at:004EEA58 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14512 VA:002DDA6C Base:2162688 Address: 004EEA6C +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5797 BreakPoint at:004EEA6C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14513 VA:002DDA80 Base:2162688 Address: 004EEA80 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5798 BreakPoint at:004EEA80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14514 VA:002DDA94 Base:2162688 Address: 004EEA94 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5799 BreakPoint at:004EEA94 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14515 VA:002DDAA8 Base:2162688 Address: 004EEAA8 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5800 BreakPoint at:004EEAA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14516 VA:002DDABC Base:2162688 Address: 004EEABC +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5801 BreakPoint at:004EEABC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14517 VA:002DDAD0 Base:2162688 Address: 004EEAD0 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5802 BreakPoint at:004EEAD0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14518 VA:002DDAE3 Base:2162688 Address: 004EEAE3 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5803 BreakPoint at:004EEAE3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14519 VA:002DDAE6 Base:2162688 Address: 004EEAE6 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5770 BreakPoint at:004EEAE6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14520 VA:002DDAEF Base:2162688 Address: 004EEAEF +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5805 BreakPoint at:004EEAEF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14521 VA:002DDAF7 Base:2162688 Address: 004EEAF7 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5806 BreakPoint at:004EEAF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14522 VA:002DDB00 Base:2162688 Address: 004EEB00 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5807 BreakPoint at:004EEB00 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14523 VA:002DDB09 Base:2162688 Address: 004EEB09 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5808 BreakPoint at:004EEB09 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14524 VA:002DDB12 Base:2162688 Address: 004EEB12 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5809 BreakPoint at:004EEB12 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14525 VA:002DDB1B Base:2162688 Address: 004EEB1B +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5810 BreakPoint at:004EEB1B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14526 VA:002DDB24 Base:2162688 Address: 004EEB24 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5811 BreakPoint at:004EEB24 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14527 VA:002DDB2D Base:2162688 Address: 004EEB2D +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5812 BreakPoint at:004EEB2D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14528 VA:002DDB36 Base:2162688 Address: 004EEB36 +Adding breakpoint for DECCiphers.TCipher_SAFER.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5813 BreakPoint at:004EEB36 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14529 VA:002DDBE8 Base:2162688 Address: 004EEBE8 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +Creating class info for DECCiphers class TCipher_SharkBase +TBreakPoint.Activate: +Activate DECCiphers.pas line 5826 BreakPoint at:004EEBE8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14530 VA:002DDBFD Base:2162688 Address: 004EEBFD +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5827 BreakPoint at:004EEBFD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14531 VA:002DDC02 Base:2162688 Address: 004EEC02 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5829 BreakPoint at:004EEC02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14532 VA:002DDC0A Base:2162688 Address: 004EEC0A +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5830 BreakPoint at:004EEC0A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14533 VA:002DDC13 Base:2162688 Address: 004EEC13 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5831 BreakPoint at:004EEC13 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14534 VA:002DDC17 Base:2162688 Address: 004EEC17 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5832 BreakPoint at:004EEC17 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14535 VA:002DDCDB Base:2162688 Address: 004EECDB +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5841 BreakPoint at:004EECDB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14536 VA:002DDDB7 Base:2162688 Address: 004EEDB7 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5849 BreakPoint at:004EEDB7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14537 VA:002DDDBD Base:2162688 Address: 004EEDBD +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5850 BreakPoint at:004EEDBD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14538 VA:002DDDC0 Base:2162688 Address: 004EEDC0 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5827 BreakPoint at:004EEDC0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14539 VA:002DDDCA Base:2162688 Address: 004EEDCA +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5851 BreakPoint at:004EEDCA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14540 VA:002DDDD2 Base:2162688 Address: 004EEDD2 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5852 BreakPoint at:004EEDD2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14541 VA:002DDDDB Base:2162688 Address: 004EEDDB +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5853 BreakPoint at:004EEDDB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14542 VA:002DDDDF Base:2162688 Address: 004EEDDF +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5854 BreakPoint at:004EEDDF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14543 VA:002DDE45 Base:2162688 Address: 004EEE45 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5858 BreakPoint at:004EEE45 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14544 VA:002DDEAB Base:2162688 Address: 004EEEAB +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5862 BreakPoint at:004EEEAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14545 VA:002DDEB8 Base:2162688 Address: 004EEEB8 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5863 BreakPoint at:004EEEB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14546 VA:002DDEC7 Base:2162688 Address: 004EEEC7 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Shark in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5864 BreakPoint at:004EEEC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14547 VA:002DDED0 Base:2162688 Address: 004EEED0 +Adding breakpoint for DECCiphers.Mul in DECCiphers.pas +Creating class info for DECCiphers class Mul +TBreakPoint.Activate: +Activate DECCiphers.pas line 5870 BreakPoint at:004EEED0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14548 VA:002DDEDC Base:2162688 Address: 004EEEDC +Adding breakpoint for DECCiphers.Mul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5872 BreakPoint at:004EEEDC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14549 VA:002DDF10 Base:2162688 Address: 004EEF10 +Adding breakpoint for DECCiphers.Mul in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5873 BreakPoint at:004EEF10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14550 VA:002DDF18 Base:2162688 Address: 004EEF18 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5878 BreakPoint at:004EEF18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14551 VA:002DDF54 Base:2162688 Address: 004EEF54 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5879 BreakPoint at:004EEF54 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14552 VA:002DDF6A Base:2162688 Address: 004EEF6A +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5880 BreakPoint at:004EEF6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14553 VA:002DDF80 Base:2162688 Address: 004EEF80 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5881 BreakPoint at:004EEF80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14554 VA:002DDF96 Base:2162688 Address: 004EEF96 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5883 BreakPoint at:004EEF96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14555 VA:002DDF9D Base:2162688 Address: 004EEF9D +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5885 BreakPoint at:004EEF9D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14556 VA:002DDFCD Base:2162688 Address: 004EEFCD +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5886 BreakPoint at:004EEFCD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14557 VA:002DDFD4 Base:2162688 Address: 004EEFD4 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5887 BreakPoint at:004EEFD4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14558 VA:002DE01D Base:2162688 Address: 004EF01D +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5886 BreakPoint at:004EF01D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14559 VA:002DE026 Base:2162688 Address: 004EF026 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5888 BreakPoint at:004EF026 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14560 VA:002DE02C Base:2162688 Address: 004EF02C +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5883 BreakPoint at:004EF02C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14561 VA:002DE039 Base:2162688 Address: 004EF039 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5890 BreakPoint at:004EF039 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14562 VA:002DE046 Base:2162688 Address: 004EF046 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5891 BreakPoint at:004EF046 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14563 VA:002DE04E Base:2162688 Address: 004EF04E +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5892 BreakPoint at:004EF04E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14564 VA:002DE055 Base:2162688 Address: 004EF055 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5894 BreakPoint at:004EF055 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14565 VA:002DE06E Base:2162688 Address: 004EF06E +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5895 BreakPoint at:004EF06E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14566 VA:002DE08D Base:2162688 Address: 004EF08D +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5896 BreakPoint at:004EF08D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14567 VA:002DE093 Base:2162688 Address: 004EF093 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5892 BreakPoint at:004EF093 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14568 VA:002DE09C Base:2162688 Address: 004EF09C +Adding breakpoint for DECCiphers.TCipher_SharkBase.Transform in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5897 BreakPoint at:004EF09C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14569 VA:002DE0A4 Base:2162688 Address: 004EF0A4 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5928 BreakPoint at:004EF0A4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14570 VA:002DE0B0 Base:2162688 Address: 004EF0B0 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5929 BreakPoint at:004EF0B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14571 VA:002DE0B9 Base:2162688 Address: 004EF0B9 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5930 BreakPoint at:004EF0B9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14572 VA:002DE0C3 Base:2162688 Address: 004EF0C3 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5931 BreakPoint at:004EF0C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14573 VA:002DE0CD Base:2162688 Address: 004EF0CD +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5932 BreakPoint at:004EF0CD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14574 VA:002DE0D7 Base:2162688 Address: 004EF0D7 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5933 BreakPoint at:004EF0D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14575 VA:002DE0DE Base:2162688 Address: 004EF0DE +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5934 BreakPoint at:004EF0DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14576 VA:002DE0E7 Base:2162688 Address: 004EF0E7 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5935 BreakPoint at:004EF0E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14577 VA:002DE0F0 Base:2162688 Address: 004EF0F0 +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5936 BreakPoint at:004EF0F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14578 VA:002DE0FC Base:2162688 Address: 004EF0FC +Adding breakpoint for DECCiphers.TCipher_SharkBase.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5937 BreakPoint at:004EF0FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14579 VA:002DE104 Base:2162688 Address: 004EF104 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5946 BreakPoint at:004EF104 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14580 VA:002DE113 Base:2162688 Address: 004EF113 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5947 BreakPoint at:004EF113 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14581 VA:002DE13A Base:2162688 Address: 004EF13A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5949 BreakPoint at:004EF13A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14582 VA:002DE143 Base:2162688 Address: 004EF143 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5950 BreakPoint at:004EF143 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14583 VA:002DE14B Base:2162688 Address: 004EF14B +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5951 BreakPoint at:004EF14B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14584 VA:002DE154 Base:2162688 Address: 004EF154 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5952 BreakPoint at:004EF154 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14585 VA:002DE159 Base:2162688 Address: 004EF159 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5954 BreakPoint at:004EF159 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14586 VA:002DE167 Base:2162688 Address: 004EF167 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5955 BreakPoint at:004EF167 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14587 VA:002DE176 Base:2162688 Address: 004EF176 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5956 BreakPoint at:004EF176 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14588 VA:002DE23A Base:2162688 Address: 004EF23A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5964 BreakPoint at:004EF23A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14589 VA:002DE316 Base:2162688 Address: 004EF316 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5972 BreakPoint at:004EF316 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14590 VA:002DE31C Base:2162688 Address: 004EF31C +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5973 BreakPoint at:004EF31C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14591 VA:002DE31F Base:2162688 Address: 004EF31F +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5952 BreakPoint at:004EF31F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14592 VA:002DE329 Base:2162688 Address: 004EF329 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5974 BreakPoint at:004EF329 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14593 VA:002DE332 Base:2162688 Address: 004EF332 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5975 BreakPoint at:004EF332 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14594 VA:002DE33B Base:2162688 Address: 004EF33B +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5976 BreakPoint at:004EF33B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14595 VA:002DE39C Base:2162688 Address: 004EF39C +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5980 BreakPoint at:004EF39C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14596 VA:002DE3FD Base:2162688 Address: 004EF3FD +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5984 BreakPoint at:004EF3FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14597 VA:002DE40B Base:2162688 Address: 004EF40B +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5985 BreakPoint at:004EF40B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14598 VA:002DE41A Base:2162688 Address: 004EF41A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 5993 BreakPoint at:004EF41A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14599 VA:002DE4CC Base:2162688 Address: 004EF4CC +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +Creating class info for DECCiphers class InitLog +TBreakPoint.Activate: +Activate DECCiphers.pas line 6038 BreakPoint at:004EF4CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14600 VA:002DE4D0 Base:2162688 Address: 004EF4D0 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6039 BreakPoint at:004EF4D0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14601 VA:002DE4DA Base:2162688 Address: 004EF4DA +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6040 BreakPoint at:004EF4DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14602 VA:002DE4E0 Base:2162688 Address: 004EF4E0 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6042 BreakPoint at:004EF4E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14603 VA:002DE4F5 Base:2162688 Address: 004EF4F5 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6043 BreakPoint at:004EF4F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14604 VA:002DE4FB Base:2162688 Address: 004EF4FB +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6044 BreakPoint at:004EF4FB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14605 VA:002DE501 Base:2162688 Address: 004EF501 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6045 BreakPoint at:004EF501 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14606 VA:002DE512 Base:2162688 Address: 004EF512 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6046 BreakPoint at:004EF512 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14607 VA:002DE516 Base:2162688 Address: 004EF516 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6040 BreakPoint at:004EF516 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14608 VA:002DE51E Base:2162688 Address: 004EF51E +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6047 BreakPoint at:004EF51E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14609 VA:002DE528 Base:2162688 Address: 004EF528 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6048 BreakPoint at:004EF528 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14610 VA:002DE52E Base:2162688 Address: 004EF52E +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6049 BreakPoint at:004EF52E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14611 VA:002DE54E Base:2162688 Address: 004EF54E +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6048 BreakPoint at:004EF54E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14612 VA:002DE556 Base:2162688 Address: 004EF556 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6050 BreakPoint at:004EF556 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14613 VA:002DE55C Base:2162688 Address: 004EF55C +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Shark +TBreakPoint.Activate: +Activate DECCiphers.pas line 6059 BreakPoint at:004EF55C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14614 VA:002DE577 Base:2162688 Address: 004EF577 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6060 BreakPoint at:004EF577 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14615 VA:002DE589 Base:2162688 Address: 004EF589 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6061 BreakPoint at:004EF589 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14616 VA:002DE5A0 Base:2162688 Address: 004EF5A0 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6062 BreakPoint at:004EF5A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14617 VA:002DE5A7 Base:2162688 Address: 004EF5A7 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6063 BreakPoint at:004EF5A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14618 VA:002DE5B6 Base:2162688 Address: 004EF5B6 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6064 BreakPoint at:004EF5B6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14619 VA:002DE5C5 Base:2162688 Address: 004EF5C5 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6065 BreakPoint at:004EF5C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14620 VA:002DE5DA Base:2162688 Address: 004EF5DA +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6066 BreakPoint at:004EF5DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14621 VA:002DE617 Base:2162688 Address: 004EF617 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6067 BreakPoint at:004EF617 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14622 VA:002DE61E Base:2162688 Address: 004EF61E +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6068 BreakPoint at:004EF61E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14623 VA:002DE625 Base:2162688 Address: 004EF625 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6070 BreakPoint at:004EF625 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14624 VA:002DE649 Base:2162688 Address: 004EF649 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6071 BreakPoint at:004EF649 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14625 VA:002DE65A Base:2162688 Address: 004EF65A +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6072 BreakPoint at:004EF65A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14626 VA:002DE660 Base:2162688 Address: 004EF660 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6073 BreakPoint at:004EF660 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14627 VA:002DE667 Base:2162688 Address: 004EF667 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6075 BreakPoint at:004EF667 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14628 VA:002DE69C Base:2162688 Address: 004EF69C +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6076 BreakPoint at:004EF69C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14629 VA:002DE6D4 Base:2162688 Address: 004EF6D4 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6077 BreakPoint at:004EF6D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14630 VA:002DE6DA Base:2162688 Address: 004EF6DA +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6078 BreakPoint at:004EF6DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14631 VA:002DE6E0 Base:2162688 Address: 004EF6E0 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6073 BreakPoint at:004EF6E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14632 VA:002DE6ED Base:2162688 Address: 004EF6ED +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6079 BreakPoint at:004EF6ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14633 VA:002DE6F3 Base:2162688 Address: 004EF6F3 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6068 BreakPoint at:004EF6F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14634 VA:002DE700 Base:2162688 Address: 004EF700 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6080 BreakPoint at:004EF700 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14635 VA:002DE708 Base:2162688 Address: 004EF708 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6081 BreakPoint at:004EF708 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14636 VA:002DE710 Base:2162688 Address: 004EF710 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6082 BreakPoint at:004EF710 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14637 VA:002DE746 Base:2162688 Address: 004EF746 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6083 BreakPoint at:004EF746 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14638 VA:002DE75A Base:2162688 Address: 004EF75A +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6084 BreakPoint at:004EF75A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14639 VA:002DE76F Base:2162688 Address: 004EF76F +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6085 BreakPoint at:004EF76F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14640 VA:002DE776 Base:2162688 Address: 004EF776 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6087 BreakPoint at:004EF776 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14641 VA:002DE7A0 Base:2162688 Address: 004EF7A0 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6088 BreakPoint at:004EF7A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14642 VA:002DE7C6 Base:2162688 Address: 004EF7C6 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6089 BreakPoint at:004EF7C6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14643 VA:002DE7ED Base:2162688 Address: 004EF7ED +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6090 BreakPoint at:004EF7ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14644 VA:002DE7F3 Base:2162688 Address: 004EF7F3 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6085 BreakPoint at:004EF7F3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14645 VA:002DE800 Base:2162688 Address: 004EF800 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6091 BreakPoint at:004EF800 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14646 VA:002DE840 Base:2162688 Address: 004EF840 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6092 BreakPoint at:004EF840 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14647 VA:002DE857 Base:2162688 Address: 004EF857 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6093 BreakPoint at:004EF857 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14648 VA:002DE86E Base:2162688 Address: 004EF86E +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6094 BreakPoint at:004EF86E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14649 VA:002DE875 Base:2162688 Address: 004EF875 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6095 BreakPoint at:004EF875 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14650 VA:002DE8D3 Base:2162688 Address: 004EF8D3 +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6094 BreakPoint at:004EF8D3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14651 VA:002DE8DC Base:2162688 Address: 004EF8DC +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6096 BreakPoint at:004EF8DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14652 VA:002DE8EC Base:2162688 Address: 004EF8EC +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6097 BreakPoint at:004EF8EC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14653 VA:002DE8FC Base:2162688 Address: 004EF8FC +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6098 BreakPoint at:004EF8FC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14654 VA:002DE90C Base:2162688 Address: 004EF90C +Adding breakpoint for DECCiphers.TCipher_Shark.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6101 BreakPoint at:004EF90C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14655 VA:002DE910 Base:2162688 Address: 004EF910 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6110 BreakPoint at:004EF910 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14656 VA:002DE91F Base:2162688 Address: 004EF91F +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6111 BreakPoint at:004EF91F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14657 VA:002DE946 Base:2162688 Address: 004EF946 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6113 BreakPoint at:004EF946 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14658 VA:002DE952 Base:2162688 Address: 004EF952 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6114 BreakPoint at:004EF952 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14659 VA:002DE95A Base:2162688 Address: 004EF95A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6115 BreakPoint at:004EF95A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14660 VA:002DE963 Base:2162688 Address: 004EF963 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6116 BreakPoint at:004EF963 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14661 VA:002DE968 Base:2162688 Address: 004EF968 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6118 BreakPoint at:004EF968 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14662 VA:002DE976 Base:2162688 Address: 004EF976 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6119 BreakPoint at:004EF976 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14663 VA:002DE985 Base:2162688 Address: 004EF985 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6120 BreakPoint at:004EF985 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14664 VA:002DEA49 Base:2162688 Address: 004EFA49 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6128 BreakPoint at:004EFA49 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14665 VA:002DEB25 Base:2162688 Address: 004EFB25 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6136 BreakPoint at:004EFB25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14666 VA:002DEB2B Base:2162688 Address: 004EFB2B +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6137 BreakPoint at:004EFB2B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14667 VA:002DEB2E Base:2162688 Address: 004EFB2E +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6116 BreakPoint at:004EFB2E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14668 VA:002DEB38 Base:2162688 Address: 004EFB38 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6138 BreakPoint at:004EFB38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14669 VA:002DEB41 Base:2162688 Address: 004EFB41 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6139 BreakPoint at:004EFB41 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14670 VA:002DEB4A Base:2162688 Address: 004EFB4A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6140 BreakPoint at:004EFB4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14671 VA:002DEBAB Base:2162688 Address: 004EFBAB +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6144 BreakPoint at:004EFBAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14672 VA:002DEC0C Base:2162688 Address: 004EFC0C +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6148 BreakPoint at:004EFC0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14673 VA:002DEC1A Base:2162688 Address: 004EFC1A +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6149 BreakPoint at:004EFC1A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14674 VA:002DEC29 Base:2162688 Address: 004EFC29 +Adding breakpoint for DECCiphers.TCipher_SharkBase.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6150 BreakPoint at:004EFC29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14675 VA:002DECDC Base:2162688 Address: 004EFCDC +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6268 BreakPoint at:004EFCDC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14676 VA:002DECE0 Base:2162688 Address: 004EFCE0 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6270 BreakPoint at:004EFCE0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14677 VA:002DECEA Base:2162688 Address: 004EFCEA +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6271 BreakPoint at:004EFCEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14678 VA:002DECF0 Base:2162688 Address: 004EFCF0 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6273 BreakPoint at:004EFCF0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14679 VA:002DED05 Base:2162688 Address: 004EFD05 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6274 BreakPoint at:004EFD05 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14680 VA:002DED0B Base:2162688 Address: 004EFD0B +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6275 BreakPoint at:004EFD0B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14681 VA:002DED11 Base:2162688 Address: 004EFD11 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6276 BreakPoint at:004EFD11 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14682 VA:002DED22 Base:2162688 Address: 004EFD22 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6277 BreakPoint at:004EFD22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14683 VA:002DED26 Base:2162688 Address: 004EFD26 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6271 BreakPoint at:004EFD26 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14684 VA:002DED2E Base:2162688 Address: 004EFD2E +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6278 BreakPoint at:004EFD2E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14685 VA:002DED34 Base:2162688 Address: 004EFD34 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6279 BreakPoint at:004EFD34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14686 VA:002DED54 Base:2162688 Address: 004EFD54 +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6278 BreakPoint at:004EFD54 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14687 VA:002DED5C Base:2162688 Address: 004EFD5C +Adding breakpoint for DECCiphers.InitLog in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6280 BreakPoint at:004EFD5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14688 VA:002DED60 Base:2162688 Address: 004EFD60 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Shark_DEC52 +TBreakPoint.Activate: +Activate DECCiphers.pas line 6290 BreakPoint at:004EFD60 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14689 VA:002DED7B Base:2162688 Address: 004EFD7B +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6291 BreakPoint at:004EFD7B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14690 VA:002DED8D Base:2162688 Address: 004EFD8D +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6292 BreakPoint at:004EFD8D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14691 VA:002DEDA4 Base:2162688 Address: 004EFDA4 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6293 BreakPoint at:004EFDA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14692 VA:002DEDAB Base:2162688 Address: 004EFDAB +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6294 BreakPoint at:004EFDAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14693 VA:002DEDBA Base:2162688 Address: 004EFDBA +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6295 BreakPoint at:004EFDBA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14694 VA:002DEDC9 Base:2162688 Address: 004EFDC9 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6296 BreakPoint at:004EFDC9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14695 VA:002DEDDE Base:2162688 Address: 004EFDDE +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6297 BreakPoint at:004EFDDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14696 VA:002DEE1B Base:2162688 Address: 004EFE1B +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6298 BreakPoint at:004EFE1B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14697 VA:002DEE22 Base:2162688 Address: 004EFE22 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6299 BreakPoint at:004EFE22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14698 VA:002DEE29 Base:2162688 Address: 004EFE29 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6301 BreakPoint at:004EFE29 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14699 VA:002DEE2F Base:2162688 Address: 004EFE2F +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6302 BreakPoint at:004EFE2F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14700 VA:002DEE53 Base:2162688 Address: 004EFE53 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6303 BreakPoint at:004EFE53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14701 VA:002DEE64 Base:2162688 Address: 004EFE64 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6304 BreakPoint at:004EFE64 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14702 VA:002DEE6B Base:2162688 Address: 004EFE6B +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6306 BreakPoint at:004EFE6B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14703 VA:002DEE71 Base:2162688 Address: 004EFE71 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6307 BreakPoint at:004EFE71 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14704 VA:002DEEA6 Base:2162688 Address: 004EFEA6 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6308 BreakPoint at:004EFEA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14705 VA:002DEEDE Base:2162688 Address: 004EFEDE +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6309 BreakPoint at:004EFEDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14706 VA:002DEEE4 Base:2162688 Address: 004EFEE4 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6304 BreakPoint at:004EFEE4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14707 VA:002DEEF1 Base:2162688 Address: 004EFEF1 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6310 BreakPoint at:004EFEF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14708 VA:002DEEF7 Base:2162688 Address: 004EFEF7 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6299 BreakPoint at:004EFEF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14709 VA:002DEF04 Base:2162688 Address: 004EFF04 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6311 BreakPoint at:004EFF04 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14710 VA:002DEF0C Base:2162688 Address: 004EFF0C +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6312 BreakPoint at:004EFF0C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14711 VA:002DEF14 Base:2162688 Address: 004EFF14 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6313 BreakPoint at:004EFF14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14712 VA:002DEF4A Base:2162688 Address: 004EFF4A +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6314 BreakPoint at:004EFF4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14713 VA:002DEF5E Base:2162688 Address: 004EFF5E +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6315 BreakPoint at:004EFF5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14714 VA:002DEF73 Base:2162688 Address: 004EFF73 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6316 BreakPoint at:004EFF73 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14715 VA:002DEF7A Base:2162688 Address: 004EFF7A +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6318 BreakPoint at:004EFF7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14716 VA:002DEFA4 Base:2162688 Address: 004EFFA4 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6319 BreakPoint at:004EFFA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14717 VA:002DEFCA Base:2162688 Address: 004EFFCA +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6320 BreakPoint at:004EFFCA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14718 VA:002DEFF1 Base:2162688 Address: 004EFFF1 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6321 BreakPoint at:004EFFF1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14719 VA:002DEFF7 Base:2162688 Address: 004EFFF7 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6316 BreakPoint at:004EFFF7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14720 VA:002DF004 Base:2162688 Address: 004F0004 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6322 BreakPoint at:004F0004 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14721 VA:002DF044 Base:2162688 Address: 004F0044 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6323 BreakPoint at:004F0044 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14722 VA:002DF05B Base:2162688 Address: 004F005B +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6324 BreakPoint at:004F005B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14723 VA:002DF072 Base:2162688 Address: 004F0072 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6325 BreakPoint at:004F0072 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14724 VA:002DF079 Base:2162688 Address: 004F0079 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6326 BreakPoint at:004F0079 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14725 VA:002DF0D7 Base:2162688 Address: 004F00D7 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6325 BreakPoint at:004F00D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14726 VA:002DF0E0 Base:2162688 Address: 004F00E0 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6327 BreakPoint at:004F00E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14727 VA:002DF0F0 Base:2162688 Address: 004F00F0 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6328 BreakPoint at:004F00F0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14728 VA:002DF100 Base:2162688 Address: 004F0100 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6329 BreakPoint at:004F0100 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14729 VA:002DF110 Base:2162688 Address: 004F0110 +Adding breakpoint for DECCiphers.TCipher_Shark_DEC52.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6377 BreakPoint at:004F0110 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14730 VA:002DF114 Base:2162688 Address: 004F0114 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_Skipjack +TBreakPoint.Activate: +Activate DECCiphers.pas line 6382 BreakPoint at:004F0114 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14731 VA:002DF120 Base:2162688 Address: 004F0120 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6383 BreakPoint at:004F0120 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14732 VA:002DF129 Base:2162688 Address: 004F0129 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6384 BreakPoint at:004F0129 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14733 VA:002DF133 Base:2162688 Address: 004F0133 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6385 BreakPoint at:004F0133 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14734 VA:002DF13D Base:2162688 Address: 004F013D +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6386 BreakPoint at:004F013D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14735 VA:002DF147 Base:2162688 Address: 004F0147 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6387 BreakPoint at:004F0147 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14736 VA:002DF14E Base:2162688 Address: 004F014E +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6388 BreakPoint at:004F014E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14737 VA:002DF157 Base:2162688 Address: 004F0157 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6389 BreakPoint at:004F0157 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14738 VA:002DF160 Base:2162688 Address: 004F0160 +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6390 BreakPoint at:004F0160 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14739 VA:002DF16C Base:2162688 Address: 004F016C +Adding breakpoint for DECCiphers.TCipher_Skipjack.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6391 BreakPoint at:004F016C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14740 VA:002DF174 Base:2162688 Address: 004F0174 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6398 BreakPoint at:004F0174 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14741 VA:002DF183 Base:2162688 Address: 004F0183 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6399 BreakPoint at:004F0183 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14742 VA:002DF192 Base:2162688 Address: 004F0192 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6400 BreakPoint at:004F0192 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14743 VA:002DF1A0 Base:2162688 Address: 004F01A0 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6401 BreakPoint at:004F01A0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14744 VA:002DF1A9 Base:2162688 Address: 004F01A9 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6402 BreakPoint at:004F01A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14745 VA:002DF1AE Base:2162688 Address: 004F01AE +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6403 BreakPoint at:004F01AE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14746 VA:002DF1B3 Base:2162688 Address: 004F01B3 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6405 BreakPoint at:004F01B3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14747 VA:002DF1CC Base:2162688 Address: 004F01CC +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6406 BreakPoint at:004F01CC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14748 VA:002DF1CF Base:2162688 Address: 004F01CF +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6407 BreakPoint at:004F01CF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14749 VA:002DF1D2 Base:2162688 Address: 004F01D2 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6403 BreakPoint at:004F01D2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14750 VA:002DF1DB Base:2162688 Address: 004F01DB +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6407 BreakPoint at:004F01DB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14751 VA:002DF1DE Base:2162688 Address: 004F01DE +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6402 BreakPoint at:004F01DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14752 VA:002DF1E4 Base:2162688 Address: 004F01E4 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6408 BreakPoint at:004F01E4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14753 VA:002DF1F1 Base:2162688 Address: 004F01F1 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6411 BreakPoint at:004F01F1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14754 VA:002DF1F8 Base:2162688 Address: 004F01F8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6419 BreakPoint at:004F01F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14755 VA:002DF207 Base:2162688 Address: 004F0207 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6420 BreakPoint at:004F0207 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14756 VA:002DF22E Base:2162688 Address: 004F022E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6422 BreakPoint at:004F022E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14757 VA:002DF237 Base:2162688 Address: 004F0237 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6423 BreakPoint at:004F0237 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14758 VA:002DF242 Base:2162688 Address: 004F0242 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6424 BreakPoint at:004F0242 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14759 VA:002DF248 Base:2162688 Address: 004F0248 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6425 BreakPoint at:004F0248 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14760 VA:002DF256 Base:2162688 Address: 004F0256 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6426 BreakPoint at:004F0256 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14761 VA:002DF265 Base:2162688 Address: 004F0265 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6427 BreakPoint at:004F0265 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14762 VA:002DF274 Base:2162688 Address: 004F0274 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6428 BreakPoint at:004F0274 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14763 VA:002DF283 Base:2162688 Address: 004F0283 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6429 BreakPoint at:004F0283 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14764 VA:002DF288 Base:2162688 Address: 004F0288 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6432 BreakPoint at:004F0288 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14765 VA:002DF28B Base:2162688 Address: 004F028B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6433 BreakPoint at:004F028B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14766 VA:002DF291 Base:2162688 Address: 004F0291 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6434 BreakPoint at:004F0291 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14767 VA:002DF2B8 Base:2162688 Address: 004F02B8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6435 BreakPoint at:004F02B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14768 VA:002DF2DA Base:2162688 Address: 004F02DA +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6436 BreakPoint at:004F02DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14769 VA:002DF301 Base:2162688 Address: 004F0301 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6437 BreakPoint at:004F0301 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14770 VA:002DF323 Base:2162688 Address: 004F0323 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6438 BreakPoint at:004F0323 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14771 VA:002DF32F Base:2162688 Address: 004F032F +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6439 BreakPoint at:004F032F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14772 VA:002DF335 Base:2162688 Address: 004F0335 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6440 BreakPoint at:004F0335 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14773 VA:002DF33B Base:2162688 Address: 004F033B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6441 BreakPoint at:004F033B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14774 VA:002DF341 Base:2162688 Address: 004F0341 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6442 BreakPoint at:004F0341 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14775 VA:002DF34B Base:2162688 Address: 004F034B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6445 BreakPoint at:004F034B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14776 VA:002DF34E Base:2162688 Address: 004F034E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6446 BreakPoint at:004F034E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14777 VA:002DF354 Base:2162688 Address: 004F0354 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6447 BreakPoint at:004F0354 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14778 VA:002DF35A Base:2162688 Address: 004F035A +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6448 BreakPoint at:004F035A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14779 VA:002DF360 Base:2162688 Address: 004F0360 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6449 BreakPoint at:004F0360 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14780 VA:002DF36C Base:2162688 Address: 004F036C +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6450 BreakPoint at:004F036C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14781 VA:002DF393 Base:2162688 Address: 004F0393 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6451 BreakPoint at:004F0393 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14782 VA:002DF3B5 Base:2162688 Address: 004F03B5 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6452 BreakPoint at:004F03B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14783 VA:002DF3DC Base:2162688 Address: 004F03DC +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6453 BreakPoint at:004F03DC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14784 VA:002DF3FE Base:2162688 Address: 004F03FE +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6454 BreakPoint at:004F03FE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14785 VA:002DF404 Base:2162688 Address: 004F0404 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6455 BreakPoint at:004F0404 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14786 VA:002DF40E Base:2162688 Address: 004F040E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6458 BreakPoint at:004F040E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14787 VA:002DF411 Base:2162688 Address: 004F0411 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6459 BreakPoint at:004F0411 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14788 VA:002DF417 Base:2162688 Address: 004F0417 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6460 BreakPoint at:004F0417 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14789 VA:002DF43E Base:2162688 Address: 004F043E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6461 BreakPoint at:004F043E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14790 VA:002DF460 Base:2162688 Address: 004F0460 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6462 BreakPoint at:004F0460 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14791 VA:002DF487 Base:2162688 Address: 004F0487 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6463 BreakPoint at:004F0487 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14792 VA:002DF4A9 Base:2162688 Address: 004F04A9 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6464 BreakPoint at:004F04A9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14793 VA:002DF4B5 Base:2162688 Address: 004F04B5 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6465 BreakPoint at:004F04B5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14794 VA:002DF4BB Base:2162688 Address: 004F04BB +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6466 BreakPoint at:004F04BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14795 VA:002DF4C1 Base:2162688 Address: 004F04C1 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6467 BreakPoint at:004F04C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14796 VA:002DF4C7 Base:2162688 Address: 004F04C7 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6468 BreakPoint at:004F04C7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14797 VA:002DF4D1 Base:2162688 Address: 004F04D1 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6471 BreakPoint at:004F04D1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14798 VA:002DF4D4 Base:2162688 Address: 004F04D4 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6472 BreakPoint at:004F04D4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14799 VA:002DF4DA Base:2162688 Address: 004F04DA +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6473 BreakPoint at:004F04DA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14800 VA:002DF4E0 Base:2162688 Address: 004F04E0 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6474 BreakPoint at:004F04E0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14801 VA:002DF4E6 Base:2162688 Address: 004F04E6 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6475 BreakPoint at:004F04E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14802 VA:002DF4F2 Base:2162688 Address: 004F04F2 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6476 BreakPoint at:004F04F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14803 VA:002DF519 Base:2162688 Address: 004F0519 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6477 BreakPoint at:004F0519 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14804 VA:002DF53B Base:2162688 Address: 004F053B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6478 BreakPoint at:004F053B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14805 VA:002DF562 Base:2162688 Address: 004F0562 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6479 BreakPoint at:004F0562 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14806 VA:002DF584 Base:2162688 Address: 004F0584 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6480 BreakPoint at:004F0584 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14807 VA:002DF58A Base:2162688 Address: 004F058A +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6481 BreakPoint at:004F058A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14808 VA:002DF594 Base:2162688 Address: 004F0594 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6483 BreakPoint at:004F0594 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14809 VA:002DF59F Base:2162688 Address: 004F059F +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6484 BreakPoint at:004F059F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14810 VA:002DF5AB Base:2162688 Address: 004F05AB +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6485 BreakPoint at:004F05AB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14811 VA:002DF5B7 Base:2162688 Address: 004F05B7 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6486 BreakPoint at:004F05B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14812 VA:002DF5C3 Base:2162688 Address: 004F05C3 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6487 BreakPoint at:004F05C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14813 VA:002DF678 Base:2162688 Address: 004F0678 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackIncCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6490 BreakPoint at:004F0678 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14814 VA:002DF687 Base:2162688 Address: 004F0687 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackIncCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6491 BreakPoint at:004F0687 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14815 VA:002DF690 Base:2162688 Address: 004F0690 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackIncCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6493 BreakPoint at:004F0690 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14816 VA:002DF69A Base:2162688 Address: 004F069A +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackIncCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6494 BreakPoint at:004F069A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14817 VA:002DF6A2 Base:2162688 Address: 004F06A2 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackIncCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6495 BreakPoint at:004F06A2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14818 VA:002DF6A8 Base:2162688 Address: 004F06A8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6503 BreakPoint at:004F06A8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14819 VA:002DF6B7 Base:2162688 Address: 004F06B7 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6504 BreakPoint at:004F06B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14820 VA:002DF6DE Base:2162688 Address: 004F06DE +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6506 BreakPoint at:004F06DE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14821 VA:002DF6E7 Base:2162688 Address: 004F06E7 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6507 BreakPoint at:004F06E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14822 VA:002DF6F2 Base:2162688 Address: 004F06F2 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6508 BreakPoint at:004F06F2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14823 VA:002DF6FD Base:2162688 Address: 004F06FD +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6509 BreakPoint at:004F06FD +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14824 VA:002DF70B Base:2162688 Address: 004F070B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6510 BreakPoint at:004F070B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14825 VA:002DF71A Base:2162688 Address: 004F071A +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6511 BreakPoint at:004F071A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14826 VA:002DF729 Base:2162688 Address: 004F0729 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6512 BreakPoint at:004F0729 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14827 VA:002DF738 Base:2162688 Address: 004F0738 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6513 BreakPoint at:004F0738 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14828 VA:002DF73F Base:2162688 Address: 004F073F +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6516 BreakPoint at:004F073F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14829 VA:002DF745 Base:2162688 Address: 004F0745 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6517 BreakPoint at:004F0745 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14830 VA:002DF767 Base:2162688 Address: 004F0767 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6518 BreakPoint at:004F0767 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14831 VA:002DF78E Base:2162688 Address: 004F078E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6519 BreakPoint at:004F078E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14832 VA:002DF7B0 Base:2162688 Address: 004F07B0 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6520 BreakPoint at:004F07B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14833 VA:002DF7D7 Base:2162688 Address: 004F07D7 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6521 BreakPoint at:004F07D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14834 VA:002DF7E3 Base:2162688 Address: 004F07E3 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6522 BreakPoint at:004F07E3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14835 VA:002DF7E9 Base:2162688 Address: 004F07E9 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6523 BreakPoint at:004F07E9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14836 VA:002DF7EF Base:2162688 Address: 004F07EF +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6524 BreakPoint at:004F07EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14837 VA:002DF7F5 Base:2162688 Address: 004F07F5 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6525 BreakPoint at:004F07F5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14838 VA:002DF7F8 Base:2162688 Address: 004F07F8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6526 BreakPoint at:004F07F8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14839 VA:002DF802 Base:2162688 Address: 004F0802 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6529 BreakPoint at:004F0802 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14840 VA:002DF808 Base:2162688 Address: 004F0808 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6530 BreakPoint at:004F0808 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14841 VA:002DF80E Base:2162688 Address: 004F080E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6531 BreakPoint at:004F080E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14842 VA:002DF814 Base:2162688 Address: 004F0814 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6532 BreakPoint at:004F0814 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14843 VA:002DF820 Base:2162688 Address: 004F0820 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6533 BreakPoint at:004F0820 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14844 VA:002DF842 Base:2162688 Address: 004F0842 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6534 BreakPoint at:004F0842 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14845 VA:002DF869 Base:2162688 Address: 004F0869 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6535 BreakPoint at:004F0869 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14846 VA:002DF88B Base:2162688 Address: 004F088B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6536 BreakPoint at:004F088B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14847 VA:002DF8B2 Base:2162688 Address: 004F08B2 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6537 BreakPoint at:004F08B2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14848 VA:002DF8B8 Base:2162688 Address: 004F08B8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6538 BreakPoint at:004F08B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14849 VA:002DF8BB Base:2162688 Address: 004F08BB +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6539 BreakPoint at:004F08BB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14850 VA:002DF8C5 Base:2162688 Address: 004F08C5 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6542 BreakPoint at:004F08C5 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14851 VA:002DF8CB Base:2162688 Address: 004F08CB +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6543 BreakPoint at:004F08CB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14852 VA:002DF8ED Base:2162688 Address: 004F08ED +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6544 BreakPoint at:004F08ED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14853 VA:002DF914 Base:2162688 Address: 004F0914 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6545 BreakPoint at:004F0914 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14854 VA:002DF936 Base:2162688 Address: 004F0936 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6546 BreakPoint at:004F0936 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14855 VA:002DF95D Base:2162688 Address: 004F095D +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6547 BreakPoint at:004F095D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14856 VA:002DF969 Base:2162688 Address: 004F0969 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6548 BreakPoint at:004F0969 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14857 VA:002DF96F Base:2162688 Address: 004F096F +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6549 BreakPoint at:004F096F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14858 VA:002DF975 Base:2162688 Address: 004F0975 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6550 BreakPoint at:004F0975 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14859 VA:002DF97B Base:2162688 Address: 004F097B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6551 BreakPoint at:004F097B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14860 VA:002DF97E Base:2162688 Address: 004F097E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6552 BreakPoint at:004F097E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14861 VA:002DF988 Base:2162688 Address: 004F0988 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6555 BreakPoint at:004F0988 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14862 VA:002DF98E Base:2162688 Address: 004F098E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6556 BreakPoint at:004F098E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14863 VA:002DF994 Base:2162688 Address: 004F0994 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6557 BreakPoint at:004F0994 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14864 VA:002DF99A Base:2162688 Address: 004F099A +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6558 BreakPoint at:004F099A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14865 VA:002DF9A6 Base:2162688 Address: 004F09A6 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6559 BreakPoint at:004F09A6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14866 VA:002DF9C8 Base:2162688 Address: 004F09C8 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6560 BreakPoint at:004F09C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14867 VA:002DF9EF Base:2162688 Address: 004F09EF +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6561 BreakPoint at:004F09EF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14868 VA:002DFA11 Base:2162688 Address: 004F0A11 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6562 BreakPoint at:004F0A11 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14869 VA:002DFA38 Base:2162688 Address: 004F0A38 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6563 BreakPoint at:004F0A38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14870 VA:002DFA3E Base:2162688 Address: 004F0A3E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6564 BreakPoint at:004F0A3E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14871 VA:002DFA41 Base:2162688 Address: 004F0A41 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6565 BreakPoint at:004F0A41 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14872 VA:002DFA4B Base:2162688 Address: 004F0A4B +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6567 BreakPoint at:004F0A4B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14873 VA:002DFA56 Base:2162688 Address: 004F0A56 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6568 BreakPoint at:004F0A56 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14874 VA:002DFA62 Base:2162688 Address: 004F0A62 +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6569 BreakPoint at:004F0A62 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14875 VA:002DFA6E Base:2162688 Address: 004F0A6E +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6570 BreakPoint at:004F0A6E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14876 VA:002DFA7A Base:2162688 Address: 004F0A7A +Adding breakpoint for DECCiphers.TCipher_Skipjack.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6571 BreakPoint at:004F0A7A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14877 VA:002DFB2C Base:2162688 Address: 004F0B2C +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackDecCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6574 BreakPoint at:004F0B2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14878 VA:002DFB3B Base:2162688 Address: 004F0B3B +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackDecCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6575 BreakPoint at:004F0B3B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14879 VA:002DFB44 Base:2162688 Address: 004F0B44 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackDecCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6580 BreakPoint at:004F0B44 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14880 VA:002DFB4E Base:2162688 Address: 004F0B4E +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackDecCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6582 BreakPoint at:004F0B4E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14881 VA:002DFB56 Base:2162688 Address: 004F0B56 +Adding breakpoint for DECCiphers.TCipher_Skipjack.SkipjackDecCheck in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6583 BreakPoint at:004F0B56 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14882 VA:002DFB5C Base:2162688 Address: 004F0B5C +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +Creating class info for DECCiphers class TCipher_TEA +TBreakPoint.Activate: +Activate DECCiphers.pas line 6591 BreakPoint at:004F0B5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14883 VA:002DFB68 Base:2162688 Address: 004F0B68 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6592 BreakPoint at:004F0B68 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14884 VA:002DFB71 Base:2162688 Address: 004F0B71 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6593 BreakPoint at:004F0B71 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14885 VA:002DFB7B Base:2162688 Address: 004F0B7B +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6594 BreakPoint at:004F0B7B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14886 VA:002DFB85 Base:2162688 Address: 004F0B85 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6595 BreakPoint at:004F0B85 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14887 VA:002DFB8F Base:2162688 Address: 004F0B8F +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6596 BreakPoint at:004F0B8F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14888 VA:002DFB96 Base:2162688 Address: 004F0B96 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6597 BreakPoint at:004F0B96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14889 VA:002DFB9F Base:2162688 Address: 004F0B9F +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6598 BreakPoint at:004F0B9F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14890 VA:002DFBA8 Base:2162688 Address: 004F0BA8 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6599 BreakPoint at:004F0BA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14891 VA:002DFBB4 Base:2162688 Address: 004F0BB4 +Adding breakpoint for DECCiphers.TCipher_TEA.Context in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6600 BreakPoint at:004F0BB4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14892 VA:002DFBBC Base:2162688 Address: 004F0BBC +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6603 BreakPoint at:004F0BBC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14893 VA:002DFBC8 Base:2162688 Address: 004F0BC8 +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6604 BreakPoint at:004F0BC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14894 VA:002DFBD6 Base:2162688 Address: 004F0BD6 +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6605 BreakPoint at:004F0BD6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14895 VA:002DFBDE Base:2162688 Address: 004F0BDE +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6606 BreakPoint at:004F0BDE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14896 VA:002DFBF2 Base:2162688 Address: 004F0BF2 +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6607 BreakPoint at:004F0BF2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14897 VA:002DFC06 Base:2162688 Address: 004F0C06 +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6609 BreakPoint at:004F0C06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14898 VA:002DFC1A Base:2162688 Address: 004F0C1A +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6610 BreakPoint at:004F0C1A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14899 VA:002DFC2C Base:2162688 Address: 004F0C2C +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6611 BreakPoint at:004F0C2C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14900 VA:002DFC35 Base:2162688 Address: 004F0C35 +Adding breakpoint for DECCiphers.TCipher_TEA.SetRounds in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6612 BreakPoint at:004F0C35 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14901 VA:002DFC3C Base:2162688 Address: 004F0C3C +Adding breakpoint for DECCiphers.TCipher_TEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6615 BreakPoint at:004F0C3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14902 VA:002DFC4B Base:2162688 Address: 004F0C4B +Adding breakpoint for DECCiphers.TCipher_TEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6616 BreakPoint at:004F0C4B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14903 VA:002DFC5C Base:2162688 Address: 004F0C5C +Adding breakpoint for DECCiphers.TCipher_TEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6617 BreakPoint at:004F0C5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14904 VA:002DFC6A Base:2162688 Address: 004F0C6A +Adding breakpoint for DECCiphers.TCipher_TEA.DoInit in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6620 BreakPoint at:004F0C6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14905 VA:002DFC70 Base:2162688 Address: 004F0C70 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6627 BreakPoint at:004F0C70 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14906 VA:002DFC7F Base:2162688 Address: 004F0C7F +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6628 BreakPoint at:004F0C7F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14907 VA:002DFCA6 Base:2162688 Address: 004F0CA6 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6630 BreakPoint at:004F0CA6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14908 VA:002DFCAB Base:2162688 Address: 004F0CAB +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6632 BreakPoint at:004F0CAB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14909 VA:002DFCB6 Base:2162688 Address: 004F0CB6 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6633 BreakPoint at:004F0CB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14910 VA:002DFCC2 Base:2162688 Address: 004F0CC2 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6634 BreakPoint at:004F0CC2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14911 VA:002DFCCE Base:2162688 Address: 004F0CCE +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6635 BreakPoint at:004F0CCE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14912 VA:002DFCDA Base:2162688 Address: 004F0CDA +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6636 BreakPoint at:004F0CDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14913 VA:002DFCE2 Base:2162688 Address: 004F0CE2 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6637 BreakPoint at:004F0CE2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14914 VA:002DFCEB Base:2162688 Address: 004F0CEB +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6639 BreakPoint at:004F0CEB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14915 VA:002DFD01 Base:2162688 Address: 004F0D01 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6641 BreakPoint at:004F0D01 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14916 VA:002DFD08 Base:2162688 Address: 004F0D08 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6642 BreakPoint at:004F0D08 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14917 VA:002DFD25 Base:2162688 Address: 004F0D25 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6643 BreakPoint at:004F0D25 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14918 VA:002DFD42 Base:2162688 Address: 004F0D42 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6644 BreakPoint at:004F0D42 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14919 VA:002DFD45 Base:2162688 Address: 004F0D45 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6639 BreakPoint at:004F0D45 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14920 VA:002DFD4A Base:2162688 Address: 004F0D4A +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6646 BreakPoint at:004F0D4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14921 VA:002DFD52 Base:2162688 Address: 004F0D52 +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6647 BreakPoint at:004F0D52 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14922 VA:002DFD5B Base:2162688 Address: 004F0D5B +Adding breakpoint for DECCiphers.TCipher_TEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6648 BreakPoint at:004F0D5B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14923 VA:002DFE10 Base:2162688 Address: 004F0E10 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6655 BreakPoint at:004F0E10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14924 VA:002DFE1F Base:2162688 Address: 004F0E1F +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6656 BreakPoint at:004F0E1F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14925 VA:002DFE46 Base:2162688 Address: 004F0E46 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6658 BreakPoint at:004F0E46 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14926 VA:002DFE53 Base:2162688 Address: 004F0E53 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6660 BreakPoint at:004F0E53 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14927 VA:002DFE5E Base:2162688 Address: 004F0E5E +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6661 BreakPoint at:004F0E5E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14928 VA:002DFE6A Base:2162688 Address: 004F0E6A +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6662 BreakPoint at:004F0E6A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14929 VA:002DFE76 Base:2162688 Address: 004F0E76 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6663 BreakPoint at:004F0E76 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14930 VA:002DFE82 Base:2162688 Address: 004F0E82 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6664 BreakPoint at:004F0E82 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14931 VA:002DFE8A Base:2162688 Address: 004F0E8A +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6665 BreakPoint at:004F0E8A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14932 VA:002DFE93 Base:2162688 Address: 004F0E93 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6667 BreakPoint at:004F0E93 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14933 VA:002DFEA9 Base:2162688 Address: 004F0EA9 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6669 BreakPoint at:004F0EA9 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14934 VA:002DFEC6 Base:2162688 Address: 004F0EC6 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6670 BreakPoint at:004F0EC6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14935 VA:002DFEE3 Base:2162688 Address: 004F0EE3 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6671 BreakPoint at:004F0EE3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14936 VA:002DFEEA Base:2162688 Address: 004F0EEA +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6672 BreakPoint at:004F0EEA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14937 VA:002DFEED Base:2162688 Address: 004F0EED +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6667 BreakPoint at:004F0EED +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14938 VA:002DFEF2 Base:2162688 Address: 004F0EF2 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6674 BreakPoint at:004F0EF2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14939 VA:002DFEFA Base:2162688 Address: 004F0EFA +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6675 BreakPoint at:004F0EFA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14940 VA:002DFF03 Base:2162688 Address: 004F0F03 +Adding breakpoint for DECCiphers.TCipher_TEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6676 BreakPoint at:004F0F03 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14941 VA:002DFFB8 Base:2162688 Address: 004F0FB8 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +Creating class info for DECCiphers class TCipher_XTEA +TBreakPoint.Activate: +Activate DECCiphers.pas line 6685 BreakPoint at:004F0FB8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14942 VA:002DFFC7 Base:2162688 Address: 004F0FC7 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6686 BreakPoint at:004F0FC7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14943 VA:002DFFEE Base:2162688 Address: 004F0FEE +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6688 BreakPoint at:004F0FEE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14944 VA:002DFFF3 Base:2162688 Address: 004F0FF3 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6690 BreakPoint at:004F0FF3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14945 VA:002DFFFB Base:2162688 Address: 004F0FFB +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6691 BreakPoint at:004F0FFB +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14946 VA:002E0004 Base:2162688 Address: 004F1004 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6692 BreakPoint at:004F1004 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14947 VA:002E000D Base:2162688 Address: 004F100D +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6694 BreakPoint at:004F100D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14948 VA:002E0023 Base:2162688 Address: 004F1023 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6696 BreakPoint at:004F1023 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14949 VA:002E0048 Base:2162688 Address: 004F1048 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6697 BreakPoint at:004F1048 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14950 VA:002E004F Base:2162688 Address: 004F104F +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6698 BreakPoint at:004F104F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14951 VA:002E0077 Base:2162688 Address: 004F1077 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6699 BreakPoint at:004F1077 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14952 VA:002E007A Base:2162688 Address: 004F107A +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6694 BreakPoint at:004F107A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14953 VA:002E007F Base:2162688 Address: 004F107F +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6701 BreakPoint at:004F107F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14954 VA:002E0087 Base:2162688 Address: 004F1087 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6702 BreakPoint at:004F1087 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14955 VA:002E0090 Base:2162688 Address: 004F1090 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6703 BreakPoint at:004F1090 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14956 VA:002E0144 Base:2162688 Address: 004F1144 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6711 BreakPoint at:004F1144 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14957 VA:002E0153 Base:2162688 Address: 004F1153 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6712 BreakPoint at:004F1153 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14958 VA:002E017A Base:2162688 Address: 004F117A +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6714 BreakPoint at:004F117A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14959 VA:002E0187 Base:2162688 Address: 004F1187 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6716 BreakPoint at:004F1187 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14960 VA:002E018F Base:2162688 Address: 004F118F +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6717 BreakPoint at:004F118F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14961 VA:002E0198 Base:2162688 Address: 004F1198 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6718 BreakPoint at:004F1198 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14962 VA:002E01A1 Base:2162688 Address: 004F11A1 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6720 BreakPoint at:004F11A1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14963 VA:002E01B7 Base:2162688 Address: 004F11B7 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6722 BreakPoint at:004F11B7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14964 VA:002E01DF Base:2162688 Address: 004F11DF +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6723 BreakPoint at:004F11DF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14965 VA:002E01E6 Base:2162688 Address: 004F11E6 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6724 BreakPoint at:004F11E6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14966 VA:002E020B Base:2162688 Address: 004F120B +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6725 BreakPoint at:004F120B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14967 VA:002E020E Base:2162688 Address: 004F120E +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6720 BreakPoint at:004F120E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14968 VA:002E0213 Base:2162688 Address: 004F1213 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6727 BreakPoint at:004F1213 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14969 VA:002E021B Base:2162688 Address: 004F121B +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6728 BreakPoint at:004F121B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14970 VA:002E0224 Base:2162688 Address: 004F1224 +Adding breakpoint for DECCiphers.TCipher_XTEA.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6729 BreakPoint at:004F1224 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14971 VA:002E02D8 Base:2162688 Address: 004F12D8 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +Creating class info for DECCiphers class TCipher_XTEA_DEC52 +TBreakPoint.Activate: +Activate DECCiphers.pas line 6738 BreakPoint at:004F12D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14972 VA:002E02E7 Base:2162688 Address: 004F12E7 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6739 BreakPoint at:004F12E7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14973 VA:002E030E Base:2162688 Address: 004F130E +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6741 BreakPoint at:004F130E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14974 VA:002E0313 Base:2162688 Address: 004F1313 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6743 BreakPoint at:004F1313 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14975 VA:002E031B Base:2162688 Address: 004F131B +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6744 BreakPoint at:004F131B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14976 VA:002E0324 Base:2162688 Address: 004F1324 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6745 BreakPoint at:004F1324 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14977 VA:002E032D Base:2162688 Address: 004F132D +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6747 BreakPoint at:004F132D +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14978 VA:002E0343 Base:2162688 Address: 004F1343 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6749 BreakPoint at:004F1343 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14979 VA:002E0368 Base:2162688 Address: 004F1368 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6750 BreakPoint at:004F1368 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14980 VA:002E036F Base:2162688 Address: 004F136F +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6751 BreakPoint at:004F136F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14981 VA:002E0397 Base:2162688 Address: 004F1397 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6752 BreakPoint at:004F1397 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14982 VA:002E039A Base:2162688 Address: 004F139A +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6747 BreakPoint at:004F139A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14983 VA:002E039F Base:2162688 Address: 004F139F +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6754 BreakPoint at:004F139F +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14984 VA:002E03A7 Base:2162688 Address: 004F13A7 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6755 BreakPoint at:004F13A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14985 VA:002E03B0 Base:2162688 Address: 004F13B0 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoEncode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6756 BreakPoint at:004F13B0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14986 VA:002E0464 Base:2162688 Address: 004F1464 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6764 BreakPoint at:004F1464 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14987 VA:002E0473 Base:2162688 Address: 004F1473 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6765 BreakPoint at:004F1473 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14988 VA:002E049A Base:2162688 Address: 004F149A +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6767 BreakPoint at:004F149A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14989 VA:002E04A7 Base:2162688 Address: 004F14A7 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6769 BreakPoint at:004F14A7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14990 VA:002E04AF Base:2162688 Address: 004F14AF +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6770 BreakPoint at:004F14AF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14991 VA:002E04B8 Base:2162688 Address: 004F14B8 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6771 BreakPoint at:004F14B8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14992 VA:002E04C1 Base:2162688 Address: 004F14C1 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6773 BreakPoint at:004F14C1 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14993 VA:002E04D7 Base:2162688 Address: 004F14D7 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6775 BreakPoint at:004F14D7 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14994 VA:002E04FF Base:2162688 Address: 004F14FF +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6776 BreakPoint at:004F14FF +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14995 VA:002E0506 Base:2162688 Address: 004F1506 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6777 BreakPoint at:004F1506 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14996 VA:002E052B Base:2162688 Address: 004F152B +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6778 BreakPoint at:004F152B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14997 VA:002E052E Base:2162688 Address: 004F152E +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6773 BreakPoint at:004F152E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14998 VA:002E0533 Base:2162688 Address: 004F1533 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6780 BreakPoint at:004F1533 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:14999 VA:002E053B Base:2162688 Address: 004F153B +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6781 BreakPoint at:004F153B +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:15000 VA:002E0544 Base:2162688 Address: 004F1544 +Adding breakpoint for DECCiphers.TCipher_XTEA_DEC52.DoDecode in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6782 BreakPoint at:004F1544 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:15001 VA:002E05F8 Base:2162688 Address: 004F15F8 +Adding breakpoint for DECCiphers.Finalization in DECCiphers.pas +Creating class info for DECCiphers class DECCiphers +TBreakPoint.Activate: +Activate DECCiphers.pas line 6843 BreakPoint at:004F15F8 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17309 VA:002FBFAC Base:2162688 Address: 0050CFAC +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +Creating class info for DECRandom class RandomSystemTime +TBreakPoint.Activate: +Activate DECRandom.pas line 238 BreakPoint at:0050CFAC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17310 VA:002FBFB2 Base:2162688 Address: 0050CFB2 +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 244 BreakPoint at:0050CFB2 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17311 VA:002FBFD0 Base:2162688 Address: 0050CFD0 +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 245 BreakPoint at:0050CFD0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17312 VA:002FBFF5 Base:2162688 Address: 0050CFF5 +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 247 BreakPoint at:0050CFF5 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17313 VA:002FC000 Base:2162688 Address: 0050D000 +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 255 BreakPoint at:0050D000 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17314 VA:002FC00E Base:2162688 Address: 0050D00E +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 256 BreakPoint at:0050D00E +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17315 VA:002FC02D Base:2162688 Address: 0050D02D +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 257 BreakPoint at:0050D02D +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17316 VA:002FC038 Base:2162688 Address: 0050D038 +Adding breakpoint for DECRandom.RandomSystemTime in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 258 BreakPoint at:0050D038 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17317 VA:002FC044 Base:2162688 Address: 0050D044 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +Creating class info for DECRandom class DoRndBuffer +TBreakPoint.Activate: +Activate DECRandom.pas line 282 BreakPoint at:0050D044 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17318 VA:002FC053 Base:2162688 Address: 0050D053 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 283 BreakPoint at:0050D053 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17319 VA:002FC059 Base:2162688 Address: 0050D059 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 284 BreakPoint at:0050D059 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17320 VA:002FC05F Base:2162688 Address: 0050D05F +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 285 BreakPoint at:0050D05F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17321 VA:002FC065 Base:2162688 Address: 0050D065 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 287 BreakPoint at:0050D065 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17322 VA:002FC06B Base:2162688 Address: 0050D06B +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 289 BreakPoint at:0050D06B +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17323 VA:002FC076 Base:2162688 Address: 0050D076 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 290 BreakPoint at:0050D076 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17324 VA:002FC081 Base:2162688 Address: 0050D081 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 291 BreakPoint at:0050D081 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17325 VA:002FC084 Base:2162688 Address: 0050D084 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 292 BreakPoint at:0050D084 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17326 VA:002FC087 Base:2162688 Address: 0050D087 +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 287 BreakPoint at:0050D087 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17327 VA:002FC08D Base:2162688 Address: 0050D08D +Adding breakpoint for DECRandom.DoRndBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 295 BreakPoint at:0050D08D +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17328 VA:002FC094 Base:2162688 Address: 0050D094 +Adding breakpoint for DECRandom.RandomBuffer in DECRandom.pas +Creating class info for DECRandom class RandomBuffer +TBreakPoint.Activate: +Activate DECRandom.pas line 298 BreakPoint at:0050D094 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17329 VA:002FC0A0 Base:2162688 Address: 0050D0A0 +Adding breakpoint for DECRandom.RandomBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 299 BreakPoint at:0050D0A0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17330 VA:002FC0A9 Base:2162688 Address: 0050D0A9 +Adding breakpoint for DECRandom.RandomBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 300 BreakPoint at:0050D0A9 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17331 VA:002FC0B7 Base:2162688 Address: 0050D0B7 +Adding breakpoint for DECRandom.RandomBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 302 BreakPoint at:0050D0B7 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17332 VA:002FC0CC Base:2162688 Address: 0050D0CC +Adding breakpoint for DECRandom.RandomBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 303 BreakPoint at:0050D0CC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17333 VA:002FC0D0 Base:2162688 Address: 0050D0D0 +Adding breakpoint for DECRandom.RandomBytes in DECRandom.pas +Creating class info for DECRandom class RandomBytes +TBreakPoint.Activate: +Activate DECRandom.pas line 306 BreakPoint at:0050D0D0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17334 VA:002FC0DC Base:2162688 Address: 0050D0DC +Adding breakpoint for DECRandom.RandomBytes in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 307 BreakPoint at:0050D0DC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17335 VA:002FC0F6 Base:2162688 Address: 0050D0F6 +Adding breakpoint for DECRandom.RandomBytes in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 308 BreakPoint at:0050D0F6 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17336 VA:002FC103 Base:2162688 Address: 0050D103 +Adding breakpoint for DECRandom.RandomBytes in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 309 BreakPoint at:0050D103 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17337 VA:002FC108 Base:2162688 Address: 0050D108 +Adding breakpoint for DECRandom.RandomLong in DECRandom.pas +Creating class info for DECRandom class RandomLong +TBreakPoint.Activate: +Activate DECRandom.pas line 322 BreakPoint at:0050D108 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17338 VA:002FC10C Base:2162688 Address: 0050D10C +Adding breakpoint for DECRandom.RandomLong in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 323 BreakPoint at:0050D10C +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17339 VA:002FC119 Base:2162688 Address: 0050D119 +Adding breakpoint for DECRandom.RandomLong in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 324 BreakPoint at:0050D119 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17340 VA:002FC120 Base:2162688 Address: 0050D120 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +Creating class info for DECRandom class RandomSeed +TBreakPoint.Activate: +Activate DECRandom.pas line 327 BreakPoint at:0050D120 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17341 VA:002FC12C Base:2162688 Address: 0050D12C +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 328 BreakPoint at:0050D12C +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17342 VA:002FC135 Base:2162688 Address: 0050D135 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 329 BreakPoint at:0050D135 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17343 VA:002FC143 Base:2162688 Address: 0050D143 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 332 BreakPoint at:0050D143 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17344 VA:002FC149 Base:2162688 Address: 0050D149 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 334 BreakPoint at:0050D149 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17345 VA:002FC150 Base:2162688 Address: 0050D150 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 335 BreakPoint at:0050D150 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17346 VA:002FC156 Base:2162688 Address: 0050D156 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 337 BreakPoint at:0050D156 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17347 VA:002FC159 Base:2162688 Address: 0050D159 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 338 BreakPoint at:0050D159 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17348 VA:002FC17D Base:2162688 Address: 0050D17D +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 335 BreakPoint at:0050D17D +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17349 VA:002FC185 Base:2162688 Address: 0050D185 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 342 BreakPoint at:0050D185 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17350 VA:002FC18F Base:2162688 Address: 0050D18F +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 344 BreakPoint at:0050D18F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17351 VA:002FC194 Base:2162688 Address: 0050D194 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 347 BreakPoint at:0050D194 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17352 VA:002FC197 Base:2162688 Address: 0050D197 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 348 BreakPoint at:0050D197 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17353 VA:002FC1A4 Base:2162688 Address: 0050D1A4 +Adding breakpoint for DECRandom.RandomSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 349 BreakPoint at:0050D1A4 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17354 VA:002FC1B8 Base:2162688 Address: 0050D1B8 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +Creating class info for DECRandom class DoGenerateRandomByte +TBreakPoint.Activate: +Activate DECRandom.pas line 355 BreakPoint at:0050D1B8 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17355 VA:002FC1D0 Base:2162688 Address: 0050D1D0 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 356 BreakPoint at:0050D1D0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17356 VA:002FC1D9 Base:2162688 Address: 0050D1D9 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 357 BreakPoint at:0050D1D9 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17357 VA:002FC1E7 Base:2162688 Address: 0050D1E7 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 359 BreakPoint at:0050D1E7 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17358 VA:002FC1F1 Base:2162688 Address: 0050D1F1 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 360 BreakPoint at:0050D1F1 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17359 VA:002FC205 Base:2162688 Address: 0050D205 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 361 BreakPoint at:0050D205 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17360 VA:002FC219 Base:2162688 Address: 0050D219 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 362 BreakPoint at:0050D219 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17361 VA:002FC223 Base:2162688 Address: 0050D223 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 364 BreakPoint at:0050D223 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17362 VA:002FC244 Base:2162688 Address: 0050D244 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 365 BreakPoint at:0050D244 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17363 VA:002FC24A Base:2162688 Address: 0050D24A +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 367 BreakPoint at:0050D24A +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17364 VA:002FC260 Base:2162688 Address: 0050D260 +Adding breakpoint for DECRandom.DoGenerateRandomByte in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 368 BreakPoint at:0050D260 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17365 VA:002FC294 Base:2162688 Address: 0050D294 +Adding breakpoint for DECRandom.DoBuffer in DECRandom.pas +Creating class info for DECRandom class DoBuffer +TBreakPoint.Activate: +Activate DECRandom.pas line 373 BreakPoint at:0050D294 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17366 VA:002FC2A0 Base:2162688 Address: 0050D2A0 +Adding breakpoint for DECRandom.DoBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 374 BreakPoint at:0050D2A0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17367 VA:002FC2B3 Base:2162688 Address: 0050D2B3 +Adding breakpoint for DECRandom.DoBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 375 BreakPoint at:0050D2B3 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17368 VA:002FC2C4 Base:2162688 Address: 0050D2C4 +Adding breakpoint for DECRandom.DoBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 374 BreakPoint at:0050D2C4 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17369 VA:002FC2C9 Base:2162688 Address: 0050D2C9 +Adding breakpoint for DECRandom.DoBuffer in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 376 BreakPoint at:0050D2C9 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17370 VA:002FC2D0 Base:2162688 Address: 0050D2D0 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +Creating class info for DECRandom class DoSeed +TBreakPoint.Activate: +Activate DECRandom.pas line 395 BreakPoint at:0050D2D0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17371 VA:002FC2DC Base:2162688 Address: 0050D2DC +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 396 BreakPoint at:0050D2DC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17372 VA:002FC2E2 Base:2162688 Address: 0050D2E2 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 399 BreakPoint at:0050D2E2 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17373 VA:002FC2F3 Base:2162688 Address: 0050D2F3 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 400 BreakPoint at:0050D2F3 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17374 VA:002FC2FA Base:2162688 Address: 0050D2FA +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 401 BreakPoint at:0050D2FA +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17375 VA:002FC30D Base:2162688 Address: 0050D30D +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 402 BreakPoint at:0050D30D +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17376 VA:002FC32F Base:2162688 Address: 0050D32F +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 401 BreakPoint at:0050D32F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17377 VA:002FC336 Base:2162688 Address: 0050D336 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 410 BreakPoint at:0050D336 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17378 VA:002FC33E Base:2162688 Address: 0050D33E +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 411 BreakPoint at:0050D33E +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17379 VA:002FC343 Base:2162688 Address: 0050D343 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 413 BreakPoint at:0050D343 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17380 VA:002FC34F Base:2162688 Address: 0050D34F +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 414 BreakPoint at:0050D34F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17381 VA:002FC35F Base:2162688 Address: 0050D35F +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 415 BreakPoint at:0050D35F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17382 VA:002FC362 Base:2162688 Address: 0050D362 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 411 BreakPoint at:0050D362 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17383 VA:002FC36B Base:2162688 Address: 0050D36B +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 417 BreakPoint at:0050D36B +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17384 VA:002FC370 Base:2162688 Address: 0050D370 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 418 BreakPoint at:0050D370 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17385 VA:002FC378 Base:2162688 Address: 0050D378 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 417 BreakPoint at:0050D378 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17386 VA:002FC381 Base:2162688 Address: 0050D381 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 419 BreakPoint at:0050D381 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17387 VA:002FC388 Base:2162688 Address: 0050D388 +Adding breakpoint for DECRandom.DoSeed in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 420 BreakPoint at:0050D388 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17388 VA:002FC38C Base:2162688 Address: 0050D38C +Adding breakpoint for DECRandom.DoInit in DECRandom.pas +Creating class info for DECRandom class DoInit +TBreakPoint.Activate: +Activate DECRandom.pas line 423 BreakPoint at:0050D38C +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17389 VA:002FC38F Base:2162688 Address: 0050D38F +Adding breakpoint for DECRandom.DoInit in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 424 BreakPoint at:0050D38F +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17390 VA:002FC399 Base:2162688 Address: 0050D399 +Adding breakpoint for DECRandom.DoInit in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 425 BreakPoint at:0050D399 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17391 VA:002FC3A3 Base:2162688 Address: 0050D3A3 +Adding breakpoint for DECRandom.DoInit in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 426 BreakPoint at:0050D3A3 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17392 VA:002FC3AC Base:2162688 Address: 0050D3AC +Adding breakpoint for DECRandom.DoInit in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 427 BreakPoint at:0050D3AC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17393 VA:002FC3B0 Base:2162688 Address: 0050D3B0 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +Creating class info for DECRandom class DoDone +TBreakPoint.Activate: +Activate DECRandom.pas line 430 BreakPoint at:0050D3B0 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17394 VA:002FC3B7 Base:2162688 Address: 0050D3B7 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 431 BreakPoint at:0050D3B7 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17395 VA:002FC3C5 Base:2162688 Address: 0050D3C5 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 432 BreakPoint at:0050D3C5 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17396 VA:002FC3CE Base:2162688 Address: 0050D3CE +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 433 BreakPoint at:0050D3CE +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17397 VA:002FC3E7 Base:2162688 Address: 0050D3E7 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 435 BreakPoint at:0050D3E7 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17398 VA:002FC3EC Base:2162688 Address: 0050D3EC +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 436 BreakPoint at:0050D3EC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17399 VA:002FC3F3 Base:2162688 Address: 0050D3F3 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 438 BreakPoint at:0050D3F3 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17400 VA:002FC40A Base:2162688 Address: 0050D40A +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 439 BreakPoint at:0050D40A +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17401 VA:002FC41B Base:2162688 Address: 0050D41B +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 440 BreakPoint at:0050D41B +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17402 VA:002FC422 Base:2162688 Address: 0050D422 +Adding breakpoint for DECRandom.DoDone in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 441 BreakPoint at:0050D422 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17403 VA:002FC438 Base:2162688 Address: 0050D438 +Adding breakpoint for DECRandom.Finalization in DECRandom.pas +Creating class info for DECRandom class DECRandom +TBreakPoint.Activate: +Activate DECRandom.pas line 456 BreakPoint at:0050D438 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:17404 VA:002FC448 Base:2162688 Address: 0050D448 +Adding breakpoint for DECRandom.Finalization in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 458 BreakPoint at:0050D448 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:19235 VA:00327C74 Base:2162688 Address: 00538C74 +Adding breakpoint for DECCRC.DECCRC in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 899 BreakPoint at:00538C74 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:19236 VA:00327C80 Base:2162688 Address: 00538C80 +Adding breakpoint for DECCRC.DECCRC in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 900 BreakPoint at:00538C80 +Setting BreakPoint for module: DECCRC unit DECCRC.pas moduleName: DECCRC unitModuleName: DECCRC addr:19237 VA:00327C85 Base:2162688 Address: 00538C85 +Adding breakpoint for DECCRC.DECCRC in DECCRC.pas +TBreakPoint.Activate: +Activate DECCRC.pas line 902 BreakPoint at:00538C85 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:19238 VA:00327C88 Base:2162688 Address: 00538C88 +Adding breakpoint for DECBaseClass.DECBaseClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 383 BreakPoint at:00538C88 +Setting BreakPoint for module: DECBaseClass unit DECBaseClass.pas moduleName: DECBaseClass unitModuleName: DECBaseClass addr:19239 VA:00327C92 Base:2162688 Address: 00538C92 +Adding breakpoint for DECBaseClass.DECBaseClass in DECBaseClass.pas +TBreakPoint.Activate: +Activate DECBaseClass.pas line 385 BreakPoint at:00538C92 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:19240 VA:00327C94 Base:2162688 Address: 00538C94 +Adding breakpoint for DECFormatBase.DECFormatBase in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 635 BreakPoint at:00538C94 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:19241 VA:00327CA0 Base:2162688 Address: 00538CA0 +Adding breakpoint for DECFormatBase.DECFormatBase in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 639 BreakPoint at:00538CA0 +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:19242 VA:00327CAA Base:2162688 Address: 00538CAA +Adding breakpoint for DECFormatBase.DECFormatBase in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 641 BreakPoint at:00538CAA +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:19243 VA:00327CBB Base:2162688 Address: 00538CBB +Adding breakpoint for DECFormatBase.DECFormatBase in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 643 BreakPoint at:00538CBB +Setting BreakPoint for module: DECFormatBase unit DECFormatBase.pas moduleName: DECFormatBase unitModuleName: DECFormatBase addr:19244 VA:00327CCB Base:2162688 Address: 00538CCB +Adding breakpoint for DECFormatBase.DECFormatBase in DECFormatBase.pas +TBreakPoint.Activate: +Activate DECFormatBase.pas line 645 BreakPoint at:00538CCB +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19245 VA:00327CD0 Base:2162688 Address: 00538CD0 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2084 BreakPoint at:00538CD0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19246 VA:00327CEE Base:2162688 Address: 00538CEE +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2085 BreakPoint at:00538CEE +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19247 VA:00327D08 Base:2162688 Address: 00538D08 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2086 BreakPoint at:00538D08 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19248 VA:00327D22 Base:2162688 Address: 00538D22 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2087 BreakPoint at:00538D22 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19249 VA:00327D3F Base:2162688 Address: 00538D3F +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2088 BreakPoint at:00538D3F +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19250 VA:00327D5C Base:2162688 Address: 00538D5C +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2089 BreakPoint at:00538D5C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19251 VA:00327D79 Base:2162688 Address: 00538D79 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2090 BreakPoint at:00538D79 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19252 VA:00327D96 Base:2162688 Address: 00538D96 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2091 BreakPoint at:00538D96 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19253 VA:00327DB3 Base:2162688 Address: 00538DB3 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2092 BreakPoint at:00538DB3 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19254 VA:00327DD0 Base:2162688 Address: 00538DD0 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2094 BreakPoint at:00538DD0 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19255 VA:00327DEA Base:2162688 Address: 00538DEA +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2095 BreakPoint at:00538DEA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19256 VA:00327E04 Base:2162688 Address: 00538E04 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2096 BreakPoint at:00538E04 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19257 VA:00327E21 Base:2162688 Address: 00538E21 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2097 BreakPoint at:00538E21 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19258 VA:00327E3E Base:2162688 Address: 00538E3E +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2098 BreakPoint at:00538E3E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19259 VA:00327E5B Base:2162688 Address: 00538E5B +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2099 BreakPoint at:00538E5B +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19260 VA:00327E78 Base:2162688 Address: 00538E78 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2100 BreakPoint at:00538E78 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19261 VA:00327E95 Base:2162688 Address: 00538E95 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2101 BreakPoint at:00538E95 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19262 VA:00327EB2 Base:2162688 Address: 00538EB2 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2105 BreakPoint at:00538EB2 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19263 VA:00327EC4 Base:2162688 Address: 00538EC4 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2106 BreakPoint at:00538EC4 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19264 VA:00327ED6 Base:2162688 Address: 00538ED6 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2107 BreakPoint at:00538ED6 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19265 VA:00327EE8 Base:2162688 Address: 00538EE8 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2108 BreakPoint at:00538EE8 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19266 VA:00327EFA Base:2162688 Address: 00538EFA +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2109 BreakPoint at:00538EFA +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19267 VA:00327F0C Base:2162688 Address: 00538F0C +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2110 BreakPoint at:00538F0C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19268 VA:00327F1E Base:2162688 Address: 00538F1E +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2111 BreakPoint at:00538F1E +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19269 VA:00327F30 Base:2162688 Address: 00538F30 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2112 BreakPoint at:00538F30 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19270 VA:00327F42 Base:2162688 Address: 00538F42 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2113 BreakPoint at:00538F42 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19271 VA:00327F54 Base:2162688 Address: 00538F54 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2114 BreakPoint at:00538F54 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19272 VA:00327F66 Base:2162688 Address: 00538F66 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2115 BreakPoint at:00538F66 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19273 VA:00327F78 Base:2162688 Address: 00538F78 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2116 BreakPoint at:00538F78 +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19274 VA:00327F8A Base:2162688 Address: 00538F8A +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2117 BreakPoint at:00538F8A +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19275 VA:00327F9C Base:2162688 Address: 00538F9C +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2122 BreakPoint at:00538F9C +Setting BreakPoint for module: DECFormat unit DECFormat.pas moduleName: DECFormat unitModuleName: DECFormat addr:19276 VA:00327FA6 Base:2162688 Address: 00538FA6 +Adding breakpoint for DECFormat.DECFormat in DECFormat.pas +TBreakPoint.Activate: +Activate DECFormat.pas line 2124 BreakPoint at:00538FA6 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:19282 VA:003281F8 Base:2162688 Address: 005391F8 +Adding breakpoint for DECHashBase.DECHashBase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 778 BreakPoint at:005391F8 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:19283 VA:00328204 Base:2162688 Address: 00539204 +Adding breakpoint for DECHashBase.DECHashBase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 781 BreakPoint at:00539204 +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:19284 VA:0032820E Base:2162688 Address: 0053920E +Adding breakpoint for DECHashBase.DECHashBase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 784 BreakPoint at:0053920E +Setting BreakPoint for module: DECHashBase unit DECHashBase.pas moduleName: DECHashBase unitModuleName: DECHashBase addr:19285 VA:0032821F Base:2162688 Address: 0053921F +Adding breakpoint for DECHashBase.DECHashBase in DECHashBase.pas +TBreakPoint.Activate: +Activate DECHashBase.pas line 786 BreakPoint at:0053921F +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19286 VA:00328224 Base:2162688 Address: 00539224 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5637 BreakPoint at:00539224 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19287 VA:00328234 Base:2162688 Address: 00539234 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5639 BreakPoint at:00539234 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19288 VA:0032823E Base:2162688 Address: 0053923E +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5642 BreakPoint at:0053923E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19289 VA:00328250 Base:2162688 Address: 00539250 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5643 BreakPoint at:00539250 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19290 VA:00328262 Base:2162688 Address: 00539262 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5644 BreakPoint at:00539262 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19291 VA:00328274 Base:2162688 Address: 00539274 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5645 BreakPoint at:00539274 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19292 VA:00328286 Base:2162688 Address: 00539286 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5646 BreakPoint at:00539286 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19293 VA:00328298 Base:2162688 Address: 00539298 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5647 BreakPoint at:00539298 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19294 VA:003282AA Base:2162688 Address: 005392AA +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5648 BreakPoint at:005392AA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19295 VA:003282BC Base:2162688 Address: 005392BC +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5649 BreakPoint at:005392BC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19296 VA:003282CE Base:2162688 Address: 005392CE +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5650 BreakPoint at:005392CE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19297 VA:003282E0 Base:2162688 Address: 005392E0 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5651 BreakPoint at:005392E0 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19298 VA:003282F2 Base:2162688 Address: 005392F2 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5652 BreakPoint at:005392F2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19299 VA:00328304 Base:2162688 Address: 00539304 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5653 BreakPoint at:00539304 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19300 VA:00328316 Base:2162688 Address: 00539316 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5654 BreakPoint at:00539316 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19301 VA:00328328 Base:2162688 Address: 00539328 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5655 BreakPoint at:00539328 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19302 VA:0032833A Base:2162688 Address: 0053933A +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5656 BreakPoint at:0053933A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19303 VA:0032834C Base:2162688 Address: 0053934C +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5657 BreakPoint at:0053934C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19304 VA:0032835E Base:2162688 Address: 0053935E +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5658 BreakPoint at:0053935E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19305 VA:00328370 Base:2162688 Address: 00539370 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5659 BreakPoint at:00539370 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19306 VA:00328382 Base:2162688 Address: 00539382 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5660 BreakPoint at:00539382 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19307 VA:00328394 Base:2162688 Address: 00539394 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5661 BreakPoint at:00539394 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19308 VA:003283A6 Base:2162688 Address: 005393A6 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5662 BreakPoint at:005393A6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19309 VA:003283B8 Base:2162688 Address: 005393B8 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5663 BreakPoint at:005393B8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19310 VA:003283CA Base:2162688 Address: 005393CA +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5664 BreakPoint at:005393CA +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19311 VA:003283DC Base:2162688 Address: 005393DC +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5665 BreakPoint at:005393DC +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19312 VA:003283EE Base:2162688 Address: 005393EE +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5666 BreakPoint at:005393EE +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19313 VA:00328400 Base:2162688 Address: 00539400 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5667 BreakPoint at:00539400 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19314 VA:00328412 Base:2162688 Address: 00539412 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5668 BreakPoint at:00539412 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19315 VA:00328424 Base:2162688 Address: 00539424 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5669 BreakPoint at:00539424 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19316 VA:00328436 Base:2162688 Address: 00539436 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5670 BreakPoint at:00539436 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19317 VA:00328448 Base:2162688 Address: 00539448 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5671 BreakPoint at:00539448 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19318 VA:0032845A Base:2162688 Address: 0053945A +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5678 BreakPoint at:0053945A +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19319 VA:0032846C Base:2162688 Address: 0053946C +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5681 BreakPoint at:0053946C +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19320 VA:0032847E Base:2162688 Address: 0053947E +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5682 BreakPoint at:0053947E +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19321 VA:00328490 Base:2162688 Address: 00539490 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5684 BreakPoint at:00539490 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19322 VA:003284A2 Base:2162688 Address: 005394A2 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5685 BreakPoint at:005394A2 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19323 VA:003284B4 Base:2162688 Address: 005394B4 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5686 BreakPoint at:005394B4 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19324 VA:003284C6 Base:2162688 Address: 005394C6 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5687 BreakPoint at:005394C6 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19325 VA:003284D8 Base:2162688 Address: 005394D8 +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5689 BreakPoint at:005394D8 +Setting BreakPoint for module: DECHash unit DECHash.pas moduleName: DECHash unitModuleName: DECHash addr:19326 VA:003284EA Base:2162688 Address: 005394EA +Adding breakpoint for DECHash.DECHash in DECHash.pas +TBreakPoint.Activate: +Activate DECHash.pas line 5697 BreakPoint at:005394EA +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:19333 VA:0032899C Base:2162688 Address: 0053999C +Adding breakpoint for DECCipherBase.DECCipherBase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1206 BreakPoint at:0053999C +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:19334 VA:003289A8 Base:2162688 Address: 005399A8 +Adding breakpoint for DECCipherBase.DECCipherBase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1209 BreakPoint at:005399A8 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:19335 VA:003289B2 Base:2162688 Address: 005399B2 +Adding breakpoint for DECCipherBase.DECCipherBase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1212 BreakPoint at:005399B2 +Setting BreakPoint for module: DECCipherBase unit DECCipherBase.pas moduleName: DECCipherBase unitModuleName: DECCipherBase addr:19336 VA:003289C3 Base:2162688 Address: 005399C3 +Adding breakpoint for DECCipherBase.DECCipherBase in DECCipherBase.pas +TBreakPoint.Activate: +Activate DECCipherBase.pas line 1214 BreakPoint at:005399C3 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19337 VA:003289C8 Base:2162688 Address: 005399C8 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6787 BreakPoint at:005399C8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19338 VA:003289D8 Base:2162688 Address: 005399D8 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6788 BreakPoint at:005399D8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19339 VA:003289E2 Base:2162688 Address: 005399E2 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6791 BreakPoint at:005399E2 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19340 VA:003289F4 Base:2162688 Address: 005399F4 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6792 BreakPoint at:005399F4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19341 VA:00328A06 Base:2162688 Address: 00539A06 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6793 BreakPoint at:00539A06 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19342 VA:00328A18 Base:2162688 Address: 00539A18 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6794 BreakPoint at:00539A18 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19343 VA:00328A2A Base:2162688 Address: 00539A2A +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6795 BreakPoint at:00539A2A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19344 VA:00328A3C Base:2162688 Address: 00539A3C +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6796 BreakPoint at:00539A3C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19345 VA:00328A4E Base:2162688 Address: 00539A4E +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6797 BreakPoint at:00539A4E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19346 VA:00328A60 Base:2162688 Address: 00539A60 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6798 BreakPoint at:00539A60 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19347 VA:00328A72 Base:2162688 Address: 00539A72 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6802 BreakPoint at:00539A72 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19348 VA:00328A84 Base:2162688 Address: 00539A84 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6803 BreakPoint at:00539A84 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19349 VA:00328A96 Base:2162688 Address: 00539A96 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6804 BreakPoint at:00539A96 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19350 VA:00328AA8 Base:2162688 Address: 00539AA8 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6805 BreakPoint at:00539AA8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19351 VA:00328ABA Base:2162688 Address: 00539ABA +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6806 BreakPoint at:00539ABA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19352 VA:00328ACC Base:2162688 Address: 00539ACC +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6807 BreakPoint at:00539ACC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19353 VA:00328ADE Base:2162688 Address: 00539ADE +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6808 BreakPoint at:00539ADE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19354 VA:00328AF0 Base:2162688 Address: 00539AF0 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6809 BreakPoint at:00539AF0 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19355 VA:00328B02 Base:2162688 Address: 00539B02 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6810 BreakPoint at:00539B02 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19356 VA:00328B14 Base:2162688 Address: 00539B14 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6811 BreakPoint at:00539B14 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19357 VA:00328B26 Base:2162688 Address: 00539B26 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6812 BreakPoint at:00539B26 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19358 VA:00328B38 Base:2162688 Address: 00539B38 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6813 BreakPoint at:00539B38 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19359 VA:00328B4A Base:2162688 Address: 00539B4A +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6814 BreakPoint at:00539B4A +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19360 VA:00328B5C Base:2162688 Address: 00539B5C +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6815 BreakPoint at:00539B5C +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19361 VA:00328B6E Base:2162688 Address: 00539B6E +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6816 BreakPoint at:00539B6E +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19362 VA:00328B80 Base:2162688 Address: 00539B80 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6817 BreakPoint at:00539B80 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19363 VA:00328B92 Base:2162688 Address: 00539B92 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6820 BreakPoint at:00539B92 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19364 VA:00328BA4 Base:2162688 Address: 00539BA4 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6821 BreakPoint at:00539BA4 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19365 VA:00328BB6 Base:2162688 Address: 00539BB6 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6822 BreakPoint at:00539BB6 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19366 VA:00328BC8 Base:2162688 Address: 00539BC8 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6823 BreakPoint at:00539BC8 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19367 VA:00328BDA Base:2162688 Address: 00539BDA +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6824 BreakPoint at:00539BDA +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19368 VA:00328BEC Base:2162688 Address: 00539BEC +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6825 BreakPoint at:00539BEC +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19369 VA:00328BFE Base:2162688 Address: 00539BFE +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6826 BreakPoint at:00539BFE +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19370 VA:00328C10 Base:2162688 Address: 00539C10 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6827 BreakPoint at:00539C10 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19371 VA:00328C22 Base:2162688 Address: 00539C22 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6828 BreakPoint at:00539C22 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19372 VA:00328C34 Base:2162688 Address: 00539C34 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6829 BreakPoint at:00539C34 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19373 VA:00328C46 Base:2162688 Address: 00539C46 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6830 BreakPoint at:00539C46 +Setting BreakPoint for module: DECCiphers unit DECCiphers.pas moduleName: DECCiphers unitModuleName: DECCiphers addr:19374 VA:00328C58 Base:2162688 Address: 00539C58 +Adding breakpoint for DECCiphers.DECCiphers in DECCiphers.pas +TBreakPoint.Activate: +Activate DECCiphers.pas line 6841 BreakPoint at:00539C58 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:19377 VA:003290EC Base:2162688 Address: 0053A0EC +Adding breakpoint for DECRandom.DECRandom in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 446 BreakPoint at:0053A0EC +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:19378 VA:00329102 Base:2162688 Address: 0053A102 +Adding breakpoint for DECRandom.DECRandom in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 449 BreakPoint at:0053A102 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:19379 VA:00329107 Base:2162688 Address: 0053A107 +Adding breakpoint for DECRandom.DECRandom in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 452 BreakPoint at:0053A107 +Setting BreakPoint for module: DECRandom unit DECRandom.pas moduleName: DECRandom unitModuleName: DECRandom addr:19380 VA:0032910C Base:2162688 Address: 0053A10C +Adding breakpoint for DECRandom.DECRandom in DECRandom.pas +TBreakPoint.Activate: +Activate DECRandom.pas line 455 BreakPoint at:0053A10C +Module DECDUnitTestSuite skipped +Module System.Generics.Collections skipped +Module System.Generics.Defaults skipped +Module TestDECBaseClass skipped +Module TestDECCipher skipped +Module TestDECCipherFormats skipped +Module TestDECCipherModes skipped +Module TestDECCipherModesGCM skipped +Module TestDECCRC skipped +Module TestDECFormat skipped +Module TestDECFormatBase skipped +Module TestDECHash skipped +Module TestDECHashKDF skipped +Module TestDECHashMAC skipped +Module TestDECHashSHA3 skipped +Module TestDECRandom skipped +Module TestDECTestDataContainer skipped +Module TestDECUtil skipped +Done adding BreakPoints +Loading DLL at addr:77150000 (\\?\C:\Windows\SysWOW64\ntdll.dll) size :1180672 +Done adding BreakPoints +Loading DLL at addr:761C0000 (\\?\C:\Windows\SysWOW64\kernel32.dll) size :417792 +Done adding BreakPoints +Loading DLL at addr:752C0000 (\\?\C:\Windows\SysWOW64\KernelBase.dll) size :1954816 +Done adding BreakPoints +Create thread:5228 +Create thread:3408 +Loading DLL at addr:76410000 (\\?\C:\Windows\SysWOW64\shell32.dll) size :5512704 +Done adding BreakPoints +Loading DLL at addr:762B0000 (\\?\C:\Windows\SysWOW64\msvcp_win.dll) size :449536 +Done adding BreakPoints +Loading DLL at addr:77020000 (\\?\C:\Windows\SysWOW64\ucrtbase.dll) size :1106432 +Done adding BreakPoints +Loading DLL at addr:73A40000 (\\?\C:\Windows\SysWOW64\winspool.drv) size :330240 +Done adding BreakPoints +Loading DLL at addr:76C10000 (\\?\C:\Windows\SysWOW64\user32.dll) size :671744 +Done adding BreakPoints +Loading DLL at addr:761A0000 (\\?\C:\Windows\SysWOW64\win32u.dll) size :21504 +Done adding BreakPoints +Loading DLL at addr:74F80000 (\\?\C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.1110_none_c0da534e38c01f4d\comctl32.dll) size :466432 +Done adding BreakPoints +Loading DLL at addr:76FE0000 (\\?\C:\Windows\SysWOW64\gdi32.dll) size :110592 +Done adding BreakPoints +Loading DLL at addr:76330000 (\\?\C:\Windows\SysWOW64\gdi32full.dll) size :766976 +Done adding BreakPoints +Loading DLL at addr:75130000 (\\?\C:\Windows\SysWOW64\advapi32.dll) size :428544 +Done adding BreakPoints +Loading DLL at addr:759F0000 (\\?\C:\Windows\SysWOW64\ole32.dll) size :758272 +Done adding BreakPoints +Loading DLL at addr:76040000 (\\?\C:\Windows\SysWOW64\msvcrt.dll) size :722432 +Done adding BreakPoints +Loading DLL at addr:75010000 (\\?\C:\Windows\SysWOW64\rpcrt4.dll) size :701952 +Done adding BreakPoints +Loading DLL at addr:76A20000 (\\?\C:\Windows\SysWOW64\sechost.dll) size :418304 +Done adding BreakPoints +Loading DLL at addr:75690000 (\\?\C:\Windows\SysWOW64\combase.dll) size :2342912 +Done adding BreakPoints +Loading DLL at addr:76100000 (\\?\C:\Windows\SysWOW64\oleaut32.dll) size :552960 +Done adding BreakPoints +Loading DLL at addr:74F70000 (\\?\C:\Windows\SysWOW64\version.dll) size :10752 +Done adding BreakPoints +Couldn't find BreakPoint for exception address:77201EE2 +Loading DLL at addr:76B80000 (\\?\C:\Windows\SysWOW64\imm32.dll) size :104448 +Done adding BreakPoints +Loading DLL at addr:75910000 (\\?\C:\Windows\SysWOW64\msctf.dll) size :784384 +Done adding BreakPoints +Loading DLL at addr:74270000 (\\?\C:\Windows\SysWOW64\uxtheme.dll) size :415232 +Done adding BreakPoints +Loading DLL at addr:742F0000 (\\?\C:\Windows\SysWOW64\kernel.appcore.dll) size :27136 +Done adding BreakPoints +Loading DLL at addr:750D0000 (\\?\C:\Windows\SysWOW64\bcryptprimitives.dll) size :356864 +Done adding BreakPoints +Loading DLL at addr:74350000 (\\?\C:\Windows\SysWOW64\wtsapi32.dll) size :35328 +Done adding BreakPoints +Loading DLL at addr:74090000 (\\?\C:\Windows\SysWOW64\winsta.dll) size :266240 +Done adding BreakPoints +Adding coverage:DECCRC.pas (DECCRC) 899 +Clearing BreakPoint at 00538C74 +De-Activate DECCRC.pas line 899 BreakPoint at:00538C74 +Adding coverage:DECCRC.pas (DECCRC) 900 +Clearing BreakPoint at 00538C80 +De-Activate DECCRC.pas line 900 BreakPoint at:00538C80 +Adding coverage:DECCRC.pas (DECCRC) 891 +Clearing BreakPoint at 00452130 +De-Activate DECCRC.pas line 891 BreakPoint at:00452130 +Adding coverage:DECCRC.pas (DECCRC) 892 +Clearing BreakPoint at 00452133 +De-Activate DECCRC.pas line 892 BreakPoint at:00452133 +Adding coverage:DECCRC.pas (DECCRC) 747 +Clearing BreakPoint at 00451FD0 +De-Activate DECCRC.pas line 747 BreakPoint at:00451FD0 +Adding coverage:DECCRC.pas (DECCRC) 750 +Clearing BreakPoint at 00451FD4 +De-Activate DECCRC.pas line 750 BreakPoint at:00451FD4 +Adding coverage:DECCRC.pas (DECCRC) 751 +Clearing BreakPoint at 00451FE4 +De-Activate DECCRC.pas line 751 BreakPoint at:00451FE4 +Adding coverage:DECCRC.pas (DECCRC) 602 +Clearing BreakPoint at 00451D7C +De-Activate DECCRC.pas line 602 BreakPoint at:00451D7C +Adding coverage:DECCRC.pas (DECCRC) 603 +Clearing BreakPoint at 00451D88 +De-Activate DECCRC.pas line 603 BreakPoint at:00451D88 +Adding coverage:DECCRC.pas (DECCRC) 505 +Clearing BreakPoint at 00451A68 +De-Activate DECCRC.pas line 505 BreakPoint at:00451A68 +Adding coverage:DECCRC.pas (DECCRC) 506 +Clearing BreakPoint at 00451A77 +De-Activate DECCRC.pas line 506 BreakPoint at:00451A77 +Adding coverage:DECCRC.pas (DECCRC) 508 +Clearing BreakPoint at 00451A81 +De-Activate DECCRC.pas line 508 BreakPoint at:00451A81 +Adding coverage:DECCRC.pas (DECCRC) 509 +Clearing BreakPoint at 00451A8D +De-Activate DECCRC.pas line 509 BreakPoint at:00451A8D +Adding coverage:DECCRC.pas (DECCRC) 510 +Clearing BreakPoint at 00451A99 +De-Activate DECCRC.pas line 510 BreakPoint at:00451A99 +Adding coverage:DECCRC.pas (DECCRC) 511 +Clearing BreakPoint at 00451AA5 +De-Activate DECCRC.pas line 511 BreakPoint at:00451AA5 +Adding coverage:DECCRC.pas (DECCRC) 512 +Clearing BreakPoint at 00451AB1 +De-Activate DECCRC.pas line 512 BreakPoint at:00451AB1 +Adding coverage:DECCRC.pas (DECCRC) 513 +Clearing BreakPoint at 00451ABD +De-Activate DECCRC.pas line 513 BreakPoint at:00451ABD +Adding coverage:DECCRC.pas (DECCRC) 514 +Clearing BreakPoint at 00451AC9 +De-Activate DECCRC.pas line 514 BreakPoint at:00451AC9 +Adding coverage:DECCRC.pas (DECCRC) 515 +Clearing BreakPoint at 00451AD8 +De-Activate DECCRC.pas line 515 BreakPoint at:00451AD8 +Adding coverage:DECCRC.pas (DECCRC) 516 +Clearing BreakPoint at 00451AE3 +De-Activate DECCRC.pas line 516 BreakPoint at:00451AE3 +Adding coverage:DECCRC.pas (DECCRC) 518 +Clearing BreakPoint at 00451AF4 +De-Activate DECCRC.pas line 518 BreakPoint at:00451AF4 +Adding coverage:DECCRC.pas (DECCRC) 520 +Clearing BreakPoint at 00451AFE +De-Activate DECCRC.pas line 520 BreakPoint at:00451AFE +Adding coverage:DECCRC.pas (DECCRC) 521 +Clearing BreakPoint at 00451B0A +De-Activate DECCRC.pas line 521 BreakPoint at:00451B0A +Adding coverage:DECCRC.pas (DECCRC) 523 +Clearing BreakPoint at 00451B0F +De-Activate DECCRC.pas line 523 BreakPoint at:00451B0F +Adding coverage:DECCRC.pas (DECCRC) 524 +Clearing BreakPoint at 00451B1B +De-Activate DECCRC.pas line 524 BreakPoint at:00451B1B +Adding coverage:DECCRC.pas (DECCRC) 525 +Clearing BreakPoint at 00451B1E +De-Activate DECCRC.pas line 525 BreakPoint at:00451B1E +Adding coverage:DECCRC.pas (DECCRC) 526 +Clearing BreakPoint at 00451B21 +De-Activate DECCRC.pas line 526 BreakPoint at:00451B21 +Adding coverage:DECCRC.pas (DECCRC) 528 +Clearing BreakPoint at 00451B27 +De-Activate DECCRC.pas line 528 BreakPoint at:00451B27 +Adding coverage:DECCRC.pas (DECCRC) 529 +Clearing BreakPoint at 00451B2B +De-Activate DECCRC.pas line 529 BreakPoint at:00451B2B +Adding coverage:DECCRC.pas (DECCRC) 531 +Clearing BreakPoint at 00451B32 +De-Activate DECCRC.pas line 531 BreakPoint at:00451B32 +Adding coverage:DECCRC.pas (DECCRC) 533 +Clearing BreakPoint at 00451B38 +De-Activate DECCRC.pas line 533 BreakPoint at:00451B38 +Adding coverage:DECCRC.pas (DECCRC) 534 +Clearing BreakPoint at 00451B46 +De-Activate DECCRC.pas line 534 BreakPoint at:00451B46 +Adding coverage:DECCRC.pas (DECCRC) 536 +Clearing BreakPoint at 00451B52 +De-Activate DECCRC.pas line 536 BreakPoint at:00451B52 +Adding coverage:DECCRC.pas (DECCRC) 537 +Clearing BreakPoint at 00451B60 +De-Activate DECCRC.pas line 537 BreakPoint at:00451B60 +Adding coverage:DECCRC.pas (DECCRC) 539 +Clearing BreakPoint at 00451B6C +De-Activate DECCRC.pas line 539 BreakPoint at:00451B6C +Adding coverage:DECCRC.pas (DECCRC) 540 +Clearing BreakPoint at 00451B7A +De-Activate DECCRC.pas line 540 BreakPoint at:00451B7A +Adding coverage:DECCRC.pas (DECCRC) 542 +Clearing BreakPoint at 00451B86 +De-Activate DECCRC.pas line 542 BreakPoint at:00451B86 +Adding coverage:DECCRC.pas (DECCRC) 543 +Clearing BreakPoint at 00451B94 +De-Activate DECCRC.pas line 543 BreakPoint at:00451B94 +Adding coverage:DECCRC.pas (DECCRC) 545 +Clearing BreakPoint at 00451BA0 +De-Activate DECCRC.pas line 545 BreakPoint at:00451BA0 +Adding coverage:DECCRC.pas (DECCRC) 546 +Clearing BreakPoint at 00451BAE +De-Activate DECCRC.pas line 546 BreakPoint at:00451BAE +Adding coverage:DECCRC.pas (DECCRC) 548 +Clearing BreakPoint at 00451BBA +De-Activate DECCRC.pas line 548 BreakPoint at:00451BBA +Adding coverage:DECCRC.pas (DECCRC) 549 +Clearing BreakPoint at 00451BC8 +De-Activate DECCRC.pas line 549 BreakPoint at:00451BC8 +Adding coverage:DECCRC.pas (DECCRC) 551 +Clearing BreakPoint at 00451BD4 +De-Activate DECCRC.pas line 551 BreakPoint at:00451BD4 +Adding coverage:DECCRC.pas (DECCRC) 552 +Clearing BreakPoint at 00451BE2 +De-Activate DECCRC.pas line 552 BreakPoint at:00451BE2 +Adding coverage:DECCRC.pas (DECCRC) 554 +Clearing BreakPoint at 00451BEE +De-Activate DECCRC.pas line 554 BreakPoint at:00451BEE +Adding coverage:DECCRC.pas (DECCRC) 555 +Clearing BreakPoint at 00451BFC +De-Activate DECCRC.pas line 555 BreakPoint at:00451BFC +Adding coverage:DECCRC.pas (DECCRC) 557 +Clearing BreakPoint at 00451C08 +De-Activate DECCRC.pas line 557 BreakPoint at:00451C08 +Adding coverage:DECCRC.pas (DECCRC) 558 +Clearing BreakPoint at 00451C14 +De-Activate DECCRC.pas line 558 BreakPoint at:00451C14 +Adding coverage:DECCRC.pas (DECCRC) 529 +Clearing BreakPoint at 00451C17 +De-Activate DECCRC.pas line 529 BreakPoint at:00451C17 +Adding coverage:DECCRC.pas (DECCRC) 594 +Clearing BreakPoint at 00451D67 +De-Activate DECCRC.pas line 594 BreakPoint at:00451D67 +Adding coverage:DECCRC.pas (DECCRC) 598 +Clearing BreakPoint at 00451D71 +De-Activate DECCRC.pas line 598 BreakPoint at:00451D71 +Adding coverage:DECCRC.pas (DECCRC) 609 +Clearing BreakPoint at 00451DEA +De-Activate DECCRC.pas line 609 BreakPoint at:00451DEA +Adding coverage:DECCRC.pas (DECCRC) 752 +Clearing BreakPoint at 00451FF0 +De-Activate DECCRC.pas line 752 BreakPoint at:00451FF0 +Adding coverage:DECCRC.pas (DECCRC) 753 +Clearing BreakPoint at 00451FF8 +De-Activate DECCRC.pas line 753 BreakPoint at:00451FF8 +Adding coverage:DECCRC.pas (DECCRC) 893 +Clearing BreakPoint at 00452138 +De-Activate DECCRC.pas line 893 BreakPoint at:00452138 +Adding coverage:DECCRC.pas (DECCRC) 818 +Clearing BreakPoint at 00452080 +De-Activate DECCRC.pas line 818 BreakPoint at:00452080 +Adding coverage:DECCRC.pas (DECCRC) 821 +Clearing BreakPoint at 00452084 +De-Activate DECCRC.pas line 821 BreakPoint at:00452084 +Adding coverage:DECCRC.pas (DECCRC) 822 +Clearing BreakPoint at 00452094 +De-Activate DECCRC.pas line 822 BreakPoint at:00452094 +Adding coverage:DECCRC.pas (DECCRC) 823 +Clearing BreakPoint at 004520A0 +De-Activate DECCRC.pas line 823 BreakPoint at:004520A0 +Adding coverage:DECCRC.pas (DECCRC) 824 +Clearing BreakPoint at 004520A8 +De-Activate DECCRC.pas line 824 BreakPoint at:004520A8 +Adding coverage:DECCRC.pas (DECCRC) 894 +Clearing BreakPoint at 0045213D +De-Activate DECCRC.pas line 894 BreakPoint at:0045213D +Adding coverage:DECCRC.pas (DECCRC) 902 +Clearing BreakPoint at 00538C85 +De-Activate DECCRC.pas line 902 BreakPoint at:00538C85 +Adding coverage:DECBaseClass.pas (DECBaseClass) 383 +Clearing BreakPoint at 00538C88 +De-Activate DECBaseClass.pas line 383 BreakPoint at:00538C88 +Adding coverage:DECBaseClass.pas (DECBaseClass) 385 +Clearing BreakPoint at 00538C92 +De-Activate DECBaseClass.pas line 385 BreakPoint at:00538C92 +Adding coverage:DECFormatBase.pas (DECFormatBase) 635 +Clearing BreakPoint at 00538C94 +De-Activate DECFormatBase.pas line 635 BreakPoint at:00538C94 +Adding coverage:DECFormatBase.pas (DECFormatBase) 639 +Clearing BreakPoint at 00538CA0 +De-Activate DECFormatBase.pas line 639 BreakPoint at:00538CA0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 641 +Clearing BreakPoint at 00538CAA +De-Activate DECFormatBase.pas line 641 BreakPoint at:00538CAA +Adding coverage:DECFormatBase.pas (DECFormatBase) 643 +Clearing BreakPoint at 00538CBB +De-Activate DECFormatBase.pas line 643 BreakPoint at:00538CBB +Adding coverage:DECBaseClass.pas (DECBaseClass) 260 +Clearing BreakPoint at 00454710 +De-Activate DECBaseClass.pas line 260 BreakPoint at:00454710 +Adding coverage:DECBaseClass.pas (DECBaseClass) 261 +Clearing BreakPoint at 0045471C +De-Activate DECBaseClass.pas line 261 BreakPoint at:0045471C +Adding coverage:DECBaseClass.pas (DECBaseClass) 237 +Clearing BreakPoint at 004545C0 +De-Activate DECBaseClass.pas line 237 BreakPoint at:004545C0 +Adding coverage:DECBaseClass.pas (DECBaseClass) 248 +Clearing BreakPoint at 004545E8 +De-Activate DECBaseClass.pas line 248 BreakPoint at:004545E8 +Adding coverage:DECBaseClass.pas (DECBaseClass) 250 +Clearing BreakPoint at 0045465E +De-Activate DECBaseClass.pas line 250 BreakPoint at:0045465E +Adding coverage:DECCRC.pas (DECCRC) 868 +Clearing BreakPoint at 004520B0 +De-Activate DECCRC.pas line 868 BreakPoint at:004520B0 +Adding coverage:DECCRC.pas (DECCRC) 869 +Clearing BreakPoint at 004520BF +De-Activate DECCRC.pas line 869 BreakPoint at:004520BF +Adding coverage:DECCRC.pas (DECCRC) 871 +Clearing BreakPoint at 004520C5 +De-Activate DECCRC.pas line 871 BreakPoint at:004520C5 +Adding coverage:DECCRC.pas (DECCRC) 872 +Clearing BreakPoint at 004520CD +De-Activate DECCRC.pas line 872 BreakPoint at:004520CD +Adding coverage:DECCRC.pas (DECCRC) 875 +Clearing BreakPoint at 004520DB +De-Activate DECCRC.pas line 875 BreakPoint at:004520DB +Adding coverage:DECCRC.pas (DECCRC) 876 +Clearing BreakPoint at 004520E3 +De-Activate DECCRC.pas line 876 BreakPoint at:004520E3 +Adding coverage:DECCRC.pas (DECCRC) 878 +Clearing BreakPoint at 004520E9 +De-Activate DECCRC.pas line 878 BreakPoint at:004520E9 +Adding coverage:DECCRC.pas (DECCRC) 879 +Clearing BreakPoint at 004520F4 +De-Activate DECCRC.pas line 879 BreakPoint at:004520F4 +Adding coverage:DECCRC.pas (DECCRC) 880 +Clearing BreakPoint at 0045210A +De-Activate DECCRC.pas line 880 BreakPoint at:0045210A +Adding coverage:DECCRC.pas (DECCRC) 881 +Clearing BreakPoint at 0045210D +De-Activate DECCRC.pas line 881 BreakPoint at:0045210D +Adding coverage:DECCRC.pas (DECCRC) 882 +Clearing BreakPoint at 00452110 +De-Activate DECCRC.pas line 882 BreakPoint at:00452110 +Adding coverage:DECCRC.pas (DECCRC) 883 +Clearing BreakPoint at 00452116 +De-Activate DECCRC.pas line 883 BreakPoint at:00452116 +Adding coverage:DECCRC.pas (DECCRC) 887 +Clearing BreakPoint at 00452126 +De-Activate DECCRC.pas line 887 BreakPoint at:00452126 +Adding coverage:DECBaseClass.pas (DECBaseClass) 257 +Clearing BreakPoint at 004546D8 +De-Activate DECBaseClass.pas line 257 BreakPoint at:004546D8 +Adding coverage:DECBaseClass.pas (DECBaseClass) 262 +Clearing BreakPoint at 00454731 +De-Activate DECBaseClass.pas line 262 BreakPoint at:00454731 +Adding coverage:DECFormatBase.pas (DECFormatBase) 645 +Clearing BreakPoint at 00538CCB +De-Activate DECFormatBase.pas line 645 BreakPoint at:00538CCB +Adding coverage:DECFormat.pas (DECFormat) 2084 +Clearing BreakPoint at 00538CD0 +De-Activate DECFormat.pas line 2084 BreakPoint at:00538CD0 +Adding coverage:DECFormat.pas (DECFormat) 2085 +Clearing BreakPoint at 00538CEE +De-Activate DECFormat.pas line 2085 BreakPoint at:00538CEE +Adding coverage:DECFormat.pas (DECFormat) 2086 +Clearing BreakPoint at 00538D08 +De-Activate DECFormat.pas line 2086 BreakPoint at:00538D08 +Adding coverage:DECFormat.pas (DECFormat) 2087 +Clearing BreakPoint at 00538D22 +De-Activate DECFormat.pas line 2087 BreakPoint at:00538D22 +Adding coverage:DECFormat.pas (DECFormat) 2088 +Clearing BreakPoint at 00538D3F +De-Activate DECFormat.pas line 2088 BreakPoint at:00538D3F +Adding coverage:DECFormat.pas (DECFormat) 2089 +Clearing BreakPoint at 00538D5C +De-Activate DECFormat.pas line 2089 BreakPoint at:00538D5C +Adding coverage:DECFormat.pas (DECFormat) 2090 +Clearing BreakPoint at 00538D79 +De-Activate DECFormat.pas line 2090 BreakPoint at:00538D79 +Adding coverage:DECFormat.pas (DECFormat) 2091 +Clearing BreakPoint at 00538D96 +De-Activate DECFormat.pas line 2091 BreakPoint at:00538D96 +Adding coverage:DECFormat.pas (DECFormat) 2092 +Clearing BreakPoint at 00538DB3 +De-Activate DECFormat.pas line 2092 BreakPoint at:00538DB3 +Adding coverage:DECFormat.pas (DECFormat) 2094 +Clearing BreakPoint at 00538DD0 +De-Activate DECFormat.pas line 2094 BreakPoint at:00538DD0 +Adding coverage:DECFormat.pas (DECFormat) 2095 +Clearing BreakPoint at 00538DEA +De-Activate DECFormat.pas line 2095 BreakPoint at:00538DEA +Adding coverage:DECFormat.pas (DECFormat) 2096 +Clearing BreakPoint at 00538E04 +De-Activate DECFormat.pas line 2096 BreakPoint at:00538E04 +Adding coverage:DECFormat.pas (DECFormat) 2097 +Clearing BreakPoint at 00538E21 +De-Activate DECFormat.pas line 2097 BreakPoint at:00538E21 +Adding coverage:DECFormat.pas (DECFormat) 2098 +Clearing BreakPoint at 00538E3E +De-Activate DECFormat.pas line 2098 BreakPoint at:00538E3E +Adding coverage:DECFormat.pas (DECFormat) 2099 +Clearing BreakPoint at 00538E5B +De-Activate DECFormat.pas line 2099 BreakPoint at:00538E5B +Adding coverage:DECFormat.pas (DECFormat) 2100 +Clearing BreakPoint at 00538E78 +De-Activate DECFormat.pas line 2100 BreakPoint at:00538E78 +Adding coverage:DECFormat.pas (DECFormat) 2101 +Clearing BreakPoint at 00538E95 +De-Activate DECFormat.pas line 2101 BreakPoint at:00538E95 +Adding coverage:DECFormat.pas (DECFormat) 2105 +Clearing BreakPoint at 00538EB2 +De-Activate DECFormat.pas line 2105 BreakPoint at:00538EB2 +Adding coverage:DECFormat.pas (DECFormat) 2106 +Clearing BreakPoint at 00538EC4 +De-Activate DECFormat.pas line 2106 BreakPoint at:00538EC4 +Adding coverage:DECFormat.pas (DECFormat) 2107 +Clearing BreakPoint at 00538ED6 +De-Activate DECFormat.pas line 2107 BreakPoint at:00538ED6 +Adding coverage:DECFormat.pas (DECFormat) 2108 +Clearing BreakPoint at 00538EE8 +De-Activate DECFormat.pas line 2108 BreakPoint at:00538EE8 +Adding coverage:DECFormat.pas (DECFormat) 2109 +Clearing BreakPoint at 00538EFA +De-Activate DECFormat.pas line 2109 BreakPoint at:00538EFA +Adding coverage:DECFormat.pas (DECFormat) 2110 +Clearing BreakPoint at 00538F0C +De-Activate DECFormat.pas line 2110 BreakPoint at:00538F0C +Adding coverage:DECFormat.pas (DECFormat) 2111 +Clearing BreakPoint at 00538F1E +De-Activate DECFormat.pas line 2111 BreakPoint at:00538F1E +Adding coverage:DECFormat.pas (DECFormat) 2112 +Clearing BreakPoint at 00538F30 +De-Activate DECFormat.pas line 2112 BreakPoint at:00538F30 +Adding coverage:DECFormat.pas (DECFormat) 2113 +Clearing BreakPoint at 00538F42 +De-Activate DECFormat.pas line 2113 BreakPoint at:00538F42 +Adding coverage:DECFormat.pas (DECFormat) 2114 +Clearing BreakPoint at 00538F54 +De-Activate DECFormat.pas line 2114 BreakPoint at:00538F54 +Adding coverage:DECFormat.pas (DECFormat) 2115 +Clearing BreakPoint at 00538F66 +De-Activate DECFormat.pas line 2115 BreakPoint at:00538F66 +Adding coverage:DECFormat.pas (DECFormat) 2116 +Clearing BreakPoint at 00538F78 +De-Activate DECFormat.pas line 2116 BreakPoint at:00538F78 +Adding coverage:DECFormat.pas (DECFormat) 2117 +Clearing BreakPoint at 00538F8A +De-Activate DECFormat.pas line 2117 BreakPoint at:00538F8A +Adding coverage:DECFormat.pas (DECFormat) 2122 +Clearing BreakPoint at 00538F9C +De-Activate DECFormat.pas line 2122 BreakPoint at:00538F9C +Adding coverage:DECFormat.pas (DECFormat) 2124 +Clearing BreakPoint at 00538FA6 +De-Activate DECFormat.pas line 2124 BreakPoint at:00538FA6 +Adding coverage:DECHashBase.pas (DECHashBase) 778 +Clearing BreakPoint at 005391F8 +De-Activate DECHashBase.pas line 778 BreakPoint at:005391F8 +Adding coverage:DECHashBase.pas (DECHashBase) 781 +Clearing BreakPoint at 00539204 +De-Activate DECHashBase.pas line 781 BreakPoint at:00539204 +Adding coverage:DECHashBase.pas (DECHashBase) 784 +Clearing BreakPoint at 0053920E +De-Activate DECHashBase.pas line 784 BreakPoint at:0053920E +Adding coverage:DECHashBase.pas (DECHashBase) 786 +Clearing BreakPoint at 0053921F +De-Activate DECHashBase.pas line 786 BreakPoint at:0053921F +Adding coverage:DECHash.pas (DECHash) 5637 +Clearing BreakPoint at 00539224 +De-Activate DECHash.pas line 5637 BreakPoint at:00539224 +Adding coverage:DECHash.pas (DECHash) 5639 +Clearing BreakPoint at 00539234 +De-Activate DECHash.pas line 5639 BreakPoint at:00539234 +Adding coverage:DECHashBase.pas (DECHashBase) 422 +Clearing BreakPoint at 0047540C +De-Activate DECHashBase.pas line 422 BreakPoint at:0047540C +Adding coverage:DECHashBase.pas (DECHashBase) 423 +Clearing BreakPoint at 00475413 +De-Activate DECHashBase.pas line 423 BreakPoint at:00475413 +Adding coverage:DECHashBase.pas (DECHashBase) 425 +Clearing BreakPoint at 0047542D +De-Activate DECHashBase.pas line 425 BreakPoint at:0047542D +Adding coverage:DECHashBase.pas (DECHashBase) 426 +Clearing BreakPoint at 00475435 +De-Activate DECHashBase.pas line 426 BreakPoint at:00475435 +Adding coverage:DECHash.pas (DECHash) 5642 +Clearing BreakPoint at 0053923E +De-Activate DECHash.pas line 5642 BreakPoint at:0053923E +Adding coverage:DECHash.pas (DECHash) 5643 +Clearing BreakPoint at 00539250 +De-Activate DECHash.pas line 5643 BreakPoint at:00539250 +Adding coverage:DECHash.pas (DECHash) 5644 +Clearing BreakPoint at 00539262 +De-Activate DECHash.pas line 5644 BreakPoint at:00539262 +Adding coverage:DECHash.pas (DECHash) 5645 +Clearing BreakPoint at 00539274 +De-Activate DECHash.pas line 5645 BreakPoint at:00539274 +Adding coverage:DECHash.pas (DECHash) 5646 +Clearing BreakPoint at 00539286 +De-Activate DECHash.pas line 5646 BreakPoint at:00539286 +Adding coverage:DECHash.pas (DECHash) 5647 +Clearing BreakPoint at 00539298 +De-Activate DECHash.pas line 5647 BreakPoint at:00539298 +Adding coverage:DECHash.pas (DECHash) 5648 +Clearing BreakPoint at 005392AA +De-Activate DECHash.pas line 5648 BreakPoint at:005392AA +Adding coverage:DECHash.pas (DECHash) 5649 +Clearing BreakPoint at 005392BC +De-Activate DECHash.pas line 5649 BreakPoint at:005392BC +Adding coverage:DECHash.pas (DECHash) 5650 +Clearing BreakPoint at 005392CE +De-Activate DECHash.pas line 5650 BreakPoint at:005392CE +Adding coverage:DECHash.pas (DECHash) 5651 +Clearing BreakPoint at 005392E0 +De-Activate DECHash.pas line 5651 BreakPoint at:005392E0 +Adding coverage:DECHash.pas (DECHash) 5652 +Clearing BreakPoint at 005392F2 +De-Activate DECHash.pas line 5652 BreakPoint at:005392F2 +Adding coverage:DECHash.pas (DECHash) 5653 +Clearing BreakPoint at 00539304 +De-Activate DECHash.pas line 5653 BreakPoint at:00539304 +Adding coverage:DECHash.pas (DECHash) 5654 +Clearing BreakPoint at 00539316 +De-Activate DECHash.pas line 5654 BreakPoint at:00539316 +Adding coverage:DECHash.pas (DECHash) 5655 +Clearing BreakPoint at 00539328 +De-Activate DECHash.pas line 5655 BreakPoint at:00539328 +Adding coverage:DECHash.pas (DECHash) 5656 +Clearing BreakPoint at 0053933A +De-Activate DECHash.pas line 5656 BreakPoint at:0053933A +Adding coverage:DECHash.pas (DECHash) 5657 +Clearing BreakPoint at 0053934C +De-Activate DECHash.pas line 5657 BreakPoint at:0053934C +Adding coverage:DECHash.pas (DECHash) 5658 +Clearing BreakPoint at 0053935E +De-Activate DECHash.pas line 5658 BreakPoint at:0053935E +Adding coverage:DECHash.pas (DECHash) 5659 +Clearing BreakPoint at 00539370 +De-Activate DECHash.pas line 5659 BreakPoint at:00539370 +Adding coverage:DECHash.pas (DECHash) 5660 +Clearing BreakPoint at 00539382 +De-Activate DECHash.pas line 5660 BreakPoint at:00539382 +Adding coverage:DECHash.pas (DECHash) 5661 +Clearing BreakPoint at 00539394 +De-Activate DECHash.pas line 5661 BreakPoint at:00539394 +Adding coverage:DECHash.pas (DECHash) 5662 +Clearing BreakPoint at 005393A6 +De-Activate DECHash.pas line 5662 BreakPoint at:005393A6 +Adding coverage:DECHash.pas (DECHash) 5663 +Clearing BreakPoint at 005393B8 +De-Activate DECHash.pas line 5663 BreakPoint at:005393B8 +Adding coverage:DECHash.pas (DECHash) 5664 +Clearing BreakPoint at 005393CA +De-Activate DECHash.pas line 5664 BreakPoint at:005393CA +Adding coverage:DECHash.pas (DECHash) 5665 +Clearing BreakPoint at 005393DC +De-Activate DECHash.pas line 5665 BreakPoint at:005393DC +Adding coverage:DECHash.pas (DECHash) 5666 +Clearing BreakPoint at 005393EE +De-Activate DECHash.pas line 5666 BreakPoint at:005393EE +Adding coverage:DECHash.pas (DECHash) 5667 +Clearing BreakPoint at 00539400 +De-Activate DECHash.pas line 5667 BreakPoint at:00539400 +Adding coverage:DECHash.pas (DECHash) 5668 +Clearing BreakPoint at 00539412 +De-Activate DECHash.pas line 5668 BreakPoint at:00539412 +Adding coverage:DECHash.pas (DECHash) 5669 +Clearing BreakPoint at 00539424 +De-Activate DECHash.pas line 5669 BreakPoint at:00539424 +Adding coverage:DECHash.pas (DECHash) 5670 +Clearing BreakPoint at 00539436 +De-Activate DECHash.pas line 5670 BreakPoint at:00539436 +Adding coverage:DECHash.pas (DECHash) 5671 +Clearing BreakPoint at 00539448 +De-Activate DECHash.pas line 5671 BreakPoint at:00539448 +Adding coverage:DECHash.pas (DECHash) 5678 +Clearing BreakPoint at 0053945A +De-Activate DECHash.pas line 5678 BreakPoint at:0053945A +Adding coverage:DECHash.pas (DECHash) 5681 +Clearing BreakPoint at 0053946C +De-Activate DECHash.pas line 5681 BreakPoint at:0053946C +Adding coverage:DECHash.pas (DECHash) 5682 +Clearing BreakPoint at 0053947E +De-Activate DECHash.pas line 5682 BreakPoint at:0053947E +Adding coverage:DECHash.pas (DECHash) 5684 +Clearing BreakPoint at 00539490 +De-Activate DECHash.pas line 5684 BreakPoint at:00539490 +Adding coverage:DECHash.pas (DECHash) 5685 +Clearing BreakPoint at 005394A2 +De-Activate DECHash.pas line 5685 BreakPoint at:005394A2 +Adding coverage:DECHash.pas (DECHash) 5686 +Clearing BreakPoint at 005394B4 +De-Activate DECHash.pas line 5686 BreakPoint at:005394B4 +Adding coverage:DECHash.pas (DECHash) 5687 +Clearing BreakPoint at 005394C6 +De-Activate DECHash.pas line 5687 BreakPoint at:005394C6 +Adding coverage:DECHash.pas (DECHash) 5689 +Clearing BreakPoint at 005394D8 +De-Activate DECHash.pas line 5689 BreakPoint at:005394D8 +Adding coverage:DECHash.pas (DECHash) 5697 +Clearing BreakPoint at 005394EA +De-Activate DECHash.pas line 5697 BreakPoint at:005394EA +Adding coverage:DECCipherBase.pas (DECCipherBase) 1206 +Clearing BreakPoint at 0053999C +De-Activate DECCipherBase.pas line 1206 BreakPoint at:0053999C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1209 +Clearing BreakPoint at 005399A8 +De-Activate DECCipherBase.pas line 1209 BreakPoint at:005399A8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1212 +Clearing BreakPoint at 005399B2 +De-Activate DECCipherBase.pas line 1212 BreakPoint at:005399B2 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1214 +Clearing BreakPoint at 005399C3 +De-Activate DECCipherBase.pas line 1214 BreakPoint at:005399C3 +Adding coverage:DECCiphers.pas (DECCiphers) 6787 +Clearing BreakPoint at 005399C8 +De-Activate DECCiphers.pas line 6787 BreakPoint at:005399C8 +Adding coverage:DECCiphers.pas (DECCiphers) 6788 +Clearing BreakPoint at 005399D8 +De-Activate DECCiphers.pas line 6788 BreakPoint at:005399D8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 834 +Clearing BreakPoint at 004D497C +De-Activate DECCipherBase.pas line 834 BreakPoint at:004D497C +Adding coverage:DECCipherBase.pas (DECCipherBase) 835 +Clearing BreakPoint at 004D4983 +De-Activate DECCipherBase.pas line 835 BreakPoint at:004D4983 +Adding coverage:DECCipherBase.pas (DECCipherBase) 837 +Clearing BreakPoint at 004D499D +De-Activate DECCipherBase.pas line 837 BreakPoint at:004D499D +Adding coverage:DECCipherBase.pas (DECCipherBase) 838 +Clearing BreakPoint at 004D49A5 +De-Activate DECCipherBase.pas line 838 BreakPoint at:004D49A5 +Adding coverage:DECCiphers.pas (DECCiphers) 6791 +Clearing BreakPoint at 005399E2 +De-Activate DECCiphers.pas line 6791 BreakPoint at:005399E2 +Adding coverage:DECCiphers.pas (DECCiphers) 6792 +Clearing BreakPoint at 005399F4 +De-Activate DECCiphers.pas line 6792 BreakPoint at:005399F4 +Adding coverage:DECCiphers.pas (DECCiphers) 6793 +Clearing BreakPoint at 00539A06 +De-Activate DECCiphers.pas line 6793 BreakPoint at:00539A06 +Adding coverage:DECCiphers.pas (DECCiphers) 6794 +Clearing BreakPoint at 00539A18 +De-Activate DECCiphers.pas line 6794 BreakPoint at:00539A18 +Adding coverage:DECCiphers.pas (DECCiphers) 6795 +Clearing BreakPoint at 00539A2A +De-Activate DECCiphers.pas line 6795 BreakPoint at:00539A2A +Adding coverage:DECCiphers.pas (DECCiphers) 6796 +Clearing BreakPoint at 00539A3C +De-Activate DECCiphers.pas line 6796 BreakPoint at:00539A3C +Adding coverage:DECCiphers.pas (DECCiphers) 6797 +Clearing BreakPoint at 00539A4E +De-Activate DECCiphers.pas line 6797 BreakPoint at:00539A4E +Adding coverage:DECCiphers.pas (DECCiphers) 6798 +Clearing BreakPoint at 00539A60 +De-Activate DECCiphers.pas line 6798 BreakPoint at:00539A60 +Adding coverage:DECCiphers.pas (DECCiphers) 6802 +Clearing BreakPoint at 00539A72 +De-Activate DECCiphers.pas line 6802 BreakPoint at:00539A72 +Adding coverage:DECCiphers.pas (DECCiphers) 6803 +Clearing BreakPoint at 00539A84 +De-Activate DECCiphers.pas line 6803 BreakPoint at:00539A84 +Adding coverage:DECCiphers.pas (DECCiphers) 6804 +Clearing BreakPoint at 00539A96 +De-Activate DECCiphers.pas line 6804 BreakPoint at:00539A96 +Adding coverage:DECCiphers.pas (DECCiphers) 6805 +Clearing BreakPoint at 00539AA8 +De-Activate DECCiphers.pas line 6805 BreakPoint at:00539AA8 +Adding coverage:DECCiphers.pas (DECCiphers) 6806 +Clearing BreakPoint at 00539ABA +De-Activate DECCiphers.pas line 6806 BreakPoint at:00539ABA +Adding coverage:DECCiphers.pas (DECCiphers) 6807 +Clearing BreakPoint at 00539ACC +De-Activate DECCiphers.pas line 6807 BreakPoint at:00539ACC +Adding coverage:DECCiphers.pas (DECCiphers) 6808 +Clearing BreakPoint at 00539ADE +De-Activate DECCiphers.pas line 6808 BreakPoint at:00539ADE +Adding coverage:DECCiphers.pas (DECCiphers) 6809 +Clearing BreakPoint at 00539AF0 +De-Activate DECCiphers.pas line 6809 BreakPoint at:00539AF0 +Adding coverage:DECCiphers.pas (DECCiphers) 6810 +Clearing BreakPoint at 00539B02 +De-Activate DECCiphers.pas line 6810 BreakPoint at:00539B02 +Adding coverage:DECCiphers.pas (DECCiphers) 6811 +Clearing BreakPoint at 00539B14 +De-Activate DECCiphers.pas line 6811 BreakPoint at:00539B14 +Adding coverage:DECCiphers.pas (DECCiphers) 6812 +Clearing BreakPoint at 00539B26 +De-Activate DECCiphers.pas line 6812 BreakPoint at:00539B26 +Adding coverage:DECCiphers.pas (DECCiphers) 6813 +Clearing BreakPoint at 00539B38 +De-Activate DECCiphers.pas line 6813 BreakPoint at:00539B38 +Adding coverage:DECCiphers.pas (DECCiphers) 6814 +Clearing BreakPoint at 00539B4A +De-Activate DECCiphers.pas line 6814 BreakPoint at:00539B4A +Adding coverage:DECCiphers.pas (DECCiphers) 6815 +Clearing BreakPoint at 00539B5C +De-Activate DECCiphers.pas line 6815 BreakPoint at:00539B5C +Adding coverage:DECCiphers.pas (DECCiphers) 6816 +Clearing BreakPoint at 00539B6E +De-Activate DECCiphers.pas line 6816 BreakPoint at:00539B6E +Adding coverage:DECCiphers.pas (DECCiphers) 6817 +Clearing BreakPoint at 00539B80 +De-Activate DECCiphers.pas line 6817 BreakPoint at:00539B80 +Adding coverage:DECCiphers.pas (DECCiphers) 6820 +Clearing BreakPoint at 00539B92 +De-Activate DECCiphers.pas line 6820 BreakPoint at:00539B92 +Adding coverage:DECCiphers.pas (DECCiphers) 6821 +Clearing BreakPoint at 00539BA4 +De-Activate DECCiphers.pas line 6821 BreakPoint at:00539BA4 +Adding coverage:DECCiphers.pas (DECCiphers) 6822 +Clearing BreakPoint at 00539BB6 +De-Activate DECCiphers.pas line 6822 BreakPoint at:00539BB6 +Adding coverage:DECCiphers.pas (DECCiphers) 6823 +Clearing BreakPoint at 00539BC8 +De-Activate DECCiphers.pas line 6823 BreakPoint at:00539BC8 +Adding coverage:DECCiphers.pas (DECCiphers) 6824 +Clearing BreakPoint at 00539BDA +De-Activate DECCiphers.pas line 6824 BreakPoint at:00539BDA +Adding coverage:DECCiphers.pas (DECCiphers) 6825 +Clearing BreakPoint at 00539BEC +De-Activate DECCiphers.pas line 6825 BreakPoint at:00539BEC +Adding coverage:DECCiphers.pas (DECCiphers) 6826 +Clearing BreakPoint at 00539BFE +De-Activate DECCiphers.pas line 6826 BreakPoint at:00539BFE +Adding coverage:DECCiphers.pas (DECCiphers) 6827 +Clearing BreakPoint at 00539C10 +De-Activate DECCiphers.pas line 6827 BreakPoint at:00539C10 +Adding coverage:DECCiphers.pas (DECCiphers) 6828 +Clearing BreakPoint at 00539C22 +De-Activate DECCiphers.pas line 6828 BreakPoint at:00539C22 +Adding coverage:DECCiphers.pas (DECCiphers) 6829 +Clearing BreakPoint at 00539C34 +De-Activate DECCiphers.pas line 6829 BreakPoint at:00539C34 +Adding coverage:DECCiphers.pas (DECCiphers) 6830 +Clearing BreakPoint at 00539C46 +De-Activate DECCiphers.pas line 6830 BreakPoint at:00539C46 +Adding coverage:DECCiphers.pas (DECCiphers) 6841 +Clearing BreakPoint at 00539C58 +De-Activate DECCiphers.pas line 6841 BreakPoint at:00539C58 +Adding coverage:DECRandom.pas (DECRandom) 446 +Clearing BreakPoint at 0053A0EC +De-Activate DECRandom.pas line 446 BreakPoint at:0053A0EC +Adding coverage:DECRandom.pas (DECRandom) 449 +Clearing BreakPoint at 0053A102 +De-Activate DECRandom.pas line 449 BreakPoint at:0053A102 +Adding coverage:DECRandom.pas (DECRandom) 423 +Clearing BreakPoint at 0050D38C +De-Activate DECRandom.pas line 423 BreakPoint at:0050D38C +Adding coverage:DECRandom.pas (DECRandom) 424 +Clearing BreakPoint at 0050D38F +De-Activate DECRandom.pas line 424 BreakPoint at:0050D38F +Adding coverage:DECRandom.pas (DECRandom) 425 +Clearing BreakPoint at 0050D399 +De-Activate DECRandom.pas line 425 BreakPoint at:0050D399 +Adding coverage:DECRandom.pas (DECRandom) 426 +Clearing BreakPoint at 0050D3A3 +De-Activate DECRandom.pas line 426 BreakPoint at:0050D3A3 +Adding coverage:DECRandom.pas (DECRandom) 395 +Clearing BreakPoint at 0050D2D0 +De-Activate DECRandom.pas line 395 BreakPoint at:0050D2D0 +Adding coverage:DECRandom.pas (DECRandom) 396 +Clearing BreakPoint at 0050D2DC +De-Activate DECRandom.pas line 396 BreakPoint at:0050D2DC +Adding coverage:DECRandom.pas (DECRandom) 399 +Clearing BreakPoint at 0050D2E2 +De-Activate DECRandom.pas line 399 BreakPoint at:0050D2E2 +Adding coverage:DECRandom.pas (DECRandom) 400 +Clearing BreakPoint at 0050D2F3 +De-Activate DECRandom.pas line 400 BreakPoint at:0050D2F3 +Adding coverage:DECRandom.pas (DECRandom) 401 +Clearing BreakPoint at 0050D2FA +De-Activate DECRandom.pas line 401 BreakPoint at:0050D2FA +Adding coverage:DECRandom.pas (DECRandom) 417 +Clearing BreakPoint at 0050D36B +De-Activate DECRandom.pas line 417 BreakPoint at:0050D36B +Adding coverage:DECRandom.pas (DECRandom) 418 +Clearing BreakPoint at 0050D370 +De-Activate DECRandom.pas line 418 BreakPoint at:0050D370 +Adding coverage:DECRandom.pas (DECRandom) 355 +Clearing BreakPoint at 0050D1B8 +De-Activate DECRandom.pas line 355 BreakPoint at:0050D1B8 +Adding coverage:DECRandom.pas (DECRandom) 356 +Clearing BreakPoint at 0050D1D0 +De-Activate DECRandom.pas line 356 BreakPoint at:0050D1D0 +Adding coverage:DECRandom.pas (DECRandom) 357 +Clearing BreakPoint at 0050D1D9 +De-Activate DECRandom.pas line 357 BreakPoint at:0050D1D9 +Adding coverage:DECHashBase.pas (DECHashBase) 431 +Clearing BreakPoint at 004754FC +De-Activate DECHashBase.pas line 431 BreakPoint at:004754FC +Adding coverage:DECHashBase.pas (DECHashBase) 432 +Clearing BreakPoint at 00475514 +De-Activate DECHashBase.pas line 432 BreakPoint at:00475514 +Adding coverage:DECBaseClass.pas (DECBaseClass) 230 +Clearing BreakPoint at 0045457C +De-Activate DECBaseClass.pas line 230 BreakPoint at:0045457C +Adding coverage:DECBaseClass.pas (DECBaseClass) 231 +Clearing BreakPoint at 00454594 +De-Activate DECBaseClass.pas line 231 BreakPoint at:00454594 +Adding coverage:DECBaseClass.pas (DECBaseClass) 232 +Clearing BreakPoint at 0045459E +De-Activate DECBaseClass.pas line 232 BreakPoint at:0045459E +Adding coverage:DECHashBase.pas (DECHashBase) 433 +Clearing BreakPoint at 0047551E +De-Activate DECHashBase.pas line 433 BreakPoint at:0047551E +Adding coverage:DECHashBase.pas (DECHashBase) 434 +Clearing BreakPoint at 00475526 +De-Activate DECHashBase.pas line 434 BreakPoint at:00475526 +Adding coverage:DECHashBase.pas (DECHashBase) 435 +Clearing BreakPoint at 0047552E +De-Activate DECHashBase.pas line 435 BreakPoint at:0047552E +Adding coverage:DECRandom.pas (DECRandom) 359 +Clearing BreakPoint at 0050D1E7 +De-Activate DECRandom.pas line 359 BreakPoint at:0050D1E7 +Adding coverage:DECHashBase.pas (DECHashBase) 453 +Clearing BreakPoint at 004755E4 +De-Activate DECHashBase.pas line 453 BreakPoint at:004755E4 +Adding coverage:DECHashBase.pas (DECHashBase) 454 +Clearing BreakPoint at 004755EB +De-Activate DECHashBase.pas line 454 BreakPoint at:004755EB +Adding coverage:DECHashBase.pas (DECHashBase) 456 +Clearing BreakPoint at 004755F3 +De-Activate DECHashBase.pas line 456 BreakPoint at:004755F3 +Adding coverage:DECHashBase.pas (DECHashBase) 458 +Clearing BreakPoint at 0047560C +De-Activate DECHashBase.pas line 458 BreakPoint at:0047560C +Adding coverage:DECHash.pas (DECHash) 1617 +Clearing BreakPoint at 0047F56C +De-Activate DECHash.pas line 1617 BreakPoint at:0047F56C +Adding coverage:DECHash.pas (DECHash) 1618 +Clearing BreakPoint at 0047F575 +De-Activate DECHash.pas line 1618 BreakPoint at:0047F575 +Adding coverage:DECHash.pas (DECHash) 1619 +Clearing BreakPoint at 0047F57C +De-Activate DECHash.pas line 1619 BreakPoint at:0047F57C +Adding coverage:DECHashBase.pas (DECHashBase) 462 +Clearing BreakPoint at 00475623 +De-Activate DECHashBase.pas line 462 BreakPoint at:00475623 +Adding coverage:DECHashBase.pas (DECHashBase) 465 +Clearing BreakPoint at 0047563F +De-Activate DECHashBase.pas line 465 BreakPoint at:0047563F +Adding coverage:DECHashBase.pas (DECHashBase) 466 +Clearing BreakPoint at 00475652 +De-Activate DECHashBase.pas line 466 BreakPoint at:00475652 +Adding coverage:DECHashBase.pas (DECHashBase) 467 +Clearing BreakPoint at 00475664 +De-Activate DECHashBase.pas line 467 BreakPoint at:00475664 +Adding coverage:DECHash.pas (DECHash) 2801 +Clearing BreakPoint at 0048A07C +De-Activate DECHash.pas line 2801 BreakPoint at:0048A07C +Adding coverage:DECHash.pas (DECHash) 2802 +Clearing BreakPoint at 0048A083 +De-Activate DECHash.pas line 2802 BreakPoint at:0048A083 +Adding coverage:DECHash.pas (DECHash) 2803 +Clearing BreakPoint at 0048A08D +De-Activate DECHash.pas line 2803 BreakPoint at:0048A08D +Adding coverage:DECHash.pas (DECHash) 2804 +Clearing BreakPoint at 0048A097 +De-Activate DECHash.pas line 2804 BreakPoint at:0048A097 +Adding coverage:DECHash.pas (DECHash) 2805 +Clearing BreakPoint at 0048A0A1 +De-Activate DECHash.pas line 2805 BreakPoint at:0048A0A1 +Adding coverage:DECHash.pas (DECHash) 2806 +Clearing BreakPoint at 0048A0AB +De-Activate DECHash.pas line 2806 BreakPoint at:0048A0AB +Adding coverage:DECHash.pas (DECHash) 2807 +Clearing BreakPoint at 0048A0B5 +De-Activate DECHash.pas line 2807 BreakPoint at:0048A0B5 +Adding coverage:DECHash.pas (DECHash) 2808 +Clearing BreakPoint at 0048A0BF +De-Activate DECHash.pas line 2808 BreakPoint at:0048A0BF +Adding coverage:DECHash.pas (DECHash) 2809 +Clearing BreakPoint at 0048A0C9 +De-Activate DECHash.pas line 2809 BreakPoint at:0048A0C9 +Adding coverage:DECHash.pas (DECHash) 2810 +Clearing BreakPoint at 0048A0D3 +De-Activate DECHash.pas line 2810 BreakPoint at:0048A0D3 +Adding coverage:DECHashBase.pas (DECHashBase) 468 +Clearing BreakPoint at 0047566C +De-Activate DECHashBase.pas line 468 BreakPoint at:0047566C +Adding coverage:DECRandom.pas (DECRandom) 360 +Clearing BreakPoint at 0050D1F1 +De-Activate DECRandom.pas line 360 BreakPoint at:0050D1F1 +Adding coverage:DECHashBase.pas (DECHashBase) 598 +Clearing BreakPoint at 0047584C +De-Activate DECHashBase.pas line 598 BreakPoint at:0047584C +Adding coverage:DECHashBase.pas (DECHashBase) 599 +Clearing BreakPoint at 0047585B +De-Activate DECHashBase.pas line 599 BreakPoint at:0047585B +Adding coverage:DECHashBase.pas (DECHashBase) 602 +Clearing BreakPoint at 00475865 +De-Activate DECHashBase.pas line 602 BreakPoint at:00475865 +Adding coverage:DECHashBase.pas (DECHashBase) 605 +Clearing BreakPoint at 00475876 +De-Activate DECHashBase.pas line 605 BreakPoint at:00475876 +Adding coverage:DECHashBase.pas (DECHashBase) 560 +Clearing BreakPoint at 0047571C +De-Activate DECHashBase.pas line 560 BreakPoint at:0047571C +Adding coverage:DECHashBase.pas (DECHashBase) 561 +Clearing BreakPoint at 0047572B +De-Activate DECHashBase.pas line 561 BreakPoint at:0047572B +Adding coverage:DECHashBase.pas (DECHashBase) 562 +Clearing BreakPoint at 00475734 +De-Activate DECHashBase.pas line 562 BreakPoint at:00475734 +Adding coverage:DECHashBase.pas (DECHashBase) 563 +Clearing BreakPoint at 00475748 +De-Activate DECHashBase.pas line 563 BreakPoint at:00475748 +Adding coverage:DECHashBase.pas (DECHashBase) 565 +Clearing BreakPoint at 0047574C +De-Activate DECHashBase.pas line 565 BreakPoint at:0047574C +Adding coverage:DECHashBase.pas (DECHashBase) 547 +Clearing BreakPoint at 004756B4 +De-Activate DECHashBase.pas line 547 BreakPoint at:004756B4 +Adding coverage:DECHashBase.pas (DECHashBase) 548 +Clearing BreakPoint at 004756C3 +De-Activate DECHashBase.pas line 548 BreakPoint at:004756C3 +Adding coverage:DECHashBase.pas (DECHashBase) 554 +Clearing BreakPoint at 004756E6 +De-Activate DECHashBase.pas line 554 BreakPoint at:004756E6 +Adding coverage:DECHashBase.pas (DECHashBase) 556 +Clearing BreakPoint at 004756EC +De-Activate DECHashBase.pas line 556 BreakPoint at:004756EC +Adding coverage:DECHashBase.pas (DECHashBase) 557 +Clearing BreakPoint at 004756FB +De-Activate DECHashBase.pas line 557 BreakPoint at:004756FB +Adding coverage:DECHashBase.pas (DECHashBase) 558 +Clearing BreakPoint at 00475718 +De-Activate DECHashBase.pas line 558 BreakPoint at:00475718 +Adding coverage:DECHashBase.pas (DECHashBase) 566 +Clearing BreakPoint at 0047575C +De-Activate DECHashBase.pas line 566 BreakPoint at:0047575C +Adding coverage:DECHashBase.pas (DECHashBase) 567 +Clearing BreakPoint at 0047576F +De-Activate DECHashBase.pas line 567 BreakPoint at:0047576F +Adding coverage:DECHashBase.pas (DECHashBase) 568 +Clearing BreakPoint at 00475781 +De-Activate DECHashBase.pas line 568 BreakPoint at:00475781 +Adding coverage:DECHashBase.pas (DECHashBase) 569 +Clearing BreakPoint at 00475793 +De-Activate DECHashBase.pas line 569 BreakPoint at:00475793 +Adding coverage:DECHashBase.pas (DECHashBase) 570 +Clearing BreakPoint at 004757A5 +De-Activate DECHashBase.pas line 570 BreakPoint at:004757A5 +Adding coverage:DECHashBase.pas (DECHashBase) 571 +Clearing BreakPoint at 004757B7 +De-Activate DECHashBase.pas line 571 BreakPoint at:004757B7 +Adding coverage:DECHashBase.pas (DECHashBase) 572 +Clearing BreakPoint at 004757C9 +De-Activate DECHashBase.pas line 572 BreakPoint at:004757C9 +Adding coverage:DECHashBase.pas (DECHashBase) 574 +Clearing BreakPoint at 004757DB +De-Activate DECHashBase.pas line 574 BreakPoint at:004757DB +Adding coverage:DECHashBase.pas (DECHashBase) 576 +Clearing BreakPoint at 004757E9 +De-Activate DECHashBase.pas line 576 BreakPoint at:004757E9 +Adding coverage:DECHashBase.pas (DECHashBase) 606 +Clearing BreakPoint at 00475890 +De-Activate DECHashBase.pas line 606 BreakPoint at:00475890 +Adding coverage:DECHashBase.pas (DECHashBase) 608 +Clearing BreakPoint at 00475896 +De-Activate DECHashBase.pas line 608 BreakPoint at:00475896 +Adding coverage:DECHashBase.pas (DECHashBase) 623 +Clearing BreakPoint at 0047596B +De-Activate DECHashBase.pas line 623 BreakPoint at:0047596B +Adding coverage:DECHashBase.pas (DECHashBase) 630 +Clearing BreakPoint at 00475976 +De-Activate DECHashBase.pas line 630 BreakPoint at:00475976 +Adding coverage:DECHashBase.pas (DECHashBase) 631 +Clearing BreakPoint at 00475987 +De-Activate DECHashBase.pas line 631 BreakPoint at:00475987 +Adding coverage:DECHashBase.pas (DECHashBase) 632 +Clearing BreakPoint at 00475990 +De-Activate DECHashBase.pas line 632 BreakPoint at:00475990 +Adding coverage:DECRandom.pas (DECRandom) 361 +Clearing BreakPoint at 0050D205 +De-Activate DECRandom.pas line 361 BreakPoint at:0050D205 +Adding coverage:DECHashBase.pas (DECHashBase) 610 +Clearing BreakPoint at 004758A3 +De-Activate DECHashBase.pas line 610 BreakPoint at:004758A3 +Adding coverage:DECHashBase.pas (DECHashBase) 611 +Clearing BreakPoint at 004758B9 +De-Activate DECHashBase.pas line 611 BreakPoint at:004758B9 +Adding coverage:DECHashBase.pas (DECHashBase) 617 +Clearing BreakPoint at 004758FF +De-Activate DECHashBase.pas line 617 BreakPoint at:004758FF +Adding coverage:DECHashBase.pas (DECHashBase) 618 +Clearing BreakPoint at 00475924 +De-Activate DECHashBase.pas line 618 BreakPoint at:00475924 +Adding coverage:DECHash.pas (DECHash) 2819 +Clearing BreakPoint at 0048A0D8 +De-Activate DECHash.pas line 2819 BreakPoint at:0048A0D8 +Adding coverage:DECHash.pas (DECHash) 2820 +Clearing BreakPoint at 0048A0E8 +De-Activate DECHash.pas line 2820 BreakPoint at:0048A0E8 +Adding coverage:DECUtil.pas (DECUtil) 360 +Clearing BreakPoint at 0044DFEC +De-Activate DECUtil.pas line 360 BreakPoint at:0044DFEC +Adding coverage:DECUtil.pas (DECUtil) 361 +Clearing BreakPoint at 0044DFFB +De-Activate DECUtil.pas line 361 BreakPoint at:0044DFFB +Adding coverage:DECUtil.pas (DECUtil) 363 +Clearing BreakPoint at 0044E017 +De-Activate DECUtil.pas line 363 BreakPoint at:0044E017 +Adding coverage:DECUtil.pas (DECUtil) 364 +Clearing BreakPoint at 0044E02F +De-Activate DECUtil.pas line 364 BreakPoint at:0044E02F +Adding coverage:DECUtil.pas (DECUtil) 366 +Clearing BreakPoint at 0044E06F +De-Activate DECUtil.pas line 366 BreakPoint at:0044E06F +Adding coverage:DECUtil.pas (DECUtil) 361 +Clearing BreakPoint at 0044E072 +De-Activate DECUtil.pas line 361 BreakPoint at:0044E072 +Adding coverage:DECUtil.pas (DECUtil) 367 +Clearing BreakPoint at 0044E077 +De-Activate DECUtil.pas line 367 BreakPoint at:0044E077 +Adding coverage:DECHash.pas (DECHash) 2822 +Clearing BreakPoint at 0048A0FB +De-Activate DECHash.pas line 2822 BreakPoint at:0048A0FB +Adding coverage:DECHash.pas (DECHash) 2824 +Clearing BreakPoint at 0048A102 +De-Activate DECHash.pas line 2824 BreakPoint at:0048A102 +Adding coverage:DECHash.pas (DECHash) 2825 +Clearing BreakPoint at 0048A10F +De-Activate DECHash.pas line 2825 BreakPoint at:0048A10F +Adding coverage:DECHash.pas (DECHash) 2826 +Clearing BreakPoint at 0048A11C +De-Activate DECHash.pas line 2826 BreakPoint at:0048A11C +Adding coverage:DECHash.pas (DECHash) 2829 +Clearing BreakPoint at 0048A18A +De-Activate DECHash.pas line 2829 BreakPoint at:0048A18A +Adding coverage:DECHash.pas (DECHash) 2822 +Clearing BreakPoint at 0048A18D +De-Activate DECHash.pas line 2822 BreakPoint at:0048A18D +Adding coverage:DECHash.pas (DECHash) 2832 +Clearing BreakPoint at 0048A197 +De-Activate DECHash.pas line 2832 BreakPoint at:0048A197 +Adding coverage:DECHash.pas (DECHash) 2833 +Clearing BreakPoint at 0048A1A0 +De-Activate DECHash.pas line 2833 BreakPoint at:0048A1A0 +Adding coverage:DECHash.pas (DECHash) 2834 +Clearing BreakPoint at 0048A1A9 +De-Activate DECHash.pas line 2834 BreakPoint at:0048A1A9 +Adding coverage:DECHash.pas (DECHash) 2835 +Clearing BreakPoint at 0048A1B2 +De-Activate DECHash.pas line 2835 BreakPoint at:0048A1B2 +Adding coverage:DECHash.pas (DECHash) 2836 +Clearing BreakPoint at 0048A1BB +De-Activate DECHash.pas line 2836 BreakPoint at:0048A1BB +Adding coverage:DECHash.pas (DECHash) 2837 +Clearing BreakPoint at 0048A1C4 +De-Activate DECHash.pas line 2837 BreakPoint at:0048A1C4 +Adding coverage:DECHash.pas (DECHash) 2838 +Clearing BreakPoint at 0048A1CD +De-Activate DECHash.pas line 2838 BreakPoint at:0048A1CD +Adding coverage:DECHash.pas (DECHash) 2839 +Clearing BreakPoint at 0048A1D6 +De-Activate DECHash.pas line 2839 BreakPoint at:0048A1D6 +Adding coverage:DECHash.pas (DECHash) 2841 +Clearing BreakPoint at 0048A1DF +De-Activate DECHash.pas line 2841 BreakPoint at:0048A1DF +Adding coverage:DECHash.pas (DECHash) 2843 +Clearing BreakPoint at 0048A1E4 +De-Activate DECHash.pas line 2843 BreakPoint at:0048A1E4 +Adding coverage:DECHash.pas (DECHash) 2845 +Clearing BreakPoint at 0048A23C +De-Activate DECHash.pas line 2845 BreakPoint at:0048A23C +Adding coverage:DECHash.pas (DECHash) 2847 +Clearing BreakPoint at 0048A280 +De-Activate DECHash.pas line 2847 BreakPoint at:0048A280 +Adding coverage:DECHash.pas (DECHash) 2848 +Clearing BreakPoint at 0048A2B6 +De-Activate DECHash.pas line 2848 BreakPoint at:0048A2B6 +Adding coverage:DECHash.pas (DECHash) 2841 +Clearing BreakPoint at 0048A2B9 +De-Activate DECHash.pas line 2841 BreakPoint at:0048A2B9 +Adding coverage:DECHash.pas (DECHash) 2850 +Clearing BreakPoint at 0048A2C3 +De-Activate DECHash.pas line 2850 BreakPoint at:0048A2C3 +Adding coverage:DECHash.pas (DECHash) 2851 +Clearing BreakPoint at 0048A2CC +De-Activate DECHash.pas line 2851 BreakPoint at:0048A2CC +Adding coverage:DECHash.pas (DECHash) 2852 +Clearing BreakPoint at 0048A2D5 +De-Activate DECHash.pas line 2852 BreakPoint at:0048A2D5 +Adding coverage:DECHash.pas (DECHash) 2853 +Clearing BreakPoint at 0048A2DE +De-Activate DECHash.pas line 2853 BreakPoint at:0048A2DE +Adding coverage:DECHash.pas (DECHash) 2854 +Clearing BreakPoint at 0048A2E7 +De-Activate DECHash.pas line 2854 BreakPoint at:0048A2E7 +Adding coverage:DECHash.pas (DECHash) 2855 +Clearing BreakPoint at 0048A2F0 +De-Activate DECHash.pas line 2855 BreakPoint at:0048A2F0 +Adding coverage:DECHash.pas (DECHash) 2856 +Clearing BreakPoint at 0048A2F9 +De-Activate DECHash.pas line 2856 BreakPoint at:0048A2F9 +Adding coverage:DECHash.pas (DECHash) 2857 +Clearing BreakPoint at 0048A302 +De-Activate DECHash.pas line 2857 BreakPoint at:0048A302 +Adding coverage:DECHash.pas (DECHash) 2858 +Clearing BreakPoint at 0048A30B +De-Activate DECHash.pas line 2858 BreakPoint at:0048A30B +Adding coverage:DECHashBase.pas (DECHashBase) 619 +Clearing BreakPoint at 00475932 +De-Activate DECHashBase.pas line 619 BreakPoint at:00475932 +Adding coverage:DECHashBase.pas (DECHashBase) 620 +Clearing BreakPoint at 0047593F +De-Activate DECHashBase.pas line 620 BreakPoint at:0047593F +Adding coverage:DECHashBase.pas (DECHashBase) 625 +Clearing BreakPoint at 00475947 +De-Activate DECHashBase.pas line 625 BreakPoint at:00475947 +Adding coverage:DECHashBase.pas (DECHashBase) 626 +Clearing BreakPoint at 00475952 +De-Activate DECHashBase.pas line 626 BreakPoint at:00475952 +Adding coverage:DECHashBase.pas (DECHashBase) 627 +Clearing BreakPoint at 0047595B +De-Activate DECHashBase.pas line 627 BreakPoint at:0047595B +Adding coverage:DECRandom.pas (DECRandom) 362 +Clearing BreakPoint at 0050D219 +De-Activate DECRandom.pas line 362 BreakPoint at:0050D219 +Adding coverage:DECHashBase.pas (DECHashBase) 477 +Clearing BreakPoint at 00475684 +De-Activate DECHashBase.pas line 477 BreakPoint at:00475684 +Adding coverage:DECHashBase.pas (DECHashBase) 478 +Clearing BreakPoint at 0047568B +De-Activate DECHashBase.pas line 478 BreakPoint at:0047568B +Adding coverage:DECHash.pas (DECHash) 2773 +Clearing BreakPoint at 00489F4C +De-Activate DECHash.pas line 2773 BreakPoint at:00489F4C +Adding coverage:DECHash.pas (DECHash) 2774 +Clearing BreakPoint at 00489F53 +De-Activate DECHash.pas line 2774 BreakPoint at:00489F53 +Adding coverage:DECHash.pas (DECHash) 2776 +Clearing BreakPoint at 00489F69 +De-Activate DECHash.pas line 2776 BreakPoint at:00489F69 +Adding coverage:DECHash.pas (DECHash) 2777 +Clearing BreakPoint at 00489F72 +De-Activate DECHash.pas line 2777 BreakPoint at:00489F72 +Adding coverage:DECHash.pas (DECHash) 2778 +Clearing BreakPoint at 00489F79 +De-Activate DECHash.pas line 2778 BreakPoint at:00489F79 +Adding coverage:DECHash.pas (DECHash) 2779 +Clearing BreakPoint at 00489F8E +De-Activate DECHash.pas line 2779 BreakPoint at:00489F8E +Adding coverage:DECHash.pas (DECHash) 2780 +Clearing BreakPoint at 00489F94 +De-Activate DECHash.pas line 2780 BreakPoint at:00489F94 +Adding coverage:DECHash.pas (DECHash) 2786 +Clearing BreakPoint at 00489FDF +De-Activate DECHash.pas line 2786 BreakPoint at:00489FDF +Adding coverage:DECHash.pas (DECHash) 2787 +Clearing BreakPoint at 0048A001 +De-Activate DECHash.pas line 2787 BreakPoint at:0048A001 +Adding coverage:DECUtil.pas (DECUtil) 332 +Clearing BreakPoint at 0044DFAC +De-Activate DECUtil.pas line 332 BreakPoint at:0044DFAC +Adding coverage:DECUtil.pas (DECUtil) 333 +Clearing BreakPoint at 0044DFB5 +De-Activate DECUtil.pas line 333 BreakPoint at:0044DFB5 +Adding coverage:DECUtil.pas (DECUtil) 337 +Clearing BreakPoint at 0044DFE2 +De-Activate DECUtil.pas line 337 BreakPoint at:0044DFE2 +Adding coverage:DECHash.pas (DECHash) 2788 +Clearing BreakPoint at 0048A01E +De-Activate DECHash.pas line 2788 BreakPoint at:0048A01E +Adding coverage:DECHash.pas (DECHash) 2789 +Clearing BreakPoint at 0048A03B +De-Activate DECHash.pas line 2789 BreakPoint at:0048A03B +Adding coverage:DECHash.pas (DECHash) 2790 +Clearing BreakPoint at 0048A049 +De-Activate DECHash.pas line 2790 BreakPoint at:0048A049 +Adding coverage:DECHash.pas (DECHash) 2791 +Clearing BreakPoint at 0048A05F +De-Activate DECHash.pas line 2791 BreakPoint at:0048A05F +Adding coverage:DECHashBase.pas (DECHashBase) 479 +Clearing BreakPoint at 00475693 +De-Activate DECHashBase.pas line 479 BreakPoint at:00475693 +Adding coverage:DECRandom.pas (DECRandom) 364 +Clearing BreakPoint at 0050D223 +De-Activate DECRandom.pas line 364 BreakPoint at:0050D223 +Adding coverage:DECHashBase.pas (DECHashBase) 635 +Clearing BreakPoint at 00475994 +De-Activate DECHashBase.pas line 635 BreakPoint at:00475994 +Adding coverage:DECHashBase.pas (DECHashBase) 636 +Clearing BreakPoint at 004759A0 +De-Activate DECHashBase.pas line 636 BreakPoint at:004759A0 +Adding coverage:DECHash.pas (DECHash) 2862 +Clearing BreakPoint at 0048A310 +De-Activate DECHash.pas line 2862 BreakPoint at:0048A310 +Adding coverage:DECHash.pas (DECHash) 2863 +Clearing BreakPoint at 0048A319 +De-Activate DECHash.pas line 2863 BreakPoint at:0048A319 +Adding coverage:DECHash.pas (DECHash) 2864 +Clearing BreakPoint at 0048A320 +De-Activate DECHash.pas line 2864 BreakPoint at:0048A320 +Adding coverage:DECHashBase.pas (DECHashBase) 637 +Clearing BreakPoint at 004759BF +De-Activate DECHashBase.pas line 637 BreakPoint at:004759BF +Adding coverage:DECHashBase.pas (DECHashBase) 638 +Clearing BreakPoint at 004759CB +De-Activate DECHashBase.pas line 638 BreakPoint at:004759CB +Adding coverage:DECHash.pas (DECHash) 1607 +Clearing BreakPoint at 0047F538 +De-Activate DECHash.pas line 1607 BreakPoint at:0047F538 +Adding coverage:DECHash.pas (DECHash) 1608 +Clearing BreakPoint at 0047F541 +De-Activate DECHash.pas line 1608 BreakPoint at:0047F541 +Adding coverage:DECHash.pas (DECHash) 1609 +Clearing BreakPoint at 0047F54A +De-Activate DECHash.pas line 1609 BreakPoint at:0047F54A +Adding coverage:DECHashBase.pas (DECHashBase) 639 +Clearing BreakPoint at 00475A04 +De-Activate DECHashBase.pas line 639 BreakPoint at:00475A04 +Adding coverage:DECRandom.pas (DECRandom) 365 +Clearing BreakPoint at 0050D244 +De-Activate DECRandom.pas line 365 BreakPoint at:0050D244 +Adding coverage:DECRandom.pas (DECRandom) 367 +Clearing BreakPoint at 0050D24A +De-Activate DECRandom.pas line 367 BreakPoint at:0050D24A +Adding coverage:DECRandom.pas (DECRandom) 368 +Clearing BreakPoint at 0050D260 +De-Activate DECRandom.pas line 368 BreakPoint at:0050D260 +Adding coverage:DECRandom.pas (DECRandom) 417 +Clearing BreakPoint at 0050D378 +De-Activate DECRandom.pas line 417 BreakPoint at:0050D378 +Adding coverage:DECRandom.pas (DECRandom) 419 +Clearing BreakPoint at 0050D381 +De-Activate DECRandom.pas line 419 BreakPoint at:0050D381 +Adding coverage:DECRandom.pas (DECRandom) 420 +Clearing BreakPoint at 0050D388 +De-Activate DECRandom.pas line 420 BreakPoint at:0050D388 +Adding coverage:DECRandom.pas (DECRandom) 427 +Clearing BreakPoint at 0050D3AC +De-Activate DECRandom.pas line 427 BreakPoint at:0050D3AC +Adding coverage:DECRandom.pas (DECRandom) 452 +Clearing BreakPoint at 0053A107 +De-Activate DECRandom.pas line 452 BreakPoint at:0053A107 +Adding coverage:DECRandom.pas (DECRandom) 347 +Clearing BreakPoint at 0050D194 +De-Activate DECRandom.pas line 347 BreakPoint at:0050D194 +Adding coverage:DECRandom.pas (DECRandom) 348 +Clearing BreakPoint at 0050D197 +De-Activate DECRandom.pas line 348 BreakPoint at:0050D197 +Adding coverage:DECRandom.pas (DECRandom) 327 +Clearing BreakPoint at 0050D120 +De-Activate DECRandom.pas line 327 BreakPoint at:0050D120 +Adding coverage:DECRandom.pas (DECRandom) 328 +Clearing BreakPoint at 0050D12C +De-Activate DECRandom.pas line 328 BreakPoint at:0050D12C +Adding coverage:DECRandom.pas (DECRandom) 329 +Clearing BreakPoint at 0050D135 +De-Activate DECRandom.pas line 329 BreakPoint at:0050D135 +Adding coverage:DECRandom.pas (DECRandom) 410 +Clearing BreakPoint at 0050D336 +De-Activate DECRandom.pas line 410 BreakPoint at:0050D336 +Adding coverage:DECRandom.pas (DECRandom) 238 +Clearing BreakPoint at 0050CFAC +De-Activate DECRandom.pas line 238 BreakPoint at:0050CFAC +Adding coverage:DECRandom.pas (DECRandom) 244 +Clearing BreakPoint at 0050CFB2 +De-Activate DECRandom.pas line 244 BreakPoint at:0050CFB2 +Adding coverage:DECRandom.pas (DECRandom) 245 +Clearing BreakPoint at 0050CFD0 +De-Activate DECRandom.pas line 245 BreakPoint at:0050CFD0 +Adding coverage:DECRandom.pas (DECRandom) 247 +Clearing BreakPoint at 0050CFF5 +De-Activate DECRandom.pas line 247 BreakPoint at:0050CFF5 +Adding coverage:DECRandom.pas (DECRandom) 255 +Clearing BreakPoint at 0050D000 +De-Activate DECRandom.pas line 255 BreakPoint at:0050D000 +Adding coverage:DECRandom.pas (DECRandom) 256 +Clearing BreakPoint at 0050D00E +De-Activate DECRandom.pas line 256 BreakPoint at:0050D00E +Adding coverage:DECRandom.pas (DECRandom) 257 +Clearing BreakPoint at 0050D02D +De-Activate DECRandom.pas line 257 BreakPoint at:0050D02D +Adding coverage:DECRandom.pas (DECRandom) 258 +Clearing BreakPoint at 0050D038 +De-Activate DECRandom.pas line 258 BreakPoint at:0050D038 +Adding coverage:DECRandom.pas (DECRandom) 411 +Clearing BreakPoint at 0050D33E +De-Activate DECRandom.pas line 411 BreakPoint at:0050D33E +Adding coverage:DECRandom.pas (DECRandom) 413 +Clearing BreakPoint at 0050D343 +De-Activate DECRandom.pas line 413 BreakPoint at:0050D343 +Adding coverage:DECRandom.pas (DECRandom) 414 +Clearing BreakPoint at 0050D34F +De-Activate DECRandom.pas line 414 BreakPoint at:0050D34F +Adding coverage:DECRandom.pas (DECRandom) 415 +Clearing BreakPoint at 0050D35F +De-Activate DECRandom.pas line 415 BreakPoint at:0050D35F +Adding coverage:DECRandom.pas (DECRandom) 411 +Clearing BreakPoint at 0050D362 +De-Activate DECRandom.pas line 411 BreakPoint at:0050D362 +Adding coverage:DECRandom.pas (DECRandom) 344 +Clearing BreakPoint at 0050D18F +De-Activate DECRandom.pas line 344 BreakPoint at:0050D18F +Adding coverage:DECRandom.pas (DECRandom) 349 +Clearing BreakPoint at 0050D1A4 +De-Activate DECRandom.pas line 349 BreakPoint at:0050D1A4 +Adding coverage:DECRandom.pas (DECRandom) 455 +Clearing BreakPoint at 0053A10C +De-Activate DECRandom.pas line 455 BreakPoint at:0053A10C +Loading DLL at addr:6EC60000 (\\?\C:\Windows\SysWOW64\TextShaping.dll) size :585728 +Done adding BreakPoints +Loading DLL at addr:72280000 (\\?\C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_a8625c1886757984\comctl32.dll) size :1732096 +Done adding BreakPoints +Loading DLL at addr:5EE20000 (\\?\C:\Windows\SysWOW64\msftedit.dll) size :2532864 +Done adding BreakPoints +Loading DLL at addr:754E0000 (\\?\C:\Windows\SysWOW64\clbcatq.dll) size :468992 +Done adding BreakPoints +Loading DLL at addr:54C40000 (\\?\C:\Windows\SysWOW64\Windows.Globalization.dll) size :1170944 +Done adding BreakPoints +Loading DLL at addr:5A8D0000 (\\?\C:\Windows\SysWOW64\BCP47Langs.dll) size :250880 +Done adding BreakPoints +Loading DLL at addr:56EA0000 (\\?\C:\Windows\SysWOW64\BCP47mrm.dll) size :105472 +Done adding BreakPoints +Loading DLL at addr:56E80000 (\\?\C:\Windows\SysWOW64\globinputhost.dll) size :84992 +Done adding BreakPoints +Create thread:10268 +Create thread:8228 +Create thread:1156 +Loading DLL at addr:66380000 (\\?\C:\Windows\SysWOW64\DataExchange.dll) size :163840 +Done adding BreakPoints +Loading DLL at addr:661A0000 (\\?\C:\Windows\SysWOW64\d3d11.dll) size :1780224 +Done adding BreakPoints +Loading DLL at addr:65F60000 (\\?\C:\Windows\SysWOW64\dxgi.dll) size :626176 +Done adding BreakPoints +Loading DLL at addr:66030000 (\\?\C:\Windows\SysWOW64\dcomp.dll) size :1289216 +Done adding BreakPoints +Loading DLL at addr:65DD0000 (\\?\C:\Windows\SysWOW64\twinapi.appcore.dll) size :1480192 +Done adding BreakPoints +Loading DLL at addr:76AA0000 (\\?\C:\Windows\SysWOW64\SHCore.dll) size :483840 +Done adding BreakPoints +Loading DLL at addr:6EA90000 (\\?\C:\Windows\SysWOW64\dwmapi.dll) size :95232 +Done adding BreakPoints +Loading DLL at addr:66E10000 (\\?\C:\Windows\SysWOW64\TextInputFramework.dll) size :690176 +Done adding BreakPoints +Loading DLL at addr:66B90000 (\\?\C:\Windows\SysWOW64\CoreUIComponents.dll) size :1490944 +Done adding BreakPoints +Loading DLL at addr:66AF0000 (\\?\C:\Windows\SysWOW64\CoreMessaging.dll) size :411648 +Done adding BreakPoints +Loading DLL at addr:76E00000 (\\?\C:\Windows\SysWOW64\ws2_32.dll) size :287744 +Done adding BreakPoints +Loading DLL at addr:74E80000 (\\?\C:\Windows\SysWOW64\ntmarta.dll) size :125440 +Done adding BreakPoints +Loading DLL at addr:66A10000 (\\?\C:\Windows\SysWOW64\WinTypes.dll) size :772608 +Done adding BreakPoints +Create thread:10932 +Thread exit:10932 +Adding coverage:DECUtil.pas (DECUtil) 270 +Clearing BreakPoint at 0044DE74 +De-Activate DECUtil.pas line 270 BreakPoint at:0044DE74 +Adding coverage:DECUtil.pas (DECUtil) 271 +Clearing BreakPoint at 0044DE7D +De-Activate DECUtil.pas line 271 BreakPoint at:0044DE7D +Adding coverage:DECUtil.pas (DECUtil) 275 +Clearing BreakPoint at 0044DF0A +De-Activate DECUtil.pas line 275 BreakPoint at:0044DF0A +Adding coverage:DECUtil.pas (DECUtil) 278 +Clearing BreakPoint at 0044DF14 +De-Activate DECUtil.pas line 278 BreakPoint at:0044DF14 +Adding coverage:DECUtil.pas (DECUtil) 279 +Clearing BreakPoint at 0044DF1B +De-Activate DECUtil.pas line 279 BreakPoint at:0044DF1B +Adding coverage:DECUtil.pas (DECUtil) 280 +Clearing BreakPoint at 0044DF29 +De-Activate DECUtil.pas line 280 BreakPoint at:0044DF29 +Adding coverage:DECUtil.pas (DECUtil) 308 +Clearing BreakPoint at 0044DF30 +De-Activate DECUtil.pas line 308 BreakPoint at:0044DF30 +Adding coverage:DECUtil.pas (DECUtil) 309 +Clearing BreakPoint at 0044DF3C +De-Activate DECUtil.pas line 309 BreakPoint at:0044DF3C +Adding coverage:DECUtil.pas (DECUtil) 310 +Clearing BreakPoint at 0044DF42 +De-Activate DECUtil.pas line 310 BreakPoint at:0044DF42 +Adding coverage:DECUtil.pas (DECUtil) 311 +Clearing BreakPoint at 0044DF52 +De-Activate DECUtil.pas line 311 BreakPoint at:0044DF52 +Adding coverage:DECUtil.pas (DECUtil) 312 +Clearing BreakPoint at 0044DF58 +De-Activate DECUtil.pas line 312 BreakPoint at:0044DF58 +Adding coverage:DECUtil.pas (DECUtil) 314 +Clearing BreakPoint at 0044DF7B +De-Activate DECUtil.pas line 314 BreakPoint at:0044DF7B +Adding coverage:DECUtil.pas (DECUtil) 315 +Clearing BreakPoint at 0044DF83 +De-Activate DECUtil.pas line 315 BreakPoint at:0044DF83 +Adding coverage:DECUtil.pas (DECUtil) 316 +Clearing BreakPoint at 0044DF8D +De-Activate DECUtil.pas line 316 BreakPoint at:0044DF8D +Adding coverage:DECUtil.pas (DECUtil) 317 +Clearing BreakPoint at 0044DF95 +De-Activate DECUtil.pas line 317 BreakPoint at:0044DF95 +Adding coverage:DECUtil.pas (DECUtil) 318 +Clearing BreakPoint at 0044DF99 +De-Activate DECUtil.pas line 318 BreakPoint at:0044DF99 +Adding coverage:DECUtil.pas (DECUtil) 319 +Clearing BreakPoint at 0044DF9D +De-Activate DECUtil.pas line 319 BreakPoint at:0044DF9D +Adding coverage:DECUtil.pas (DECUtil) 312 +Clearing BreakPoint at 0044DFA0 +De-Activate DECUtil.pas line 312 BreakPoint at:0044DFA0 +Adding coverage:DECUtil.pas (DECUtil) 320 +Clearing BreakPoint at 0044DFA5 +De-Activate DECUtil.pas line 320 BreakPoint at:0044DFA5 +Adding coverage:DECUtil.pas (DECUtil) 381 +Clearing BreakPoint at 0044E07C +De-Activate DECUtil.pas line 381 BreakPoint at:0044E07C +Adding coverage:DECUtil.pas (DECUtil) 382 +Clearing BreakPoint at 0044E082 +De-Activate DECUtil.pas line 382 BreakPoint at:0044E082 +Adding coverage:DECUtil.pas (DECUtil) 383 +Clearing BreakPoint at 0044E088 +De-Activate DECUtil.pas line 383 BreakPoint at:0044E088 +Adding coverage:DECUtil.pas (DECUtil) 384 +Clearing BreakPoint at 0044E08E +De-Activate DECUtil.pas line 384 BreakPoint at:0044E08E +Adding coverage:DECUtil.pas (DECUtil) 385 +Clearing BreakPoint at 0044E0BB +De-Activate DECUtil.pas line 385 BreakPoint at:0044E0BB +Adding coverage:DECUtil.pas (DECUtil) 386 +Clearing BreakPoint at 0044E0E8 +De-Activate DECUtil.pas line 386 BreakPoint at:0044E0E8 +Adding coverage:DECUtil.pas (DECUtil) 387 +Clearing BreakPoint at 0044E0EE +De-Activate DECUtil.pas line 387 BreakPoint at:0044E0EE +Adding coverage:DECUtil.pas (DECUtil) 388 +Clearing BreakPoint at 0044E0F4 +De-Activate DECUtil.pas line 388 BreakPoint at:0044E0F4 +Adding coverage:DECUtil.pas (DECUtil) 417 +Clearing BreakPoint at 0044E100 +De-Activate DECUtil.pas line 417 BreakPoint at:0044E100 +Adding coverage:DECUtil.pas (DECUtil) 418 +Clearing BreakPoint at 0044E10F +De-Activate DECUtil.pas line 418 BreakPoint at:0044E10F +Adding coverage:DECUtil.pas (DECUtil) 420 +Clearing BreakPoint at 0044E12F +De-Activate DECUtil.pas line 420 BreakPoint at:0044E12F +Adding coverage:DECUtil.pas (DECUtil) 421 +Clearing BreakPoint at 0044E14F +De-Activate DECUtil.pas line 421 BreakPoint at:0044E14F +Adding coverage:DECUtil.pas (DECUtil) 422 +Clearing BreakPoint at 0044E179 +De-Activate DECUtil.pas line 422 BreakPoint at:0044E179 +Adding coverage:DECUtil.pas (DECUtil) 423 +Clearing BreakPoint at 0044E1C1 +De-Activate DECUtil.pas line 423 BreakPoint at:0044E1C1 +Adding coverage:DECUtil.pas (DECUtil) 424 +Clearing BreakPoint at 0044E213 +De-Activate DECUtil.pas line 424 BreakPoint at:0044E213 +Adding coverage:DECUtil.pas (DECUtil) 418 +Clearing BreakPoint at 0044E216 +De-Activate DECUtil.pas line 418 BreakPoint at:0044E216 +Adding coverage:DECUtil.pas (DECUtil) 425 +Clearing BreakPoint at 0044E21F +De-Activate DECUtil.pas line 425 BreakPoint at:0044E21F +Adding coverage:DECUtil.pas (DECUtil) 460 +Clearing BreakPoint at 0044E224 +De-Activate DECUtil.pas line 460 BreakPoint at:0044E224 +Adding coverage:DECUtil.pas (DECUtil) 461 +Clearing BreakPoint at 0044E233 +De-Activate DECUtil.pas line 461 BreakPoint at:0044E233 +Adding coverage:DECUtil.pas (DECUtil) 462 +Clearing BreakPoint at 0044E239 +De-Activate DECUtil.pas line 462 BreakPoint at:0044E239 +Adding coverage:DECUtil.pas (DECUtil) 463 +Clearing BreakPoint at 0044E23F +De-Activate DECUtil.pas line 463 BreakPoint at:0044E23F +Adding coverage:DECUtil.pas (DECUtil) 464 +Clearing BreakPoint at 0044E245 +De-Activate DECUtil.pas line 464 BreakPoint at:0044E245 +Adding coverage:DECUtil.pas (DECUtil) 466 +Clearing BreakPoint at 0044E261 +De-Activate DECUtil.pas line 466 BreakPoint at:0044E261 +Adding coverage:DECUtil.pas (DECUtil) 467 +Clearing BreakPoint at 0044E270 +De-Activate DECUtil.pas line 467 BreakPoint at:0044E270 +Adding coverage:DECUtil.pas (DECUtil) 468 +Clearing BreakPoint at 0044E274 +De-Activate DECUtil.pas line 468 BreakPoint at:0044E274 +Adding coverage:DECUtil.pas (DECUtil) 469 +Clearing BreakPoint at 0044E278 +De-Activate DECUtil.pas line 469 BreakPoint at:0044E278 +Adding coverage:DECUtil.pas (DECUtil) 470 +Clearing BreakPoint at 0044E27C +De-Activate DECUtil.pas line 470 BreakPoint at:0044E27C +Adding coverage:DECUtil.pas (DECUtil) 464 +Clearing BreakPoint at 0044E27F +De-Activate DECUtil.pas line 464 BreakPoint at:0044E27F +Adding coverage:DECUtil.pas (DECUtil) 471 +Clearing BreakPoint at 0044E284 +De-Activate DECUtil.pas line 471 BreakPoint at:0044E284 +Adding coverage:DECUtil.pas (DECUtil) 486 +Clearing BreakPoint at 0044E28C +De-Activate DECUtil.pas line 486 BreakPoint at:0044E28C +Adding coverage:DECUtil.pas (DECUtil) 487 +Clearing BreakPoint at 0044E298 +De-Activate DECUtil.pas line 487 BreakPoint at:0044E298 +Adding coverage:DECUtil.pas (DECUtil) 489 +Clearing BreakPoint at 0044E29E +De-Activate DECUtil.pas line 489 BreakPoint at:0044E29E +Adding coverage:DECUtil.pas (DECUtil) 490 +Clearing BreakPoint at 0044E2A3 +De-Activate DECUtil.pas line 490 BreakPoint at:0044E2A3 +Adding coverage:DECUtil.pas (DECUtil) 489 +Clearing BreakPoint at 0044E2C6 +De-Activate DECUtil.pas line 489 BreakPoint at:0044E2C6 +Adding coverage:DECUtil.pas (DECUtil) 492 +Clearing BreakPoint at 0044E2CC +De-Activate DECUtil.pas line 492 BreakPoint at:0044E2CC +Adding coverage:DECUtil.pas (DECUtil) 609 +Clearing BreakPoint at 0044E654 +De-Activate DECUtil.pas line 609 BreakPoint at:0044E654 +Adding coverage:DECUtil.pas (DECUtil) 610 +Clearing BreakPoint at 0044E660 +De-Activate DECUtil.pas line 610 BreakPoint at:0044E660 +Adding coverage:DECUtil.pas (DECUtil) 611 +Clearing BreakPoint at 0044E684 +De-Activate DECUtil.pas line 611 BreakPoint at:0044E684 +Adding coverage:DECUtil.pas (DECUtil) 615 +Clearing BreakPoint at 0044E6A1 +De-Activate DECUtil.pas line 615 BreakPoint at:0044E6A1 +Adding coverage:DECUtil.pas (DECUtil) 620 +Clearing BreakPoint at 0044E6FD +De-Activate DECUtil.pas line 620 BreakPoint at:0044E6FD +Adding coverage:DECUtil.pas (DECUtil) 501 +Clearing BreakPoint at 0044E2D0 +De-Activate DECUtil.pas line 501 BreakPoint at:0044E2D0 +Adding coverage:DECUtil.pas (DECUtil) 502 +Clearing BreakPoint at 0044E2ED +De-Activate DECUtil.pas line 502 BreakPoint at:0044E2ED +Adding coverage:DECUtil.pas (DECUtil) 503 +Clearing BreakPoint at 0044E306 +De-Activate DECUtil.pas line 503 BreakPoint at:0044E306 +Adding coverage:DECUtil.pas (DECUtil) 504 +Clearing BreakPoint at 0044E31E +De-Activate DECUtil.pas line 504 BreakPoint at:0044E31E +Adding coverage:DECUtil.pas (DECUtil) 510 +Clearing BreakPoint at 0044E33F +De-Activate DECUtil.pas line 510 BreakPoint at:0044E33F +Adding coverage:DECUtil.pas (DECUtil) 511 +Clearing BreakPoint at 0044E34C +De-Activate DECUtil.pas line 511 BreakPoint at:0044E34C +Adding coverage:DECUtil.pas (DECUtil) 514 +Clearing BreakPoint at 0044E368 +De-Activate DECUtil.pas line 514 BreakPoint at:0044E368 +Adding coverage:DECUtil.pas (DECUtil) 515 +Clearing BreakPoint at 0044E375 +De-Activate DECUtil.pas line 515 BreakPoint at:0044E375 +Adding coverage:DECUtil.pas (DECUtil) 517 +Clearing BreakPoint at 0044E37A +De-Activate DECUtil.pas line 517 BreakPoint at:0044E37A +Adding coverage:DECUtil.pas (DECUtil) 518 +Clearing BreakPoint at 0044E388 +De-Activate DECUtil.pas line 518 BreakPoint at:0044E388 +Adding coverage:DECUtil.pas (DECUtil) 520 +Clearing BreakPoint at 0044E39F +De-Activate DECUtil.pas line 520 BreakPoint at:0044E39F +Adding coverage:DECUtil.pas (DECUtil) 524 +Clearing BreakPoint at 0044E3DF +De-Activate DECUtil.pas line 524 BreakPoint at:0044E3DF +Adding coverage:DECUtil.pas (DECUtil) 526 +Clearing BreakPoint at 0044E3E5 +De-Activate DECUtil.pas line 526 BreakPoint at:0044E3E5 +Adding coverage:DECUtil.pas (DECUtil) 527 +Clearing BreakPoint at 0044E3EB +De-Activate DECUtil.pas line 527 BreakPoint at:0044E3EB +Adding coverage:DECUtil.pas (DECUtil) 530 +Clearing BreakPoint at 0044E3FB +De-Activate DECUtil.pas line 530 BreakPoint at:0044E3FB +Adding coverage:DECUtil.pas (DECUtil) 534 +Clearing BreakPoint at 0044E427 +De-Activate DECUtil.pas line 534 BreakPoint at:0044E427 +Adding coverage:DECUtil.pas (DECUtil) 524 +Clearing BreakPoint at 0044E434 +De-Activate DECUtil.pas line 524 BreakPoint at:0044E434 +Adding coverage:DECUtil.pas (DECUtil) 536 +Clearing BreakPoint at 0044E43A +De-Activate DECUtil.pas line 536 BreakPoint at:0044E43A +Adding coverage:DECUtil.pas (DECUtil) 515 +Clearing BreakPoint at 0044E43D +De-Activate DECUtil.pas line 515 BreakPoint at:0044E43D +Adding coverage:DECUtil.pas (DECUtil) 537 +Clearing BreakPoint at 0044E447 +De-Activate DECUtil.pas line 537 BreakPoint at:0044E447 +Adding coverage:DECUtil.pas (DECUtil) 506 +Clearing BreakPoint at 0044E32E +De-Activate DECUtil.pas line 506 BreakPoint at:0044E32E +Adding coverage:DECUtil.pas (DECUtil) 507 +Clearing BreakPoint at 0044E338 +De-Activate DECUtil.pas line 507 BreakPoint at:0044E338 +Adding coverage:DECUtil.pas (DECUtil) 512 +Clearing BreakPoint at 0044E35E +De-Activate DECUtil.pas line 512 BreakPoint at:0044E35E +Adding coverage:DECUtil.pas (DECUtil) 528 +Clearing BreakPoint at 0044E3F4 +De-Activate DECUtil.pas line 528 BreakPoint at:0044E3F4 +Adding coverage:DECUtil.pas (DECUtil) 540 +Clearing BreakPoint at 0044E470 +De-Activate DECUtil.pas line 540 BreakPoint at:0044E470 +Adding coverage:DECUtil.pas (DECUtil) 541 +Clearing BreakPoint at 0044E479 +De-Activate DECUtil.pas line 541 BreakPoint at:0044E479 +Adding coverage:DECUtil.pas (DECUtil) 543 +Clearing BreakPoint at 0044E4A0 +De-Activate DECUtil.pas line 543 BreakPoint at:0044E4A0 +Adding coverage:DECUtil.pas (DECUtil) 544 +Clearing BreakPoint at 0044E4E2 +De-Activate DECUtil.pas line 544 BreakPoint at:0044E4E2 +Adding coverage:DECUtil.pas (DECUtil) 546 +Clearing BreakPoint at 0044E4F0 +De-Activate DECUtil.pas line 546 BreakPoint at:0044E4F0 +Adding coverage:DECUtil.pas (DECUtil) 549 +Clearing BreakPoint at 0044E4F4 +De-Activate DECUtil.pas line 549 BreakPoint at:0044E4F4 +Adding coverage:DECUtil.pas (DECUtil) 550 +Clearing BreakPoint at 0044E4FD +De-Activate DECUtil.pas line 550 BreakPoint at:0044E4FD +Adding coverage:DECUtil.pas (DECUtil) 552 +Clearing BreakPoint at 0044E51C +De-Activate DECUtil.pas line 552 BreakPoint at:0044E51C +Adding coverage:DECUtil.pas (DECUtil) 554 +Clearing BreakPoint at 0044E524 +De-Activate DECUtil.pas line 554 BreakPoint at:0044E524 +Adding coverage:DECUtil.pas (DECUtil) 558 +Clearing BreakPoint at 0044E55B +De-Activate DECUtil.pas line 558 BreakPoint at:0044E55B +Adding coverage:DECUtil.pas (DECUtil) 560 +Clearing BreakPoint at 0044E563 +De-Activate DECUtil.pas line 560 BreakPoint at:0044E563 +Adding coverage:DECUtil.pas (DECUtil) 594 +Clearing BreakPoint at 0044E5DC +De-Activate DECUtil.pas line 594 BreakPoint at:0044E5DC +Adding coverage:DECUtil.pas (DECUtil) 595 +Clearing BreakPoint at 0044E5E5 +De-Activate DECUtil.pas line 595 BreakPoint at:0044E5E5 +Adding coverage:DECUtil.pas (DECUtil) 597 +Clearing BreakPoint at 0044E606 +De-Activate DECUtil.pas line 597 BreakPoint at:0044E606 +Adding coverage:DECUtil.pas (DECUtil) 599 +Clearing BreakPoint at 0044E60E +De-Activate DECUtil.pas line 599 BreakPoint at:0044E60E +Adding coverage:DECUtil.pas (DECUtil) 603 +Clearing BreakPoint at 0044E647 +De-Activate DECUtil.pas line 603 BreakPoint at:0044E647 +Adding coverage:DECUtil.pas (DECUtil) 605 +Clearing BreakPoint at 0044E64F +De-Activate DECUtil.pas line 605 BreakPoint at:0044E64F +Adding coverage:DECUtil.pas (DECUtil) 563 +Clearing BreakPoint at 0044E568 +De-Activate DECUtil.pas line 563 BreakPoint at:0044E568 +Adding coverage:DECUtil.pas (DECUtil) 564 +Clearing BreakPoint at 0044E571 +De-Activate DECUtil.pas line 564 BreakPoint at:0044E571 +Adding coverage:DECUtil.pas (DECUtil) 568 +Clearing BreakPoint at 0044E590 +De-Activate DECUtil.pas line 568 BreakPoint at:0044E590 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 133 +Clearing BreakPoint at 0044D740 +De-Activate DECUtilRawByteStringHelper.pas line 133 BreakPoint at:0044D740 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 134 +Clearing BreakPoint at 0044D747 +De-Activate DECUtilRawByteStringHelper.pas line 134 BreakPoint at:0044D747 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 116 +Clearing BreakPoint at 0044D6CC +De-Activate DECUtilRawByteStringHelper.pas line 116 BreakPoint at:0044D6CC +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 117 +Clearing BreakPoint at 0044D6D5 +De-Activate DECUtilRawByteStringHelper.pas line 117 BreakPoint at:0044D6D5 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 118 +Clearing BreakPoint at 0044D6DD +De-Activate DECUtilRawByteStringHelper.pas line 118 BreakPoint at:0044D6DD +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 120 +Clearing BreakPoint at 0044D6E3 +De-Activate DECUtilRawByteStringHelper.pas line 120 BreakPoint at:0044D6E3 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 121 +Clearing BreakPoint at 0044D6EB +De-Activate DECUtilRawByteStringHelper.pas line 121 BreakPoint at:0044D6EB +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 122 +Clearing BreakPoint at 0044D6F6 +De-Activate DECUtilRawByteStringHelper.pas line 122 BreakPoint at:0044D6F6 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 124 +Clearing BreakPoint at 0044D6FF +De-Activate DECUtilRawByteStringHelper.pas line 124 BreakPoint at:0044D6FF +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 59 +Clearing BreakPoint at 0044D4F0 +De-Activate DECUtilRawByteStringHelper.pas line 59 BreakPoint at:0044D4F0 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 60 +Clearing BreakPoint at 0044D513 +De-Activate DECUtilRawByteStringHelper.pas line 60 BreakPoint at:0044D513 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 61 +Clearing BreakPoint at 0044D518 +De-Activate DECUtilRawByteStringHelper.pas line 61 BreakPoint at:0044D518 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 67 +Clearing BreakPoint at 0044D522 +De-Activate DECUtilRawByteStringHelper.pas line 67 BreakPoint at:0044D522 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 71 +Clearing BreakPoint at 0044D55A +De-Activate DECUtilRawByteStringHelper.pas line 71 BreakPoint at:0044D55A +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 72 +Clearing BreakPoint at 0044D592 +De-Activate DECUtilRawByteStringHelper.pas line 72 BreakPoint at:0044D592 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 73 +Clearing BreakPoint at 0044D59B +De-Activate DECUtilRawByteStringHelper.pas line 73 BreakPoint at:0044D59B +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 74 +Clearing BreakPoint at 0044D5A4 +De-Activate DECUtilRawByteStringHelper.pas line 74 BreakPoint at:0044D5A4 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 75 +Clearing BreakPoint at 0044D5AE +De-Activate DECUtilRawByteStringHelper.pas line 75 BreakPoint at:0044D5AE +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 81 +Clearing BreakPoint at 0044D5C0 +De-Activate DECUtilRawByteStringHelper.pas line 81 BreakPoint at:0044D5C0 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 82 +Clearing BreakPoint at 0044D5CA +De-Activate DECUtilRawByteStringHelper.pas line 82 BreakPoint at:0044D5CA +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 83 +Clearing BreakPoint at 0044D5D3 +De-Activate DECUtilRawByteStringHelper.pas line 83 BreakPoint at:0044D5D3 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 85 +Clearing BreakPoint at 0044D5E6 +De-Activate DECUtilRawByteStringHelper.pas line 85 BreakPoint at:0044D5E6 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 125 +Clearing BreakPoint at 0044D713 +De-Activate DECUtilRawByteStringHelper.pas line 125 BreakPoint at:0044D713 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 126 +Clearing BreakPoint at 0044D726 +De-Activate DECUtilRawByteStringHelper.pas line 126 BreakPoint at:0044D726 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 90 +Clearing BreakPoint at 0044D678 +De-Activate DECUtilRawByteStringHelper.pas line 90 BreakPoint at:0044D678 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 91 +Clearing BreakPoint at 0044D681 +De-Activate DECUtilRawByteStringHelper.pas line 91 BreakPoint at:0044D681 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 93 +Clearing BreakPoint at 0044D689 +De-Activate DECUtilRawByteStringHelper.pas line 93 BreakPoint at:0044D689 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 94 +Clearing BreakPoint at 0044D694 +De-Activate DECUtilRawByteStringHelper.pas line 94 BreakPoint at:0044D694 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 95 +Clearing BreakPoint at 0044D69B +De-Activate DECUtilRawByteStringHelper.pas line 95 BreakPoint at:0044D69B +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 110 +Clearing BreakPoint at 0044D6BE +De-Activate DECUtilRawByteStringHelper.pas line 110 BreakPoint at:0044D6BE +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 111 +Clearing BreakPoint at 0044D6C4 +De-Activate DECUtilRawByteStringHelper.pas line 111 BreakPoint at:0044D6C4 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 127 +Clearing BreakPoint at 0044D72E +De-Activate DECUtilRawByteStringHelper.pas line 127 BreakPoint at:0044D72E +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 130 +Clearing BreakPoint at 0044D736 +De-Activate DECUtilRawByteStringHelper.pas line 130 BreakPoint at:0044D736 +Adding coverage:DECUtilRawByteStringHelper.pas (DECUtilRawByteStringHelper) 135 +Clearing BreakPoint at 0044D74F +De-Activate DECUtilRawByteStringHelper.pas line 135 BreakPoint at:0044D74F +Adding coverage:DECUtil.pas (DECUtil) 570 +Clearing BreakPoint at 0044E598 +De-Activate DECUtil.pas line 570 BreakPoint at:0044E598 +Adding coverage:DECUtil.pas (DECUtil) 574 +Clearing BreakPoint at 0044E5CF +De-Activate DECUtil.pas line 574 BreakPoint at:0044E5CF +Adding coverage:DECUtil.pas (DECUtil) 576 +Clearing BreakPoint at 0044E5D7 +De-Activate DECUtil.pas line 576 BreakPoint at:0044E5D7 +Adding coverage:DECUtil.pas (DECUtil) 623 +Clearing BreakPoint at 0044E704 +De-Activate DECUtil.pas line 623 BreakPoint at:0044E704 +Adding coverage:DECUtil.pas (DECUtil) 624 +Clearing BreakPoint at 0044E710 +De-Activate DECUtil.pas line 624 BreakPoint at:0044E710 +Adding coverage:DECUtil.pas (DECUtil) 627 +Clearing BreakPoint at 0044E74C +De-Activate DECUtil.pas line 627 BreakPoint at:0044E74C +Adding coverage:DECUtil.pas (DECUtil) 628 +Clearing BreakPoint at 0044E769 +De-Activate DECUtil.pas line 628 BreakPoint at:0044E769 +Adding coverage:DECUtil.pas (DECUtil) 631 +Clearing BreakPoint at 0044E7BC +De-Activate DECUtil.pas line 631 BreakPoint at:0044E7BC +Adding coverage:DECUtil.pas (DECUtil) 625 +Clearing BreakPoint at 0044E746 +De-Activate DECUtil.pas line 625 BreakPoint at:0044E746 +Adding coverage:DECUtil.pas (DECUtil) 630 +Clearing BreakPoint at 0044E7B8 +De-Activate DECUtil.pas line 630 BreakPoint at:0044E7B8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 566 +Clearing BreakPoint at 004578C0 +De-Activate DECFormatBase.pas line 566 BreakPoint at:004578C0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 567 +Clearing BreakPoint at 004578CC +De-Activate DECFormatBase.pas line 567 BreakPoint at:004578CC +Adding coverage:DECFormatBase.pas (DECFormatBase) 568 +Clearing BreakPoint at 004578D2 +De-Activate DECFormatBase.pas line 568 BreakPoint at:004578D2 +Adding coverage:DECFormatBase.pas (DECFormatBase) 570 +Clearing BreakPoint at 004578E6 +De-Activate DECFormatBase.pas line 570 BreakPoint at:004578E6 +Adding coverage:DECFormatBase.pas (DECFormatBase) 569 +Clearing BreakPoint at 004578DB +De-Activate DECFormatBase.pas line 569 BreakPoint at:004578DB +Adding coverage:DECFormatBase.pas (DECFormatBase) 576 +Clearing BreakPoint at 004578F0 +De-Activate DECFormatBase.pas line 576 BreakPoint at:004578F0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 577 +Clearing BreakPoint at 00457915 +De-Activate DECFormatBase.pas line 577 BreakPoint at:00457915 +Adding coverage:DECFormatBase.pas (DECFormatBase) 578 +Clearing BreakPoint at 0045791C +De-Activate DECFormatBase.pas line 578 BreakPoint at:0045791C +Adding coverage:DECFormatBase.pas (DECFormatBase) 579 +Clearing BreakPoint at 00457952 +De-Activate DECFormatBase.pas line 579 BreakPoint at:00457952 +Adding coverage:DECFormatBase.pas (DECFormatBase) 589 +Clearing BreakPoint at 00457987 +De-Activate DECFormatBase.pas line 589 BreakPoint at:00457987 +Adding coverage:DECFormatBase.pas (DECFormatBase) 581 +Clearing BreakPoint at 00457923 +De-Activate DECFormatBase.pas line 581 BreakPoint at:00457923 +Adding coverage:DECFormatBase.pas (DECFormatBase) 583 +Clearing BreakPoint at 0045793F +De-Activate DECFormatBase.pas line 583 BreakPoint at:0045793F +Adding coverage:DECFormatBase.pas (DECFormatBase) 584 +Clearing BreakPoint at 00457945 +De-Activate DECFormatBase.pas line 584 BreakPoint at:00457945 +Adding coverage:DECFormatBase.pas (DECFormatBase) 587 +Clearing BreakPoint at 00457947 +De-Activate DECFormatBase.pas line 587 BreakPoint at:00457947 +Adding coverage:DECFormatBase.pas (DECFormatBase) 484 +Clearing BreakPoint at 004574F8 +De-Activate DECFormatBase.pas line 484 BreakPoint at:004574F8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 485 +Clearing BreakPoint at 00457504 +De-Activate DECFormatBase.pas line 485 BreakPoint at:00457504 +Adding coverage:DECBaseClass.pas (DECBaseClass) 336 +Clearing BreakPoint at 004549C4 +De-Activate DECBaseClass.pas line 336 BreakPoint at:004549C4 +Adding coverage:DECBaseClass.pas (DECBaseClass) 337 +Clearing BreakPoint at 004549E3 +De-Activate DECBaseClass.pas line 337 BreakPoint at:004549E3 +Adding coverage:DECBaseClass.pas (DECBaseClass) 339 +Clearing BreakPoint at 004549E8 +De-Activate DECBaseClass.pas line 339 BreakPoint at:004549E8 +Adding coverage:DECBaseClass.pas (DECBaseClass) 341 +Clearing BreakPoint at 00454A09 +De-Activate DECBaseClass.pas line 341 BreakPoint at:00454A09 +Adding coverage:DECBaseClass.pas (DECBaseClass) 299 +Clearing BreakPoint at 004547B8 +De-Activate DECBaseClass.pas line 299 BreakPoint at:004547B8 +Adding coverage:DECBaseClass.pas (DECBaseClass) 300 +Clearing BreakPoint at 004547C7 +De-Activate DECBaseClass.pas line 300 BreakPoint at:004547C7 +Adding coverage:DECBaseClass.pas (DECBaseClass) 301 +Clearing BreakPoint at 004547D2 +De-Activate DECBaseClass.pas line 301 BreakPoint at:004547D2 +Adding coverage:DECBaseClass.pas (DECBaseClass) 302 +Clearing BreakPoint at 004547EF +De-Activate DECBaseClass.pas line 302 BreakPoint at:004547EF +Adding coverage:DECBaseClass.pas (DECBaseClass) 303 +Clearing BreakPoint at 004547F5 +De-Activate DECBaseClass.pas line 303 BreakPoint at:004547F5 +Adding coverage:DECBaseClass.pas (DECBaseClass) 304 +Clearing BreakPoint at 00454805 +De-Activate DECBaseClass.pas line 304 BreakPoint at:00454805 +Adding coverage:DECBaseClass.pas (DECBaseClass) 343 +Clearing BreakPoint at 00454A28 +De-Activate DECBaseClass.pas line 343 BreakPoint at:00454A28 +Adding coverage:DECBaseClass.pas (DECBaseClass) 343 +Clearing BreakPoint at 00454A8D +De-Activate DECBaseClass.pas line 343 BreakPoint at:00454A8D +Adding coverage:DECBaseClass.pas (DECBaseClass) 345 +Clearing BreakPoint at 00454A53 +De-Activate DECBaseClass.pas line 345 BreakPoint at:00454A53 +Adding coverage:DECBaseClass.pas (DECBaseClass) 354 +Clearing BreakPoint at 00454A73 +De-Activate DECBaseClass.pas line 354 BreakPoint at:00454A73 +Adding coverage:DECBaseClass.pas (DECBaseClass) 316 +Clearing BreakPoint at 00454884 +De-Activate DECBaseClass.pas line 316 BreakPoint at:00454884 +Adding coverage:DECBaseClass.pas (DECBaseClass) 317 +Clearing BreakPoint at 004548AA +De-Activate DECBaseClass.pas line 317 BreakPoint at:004548AA +Adding coverage:DECBaseClass.pas (DECBaseClass) 318 +Clearing BreakPoint at 004548B5 +De-Activate DECBaseClass.pas line 318 BreakPoint at:004548B5 +Adding coverage:DECBaseClass.pas (DECBaseClass) 319 +Clearing BreakPoint at 004548D1 +De-Activate DECBaseClass.pas line 319 BreakPoint at:004548D1 +Adding coverage:DECBaseClass.pas (DECBaseClass) 356 +Clearing BreakPoint at 00454A85 +De-Activate DECBaseClass.pas line 356 BreakPoint at:00454A85 +Adding coverage:DECBaseClass.pas (DECBaseClass) 357 +Clearing BreakPoint at 00454A8B +De-Activate DECBaseClass.pas line 357 BreakPoint at:00454A8B +Adding coverage:DECBaseClass.pas (DECBaseClass) 359 +Clearing BreakPoint at 00454AA6 +De-Activate DECBaseClass.pas line 359 BreakPoint at:00454AA6 +Adding coverage:DECBaseClass.pas (DECBaseClass) 362 +Clearing BreakPoint at 00454AC5 +De-Activate DECBaseClass.pas line 362 BreakPoint at:00454AC5 +Adding coverage:DECBaseClass.pas (DECBaseClass) 364 +Clearing BreakPoint at 00454AF1 +De-Activate DECBaseClass.pas line 364 BreakPoint at:00454AF1 +Adding coverage:DECFormatBase.pas (DECFormatBase) 486 +Clearing BreakPoint at 00457514 +De-Activate DECFormatBase.pas line 486 BreakPoint at:00457514 +Adding coverage:DECBaseClass.pas (DECBaseClass) 363 +Clearing BreakPoint at 00454ACB +De-Activate DECBaseClass.pas line 363 BreakPoint at:00454ACB +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457511 +After line:DECFormatBase line 486 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460AF3 +Exact line:TestDECFormatBase line 412 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460AC4 +Exact line:TestDECFormatBase line 406 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECBaseClass.pas (DECBaseClass) 347 +Clearing BreakPoint at 00454A59 +De-Activate DECBaseClass.pas line 347 BreakPoint at:00454A59 +Adding coverage:DECBaseClass.pas (DECBaseClass) 309 +Clearing BreakPoint at 0045481C +De-Activate DECBaseClass.pas line 309 BreakPoint at:0045481C +Adding coverage:DECBaseClass.pas (DECBaseClass) 310 +Clearing BreakPoint at 0045483F +De-Activate DECBaseClass.pas line 310 BreakPoint at:0045483F +Adding coverage:DECBaseClass.pas (DECBaseClass) 292 +Clearing BreakPoint at 0045475C +De-Activate DECBaseClass.pas line 292 BreakPoint at:0045475C +Adding coverage:DECBaseClass.pas (DECBaseClass) 293 +Clearing BreakPoint at 0045477B +De-Activate DECBaseClass.pas line 293 BreakPoint at:0045477B +Adding coverage:DECBaseClass.pas (DECBaseClass) 294 +Clearing BreakPoint at 00454794 +De-Activate DECBaseClass.pas line 294 BreakPoint at:00454794 +Adding coverage:DECBaseClass.pas (DECBaseClass) 311 +Clearing BreakPoint at 0045485B +De-Activate DECBaseClass.pas line 311 BreakPoint at:0045485B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457511 +After line:DECFormatBase line 486 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460B0E +Exact line:TestDECFormatBase line 417 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460ADD +Exact line:TestDECFormatBase line 407 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormatBase.pas (DECFormatBase) 479 +Clearing BreakPoint at 004574D0 +De-Activate DECFormatBase.pas line 479 BreakPoint at:004574D0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 480 +Clearing BreakPoint at 004574D9 +De-Activate DECFormatBase.pas line 480 BreakPoint at:004574D9 +Adding coverage:DECBaseClass.pas (DECBaseClass) 322 +Clearing BreakPoint at 00454900 +De-Activate DECBaseClass.pas line 322 BreakPoint at:00454900 +Adding coverage:DECBaseClass.pas (DECBaseClass) 323 +Clearing BreakPoint at 0045491F +De-Activate DECBaseClass.pas line 323 BreakPoint at:0045491F +Adding coverage:DECBaseClass.pas (DECBaseClass) 324 +Clearing BreakPoint at 0045492D +De-Activate DECBaseClass.pas line 324 BreakPoint at:0045492D +Adding coverage:DECBaseClass.pas (DECBaseClass) 330 +Clearing BreakPoint at 00454997 +De-Activate DECBaseClass.pas line 330 BreakPoint at:00454997 +Adding coverage:DECFormatBase.pas (DECFormatBase) 481 +Clearing BreakPoint at 004574EC +De-Activate DECFormatBase.pas line 481 BreakPoint at:004574EC +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00455283 +Exact line:DECBaseClass line 60 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045493B +After line:DECBaseClass line 327 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004574E9 +After line:DECFormatBase line 481 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046095D +Exact line:TestDECFormatBase line 390 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460944 +Exact line:TestDECFormatBase line 385 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECBaseClass.pas (DECBaseClass) 327 +Clearing BreakPoint at 00454959 +De-Activate DECBaseClass.pas line 327 BreakPoint at:00454959 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454992 +After line:DECBaseClass line 330 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004574E9 +After line:DECFormatBase line 481 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046095D +Exact line:TestDECFormatBase line 390 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460944 +Exact line:TestDECFormatBase line 385 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormatBase.pas (DECFormatBase) 403 +Clearing BreakPoint at 004571A0 +De-Activate DECFormatBase.pas line 403 BreakPoint at:004571A0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 404 +Clearing BreakPoint at 004571A9 +De-Activate DECFormatBase.pas line 404 BreakPoint at:004571A9 +Adding coverage:DECFormatBase.pas (DECFormatBase) 407 +Clearing BreakPoint at 004571B7 +De-Activate DECFormatBase.pas line 407 BreakPoint at:004571B7 +Adding coverage:DECFormatBase.pas (DECFormatBase) 408 +Clearing BreakPoint at 004571BF +De-Activate DECFormatBase.pas line 408 BreakPoint at:004571BF +Adding coverage:DECFormatBase.pas (DECFormatBase) 405 +Clearing BreakPoint at 004571AF +De-Activate DECFormatBase.pas line 405 BreakPoint at:004571AF +Adding coverage:DECFormatBase.pas (DECFormatBase) 411 +Clearing BreakPoint at 004571C8 +De-Activate DECFormatBase.pas line 411 BreakPoint at:004571C8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 412 +Clearing BreakPoint at 004571D1 +De-Activate DECFormatBase.pas line 412 BreakPoint at:004571D1 +Adding coverage:DECFormatBase.pas (DECFormatBase) 413 +Clearing BreakPoint at 004571E1 +De-Activate DECFormatBase.pas line 413 BreakPoint at:004571E1 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004571DE +After line:DECFormatBase line 413 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460CAE +Exact line:TestDECFormatBase line 439 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460C84 +Exact line:TestDECFormatBase line 433 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004571DE +After line:DECFormatBase line 413 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460CC5 +Exact line:TestDECFormatBase line 444 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460C9D +Exact line:TestDECFormatBase line 434 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormatBase.pas (DECFormatBase) 416 +Clearing BreakPoint at 004571E8 +De-Activate DECFormatBase.pas line 416 BreakPoint at:004571E8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 417 +Clearing BreakPoint at 004571EC +De-Activate DECFormatBase.pas line 417 BreakPoint at:004571EC +Adding coverage:DECFormatBase.pas (DECFormatBase) 418 +Clearing BreakPoint at 004571FF +De-Activate DECFormatBase.pas line 418 BreakPoint at:004571FF +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00455283 +Exact line:DECBaseClass line 60 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045493B +After line:DECBaseClass line 327 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004571FC +After line:DECFormatBase line 418 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460738 +Exact line:TestDECFormatBase line 366 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460724 +Exact line:TestDECFormatBase line 361 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454992 +After line:DECBaseClass line 330 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004571FC +After line:DECFormatBase line 418 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460738 +Exact line:TestDECFormatBase line 366 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00460724 +Exact line:TestDECFormatBase line 361 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormatBase.pas (DECFormatBase) 468 +Clearing BreakPoint at 0045740C +De-Activate DECFormatBase.pas line 468 BreakPoint at:0045740C +Adding coverage:DECFormatBase.pas (DECFormatBase) 469 +Clearing BreakPoint at 0045742F +De-Activate DECFormatBase.pas line 469 BreakPoint at:0045742F +Adding coverage:DECFormatBase.pas (DECFormatBase) 471 +Clearing BreakPoint at 0045744C +De-Activate DECFormatBase.pas line 471 BreakPoint at:0045744C +Adding coverage:DECFormatBase.pas (DECFormatBase) 595 +Clearing BreakPoint at 004579B8 +De-Activate DECFormatBase.pas line 595 BreakPoint at:004579B8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 596 +Clearing BreakPoint at 004579C7 +De-Activate DECFormatBase.pas line 596 BreakPoint at:004579C7 +Adding coverage:DECFormatBase.pas (DECFormatBase) 597 +Clearing BreakPoint at 004579E1 +De-Activate DECFormatBase.pas line 597 BreakPoint at:004579E1 +Adding coverage:DECFormatBase.pas (DECFormatBase) 598 +Clearing BreakPoint at 004579E7 +De-Activate DECFormatBase.pas line 598 BreakPoint at:004579E7 +Adding coverage:DECFormatBase.pas (DECFormatBase) 599 +Clearing BreakPoint at 00457A09 +De-Activate DECFormatBase.pas line 599 BreakPoint at:00457A09 +Adding coverage:DECFormatBase.pas (DECFormatBase) 472 +Clearing BreakPoint at 00457485 +De-Activate DECFormatBase.pas line 472 BreakPoint at:00457485 +Adding coverage:DECFormatBase.pas (DECFormatBase) 476 +Clearing BreakPoint at 004574A6 +De-Activate DECFormatBase.pas line 476 BreakPoint at:004574A6 +Adding coverage:DECFormatBase.pas (DECFormatBase) 451 +Clearing BreakPoint at 00457344 +De-Activate DECFormatBase.pas line 451 BreakPoint at:00457344 +Adding coverage:DECFormatBase.pas (DECFormatBase) 452 +Clearing BreakPoint at 00457367 +De-Activate DECFormatBase.pas line 452 BreakPoint at:00457367 +Adding coverage:DECFormatBase.pas (DECFormatBase) 455 +Clearing BreakPoint at 00457384 +De-Activate DECFormatBase.pas line 455 BreakPoint at:00457384 +Adding coverage:DECFormatBase.pas (DECFormatBase) 459 +Clearing BreakPoint at 004573CC +De-Activate DECFormatBase.pas line 459 BreakPoint at:004573CC +Adding coverage:DECFormatBase.pas (DECFormatBase) 463 +Clearing BreakPoint at 004573E1 +De-Activate DECFormatBase.pas line 463 BreakPoint at:004573E1 +Adding coverage:DECFormatBase.pas (DECFormatBase) 534 +Clearing BreakPoint at 00457724 +De-Activate DECFormatBase.pas line 534 BreakPoint at:00457724 +Adding coverage:DECFormatBase.pas (DECFormatBase) 535 +Clearing BreakPoint at 00457747 +De-Activate DECFormatBase.pas line 535 BreakPoint at:00457747 +Adding coverage:DECFormatBase.pas (DECFormatBase) 537 +Clearing BreakPoint at 0045774D +De-Activate DECFormatBase.pas line 537 BreakPoint at:0045774D +Adding coverage:DECFormatBase.pas (DECFormatBase) 538 +Clearing BreakPoint at 0045775D +De-Activate DECFormatBase.pas line 538 BreakPoint at:0045775D +Adding coverage:DECFormatBase.pas (DECFormatBase) 542 +Clearing BreakPoint at 00457772 +De-Activate DECFormatBase.pas line 542 BreakPoint at:00457772 +Adding coverage:DECFormatBase.pas (DECFormatBase) 491 +Clearing BreakPoint at 0045751C +De-Activate DECFormatBase.pas line 491 BreakPoint at:0045751C +Adding coverage:DECFormatBase.pas (DECFormatBase) 492 +Clearing BreakPoint at 0045753F +De-Activate DECFormatBase.pas line 492 BreakPoint at:0045753F +Adding coverage:DECFormatBase.pas (DECFormatBase) 494 +Clearing BreakPoint at 0045755C +De-Activate DECFormatBase.pas line 494 BreakPoint at:0045755C +Adding coverage:DECFormatBase.pas (DECFormatBase) 603 +Clearing BreakPoint at 00457A10 +De-Activate DECFormatBase.pas line 603 BreakPoint at:00457A10 +Adding coverage:DECFormatBase.pas (DECFormatBase) 604 +Clearing BreakPoint at 00457A1F +De-Activate DECFormatBase.pas line 604 BreakPoint at:00457A1F +Adding coverage:DECFormatBase.pas (DECFormatBase) 605 +Clearing BreakPoint at 00457A39 +De-Activate DECFormatBase.pas line 605 BreakPoint at:00457A39 +Adding coverage:DECFormatBase.pas (DECFormatBase) 606 +Clearing BreakPoint at 00457A3F +De-Activate DECFormatBase.pas line 606 BreakPoint at:00457A3F +Adding coverage:DECFormatBase.pas (DECFormatBase) 607 +Clearing BreakPoint at 00457A61 +De-Activate DECFormatBase.pas line 607 BreakPoint at:00457A61 +Adding coverage:DECFormatBase.pas (DECFormatBase) 495 +Clearing BreakPoint at 00457595 +De-Activate DECFormatBase.pas line 495 BreakPoint at:00457595 +Adding coverage:DECFormatBase.pas (DECFormatBase) 499 +Clearing BreakPoint at 004575B6 +De-Activate DECFormatBase.pas line 499 BreakPoint at:004575B6 +Adding coverage:DECFormatBase.pas (DECFormatBase) 504 +Clearing BreakPoint at 004575E0 +De-Activate DECFormatBase.pas line 504 BreakPoint at:004575E0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 505 +Clearing BreakPoint at 00457603 +De-Activate DECFormatBase.pas line 505 BreakPoint at:00457603 +Adding coverage:DECFormatBase.pas (DECFormatBase) 508 +Clearing BreakPoint at 00457620 +De-Activate DECFormatBase.pas line 508 BreakPoint at:00457620 +Adding coverage:DECFormatBase.pas (DECFormatBase) 512 +Clearing BreakPoint at 00457668 +De-Activate DECFormatBase.pas line 512 BreakPoint at:00457668 +Adding coverage:DECFormatBase.pas (DECFormatBase) 516 +Clearing BreakPoint at 0045767D +De-Activate DECFormatBase.pas line 516 BreakPoint at:0045767D +Adding coverage:DECFormatBase.pas (DECFormatBase) 545 +Clearing BreakPoint at 004577A0 +De-Activate DECFormatBase.pas line 545 BreakPoint at:004577A0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 546 +Clearing BreakPoint at 004577AF +De-Activate DECFormatBase.pas line 546 BreakPoint at:004577AF +Adding coverage:DECFormatBase.pas (DECFormatBase) 610 +Clearing BreakPoint at 00457A68 +De-Activate DECFormatBase.pas line 610 BreakPoint at:00457A68 +Adding coverage:DECFormatBase.pas (DECFormatBase) 611 +Clearing BreakPoint at 00457A77 +De-Activate DECFormatBase.pas line 611 BreakPoint at:00457A77 +Adding coverage:DECFormatBase.pas (DECFormatBase) 612 +Clearing BreakPoint at 00457A7F +De-Activate DECFormatBase.pas line 612 BreakPoint at:00457A7F +Adding coverage:DECFormatBase.pas (DECFormatBase) 547 +Clearing BreakPoint at 004577BE +De-Activate DECFormatBase.pas line 547 BreakPoint at:004577BE +Adding coverage:DECFormatBase.pas (DECFormatBase) 550 +Clearing BreakPoint at 004577C8 +De-Activate DECFormatBase.pas line 550 BreakPoint at:004577C8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 551 +Clearing BreakPoint at 004577D4 +De-Activate DECFormatBase.pas line 551 BreakPoint at:004577D4 +Adding coverage:DECFormatBase.pas (DECFormatBase) 552 +Clearing BreakPoint at 00457835 +De-Activate DECFormatBase.pas line 552 BreakPoint at:00457835 +Adding coverage:DECFormatBase.pas (DECFormatBase) 475 +Clearing BreakPoint at 00457498 +De-Activate DECFormatBase.pas line 475 BreakPoint at:00457498 +Adding coverage:DECFormat.pas (DECFormat) 498 +Clearing BreakPoint at 00458D20 +De-Activate DECFormat.pas line 498 BreakPoint at:00458D20 +Adding coverage:DECFormat.pas (DECFormat) 499 +Clearing BreakPoint at 00458D43 +De-Activate DECFormat.pas line 499 BreakPoint at:00458D43 +Adding coverage:DECFormat.pas (DECFormat) 500 +Clearing BreakPoint at 00458D4D +De-Activate DECFormat.pas line 500 BreakPoint at:00458D4D +Adding coverage:DECFormat.pas (DECFormat) 502 +Clearing BreakPoint at 00458D6F +De-Activate DECFormat.pas line 502 BreakPoint at:00458D6F +Adding coverage:DECFormat.pas (DECFormat) 429 +Clearing BreakPoint at 004587A4 +De-Activate DECFormat.pas line 429 BreakPoint at:004587A4 +Adding coverage:DECFormat.pas (DECFormat) 430 +Clearing BreakPoint at 004587B5 +De-Activate DECFormat.pas line 430 BreakPoint at:004587B5 +Adding coverage:DECFormat.pas (DECFormat) 438 +Clearing BreakPoint at 004587CD +De-Activate DECFormat.pas line 438 BreakPoint at:004587CD +Adding coverage:DECFormat.pas (DECFormat) 435 +Clearing BreakPoint at 004587D2 +De-Activate DECFormat.pas line 435 BreakPoint at:004587D2 +Adding coverage:DECFormat.pas (DECFormat) 438 +Clearing BreakPoint at 00458D03 +De-Activate DECFormat.pas line 438 BreakPoint at:00458D03 +Adding coverage:DECFormat.pas (DECFormat) 491 +Clearing BreakPoint at 00458D1B +De-Activate DECFormat.pas line 491 BreakPoint at:00458D1B +Adding coverage:DECFormat.pas (DECFormat) 504 +Clearing BreakPoint at 00458D78 +De-Activate DECFormat.pas line 504 BreakPoint at:00458D78 +Adding coverage:DECFormat.pas (DECFormat) 505 +Clearing BreakPoint at 00458D7E +De-Activate DECFormat.pas line 505 BreakPoint at:00458D7E +Adding coverage:DECFormat.pas (DECFormat) 507 +Clearing BreakPoint at 00458D83 +De-Activate DECFormat.pas line 507 BreakPoint at:00458D83 +Adding coverage:DECFormat.pas (DECFormat) 509 +Clearing BreakPoint at 00458D8D +De-Activate DECFormat.pas line 509 BreakPoint at:00458D8D +Adding coverage:DECFormat.pas (DECFormat) 510 +Clearing BreakPoint at 00458DC3 +De-Activate DECFormat.pas line 510 BreakPoint at:00458DC3 +Adding coverage:DECFormat.pas (DECFormat) 512 +Clearing BreakPoint at 00458E06 +De-Activate DECFormat.pas line 512 BreakPoint at:00458E06 +Adding coverage:DECFormat.pas (DECFormat) 513 +Clearing BreakPoint at 00458E0A +De-Activate DECFormat.pas line 513 BreakPoint at:00458E0A +Adding coverage:DECFormat.pas (DECFormat) 514 +Clearing BreakPoint at 00458E15 +De-Activate DECFormat.pas line 514 BreakPoint at:00458E15 +Adding coverage:DECFormat.pas (DECFormat) 507 +Clearing BreakPoint at 00458E20 +De-Activate DECFormat.pas line 507 BreakPoint at:00458E20 +Adding coverage:DECFormat.pas (DECFormat) 516 +Clearing BreakPoint at 00458E2A +De-Activate DECFormat.pas line 516 BreakPoint at:00458E2A +Adding coverage:DECFormatBase.pas (DECFormatBase) 462 +Clearing BreakPoint at 004573D9 +De-Activate DECFormatBase.pas line 462 BreakPoint at:004573D9 +Adding coverage:DECFormatBase.pas (DECFormatBase) 541 +Clearing BreakPoint at 0045776A +De-Activate DECFormatBase.pas line 541 BreakPoint at:0045776A +Adding coverage:DECFormatBase.pas (DECFormatBase) 498 +Clearing BreakPoint at 004575A8 +De-Activate DECFormatBase.pas line 498 BreakPoint at:004575A8 +Adding coverage:DECFormat.pas (DECFormat) 526 +Clearing BreakPoint at 00458E58 +De-Activate DECFormat.pas line 526 BreakPoint at:00458E58 +Adding coverage:DECFormat.pas (DECFormat) 527 +Clearing BreakPoint at 00458E7E +De-Activate DECFormat.pas line 527 BreakPoint at:00458E7E +Adding coverage:DECFormat.pas (DECFormat) 528 +Clearing BreakPoint at 00458E8C +De-Activate DECFormat.pas line 528 BreakPoint at:00458E8C +Adding coverage:DECFormat.pas (DECFormat) 529 +Clearing BreakPoint at 00458E96 +De-Activate DECFormat.pas line 529 BreakPoint at:00458E96 +Adding coverage:DECFormat.pas (DECFormat) 531 +Clearing BreakPoint at 00458EB7 +De-Activate DECFormat.pas line 531 BreakPoint at:00458EB7 +Adding coverage:DECFormat.pas (DECFormat) 533 +Clearing BreakPoint at 00458EC0 +De-Activate DECFormat.pas line 533 BreakPoint at:00458EC0 +Adding coverage:DECFormat.pas (DECFormat) 534 +Clearing BreakPoint at 00458EC8 +De-Activate DECFormat.pas line 534 BreakPoint at:00458EC8 +Adding coverage:DECFormat.pas (DECFormat) 535 +Clearing BreakPoint at 00458ECE +De-Activate DECFormat.pas line 535 BreakPoint at:00458ECE +Adding coverage:DECFormat.pas (DECFormat) 536 +Clearing BreakPoint at 00458ED3 +De-Activate DECFormat.pas line 536 BreakPoint at:00458ED3 +Adding coverage:DECFormat.pas (DECFormat) 537 +Clearing BreakPoint at 00458ED7 +De-Activate DECFormat.pas line 537 BreakPoint at:00458ED7 +Adding coverage:DECFormat.pas (DECFormat) 539 +Clearing BreakPoint at 00458EE1 +De-Activate DECFormat.pas line 539 BreakPoint at:00458EE1 +Adding coverage:DECFormat.pas (DECFormat) 540 +Clearing BreakPoint at 00458EF6 +De-Activate DECFormat.pas line 540 BreakPoint at:00458EF6 +Adding coverage:DECFormat.pas (DECFormat) 541 +Clearing BreakPoint at 00458F1B +De-Activate DECFormat.pas line 541 BreakPoint at:00458F1B +Adding coverage:DECFormat.pas (DECFormat) 543 +Clearing BreakPoint at 00458F52 +De-Activate DECFormat.pas line 543 BreakPoint at:00458F52 +Adding coverage:DECFormat.pas (DECFormat) 544 +Clearing BreakPoint at 00458F56 +De-Activate DECFormat.pas line 544 BreakPoint at:00458F56 +Adding coverage:DECFormat.pas (DECFormat) 545 +Clearing BreakPoint at 00458F5C +De-Activate DECFormat.pas line 545 BreakPoint at:00458F5C +Adding coverage:DECFormat.pas (DECFormat) 556 +Clearing BreakPoint at 00458F7B +De-Activate DECFormat.pas line 556 BreakPoint at:00458F7B +Adding coverage:DECFormat.pas (DECFormat) 562 +Clearing BreakPoint at 00458FA1 +De-Activate DECFormat.pas line 562 BreakPoint at:00458FA1 +Adding coverage:DECFormat.pas (DECFormat) 563 +Clearing BreakPoint at 00458FB8 +De-Activate DECFormat.pas line 563 BreakPoint at:00458FB8 +Adding coverage:DECFormat.pas (DECFormat) 565 +Clearing BreakPoint at 00458FC3 +De-Activate DECFormat.pas line 565 BreakPoint at:00458FC3 +Adding coverage:DECFormat.pas (DECFormat) 537 +Clearing BreakPoint at 00458FCE +De-Activate DECFormat.pas line 537 BreakPoint at:00458FCE +Adding coverage:DECFormat.pas (DECFormat) 558 +Clearing BreakPoint at 00458F81 +De-Activate DECFormat.pas line 558 BreakPoint at:00458F81 +Adding coverage:DECFormat.pas (DECFormat) 559 +Clearing BreakPoint at 00458F9B +De-Activate DECFormat.pas line 559 BreakPoint at:00458F9B +Adding coverage:DECFormat.pas (DECFormat) 567 +Clearing BreakPoint at 00458FD8 +De-Activate DECFormat.pas line 567 BreakPoint at:00458FD8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 515 +Clearing BreakPoint at 00457675 +De-Activate DECFormatBase.pas line 515 BreakPoint at:00457675 +Adding coverage:DECFormatBase.pas (DECFormatBase) 521 +Clearing BreakPoint at 004576A8 +De-Activate DECFormatBase.pas line 521 BreakPoint at:004576A8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 522 +Clearing BreakPoint at 004576CB +De-Activate DECFormatBase.pas line 522 BreakPoint at:004576CB +Adding coverage:DECFormatBase.pas (DECFormatBase) 528 +Clearing BreakPoint at 004576EE +De-Activate DECFormatBase.pas line 528 BreakPoint at:004576EE +Adding coverage:DECFormatBase.pas (DECFormatBase) 529 +Clearing BreakPoint at 004576F6 +De-Activate DECFormatBase.pas line 529 BreakPoint at:004576F6 +Adding coverage:DECFormatBase.pas (DECFormatBase) 524 +Clearing BreakPoint at 004576D1 +De-Activate DECFormatBase.pas line 524 BreakPoint at:004576D1 +Adding coverage:DECFormatBase.pas (DECFormatBase) 525 +Clearing BreakPoint at 004576E1 +De-Activate DECFormatBase.pas line 525 BreakPoint at:004576E1 +Adding coverage:DECFormat.pas (DECFormat) 573 +Clearing BreakPoint at 0045900C +De-Activate DECFormat.pas line 573 BreakPoint at:0045900C +Adding coverage:DECFormat.pas (DECFormat) 574 +Clearing BreakPoint at 0045902F +De-Activate DECFormat.pas line 574 BreakPoint at:0045902F +Adding coverage:DECFormat.pas (DECFormat) 576 +Clearing BreakPoint at 00459035 +De-Activate DECFormat.pas line 576 BreakPoint at:00459035 +Adding coverage:DECFormat.pas (DECFormat) 577 +Clearing BreakPoint at 00459039 +De-Activate DECFormat.pas line 577 BreakPoint at:00459039 +Adding coverage:DECFormat.pas (DECFormat) 578 +Clearing BreakPoint at 00459042 +De-Activate DECFormat.pas line 578 BreakPoint at:00459042 +Adding coverage:DECFormat.pas (DECFormat) 579 +Clearing BreakPoint at 0045908E +De-Activate DECFormat.pas line 579 BreakPoint at:0045908E +Adding coverage:DECFormat.pas (DECFormat) 592 +Clearing BreakPoint at 004590A0 +De-Activate DECFormat.pas line 592 BreakPoint at:004590A0 +Adding coverage:DECFormat.pas (DECFormat) 581 +Clearing BreakPoint at 0045904A +De-Activate DECFormat.pas line 581 BreakPoint at:0045904A +Adding coverage:DECFormat.pas (DECFormat) 583 +Clearing BreakPoint at 00459079 +De-Activate DECFormat.pas line 583 BreakPoint at:00459079 +Adding coverage:DECFormat.pas (DECFormat) 584 +Clearing BreakPoint at 0045907D +De-Activate DECFormat.pas line 584 BreakPoint at:0045907D +Adding coverage:DECFormat.pas (DECFormat) 591 +Clearing BreakPoint at 0045909C +De-Activate DECFormat.pas line 591 BreakPoint at:0045909C +Adding coverage:DECFormat.pas (DECFormat) 587 +Clearing BreakPoint at 0045908A +De-Activate DECFormat.pas line 587 BreakPoint at:0045908A +Adding coverage:DECFormat.pas (DECFormat) 542 +Clearing BreakPoint at 00458F21 +De-Activate DECFormat.pas line 542 BreakPoint at:00458F21 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00458F52 +Exact line:DECFormat line 543 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00467FEE +After line:TestDECFormat line 865 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046814C +Exact line:TestDECFormat line 894 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 595 +Clearing BreakPoint at 004590D0 +De-Activate DECFormat.pas line 595 BreakPoint at:004590D0 +Adding coverage:DECFormat.pas (DECFormat) 596 +Clearing BreakPoint at 004590E1 +De-Activate DECFormat.pas line 596 BreakPoint at:004590E1 +Adding coverage:DECFormat.pas (DECFormat) 604 +Clearing BreakPoint at 004590F9 +De-Activate DECFormat.pas line 604 BreakPoint at:004590F9 +Adding coverage:DECFormat.pas (DECFormat) 601 +Clearing BreakPoint at 004590FE +De-Activate DECFormat.pas line 601 BreakPoint at:004590FE +Adding coverage:DECFormat.pas (DECFormat) 604 +Clearing BreakPoint at 0045962F +De-Activate DECFormat.pas line 604 BreakPoint at:0045962F +Adding coverage:DECFormat.pas (DECFormat) 657 +Clearing BreakPoint at 00459647 +De-Activate DECFormat.pas line 657 BreakPoint at:00459647 +Adding coverage:DECFormat.pas (DECFormat) 676 +Clearing BreakPoint at 00459C4C +De-Activate DECFormat.pas line 676 BreakPoint at:00459C4C +Adding coverage:DECFormat.pas (DECFormat) 677 +Clearing BreakPoint at 00459C72 +De-Activate DECFormat.pas line 677 BreakPoint at:00459C72 +Adding coverage:DECFormat.pas (DECFormat) 678 +Clearing BreakPoint at 00459C80 +De-Activate DECFormat.pas line 678 BreakPoint at:00459C80 +Adding coverage:DECFormat.pas (DECFormat) 689 +Clearing BreakPoint at 00459C8A +De-Activate DECFormat.pas line 689 BreakPoint at:00459C8A +Adding coverage:DECFormat.pas (DECFormat) 690 +Clearing BreakPoint at 00459CAE +De-Activate DECFormat.pas line 690 BreakPoint at:00459CAE +Adding coverage:DECFormat.pas (DECFormat) 691 +Clearing BreakPoint at 00459CCE +De-Activate DECFormat.pas line 691 BreakPoint at:00459CCE +Adding coverage:DECFormat.pas (DECFormat) 693 +Clearing BreakPoint at 00459D07 +De-Activate DECFormat.pas line 693 BreakPoint at:00459D07 +Adding coverage:DECFormat.pas (DECFormat) 694 +Clearing BreakPoint at 00459D15 +De-Activate DECFormat.pas line 694 BreakPoint at:00459D15 +Adding coverage:DECFormat.pas (DECFormat) 696 +Clearing BreakPoint at 00459D41 +De-Activate DECFormat.pas line 696 BreakPoint at:00459D41 +Adding coverage:DECFormat.pas (DECFormat) 697 +Clearing BreakPoint at 00459D5C +De-Activate DECFormat.pas line 697 BreakPoint at:00459D5C +Adding coverage:DECFormat.pas (DECFormat) 660 +Clearing BreakPoint at 0045964C +De-Activate DECFormat.pas line 660 BreakPoint at:0045964C +Adding coverage:DECFormat.pas (DECFormat) 663 +Clearing BreakPoint at 0045965D +De-Activate DECFormat.pas line 663 BreakPoint at:0045965D +Adding coverage:DECFormat.pas (DECFormat) 667 +Clearing BreakPoint at 00459675 +De-Activate DECFormat.pas line 667 BreakPoint at:00459675 +Adding coverage:DECFormat.pas (DECFormat) 664 +Clearing BreakPoint at 0045967A +De-Activate DECFormat.pas line 664 BreakPoint at:0045967A +Adding coverage:DECFormat.pas (DECFormat) 667 +Clearing BreakPoint at 00459C2D +De-Activate DECFormat.pas line 667 BreakPoint at:00459C2D +Adding coverage:DECFormat.pas (DECFormat) 668 +Clearing BreakPoint at 00459C45 +De-Activate DECFormat.pas line 668 BreakPoint at:00459C45 +Adding coverage:DECFormat.pas (DECFormat) 698 +Clearing BreakPoint at 00459D65 +De-Activate DECFormat.pas line 698 BreakPoint at:00459D65 +Adding coverage:DECFormat.pas (DECFormat) 700 +Clearing BreakPoint at 00459D7E +De-Activate DECFormat.pas line 700 BreakPoint at:00459D7E +Adding coverage:DECFormat.pas (DECFormat) 701 +Clearing BreakPoint at 00459D88 +De-Activate DECFormat.pas line 701 BreakPoint at:00459D88 +Adding coverage:DECFormat.pas (DECFormat) 703 +Clearing BreakPoint at 00459D90 +De-Activate DECFormat.pas line 703 BreakPoint at:00459D90 +Adding coverage:DECFormat.pas (DECFormat) 705 +Clearing BreakPoint at 00459DC1 +De-Activate DECFormat.pas line 705 BreakPoint at:00459DC1 +Adding coverage:DECFormat.pas (DECFormat) 706 +Clearing BreakPoint at 00459DC5 +De-Activate DECFormat.pas line 706 BreakPoint at:00459DC5 +Adding coverage:DECFormat.pas (DECFormat) 708 +Clearing BreakPoint at 00459DD0 +De-Activate DECFormat.pas line 708 BreakPoint at:00459DD0 +Adding coverage:DECFormat.pas (DECFormat) 701 +Clearing BreakPoint at 00459DDB +De-Activate DECFormat.pas line 701 BreakPoint at:00459DDB +Adding coverage:DECFormat.pas (DECFormat) 711 +Clearing BreakPoint at 00459DE3 +De-Activate DECFormat.pas line 711 BreakPoint at:00459DE3 +Adding coverage:DECFormat.pas (DECFormat) 712 +Clearing BreakPoint at 00459DFD +De-Activate DECFormat.pas line 712 BreakPoint at:00459DFD +Adding coverage:DECFormat.pas (DECFormat) 713 +Clearing BreakPoint at 00459E0B +De-Activate DECFormat.pas line 713 BreakPoint at:00459E0B +Adding coverage:DECFormat.pas (DECFormat) 741 +Clearing BreakPoint at 00459EF4 +De-Activate DECFormat.pas line 741 BreakPoint at:00459EF4 +Adding coverage:DECFormat.pas (DECFormat) 742 +Clearing BreakPoint at 00459F17 +De-Activate DECFormat.pas line 742 BreakPoint at:00459F17 +Adding coverage:DECFormat.pas (DECFormat) 743 +Clearing BreakPoint at 00459F25 +De-Activate DECFormat.pas line 743 BreakPoint at:00459F25 +Adding coverage:DECFormat.pas (DECFormat) 746 +Clearing BreakPoint at 00459F2F +De-Activate DECFormat.pas line 746 BreakPoint at:00459F2F +Adding coverage:DECFormat.pas (DECFormat) 747 +Clearing BreakPoint at 00459F3D +De-Activate DECFormat.pas line 747 BreakPoint at:00459F3D +Adding coverage:DECFormat.pas (DECFormat) 749 +Clearing BreakPoint at 00459F61 +De-Activate DECFormat.pas line 749 BreakPoint at:00459F61 +Adding coverage:DECFormat.pas (DECFormat) 750 +Clearing BreakPoint at 00459F6A +De-Activate DECFormat.pas line 750 BreakPoint at:00459F6A +Adding coverage:DECFormat.pas (DECFormat) 751 +Clearing BreakPoint at 00459F70 +De-Activate DECFormat.pas line 751 BreakPoint at:00459F70 +Adding coverage:DECFormat.pas (DECFormat) 753 +Clearing BreakPoint at 00459F8B +De-Activate DECFormat.pas line 753 BreakPoint at:00459F8B +Adding coverage:DECFormat.pas (DECFormat) 754 +Clearing BreakPoint at 00459FB1 +De-Activate DECFormat.pas line 754 BreakPoint at:00459FB1 +Adding coverage:DECFormat.pas (DECFormat) 756 +Clearing BreakPoint at 00459FB6 +De-Activate DECFormat.pas line 756 BreakPoint at:00459FB6 +Adding coverage:DECFormat.pas (DECFormat) 758 +Clearing BreakPoint at 00459FC2 +De-Activate DECFormat.pas line 758 BreakPoint at:00459FC2 +Adding coverage:DECFormat.pas (DECFormat) 759 +Clearing BreakPoint at 00459FD7 +De-Activate DECFormat.pas line 759 BreakPoint at:00459FD7 +Adding coverage:DECFormat.pas (DECFormat) 761 +Clearing BreakPoint at 00459FFC +De-Activate DECFormat.pas line 761 BreakPoint at:00459FFC +Adding coverage:DECFormat.pas (DECFormat) 763 +Clearing BreakPoint at 0045A002 +De-Activate DECFormat.pas line 763 BreakPoint at:0045A002 +Adding coverage:DECFormat.pas (DECFormat) 764 +Clearing BreakPoint at 0045A035 +De-Activate DECFormat.pas line 764 BreakPoint at:0045A035 +Adding coverage:DECFormat.pas (DECFormat) 768 +Clearing BreakPoint at 0045A04D +De-Activate DECFormat.pas line 768 BreakPoint at:0045A04D +Adding coverage:DECFormat.pas (DECFormat) 756 +Clearing BreakPoint at 0045A051 +De-Activate DECFormat.pas line 756 BreakPoint at:0045A051 +Adding coverage:DECFormat.pas (DECFormat) 771 +Clearing BreakPoint at 0045A05D +De-Activate DECFormat.pas line 771 BreakPoint at:0045A05D +Adding coverage:DECFormat.pas (DECFormat) 772 +Clearing BreakPoint at 0045A081 +De-Activate DECFormat.pas line 772 BreakPoint at:0045A081 +Adding coverage:DECFormat.pas (DECFormat) 719 +Clearing BreakPoint at 00459E3C +De-Activate DECFormat.pas line 719 BreakPoint at:00459E3C +Adding coverage:DECFormat.pas (DECFormat) 720 +Clearing BreakPoint at 00459E5F +De-Activate DECFormat.pas line 720 BreakPoint at:00459E5F +Adding coverage:DECFormat.pas (DECFormat) 721 +Clearing BreakPoint at 00459E63 +De-Activate DECFormat.pas line 721 BreakPoint at:00459E63 +Adding coverage:DECFormat.pas (DECFormat) 722 +Clearing BreakPoint at 00459E6C +De-Activate DECFormat.pas line 722 BreakPoint at:00459E6C +Adding coverage:DECFormat.pas (DECFormat) 723 +Clearing BreakPoint at 00459EB8 +De-Activate DECFormat.pas line 723 BreakPoint at:00459EB8 +Adding coverage:DECFormat.pas (DECFormat) 733 +Clearing BreakPoint at 00459EC4 +De-Activate DECFormat.pas line 733 BreakPoint at:00459EC4 +Adding coverage:DECFormat.pas (DECFormat) 725 +Clearing BreakPoint at 00459E74 +De-Activate DECFormat.pas line 725 BreakPoint at:00459E74 +Adding coverage:DECFormat.pas (DECFormat) 727 +Clearing BreakPoint at 00459EA3 +De-Activate DECFormat.pas line 727 BreakPoint at:00459EA3 +Adding coverage:DECFormat.pas (DECFormat) 728 +Clearing BreakPoint at 00459EA7 +De-Activate DECFormat.pas line 728 BreakPoint at:00459EA7 +Adding coverage:DECFormat.pas (DECFormat) 731 +Clearing BreakPoint at 00459EB4 +De-Activate DECFormat.pas line 731 BreakPoint at:00459EB4 +Adding coverage:DECFormat.pas (DECFormat) 1873 +Clearing BreakPoint at 0045DA9C +De-Activate DECFormat.pas line 1873 BreakPoint at:0045DA9C +Adding coverage:DECFormat.pas (DECFormat) 1874 +Clearing BreakPoint at 0045DAAB +De-Activate DECFormat.pas line 1874 BreakPoint at:0045DAAB +Adding coverage:DECFormat.pas (DECFormat) 1880 +Clearing BreakPoint at 0045DACC +De-Activate DECFormat.pas line 1880 BreakPoint at:0045DACC +Adding coverage:DECFormat.pas (DECFormat) 1881 +Clearing BreakPoint at 0045DB02 +De-Activate DECFormat.pas line 1881 BreakPoint at:0045DB02 +Adding coverage:DECFormat.pas (DECFormat) 1882 +Clearing BreakPoint at 0045DB07 +De-Activate DECFormat.pas line 1882 BreakPoint at:0045DB07 +Adding coverage:DECFormat.pas (DECFormat) 1883 +Clearing BreakPoint at 0045DB0C +De-Activate DECFormat.pas line 1883 BreakPoint at:0045DB0C +Adding coverage:DECFormat.pas (DECFormat) 1884 +Clearing BreakPoint at 0045DB12 +De-Activate DECFormat.pas line 1884 BreakPoint at:0045DB12 +Adding coverage:DECFormat.pas (DECFormat) 1885 +Clearing BreakPoint at 0045DB2D +De-Activate DECFormat.pas line 1885 BreakPoint at:0045DB2D +Adding coverage:DECFormat.pas (DECFormat) 1887 +Clearing BreakPoint at 0045DB4D +De-Activate DECFormat.pas line 1887 BreakPoint at:0045DB4D +Adding coverage:DECFormat.pas (DECFormat) 1888 +Clearing BreakPoint at 0045DB6E +De-Activate DECFormat.pas line 1888 BreakPoint at:0045DB6E +Adding coverage:DECFormat.pas (DECFormat) 1889 +Clearing BreakPoint at 0045DB79 +De-Activate DECFormat.pas line 1889 BreakPoint at:0045DB79 +Adding coverage:DECFormat.pas (DECFormat) 1891 +Clearing BreakPoint at 0045DB7F +De-Activate DECFormat.pas line 1891 BreakPoint at:0045DB7F +Adding coverage:DECFormat.pas (DECFormat) 1892 +Clearing BreakPoint at 0045DB8A +De-Activate DECFormat.pas line 1892 BreakPoint at:0045DB8A +Adding coverage:DECFormat.pas (DECFormat) 1893 +Clearing BreakPoint at 0045DBBE +De-Activate DECFormat.pas line 1893 BreakPoint at:0045DBBE +Adding coverage:DECFormat.pas (DECFormat) 1889 +Clearing BreakPoint at 0045DBC2 +De-Activate DECFormat.pas line 1889 BreakPoint at:0045DBC2 +Adding coverage:DECFormat.pas (DECFormat) 1895 +Clearing BreakPoint at 0045DBC8 +De-Activate DECFormat.pas line 1895 BreakPoint at:0045DBC8 +Adding coverage:DECFormat.pas (DECFormat) 1885 +Clearing BreakPoint at 0045DBCB +De-Activate DECFormat.pas line 1885 BreakPoint at:0045DBCB +Adding coverage:DECFormat.pas (DECFormat) 1897 +Clearing BreakPoint at 0045DBD4 +De-Activate DECFormat.pas line 1897 BreakPoint at:0045DBD4 +Adding coverage:DECFormat.pas (DECFormat) 1899 +Clearing BreakPoint at 0045DBDA +De-Activate DECFormat.pas line 1899 BreakPoint at:0045DBDA +Adding coverage:DECFormat.pas (DECFormat) 1900 +Clearing BreakPoint at 0045DC1A +De-Activate DECFormat.pas line 1900 BreakPoint at:0045DC1A +Adding coverage:DECFormat.pas (DECFormat) 1904 +Clearing BreakPoint at 0045DC1E +De-Activate DECFormat.pas line 1904 BreakPoint at:0045DC1E +Adding coverage:DECFormat.pas (DECFormat) 1906 +Clearing BreakPoint at 0045DC4E +De-Activate DECFormat.pas line 1906 BreakPoint at:0045DC4E +Adding coverage:DECFormat.pas (DECFormat) 1907 +Clearing BreakPoint at 0045DC67 +De-Activate DECFormat.pas line 1907 BreakPoint at:0045DC67 +Adding coverage:DECFormat.pas (DECFormat) 1915 +Clearing BreakPoint at 0045DC83 +De-Activate DECFormat.pas line 1915 BreakPoint at:0045DC83 +Adding coverage:DECFormat.pas (DECFormat) 1916 +Clearing BreakPoint at 0045DCAA +De-Activate DECFormat.pas line 1916 BreakPoint at:0045DCAA +Adding coverage:DECFormat.pas (DECFormat) 1917 +Clearing BreakPoint at 0045DCD0 +De-Activate DECFormat.pas line 1917 BreakPoint at:0045DCD0 +Adding coverage:DECFormat.pas (DECFormat) 1908 +Clearing BreakPoint at 0045DC6D +De-Activate DECFormat.pas line 1908 BreakPoint at:0045DC6D +Adding coverage:DECFormat.pas (DECFormat) 1909 +Clearing BreakPoint at 0045DC73 +De-Activate DECFormat.pas line 1909 BreakPoint at:0045DC73 +Adding coverage:DECFormat.pas (DECFormat) 1910 +Clearing BreakPoint at 0045DC79 +De-Activate DECFormat.pas line 1910 BreakPoint at:0045DC79 +Adding coverage:DECFormat.pas (DECFormat) 1912 +Clearing BreakPoint at 0045DC7F +De-Activate DECFormat.pas line 1912 BreakPoint at:0045DC7F +Adding coverage:DECFormat.pas (DECFormat) 1825 +Clearing BreakPoint at 0045D88C +De-Activate DECFormat.pas line 1825 BreakPoint at:0045D88C +Adding coverage:DECFormat.pas (DECFormat) 1826 +Clearing BreakPoint at 0045D8AF +De-Activate DECFormat.pas line 1826 BreakPoint at:0045D8AF +Adding coverage:DECFormat.pas (DECFormat) 1832 +Clearing BreakPoint at 0045D8CA +De-Activate DECFormat.pas line 1832 BreakPoint at:0045D8CA +Adding coverage:DECFormat.pas (DECFormat) 1833 +Clearing BreakPoint at 0045D8D3 +De-Activate DECFormat.pas line 1833 BreakPoint at:0045D8D3 +Adding coverage:DECFormat.pas (DECFormat) 1805 +Clearing BreakPoint at 0045D77C +De-Activate DECFormat.pas line 1805 BreakPoint at:0045D77C +Adding coverage:DECFormat.pas (DECFormat) 1806 +Clearing BreakPoint at 0045D785 +De-Activate DECFormat.pas line 1806 BreakPoint at:0045D785 +Adding coverage:DECFormat.pas (DECFormat) 1807 +Clearing BreakPoint at 0045D78B +De-Activate DECFormat.pas line 1807 BreakPoint at:0045D78B +Adding coverage:DECFormat.pas (DECFormat) 1813 +Clearing BreakPoint at 0045D863 +De-Activate DECFormat.pas line 1813 BreakPoint at:0045D863 +Adding coverage:DECFormat.pas (DECFormat) 1815 +Clearing BreakPoint at 0045D878 +De-Activate DECFormat.pas line 1815 BreakPoint at:0045D878 +Adding coverage:DECFormat.pas (DECFormat) 1806 +Clearing BreakPoint at 0045D87C +De-Activate DECFormat.pas line 1806 BreakPoint at:0045D87C +Adding coverage:DECFormat.pas (DECFormat) 1811 +Clearing BreakPoint at 0045D84C +De-Activate DECFormat.pas line 1811 BreakPoint at:0045D84C +Adding coverage:DECFormat.pas (DECFormat) 1810 +Clearing BreakPoint at 0045D81C +De-Activate DECFormat.pas line 1810 BreakPoint at:0045D81C +Adding coverage:DECFormat.pas (DECFormat) 1808 +Clearing BreakPoint at 0045D7B9 +De-Activate DECFormat.pas line 1808 BreakPoint at:0045D7B9 +Adding coverage:DECFormat.pas (DECFormat) 1809 +Clearing BreakPoint at 0045D7EC +De-Activate DECFormat.pas line 1809 BreakPoint at:0045D7EC +Adding coverage:DECFormat.pas (DECFormat) 1816 +Clearing BreakPoint at 0045D887 +De-Activate DECFormat.pas line 1816 BreakPoint at:0045D887 +Adding coverage:DECFormat.pas (DECFormat) 1835 +Clearing BreakPoint at 0045D8DB +De-Activate DECFormat.pas line 1835 BreakPoint at:0045D8DB +Adding coverage:DECFormat.pas (DECFormat) 1836 +Clearing BreakPoint at 0045D8E1 +De-Activate DECFormat.pas line 1836 BreakPoint at:0045D8E1 +Adding coverage:DECFormat.pas (DECFormat) 1837 +Clearing BreakPoint at 0045D919 +De-Activate DECFormat.pas line 1837 BreakPoint at:0045D919 +Adding coverage:DECFormat.pas (DECFormat) 1838 +Clearing BreakPoint at 0045D91F +De-Activate DECFormat.pas line 1838 BreakPoint at:0045D91F +Adding coverage:DECFormat.pas (DECFormat) 1839 +Clearing BreakPoint at 0045D93A +De-Activate DECFormat.pas line 1839 BreakPoint at:0045D93A +Adding coverage:DECFormat.pas (DECFormat) 1840 +Clearing BreakPoint at 0045D93F +De-Activate DECFormat.pas line 1840 BreakPoint at:0045D93F +Adding coverage:DECFormat.pas (DECFormat) 1841 +Clearing BreakPoint at 0045D944 +De-Activate DECFormat.pas line 1841 BreakPoint at:0045D944 +Adding coverage:DECFormat.pas (DECFormat) 1843 +Clearing BreakPoint at 0045D964 +De-Activate DECFormat.pas line 1843 BreakPoint at:0045D964 +Adding coverage:DECFormat.pas (DECFormat) 1844 +Clearing BreakPoint at 0045D981 +De-Activate DECFormat.pas line 1844 BreakPoint at:0045D981 +Adding coverage:DECFormat.pas (DECFormat) 1850 +Clearing BreakPoint at 0045D9CE +De-Activate DECFormat.pas line 1850 BreakPoint at:0045D9CE +Adding coverage:DECFormat.pas (DECFormat) 1851 +Clearing BreakPoint at 0045D9DA +De-Activate DECFormat.pas line 1851 BreakPoint at:0045D9DA +Adding coverage:DECFormat.pas (DECFormat) 1852 +Clearing BreakPoint at 0045D9E5 +De-Activate DECFormat.pas line 1852 BreakPoint at:0045D9E5 +Adding coverage:DECFormat.pas (DECFormat) 1859 +Clearing BreakPoint at 0045DA1B +De-Activate DECFormat.pas line 1859 BreakPoint at:0045DA1B +Adding coverage:DECFormat.pas (DECFormat) 1860 +Clearing BreakPoint at 0045DA1F +De-Activate DECFormat.pas line 1860 BreakPoint at:0045DA1F +Adding coverage:DECFormat.pas (DECFormat) 1841 +Clearing BreakPoint at 0045DA22 +De-Activate DECFormat.pas line 1841 BreakPoint at:0045DA22 +Adding coverage:DECFormat.pas (DECFormat) 1854 +Clearing BreakPoint at 0045D9EB +De-Activate DECFormat.pas line 1854 BreakPoint at:0045D9EB +Adding coverage:DECFormat.pas (DECFormat) 1855 +Clearing BreakPoint at 0045D9F6 +De-Activate DECFormat.pas line 1855 BreakPoint at:0045D9F6 +Adding coverage:DECFormat.pas (DECFormat) 1856 +Clearing BreakPoint at 0045DA17 +De-Activate DECFormat.pas line 1856 BreakPoint at:0045DA17 +Adding coverage:DECFormat.pas (DECFormat) 1846 +Clearing BreakPoint at 0045D98A +De-Activate DECFormat.pas line 1846 BreakPoint at:0045D98A +Adding coverage:DECFormat.pas (DECFormat) 1861 +Clearing BreakPoint at 0045DA2B +De-Activate DECFormat.pas line 1861 BreakPoint at:0045DA2B +Adding coverage:DECFormat.pas (DECFormat) 1862 +Clearing BreakPoint at 0045DA5B +De-Activate DECFormat.pas line 1862 BreakPoint at:0045DA5B +Adding coverage:DECFormat.pas (DECFormat) 1863 +Clearing BreakPoint at 0045DA75 +De-Activate DECFormat.pas line 1863 BreakPoint at:0045DA75 +Adding coverage:DECFormat.pas (DECFormat) 1847 +Clearing BreakPoint at 0045D99A +De-Activate DECFormat.pas line 1847 BreakPoint at:0045D99A +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045D9CE +Exact line:DECFormat line 1850 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00472382 +After line:TestDECFormat line 2471 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004724E8 +Exact line:TestDECFormat line 2500 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1922 +Clearing BreakPoint at 0045DCD8 +De-Activate DECFormat.pas line 1922 BreakPoint at:0045DCD8 +Adding coverage:DECFormat.pas (DECFormat) 1923 +Clearing BreakPoint at 0045DCE7 +De-Activate DECFormat.pas line 1923 BreakPoint at:0045DCE7 +Adding coverage:DECFormat.pas (DECFormat) 1924 +Clearing BreakPoint at 0045DCEB +De-Activate DECFormat.pas line 1924 BreakPoint at:0045DCEB +Adding coverage:DECFormat.pas (DECFormat) 1925 +Clearing BreakPoint at 0045DD1D +De-Activate DECFormat.pas line 1925 BreakPoint at:0045DD1D +Adding coverage:DECFormat.pas (DECFormat) 1936 +Clearing BreakPoint at 0045DD29 +De-Activate DECFormat.pas line 1936 BreakPoint at:0045DD29 +Adding coverage:DECFormat.pas (DECFormat) 1928 +Clearing BreakPoint at 0045DCF3 +De-Activate DECFormat.pas line 1928 BreakPoint at:0045DCF3 +Adding coverage:DECFormat.pas (DECFormat) 1934 +Clearing BreakPoint at 0045DD19 +De-Activate DECFormat.pas line 1934 BreakPoint at:0045DD19 +Adding coverage:DECFormat.pas (DECFormat) 1930 +Clearing BreakPoint at 0045DD08 +De-Activate DECFormat.pas line 1930 BreakPoint at:0045DD08 +Adding coverage:DECFormat.pas (DECFormat) 1931 +Clearing BreakPoint at 0045DD0C +De-Activate DECFormat.pas line 1931 BreakPoint at:0045DD0C +Adding coverage:DECFormat.pas (DECFormat) 923 +Clearing BreakPoint at 0045AE60 +De-Activate DECFormat.pas line 923 BreakPoint at:0045AE60 +Adding coverage:DECFormat.pas (DECFormat) 924 +Clearing BreakPoint at 0045AE6F +De-Activate DECFormat.pas line 924 BreakPoint at:0045AE6F +Adding coverage:DECFormat.pas (DECFormat) 925 +Clearing BreakPoint at 0045AE73 +De-Activate DECFormat.pas line 925 BreakPoint at:0045AE73 +Adding coverage:DECFormat.pas (DECFormat) 926 +Clearing BreakPoint at 0045AEB4 +De-Activate DECFormat.pas line 926 BreakPoint at:0045AEB4 +Adding coverage:DECFormat.pas (DECFormat) 929 +Clearing BreakPoint at 0045AE7B +De-Activate DECFormat.pas line 929 BreakPoint at:0045AE7B +Adding coverage:DECFormat.pas (DECFormat) 931 +Clearing BreakPoint at 0045AE9F +De-Activate DECFormat.pas line 931 BreakPoint at:0045AE9F +Adding coverage:DECFormat.pas (DECFormat) 932 +Clearing BreakPoint at 0045AEA3 +De-Activate DECFormat.pas line 932 BreakPoint at:0045AEA3 +Adding coverage:DECFormat.pas (DECFormat) 937 +Clearing BreakPoint at 0045AEC0 +De-Activate DECFormat.pas line 937 BreakPoint at:0045AEC0 +Adding coverage:DECFormat.pas (DECFormat) 935 +Clearing BreakPoint at 0045AEB0 +De-Activate DECFormat.pas line 935 BreakPoint at:0045AEB0 +Adding coverage:DECFormatBase.pas (DECFormatBase) 555 +Clearing BreakPoint at 0045783C +De-Activate DECFormatBase.pas line 555 BreakPoint at:0045783C +Adding coverage:DECFormatBase.pas (DECFormatBase) 557 +Clearing BreakPoint at 00457848 +De-Activate DECFormatBase.pas line 557 BreakPoint at:00457848 +Adding coverage:DECFormatBase.pas (DECFormatBase) 563 +Clearing BreakPoint at 004578B8 +De-Activate DECFormatBase.pas line 563 BreakPoint at:004578B8 +Adding coverage:DECFormat.pas (DECFormat) 797 +Clearing BreakPoint at 0045A9F0 +De-Activate DECFormat.pas line 797 BreakPoint at:0045A9F0 +Adding coverage:DECFormat.pas (DECFormat) 798 +Clearing BreakPoint at 0045AA13 +De-Activate DECFormat.pas line 798 BreakPoint at:0045AA13 +Adding coverage:DECFormat.pas (DECFormat) 799 +Clearing BreakPoint at 0045AA21 +De-Activate DECFormat.pas line 799 BreakPoint at:0045AA21 +Adding coverage:DECFormat.pas (DECFormat) 802 +Clearing BreakPoint at 0045AA2B +De-Activate DECFormat.pas line 802 BreakPoint at:0045AA2B +Adding coverage:DECFormat.pas (DECFormat) 804 +Clearing BreakPoint at 0045AA5F +De-Activate DECFormat.pas line 804 BreakPoint at:0045AA5F +Adding coverage:DECFormat.pas (DECFormat) 775 +Clearing BreakPoint at 0045A0B0 +De-Activate DECFormat.pas line 775 BreakPoint at:0045A0B0 +Adding coverage:DECFormat.pas (DECFormat) 778 +Clearing BreakPoint at 0045A0C1 +De-Activate DECFormat.pas line 778 BreakPoint at:0045A0C1 +Adding coverage:DECFormat.pas (DECFormat) 786 +Clearing BreakPoint at 0045A0D9 +De-Activate DECFormat.pas line 786 BreakPoint at:0045A0D9 +Adding coverage:DECFormat.pas (DECFormat) 780 +Clearing BreakPoint at 0045A0DE +De-Activate DECFormat.pas line 780 BreakPoint at:0045A0DE +Adding coverage:DECFormat.pas (DECFormat) 786 +Clearing BreakPoint at 0045A9D1 +De-Activate DECFormat.pas line 786 BreakPoint at:0045A9D1 +Adding coverage:DECFormat.pas (DECFormat) 787 +Clearing BreakPoint at 0045A9E9 +De-Activate DECFormat.pas line 787 BreakPoint at:0045A9E9 +Adding coverage:DECFormat.pas (DECFormat) 805 +Clearing BreakPoint at 0045AA68 +De-Activate DECFormat.pas line 805 BreakPoint at:0045AA68 +Adding coverage:DECFormat.pas (DECFormat) 806 +Clearing BreakPoint at 0045AA6E +De-Activate DECFormat.pas line 806 BreakPoint at:0045AA6E +Adding coverage:DECFormat.pas (DECFormat) 808 +Clearing BreakPoint at 0045AA89 +De-Activate DECFormat.pas line 808 BreakPoint at:0045AA89 +Adding coverage:DECFormat.pas (DECFormat) 809 +Clearing BreakPoint at 0045AA8E +De-Activate DECFormat.pas line 809 BreakPoint at:0045AA8E +Adding coverage:DECFormat.pas (DECFormat) 811 +Clearing BreakPoint at 0045AA98 +De-Activate DECFormat.pas line 811 BreakPoint at:0045AA98 +Adding coverage:DECFormat.pas (DECFormat) 812 +Clearing BreakPoint at 0045AAA3 +De-Activate DECFormat.pas line 812 BreakPoint at:0045AAA3 +Adding coverage:DECFormat.pas (DECFormat) 813 +Clearing BreakPoint at 0045AAC4 +De-Activate DECFormat.pas line 813 BreakPoint at:0045AAC4 +Adding coverage:DECFormat.pas (DECFormat) 814 +Clearing BreakPoint at 0045AAE6 +De-Activate DECFormat.pas line 814 BreakPoint at:0045AAE6 +Adding coverage:DECFormat.pas (DECFormat) 815 +Clearing BreakPoint at 0045AB09 +De-Activate DECFormat.pas line 815 BreakPoint at:0045AB09 +Adding coverage:DECFormat.pas (DECFormat) 816 +Clearing BreakPoint at 0045AB2C +De-Activate DECFormat.pas line 816 BreakPoint at:0045AB2C +Adding coverage:DECFormat.pas (DECFormat) 817 +Clearing BreakPoint at 0045AB4C +De-Activate DECFormat.pas line 817 BreakPoint at:0045AB4C +Adding coverage:DECFormat.pas (DECFormat) 818 +Clearing BreakPoint at 0045AB50 +De-Activate DECFormat.pas line 818 BreakPoint at:0045AB50 +Adding coverage:DECFormat.pas (DECFormat) 819 +Clearing BreakPoint at 0045AB59 +De-Activate DECFormat.pas line 819 BreakPoint at:0045AB59 +Adding coverage:DECFormat.pas (DECFormat) 809 +Clearing BreakPoint at 0045AB64 +De-Activate DECFormat.pas line 809 BreakPoint at:0045AB64 +Adding coverage:DECFormat.pas (DECFormat) 822 +Clearing BreakPoint at 0045AB6E +De-Activate DECFormat.pas line 822 BreakPoint at:0045AB6E +Adding coverage:DECFormat.pas (DECFormat) 824 +Clearing BreakPoint at 0045AB78 +De-Activate DECFormat.pas line 824 BreakPoint at:0045AB78 +Adding coverage:DECFormat.pas (DECFormat) 825 +Clearing BreakPoint at 0045AB7D +De-Activate DECFormat.pas line 825 BreakPoint at:0045AB7D +Adding coverage:DECFormat.pas (DECFormat) 827 +Clearing BreakPoint at 0045AB82 +De-Activate DECFormat.pas line 827 BreakPoint at:0045AB82 +Adding coverage:DECFormat.pas (DECFormat) 828 +Clearing BreakPoint at 0045AB86 +De-Activate DECFormat.pas line 828 BreakPoint at:0045AB86 +Adding coverage:DECFormat.pas (DECFormat) 830 +Clearing BreakPoint at 0045AB8C +De-Activate DECFormat.pas line 830 BreakPoint at:0045AB8C +Adding coverage:DECFormat.pas (DECFormat) 831 +Clearing BreakPoint at 0045AB95 +De-Activate DECFormat.pas line 831 BreakPoint at:0045AB95 +Adding coverage:DECFormat.pas (DECFormat) 833 +Clearing BreakPoint at 0045AB9C +De-Activate DECFormat.pas line 833 BreakPoint at:0045AB9C +Adding coverage:DECFormat.pas (DECFormat) 834 +Clearing BreakPoint at 0045ABA7 +De-Activate DECFormat.pas line 834 BreakPoint at:0045ABA7 +Adding coverage:DECFormat.pas (DECFormat) 825 +Clearing BreakPoint at 0045ABAA +De-Activate DECFormat.pas line 825 BreakPoint at:0045ABAA +Adding coverage:DECFormat.pas (DECFormat) 835 +Clearing BreakPoint at 0045ABB0 +De-Activate DECFormat.pas line 835 BreakPoint at:0045ABB0 +Adding coverage:DECFormat.pas (DECFormat) 837 +Clearing BreakPoint at 0045ABB7 +De-Activate DECFormat.pas line 837 BreakPoint at:0045ABB7 +Adding coverage:DECFormat.pas (DECFormat) 839 +Clearing BreakPoint at 0045ABBD +De-Activate DECFormat.pas line 839 BreakPoint at:0045ABBD +Adding coverage:DECFormat.pas (DECFormat) 840 +Clearing BreakPoint at 0045ABDF +De-Activate DECFormat.pas line 840 BreakPoint at:0045ABDF +Adding coverage:DECFormat.pas (DECFormat) 844 +Clearing BreakPoint at 0045AC0F +De-Activate DECFormat.pas line 844 BreakPoint at:0045AC0F +Adding coverage:DECFormat.pas (DECFormat) 845 +Clearing BreakPoint at 0045AC13 +De-Activate DECFormat.pas line 845 BreakPoint at:0045AC13 +Adding coverage:DECFormat.pas (DECFormat) 835 +Clearing BreakPoint at 0045AC16 +De-Activate DECFormat.pas line 835 BreakPoint at:0045AC16 +Adding coverage:DECFormat.pas (DECFormat) 843 +Clearing BreakPoint at 0045ABEC +De-Activate DECFormat.pas line 843 BreakPoint at:0045ABEC +Adding coverage:DECFormat.pas (DECFormat) 846 +Clearing BreakPoint at 0045AC1C +De-Activate DECFormat.pas line 846 BreakPoint at:0045AC1C +Adding coverage:DECFormat.pas (DECFormat) 847 +Clearing BreakPoint at 0045AC20 +De-Activate DECFormat.pas line 847 BreakPoint at:0045AC20 +Adding coverage:DECFormat.pas (DECFormat) 822 +Clearing BreakPoint at 0045AC2B +De-Activate DECFormat.pas line 822 BreakPoint at:0045AC2B +Adding coverage:DECFormat.pas (DECFormat) 851 +Clearing BreakPoint at 0045AC35 +De-Activate DECFormat.pas line 851 BreakPoint at:0045AC35 +Adding coverage:DECFormat.pas (DECFormat) 852 +Clearing BreakPoint at 0045AC4F +De-Activate DECFormat.pas line 852 BreakPoint at:0045AC4F +Adding coverage:DECFormat.pas (DECFormat) 861 +Clearing BreakPoint at 0045AC7C +De-Activate DECFormat.pas line 861 BreakPoint at:0045AC7C +Adding coverage:DECFormat.pas (DECFormat) 862 +Clearing BreakPoint at 0045AC9F +De-Activate DECFormat.pas line 862 BreakPoint at:0045AC9F +Adding coverage:DECFormat.pas (DECFormat) 863 +Clearing BreakPoint at 0045ACAD +De-Activate DECFormat.pas line 863 BreakPoint at:0045ACAD +Adding coverage:DECFormat.pas (DECFormat) 866 +Clearing BreakPoint at 0045ACB7 +De-Activate DECFormat.pas line 866 BreakPoint at:0045ACB7 +Adding coverage:DECFormat.pas (DECFormat) 868 +Clearing BreakPoint at 0045ACD1 +De-Activate DECFormat.pas line 868 BreakPoint at:0045ACD1 +Adding coverage:DECFormat.pas (DECFormat) 869 +Clearing BreakPoint at 0045ACDA +De-Activate DECFormat.pas line 869 BreakPoint at:0045ACDA +Adding coverage:DECFormat.pas (DECFormat) 870 +Clearing BreakPoint at 0045ACE0 +De-Activate DECFormat.pas line 870 BreakPoint at:0045ACE0 +Adding coverage:DECFormat.pas (DECFormat) 872 +Clearing BreakPoint at 0045ACFB +De-Activate DECFormat.pas line 872 BreakPoint at:0045ACFB +Adding coverage:DECFormat.pas (DECFormat) 874 +Clearing BreakPoint at 0045AD1D +De-Activate DECFormat.pas line 874 BreakPoint at:0045AD1D +Adding coverage:DECFormat.pas (DECFormat) 875 +Clearing BreakPoint at 0045AD26 +De-Activate DECFormat.pas line 875 BreakPoint at:0045AD26 +Adding coverage:DECFormat.pas (DECFormat) 876 +Clearing BreakPoint at 0045AD2B +De-Activate DECFormat.pas line 876 BreakPoint at:0045AD2B +Adding coverage:DECFormat.pas (DECFormat) 877 +Clearing BreakPoint at 0045AD30 +De-Activate DECFormat.pas line 877 BreakPoint at:0045AD30 +Adding coverage:DECFormat.pas (DECFormat) 879 +Clearing BreakPoint at 0045AD3C +De-Activate DECFormat.pas line 879 BreakPoint at:0045AD3C +Adding coverage:DECFormat.pas (DECFormat) 880 +Clearing BreakPoint at 0045AD41 +De-Activate DECFormat.pas line 880 BreakPoint at:0045AD41 +Adding coverage:DECFormat.pas (DECFormat) 881 +Clearing BreakPoint at 0045AD95 +De-Activate DECFormat.pas line 881 BreakPoint at:0045AD95 +Adding coverage:DECFormat.pas (DECFormat) 883 +Clearing BreakPoint at 0045AD4A +De-Activate DECFormat.pas line 883 BreakPoint at:0045AD4A +Adding coverage:DECFormat.pas (DECFormat) 884 +Clearing BreakPoint at 0045AD5F +De-Activate DECFormat.pas line 884 BreakPoint at:0045AD5F +Adding coverage:DECFormat.pas (DECFormat) 885 +Clearing BreakPoint at 0045AD63 +De-Activate DECFormat.pas line 885 BreakPoint at:0045AD63 +Adding coverage:DECFormat.pas (DECFormat) 887 +Clearing BreakPoint at 0045AD69 +De-Activate DECFormat.pas line 887 BreakPoint at:0045AD69 +Adding coverage:DECFormat.pas (DECFormat) 889 +Clearing BreakPoint at 0045AD6F +De-Activate DECFormat.pas line 889 BreakPoint at:0045AD6F +Adding coverage:DECFormat.pas (DECFormat) 890 +Clearing BreakPoint at 0045AD82 +De-Activate DECFormat.pas line 890 BreakPoint at:0045AD82 +Adding coverage:DECFormat.pas (DECFormat) 896 +Clearing BreakPoint at 0045ADA3 +De-Activate DECFormat.pas line 896 BreakPoint at:0045ADA3 +Adding coverage:DECFormat.pas (DECFormat) 906 +Clearing BreakPoint at 0045ADC4 +De-Activate DECFormat.pas line 906 BreakPoint at:0045ADC4 +Adding coverage:DECFormat.pas (DECFormat) 907 +Clearing BreakPoint at 0045ADCB +De-Activate DECFormat.pas line 907 BreakPoint at:0045ADCB +Adding coverage:DECFormat.pas (DECFormat) 909 +Clearing BreakPoint at 0045ADD1 +De-Activate DECFormat.pas line 909 BreakPoint at:0045ADD1 +Adding coverage:DECFormat.pas (DECFormat) 910 +Clearing BreakPoint at 0045ADDD +De-Activate DECFormat.pas line 910 BreakPoint at:0045ADDD +Adding coverage:DECFormat.pas (DECFormat) 911 +Clearing BreakPoint at 0045ADE1 +De-Activate DECFormat.pas line 911 BreakPoint at:0045ADE1 +Adding coverage:DECFormat.pas (DECFormat) 907 +Clearing BreakPoint at 0045ADEC +De-Activate DECFormat.pas line 907 BreakPoint at:0045ADEC +Adding coverage:DECFormat.pas (DECFormat) 913 +Clearing BreakPoint at 0045ADF2 +De-Activate DECFormat.pas line 913 BreakPoint at:0045ADF2 +Adding coverage:DECFormat.pas (DECFormat) 914 +Clearing BreakPoint at 0045ADF6 +De-Activate DECFormat.pas line 914 BreakPoint at:0045ADF6 +Adding coverage:DECFormat.pas (DECFormat) 877 +Clearing BreakPoint at 0045AE01 +De-Activate DECFormat.pas line 877 BreakPoint at:0045AE01 +Adding coverage:DECFormat.pas (DECFormat) 893 +Clearing BreakPoint at 0045AD8F +De-Activate DECFormat.pas line 893 BreakPoint at:0045AD8F +Adding coverage:DECFormat.pas (DECFormat) 898 +Clearing BreakPoint at 0045ADA9 +De-Activate DECFormat.pas line 898 BreakPoint at:0045ADA9 +Adding coverage:DECFormat.pas (DECFormat) 904 +Clearing BreakPoint at 0045ADB6 +De-Activate DECFormat.pas line 904 BreakPoint at:0045ADB6 +Adding coverage:DECFormat.pas (DECFormat) 917 +Clearing BreakPoint at 0045AE0D +De-Activate DECFormat.pas line 917 BreakPoint at:0045AE0D +Adding coverage:DECFormat.pas (DECFormat) 918 +Clearing BreakPoint at 0045AE31 +De-Activate DECFormat.pas line 918 BreakPoint at:0045AE31 +Adding coverage:DECFormat.pas (DECFormat) 1051 +Clearing BreakPoint at 0045B3CC +De-Activate DECFormat.pas line 1051 BreakPoint at:0045B3CC +Adding coverage:DECFormat.pas (DECFormat) 1052 +Clearing BreakPoint at 0045B3F2 +De-Activate DECFormat.pas line 1052 BreakPoint at:0045B3F2 +Adding coverage:DECFormat.pas (DECFormat) 1053 +Clearing BreakPoint at 0045B400 +De-Activate DECFormat.pas line 1053 BreakPoint at:0045B400 +Adding coverage:DECFormat.pas (DECFormat) 1057 +Clearing BreakPoint at 0045B40A +De-Activate DECFormat.pas line 1057 BreakPoint at:0045B40A +Adding coverage:DECFormat.pas (DECFormat) 1060 +Clearing BreakPoint at 0045B41C +De-Activate DECFormat.pas line 1060 BreakPoint at:0045B41C +Adding coverage:DECFormat.pas (DECFormat) 1005 +Clearing BreakPoint at 0045B168 +De-Activate DECFormat.pas line 1005 BreakPoint at:0045B168 +Adding coverage:DECFormat.pas (DECFormat) 1006 +Clearing BreakPoint at 0045B177 +De-Activate DECFormat.pas line 1006 BreakPoint at:0045B177 +Adding coverage:DECFormat.pas (DECFormat) 1007 +Clearing BreakPoint at 0045B194 +De-Activate DECFormat.pas line 1007 BreakPoint at:0045B194 +Adding coverage:DECFormat.pas (DECFormat) 1009 +Clearing BreakPoint at 0045B1A2 +De-Activate DECFormat.pas line 1009 BreakPoint at:0045B1A2 +Adding coverage:DECFormat.pas (DECFormat) 1010 +Clearing BreakPoint at 0045B1BC +De-Activate DECFormat.pas line 1010 BreakPoint at:0045B1BC +Adding coverage:DECFormat.pas (DECFormat) 1011 +Clearing BreakPoint at 0045B1F1 +De-Activate DECFormat.pas line 1011 BreakPoint at:0045B1F1 +Adding coverage:DECFormat.pas (DECFormat) 1034 +Clearing BreakPoint at 0045B2E1 +De-Activate DECFormat.pas line 1034 BreakPoint at:0045B2E1 +Adding coverage:DECFormat.pas (DECFormat) 1061 +Clearing BreakPoint at 0045B439 +De-Activate DECFormat.pas line 1061 BreakPoint at:0045B439 +Adding coverage:DECFormat.pas (DECFormat) 1063 +Clearing BreakPoint at 0045B447 +De-Activate DECFormat.pas line 1063 BreakPoint at:0045B447 +Adding coverage:DECCRC.pas (DECCRC) 728 +Clearing BreakPoint at 00451F94 +De-Activate DECCRC.pas line 728 BreakPoint at:00451F94 +Adding coverage:DECCRC.pas (DECCRC) 729 +Clearing BreakPoint at 00451FA6 +De-Activate DECCRC.pas line 729 BreakPoint at:00451FA6 +Adding coverage:DECCRC.pas (DECCRC) 562 +Clearing BreakPoint at 00451C26 +De-Activate DECCRC.pas line 562 BreakPoint at:00451C26 +Adding coverage:DECCRC.pas (DECCRC) 563 +Clearing BreakPoint at 00451C35 +De-Activate DECCRC.pas line 563 BreakPoint at:00451C35 +Adding coverage:DECCRC.pas (DECCRC) 564 +Clearing BreakPoint at 00451C53 +De-Activate DECCRC.pas line 564 BreakPoint at:00451C53 +Adding coverage:DECCRC.pas (DECCRC) 566 +Clearing BreakPoint at 00451C5A +De-Activate DECCRC.pas line 566 BreakPoint at:00451C5A +Adding coverage:DECCRC.pas (DECCRC) 567 +Clearing BreakPoint at 00451C6E +De-Activate DECCRC.pas line 567 BreakPoint at:00451C6E +Adding coverage:DECCRC.pas (DECCRC) 569 +Clearing BreakPoint at 00451C7A +De-Activate DECCRC.pas line 569 BreakPoint at:00451C7A +Adding coverage:DECCRC.pas (DECCRC) 570 +Clearing BreakPoint at 00451C86 +De-Activate DECCRC.pas line 570 BreakPoint at:00451C86 +Adding coverage:DECCRC.pas (DECCRC) 572 +Clearing BreakPoint at 00451C94 +De-Activate DECCRC.pas line 572 BreakPoint at:00451C94 +Adding coverage:DECCRC.pas (DECCRC) 573 +Clearing BreakPoint at 00451CA0 +De-Activate DECCRC.pas line 573 BreakPoint at:00451CA0 +Adding coverage:DECCRC.pas (DECCRC) 575 +Clearing BreakPoint at 00451CAE +De-Activate DECCRC.pas line 575 BreakPoint at:00451CAE +Adding coverage:DECCRC.pas (DECCRC) 576 +Clearing BreakPoint at 00451CBA +De-Activate DECCRC.pas line 576 BreakPoint at:00451CBA +Adding coverage:DECCRC.pas (DECCRC) 578 +Clearing BreakPoint at 00451CC8 +De-Activate DECCRC.pas line 578 BreakPoint at:00451CC8 +Adding coverage:DECCRC.pas (DECCRC) 579 +Clearing BreakPoint at 00451CD4 +De-Activate DECCRC.pas line 579 BreakPoint at:00451CD4 +Adding coverage:DECCRC.pas (DECCRC) 581 +Clearing BreakPoint at 00451CE2 +De-Activate DECCRC.pas line 581 BreakPoint at:00451CE2 +Adding coverage:DECCRC.pas (DECCRC) 582 +Clearing BreakPoint at 00451CEE +De-Activate DECCRC.pas line 582 BreakPoint at:00451CEE +Adding coverage:DECCRC.pas (DECCRC) 584 +Clearing BreakPoint at 00451CFC +De-Activate DECCRC.pas line 584 BreakPoint at:00451CFC +Adding coverage:DECCRC.pas (DECCRC) 585 +Clearing BreakPoint at 00451D08 +De-Activate DECCRC.pas line 585 BreakPoint at:00451D08 +Adding coverage:DECCRC.pas (DECCRC) 587 +Clearing BreakPoint at 00451D16 +De-Activate DECCRC.pas line 587 BreakPoint at:00451D16 +Adding coverage:DECCRC.pas (DECCRC) 588 +Clearing BreakPoint at 00451D22 +De-Activate DECCRC.pas line 588 BreakPoint at:00451D22 +Adding coverage:DECCRC.pas (DECCRC) 590 +Clearing BreakPoint at 00451D30 +De-Activate DECCRC.pas line 590 BreakPoint at:00451D30 +Adding coverage:DECCRC.pas (DECCRC) 591 +Clearing BreakPoint at 00451D4E +De-Activate DECCRC.pas line 591 BreakPoint at:00451D4E +Adding coverage:DECCRC.pas (DECCRC) 592 +Clearing BreakPoint at 00451D5A +De-Activate DECCRC.pas line 592 BreakPoint at:00451D5A +Adding coverage:DECCRC.pas (DECCRC) 564 +Clearing BreakPoint at 00451D5D +De-Activate DECCRC.pas line 564 BreakPoint at:00451D5D +Adding coverage:DECCRC.pas (DECCRC) 730 +Clearing BreakPoint at 00451FB4 +De-Activate DECCRC.pas line 730 BreakPoint at:00451FB4 +Adding coverage:DECCRC.pas (DECCRC) 660 +Clearing BreakPoint at 00451DF4 +De-Activate DECCRC.pas line 660 BreakPoint at:00451DF4 +Adding coverage:DECCRC.pas (DECCRC) 661 +Clearing BreakPoint at 00451E03 +De-Activate DECCRC.pas line 661 BreakPoint at:00451E03 +Adding coverage:DECCRC.pas (DECCRC) 662 +Clearing BreakPoint at 00451E0F +De-Activate DECCRC.pas line 662 BreakPoint at:00451E0F +Adding coverage:DECCRC.pas (DECCRC) 663 +Clearing BreakPoint at 00451E15 +De-Activate DECCRC.pas line 663 BreakPoint at:00451E15 +Adding coverage:DECCRC.pas (DECCRC) 665 +Clearing BreakPoint at 00451E29 +De-Activate DECCRC.pas line 665 BreakPoint at:00451E29 +Adding coverage:DECCRC.pas (DECCRC) 676 +Clearing BreakPoint at 00451E64 +De-Activate DECCRC.pas line 676 BreakPoint at:00451E64 +Adding coverage:DECCRC.pas (DECCRC) 678 +Clearing BreakPoint at 00451E70 +De-Activate DECCRC.pas line 678 BreakPoint at:00451E70 +Adding coverage:DECCRC.pas (DECCRC) 679 +Clearing BreakPoint at 00451E93 +De-Activate DECCRC.pas line 679 BreakPoint at:00451E93 +Adding coverage:DECCRC.pas (DECCRC) 680 +Clearing BreakPoint at 00451E96 +De-Activate DECCRC.pas line 680 BreakPoint at:00451E96 +Adding coverage:DECCRC.pas (DECCRC) 681 +Clearing BreakPoint at 00451E99 +De-Activate DECCRC.pas line 681 BreakPoint at:00451E99 +Adding coverage:DECCRC.pas (DECCRC) 683 +Clearing BreakPoint at 00451E9F +De-Activate DECCRC.pas line 683 BreakPoint at:00451E9F +Adding coverage:DECCRC.pas (DECCRC) 684 +Clearing BreakPoint at 00451EAB +De-Activate DECCRC.pas line 684 BreakPoint at:00451EAB +Adding coverage:DECCRC.pas (DECCRC) 686 +Clearing BreakPoint at 00451EC3 +De-Activate DECCRC.pas line 686 BreakPoint at:00451EC3 +Adding coverage:DECCRC.pas (DECCRC) 731 +Clearing BreakPoint at 00451FC8 +De-Activate DECCRC.pas line 731 BreakPoint at:00451FC8 +Adding coverage:DECFormat.pas (DECFormat) 1064 +Clearing BreakPoint at 0045B460 +De-Activate DECFormat.pas line 1064 BreakPoint at:0045B460 +Adding coverage:DECFormat.pas (DECFormat) 1067 +Clearing BreakPoint at 0045B46D +De-Activate DECFormat.pas line 1067 BreakPoint at:0045B46D +Adding coverage:DECFormat.pas (DECFormat) 1068 +Clearing BreakPoint at 0045B496 +De-Activate DECFormat.pas line 1068 BreakPoint at:0045B496 +Adding coverage:DECFormat.pas (DECFormat) 1071 +Clearing BreakPoint at 0045B4B6 +De-Activate DECFormat.pas line 1071 BreakPoint at:0045B4B6 +Adding coverage:DECFormat.pas (DECFormat) 1072 +Clearing BreakPoint at 0045B4D5 +De-Activate DECFormat.pas line 1072 BreakPoint at:0045B4D5 +Adding coverage:DECFormat.pas (DECFormat) 1073 +Clearing BreakPoint at 0045B4F9 +De-Activate DECFormat.pas line 1073 BreakPoint at:0045B4F9 +Adding coverage:DECFormat.pas (DECFormat) 1074 +Clearing BreakPoint at 0045B513 +De-Activate DECFormat.pas line 1074 BreakPoint at:0045B513 +Adding coverage:DECFormat.pas (DECFormat) 1078 +Clearing BreakPoint at 0045B537 +De-Activate DECFormat.pas line 1078 BreakPoint at:0045B537 +Adding coverage:DECFormat.pas (DECFormat) 1081 +Clearing BreakPoint at 0045B547 +De-Activate DECFormat.pas line 1081 BreakPoint at:0045B547 +Adding coverage:DECFormat.pas (DECFormat) 1082 +Clearing BreakPoint at 0045B56E +De-Activate DECFormat.pas line 1082 BreakPoint at:0045B56E +Adding coverage:DECFormat.pas (DECFormat) 1085 +Clearing BreakPoint at 0045B57F +De-Activate DECFormat.pas line 1085 BreakPoint at:0045B57F +Adding coverage:DECFormat.pas (DECFormat) 1086 +Clearing BreakPoint at 0045B59E +De-Activate DECFormat.pas line 1086 BreakPoint at:0045B59E +Adding coverage:DECFormat.pas (DECFormat) 1087 +Clearing BreakPoint at 0045B5E9 +De-Activate DECFormat.pas line 1087 BreakPoint at:0045B5E9 +Adding coverage:DECFormat.pas (DECFormat) 1088 +Clearing BreakPoint at 0045B603 +De-Activate DECFormat.pas line 1088 BreakPoint at:0045B603 +Adding coverage:DECFormat.pas (DECFormat) 1089 +Clearing BreakPoint at 0045B660 +De-Activate DECFormat.pas line 1089 BreakPoint at:0045B660 +Adding coverage:DECFormat.pas (DECFormat) 1094 +Clearing BreakPoint at 0045B69C +De-Activate DECFormat.pas line 1094 BreakPoint at:0045B69C +Adding coverage:DECFormat.pas (DECFormat) 1095 +Clearing BreakPoint at 0045B6BF +De-Activate DECFormat.pas line 1095 BreakPoint at:0045B6BF +Adding coverage:DECFormat.pas (DECFormat) 1096 +Clearing BreakPoint at 0045B6CD +De-Activate DECFormat.pas line 1096 BreakPoint at:0045B6CD +Adding coverage:DECFormat.pas (DECFormat) 1099 +Clearing BreakPoint at 0045B6D7 +De-Activate DECFormat.pas line 1099 BreakPoint at:0045B6D7 +Adding coverage:DECFormat.pas (DECFormat) 944 +Clearing BreakPoint at 0045AED8 +De-Activate DECFormat.pas line 944 BreakPoint at:0045AED8 +Adding coverage:DECFormat.pas (DECFormat) 945 +Clearing BreakPoint at 0045AF00 +De-Activate DECFormat.pas line 945 BreakPoint at:0045AF00 +Adding coverage:DECFormat.pas (DECFormat) 946 +Clearing BreakPoint at 0045AF07 +De-Activate DECFormat.pas line 946 BreakPoint at:0045AF07 +Adding coverage:DECFormat.pas (DECFormat) 947 +Clearing BreakPoint at 0045AF2C +De-Activate DECFormat.pas line 947 BreakPoint at:0045AF2C +Adding coverage:DECFormat.pas (DECFormat) 948 +Clearing BreakPoint at 0045AF47 +De-Activate DECFormat.pas line 948 BreakPoint at:0045AF47 +Adding coverage:DECFormat.pas (DECFormat) 950 +Clearing BreakPoint at 0045AF39 +De-Activate DECFormat.pas line 950 BreakPoint at:0045AF39 +Adding coverage:DECFormat.pas (DECFormat) 953 +Clearing BreakPoint at 0045AF43 +De-Activate DECFormat.pas line 953 BreakPoint at:0045AF43 +Adding coverage:DECFormat.pas (DECFormat) 955 +Clearing BreakPoint at 0045AF4F +De-Activate DECFormat.pas line 955 BreakPoint at:0045AF4F +Adding coverage:DECFormat.pas (DECFormat) 956 +Clearing BreakPoint at 0045AF75 +De-Activate DECFormat.pas line 956 BreakPoint at:0045AF75 +Adding coverage:DECFormat.pas (DECFormat) 957 +Clearing BreakPoint at 0045AF83 +De-Activate DECFormat.pas line 957 BreakPoint at:0045AF83 +Adding coverage:DECFormat.pas (DECFormat) 958 +Clearing BreakPoint at 0045AF87 +De-Activate DECFormat.pas line 958 BreakPoint at:0045AF87 +Adding coverage:DECFormat.pas (DECFormat) 959 +Clearing BreakPoint at 0045AFB3 +De-Activate DECFormat.pas line 959 BreakPoint at:0045AFB3 +Adding coverage:DECFormat.pas (DECFormat) 961 +Clearing BreakPoint at 0045AFD0 +De-Activate DECFormat.pas line 961 BreakPoint at:0045AFD0 +Adding coverage:DECFormat.pas (DECFormat) 962 +Clearing BreakPoint at 0045AFD5 +De-Activate DECFormat.pas line 962 BreakPoint at:0045AFD5 +Adding coverage:DECFormat.pas (DECFormat) 963 +Clearing BreakPoint at 0045AFF8 +De-Activate DECFormat.pas line 963 BreakPoint at:0045AFF8 +Adding coverage:DECFormat.pas (DECFormat) 967 +Clearing BreakPoint at 0045B020 +De-Activate DECFormat.pas line 967 BreakPoint at:0045B020 +Adding coverage:DECFormat.pas (DECFormat) 1100 +Clearing BreakPoint at 0045B6E8 +De-Activate DECFormat.pas line 1100 BreakPoint at:0045B6E8 +Adding coverage:DECFormat.pas (DECFormat) 1102 +Clearing BreakPoint at 0045B6FA +De-Activate DECFormat.pas line 1102 BreakPoint at:0045B6FA +Adding coverage:DECFormat.pas (DECFormat) 1104 +Clearing BreakPoint at 0045B704 +De-Activate DECFormat.pas line 1104 BreakPoint at:0045B704 +Adding coverage:DECFormat.pas (DECFormat) 1105 +Clearing BreakPoint at 0045B711 +De-Activate DECFormat.pas line 1105 BreakPoint at:0045B711 +Adding coverage:DECFormat.pas (DECFormat) 1108 +Clearing BreakPoint at 0045B78A +De-Activate DECFormat.pas line 1108 BreakPoint at:0045B78A +Adding coverage:DECFormat.pas (DECFormat) 900 +Clearing BreakPoint at 0045ADAF +De-Activate DECFormat.pas line 900 BreakPoint at:0045ADAF +Adding coverage:DECFormat.pas (DECFormat) 901 +Clearing BreakPoint at 0045ADB4 +De-Activate DECFormat.pas line 901 BreakPoint at:0045ADB4 +Adding coverage:DECFormat.pas (DECFormat) 997 +Clearing BreakPoint at 0045B150 +De-Activate DECFormat.pas line 997 BreakPoint at:0045B150 +Adding coverage:DECFormat.pas (DECFormat) 998 +Clearing BreakPoint at 0045B159 +De-Activate DECFormat.pas line 998 BreakPoint at:0045B159 +Adding coverage:DECFormat.pas (DECFormat) 999 +Clearing BreakPoint at 0045B161 +De-Activate DECFormat.pas line 999 BreakPoint at:0045B161 +Adding coverage:DECFormat.pas (DECFormat) 1037 +Clearing BreakPoint at 0045B2E8 +De-Activate DECFormat.pas line 1037 BreakPoint at:0045B2E8 +Adding coverage:DECFormat.pas (DECFormat) 1038 +Clearing BreakPoint at 0045B30A +De-Activate DECFormat.pas line 1038 BreakPoint at:0045B30A +Adding coverage:DECFormat.pas (DECFormat) 1039 +Clearing BreakPoint at 0045B310 +De-Activate DECFormat.pas line 1039 BreakPoint at:0045B310 +Adding coverage:DECFormat.pas (DECFormat) 1043 +Clearing BreakPoint at 0045B34D +De-Activate DECFormat.pas line 1043 BreakPoint at:0045B34D +Adding coverage:DECFormat.pas (DECFormat) 1014 +Clearing BreakPoint at 0045B1F6 +De-Activate DECFormat.pas line 1014 BreakPoint at:0045B1F6 +Adding coverage:DECFormat.pas (DECFormat) 1016 +Clearing BreakPoint at 0045B230 +De-Activate DECFormat.pas line 1016 BreakPoint at:0045B230 +Adding coverage:DECFormat.pas (DECFormat) 1017 +Clearing BreakPoint at 0045B249 +De-Activate DECFormat.pas line 1017 BreakPoint at:0045B249 +Adding coverage:DECFormat.pas (DECFormat) 1020 +Clearing BreakPoint at 0045B264 +De-Activate DECFormat.pas line 1020 BreakPoint at:0045B264 +Adding coverage:DECFormat.pas (DECFormat) 1021 +Clearing BreakPoint at 0045B272 +De-Activate DECFormat.pas line 1021 BreakPoint at:0045B272 +Adding coverage:DECFormat.pas (DECFormat) 1022 +Clearing BreakPoint at 0045B278 +De-Activate DECFormat.pas line 1022 BreakPoint at:0045B278 +Adding coverage:DECFormat.pas (DECFormat) 1023 +Clearing BreakPoint at 0045B27E +De-Activate DECFormat.pas line 1023 BreakPoint at:0045B27E +Adding coverage:DECFormat.pas (DECFormat) 1024 +Clearing BreakPoint at 0045B284 +De-Activate DECFormat.pas line 1024 BreakPoint at:0045B284 +Adding coverage:DECFormat.pas (DECFormat) 1025 +Clearing BreakPoint at 0045B288 +De-Activate DECFormat.pas line 1025 BreakPoint at:0045B288 +Adding coverage:DECFormat.pas (DECFormat) 1026 +Clearing BreakPoint at 0045B28E +De-Activate DECFormat.pas line 1026 BreakPoint at:0045B28E +Adding coverage:DECFormat.pas (DECFormat) 1027 +Clearing BreakPoint at 0045B292 +De-Activate DECFormat.pas line 1027 BreakPoint at:0045B292 +Adding coverage:DECFormat.pas (DECFormat) 1028 +Clearing BreakPoint at 0045B29F +De-Activate DECFormat.pas line 1028 BreakPoint at:0045B29F +Adding coverage:DECFormat.pas (DECFormat) 1030 +Clearing BreakPoint at 0045B2A7 +De-Activate DECFormat.pas line 1030 BreakPoint at:0045B2A7 +Adding coverage:DECFormat.pas (DECFormat) 1031 +Clearing BreakPoint at 0045B2B5 +De-Activate DECFormat.pas line 1031 BreakPoint at:0045B2B5 +Adding coverage:DECFormat.pas (DECFormat) 1033 +Clearing BreakPoint at 0045B2BB +De-Activate DECFormat.pas line 1033 BreakPoint at:0045B2BB +Adding coverage:DECFormat.pas (DECFormat) 973 +Clearing BreakPoint at 0045B060 +De-Activate DECFormat.pas line 973 BreakPoint at:0045B060 +Adding coverage:DECFormat.pas (DECFormat) 975 +Clearing BreakPoint at 0045B083 +De-Activate DECFormat.pas line 975 BreakPoint at:0045B083 +Adding coverage:DECFormat.pas (DECFormat) 978 +Clearing BreakPoint at 0045B096 +De-Activate DECFormat.pas line 978 BreakPoint at:0045B096 +Adding coverage:DECFormat.pas (DECFormat) 980 +Clearing BreakPoint at 0045B0A0 +De-Activate DECFormat.pas line 980 BreakPoint at:0045B0A0 +Adding coverage:DECFormat.pas (DECFormat) 983 +Clearing BreakPoint at 0045B0B1 +De-Activate DECFormat.pas line 983 BreakPoint at:0045B0B1 +Adding coverage:DECFormat.pas (DECFormat) 985 +Clearing BreakPoint at 0045B0C3 +De-Activate DECFormat.pas line 985 BreakPoint at:0045B0C3 +Adding coverage:DECFormat.pas (DECFormat) 988 +Clearing BreakPoint at 0045B0C9 +De-Activate DECFormat.pas line 988 BreakPoint at:0045B0C9 +Adding coverage:DECFormat.pas (DECFormat) 989 +Clearing BreakPoint at 0045B0D6 +De-Activate DECFormat.pas line 989 BreakPoint at:0045B0D6 +Adding coverage:DECFormat.pas (DECFormat) 994 +Clearing BreakPoint at 0045B122 +De-Activate DECFormat.pas line 994 BreakPoint at:0045B122 +Adding coverage:DECFormat.pas (DECFormat) 992 +Clearing BreakPoint at 0045B11E +De-Activate DECFormat.pas line 992 BreakPoint at:0045B11E +Adding coverage:DECFormat.pas (DECFormat) 1041 +Clearing BreakPoint at 0045B31A +De-Activate DECFormat.pas line 1041 BreakPoint at:0045B31A +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045B34D +Exact line:DECFormat line 1043 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00469F0A +Exact line:TestDECFormat line 1315 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00469FAC +Exact line:TestDECFormat line 1325 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1106 +Clearing BreakPoint at 0045B759 +De-Activate DECFormat.pas line 1106 BreakPoint at:0045B759 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045B78A +Exact line:DECFormat line 1108 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00469F46 +After line:TestDECFormat line 1320 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046A248 +Exact line:TestDECFormat line 1388 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 2023 +Clearing BreakPoint at 0045E61C +De-Activate DECFormat.pas line 2023 BreakPoint at:0045E61C +Adding coverage:DECFormat.pas (DECFormat) 2024 +Clearing BreakPoint at 0045E648 +De-Activate DECFormat.pas line 2024 BreakPoint at:0045E648 +Adding coverage:DECFormat.pas (DECFormat) 1941 +Clearing BreakPoint at 0045DD30 +De-Activate DECFormat.pas line 1941 BreakPoint at:0045DD30 +Adding coverage:DECFormat.pas (DECFormat) 1943 +Clearing BreakPoint at 0045DD41 +De-Activate DECFormat.pas line 1943 BreakPoint at:0045DD41 +Adding coverage:DECFormat.pas (DECFormat) 1950 +Clearing BreakPoint at 0045DD59 +De-Activate DECFormat.pas line 1950 BreakPoint at:0045DD59 +Adding coverage:DECFormat.pas (DECFormat) 1945 +Clearing BreakPoint at 0045DD5E +De-Activate DECFormat.pas line 1945 BreakPoint at:0045DD5E +Adding coverage:DECFormat.pas (DECFormat) 1950 +Clearing BreakPoint at 0045E42F +De-Activate DECFormat.pas line 1950 BreakPoint at:0045E42F +Adding coverage:DECFormat.pas (DECFormat) 1951 +Clearing BreakPoint at 0045E447 +De-Activate DECFormat.pas line 1951 BreakPoint at:0045E447 +Adding coverage:DECFormat.pas (DECFormat) 2025 +Clearing BreakPoint at 0045E651 +De-Activate DECFormat.pas line 2025 BreakPoint at:0045E651 +Adding coverage:DECFormat.pas (DECFormat) 2026 +Clearing BreakPoint at 0045E657 +De-Activate DECFormat.pas line 2026 BreakPoint at:0045E657 +Adding coverage:DECFormat.pas (DECFormat) 2028 +Clearing BreakPoint at 0045E662 +De-Activate DECFormat.pas line 2028 BreakPoint at:0045E662 +Adding coverage:DECFormat.pas (DECFormat) 2030 +Clearing BreakPoint at 0045E66C +De-Activate DECFormat.pas line 2030 BreakPoint at:0045E66C +Adding coverage:DECFormat.pas (DECFormat) 2031 +Clearing BreakPoint at 0045E676 +De-Activate DECFormat.pas line 2031 BreakPoint at:0045E676 +Adding coverage:DECFormat.pas (DECFormat) 2032 +Clearing BreakPoint at 0045E67A +De-Activate DECFormat.pas line 2032 BreakPoint at:0045E67A +Adding coverage:DECFormat.pas (DECFormat) 2034 +Clearing BreakPoint at 0045E685 +De-Activate DECFormat.pas line 2034 BreakPoint at:0045E685 +Adding coverage:DECFormat.pas (DECFormat) 2035 +Clearing BreakPoint at 0045E72D +De-Activate DECFormat.pas line 2035 BreakPoint at:0045E72D +Adding coverage:DECFormat.pas (DECFormat) 2036 +Clearing BreakPoint at 0045E74B +De-Activate DECFormat.pas line 2036 BreakPoint at:0045E74B +Adding coverage:DECFormat.pas (DECFormat) 2040 +Clearing BreakPoint at 0045E7FE +De-Activate DECFormat.pas line 2040 BreakPoint at:0045E7FE +Adding coverage:DECFormat.pas (DECFormat) 2041 +Clearing BreakPoint at 0045E808 +De-Activate DECFormat.pas line 2041 BreakPoint at:0045E808 +Adding coverage:DECFormat.pas (DECFormat) 2042 +Clearing BreakPoint at 0045E80C +De-Activate DECFormat.pas line 2042 BreakPoint at:0045E80C +Adding coverage:DECFormat.pas (DECFormat) 2044 +Clearing BreakPoint at 0045E817 +De-Activate DECFormat.pas line 2044 BreakPoint at:0045E817 +Adding coverage:DECFormat.pas (DECFormat) 2045 +Clearing BreakPoint at 0045E837 +De-Activate DECFormat.pas line 2045 BreakPoint at:0045E837 +Adding coverage:DECFormat.pas (DECFormat) 2046 +Clearing BreakPoint at 0045E8E0 +De-Activate DECFormat.pas line 2046 BreakPoint at:0045E8E0 +Adding coverage:DECFormat.pas (DECFormat) 2048 +Clearing BreakPoint at 0045E8FE +De-Activate DECFormat.pas line 2048 BreakPoint at:0045E8FE +Adding coverage:DECFormat.pas (DECFormat) 2052 +Clearing BreakPoint at 0045E9B1 +De-Activate DECFormat.pas line 2052 BreakPoint at:0045E9B1 +Adding coverage:DECFormat.pas (DECFormat) 2053 +Clearing BreakPoint at 0045E9BB +De-Activate DECFormat.pas line 2053 BreakPoint at:0045E9BB +Adding coverage:DECFormat.pas (DECFormat) 2054 +Clearing BreakPoint at 0045E9BF +De-Activate DECFormat.pas line 2054 BreakPoint at:0045E9BF +Adding coverage:DECFormat.pas (DECFormat) 2056 +Clearing BreakPoint at 0045E9CA +De-Activate DECFormat.pas line 2056 BreakPoint at:0045E9CA +Adding coverage:DECFormat.pas (DECFormat) 2057 +Clearing BreakPoint at 0045E9EA +De-Activate DECFormat.pas line 2057 BreakPoint at:0045E9EA +Adding coverage:DECFormat.pas (DECFormat) 2028 +Clearing BreakPoint at 0045EB36 +De-Activate DECFormat.pas line 2028 BreakPoint at:0045EB36 +Adding coverage:DECFormat.pas (DECFormat) 2050 +Clearing BreakPoint at 0045E908 +De-Activate DECFormat.pas line 2050 BreakPoint at:0045E908 +Adding coverage:DECFormat.pas (DECFormat) 2049 +Clearing BreakPoint at 0045E90D +De-Activate DECFormat.pas line 2049 BreakPoint at:0045E90D +Adding coverage:DECFormat.pas (DECFormat) 2050 +Clearing BreakPoint at 0045E999 +De-Activate DECFormat.pas line 2050 BreakPoint at:0045E999 +Adding coverage:DECFormat.pas (DECFormat) 2062 +Clearing BreakPoint at 0045EB40 +De-Activate DECFormat.pas line 2062 BreakPoint at:0045EB40 +Adding coverage:DECFormat.pas (DECFormat) 2038 +Clearing BreakPoint at 0045E755 +De-Activate DECFormat.pas line 2038 BreakPoint at:0045E755 +Adding coverage:DECFormat.pas (DECFormat) 2037 +Clearing BreakPoint at 0045E75A +De-Activate DECFormat.pas line 2037 BreakPoint at:0045E75A +Adding coverage:DECFormat.pas (DECFormat) 2038 +Clearing BreakPoint at 0045E7E6 +De-Activate DECFormat.pas line 2038 BreakPoint at:0045E7E6 +Adding coverage:DECFormat.pas (DECFormat) 1992 +Clearing BreakPoint at 0045E554 +De-Activate DECFormat.pas line 1992 BreakPoint at:0045E554 +Adding coverage:DECFormat.pas (DECFormat) 1993 +Clearing BreakPoint at 0045E563 +De-Activate DECFormat.pas line 1993 BreakPoint at:0045E563 +Adding coverage:DECFormat.pas (DECFormat) 1995 +Clearing BreakPoint at 0045E569 +De-Activate DECFormat.pas line 1995 BreakPoint at:0045E569 +Adding coverage:DECFormat.pas (DECFormat) 1998 +Clearing BreakPoint at 0045E57D +De-Activate DECFormat.pas line 1998 BreakPoint at:0045E57D +Adding coverage:DECFormat.pas (DECFormat) 2000 +Clearing BreakPoint at 0045E587 +De-Activate DECFormat.pas line 2000 BreakPoint at:0045E587 +Adding coverage:DECFormat.pas (DECFormat) 1974 +Clearing BreakPoint at 0045E44C +De-Activate DECFormat.pas line 1974 BreakPoint at:0045E44C +Adding coverage:DECFormat.pas (DECFormat) 1975 +Clearing BreakPoint at 0045E452 +De-Activate DECFormat.pas line 1975 BreakPoint at:0045E452 +Adding coverage:DECFormat.pas (DECFormat) 1976 +Clearing BreakPoint at 0045E459 +De-Activate DECFormat.pas line 1976 BreakPoint at:0045E459 +Adding coverage:DECFormat.pas (DECFormat) 1978 +Clearing BreakPoint at 0045E462 +De-Activate DECFormat.pas line 1978 BreakPoint at:0045E462 +Adding coverage:DECFormat.pas (DECFormat) 1979 +Clearing BreakPoint at 0045E46D +De-Activate DECFormat.pas line 1979 BreakPoint at:0045E46D +Adding coverage:DECFormat.pas (DECFormat) 1980 +Clearing BreakPoint at 0045E474 +De-Activate DECFormat.pas line 1980 BreakPoint at:0045E474 +Adding coverage:DECFormat.pas (DECFormat) 1981 +Clearing BreakPoint at 0045E482 +De-Activate DECFormat.pas line 1981 BreakPoint at:0045E482 +Adding coverage:DECFormat.pas (DECFormat) 1982 +Clearing BreakPoint at 0045E488 +De-Activate DECFormat.pas line 1982 BreakPoint at:0045E488 +Adding coverage:DECFormat.pas (DECFormat) 1984 +Clearing BreakPoint at 0045E4A1 +De-Activate DECFormat.pas line 1984 BreakPoint at:0045E4A1 +Adding coverage:DECFormat.pas (DECFormat) 2001 +Clearing BreakPoint at 0045E591 +De-Activate DECFormat.pas line 2001 BreakPoint at:0045E591 +Adding coverage:DECFormat.pas (DECFormat) 2002 +Clearing BreakPoint at 0045E597 +De-Activate DECFormat.pas line 2002 BreakPoint at:0045E597 +Adding coverage:DECFormat.pas (DECFormat) 2003 +Clearing BreakPoint at 0045E5A1 +De-Activate DECFormat.pas line 2003 BreakPoint at:0045E5A1 +Adding coverage:DECFormat.pas (DECFormat) 2004 +Clearing BreakPoint at 0045E5A7 +De-Activate DECFormat.pas line 2004 BreakPoint at:0045E5A7 +Adding coverage:DECFormat.pas (DECFormat) 1987 +Clearing BreakPoint at 0045E4A8 +De-Activate DECFormat.pas line 1987 BreakPoint at:0045E4A8 +Adding coverage:DECFormat.pas (DECFormat) 1989 +Clearing BreakPoint at 0045E4B6 +De-Activate DECFormat.pas line 1989 BreakPoint at:0045E4B6 +Adding coverage:DECFormat.pas (DECFormat) 1990 +Clearing BreakPoint at 0045E54F +De-Activate DECFormat.pas line 1990 BreakPoint at:0045E54F +Adding coverage:DECFormat.pas (DECFormat) 2006 +Clearing BreakPoint at 0045E5BF +De-Activate DECFormat.pas line 2006 BreakPoint at:0045E5BF +Adding coverage:DECFormat.pas (DECFormat) 2007 +Clearing BreakPoint at 0045E5C9 +De-Activate DECFormat.pas line 2007 BreakPoint at:0045E5C9 +Adding coverage:DECFormat.pas (DECFormat) 2008 +Clearing BreakPoint at 0045E5CF +De-Activate DECFormat.pas line 2008 BreakPoint at:0045E5CF +Adding coverage:DECFormat.pas (DECFormat) 2010 +Clearing BreakPoint at 0045E5E7 +De-Activate DECFormat.pas line 2010 BreakPoint at:0045E5E7 +Adding coverage:DECFormat.pas (DECFormat) 2011 +Clearing BreakPoint at 0045E5F1 +De-Activate DECFormat.pas line 2011 BreakPoint at:0045E5F1 +Adding coverage:DECFormat.pas (DECFormat) 2012 +Clearing BreakPoint at 0045E5F7 +De-Activate DECFormat.pas line 2012 BreakPoint at:0045E5F7 +Adding coverage:DECFormat.pas (DECFormat) 1998 +Clearing BreakPoint at 0045E60A +De-Activate DECFormat.pas line 1998 BreakPoint at:0045E60A +Adding coverage:DECFormat.pas (DECFormat) 2014 +Clearing BreakPoint at 0045E614 +De-Activate DECFormat.pas line 2014 BreakPoint at:0045E614 +Adding coverage:DECFormat.pas (DECFormat) 2068 +Clearing BreakPoint at 0045EB6C +De-Activate DECFormat.pas line 2068 BreakPoint at:0045EB6C +Adding coverage:DECFormat.pas (DECFormat) 2069 +Clearing BreakPoint at 0045EB7B +De-Activate DECFormat.pas line 2069 BreakPoint at:0045EB7B +Adding coverage:DECFormat.pas (DECFormat) 2070 +Clearing BreakPoint at 0045EB7F +De-Activate DECFormat.pas line 2070 BreakPoint at:0045EB7F +Adding coverage:DECFormat.pas (DECFormat) 2071 +Clearing BreakPoint at 0045EBB3 +De-Activate DECFormat.pas line 2071 BreakPoint at:0045EBB3 +Adding coverage:DECFormat.pas (DECFormat) 2074 +Clearing BreakPoint at 0045EB87 +De-Activate DECFormat.pas line 2074 BreakPoint at:0045EB87 +Adding coverage:DECFormat.pas (DECFormat) 2076 +Clearing BreakPoint at 0045EB9E +De-Activate DECFormat.pas line 2076 BreakPoint at:0045EB9E +Adding coverage:DECFormat.pas (DECFormat) 2077 +Clearing BreakPoint at 0045EBA2 +De-Activate DECFormat.pas line 2077 BreakPoint at:0045EBA2 +Adding coverage:DECFormat.pas (DECFormat) 2082 +Clearing BreakPoint at 0045EBBF +De-Activate DECFormat.pas line 2082 BreakPoint at:0045EBBF +Adding coverage:DECFormat.pas (DECFormat) 1209 +Clearing BreakPoint at 0045BF34 +De-Activate DECFormat.pas line 1209 BreakPoint at:0045BF34 +Adding coverage:DECFormat.pas (DECFormat) 1210 +Clearing BreakPoint at 0045BF57 +De-Activate DECFormat.pas line 1210 BreakPoint at:0045BF57 +Adding coverage:DECFormat.pas (DECFormat) 1211 +Clearing BreakPoint at 0045BF65 +De-Activate DECFormat.pas line 1211 BreakPoint at:0045BF65 +Adding coverage:DECFormat.pas (DECFormat) 1214 +Clearing BreakPoint at 0045BF6F +De-Activate DECFormat.pas line 1214 BreakPoint at:0045BF6F +Adding coverage:DECFormat.pas (DECFormat) 1216 +Clearing BreakPoint at 0045BFB9 +De-Activate DECFormat.pas line 1216 BreakPoint at:0045BFB9 +Adding coverage:DECFormat.pas (DECFormat) 1111 +Clearing BreakPoint at 0045B7B0 +De-Activate DECFormat.pas line 1111 BreakPoint at:0045B7B0 +Adding coverage:DECFormat.pas (DECFormat) 1115 +Clearing BreakPoint at 0045B7C1 +De-Activate DECFormat.pas line 1115 BreakPoint at:0045B7C1 +Adding coverage:DECFormat.pas (DECFormat) 1122 +Clearing BreakPoint at 0045B7D9 +De-Activate DECFormat.pas line 1122 BreakPoint at:0045B7D9 +Adding coverage:DECFormat.pas (DECFormat) 1117 +Clearing BreakPoint at 0045B7DE +De-Activate DECFormat.pas line 1117 BreakPoint at:0045B7DE +Adding coverage:DECFormat.pas (DECFormat) 1122 +Clearing BreakPoint at 0045BF17 +De-Activate DECFormat.pas line 1122 BreakPoint at:0045BF17 +Adding coverage:DECFormat.pas (DECFormat) 1200 +Clearing BreakPoint at 0045BF2F +De-Activate DECFormat.pas line 1200 BreakPoint at:0045BF2F +Adding coverage:DECFormat.pas (DECFormat) 1217 +Clearing BreakPoint at 0045BFC2 +De-Activate DECFormat.pas line 1217 BreakPoint at:0045BFC2 +Adding coverage:DECFormat.pas (DECFormat) 1218 +Clearing BreakPoint at 0045BFC8 +De-Activate DECFormat.pas line 1218 BreakPoint at:0045BFC8 +Adding coverage:DECFormat.pas (DECFormat) 1220 +Clearing BreakPoint at 0045BFE3 +De-Activate DECFormat.pas line 1220 BreakPoint at:0045BFE3 +Adding coverage:DECFormat.pas (DECFormat) 1222 +Clearing BreakPoint at 0045BFED +De-Activate DECFormat.pas line 1222 BreakPoint at:0045BFED +Adding coverage:DECFormat.pas (DECFormat) 1223 +Clearing BreakPoint at 0045BFF3 +De-Activate DECFormat.pas line 1223 BreakPoint at:0045BFF3 +Adding coverage:DECFormat.pas (DECFormat) 1225 +Clearing BreakPoint at 0045C000 +De-Activate DECFormat.pas line 1225 BreakPoint at:0045C000 +Adding coverage:DECFormat.pas (DECFormat) 1226 +Clearing BreakPoint at 0045C00D +De-Activate DECFormat.pas line 1226 BreakPoint at:0045C00D +Adding coverage:DECFormat.pas (DECFormat) 1227 +Clearing BreakPoint at 0045C029 +De-Activate DECFormat.pas line 1227 BreakPoint at:0045C029 +Adding coverage:DECFormat.pas (DECFormat) 1229 +Clearing BreakPoint at 0045C02F +De-Activate DECFormat.pas line 1229 BreakPoint at:0045C02F +Adding coverage:DECFormat.pas (DECFormat) 1230 +Clearing BreakPoint at 0045C034 +De-Activate DECFormat.pas line 1230 BreakPoint at:0045C034 +Adding coverage:DECFormat.pas (DECFormat) 1232 +Clearing BreakPoint at 0045C039 +De-Activate DECFormat.pas line 1232 BreakPoint at:0045C039 +Adding coverage:DECFormat.pas (DECFormat) 1233 +Clearing BreakPoint at 0045C03D +De-Activate DECFormat.pas line 1233 BreakPoint at:0045C03D +Adding coverage:DECFormat.pas (DECFormat) 1235 +Clearing BreakPoint at 0045C043 +De-Activate DECFormat.pas line 1235 BreakPoint at:0045C043 +Adding coverage:DECFormat.pas (DECFormat) 1236 +Clearing BreakPoint at 0045C04C +De-Activate DECFormat.pas line 1236 BreakPoint at:0045C04C +Adding coverage:DECFormat.pas (DECFormat) 1238 +Clearing BreakPoint at 0045C050 +De-Activate DECFormat.pas line 1238 BreakPoint at:0045C050 +Adding coverage:DECFormat.pas (DECFormat) 1239 +Clearing BreakPoint at 0045C05B +De-Activate DECFormat.pas line 1239 BreakPoint at:0045C05B +Adding coverage:DECFormat.pas (DECFormat) 1230 +Clearing BreakPoint at 0045C05E +De-Activate DECFormat.pas line 1230 BreakPoint at:0045C05E +Adding coverage:DECFormat.pas (DECFormat) 1240 +Clearing BreakPoint at 0045C064 +De-Activate DECFormat.pas line 1240 BreakPoint at:0045C064 +Adding coverage:DECFormat.pas (DECFormat) 1242 +Clearing BreakPoint at 0045C06B +De-Activate DECFormat.pas line 1242 BreakPoint at:0045C06B +Adding coverage:DECFormat.pas (DECFormat) 1243 +Clearing BreakPoint at 0045C08E +De-Activate DECFormat.pas line 1243 BreakPoint at:0045C08E +Adding coverage:DECFormat.pas (DECFormat) 1244 +Clearing BreakPoint at 0045C092 +De-Activate DECFormat.pas line 1244 BreakPoint at:0045C092 +Adding coverage:DECFormat.pas (DECFormat) 1240 +Clearing BreakPoint at 0045C095 +De-Activate DECFormat.pas line 1240 BreakPoint at:0045C095 +Adding coverage:DECFormat.pas (DECFormat) 1245 +Clearing BreakPoint at 0045C09B +De-Activate DECFormat.pas line 1245 BreakPoint at:0045C09B +Adding coverage:DECFormat.pas (DECFormat) 1227 +Clearing BreakPoint at 0045C09F +De-Activate DECFormat.pas line 1227 BreakPoint at:0045C09F +Adding coverage:DECFormat.pas (DECFormat) 1247 +Clearing BreakPoint at 0045C0A5 +De-Activate DECFormat.pas line 1247 BreakPoint at:0045C0A5 +Adding coverage:DECFormat.pas (DECFormat) 1220 +Clearing BreakPoint at 0045C0A9 +De-Activate DECFormat.pas line 1220 BreakPoint at:0045C0A9 +Adding coverage:DECFormat.pas (DECFormat) 1250 +Clearing BreakPoint at 0045C0B3 +De-Activate DECFormat.pas line 1250 BreakPoint at:0045C0B3 +Adding coverage:DECFormat.pas (DECFormat) 1251 +Clearing BreakPoint at 0045C0D9 +De-Activate DECFormat.pas line 1251 BreakPoint at:0045C0D9 +Adding coverage:DECFormat.pas (DECFormat) 1260 +Clearing BreakPoint at 0045C108 +De-Activate DECFormat.pas line 1260 BreakPoint at:0045C108 +Adding coverage:DECFormat.pas (DECFormat) 1261 +Clearing BreakPoint at 0045C12E +De-Activate DECFormat.pas line 1261 BreakPoint at:0045C12E +Adding coverage:DECFormat.pas (DECFormat) 1262 +Clearing BreakPoint at 0045C13C +De-Activate DECFormat.pas line 1262 BreakPoint at:0045C13C +Adding coverage:DECFormat.pas (DECFormat) 1265 +Clearing BreakPoint at 0045C146 +De-Activate DECFormat.pas line 1265 BreakPoint at:0045C146 +Adding coverage:DECFormat.pas (DECFormat) 1267 +Clearing BreakPoint at 0045C160 +De-Activate DECFormat.pas line 1267 BreakPoint at:0045C160 +Adding coverage:DECFormat.pas (DECFormat) 1268 +Clearing BreakPoint at 0045C169 +De-Activate DECFormat.pas line 1268 BreakPoint at:0045C169 +Adding coverage:DECFormat.pas (DECFormat) 1269 +Clearing BreakPoint at 0045C16F +De-Activate DECFormat.pas line 1269 BreakPoint at:0045C16F +Adding coverage:DECFormat.pas (DECFormat) 1271 +Clearing BreakPoint at 0045C18A +De-Activate DECFormat.pas line 1271 BreakPoint at:0045C18A +Adding coverage:DECFormat.pas (DECFormat) 1274 +Clearing BreakPoint at 0045C193 +De-Activate DECFormat.pas line 1274 BreakPoint at:0045C193 +Adding coverage:DECFormat.pas (DECFormat) 1275 +Clearing BreakPoint at 0045C1A8 +De-Activate DECFormat.pas line 1275 BreakPoint at:0045C1A8 +Adding coverage:DECFormat.pas (DECFormat) 1277 +Clearing BreakPoint at 0045C1E5 +De-Activate DECFormat.pas line 1277 BreakPoint at:0045C1E5 +Adding coverage:DECFormat.pas (DECFormat) 1278 +Clearing BreakPoint at 0045C1E9 +De-Activate DECFormat.pas line 1278 BreakPoint at:0045C1E9 +Adding coverage:DECFormat.pas (DECFormat) 1280 +Clearing BreakPoint at 0045C1F3 +De-Activate DECFormat.pas line 1280 BreakPoint at:0045C1F3 +Adding coverage:DECFormat.pas (DECFormat) 1281 +Clearing BreakPoint at 0045C1F8 +De-Activate DECFormat.pas line 1281 BreakPoint at:0045C1F8 +Adding coverage:DECFormat.pas (DECFormat) 1282 +Clearing BreakPoint at 0045C23E +De-Activate DECFormat.pas line 1282 BreakPoint at:0045C23E +Adding coverage:DECFormat.pas (DECFormat) 1284 +Clearing BreakPoint at 0045C201 +De-Activate DECFormat.pas line 1284 BreakPoint at:0045C201 +Adding coverage:DECFormat.pas (DECFormat) 1285 +Clearing BreakPoint at 0045C216 +De-Activate DECFormat.pas line 1285 BreakPoint at:0045C216 +Adding coverage:DECFormat.pas (DECFormat) 1287 +Clearing BreakPoint at 0045C21C +De-Activate DECFormat.pas line 1287 BreakPoint at:0045C21C +Adding coverage:DECFormat.pas (DECFormat) 1288 +Clearing BreakPoint at 0045C22F +De-Activate DECFormat.pas line 1288 BreakPoint at:0045C22F +Adding coverage:DECFormat.pas (DECFormat) 1290 +Clearing BreakPoint at 0045C23A +De-Activate DECFormat.pas line 1290 BreakPoint at:0045C23A +Adding coverage:DECFormat.pas (DECFormat) 1292 +Clearing BreakPoint at 0045C24C +De-Activate DECFormat.pas line 1292 BreakPoint at:0045C24C +Adding coverage:DECFormat.pas (DECFormat) 1294 +Clearing BreakPoint at 0045C253 +De-Activate DECFormat.pas line 1294 BreakPoint at:0045C253 +Adding coverage:DECFormat.pas (DECFormat) 1295 +Clearing BreakPoint at 0045C25F +De-Activate DECFormat.pas line 1295 BreakPoint at:0045C25F +Adding coverage:DECFormat.pas (DECFormat) 1296 +Clearing BreakPoint at 0045C263 +De-Activate DECFormat.pas line 1296 BreakPoint at:0045C263 +Adding coverage:DECFormat.pas (DECFormat) 1297 +Clearing BreakPoint at 0045C26E +De-Activate DECFormat.pas line 1297 BreakPoint at:0045C26E +Adding coverage:DECFormat.pas (DECFormat) 1298 +Clearing BreakPoint at 0045C274 +De-Activate DECFormat.pas line 1298 BreakPoint at:0045C274 +Adding coverage:DECFormat.pas (DECFormat) 1299 +Clearing BreakPoint at 0045C27A +De-Activate DECFormat.pas line 1299 BreakPoint at:0045C27A +Adding coverage:DECFormat.pas (DECFormat) 1302 +Clearing BreakPoint at 0045C286 +De-Activate DECFormat.pas line 1302 BreakPoint at:0045C286 +Adding coverage:DECFormat.pas (DECFormat) 1278 +Clearing BreakPoint at 0045C291 +De-Activate DECFormat.pas line 1278 BreakPoint at:0045C291 +Adding coverage:DECFormat.pas (DECFormat) 1301 +Clearing BreakPoint at 0045C280 +De-Activate DECFormat.pas line 1301 BreakPoint at:0045C280 +Adding coverage:DECFormat.pas (DECFormat) 1304 +Clearing BreakPoint at 0045C29B +De-Activate DECFormat.pas line 1304 BreakPoint at:0045C29B +Adding coverage:DECFormat.pas (DECFormat) 1306 +Clearing BreakPoint at 0045C2A7 +De-Activate DECFormat.pas line 1306 BreakPoint at:0045C2A7 +Adding coverage:DECFormat.pas (DECFormat) 1307 +Clearing BreakPoint at 0045C2CD +De-Activate DECFormat.pas line 1307 BreakPoint at:0045C2CD +Adding coverage:DECFormat.pas (DECFormat) 1314 +Clearing BreakPoint at 0045C304 +De-Activate DECFormat.pas line 1314 BreakPoint at:0045C304 +Adding coverage:DECFormat.pas (DECFormat) 1315 +Clearing BreakPoint at 0045C327 +De-Activate DECFormat.pas line 1315 BreakPoint at:0045C327 +Adding coverage:DECFormat.pas (DECFormat) 1316 +Clearing BreakPoint at 0045C32B +De-Activate DECFormat.pas line 1316 BreakPoint at:0045C32B +Adding coverage:DECFormat.pas (DECFormat) 1317 +Clearing BreakPoint at 0045C334 +De-Activate DECFormat.pas line 1317 BreakPoint at:0045C334 +Adding coverage:DECFormat.pas (DECFormat) 1318 +Clearing BreakPoint at 0045C351 +De-Activate DECFormat.pas line 1318 BreakPoint at:0045C351 +Adding coverage:DECFormat.pas (DECFormat) 1319 +Clearing BreakPoint at 0045C357 +De-Activate DECFormat.pas line 1319 BreakPoint at:0045C357 +Adding coverage:DECFormat.pas (DECFormat) 1321 +Clearing BreakPoint at 0045C35C +De-Activate DECFormat.pas line 1321 BreakPoint at:0045C35C +Adding coverage:DECFormat.pas (DECFormat) 1342 +Clearing BreakPoint at 0045C3D3 +De-Activate DECFormat.pas line 1342 BreakPoint at:0045C3D3 +Adding coverage:DECFormat.pas (DECFormat) 1345 +Clearing BreakPoint at 0045C3D9 +De-Activate DECFormat.pas line 1345 BreakPoint at:0045C3D9 +Adding coverage:DECFormat.pas (DECFormat) 1346 +Clearing BreakPoint at 0045C3DD +De-Activate DECFormat.pas line 1346 BreakPoint at:0045C3DD +Adding coverage:DECFormat.pas (DECFormat) 1323 +Clearing BreakPoint at 0045C362 +De-Activate DECFormat.pas line 1323 BreakPoint at:0045C362 +Adding coverage:DECFormat.pas (DECFormat) 1324 +Clearing BreakPoint at 0045C379 +De-Activate DECFormat.pas line 1324 BreakPoint at:0045C379 +Adding coverage:DECFormat.pas (DECFormat) 1326 +Clearing BreakPoint at 0045C37F +De-Activate DECFormat.pas line 1326 BreakPoint at:0045C37F +Adding coverage:DECFormat.pas (DECFormat) 1327 +Clearing BreakPoint at 0045C38A +De-Activate DECFormat.pas line 1327 BreakPoint at:0045C38A +Adding coverage:DECFormat.pas (DECFormat) 1328 +Clearing BreakPoint at 0045C38E +De-Activate DECFormat.pas line 1328 BreakPoint at:0045C38E +Adding coverage:DECFormat.pas (DECFormat) 1330 +Clearing BreakPoint at 0045C394 +De-Activate DECFormat.pas line 1330 BreakPoint at:0045C394 +Adding coverage:DECFormat.pas (DECFormat) 1332 +Clearing BreakPoint at 0045C39A +De-Activate DECFormat.pas line 1332 BreakPoint at:0045C39A +Adding coverage:DECFormat.pas (DECFormat) 1321 +Clearing BreakPoint at 0045C3CD +De-Activate DECFormat.pas line 1321 BreakPoint at:0045C3CD +Adding coverage:DECFormat.pas (DECFormat) 1335 +Clearing BreakPoint at 0045C3BC +De-Activate DECFormat.pas line 1335 BreakPoint at:0045C3BC +Adding coverage:DECFormat.pas (DECFormat) 1336 +Clearing BreakPoint at 0045C3C2 +De-Activate DECFormat.pas line 1336 BreakPoint at:0045C3C2 +Adding coverage:DECFormat.pas (DECFormat) 1276 +Clearing BreakPoint at 0045C1B4 +De-Activate DECFormat.pas line 1276 BreakPoint at:0045C1B4 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045C1E5 +Exact line:DECFormat line 1277 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046B0A6 +After line:TestDECFormat line 1526 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046B204 +Exact line:TestDECFormat line 1555 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1349 +Clearing BreakPoint at 0045C40C +De-Activate DECFormat.pas line 1349 BreakPoint at:0045C40C +Adding coverage:DECFormat.pas (DECFormat) 1352 +Clearing BreakPoint at 0045C41D +De-Activate DECFormat.pas line 1352 BreakPoint at:0045C41D +Adding coverage:DECFormat.pas (DECFormat) 1359 +Clearing BreakPoint at 0045C435 +De-Activate DECFormat.pas line 1359 BreakPoint at:0045C435 +Adding coverage:DECFormat.pas (DECFormat) 1354 +Clearing BreakPoint at 0045C43A +De-Activate DECFormat.pas line 1354 BreakPoint at:0045C43A +Adding coverage:DECFormat.pas (DECFormat) 1359 +Clearing BreakPoint at 0045CC0F +De-Activate DECFormat.pas line 1359 BreakPoint at:0045CC0F +Adding coverage:DECFormat.pas (DECFormat) 1443 +Clearing BreakPoint at 0045CC27 +De-Activate DECFormat.pas line 1443 BreakPoint at:0045CC27 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045C1E5 +Exact line:DECFormat line 1277 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046C26E +After line:TestDECFormat line 1688 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046C3CC +Exact line:TestDECFormat line 1717 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1462 +Clearing BreakPoint at 0045CC4C +De-Activate DECFormat.pas line 1462 BreakPoint at:0045CC4C +Adding coverage:DECFormat.pas (DECFormat) 1463 +Clearing BreakPoint at 0045CC6F +De-Activate DECFormat.pas line 1463 BreakPoint at:0045CC6F +Adding coverage:DECFormat.pas (DECFormat) 1464 +Clearing BreakPoint at 0045CC7D +De-Activate DECFormat.pas line 1464 BreakPoint at:0045CC7D +Adding coverage:DECFormat.pas (DECFormat) 1467 +Clearing BreakPoint at 0045CC87 +De-Activate DECFormat.pas line 1467 BreakPoint at:0045CC87 +Adding coverage:DECFormat.pas (DECFormat) 1469 +Clearing BreakPoint at 0045CCAB +De-Activate DECFormat.pas line 1469 BreakPoint at:0045CCAB +Adding coverage:DECFormat.pas (DECFormat) 1452 +Clearing BreakPoint at 0045CC2C +De-Activate DECFormat.pas line 1452 BreakPoint at:0045CC2C +Adding coverage:DECFormat.pas (DECFormat) 1453 +Clearing BreakPoint at 0045CC38 +De-Activate DECFormat.pas line 1453 BreakPoint at:0045CC38 +Adding coverage:DECFormat.pas (DECFormat) 1454 +Clearing BreakPoint at 0045CC45 +De-Activate DECFormat.pas line 1454 BreakPoint at:0045CC45 +Adding coverage:DECFormat.pas (DECFormat) 1470 +Clearing BreakPoint at 0045CCB4 +De-Activate DECFormat.pas line 1470 BreakPoint at:0045CCB4 +Adding coverage:DECFormat.pas (DECFormat) 1471 +Clearing BreakPoint at 0045CCBA +De-Activate DECFormat.pas line 1471 BreakPoint at:0045CCBA +Adding coverage:DECFormat.pas (DECFormat) 1473 +Clearing BreakPoint at 0045CCD5 +De-Activate DECFormat.pas line 1473 BreakPoint at:0045CCD5 +Adding coverage:DECFormat.pas (DECFormat) 1475 +Clearing BreakPoint at 0045CCDB +De-Activate DECFormat.pas line 1475 BreakPoint at:0045CCDB +Adding coverage:DECFormat.pas (DECFormat) 1477 +Clearing BreakPoint at 0045CCE5 +De-Activate DECFormat.pas line 1477 BreakPoint at:0045CCE5 +Adding coverage:DECFormat.pas (DECFormat) 1484 +Clearing BreakPoint at 0045CD3C +De-Activate DECFormat.pas line 1484 BreakPoint at:0045CD3C +Adding coverage:DECFormat.pas (DECFormat) 1510 +Clearing BreakPoint at 0045CE1E +De-Activate DECFormat.pas line 1510 BreakPoint at:0045CE1E +Adding coverage:DECFormat.pas (DECFormat) 1520 +Clearing BreakPoint at 0045CE47 +De-Activate DECFormat.pas line 1520 BreakPoint at:0045CE47 +Adding coverage:DECFormat.pas (DECFormat) 1530 +Clearing BreakPoint at 0045CE70 +De-Activate DECFormat.pas line 1530 BreakPoint at:0045CE70 +Adding coverage:DECFormat.pas (DECFormat) 1531 +Clearing BreakPoint at 0045CE7A +De-Activate DECFormat.pas line 1531 BreakPoint at:0045CE7A +Adding coverage:DECFormat.pas (DECFormat) 1532 +Clearing BreakPoint at 0045CE7E +De-Activate DECFormat.pas line 1532 BreakPoint at:0045CE7E +Adding coverage:DECFormat.pas (DECFormat) 1535 +Clearing BreakPoint at 0045CE89 +De-Activate DECFormat.pas line 1535 BreakPoint at:0045CE89 +Adding coverage:DECFormat.pas (DECFormat) 1536 +Clearing BreakPoint at 0045CE94 +De-Activate DECFormat.pas line 1536 BreakPoint at:0045CE94 +Adding coverage:DECFormat.pas (DECFormat) 1475 +Clearing BreakPoint at 0045CE98 +De-Activate DECFormat.pas line 1475 BreakPoint at:0045CE98 +Adding coverage:DECFormat.pas (DECFormat) 1486 +Clearing BreakPoint at 0045CD50 +De-Activate DECFormat.pas line 1486 BreakPoint at:0045CD50 +Adding coverage:DECFormat.pas (DECFormat) 1496 +Clearing BreakPoint at 0045CDAE +De-Activate DECFormat.pas line 1496 BreakPoint at:0045CDAE +Adding coverage:DECFormat.pas (DECFormat) 1497 +Clearing BreakPoint at 0045CDB4 +De-Activate DECFormat.pas line 1497 BreakPoint at:0045CDB4 +Adding coverage:DECFormat.pas (DECFormat) 1498 +Clearing BreakPoint at 0045CDB8 +De-Activate DECFormat.pas line 1498 BreakPoint at:0045CDB8 +Adding coverage:DECFormat.pas (DECFormat) 1499 +Clearing BreakPoint at 0045CDBE +De-Activate DECFormat.pas line 1499 BreakPoint at:0045CDBE +Adding coverage:DECFormat.pas (DECFormat) 1500 +Clearing BreakPoint at 0045CDC2 +De-Activate DECFormat.pas line 1500 BreakPoint at:0045CDC2 +Adding coverage:DECFormat.pas (DECFormat) 1501 +Clearing BreakPoint at 0045CDE4 +De-Activate DECFormat.pas line 1501 BreakPoint at:0045CDE4 +Adding coverage:DECFormat.pas (DECFormat) 1502 +Clearing BreakPoint at 0045CDE8 +De-Activate DECFormat.pas line 1502 BreakPoint at:0045CDE8 +Adding coverage:DECFormat.pas (DECFormat) 1503 +Clearing BreakPoint at 0045CE0D +De-Activate DECFormat.pas line 1503 BreakPoint at:0045CE0D +Adding coverage:DECFormat.pas (DECFormat) 1504 +Clearing BreakPoint at 0045CE11 +De-Activate DECFormat.pas line 1504 BreakPoint at:0045CE11 +Adding coverage:DECFormat.pas (DECFormat) 1479 +Clearing BreakPoint at 0045CCEB +De-Activate DECFormat.pas line 1479 BreakPoint at:0045CCEB +Adding coverage:DECFormat.pas (DECFormat) 1480 +Clearing BreakPoint at 0045CCFD +De-Activate DECFormat.pas line 1480 BreakPoint at:0045CCFD +Adding coverage:DECFormat.pas (DECFormat) 1481 +Clearing BreakPoint at 0045CD2B +De-Activate DECFormat.pas line 1481 BreakPoint at:0045CD2B +Adding coverage:DECFormat.pas (DECFormat) 1482 +Clearing BreakPoint at 0045CD36 +De-Activate DECFormat.pas line 1482 BreakPoint at:0045CD36 +Adding coverage:DECFormat.pas (DECFormat) 1539 +Clearing BreakPoint at 0045CEA2 +De-Activate DECFormat.pas line 1539 BreakPoint at:0045CEA2 +Adding coverage:DECFormat.pas (DECFormat) 1540 +Clearing BreakPoint at 0045CEC8 +De-Activate DECFormat.pas line 1540 BreakPoint at:0045CEC8 +Adding coverage:DECFormat.pas (DECFormat) 1488 +Clearing BreakPoint at 0045CD60 +De-Activate DECFormat.pas line 1488 BreakPoint at:0045CD60 +Adding coverage:DECFormat.pas (DECFormat) 1489 +Clearing BreakPoint at 0045CD66 +De-Activate DECFormat.pas line 1489 BreakPoint at:0045CD66 +Adding coverage:DECFormat.pas (DECFormat) 1490 +Clearing BreakPoint at 0045CD6A +De-Activate DECFormat.pas line 1490 BreakPoint at:0045CD6A +Adding coverage:DECFormat.pas (DECFormat) 1491 +Clearing BreakPoint at 0045CD96 +De-Activate DECFormat.pas line 1491 BreakPoint at:0045CD96 +Adding coverage:DECFormat.pas (DECFormat) 1492 +Clearing BreakPoint at 0045CD9A +De-Activate DECFormat.pas line 1492 BreakPoint at:0045CD9A +Adding coverage:DECFormat.pas (DECFormat) 1512 +Clearing BreakPoint at 0045CE26 +De-Activate DECFormat.pas line 1512 BreakPoint at:0045CE26 +Adding coverage:DECFormat.pas (DECFormat) 1513 +Clearing BreakPoint at 0045CE2C +De-Activate DECFormat.pas line 1513 BreakPoint at:0045CE2C +Adding coverage:DECFormat.pas (DECFormat) 1514 +Clearing BreakPoint at 0045CE30 +De-Activate DECFormat.pas line 1514 BreakPoint at:0045CE30 +Adding coverage:DECFormat.pas (DECFormat) 1515 +Clearing BreakPoint at 0045CE36 +De-Activate DECFormat.pas line 1515 BreakPoint at:0045CE36 +Adding coverage:DECFormat.pas (DECFormat) 1516 +Clearing BreakPoint at 0045CE3A +De-Activate DECFormat.pas line 1516 BreakPoint at:0045CE3A +Adding coverage:DECFormat.pas (DECFormat) 1522 +Clearing BreakPoint at 0045CE4F +De-Activate DECFormat.pas line 1522 BreakPoint at:0045CE4F +Adding coverage:DECFormat.pas (DECFormat) 1523 +Clearing BreakPoint at 0045CE55 +De-Activate DECFormat.pas line 1523 BreakPoint at:0045CE55 +Adding coverage:DECFormat.pas (DECFormat) 1524 +Clearing BreakPoint at 0045CE59 +De-Activate DECFormat.pas line 1524 BreakPoint at:0045CE59 +Adding coverage:DECFormat.pas (DECFormat) 1525 +Clearing BreakPoint at 0045CE5F +De-Activate DECFormat.pas line 1525 BreakPoint at:0045CE5F +Adding coverage:DECFormat.pas (DECFormat) 1526 +Clearing BreakPoint at 0045CE63 +De-Activate DECFormat.pas line 1526 BreakPoint at:0045CE63 +Adding coverage:DECFormat.pas (DECFormat) 1612 +Clearing BreakPoint at 0045D080 +De-Activate DECFormat.pas line 1612 BreakPoint at:0045D080 +Adding coverage:DECFormat.pas (DECFormat) 1613 +Clearing BreakPoint at 0045D0AC +De-Activate DECFormat.pas line 1613 BreakPoint at:0045D0AC +Adding coverage:DECFormat.pas (DECFormat) 1615 +Clearing BreakPoint at 0045D0B6 +De-Activate DECFormat.pas line 1615 BreakPoint at:0045D0B6 +Adding coverage:DECFormat.pas (DECFormat) 1617 +Clearing BreakPoint at 0045D0D0 +De-Activate DECFormat.pas line 1617 BreakPoint at:0045D0D0 +Adding coverage:DECFormat.pas (DECFormat) 1618 +Clearing BreakPoint at 0045D0D9 +De-Activate DECFormat.pas line 1618 BreakPoint at:0045D0D9 +Adding coverage:DECFormat.pas (DECFormat) 1619 +Clearing BreakPoint at 0045D0DF +De-Activate DECFormat.pas line 1619 BreakPoint at:0045D0DF +Adding coverage:DECFormat.pas (DECFormat) 1621 +Clearing BreakPoint at 0045D0FA +De-Activate DECFormat.pas line 1621 BreakPoint at:0045D0FA +Adding coverage:DECFormat.pas (DECFormat) 1623 +Clearing BreakPoint at 0045D103 +De-Activate DECFormat.pas line 1623 BreakPoint at:0045D103 +Adding coverage:DECFormat.pas (DECFormat) 1626 +Clearing BreakPoint at 0045D10F +De-Activate DECFormat.pas line 1626 BreakPoint at:0045D10F +Adding coverage:DECFormat.pas (DECFormat) 1656 +Clearing BreakPoint at 0045D2B7 +De-Activate DECFormat.pas line 1656 BreakPoint at:0045D2B7 +Adding coverage:DECFormat.pas (DECFormat) 1657 +Clearing BreakPoint at 0045D2C1 +De-Activate DECFormat.pas line 1657 BreakPoint at:0045D2C1 +Adding coverage:DECFormat.pas (DECFormat) 1658 +Clearing BreakPoint at 0045D2C5 +De-Activate DECFormat.pas line 1658 BreakPoint at:0045D2C5 +Adding coverage:DECFormat.pas (DECFormat) 1623 +Clearing BreakPoint at 0045D2C9 +De-Activate DECFormat.pas line 1623 BreakPoint at:0045D2C9 +Adding coverage:DECFormat.pas (DECFormat) 1628 +Clearing BreakPoint at 0045D11B +De-Activate DECFormat.pas line 1628 BreakPoint at:0045D11B +Adding coverage:DECFormat.pas (DECFormat) 1629 +Clearing BreakPoint at 0045D11F +De-Activate DECFormat.pas line 1629 BreakPoint at:0045D11F +Adding coverage:DECFormat.pas (DECFormat) 1631 +Clearing BreakPoint at 0045D12B +De-Activate DECFormat.pas line 1631 BreakPoint at:0045D12B +Adding coverage:DECFormat.pas (DECFormat) 1633 +Clearing BreakPoint at 0045D140 +De-Activate DECFormat.pas line 1633 BreakPoint at:0045D140 +Adding coverage:DECFormat.pas (DECFormat) 1635 +Clearing BreakPoint at 0045D17C +De-Activate DECFormat.pas line 1635 BreakPoint at:0045D17C +Adding coverage:DECFormat.pas (DECFormat) 1636 +Clearing BreakPoint at 0045D180 +De-Activate DECFormat.pas line 1636 BreakPoint at:0045D180 +Adding coverage:DECFormat.pas (DECFormat) 1637 +Clearing BreakPoint at 0045D19F +De-Activate DECFormat.pas line 1637 BreakPoint at:0045D19F +Adding coverage:DECFormat.pas (DECFormat) 1639 +Clearing BreakPoint at 0045D1D6 +De-Activate DECFormat.pas line 1639 BreakPoint at:0045D1D6 +Adding coverage:DECFormat.pas (DECFormat) 1640 +Clearing BreakPoint at 0045D1ED +De-Activate DECFormat.pas line 1640 BreakPoint at:0045D1ED +Adding coverage:DECFormat.pas (DECFormat) 1641 +Clearing BreakPoint at 0045D1F1 +De-Activate DECFormat.pas line 1641 BreakPoint at:0045D1F1 +Adding coverage:DECFormat.pas (DECFormat) 1642 +Clearing BreakPoint at 0045D210 +De-Activate DECFormat.pas line 1642 BreakPoint at:0045D210 +Adding coverage:DECFormat.pas (DECFormat) 1644 +Clearing BreakPoint at 0045D247 +De-Activate DECFormat.pas line 1644 BreakPoint at:0045D247 +Adding coverage:DECFormat.pas (DECFormat) 1661 +Clearing BreakPoint at 0045D2D5 +De-Activate DECFormat.pas line 1661 BreakPoint at:0045D2D5 +Adding coverage:DECFormat.pas (DECFormat) 1662 +Clearing BreakPoint at 0045D2FB +De-Activate DECFormat.pas line 1662 BreakPoint at:0045D2FB +Adding coverage:DECFormat.pas (DECFormat) 1648 +Clearing BreakPoint at 0045D263 +De-Activate DECFormat.pas line 1648 BreakPoint at:0045D263 +Adding coverage:DECFormat.pas (DECFormat) 1649 +Clearing BreakPoint at 0045D285 +De-Activate DECFormat.pas line 1649 BreakPoint at:0045D285 +Adding coverage:DECFormat.pas (DECFormat) 1650 +Clearing BreakPoint at 0045D28B +De-Activate DECFormat.pas line 1650 BreakPoint at:0045D28B +Adding coverage:DECFormat.pas (DECFormat) 1652 +Clearing BreakPoint at 0045D2AB +De-Activate DECFormat.pas line 1652 BreakPoint at:0045D2AB +Adding coverage:DECFormat.pas (DECFormat) 1546 +Clearing BreakPoint at 0045CEF4 +De-Activate DECFormat.pas line 1546 BreakPoint at:0045CEF4 +Adding coverage:DECFormat.pas (DECFormat) 1547 +Clearing BreakPoint at 0045CF17 +De-Activate DECFormat.pas line 1547 BreakPoint at:0045CF17 +Adding coverage:DECFormat.pas (DECFormat) 1548 +Clearing BreakPoint at 0045CF1B +De-Activate DECFormat.pas line 1548 BreakPoint at:0045CF1B +Adding coverage:DECFormat.pas (DECFormat) 1549 +Clearing BreakPoint at 0045CF24 +De-Activate DECFormat.pas line 1549 BreakPoint at:0045CF24 +Adding coverage:DECFormat.pas (DECFormat) 1551 +Clearing BreakPoint at 0045CF2A +De-Activate DECFormat.pas line 1551 BreakPoint at:0045CF2A +Adding coverage:DECFormat.pas (DECFormat) 1602 +Clearing BreakPoint at 0045D04C +De-Activate DECFormat.pas line 1602 BreakPoint at:0045D04C +Adding coverage:DECFormat.pas (DECFormat) 1603 +Clearing BreakPoint at 0045D050 +De-Activate DECFormat.pas line 1603 BreakPoint at:0045D050 +Adding coverage:DECFormat.pas (DECFormat) 1553 +Clearing BreakPoint at 0045CF34 +De-Activate DECFormat.pas line 1553 BreakPoint at:0045CF34 +Adding coverage:DECFormat.pas (DECFormat) 1557 +Clearing BreakPoint at 0045CF4C +De-Activate DECFormat.pas line 1557 BreakPoint at:0045CF4C +Adding coverage:DECFormat.pas (DECFormat) 1597 +Clearing BreakPoint at 0045D033 +De-Activate DECFormat.pas line 1597 BreakPoint at:0045D033 +Adding coverage:DECFormat.pas (DECFormat) 1598 +Clearing BreakPoint at 0045D03E +De-Activate DECFormat.pas line 1598 BreakPoint at:0045D03E +Adding coverage:DECFormat.pas (DECFormat) 1551 +Clearing BreakPoint at 0045D042 +De-Activate DECFormat.pas line 1551 BreakPoint at:0045D042 +Adding coverage:DECFormat.pas (DECFormat) 1559 +Clearing BreakPoint at 0045CF58 +De-Activate DECFormat.pas line 1559 BreakPoint at:0045CF58 +Adding coverage:DECFormat.pas (DECFormat) 1560 +Clearing BreakPoint at 0045CF63 +De-Activate DECFormat.pas line 1560 BreakPoint at:0045CF63 +Adding coverage:DECFormat.pas (DECFormat) 1563 +Clearing BreakPoint at 0045CF67 +De-Activate DECFormat.pas line 1563 BreakPoint at:0045CF67 +Adding coverage:DECFormat.pas (DECFormat) 1567 +Clearing BreakPoint at 0045CF71 +De-Activate DECFormat.pas line 1567 BreakPoint at:0045CF71 +Adding coverage:DECFormat.pas (DECFormat) 1569 +Clearing BreakPoint at 0045CF82 +De-Activate DECFormat.pas line 1569 BreakPoint at:0045CF82 +Adding coverage:DECFormat.pas (DECFormat) 1570 +Clearing BreakPoint at 0045CF86 +De-Activate DECFormat.pas line 1570 BreakPoint at:0045CF86 +Adding coverage:DECFormat.pas (DECFormat) 1573 +Clearing BreakPoint at 0045CF91 +De-Activate DECFormat.pas line 1573 BreakPoint at:0045CF91 +Adding coverage:DECFormat.pas (DECFormat) 1576 +Clearing BreakPoint at 0045CFBF +De-Activate DECFormat.pas line 1576 BreakPoint at:0045CFBF +Adding coverage:DECFormat.pas (DECFormat) 1577 +Clearing BreakPoint at 0045CFC3 +De-Activate DECFormat.pas line 1577 BreakPoint at:0045CFC3 +Adding coverage:DECFormat.pas (DECFormat) 1579 +Clearing BreakPoint at 0045CFCE +De-Activate DECFormat.pas line 1579 BreakPoint at:0045CFCE +Adding coverage:DECFormat.pas (DECFormat) 1582 +Clearing BreakPoint at 0045CFEE +De-Activate DECFormat.pas line 1582 BreakPoint at:0045CFEE +Adding coverage:DECFormat.pas (DECFormat) 1583 +Clearing BreakPoint at 0045CFF2 +De-Activate DECFormat.pas line 1583 BreakPoint at:0045CFF2 +Adding coverage:DECFormat.pas (DECFormat) 1588 +Clearing BreakPoint at 0045CFFF +De-Activate DECFormat.pas line 1588 BreakPoint at:0045CFFF +Adding coverage:DECFormat.pas (DECFormat) 1591 +Clearing BreakPoint at 0045D022 +De-Activate DECFormat.pas line 1591 BreakPoint at:0045D022 +Adding coverage:DECFormat.pas (DECFormat) 1592 +Clearing BreakPoint at 0045D02D +De-Activate DECFormat.pas line 1592 BreakPoint at:0045D02D +Adding coverage:DECFormat.pas (DECFormat) 1638 +Clearing BreakPoint at 0045D1A5 +De-Activate DECFormat.pas line 1638 BreakPoint at:0045D1A5 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045D1D6 +Exact line:DECFormat line 1639 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DBAA +After line:TestDECFormat line 1873 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DDF0 +Exact line:TestDECFormat line 1912 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1643 +Clearing BreakPoint at 0045D216 +De-Activate DECFormat.pas line 1643 BreakPoint at:0045D216 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045D247 +Exact line:DECFormat line 1644 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DC16 +After line:TestDECFormat line 1878 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DE09 +Exact line:TestDECFormat line 1913 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECFormat.pas (DECFormat) 1634 +Clearing BreakPoint at 0045D14B +De-Activate DECFormat.pas line 1634 BreakPoint at:0045D14B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0045D17C +Exact line:DECFormat line 1635 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00457668 +Exact line:DECFormatBase line 512 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DC86 +After line:TestDECFormat line 1883 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0046DE22 +Exact line:TestDECFormat line 1914 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Create thread:12468 +Adding coverage:DECFormat.pas (DECFormat) 1674 +Clearing BreakPoint at 0045D35C +De-Activate DECFormat.pas line 1674 BreakPoint at:0045D35C +Adding coverage:DECFormat.pas (DECFormat) 1675 +Clearing BreakPoint at 0045D36B +De-Activate DECFormat.pas line 1675 BreakPoint at:0045D36B +Adding coverage:DECFormat.pas (DECFormat) 1689 +Clearing BreakPoint at 0045D3A4 +De-Activate DECFormat.pas line 1689 BreakPoint at:0045D3A4 +Adding coverage:DECFormat.pas (DECFormat) 1690 +Clearing BreakPoint at 0045D3B3 +De-Activate DECFormat.pas line 1690 BreakPoint at:0045D3B3 +Adding coverage:DECFormat.pas (DECFormat) 1692 +Clearing BreakPoint at 0045D3C7 +De-Activate DECFormat.pas line 1692 BreakPoint at:0045D3C7 +Adding coverage:DECFormat.pas (DECFormat) 1694 +Clearing BreakPoint at 0045D3E1 +De-Activate DECFormat.pas line 1694 BreakPoint at:0045D3E1 +Adding coverage:DECFormat.pas (DECFormat) 1696 +Clearing BreakPoint at 0045D3E7 +De-Activate DECFormat.pas line 1696 BreakPoint at:0045D3E7 +Adding coverage:DECFormat.pas (DECFormat) 1698 +Clearing BreakPoint at 0045D409 +De-Activate DECFormat.pas line 1698 BreakPoint at:0045D409 +Adding coverage:DECFormat.pas (DECFormat) 1699 +Clearing BreakPoint at 0045D43E +De-Activate DECFormat.pas line 1699 BreakPoint at:0045D43E +Adding coverage:DECFormat.pas (DECFormat) 1701 +Clearing BreakPoint at 0045D410 +De-Activate DECFormat.pas line 1701 BreakPoint at:0045D410 +Adding coverage:DECFormat.pas (DECFormat) 1702 +Clearing BreakPoint at 0045D433 +De-Activate DECFormat.pas line 1702 BreakPoint at:0045D433 +Adding coverage:DECFormat.pas (DECFormat) 1705 +Clearing BreakPoint at 0045D45F +De-Activate DECFormat.pas line 1705 BreakPoint at:0045D45F +Adding coverage:DECFormat.pas (DECFormat) 1676 +Clearing BreakPoint at 0045D37D +De-Activate DECFormat.pas line 1676 BreakPoint at:0045D37D +Adding coverage:DECFormat.pas (DECFormat) 1668 +Clearing BreakPoint at 0045D334 +De-Activate DECFormat.pas line 1668 BreakPoint at:0045D334 +Adding coverage:DECFormat.pas (DECFormat) 1669 +Clearing BreakPoint at 0045D343 +De-Activate DECFormat.pas line 1669 BreakPoint at:0045D343 +Adding coverage:DECFormat.pas (DECFormat) 1670 +Clearing BreakPoint at 0045D355 +De-Activate DECFormat.pas line 1670 BreakPoint at:0045D355 +Adding coverage:DECFormat.pas (DECFormat) 1680 +Clearing BreakPoint at 0045D384 +De-Activate DECFormat.pas line 1680 BreakPoint at:0045D384 +Adding coverage:DECFormat.pas (DECFormat) 1682 +Clearing BreakPoint at 0045D393 +De-Activate DECFormat.pas line 1682 BreakPoint at:0045D393 +Adding coverage:DECFormat.pas (DECFormat) 1683 +Clearing BreakPoint at 0045D39D +De-Activate DECFormat.pas line 1683 BreakPoint at:0045D39D +Adding coverage:DECFormat.pas (DECFormat) 1719 +Clearing BreakPoint at 0045D490 +De-Activate DECFormat.pas line 1719 BreakPoint at:0045D490 +Adding coverage:DECFormat.pas (DECFormat) 1720 +Clearing BreakPoint at 0045D49F +De-Activate DECFormat.pas line 1720 BreakPoint at:0045D49F +Adding coverage:DECFormat.pas (DECFormat) 1735 +Clearing BreakPoint at 0045D4E4 +De-Activate DECFormat.pas line 1735 BreakPoint at:0045D4E4 +Adding coverage:DECFormat.pas (DECFormat) 1736 +Clearing BreakPoint at 0045D4F3 +De-Activate DECFormat.pas line 1736 BreakPoint at:0045D4F3 +Adding coverage:DECFormat.pas (DECFormat) 1738 +Clearing BreakPoint at 0045D514 +De-Activate DECFormat.pas line 1738 BreakPoint at:0045D514 +Adding coverage:DECFormat.pas (DECFormat) 1740 +Clearing BreakPoint at 0045D52E +De-Activate DECFormat.pas line 1740 BreakPoint at:0045D52E +Adding coverage:DECFormat.pas (DECFormat) 1742 +Clearing BreakPoint at 0045D538 +De-Activate DECFormat.pas line 1742 BreakPoint at:0045D538 +Adding coverage:DECFormat.pas (DECFormat) 1744 +Clearing BreakPoint at 0045D55A +De-Activate DECFormat.pas line 1744 BreakPoint at:0045D55A +Adding coverage:DECFormat.pas (DECFormat) 1745 +Clearing BreakPoint at 0045D5C2 +De-Activate DECFormat.pas line 1745 BreakPoint at:0045D5C2 +Adding coverage:DECFormat.pas (DECFormat) 1747 +Clearing BreakPoint at 0045D561 +De-Activate DECFormat.pas line 1747 BreakPoint at:0045D561 +Adding coverage:DECFormat.pas (DECFormat) 1748 +Clearing BreakPoint at 0045D587 +De-Activate DECFormat.pas line 1748 BreakPoint at:0045D587 +Adding coverage:DECFormat.pas (DECFormat) 1749 +Clearing BreakPoint at 0045D592 +De-Activate DECFormat.pas line 1749 BreakPoint at:0045D592 +Adding coverage:DECFormat.pas (DECFormat) 1750 +Clearing BreakPoint at 0045D5B7 +De-Activate DECFormat.pas line 1750 BreakPoint at:0045D5B7 +Adding coverage:DECFormat.pas (DECFormat) 1753 +Clearing BreakPoint at 0045D5E7 +De-Activate DECFormat.pas line 1753 BreakPoint at:0045D5E7 +Adding coverage:DECFormat.pas (DECFormat) 1721 +Clearing BreakPoint at 0045D4B1 +De-Activate DECFormat.pas line 1721 BreakPoint at:0045D4B1 +Adding coverage:DECFormat.pas (DECFormat) 1712 +Clearing BreakPoint at 0045D468 +De-Activate DECFormat.pas line 1712 BreakPoint at:0045D468 +Adding coverage:DECFormat.pas (DECFormat) 1713 +Clearing BreakPoint at 0045D477 +De-Activate DECFormat.pas line 1713 BreakPoint at:0045D477 +Adding coverage:DECFormat.pas (DECFormat) 1714 +Clearing BreakPoint at 0045D489 +De-Activate DECFormat.pas line 1714 BreakPoint at:0045D489 +Adding coverage:DECFormat.pas (DECFormat) 1725 +Clearing BreakPoint at 0045D4B8 +De-Activate DECFormat.pas line 1725 BreakPoint at:0045D4B8 +Adding coverage:DECFormat.pas (DECFormat) 1726 +Clearing BreakPoint at 0045D4C7 +De-Activate DECFormat.pas line 1726 BreakPoint at:0045D4C7 +Adding coverage:DECFormat.pas (DECFormat) 1727 +Clearing BreakPoint at 0045D4DC +De-Activate DECFormat.pas line 1727 BreakPoint at:0045D4DC +Adding coverage:DECFormat.pas (DECFormat) 1765 +Clearing BreakPoint at 0045D618 +De-Activate DECFormat.pas line 1765 BreakPoint at:0045D618 +Adding coverage:DECFormat.pas (DECFormat) 1766 +Clearing BreakPoint at 0045D627 +De-Activate DECFormat.pas line 1766 BreakPoint at:0045D627 +Adding coverage:DECFormat.pas (DECFormat) 1780 +Clearing BreakPoint at 0045D66C +De-Activate DECFormat.pas line 1780 BreakPoint at:0045D66C +Adding coverage:DECFormat.pas (DECFormat) 1781 +Clearing BreakPoint at 0045D67B +De-Activate DECFormat.pas line 1781 BreakPoint at:0045D67B +Adding coverage:DECFormat.pas (DECFormat) 1783 +Clearing BreakPoint at 0045D69C +De-Activate DECFormat.pas line 1783 BreakPoint at:0045D69C +Adding coverage:DECFormat.pas (DECFormat) 1785 +Clearing BreakPoint at 0045D6B6 +De-Activate DECFormat.pas line 1785 BreakPoint at:0045D6B6 +Adding coverage:DECFormat.pas (DECFormat) 1787 +Clearing BreakPoint at 0045D6C0 +De-Activate DECFormat.pas line 1787 BreakPoint at:0045D6C0 +Adding coverage:DECFormat.pas (DECFormat) 1789 +Clearing BreakPoint at 0045D6E2 +De-Activate DECFormat.pas line 1789 BreakPoint at:0045D6E2 +Adding coverage:DECFormat.pas (DECFormat) 1790 +Clearing BreakPoint at 0045D750 +De-Activate DECFormat.pas line 1790 BreakPoint at:0045D750 +Adding coverage:DECFormat.pas (DECFormat) 1792 +Clearing BreakPoint at 0045D6E9 +De-Activate DECFormat.pas line 1792 BreakPoint at:0045D6E9 +Adding coverage:DECFormat.pas (DECFormat) 1793 +Clearing BreakPoint at 0045D70F +De-Activate DECFormat.pas line 1793 BreakPoint at:0045D70F +Adding coverage:DECFormat.pas (DECFormat) 1794 +Clearing BreakPoint at 0045D720 +De-Activate DECFormat.pas line 1794 BreakPoint at:0045D720 +Adding coverage:DECFormat.pas (DECFormat) 1795 +Clearing BreakPoint at 0045D745 +De-Activate DECFormat.pas line 1795 BreakPoint at:0045D745 +Adding coverage:DECFormat.pas (DECFormat) 1798 +Clearing BreakPoint at 0045D775 +De-Activate DECFormat.pas line 1798 BreakPoint at:0045D775 +Adding coverage:DECFormat.pas (DECFormat) 1767 +Clearing BreakPoint at 0045D639 +De-Activate DECFormat.pas line 1767 BreakPoint at:0045D639 +Adding coverage:DECFormat.pas (DECFormat) 1759 +Clearing BreakPoint at 0045D5F0 +De-Activate DECFormat.pas line 1759 BreakPoint at:0045D5F0 +Adding coverage:DECFormat.pas (DECFormat) 1760 +Clearing BreakPoint at 0045D5FF +De-Activate DECFormat.pas line 1760 BreakPoint at:0045D5FF +Adding coverage:DECFormat.pas (DECFormat) 1761 +Clearing BreakPoint at 0045D611 +De-Activate DECFormat.pas line 1761 BreakPoint at:0045D611 +Adding coverage:DECFormat.pas (DECFormat) 1771 +Clearing BreakPoint at 0045D640 +De-Activate DECFormat.pas line 1771 BreakPoint at:0045D640 +Adding coverage:DECFormat.pas (DECFormat) 1772 +Clearing BreakPoint at 0045D64F +De-Activate DECFormat.pas line 1772 BreakPoint at:0045D64F +Adding coverage:DECFormat.pas (DECFormat) 1773 +Clearing BreakPoint at 0045D664 +De-Activate DECFormat.pas line 1773 BreakPoint at:0045D664 +Adding coverage:DECHashBase.pas (DECHashBase) 438 +Clearing BreakPoint at 00475550 +De-Activate DECHashBase.pas line 438 BreakPoint at:00475550 +Adding coverage:DECHashBase.pas (DECHashBase) 439 +Clearing BreakPoint at 00475561 +De-Activate DECHashBase.pas line 439 BreakPoint at:00475561 +Adding coverage:DECHashBase.pas (DECHashBase) 446 +Clearing BreakPoint at 0047559C +De-Activate DECHashBase.pas line 446 BreakPoint at:0047559C +Adding coverage:DECHashBase.pas (DECHashBase) 447 +Clearing BreakPoint at 004755A3 +De-Activate DECHashBase.pas line 447 BreakPoint at:004755A3 +Adding coverage:DECHashBase.pas (DECHashBase) 448 +Clearing BreakPoint at 004755BC +De-Activate DECHashBase.pas line 448 BreakPoint at:004755BC +Adding coverage:DECHashBase.pas (DECHashBase) 449 +Clearing BreakPoint at 004755C5 +De-Activate DECHashBase.pas line 449 BreakPoint at:004755C5 +Adding coverage:DECHashBase.pas (DECHashBase) 450 +Clearing BreakPoint at 004755DF +De-Activate DECHashBase.pas line 450 BreakPoint at:004755DF +Adding coverage:DECHashBase.pas (DECHashBase) 440 +Clearing BreakPoint at 00475569 +De-Activate DECHashBase.pas line 440 BreakPoint at:00475569 +Adding coverage:DECHashBase.pas (DECHashBase) 442 +Clearing BreakPoint at 0047557A +De-Activate DECHashBase.pas line 442 BreakPoint at:0047557A +Adding coverage:DECHashBase.pas (DECHashBase) 443 +Clearing BreakPoint at 00475588 +De-Activate DECHashBase.pas line 443 BreakPoint at:00475588 +Adding coverage:DECHashBase.pas (DECHashBase) 659 +Clearing BreakPoint at 00475B6C +De-Activate DECHashBase.pas line 659 BreakPoint at:00475B6C +Adding coverage:DECHashBase.pas (DECHashBase) 662 +Clearing BreakPoint at 00475B88 +De-Activate DECHashBase.pas line 662 BreakPoint at:00475B88 +Adding coverage:DECTypes.pas (DECTypes) 193 +Clearing BreakPoint at 0044DDE4 +De-Activate DECTypes.pas line 193 BreakPoint at:0044DDE4 +Adding coverage:DECTypes.pas (DECTypes) 194 +Clearing BreakPoint at 0044DE15 +De-Activate DECTypes.pas line 194 BreakPoint at:0044DE15 +Adding coverage:DECTypes.pas (DECTypes) 195 +Clearing BreakPoint at 0044DE34 +De-Activate DECTypes.pas line 195 BreakPoint at:0044DE34 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475BA7 +Exact line:DECHashBase line 663 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEA8C +After line:TestDECHash line 6087 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEC8B +Exact line:TestDECHash line 6116 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHashBase.pas (DECHashBase) 652 +Clearing BreakPoint at 00475B08 +De-Activate DECHashBase.pas line 652 BreakPoint at:00475B08 +Adding coverage:DECHashBase.pas (DECHashBase) 655 +Clearing BreakPoint at 00475B24 +De-Activate DECHashBase.pas line 655 BreakPoint at:00475B24 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475B43 +Exact line:DECHashBase line 656 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEB70 +After line:TestDECHash line 6096 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BED27 +Exact line:TestDECHash line 6122 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5540 +Clearing BreakPoint at 00493060 +De-Activate DECHash.pas line 5540 BreakPoint at:00493060 +Adding coverage:DECHash.pas (DECHash) 5541 +Clearing BreakPoint at 00493078 +De-Activate DECHash.pas line 5541 BreakPoint at:00493078 +Adding coverage:DECHash.pas (DECHash) 5543 +Clearing BreakPoint at 00493082 +De-Activate DECHash.pas line 5543 BreakPoint at:00493082 +Adding coverage:DECHash.pas (DECHash) 5545 +Clearing BreakPoint at 0049308C +De-Activate DECHash.pas line 5545 BreakPoint at:0049308C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1519 +Clearing BreakPoint at 0047A7FC +De-Activate DECHashAuthentication.pas line 1519 BreakPoint at:0047A7FC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1520 +Clearing BreakPoint at 0047A808 +De-Activate DECHashAuthentication.pas line 1520 BreakPoint at:0047A808 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1521 +Clearing BreakPoint at 0047A81C +De-Activate DECHashAuthentication.pas line 1521 BreakPoint at:0047A81C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1524 +Clearing BreakPoint at 0047A820 +De-Activate DECHashAuthentication.pas line 1524 BreakPoint at:0047A820 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1525 +Clearing BreakPoint at 0047A842 +De-Activate DECHashAuthentication.pas line 1525 BreakPoint at:0047A842 +Adding coverage:DECHash.pas (DECHash) 5594 +Clearing BreakPoint at 004931BC +De-Activate DECHash.pas line 5594 BreakPoint at:004931BC +Adding coverage:DECHash.pas (DECHash) 5595 +Clearing BreakPoint at 004931C5 +De-Activate DECHash.pas line 5595 BreakPoint at:004931C5 +Adding coverage:DECHash.pas (DECHash) 5596 +Clearing BreakPoint at 004931C9 +De-Activate DECHash.pas line 5596 BreakPoint at:004931C9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1528 +Clearing BreakPoint at 0047A8A6 +De-Activate DECHashAuthentication.pas line 1528 BreakPoint at:0047A8A6 +Adding coverage:DECHash.pas (DECHash) 5604 +Clearing BreakPoint at 004931E4 +De-Activate DECHash.pas line 5604 BreakPoint at:004931E4 +Adding coverage:DECHash.pas (DECHash) 5605 +Clearing BreakPoint at 004931ED +De-Activate DECHash.pas line 5605 BreakPoint at:004931ED +Adding coverage:DECHash.pas (DECHash) 5606 +Clearing BreakPoint at 004931F1 +De-Activate DECHash.pas line 5606 BreakPoint at:004931F1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1531 +Clearing BreakPoint at 0047A90A +De-Activate DECHashAuthentication.pas line 1531 BreakPoint at:0047A90A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1532 +Clearing BreakPoint at 0047A91E +De-Activate DECHashAuthentication.pas line 1532 BreakPoint at:0047A91E +Adding coverage:DECHash.pas (DECHash) 5548 +Clearing BreakPoint at 004930AC +De-Activate DECHash.pas line 5548 BreakPoint at:004930AC +Adding coverage:DECHash.pas (DECHash) 5549 +Clearing BreakPoint at 004930B5 +De-Activate DECHash.pas line 5549 BreakPoint at:004930B5 +Adding coverage:DECHash.pas (DECHash) 5550 +Clearing BreakPoint at 004930BE +De-Activate DECHash.pas line 5550 BreakPoint at:004930BE +Adding coverage:DECHash.pas (DECHash) 5553 +Clearing BreakPoint at 004930C8 +De-Activate DECHash.pas line 5553 BreakPoint at:004930C8 +Adding coverage:DECHash.pas (DECHash) 5556 +Clearing BreakPoint at 004930D1 +De-Activate DECHash.pas line 5556 BreakPoint at:004930D1 +Adding coverage:DECHash.pas (DECHash) 5557 +Clearing BreakPoint at 004930D8 +De-Activate DECHash.pas line 5557 BreakPoint at:004930D8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1526 +Clearing BreakPoint at 0047A86B +De-Activate DECHashAuthentication.pas line 1526 BreakPoint at:0047A86B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047A8A6 +Exact line:DECHashAuthentication line 1528 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4FAF +Exact line:TestDECHash line 6709 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C55B6 +Exact line:TestDECHash line 6779 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1529 +Clearing BreakPoint at 0047A8CF +De-Activate DECHashAuthentication.pas line 1529 BreakPoint at:0047A8CF +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047A90A +Exact line:DECHashAuthentication line 1531 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C5033 +Exact line:TestDECHash line 6718 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C567E +Exact line:TestDECHash line 6792 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1560 +Clearing BreakPoint at 0047AA3C +De-Activate DECHashAuthentication.pas line 1560 BreakPoint at:0047AA3C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1561 +Clearing BreakPoint at 0047AA69 +De-Activate DECHashAuthentication.pas line 1561 BreakPoint at:0047AA69 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1562 +Clearing BreakPoint at 0047AA7C +De-Activate DECHashAuthentication.pas line 1562 BreakPoint at:0047AA7C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1563 +Clearing BreakPoint at 0047AA94 +De-Activate DECHashAuthentication.pas line 1563 BreakPoint at:0047AA94 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1565 +Clearing BreakPoint at 0047AAA4 +De-Activate DECHashAuthentication.pas line 1565 BreakPoint at:0047AAA4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1565 +Clearing BreakPoint at 0047AB13 +De-Activate DECHashAuthentication.pas line 1565 BreakPoint at:0047AB13 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1567 +Clearing BreakPoint at 0047AAD3 +De-Activate DECHashAuthentication.pas line 1567 BreakPoint at:0047AAD3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 952 +Clearing BreakPoint at 00477364 +De-Activate DECHashAuthentication.pas line 952 BreakPoint at:00477364 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 953 +Clearing BreakPoint at 0047736D +De-Activate DECHashAuthentication.pas line 953 BreakPoint at:0047736D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 954 +Clearing BreakPoint at 0047737E +De-Activate DECHashAuthentication.pas line 954 BreakPoint at:0047737E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1568 +Clearing BreakPoint at 0047AADD +De-Activate DECHashAuthentication.pas line 1568 BreakPoint at:0047AADD +Adding coverage:DECHash.pas (DECHash) 5428 +Clearing BreakPoint at 00492CAC +De-Activate DECHash.pas line 5428 BreakPoint at:00492CAC +Adding coverage:DECHash.pas (DECHash) 5429 +Clearing BreakPoint at 00492CB8 +De-Activate DECHash.pas line 5429 BreakPoint at:00492CB8 +Adding coverage:DECHash.pas (DECHash) 5430 +Clearing BreakPoint at 00492CC5 +De-Activate DECHash.pas line 5430 BreakPoint at:00492CC5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1567 +Clearing BreakPoint at 0047AAE6 +De-Activate DECHashAuthentication.pas line 1567 BreakPoint at:0047AAE6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1570 +Clearing BreakPoint at 0047AB06 +De-Activate DECHashAuthentication.pas line 1570 BreakPoint at:0047AB06 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1571 +Clearing BreakPoint at 0047AB0C +De-Activate DECHashAuthentication.pas line 1571 BreakPoint at:0047AB0C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1573 +Clearing BreakPoint at 0047AB2C +De-Activate DECHashAuthentication.pas line 1573 BreakPoint at:0047AB2C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1578 +Clearing BreakPoint at 0047AB71 +De-Activate DECHashAuthentication.pas line 1578 BreakPoint at:0047AB71 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1576 +Clearing BreakPoint at 0047AB4B +De-Activate DECHashAuthentication.pas line 1576 BreakPoint at:0047AB4B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047AB71 +Exact line:DECHashAuthentication line 1578 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4F2E +Exact line:TestDECHash line 6700 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C50C0 +Exact line:TestDECHash line 6737 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHashBase.pas (DECHashBase) 411 +Clearing BreakPoint at 004753C8 +De-Activate DECHashBase.pas line 411 BreakPoint at:004753C8 +Adding coverage:DECHashBase.pas (DECHashBase) 412 +Clearing BreakPoint at 004753D1 +De-Activate DECHashBase.pas line 412 BreakPoint at:004753D1 +Adding coverage:DECHashBase.pas (DECHashBase) 415 +Clearing BreakPoint at 004753DF +De-Activate DECHashBase.pas line 415 BreakPoint at:004753DF +Adding coverage:DECHashBase.pas (DECHashBase) 417 +Clearing BreakPoint at 004753E7 +De-Activate DECHashBase.pas line 417 BreakPoint at:004753E7 +Adding coverage:DECHashBase.pas (DECHashBase) 419 +Clearing BreakPoint at 00475403 +De-Activate DECHashBase.pas line 419 BreakPoint at:00475403 +Adding coverage:DECHashBase.pas (DECHashBase) 413 +Clearing BreakPoint at 004753D7 +De-Activate DECHashBase.pas line 413 BreakPoint at:004753D7 +Adding coverage:DECHash.pas (DECHash) 1562 +Clearing BreakPoint at 0047F3B0 +De-Activate DECHash.pas line 1562 BreakPoint at:0047F3B0 +Adding coverage:DECHash.pas (DECHash) 1563 +Clearing BreakPoint at 0047F3B9 +De-Activate DECHash.pas line 1563 BreakPoint at:0047F3B9 +Adding coverage:DECHash.pas (DECHash) 1564 +Clearing BreakPoint at 0047F3C0 +De-Activate DECHash.pas line 1564 BreakPoint at:0047F3C0 +Adding coverage:DECHash.pas (DECHash) 1557 +Clearing BreakPoint at 0047F394 +De-Activate DECHash.pas line 1557 BreakPoint at:0047F394 +Adding coverage:DECHash.pas (DECHash) 1558 +Clearing BreakPoint at 0047F39D +De-Activate DECHash.pas line 1558 BreakPoint at:0047F39D +Adding coverage:DECHash.pas (DECHash) 1559 +Clearing BreakPoint at 0047F3A6 +De-Activate DECHash.pas line 1559 BreakPoint at:0047F3A6 +Adding coverage:DECHash.pas (DECHash) 1567 +Clearing BreakPoint at 0047F3C8 +De-Activate DECHash.pas line 1567 BreakPoint at:0047F3C8 +Adding coverage:DECHash.pas (DECHash) 1568 +Clearing BreakPoint at 0047F3D1 +De-Activate DECHash.pas line 1568 BreakPoint at:0047F3D1 +Adding coverage:DECHash.pas (DECHash) 1569 +Clearing BreakPoint at 0047F3D8 +De-Activate DECHash.pas line 1569 BreakPoint at:0047F3D8 +Adding coverage:DECHashBase.pas (DECHashBase) 753 +Clearing BreakPoint at 00475FB0 +De-Activate DECHashBase.pas line 753 BreakPoint at:00475FB0 +Adding coverage:DECHashBase.pas (DECHashBase) 754 +Clearing BreakPoint at 00475FBC +De-Activate DECHashBase.pas line 754 BreakPoint at:00475FBC +Adding coverage:DECHashBase.pas (DECHashBase) 755 +Clearing BreakPoint at 00475FCC +De-Activate DECHashBase.pas line 755 BreakPoint at:00475FCC +Adding coverage:DECHashBase.pas (DECHashBase) 585 +Clearing BreakPoint at 00475810 +De-Activate DECHashBase.pas line 585 BreakPoint at:00475810 +Adding coverage:DECHashBase.pas (DECHashBase) 586 +Clearing BreakPoint at 0047581C +De-Activate DECHashBase.pas line 586 BreakPoint at:0047581C +Adding coverage:DECHashBase.pas (DECHashBase) 587 +Clearing BreakPoint at 00475825 +De-Activate DECHashBase.pas line 587 BreakPoint at:00475825 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1337 +Clearing BreakPoint at 00479E6C +De-Activate DECHashAuthentication.pas line 1337 BreakPoint at:00479E6C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1338 +Clearing BreakPoint at 00479E92 +De-Activate DECHashAuthentication.pas line 1338 BreakPoint at:00479E92 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1340 +Clearing BreakPoint at 00479EAC +De-Activate DECHashAuthentication.pas line 1340 BreakPoint at:00479EAC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1341 +Clearing BreakPoint at 00479EBA +De-Activate DECHashAuthentication.pas line 1341 BreakPoint at:00479EBA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1342 +Clearing BreakPoint at 00479EC8 +De-Activate DECHashAuthentication.pas line 1342 BreakPoint at:00479EC8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1343 +Clearing BreakPoint at 00479ED6 +De-Activate DECHashAuthentication.pas line 1343 BreakPoint at:00479ED6 +Adding coverage:DECHash.pas (DECHash) 1541 +Clearing BreakPoint at 0047F30C +De-Activate DECHash.pas line 1541 BreakPoint at:0047F30C +Adding coverage:DECHash.pas (DECHash) 1542 +Clearing BreakPoint at 0047F313 +De-Activate DECHash.pas line 1542 BreakPoint at:0047F313 +Adding coverage:DECHash.pas (DECHash) 1543 +Clearing BreakPoint at 0047F325 +De-Activate DECHash.pas line 1543 BreakPoint at:0047F325 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1345 +Clearing BreakPoint at 00479EDE +De-Activate DECHashAuthentication.pas line 1345 BreakPoint at:00479EDE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1348 +Clearing BreakPoint at 00479EF3 +De-Activate DECHashAuthentication.pas line 1348 BreakPoint at:00479EF3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1350 +Clearing BreakPoint at 00479F01 +De-Activate DECHashAuthentication.pas line 1350 BreakPoint at:00479F01 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1354 +Clearing BreakPoint at 00479F2B +De-Activate DECHashAuthentication.pas line 1354 BreakPoint at:00479F2B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1357 +Clearing BreakPoint at 00479F43 +De-Activate DECHashAuthentication.pas line 1357 BreakPoint at:00479F43 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1359 +Clearing BreakPoint at 00479F5C +De-Activate DECHashAuthentication.pas line 1359 BreakPoint at:00479F5C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1360 +Clearing BreakPoint at 00479F62 +De-Activate DECHashAuthentication.pas line 1360 BreakPoint at:00479F62 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1362 +Clearing BreakPoint at 00479F76 +De-Activate DECHashAuthentication.pas line 1362 BreakPoint at:00479F76 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1364 +Clearing BreakPoint at 00479F89 +De-Activate DECHashAuthentication.pas line 1364 BreakPoint at:00479F89 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1365 +Clearing BreakPoint at 00479F8F +De-Activate DECHashAuthentication.pas line 1365 BreakPoint at:00479F8F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1369 +Clearing BreakPoint at 00479FBC +De-Activate DECHashAuthentication.pas line 1369 BreakPoint at:00479FBC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1370 +Clearing BreakPoint at 00479FCE +De-Activate DECHashAuthentication.pas line 1370 BreakPoint at:00479FCE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1374 +Clearing BreakPoint at 0047A0D0 +De-Activate DECHashAuthentication.pas line 1374 BreakPoint at:0047A0D0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1389 +Clearing BreakPoint at 0047A0E8 +De-Activate DECHashAuthentication.pas line 1389 BreakPoint at:0047A0E8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1392 +Clearing BreakPoint at 0047A104 +De-Activate DECHashAuthentication.pas line 1392 BreakPoint at:0047A104 +Adding coverage:DECHash.pas (DECHash) 1548 +Clearing BreakPoint at 0047F328 +De-Activate DECHash.pas line 1548 BreakPoint at:0047F328 +Adding coverage:DECHash.pas (DECHash) 1549 +Clearing BreakPoint at 0047F331 +De-Activate DECHash.pas line 1549 BreakPoint at:0047F331 +Adding coverage:DECHash.pas (DECHash) 1550 +Clearing BreakPoint at 0047F340 +De-Activate DECHash.pas line 1550 BreakPoint at:0047F340 +Adding coverage:DECHash.pas (DECHash) 1551 +Clearing BreakPoint at 0047F35A +De-Activate DECHash.pas line 1551 BreakPoint at:0047F35A +Adding coverage:DECHash.pas (DECHash) 1515 +Clearing BreakPoint at 0047F20C +De-Activate DECHash.pas line 1515 BreakPoint at:0047F20C +Adding coverage:DECHash.pas (DECHash) 1516 +Clearing BreakPoint at 0047F218 +De-Activate DECHash.pas line 1516 BreakPoint at:0047F218 +Adding coverage:DECHash.pas (DECHash) 1518 +Clearing BreakPoint at 0047F21D +De-Activate DECHash.pas line 1518 BreakPoint at:0047F21D +Adding coverage:DECHash.pas (DECHash) 1519 +Clearing BreakPoint at 0047F232 +De-Activate DECHash.pas line 1519 BreakPoint at:0047F232 +Adding coverage:DECHash.pas (DECHash) 1520 +Clearing BreakPoint at 0047F256 +De-Activate DECHash.pas line 1520 BreakPoint at:0047F256 +Adding coverage:DECHash.pas (DECHash) 1516 +Clearing BreakPoint at 0047F259 +De-Activate DECHash.pas line 1516 BreakPoint at:0047F259 +Adding coverage:DECHash.pas (DECHash) 1521 +Clearing BreakPoint at 0047F25F +De-Activate DECHash.pas line 1521 BreakPoint at:0047F25F +Adding coverage:DECHash.pas (DECHash) 1522 +Clearing BreakPoint at 0047F26C +De-Activate DECHash.pas line 1522 BreakPoint at:0047F26C +Adding coverage:DECHash.pas (DECHash) 1524 +Clearing BreakPoint at 0047F271 +De-Activate DECHash.pas line 1524 BreakPoint at:0047F271 +Adding coverage:DECHash.pas (DECHash) 1525 +Clearing BreakPoint at 0047F29C +De-Activate DECHash.pas line 1525 BreakPoint at:0047F29C +Adding coverage:DECHash.pas (DECHash) 1526 +Clearing BreakPoint at 0047F2A9 +De-Activate DECHash.pas line 1526 BreakPoint at:0047F2A9 +Adding coverage:DECHash.pas (DECHash) 1522 +Clearing BreakPoint at 0047F2AC +De-Activate DECHash.pas line 1522 BreakPoint at:0047F2AC +Adding coverage:DECHash.pas (DECHash) 1527 +Clearing BreakPoint at 0047F2B2 +De-Activate DECHash.pas line 1527 BreakPoint at:0047F2B2 +Adding coverage:DECHash.pas (DECHash) 1528 +Clearing BreakPoint at 0047F2B7 +De-Activate DECHash.pas line 1528 BreakPoint at:0047F2B7 +Adding coverage:DECHash.pas (DECHash) 1530 +Clearing BreakPoint at 0047F2BC +De-Activate DECHash.pas line 1530 BreakPoint at:0047F2BC +Adding coverage:DECHash.pas (DECHash) 1532 +Clearing BreakPoint at 0047F2C1 +De-Activate DECHash.pas line 1532 BreakPoint at:0047F2C1 +Adding coverage:DECHash.pas (DECHash) 1533 +Clearing BreakPoint at 0047F2DB +De-Activate DECHash.pas line 1533 BreakPoint at:0047F2DB +Adding coverage:DECHash.pas (DECHash) 1534 +Clearing BreakPoint at 0047F2E8 +De-Activate DECHash.pas line 1534 BreakPoint at:0047F2E8 +Adding coverage:DECHash.pas (DECHash) 1530 +Clearing BreakPoint at 0047F2EB +De-Activate DECHash.pas line 1530 BreakPoint at:0047F2EB +Adding coverage:DECHash.pas (DECHash) 1535 +Clearing BreakPoint at 0047F2F1 +De-Activate DECHash.pas line 1535 BreakPoint at:0047F2F1 +Adding coverage:DECHash.pas (DECHash) 1536 +Clearing BreakPoint at 0047F2FF +De-Activate DECHash.pas line 1536 BreakPoint at:0047F2FF +Adding coverage:DECHash.pas (DECHash) 1528 +Clearing BreakPoint at 0047F302 +De-Activate DECHash.pas line 1528 BreakPoint at:0047F302 +Adding coverage:DECHash.pas (DECHash) 1537 +Clearing BreakPoint at 0047F308 +De-Activate DECHash.pas line 1537 BreakPoint at:0047F308 +Adding coverage:DECHash.pas (DECHash) 1552 +Clearing BreakPoint at 0047F368 +De-Activate DECHash.pas line 1552 BreakPoint at:0047F368 +Adding coverage:DECHash.pas (DECHash) 1553 +Clearing BreakPoint at 0047F37F +De-Activate DECHash.pas line 1553 BreakPoint at:0047F37F +Adding coverage:DECHash.pas (DECHash) 1554 +Clearing BreakPoint at 0047F38D +De-Activate DECHash.pas line 1554 BreakPoint at:0047F38D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1393 +Clearing BreakPoint at 0047A10C +De-Activate DECHashAuthentication.pas line 1393 BreakPoint at:0047A10C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1395 +Clearing BreakPoint at 0047A135 +De-Activate DECHashAuthentication.pas line 1395 BreakPoint at:0047A135 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1396 +Clearing BreakPoint at 0047A13D +De-Activate DECHashAuthentication.pas line 1396 BreakPoint at:0047A13D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1397 +Clearing BreakPoint at 0047A143 +De-Activate DECHashAuthentication.pas line 1397 BreakPoint at:0047A143 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1399 +Clearing BreakPoint at 0047A163 +De-Activate DECHashAuthentication.pas line 1399 BreakPoint at:0047A163 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1351 +Clearing BreakPoint at 00479F11 +De-Activate DECHashAuthentication.pas line 1351 BreakPoint at:00479F11 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1376 +Clearing BreakPoint at 0047A00C +De-Activate DECHashAuthentication.pas line 1376 BreakPoint at:0047A00C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1377 +Clearing BreakPoint at 0047A029 +De-Activate DECHashAuthentication.pas line 1377 BreakPoint at:0047A029 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1379 +Clearing BreakPoint at 0047A052 +De-Activate DECHashAuthentication.pas line 1379 BreakPoint at:0047A052 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1380 +Clearing BreakPoint at 0047A072 +De-Activate DECHashAuthentication.pas line 1380 BreakPoint at:0047A072 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1381 +Clearing BreakPoint at 0047A092 +De-Activate DECHashAuthentication.pas line 1381 BreakPoint at:0047A092 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1382 +Clearing BreakPoint at 0047A0A3 +De-Activate DECHashAuthentication.pas line 1382 BreakPoint at:0047A0A3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1384 +Clearing BreakPoint at 0047A0B4 +De-Activate DECHashAuthentication.pas line 1384 BreakPoint at:0047A0B4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1385 +Clearing BreakPoint at 0047A0BA +De-Activate DECHashAuthentication.pas line 1385 BreakPoint at:0047A0BA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1346 +Clearing BreakPoint at 00479EE8 +De-Activate DECHashAuthentication.pas line 1346 BreakPoint at:00479EE8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1405 +Clearing BreakPoint at 0047A284 +De-Activate DECHashAuthentication.pas line 1405 BreakPoint at:0047A284 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1406 +Clearing BreakPoint at 0047A2AA +De-Activate DECHashAuthentication.pas line 1406 BreakPoint at:0047A2AA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1407 +Clearing BreakPoint at 0047A2C2 +De-Activate DECHashAuthentication.pas line 1407 BreakPoint at:0047A2C2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1408 +Clearing BreakPoint at 0047A2E0 +De-Activate DECHashAuthentication.pas line 1408 BreakPoint at:0047A2E0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1417 +Clearing BreakPoint at 0047A314 +De-Activate DECHashAuthentication.pas line 1417 BreakPoint at:0047A314 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1418 +Clearing BreakPoint at 0047A337 +De-Activate DECHashAuthentication.pas line 1418 BreakPoint at:0047A337 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1420 +Clearing BreakPoint at 0047A351 +De-Activate DECHashAuthentication.pas line 1420 BreakPoint at:0047A351 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1421 +Clearing BreakPoint at 0047A35F +De-Activate DECHashAuthentication.pas line 1421 BreakPoint at:0047A35F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1422 +Clearing BreakPoint at 0047A36D +De-Activate DECHashAuthentication.pas line 1422 BreakPoint at:0047A36D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1425 +Clearing BreakPoint at 0047A382 +De-Activate DECHashAuthentication.pas line 1425 BreakPoint at:0047A382 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1427 +Clearing BreakPoint at 0047A390 +De-Activate DECHashAuthentication.pas line 1427 BreakPoint at:0047A390 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1431 +Clearing BreakPoint at 0047A3BA +De-Activate DECHashAuthentication.pas line 1431 BreakPoint at:0047A3BA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1434 +Clearing BreakPoint at 0047A3D8 +De-Activate DECHashAuthentication.pas line 1434 BreakPoint at:0047A3D8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1436 +Clearing BreakPoint at 0047A3F1 +De-Activate DECHashAuthentication.pas line 1436 BreakPoint at:0047A3F1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1437 +Clearing BreakPoint at 0047A3F7 +De-Activate DECHashAuthentication.pas line 1437 BreakPoint at:0047A3F7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1439 +Clearing BreakPoint at 0047A40B +De-Activate DECHashAuthentication.pas line 1439 BreakPoint at:0047A40B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1441 +Clearing BreakPoint at 0047A41E +De-Activate DECHashAuthentication.pas line 1441 BreakPoint at:0047A41E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1442 +Clearing BreakPoint at 0047A424 +De-Activate DECHashAuthentication.pas line 1442 BreakPoint at:0047A424 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1446 +Clearing BreakPoint at 0047A451 +De-Activate DECHashAuthentication.pas line 1446 BreakPoint at:0047A451 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1447 +Clearing BreakPoint at 0047A463 +De-Activate DECHashAuthentication.pas line 1447 BreakPoint at:0047A463 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1451 +Clearing BreakPoint at 0047A565 +De-Activate DECHashAuthentication.pas line 1451 BreakPoint at:0047A565 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1466 +Clearing BreakPoint at 0047A57D +De-Activate DECHashAuthentication.pas line 1466 BreakPoint at:0047A57D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1468 +Clearing BreakPoint at 0047A583 +De-Activate DECHashAuthentication.pas line 1468 BreakPoint at:0047A583 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1470 +Clearing BreakPoint at 0047A59F +De-Activate DECHashAuthentication.pas line 1470 BreakPoint at:0047A59F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1473 +Clearing BreakPoint at 0047A5B4 +De-Activate DECHashAuthentication.pas line 1473 BreakPoint at:0047A5B4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1474 +Clearing BreakPoint at 0047A5BC +De-Activate DECHashAuthentication.pas line 1474 BreakPoint at:0047A5BC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1475 +Clearing BreakPoint at 0047A5C2 +De-Activate DECHashAuthentication.pas line 1475 BreakPoint at:0047A5C2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1477 +Clearing BreakPoint at 0047A5E2 +De-Activate DECHashAuthentication.pas line 1477 BreakPoint at:0047A5E2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1428 +Clearing BreakPoint at 0047A3A0 +De-Activate DECHashAuthentication.pas line 1428 BreakPoint at:0047A3A0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1453 +Clearing BreakPoint at 0047A4A1 +De-Activate DECHashAuthentication.pas line 1453 BreakPoint at:0047A4A1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1454 +Clearing BreakPoint at 0047A4BE +De-Activate DECHashAuthentication.pas line 1454 BreakPoint at:0047A4BE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1456 +Clearing BreakPoint at 0047A4E7 +De-Activate DECHashAuthentication.pas line 1456 BreakPoint at:0047A4E7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1457 +Clearing BreakPoint at 0047A507 +De-Activate DECHashAuthentication.pas line 1457 BreakPoint at:0047A507 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1458 +Clearing BreakPoint at 0047A527 +De-Activate DECHashAuthentication.pas line 1458 BreakPoint at:0047A527 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1459 +Clearing BreakPoint at 0047A538 +De-Activate DECHashAuthentication.pas line 1459 BreakPoint at:0047A538 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1461 +Clearing BreakPoint at 0047A549 +De-Activate DECHashAuthentication.pas line 1461 BreakPoint at:0047A549 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1462 +Clearing BreakPoint at 0047A54F +De-Activate DECHashAuthentication.pas line 1462 BreakPoint at:0047A54F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1423 +Clearing BreakPoint at 0047A377 +De-Activate DECHashAuthentication.pas line 1423 BreakPoint at:0047A377 +Adding coverage:DECHashBase.pas (DECHashBase) 613 +Clearing BreakPoint at 004758C1 +De-Activate DECHashBase.pas line 613 BreakPoint at:004758C1 +Adding coverage:DECHashBase.pas (DECHashBase) 614 +Clearing BreakPoint at 004758E6 +De-Activate DECHashBase.pas line 614 BreakPoint at:004758E6 +Adding coverage:DECHashBase.pas (DECHashBase) 642 +Clearing BreakPoint at 00475A08 +De-Activate DECHashBase.pas line 642 BreakPoint at:00475A08 +Adding coverage:DECHashBase.pas (DECHashBase) 643 +Clearing BreakPoint at 00475A2E +De-Activate DECHashBase.pas line 643 BreakPoint at:00475A2E +Adding coverage:DECHashBase.pas (DECHashBase) 644 +Clearing BreakPoint at 00475A59 +De-Activate DECHashBase.pas line 644 BreakPoint at:00475A59 +Adding coverage:DECHashBase.pas (DECHashBase) 647 +Clearing BreakPoint at 00475A88 +De-Activate DECHashBase.pas line 647 BreakPoint at:00475A88 +Adding coverage:DECHashBase.pas (DECHashBase) 648 +Clearing BreakPoint at 00475AAE +De-Activate DECHashBase.pas line 648 BreakPoint at:00475AAE +Adding coverage:DECHashBase.pas (DECHashBase) 649 +Clearing BreakPoint at 00475AD9 +De-Activate DECHashBase.pas line 649 BreakPoint at:00475AD9 +Adding coverage:DECHashBase.pas (DECHashBase) 668 +Clearing BreakPoint at 00475BD0 +De-Activate DECHashBase.pas line 668 BreakPoint at:00475BD0 +Adding coverage:DECHashBase.pas (DECHashBase) 669 +Clearing BreakPoint at 00475BE0 +De-Activate DECHashBase.pas line 669 BreakPoint at:00475BE0 +Adding coverage:DECHashBase.pas (DECHashBase) 671 +Clearing BreakPoint at 00475BE8 +De-Activate DECHashBase.pas line 671 BreakPoint at:00475BE8 +Adding coverage:DECHashBase.pas (DECHashBase) 672 +Clearing BreakPoint at 00475BF7 +De-Activate DECHashBase.pas line 672 BreakPoint at:00475BF7 +Adding coverage:DECHashBase.pas (DECHashBase) 686 +Clearing BreakPoint at 00475C46 +De-Activate DECHashBase.pas line 686 BreakPoint at:00475C46 +Adding coverage:DECHashBase.pas (DECHashBase) 687 +Clearing BreakPoint at 00475C4E +De-Activate DECHashBase.pas line 687 BreakPoint at:00475C4E +Adding coverage:DECHashBase.pas (DECHashBase) 688 +Clearing BreakPoint at 00475C59 +De-Activate DECHashBase.pas line 688 BreakPoint at:00475C59 +Adding coverage:DECHashBase.pas (DECHashBase) 691 +Clearing BreakPoint at 00475C60 +De-Activate DECHashBase.pas line 691 BreakPoint at:00475C60 +Adding coverage:DECHashBase.pas (DECHashBase) 692 +Clearing BreakPoint at 00475C6F +De-Activate DECHashBase.pas line 692 BreakPoint at:00475C6F +Adding coverage:DECHashBase.pas (DECHashBase) 693 +Clearing BreakPoint at 00475C7D +De-Activate DECHashBase.pas line 693 BreakPoint at:00475C7D +Adding coverage:DECHashBase.pas (DECHashBase) 696 +Clearing BreakPoint at 00475CD7 +De-Activate DECHashBase.pas line 696 BreakPoint at:00475CD7 +Adding coverage:DECHashBase.pas (DECHashBase) 697 +Clearing BreakPoint at 00475D00 +De-Activate DECHashBase.pas line 697 BreakPoint at:00475D00 +Adding coverage:DECHashBase.pas (DECHashBase) 694 +Clearing BreakPoint at 00475C9A +De-Activate DECHashBase.pas line 694 BreakPoint at:00475C9A +Adding coverage:DECHashBase.pas (DECHashBase) 726 +Clearing BreakPoint at 00475E44 +De-Activate DECHashBase.pas line 726 BreakPoint at:00475E44 +Adding coverage:DECHashBase.pas (DECHashBase) 727 +Clearing BreakPoint at 00475E73 +De-Activate DECHashBase.pas line 727 BreakPoint at:00475E73 +Adding coverage:DECHashBase.pas (DECHashBase) 728 +Clearing BreakPoint at 00475E7B +De-Activate DECHashBase.pas line 728 BreakPoint at:00475E7B +Adding coverage:DECHashBase.pas (DECHashBase) 742 +Clearing BreakPoint at 00475F08 +De-Activate DECHashBase.pas line 742 BreakPoint at:00475F08 +Adding coverage:DECHashBase.pas (DECHashBase) 743 +Clearing BreakPoint at 00475F16 +De-Activate DECHashBase.pas line 743 BreakPoint at:00475F16 +Adding coverage:DECHashBase.pas (DECHashBase) 745 +Clearing BreakPoint at 00475F47 +De-Activate DECHashBase.pas line 745 BreakPoint at:00475F47 +Adding coverage:DECHashBase.pas (DECHashBase) 730 +Clearing BreakPoint at 00475E98 +De-Activate DECHashBase.pas line 730 BreakPoint at:00475E98 +Adding coverage:DECHashBase.pas (DECHashBase) 703 +Clearing BreakPoint at 00475D04 +De-Activate DECHashBase.pas line 703 BreakPoint at:00475D04 +Adding coverage:DECHashBase.pas (DECHashBase) 704 +Clearing BreakPoint at 00475D30 +De-Activate DECHashBase.pas line 704 BreakPoint at:00475D30 +Adding coverage:DECHashBase.pas (DECHashBase) 705 +Clearing BreakPoint at 00475D38 +De-Activate DECHashBase.pas line 705 BreakPoint at:00475D38 +Adding coverage:DECHashBase.pas (DECHashBase) 718 +Clearing BreakPoint at 00475DC5 +De-Activate DECHashBase.pas line 718 BreakPoint at:00475DC5 +Adding coverage:DECHashBase.pas (DECHashBase) 719 +Clearing BreakPoint at 00475DD3 +De-Activate DECHashBase.pas line 719 BreakPoint at:00475DD3 +Adding coverage:DECHashBase.pas (DECHashBase) 721 +Clearing BreakPoint at 00475E04 +De-Activate DECHashBase.pas line 721 BreakPoint at:00475E04 +Adding coverage:DECHashBase.pas (DECHashBase) 708 +Clearing BreakPoint at 00475D55 +De-Activate DECHashBase.pas line 708 BreakPoint at:00475D55 +Adding coverage:DECHashBase.pas (DECHashBase) 709 +Clearing BreakPoint at 00475D7A +De-Activate DECHashBase.pas line 709 BreakPoint at:00475D7A +Adding coverage:DECHashBase.pas (DECHashBase) 714 +Clearing BreakPoint at 00475DA5 +De-Activate DECHashBase.pas line 714 BreakPoint at:00475DA5 +Adding coverage:DECHashBase.pas (DECHashBase) 482 +Clearing BreakPoint at 00475698 +De-Activate DECHashBase.pas line 482 BreakPoint at:00475698 +Adding coverage:DECHashBase.pas (DECHashBase) 483 +Clearing BreakPoint at 004756A1 +De-Activate DECHashBase.pas line 483 BreakPoint at:004756A1 +Adding coverage:DECHashBase.pas (DECHashBase) 484 +Clearing BreakPoint at 004756AA +De-Activate DECHashBase.pas line 484 BreakPoint at:004756AA +Adding coverage:DECHashBase.pas (DECHashBase) 471 +Clearing BreakPoint at 00475670 +De-Activate DECHashBase.pas line 471 BreakPoint at:00475670 +Adding coverage:DECHashBase.pas (DECHashBase) 473 +Clearing BreakPoint at 00475679 +De-Activate DECHashBase.pas line 473 BreakPoint at:00475679 +Adding coverage:DECHashBase.pas (DECHashBase) 474 +Clearing BreakPoint at 0047567D +De-Activate DECHashBase.pas line 474 BreakPoint at:0047567D +Adding coverage:DECHashBase.pas (DECHashBase) 748 +Clearing BreakPoint at 00475F88 +De-Activate DECHashBase.pas line 748 BreakPoint at:00475F88 +Adding coverage:DECHashBase.pas (DECHashBase) 749 +Clearing BreakPoint at 00475F91 +De-Activate DECHashBase.pas line 749 BreakPoint at:00475F91 +Adding coverage:DECHashBase.pas (DECHashBase) 750 +Clearing BreakPoint at 00475FA4 +De-Activate DECHashBase.pas line 750 BreakPoint at:00475FA4 +Adding coverage:DECHashBase.pas (DECHashBase) 603 +Clearing BreakPoint at 0047586E +De-Activate DECHashBase.pas line 603 BreakPoint at:0047586E +Adding coverage:DECHashBase.pas (DECHashBase) 590 +Clearing BreakPoint at 0047582C +De-Activate DECHashBase.pas line 590 BreakPoint at:0047582C +Adding coverage:DECHashBase.pas (DECHashBase) 591 +Clearing BreakPoint at 00475833 +De-Activate DECHashBase.pas line 591 BreakPoint at:00475833 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 1612 +Clearing BreakPoint at 0047F554 +De-Activate DECHash.pas line 1612 BreakPoint at:0047F554 +Adding coverage:DECHash.pas (DECHash) 1613 +Clearing BreakPoint at 0047F55D +De-Activate DECHash.pas line 1613 BreakPoint at:0047F55D +Adding coverage:DECHash.pas (DECHash) 1614 +Clearing BreakPoint at 0047F564 +De-Activate DECHash.pas line 1614 BreakPoint at:0047F564 +Adding coverage:DECHash.pas (DECHash) 1574 +Clearing BreakPoint at 0047F3E0 +De-Activate DECHash.pas line 1574 BreakPoint at:0047F3E0 +Adding coverage:DECHash.pas (DECHash) 1575 +Clearing BreakPoint at 0047F3E7 +De-Activate DECHash.pas line 1575 BreakPoint at:0047F3E7 +Adding coverage:DECHash.pas (DECHash) 1576 +Clearing BreakPoint at 0047F3F1 +De-Activate DECHash.pas line 1576 BreakPoint at:0047F3F1 +Adding coverage:DECHash.pas (DECHash) 1577 +Clearing BreakPoint at 0047F3FB +De-Activate DECHash.pas line 1577 BreakPoint at:0047F3FB +Adding coverage:DECHash.pas (DECHash) 1578 +Clearing BreakPoint at 0047F405 +De-Activate DECHash.pas line 1578 BreakPoint at:0047F405 +Adding coverage:DECHash.pas (DECHash) 1579 +Clearing BreakPoint at 0047F40F +De-Activate DECHash.pas line 1579 BreakPoint at:0047F40F +Adding coverage:DECHash.pas (DECHash) 1580 +Clearing BreakPoint at 0047F419 +De-Activate DECHash.pas line 1580 BreakPoint at:0047F419 +Adding coverage:DECHash.pas (DECHash) 1581 +Clearing BreakPoint at 0047F423 +De-Activate DECHash.pas line 1581 BreakPoint at:0047F423 +Adding coverage:DECHash.pas (DECHash) 1582 +Clearing BreakPoint at 0047F42D +De-Activate DECHash.pas line 1582 BreakPoint at:0047F42D +Adding coverage:DECHash.pas (DECHash) 1583 +Clearing BreakPoint at 0047F437 +De-Activate DECHash.pas line 1583 BreakPoint at:0047F437 +Adding coverage:DECHash.pas (DECHash) 1584 +Clearing BreakPoint at 0047F441 +De-Activate DECHash.pas line 1584 BreakPoint at:0047F441 +Adding coverage:DECHash.pas (DECHash) 1585 +Clearing BreakPoint at 0047F44B +De-Activate DECHash.pas line 1585 BreakPoint at:0047F44B +Adding coverage:DECHash.pas (DECHash) 1588 +Clearing BreakPoint at 0047F450 +De-Activate DECHash.pas line 1588 BreakPoint at:0047F450 +Adding coverage:DECHash.pas (DECHash) 1589 +Clearing BreakPoint at 0047F457 +De-Activate DECHash.pas line 1589 BreakPoint at:0047F457 +Adding coverage:DECHash.pas (DECHash) 1591 +Clearing BreakPoint at 0047F46D +De-Activate DECHash.pas line 1591 BreakPoint at:0047F46D +Adding coverage:DECHash.pas (DECHash) 1592 +Clearing BreakPoint at 0047F476 +De-Activate DECHash.pas line 1592 BreakPoint at:0047F476 +Adding coverage:DECHash.pas (DECHash) 1593 +Clearing BreakPoint at 0047F47D +De-Activate DECHash.pas line 1593 BreakPoint at:0047F47D +Adding coverage:DECHash.pas (DECHash) 1594 +Clearing BreakPoint at 0047F492 +De-Activate DECHash.pas line 1594 BreakPoint at:0047F492 +Adding coverage:DECHash.pas (DECHash) 1595 +Clearing BreakPoint at 0047F498 +De-Activate DECHash.pas line 1595 BreakPoint at:0047F498 +Adding coverage:DECHash.pas (DECHash) 1601 +Clearing BreakPoint at 0047F4E3 +De-Activate DECHash.pas line 1601 BreakPoint at:0047F4E3 +Adding coverage:DECHash.pas (DECHash) 1602 +Clearing BreakPoint at 0047F505 +De-Activate DECHash.pas line 1602 BreakPoint at:0047F505 +Adding coverage:DECHash.pas (DECHash) 1603 +Clearing BreakPoint at 0047F525 +De-Activate DECHash.pas line 1603 BreakPoint at:0047F525 +Adding coverage:DECHash.pas (DECHash) 1630 +Clearing BreakPoint at 0047F584 +De-Activate DECHash.pas line 1630 BreakPoint at:0047F584 +Adding coverage:DECHash.pas (DECHash) 1631 +Clearing BreakPoint at 0047F590 +De-Activate DECHash.pas line 1631 BreakPoint at:0047F590 +Adding coverage:DECHash.pas (DECHash) 1632 +Clearing BreakPoint at 0047F599 +De-Activate DECHash.pas line 1632 BreakPoint at:0047F599 +Adding coverage:DECHash.pas (DECHash) 1633 +Clearing BreakPoint at 0047F5A2 +De-Activate DECHash.pas line 1633 BreakPoint at:0047F5A2 +Adding coverage:DECHash.pas (DECHash) 1634 +Clearing BreakPoint at 0047F5AB +De-Activate DECHash.pas line 1634 BreakPoint at:0047F5AB +Adding coverage:DECHash.pas (DECHash) 1636 +Clearing BreakPoint at 0047F5B4 +De-Activate DECHash.pas line 1636 BreakPoint at:0047F5B4 +Adding coverage:DECHash.pas (DECHash) 1637 +Clearing BreakPoint at 0047F5DD +De-Activate DECHash.pas line 1637 BreakPoint at:0047F5DD +Adding coverage:DECHash.pas (DECHash) 1638 +Clearing BreakPoint at 0047F607 +De-Activate DECHash.pas line 1638 BreakPoint at:0047F607 +Adding coverage:DECHash.pas (DECHash) 1639 +Clearing BreakPoint at 0047F631 +De-Activate DECHash.pas line 1639 BreakPoint at:0047F631 +Adding coverage:DECHash.pas (DECHash) 1640 +Clearing BreakPoint at 0047F65B +De-Activate DECHash.pas line 1640 BreakPoint at:0047F65B +Adding coverage:DECHash.pas (DECHash) 1641 +Clearing BreakPoint at 0047F685 +De-Activate DECHash.pas line 1641 BreakPoint at:0047F685 +Adding coverage:DECHash.pas (DECHash) 1642 +Clearing BreakPoint at 0047F6AF +De-Activate DECHash.pas line 1642 BreakPoint at:0047F6AF +Adding coverage:DECHash.pas (DECHash) 1643 +Clearing BreakPoint at 0047F6D9 +De-Activate DECHash.pas line 1643 BreakPoint at:0047F6D9 +Adding coverage:DECHash.pas (DECHash) 1644 +Clearing BreakPoint at 0047F703 +De-Activate DECHash.pas line 1644 BreakPoint at:0047F703 +Adding coverage:DECHash.pas (DECHash) 1645 +Clearing BreakPoint at 0047F72D +De-Activate DECHash.pas line 1645 BreakPoint at:0047F72D +Adding coverage:DECHash.pas (DECHash) 1646 +Clearing BreakPoint at 0047F757 +De-Activate DECHash.pas line 1646 BreakPoint at:0047F757 +Adding coverage:DECHash.pas (DECHash) 1647 +Clearing BreakPoint at 0047F781 +De-Activate DECHash.pas line 1647 BreakPoint at:0047F781 +Adding coverage:DECHash.pas (DECHash) 1648 +Clearing BreakPoint at 0047F7AB +De-Activate DECHash.pas line 1648 BreakPoint at:0047F7AB +Adding coverage:DECHash.pas (DECHash) 1649 +Clearing BreakPoint at 0047F7D5 +De-Activate DECHash.pas line 1649 BreakPoint at:0047F7D5 +Adding coverage:DECHash.pas (DECHash) 1650 +Clearing BreakPoint at 0047F7FF +De-Activate DECHash.pas line 1650 BreakPoint at:0047F7FF +Adding coverage:DECHash.pas (DECHash) 1651 +Clearing BreakPoint at 0047F829 +De-Activate DECHash.pas line 1651 BreakPoint at:0047F829 +Adding coverage:DECHash.pas (DECHash) 1653 +Clearing BreakPoint at 0047F853 +De-Activate DECHash.pas line 1653 BreakPoint at:0047F853 +Adding coverage:DECHash.pas (DECHash) 1654 +Clearing BreakPoint at 0047F887 +De-Activate DECHash.pas line 1654 BreakPoint at:0047F887 +Adding coverage:DECHash.pas (DECHash) 1655 +Clearing BreakPoint at 0047F8BC +De-Activate DECHash.pas line 1655 BreakPoint at:0047F8BC +Adding coverage:DECHash.pas (DECHash) 1656 +Clearing BreakPoint at 0047F8F1 +De-Activate DECHash.pas line 1656 BreakPoint at:0047F8F1 +Adding coverage:DECHash.pas (DECHash) 1657 +Clearing BreakPoint at 0047F926 +De-Activate DECHash.pas line 1657 BreakPoint at:0047F926 +Adding coverage:DECHash.pas (DECHash) 1658 +Clearing BreakPoint at 0047F95B +De-Activate DECHash.pas line 1658 BreakPoint at:0047F95B +Adding coverage:DECHash.pas (DECHash) 1659 +Clearing BreakPoint at 0047F990 +De-Activate DECHash.pas line 1659 BreakPoint at:0047F990 +Adding coverage:DECHash.pas (DECHash) 1660 +Clearing BreakPoint at 0047F9C5 +De-Activate DECHash.pas line 1660 BreakPoint at:0047F9C5 +Adding coverage:DECHash.pas (DECHash) 1661 +Clearing BreakPoint at 0047F9FA +De-Activate DECHash.pas line 1661 BreakPoint at:0047F9FA +Adding coverage:DECHash.pas (DECHash) 1662 +Clearing BreakPoint at 0047FA2F +De-Activate DECHash.pas line 1662 BreakPoint at:0047FA2F +Adding coverage:DECHash.pas (DECHash) 1663 +Clearing BreakPoint at 0047FA64 +De-Activate DECHash.pas line 1663 BreakPoint at:0047FA64 +Adding coverage:DECHash.pas (DECHash) 1664 +Clearing BreakPoint at 0047FA99 +De-Activate DECHash.pas line 1664 BreakPoint at:0047FA99 +Adding coverage:DECHash.pas (DECHash) 1665 +Clearing BreakPoint at 0047FACE +De-Activate DECHash.pas line 1665 BreakPoint at:0047FACE +Adding coverage:DECHash.pas (DECHash) 1666 +Clearing BreakPoint at 0047FB03 +De-Activate DECHash.pas line 1666 BreakPoint at:0047FB03 +Adding coverage:DECHash.pas (DECHash) 1667 +Clearing BreakPoint at 0047FB38 +De-Activate DECHash.pas line 1667 BreakPoint at:0047FB38 +Adding coverage:DECHash.pas (DECHash) 1668 +Clearing BreakPoint at 0047FB6D +De-Activate DECHash.pas line 1668 BreakPoint at:0047FB6D +Adding coverage:DECHash.pas (DECHash) 1670 +Clearing BreakPoint at 0047FBA2 +De-Activate DECHash.pas line 1670 BreakPoint at:0047FBA2 +Adding coverage:DECHash.pas (DECHash) 1671 +Clearing BreakPoint at 0047FBC9 +De-Activate DECHash.pas line 1671 BreakPoint at:0047FBC9 +Adding coverage:DECHash.pas (DECHash) 1672 +Clearing BreakPoint at 0047FBF1 +De-Activate DECHash.pas line 1672 BreakPoint at:0047FBF1 +Adding coverage:DECHash.pas (DECHash) 1673 +Clearing BreakPoint at 0047FC19 +De-Activate DECHash.pas line 1673 BreakPoint at:0047FC19 +Adding coverage:DECHash.pas (DECHash) 1674 +Clearing BreakPoint at 0047FC41 +De-Activate DECHash.pas line 1674 BreakPoint at:0047FC41 +Adding coverage:DECHash.pas (DECHash) 1675 +Clearing BreakPoint at 0047FC69 +De-Activate DECHash.pas line 1675 BreakPoint at:0047FC69 +Adding coverage:DECHash.pas (DECHash) 1676 +Clearing BreakPoint at 0047FC91 +De-Activate DECHash.pas line 1676 BreakPoint at:0047FC91 +Adding coverage:DECHash.pas (DECHash) 1677 +Clearing BreakPoint at 0047FCB9 +De-Activate DECHash.pas line 1677 BreakPoint at:0047FCB9 +Adding coverage:DECHash.pas (DECHash) 1678 +Clearing BreakPoint at 0047FCE1 +De-Activate DECHash.pas line 1678 BreakPoint at:0047FCE1 +Adding coverage:DECHash.pas (DECHash) 1679 +Clearing BreakPoint at 0047FD09 +De-Activate DECHash.pas line 1679 BreakPoint at:0047FD09 +Adding coverage:DECHash.pas (DECHash) 1680 +Clearing BreakPoint at 0047FD31 +De-Activate DECHash.pas line 1680 BreakPoint at:0047FD31 +Adding coverage:DECHash.pas (DECHash) 1681 +Clearing BreakPoint at 0047FD59 +De-Activate DECHash.pas line 1681 BreakPoint at:0047FD59 +Adding coverage:DECHash.pas (DECHash) 1682 +Clearing BreakPoint at 0047FD81 +De-Activate DECHash.pas line 1682 BreakPoint at:0047FD81 +Adding coverage:DECHash.pas (DECHash) 1683 +Clearing BreakPoint at 0047FDA9 +De-Activate DECHash.pas line 1683 BreakPoint at:0047FDA9 +Adding coverage:DECHash.pas (DECHash) 1684 +Clearing BreakPoint at 0047FDD1 +De-Activate DECHash.pas line 1684 BreakPoint at:0047FDD1 +Adding coverage:DECHash.pas (DECHash) 1685 +Clearing BreakPoint at 0047FDF9 +De-Activate DECHash.pas line 1685 BreakPoint at:0047FDF9 +Adding coverage:DECHash.pas (DECHash) 1687 +Clearing BreakPoint at 0047FE21 +De-Activate DECHash.pas line 1687 BreakPoint at:0047FE21 +Adding coverage:DECHash.pas (DECHash) 1688 +Clearing BreakPoint at 0047FE2A +De-Activate DECHash.pas line 1688 BreakPoint at:0047FE2A +Adding coverage:DECHash.pas (DECHash) 1689 +Clearing BreakPoint at 0047FE33 +De-Activate DECHash.pas line 1689 BreakPoint at:0047FE33 +Adding coverage:DECHash.pas (DECHash) 1690 +Clearing BreakPoint at 0047FE3C +De-Activate DECHash.pas line 1690 BreakPoint at:0047FE3C +Adding coverage:DECHash.pas (DECHash) 1691 +Clearing BreakPoint at 0047FE45 +De-Activate DECHash.pas line 1691 BreakPoint at:0047FE45 +Adding coverage:DECHash.pas (DECHash) 1604 +Clearing BreakPoint at 0047F533 +De-Activate DECHash.pas line 1604 BreakPoint at:0047F533 +Adding coverage:DECHash.pas (DECHash) 1597 +Clearing BreakPoint at 0047F4AB +De-Activate DECHash.pas line 1597 BreakPoint at:0047F4AB +Adding coverage:DECHash.pas (DECHash) 1598 +Clearing BreakPoint at 0047F4CD +De-Activate DECHash.pas line 1598 BreakPoint at:0047F4CD +Adding coverage:DECHash.pas (DECHash) 1599 +Clearing BreakPoint at 0047F4DB +De-Activate DECHash.pas line 1599 BreakPoint at:0047F4DB +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1372 +Clearing BreakPoint at 00479FED +De-Activate DECHashAuthentication.pas line 1372 BreakPoint at:00479FED +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1378 +Clearing BreakPoint at 0047A03B +De-Activate DECHashAuthentication.pas line 1378 BreakPoint at:0047A03B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1449 +Clearing BreakPoint at 0047A482 +De-Activate DECHashAuthentication.pas line 1449 BreakPoint at:0047A482 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1455 +Clearing BreakPoint at 0047A4D0 +De-Activate DECHashAuthentication.pas line 1455 BreakPoint at:0047A4D0 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Thread exit:12468 +Adding coverage:DECHash.pas (DECHash) 1700 +Clearing BreakPoint at 0047FE4C +De-Activate DECHash.pas line 1700 BreakPoint at:0047FE4C +Adding coverage:DECHash.pas (DECHash) 1701 +Clearing BreakPoint at 0047FE58 +De-Activate DECHash.pas line 1701 BreakPoint at:0047FE58 +Adding coverage:DECHash.pas (DECHash) 1702 +Clearing BreakPoint at 0047FE61 +De-Activate DECHash.pas line 1702 BreakPoint at:0047FE61 +Adding coverage:DECHash.pas (DECHash) 1703 +Clearing BreakPoint at 0047FE6A +De-Activate DECHash.pas line 1703 BreakPoint at:0047FE6A +Adding coverage:DECHash.pas (DECHash) 1704 +Clearing BreakPoint at 0047FE73 +De-Activate DECHash.pas line 1704 BreakPoint at:0047FE73 +Adding coverage:DECHash.pas (DECHash) 1706 +Clearing BreakPoint at 0047FE7C +De-Activate DECHash.pas line 1706 BreakPoint at:0047FE7C +Adding coverage:DECHash.pas (DECHash) 1707 +Clearing BreakPoint at 0047FEAB +De-Activate DECHash.pas line 1707 BreakPoint at:0047FEAB +Adding coverage:DECHash.pas (DECHash) 1708 +Clearing BreakPoint at 0047FEDB +De-Activate DECHash.pas line 1708 BreakPoint at:0047FEDB +Adding coverage:DECHash.pas (DECHash) 1709 +Clearing BreakPoint at 0047FF0B +De-Activate DECHash.pas line 1709 BreakPoint at:0047FF0B +Adding coverage:DECHash.pas (DECHash) 1710 +Clearing BreakPoint at 0047FF3B +De-Activate DECHash.pas line 1710 BreakPoint at:0047FF3B +Adding coverage:DECHash.pas (DECHash) 1711 +Clearing BreakPoint at 0047FF6B +De-Activate DECHash.pas line 1711 BreakPoint at:0047FF6B +Adding coverage:DECHash.pas (DECHash) 1712 +Clearing BreakPoint at 0047FF9B +De-Activate DECHash.pas line 1712 BreakPoint at:0047FF9B +Adding coverage:DECHash.pas (DECHash) 1713 +Clearing BreakPoint at 0047FFCB +De-Activate DECHash.pas line 1713 BreakPoint at:0047FFCB +Adding coverage:DECHash.pas (DECHash) 1714 +Clearing BreakPoint at 0047FFFB +De-Activate DECHash.pas line 1714 BreakPoint at:0047FFFB +Adding coverage:DECHash.pas (DECHash) 1715 +Clearing BreakPoint at 0048002B +De-Activate DECHash.pas line 1715 BreakPoint at:0048002B +Adding coverage:DECHash.pas (DECHash) 1716 +Clearing BreakPoint at 0048005B +De-Activate DECHash.pas line 1716 BreakPoint at:0048005B +Adding coverage:DECHash.pas (DECHash) 1717 +Clearing BreakPoint at 0048008B +De-Activate DECHash.pas line 1717 BreakPoint at:0048008B +Adding coverage:DECHash.pas (DECHash) 1718 +Clearing BreakPoint at 004800BB +De-Activate DECHash.pas line 1718 BreakPoint at:004800BB +Adding coverage:DECHash.pas (DECHash) 1719 +Clearing BreakPoint at 004800EB +De-Activate DECHash.pas line 1719 BreakPoint at:004800EB +Adding coverage:DECHash.pas (DECHash) 1720 +Clearing BreakPoint at 0048011B +De-Activate DECHash.pas line 1720 BreakPoint at:0048011B +Adding coverage:DECHash.pas (DECHash) 1721 +Clearing BreakPoint at 0048014B +De-Activate DECHash.pas line 1721 BreakPoint at:0048014B +Adding coverage:DECHash.pas (DECHash) 1723 +Clearing BreakPoint at 0048017B +De-Activate DECHash.pas line 1723 BreakPoint at:0048017B +Adding coverage:DECHash.pas (DECHash) 1724 +Clearing BreakPoint at 004801AB +De-Activate DECHash.pas line 1724 BreakPoint at:004801AB +Adding coverage:DECHash.pas (DECHash) 1725 +Clearing BreakPoint at 004801DB +De-Activate DECHash.pas line 1725 BreakPoint at:004801DB +Adding coverage:DECHash.pas (DECHash) 1726 +Clearing BreakPoint at 0048020B +De-Activate DECHash.pas line 1726 BreakPoint at:0048020B +Adding coverage:DECHash.pas (DECHash) 1727 +Clearing BreakPoint at 0048023A +De-Activate DECHash.pas line 1727 BreakPoint at:0048023A +Adding coverage:DECHash.pas (DECHash) 1728 +Clearing BreakPoint at 0048026A +De-Activate DECHash.pas line 1728 BreakPoint at:0048026A +Adding coverage:DECHash.pas (DECHash) 1729 +Clearing BreakPoint at 0048029A +De-Activate DECHash.pas line 1729 BreakPoint at:0048029A +Adding coverage:DECHash.pas (DECHash) 1730 +Clearing BreakPoint at 004802CA +De-Activate DECHash.pas line 1730 BreakPoint at:004802CA +Adding coverage:DECHash.pas (DECHash) 1731 +Clearing BreakPoint at 004802FA +De-Activate DECHash.pas line 1731 BreakPoint at:004802FA +Adding coverage:DECHash.pas (DECHash) 1732 +Clearing BreakPoint at 0048032A +De-Activate DECHash.pas line 1732 BreakPoint at:0048032A +Adding coverage:DECHash.pas (DECHash) 1733 +Clearing BreakPoint at 0048035A +De-Activate DECHash.pas line 1733 BreakPoint at:0048035A +Adding coverage:DECHash.pas (DECHash) 1734 +Clearing BreakPoint at 0048038A +De-Activate DECHash.pas line 1734 BreakPoint at:0048038A +Adding coverage:DECHash.pas (DECHash) 1735 +Clearing BreakPoint at 004803BA +De-Activate DECHash.pas line 1735 BreakPoint at:004803BA +Adding coverage:DECHash.pas (DECHash) 1736 +Clearing BreakPoint at 004803EA +De-Activate DECHash.pas line 1736 BreakPoint at:004803EA +Adding coverage:DECHash.pas (DECHash) 1737 +Clearing BreakPoint at 0048041A +De-Activate DECHash.pas line 1737 BreakPoint at:0048041A +Adding coverage:DECHash.pas (DECHash) 1738 +Clearing BreakPoint at 0048044A +De-Activate DECHash.pas line 1738 BreakPoint at:0048044A +Adding coverage:DECHash.pas (DECHash) 1740 +Clearing BreakPoint at 0048047A +De-Activate DECHash.pas line 1740 BreakPoint at:0048047A +Adding coverage:DECHash.pas (DECHash) 1741 +Clearing BreakPoint at 004804A7 +De-Activate DECHash.pas line 1741 BreakPoint at:004804A7 +Adding coverage:DECHash.pas (DECHash) 1742 +Clearing BreakPoint at 004804D4 +De-Activate DECHash.pas line 1742 BreakPoint at:004804D4 +Adding coverage:DECHash.pas (DECHash) 1743 +Clearing BreakPoint at 00480501 +De-Activate DECHash.pas line 1743 BreakPoint at:00480501 +Adding coverage:DECHash.pas (DECHash) 1744 +Clearing BreakPoint at 0048052E +De-Activate DECHash.pas line 1744 BreakPoint at:0048052E +Adding coverage:DECHash.pas (DECHash) 1745 +Clearing BreakPoint at 0048055B +De-Activate DECHash.pas line 1745 BreakPoint at:0048055B +Adding coverage:DECHash.pas (DECHash) 1746 +Clearing BreakPoint at 00480588 +De-Activate DECHash.pas line 1746 BreakPoint at:00480588 +Adding coverage:DECHash.pas (DECHash) 1747 +Clearing BreakPoint at 004805B5 +De-Activate DECHash.pas line 1747 BreakPoint at:004805B5 +Adding coverage:DECHash.pas (DECHash) 1748 +Clearing BreakPoint at 004805E2 +De-Activate DECHash.pas line 1748 BreakPoint at:004805E2 +Adding coverage:DECHash.pas (DECHash) 1749 +Clearing BreakPoint at 0048060F +De-Activate DECHash.pas line 1749 BreakPoint at:0048060F +Adding coverage:DECHash.pas (DECHash) 1750 +Clearing BreakPoint at 0048063B +De-Activate DECHash.pas line 1750 BreakPoint at:0048063B +Adding coverage:DECHash.pas (DECHash) 1751 +Clearing BreakPoint at 00480668 +De-Activate DECHash.pas line 1751 BreakPoint at:00480668 +Adding coverage:DECHash.pas (DECHash) 1752 +Clearing BreakPoint at 00480695 +De-Activate DECHash.pas line 1752 BreakPoint at:00480695 +Adding coverage:DECHash.pas (DECHash) 1753 +Clearing BreakPoint at 004806C2 +De-Activate DECHash.pas line 1753 BreakPoint at:004806C2 +Adding coverage:DECHash.pas (DECHash) 1754 +Clearing BreakPoint at 004806EF +De-Activate DECHash.pas line 1754 BreakPoint at:004806EF +Adding coverage:DECHash.pas (DECHash) 1755 +Clearing BreakPoint at 0048071C +De-Activate DECHash.pas line 1755 BreakPoint at:0048071C +Adding coverage:DECHash.pas (DECHash) 1757 +Clearing BreakPoint at 00480749 +De-Activate DECHash.pas line 1757 BreakPoint at:00480749 +Adding coverage:DECHash.pas (DECHash) 1758 +Clearing BreakPoint at 00480777 +De-Activate DECHash.pas line 1758 BreakPoint at:00480777 +Adding coverage:DECHash.pas (DECHash) 1759 +Clearing BreakPoint at 004807A6 +De-Activate DECHash.pas line 1759 BreakPoint at:004807A6 +Adding coverage:DECHash.pas (DECHash) 1760 +Clearing BreakPoint at 004807D5 +De-Activate DECHash.pas line 1760 BreakPoint at:004807D5 +Adding coverage:DECHash.pas (DECHash) 1761 +Clearing BreakPoint at 00480804 +De-Activate DECHash.pas line 1761 BreakPoint at:00480804 +Adding coverage:DECHash.pas (DECHash) 1762 +Clearing BreakPoint at 00480833 +De-Activate DECHash.pas line 1762 BreakPoint at:00480833 +Adding coverage:DECHash.pas (DECHash) 1763 +Clearing BreakPoint at 00480862 +De-Activate DECHash.pas line 1763 BreakPoint at:00480862 +Adding coverage:DECHash.pas (DECHash) 1764 +Clearing BreakPoint at 00480891 +De-Activate DECHash.pas line 1764 BreakPoint at:00480891 +Adding coverage:DECHash.pas (DECHash) 1765 +Clearing BreakPoint at 004808C0 +De-Activate DECHash.pas line 1765 BreakPoint at:004808C0 +Adding coverage:DECHash.pas (DECHash) 1766 +Clearing BreakPoint at 004808EF +De-Activate DECHash.pas line 1766 BreakPoint at:004808EF +Adding coverage:DECHash.pas (DECHash) 1767 +Clearing BreakPoint at 0048091E +De-Activate DECHash.pas line 1767 BreakPoint at:0048091E +Adding coverage:DECHash.pas (DECHash) 1768 +Clearing BreakPoint at 0048094D +De-Activate DECHash.pas line 1768 BreakPoint at:0048094D +Adding coverage:DECHash.pas (DECHash) 1769 +Clearing BreakPoint at 0048097C +De-Activate DECHash.pas line 1769 BreakPoint at:0048097C +Adding coverage:DECHash.pas (DECHash) 1770 +Clearing BreakPoint at 004809AB +De-Activate DECHash.pas line 1770 BreakPoint at:004809AB +Adding coverage:DECHash.pas (DECHash) 1771 +Clearing BreakPoint at 004809DA +De-Activate DECHash.pas line 1771 BreakPoint at:004809DA +Adding coverage:DECHash.pas (DECHash) 1772 +Clearing BreakPoint at 00480A09 +De-Activate DECHash.pas line 1772 BreakPoint at:00480A09 +Adding coverage:DECHash.pas (DECHash) 1774 +Clearing BreakPoint at 00480A38 +De-Activate DECHash.pas line 1774 BreakPoint at:00480A38 +Adding coverage:DECHash.pas (DECHash) 1775 +Clearing BreakPoint at 00480A41 +De-Activate DECHash.pas line 1775 BreakPoint at:00480A41 +Adding coverage:DECHash.pas (DECHash) 1776 +Clearing BreakPoint at 00480A4A +De-Activate DECHash.pas line 1776 BreakPoint at:00480A4A +Adding coverage:DECHash.pas (DECHash) 1777 +Clearing BreakPoint at 00480A53 +De-Activate DECHash.pas line 1777 BreakPoint at:00480A53 +Adding coverage:DECHash.pas (DECHash) 1778 +Clearing BreakPoint at 00480A5C +De-Activate DECHash.pas line 1778 BreakPoint at:00480A5C +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 1801 +Clearing BreakPoint at 00480A60 +De-Activate DECHash.pas line 1801 BreakPoint at:00480A60 +Adding coverage:DECHash.pas (DECHash) 1802 +Clearing BreakPoint at 00480A6C +De-Activate DECHash.pas line 1802 BreakPoint at:00480A6C +Adding coverage:DECHash.pas (DECHash) 1803 +Clearing BreakPoint at 00480A75 +De-Activate DECHash.pas line 1803 BreakPoint at:00480A75 +Adding coverage:DECHash.pas (DECHash) 1804 +Clearing BreakPoint at 00480A7E +De-Activate DECHash.pas line 1804 BreakPoint at:00480A7E +Adding coverage:DECHash.pas (DECHash) 1805 +Clearing BreakPoint at 00480A87 +De-Activate DECHash.pas line 1805 BreakPoint at:00480A87 +Adding coverage:DECHash.pas (DECHash) 1806 +Clearing BreakPoint at 00480A90 +De-Activate DECHash.pas line 1806 BreakPoint at:00480A90 +Adding coverage:DECHash.pas (DECHash) 1807 +Clearing BreakPoint at 00480A99 +De-Activate DECHash.pas line 1807 BreakPoint at:00480A99 +Adding coverage:DECHash.pas (DECHash) 1808 +Clearing BreakPoint at 00480AA2 +De-Activate DECHash.pas line 1808 BreakPoint at:00480AA2 +Adding coverage:DECHash.pas (DECHash) 1809 +Clearing BreakPoint at 00480AAB +De-Activate DECHash.pas line 1809 BreakPoint at:00480AAB +Adding coverage:DECHash.pas (DECHash) 1811 +Clearing BreakPoint at 00480AB4 +De-Activate DECHash.pas line 1811 BreakPoint at:00480AB4 +Adding coverage:DECHash.pas (DECHash) 1812 +Clearing BreakPoint at 00480AD6 +De-Activate DECHash.pas line 1812 BreakPoint at:00480AD6 +Adding coverage:DECHash.pas (DECHash) 1813 +Clearing BreakPoint at 00480AF9 +De-Activate DECHash.pas line 1813 BreakPoint at:00480AF9 +Adding coverage:DECHash.pas (DECHash) 1814 +Clearing BreakPoint at 00480B1C +De-Activate DECHash.pas line 1814 BreakPoint at:00480B1C +Adding coverage:DECHash.pas (DECHash) 1815 +Clearing BreakPoint at 00480B3F +De-Activate DECHash.pas line 1815 BreakPoint at:00480B3F +Adding coverage:DECHash.pas (DECHash) 1816 +Clearing BreakPoint at 00480B62 +De-Activate DECHash.pas line 1816 BreakPoint at:00480B62 +Adding coverage:DECHash.pas (DECHash) 1817 +Clearing BreakPoint at 00480B85 +De-Activate DECHash.pas line 1817 BreakPoint at:00480B85 +Adding coverage:DECHash.pas (DECHash) 1818 +Clearing BreakPoint at 00480BA8 +De-Activate DECHash.pas line 1818 BreakPoint at:00480BA8 +Adding coverage:DECHash.pas (DECHash) 1819 +Clearing BreakPoint at 00480BCB +De-Activate DECHash.pas line 1819 BreakPoint at:00480BCB +Adding coverage:DECHash.pas (DECHash) 1820 +Clearing BreakPoint at 00480BEE +De-Activate DECHash.pas line 1820 BreakPoint at:00480BEE +Adding coverage:DECHash.pas (DECHash) 1821 +Clearing BreakPoint at 00480C11 +De-Activate DECHash.pas line 1821 BreakPoint at:00480C11 +Adding coverage:DECHash.pas (DECHash) 1822 +Clearing BreakPoint at 00480C34 +De-Activate DECHash.pas line 1822 BreakPoint at:00480C34 +Adding coverage:DECHash.pas (DECHash) 1823 +Clearing BreakPoint at 00480C57 +De-Activate DECHash.pas line 1823 BreakPoint at:00480C57 +Adding coverage:DECHash.pas (DECHash) 1824 +Clearing BreakPoint at 00480C7A +De-Activate DECHash.pas line 1824 BreakPoint at:00480C7A +Adding coverage:DECHash.pas (DECHash) 1825 +Clearing BreakPoint at 00480C9D +De-Activate DECHash.pas line 1825 BreakPoint at:00480C9D +Adding coverage:DECHash.pas (DECHash) 1826 +Clearing BreakPoint at 00480CC0 +De-Activate DECHash.pas line 1826 BreakPoint at:00480CC0 +Adding coverage:DECHash.pas (DECHash) 1828 +Clearing BreakPoint at 00480CE3 +De-Activate DECHash.pas line 1828 BreakPoint at:00480CE3 +Adding coverage:DECHash.pas (DECHash) 1829 +Clearing BreakPoint at 00480D12 +De-Activate DECHash.pas line 1829 BreakPoint at:00480D12 +Adding coverage:DECHash.pas (DECHash) 1830 +Clearing BreakPoint at 00480D41 +De-Activate DECHash.pas line 1830 BreakPoint at:00480D41 +Adding coverage:DECHash.pas (DECHash) 1831 +Clearing BreakPoint at 00480D70 +De-Activate DECHash.pas line 1831 BreakPoint at:00480D70 +Adding coverage:DECHash.pas (DECHash) 1832 +Clearing BreakPoint at 00480D9F +De-Activate DECHash.pas line 1832 BreakPoint at:00480D9F +Adding coverage:DECHash.pas (DECHash) 1833 +Clearing BreakPoint at 00480DCE +De-Activate DECHash.pas line 1833 BreakPoint at:00480DCE +Adding coverage:DECHash.pas (DECHash) 1834 +Clearing BreakPoint at 00480DFD +De-Activate DECHash.pas line 1834 BreakPoint at:00480DFD +Adding coverage:DECHash.pas (DECHash) 1835 +Clearing BreakPoint at 00480E2C +De-Activate DECHash.pas line 1835 BreakPoint at:00480E2C +Adding coverage:DECHash.pas (DECHash) 1836 +Clearing BreakPoint at 00480E5B +De-Activate DECHash.pas line 1836 BreakPoint at:00480E5B +Adding coverage:DECHash.pas (DECHash) 1837 +Clearing BreakPoint at 00480E8A +De-Activate DECHash.pas line 1837 BreakPoint at:00480E8A +Adding coverage:DECHash.pas (DECHash) 1838 +Clearing BreakPoint at 00480EB8 +De-Activate DECHash.pas line 1838 BreakPoint at:00480EB8 +Adding coverage:DECHash.pas (DECHash) 1839 +Clearing BreakPoint at 00480EE7 +De-Activate DECHash.pas line 1839 BreakPoint at:00480EE7 +Adding coverage:DECHash.pas (DECHash) 1840 +Clearing BreakPoint at 00480F16 +De-Activate DECHash.pas line 1840 BreakPoint at:00480F16 +Adding coverage:DECHash.pas (DECHash) 1841 +Clearing BreakPoint at 00480F45 +De-Activate DECHash.pas line 1841 BreakPoint at:00480F45 +Adding coverage:DECHash.pas (DECHash) 1842 +Clearing BreakPoint at 00480F74 +De-Activate DECHash.pas line 1842 BreakPoint at:00480F74 +Adding coverage:DECHash.pas (DECHash) 1843 +Clearing BreakPoint at 00480FA3 +De-Activate DECHash.pas line 1843 BreakPoint at:00480FA3 +Adding coverage:DECHash.pas (DECHash) 1845 +Clearing BreakPoint at 00480FD2 +De-Activate DECHash.pas line 1845 BreakPoint at:00480FD2 +Adding coverage:DECHash.pas (DECHash) 1846 +Clearing BreakPoint at 00480FFC +De-Activate DECHash.pas line 1846 BreakPoint at:00480FFC +Adding coverage:DECHash.pas (DECHash) 1847 +Clearing BreakPoint at 00481026 +De-Activate DECHash.pas line 1847 BreakPoint at:00481026 +Adding coverage:DECHash.pas (DECHash) 1848 +Clearing BreakPoint at 00481050 +De-Activate DECHash.pas line 1848 BreakPoint at:00481050 +Adding coverage:DECHash.pas (DECHash) 1849 +Clearing BreakPoint at 0048107A +De-Activate DECHash.pas line 1849 BreakPoint at:0048107A +Adding coverage:DECHash.pas (DECHash) 1850 +Clearing BreakPoint at 004810A4 +De-Activate DECHash.pas line 1850 BreakPoint at:004810A4 +Adding coverage:DECHash.pas (DECHash) 1851 +Clearing BreakPoint at 004810CE +De-Activate DECHash.pas line 1851 BreakPoint at:004810CE +Adding coverage:DECHash.pas (DECHash) 1852 +Clearing BreakPoint at 004810F8 +De-Activate DECHash.pas line 1852 BreakPoint at:004810F8 +Adding coverage:DECHash.pas (DECHash) 1853 +Clearing BreakPoint at 00481122 +De-Activate DECHash.pas line 1853 BreakPoint at:00481122 +Adding coverage:DECHash.pas (DECHash) 1854 +Clearing BreakPoint at 0048114C +De-Activate DECHash.pas line 1854 BreakPoint at:0048114C +Adding coverage:DECHash.pas (DECHash) 1855 +Clearing BreakPoint at 00481176 +De-Activate DECHash.pas line 1855 BreakPoint at:00481176 +Adding coverage:DECHash.pas (DECHash) 1856 +Clearing BreakPoint at 0048119F +De-Activate DECHash.pas line 1856 BreakPoint at:0048119F +Adding coverage:DECHash.pas (DECHash) 1857 +Clearing BreakPoint at 004811C9 +De-Activate DECHash.pas line 1857 BreakPoint at:004811C9 +Adding coverage:DECHash.pas (DECHash) 1858 +Clearing BreakPoint at 004811F3 +De-Activate DECHash.pas line 1858 BreakPoint at:004811F3 +Adding coverage:DECHash.pas (DECHash) 1859 +Clearing BreakPoint at 0048121D +De-Activate DECHash.pas line 1859 BreakPoint at:0048121D +Adding coverage:DECHash.pas (DECHash) 1860 +Clearing BreakPoint at 00481247 +De-Activate DECHash.pas line 1860 BreakPoint at:00481247 +Adding coverage:DECHash.pas (DECHash) 1862 +Clearing BreakPoint at 00481271 +De-Activate DECHash.pas line 1862 BreakPoint at:00481271 +Adding coverage:DECHash.pas (DECHash) 1863 +Clearing BreakPoint at 004812A0 +De-Activate DECHash.pas line 1863 BreakPoint at:004812A0 +Adding coverage:DECHash.pas (DECHash) 1864 +Clearing BreakPoint at 004812CF +De-Activate DECHash.pas line 1864 BreakPoint at:004812CF +Adding coverage:DECHash.pas (DECHash) 1865 +Clearing BreakPoint at 004812FE +De-Activate DECHash.pas line 1865 BreakPoint at:004812FE +Adding coverage:DECHash.pas (DECHash) 1866 +Clearing BreakPoint at 0048132D +De-Activate DECHash.pas line 1866 BreakPoint at:0048132D +Adding coverage:DECHash.pas (DECHash) 1867 +Clearing BreakPoint at 0048135B +De-Activate DECHash.pas line 1867 BreakPoint at:0048135B +Adding coverage:DECHash.pas (DECHash) 1868 +Clearing BreakPoint at 0048138A +De-Activate DECHash.pas line 1868 BreakPoint at:0048138A +Adding coverage:DECHash.pas (DECHash) 1869 +Clearing BreakPoint at 004813B9 +De-Activate DECHash.pas line 1869 BreakPoint at:004813B9 +Adding coverage:DECHash.pas (DECHash) 1870 +Clearing BreakPoint at 004813E8 +De-Activate DECHash.pas line 1870 BreakPoint at:004813E8 +Adding coverage:DECHash.pas (DECHash) 1871 +Clearing BreakPoint at 00481417 +De-Activate DECHash.pas line 1871 BreakPoint at:00481417 +Adding coverage:DECHash.pas (DECHash) 1872 +Clearing BreakPoint at 00481446 +De-Activate DECHash.pas line 1872 BreakPoint at:00481446 +Adding coverage:DECHash.pas (DECHash) 1873 +Clearing BreakPoint at 00481475 +De-Activate DECHash.pas line 1873 BreakPoint at:00481475 +Adding coverage:DECHash.pas (DECHash) 1874 +Clearing BreakPoint at 004814A4 +De-Activate DECHash.pas line 1874 BreakPoint at:004814A4 +Adding coverage:DECHash.pas (DECHash) 1875 +Clearing BreakPoint at 004814D3 +De-Activate DECHash.pas line 1875 BreakPoint at:004814D3 +Adding coverage:DECHash.pas (DECHash) 1876 +Clearing BreakPoint at 00481502 +De-Activate DECHash.pas line 1876 BreakPoint at:00481502 +Adding coverage:DECHash.pas (DECHash) 1877 +Clearing BreakPoint at 00481531 +De-Activate DECHash.pas line 1877 BreakPoint at:00481531 +Adding coverage:DECHash.pas (DECHash) 1879 +Clearing BreakPoint at 00481560 +De-Activate DECHash.pas line 1879 BreakPoint at:00481560 +Adding coverage:DECHash.pas (DECHash) 1880 +Clearing BreakPoint at 00481572 +De-Activate DECHash.pas line 1880 BreakPoint at:00481572 +Adding coverage:DECHash.pas (DECHash) 1881 +Clearing BreakPoint at 00481584 +De-Activate DECHash.pas line 1881 BreakPoint at:00481584 +Adding coverage:DECHash.pas (DECHash) 1882 +Clearing BreakPoint at 00481596 +De-Activate DECHash.pas line 1882 BreakPoint at:00481596 +Adding coverage:DECHash.pas (DECHash) 1884 +Clearing BreakPoint at 004815A8 +De-Activate DECHash.pas line 1884 BreakPoint at:004815A8 +Adding coverage:DECHash.pas (DECHash) 1885 +Clearing BreakPoint at 004815D7 +De-Activate DECHash.pas line 1885 BreakPoint at:004815D7 +Adding coverage:DECHash.pas (DECHash) 1886 +Clearing BreakPoint at 00481606 +De-Activate DECHash.pas line 1886 BreakPoint at:00481606 +Adding coverage:DECHash.pas (DECHash) 1887 +Clearing BreakPoint at 00481635 +De-Activate DECHash.pas line 1887 BreakPoint at:00481635 +Adding coverage:DECHash.pas (DECHash) 1888 +Clearing BreakPoint at 00481663 +De-Activate DECHash.pas line 1888 BreakPoint at:00481663 +Adding coverage:DECHash.pas (DECHash) 1889 +Clearing BreakPoint at 00481692 +De-Activate DECHash.pas line 1889 BreakPoint at:00481692 +Adding coverage:DECHash.pas (DECHash) 1890 +Clearing BreakPoint at 004816C1 +De-Activate DECHash.pas line 1890 BreakPoint at:004816C1 +Adding coverage:DECHash.pas (DECHash) 1891 +Clearing BreakPoint at 004816F0 +De-Activate DECHash.pas line 1891 BreakPoint at:004816F0 +Adding coverage:DECHash.pas (DECHash) 1892 +Clearing BreakPoint at 0048171F +De-Activate DECHash.pas line 1892 BreakPoint at:0048171F +Adding coverage:DECHash.pas (DECHash) 1893 +Clearing BreakPoint at 0048174E +De-Activate DECHash.pas line 1893 BreakPoint at:0048174E +Adding coverage:DECHash.pas (DECHash) 1894 +Clearing BreakPoint at 0048177D +De-Activate DECHash.pas line 1894 BreakPoint at:0048177D +Adding coverage:DECHash.pas (DECHash) 1895 +Clearing BreakPoint at 004817AC +De-Activate DECHash.pas line 1895 BreakPoint at:004817AC +Adding coverage:DECHash.pas (DECHash) 1896 +Clearing BreakPoint at 004817DB +De-Activate DECHash.pas line 1896 BreakPoint at:004817DB +Adding coverage:DECHash.pas (DECHash) 1897 +Clearing BreakPoint at 0048180A +De-Activate DECHash.pas line 1897 BreakPoint at:0048180A +Adding coverage:DECHash.pas (DECHash) 1898 +Clearing BreakPoint at 00481839 +De-Activate DECHash.pas line 1898 BreakPoint at:00481839 +Adding coverage:DECHash.pas (DECHash) 1899 +Clearing BreakPoint at 00481868 +De-Activate DECHash.pas line 1899 BreakPoint at:00481868 +Adding coverage:DECHash.pas (DECHash) 1901 +Clearing BreakPoint at 00481897 +De-Activate DECHash.pas line 1901 BreakPoint at:00481897 +Adding coverage:DECHash.pas (DECHash) 1902 +Clearing BreakPoint at 004818C1 +De-Activate DECHash.pas line 1902 BreakPoint at:004818C1 +Adding coverage:DECHash.pas (DECHash) 1903 +Clearing BreakPoint at 004818EB +De-Activate DECHash.pas line 1903 BreakPoint at:004818EB +Adding coverage:DECHash.pas (DECHash) 1904 +Clearing BreakPoint at 00481915 +De-Activate DECHash.pas line 1904 BreakPoint at:00481915 +Adding coverage:DECHash.pas (DECHash) 1905 +Clearing BreakPoint at 0048193F +De-Activate DECHash.pas line 1905 BreakPoint at:0048193F +Adding coverage:DECHash.pas (DECHash) 1906 +Clearing BreakPoint at 00481968 +De-Activate DECHash.pas line 1906 BreakPoint at:00481968 +Adding coverage:DECHash.pas (DECHash) 1907 +Clearing BreakPoint at 00481992 +De-Activate DECHash.pas line 1907 BreakPoint at:00481992 +Adding coverage:DECHash.pas (DECHash) 1908 +Clearing BreakPoint at 004819BC +De-Activate DECHash.pas line 1908 BreakPoint at:004819BC +Adding coverage:DECHash.pas (DECHash) 1909 +Clearing BreakPoint at 004819E6 +De-Activate DECHash.pas line 1909 BreakPoint at:004819E6 +Adding coverage:DECHash.pas (DECHash) 1910 +Clearing BreakPoint at 00481A10 +De-Activate DECHash.pas line 1910 BreakPoint at:00481A10 +Adding coverage:DECHash.pas (DECHash) 1911 +Clearing BreakPoint at 00481A3A +De-Activate DECHash.pas line 1911 BreakPoint at:00481A3A +Adding coverage:DECHash.pas (DECHash) 1912 +Clearing BreakPoint at 00481A64 +De-Activate DECHash.pas line 1912 BreakPoint at:00481A64 +Adding coverage:DECHash.pas (DECHash) 1913 +Clearing BreakPoint at 00481A8E +De-Activate DECHash.pas line 1913 BreakPoint at:00481A8E +Adding coverage:DECHash.pas (DECHash) 1914 +Clearing BreakPoint at 00481AB8 +De-Activate DECHash.pas line 1914 BreakPoint at:00481AB8 +Adding coverage:DECHash.pas (DECHash) 1915 +Clearing BreakPoint at 00481AE2 +De-Activate DECHash.pas line 1915 BreakPoint at:00481AE2 +Adding coverage:DECHash.pas (DECHash) 1916 +Clearing BreakPoint at 00481B0C +De-Activate DECHash.pas line 1916 BreakPoint at:00481B0C +Adding coverage:DECHash.pas (DECHash) 1918 +Clearing BreakPoint at 00481B36 +De-Activate DECHash.pas line 1918 BreakPoint at:00481B36 +Adding coverage:DECHash.pas (DECHash) 1919 +Clearing BreakPoint at 00481B65 +De-Activate DECHash.pas line 1919 BreakPoint at:00481B65 +Adding coverage:DECHash.pas (DECHash) 1920 +Clearing BreakPoint at 00481B94 +De-Activate DECHash.pas line 1920 BreakPoint at:00481B94 +Adding coverage:DECHash.pas (DECHash) 1921 +Clearing BreakPoint at 00481BC3 +De-Activate DECHash.pas line 1921 BreakPoint at:00481BC3 +Adding coverage:DECHash.pas (DECHash) 1922 +Clearing BreakPoint at 00481BF2 +De-Activate DECHash.pas line 1922 BreakPoint at:00481BF2 +Adding coverage:DECHash.pas (DECHash) 1923 +Clearing BreakPoint at 00481C21 +De-Activate DECHash.pas line 1923 BreakPoint at:00481C21 +Adding coverage:DECHash.pas (DECHash) 1924 +Clearing BreakPoint at 00481C50 +De-Activate DECHash.pas line 1924 BreakPoint at:00481C50 +Adding coverage:DECHash.pas (DECHash) 1925 +Clearing BreakPoint at 00481C7F +De-Activate DECHash.pas line 1925 BreakPoint at:00481C7F +Adding coverage:DECHash.pas (DECHash) 1926 +Clearing BreakPoint at 00481CAE +De-Activate DECHash.pas line 1926 BreakPoint at:00481CAE +Adding coverage:DECHash.pas (DECHash) 1927 +Clearing BreakPoint at 00481CDD +De-Activate DECHash.pas line 1927 BreakPoint at:00481CDD +Adding coverage:DECHash.pas (DECHash) 1928 +Clearing BreakPoint at 00481D0C +De-Activate DECHash.pas line 1928 BreakPoint at:00481D0C +Adding coverage:DECHash.pas (DECHash) 1929 +Clearing BreakPoint at 00481D3B +De-Activate DECHash.pas line 1929 BreakPoint at:00481D3B +Adding coverage:DECHash.pas (DECHash) 1930 +Clearing BreakPoint at 00481D6A +De-Activate DECHash.pas line 1930 BreakPoint at:00481D6A +Adding coverage:DECHash.pas (DECHash) 1931 +Clearing BreakPoint at 00481D99 +De-Activate DECHash.pas line 1931 BreakPoint at:00481D99 +Adding coverage:DECHash.pas (DECHash) 1932 +Clearing BreakPoint at 00481DC7 +De-Activate DECHash.pas line 1932 BreakPoint at:00481DC7 +Adding coverage:DECHash.pas (DECHash) 1933 +Clearing BreakPoint at 00481DF6 +De-Activate DECHash.pas line 1933 BreakPoint at:00481DF6 +Adding coverage:DECHash.pas (DECHash) 1935 +Clearing BreakPoint at 00481E25 +De-Activate DECHash.pas line 1935 BreakPoint at:00481E25 +Adding coverage:DECHash.pas (DECHash) 1936 +Clearing BreakPoint at 00481E48 +De-Activate DECHash.pas line 1936 BreakPoint at:00481E48 +Adding coverage:DECHash.pas (DECHash) 1937 +Clearing BreakPoint at 00481E6B +De-Activate DECHash.pas line 1937 BreakPoint at:00481E6B +Adding coverage:DECHash.pas (DECHash) 1938 +Clearing BreakPoint at 00481E8E +De-Activate DECHash.pas line 1938 BreakPoint at:00481E8E +Adding coverage:DECHash.pas (DECHash) 1939 +Clearing BreakPoint at 00481EB1 +De-Activate DECHash.pas line 1939 BreakPoint at:00481EB1 +Adding coverage:DECHash.pas (DECHash) 1940 +Clearing BreakPoint at 00481ED4 +De-Activate DECHash.pas line 1940 BreakPoint at:00481ED4 +Adding coverage:DECHash.pas (DECHash) 1941 +Clearing BreakPoint at 00481EF7 +De-Activate DECHash.pas line 1941 BreakPoint at:00481EF7 +Adding coverage:DECHash.pas (DECHash) 1942 +Clearing BreakPoint at 00481F1A +De-Activate DECHash.pas line 1942 BreakPoint at:00481F1A +Adding coverage:DECHash.pas (DECHash) 1943 +Clearing BreakPoint at 00481F3C +De-Activate DECHash.pas line 1943 BreakPoint at:00481F3C +Adding coverage:DECHash.pas (DECHash) 1944 +Clearing BreakPoint at 00481F5F +De-Activate DECHash.pas line 1944 BreakPoint at:00481F5F +Adding coverage:DECHash.pas (DECHash) 1945 +Clearing BreakPoint at 00481F82 +De-Activate DECHash.pas line 1945 BreakPoint at:00481F82 +Adding coverage:DECHash.pas (DECHash) 1946 +Clearing BreakPoint at 00481FA5 +De-Activate DECHash.pas line 1946 BreakPoint at:00481FA5 +Adding coverage:DECHash.pas (DECHash) 1947 +Clearing BreakPoint at 00481FC8 +De-Activate DECHash.pas line 1947 BreakPoint at:00481FC8 +Adding coverage:DECHash.pas (DECHash) 1948 +Clearing BreakPoint at 00481FEB +De-Activate DECHash.pas line 1948 BreakPoint at:00481FEB +Adding coverage:DECHash.pas (DECHash) 1949 +Clearing BreakPoint at 0048200E +De-Activate DECHash.pas line 1949 BreakPoint at:0048200E +Adding coverage:DECHash.pas (DECHash) 1950 +Clearing BreakPoint at 00482031 +De-Activate DECHash.pas line 1950 BreakPoint at:00482031 +Adding coverage:DECHash.pas (DECHash) 1952 +Clearing BreakPoint at 00482054 +De-Activate DECHash.pas line 1952 BreakPoint at:00482054 +Adding coverage:DECHash.pas (DECHash) 1953 +Clearing BreakPoint at 00482060 +De-Activate DECHash.pas line 1953 BreakPoint at:00482060 +Adding coverage:DECHash.pas (DECHash) 1954 +Clearing BreakPoint at 00482072 +De-Activate DECHash.pas line 1954 BreakPoint at:00482072 +Adding coverage:DECHash.pas (DECHash) 1955 +Clearing BreakPoint at 00482084 +De-Activate DECHash.pas line 1955 BreakPoint at:00482084 +Adding coverage:DECHash.pas (DECHash) 1956 +Clearing BreakPoint at 00482096 +De-Activate DECHash.pas line 1956 BreakPoint at:00482096 +Adding coverage:DECHash.pas (DECHash) 1957 +Clearing BreakPoint at 0048209F +De-Activate DECHash.pas line 1957 BreakPoint at:0048209F +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2167 +Clearing BreakPoint at 004848DC +De-Activate DECHash.pas line 2167 BreakPoint at:004848DC +Adding coverage:DECHash.pas (DECHash) 2168 +Clearing BreakPoint at 004848E5 +De-Activate DECHash.pas line 2168 BreakPoint at:004848E5 +Adding coverage:DECHash.pas (DECHash) 2169 +Clearing BreakPoint at 004848EC +De-Activate DECHash.pas line 2169 BreakPoint at:004848EC +Adding coverage:DECHash.pas (DECHash) 1968 +Clearing BreakPoint at 004820A4 +De-Activate DECHash.pas line 1968 BreakPoint at:004820A4 +Adding coverage:DECHash.pas (DECHash) 1969 +Clearing BreakPoint at 004820B0 +De-Activate DECHash.pas line 1969 BreakPoint at:004820B0 +Adding coverage:DECHash.pas (DECHash) 1970 +Clearing BreakPoint at 004820B9 +De-Activate DECHash.pas line 1970 BreakPoint at:004820B9 +Adding coverage:DECHash.pas (DECHash) 1971 +Clearing BreakPoint at 004820C2 +De-Activate DECHash.pas line 1971 BreakPoint at:004820C2 +Adding coverage:DECHash.pas (DECHash) 1972 +Clearing BreakPoint at 004820CB +De-Activate DECHash.pas line 1972 BreakPoint at:004820CB +Adding coverage:DECHash.pas (DECHash) 1973 +Clearing BreakPoint at 004820D4 +De-Activate DECHash.pas line 1973 BreakPoint at:004820D4 +Adding coverage:DECHash.pas (DECHash) 1975 +Clearing BreakPoint at 004820DD +De-Activate DECHash.pas line 1975 BreakPoint at:004820DD +Adding coverage:DECHash.pas (DECHash) 1976 +Clearing BreakPoint at 004820E6 +De-Activate DECHash.pas line 1976 BreakPoint at:004820E6 +Adding coverage:DECHash.pas (DECHash) 1977 +Clearing BreakPoint at 004820EF +De-Activate DECHash.pas line 1977 BreakPoint at:004820EF +Adding coverage:DECHash.pas (DECHash) 1978 +Clearing BreakPoint at 004820F8 +De-Activate DECHash.pas line 1978 BreakPoint at:004820F8 +Adding coverage:DECHash.pas (DECHash) 1979 +Clearing BreakPoint at 00482101 +De-Activate DECHash.pas line 1979 BreakPoint at:00482101 +Adding coverage:DECHash.pas (DECHash) 1981 +Clearing BreakPoint at 0048210A +De-Activate DECHash.pas line 1981 BreakPoint at:0048210A +Adding coverage:DECHash.pas (DECHash) 1982 +Clearing BreakPoint at 00482140 +De-Activate DECHash.pas line 1982 BreakPoint at:00482140 +Adding coverage:DECHash.pas (DECHash) 1983 +Clearing BreakPoint at 00482177 +De-Activate DECHash.pas line 1983 BreakPoint at:00482177 +Adding coverage:DECHash.pas (DECHash) 1984 +Clearing BreakPoint at 004821AE +De-Activate DECHash.pas line 1984 BreakPoint at:004821AE +Adding coverage:DECHash.pas (DECHash) 1985 +Clearing BreakPoint at 004821E5 +De-Activate DECHash.pas line 1985 BreakPoint at:004821E5 +Adding coverage:DECHash.pas (DECHash) 1986 +Clearing BreakPoint at 0048221C +De-Activate DECHash.pas line 1986 BreakPoint at:0048221C +Adding coverage:DECHash.pas (DECHash) 1987 +Clearing BreakPoint at 00482253 +De-Activate DECHash.pas line 1987 BreakPoint at:00482253 +Adding coverage:DECHash.pas (DECHash) 1988 +Clearing BreakPoint at 0048228A +De-Activate DECHash.pas line 1988 BreakPoint at:0048228A +Adding coverage:DECHash.pas (DECHash) 1989 +Clearing BreakPoint at 004822C1 +De-Activate DECHash.pas line 1989 BreakPoint at:004822C1 +Adding coverage:DECHash.pas (DECHash) 1990 +Clearing BreakPoint at 004822F8 +De-Activate DECHash.pas line 1990 BreakPoint at:004822F8 +Adding coverage:DECHash.pas (DECHash) 1991 +Clearing BreakPoint at 0048232F +De-Activate DECHash.pas line 1991 BreakPoint at:0048232F +Adding coverage:DECHash.pas (DECHash) 1992 +Clearing BreakPoint at 00482366 +De-Activate DECHash.pas line 1992 BreakPoint at:00482366 +Adding coverage:DECHash.pas (DECHash) 1993 +Clearing BreakPoint at 0048239D +De-Activate DECHash.pas line 1993 BreakPoint at:0048239D +Adding coverage:DECHash.pas (DECHash) 1994 +Clearing BreakPoint at 004823D4 +De-Activate DECHash.pas line 1994 BreakPoint at:004823D4 +Adding coverage:DECHash.pas (DECHash) 1995 +Clearing BreakPoint at 0048240B +De-Activate DECHash.pas line 1995 BreakPoint at:0048240B +Adding coverage:DECHash.pas (DECHash) 1996 +Clearing BreakPoint at 00482442 +De-Activate DECHash.pas line 1996 BreakPoint at:00482442 +Adding coverage:DECHash.pas (DECHash) 1998 +Clearing BreakPoint at 00482479 +De-Activate DECHash.pas line 1998 BreakPoint at:00482479 +Adding coverage:DECHash.pas (DECHash) 1999 +Clearing BreakPoint at 004824BC +De-Activate DECHash.pas line 1999 BreakPoint at:004824BC +Adding coverage:DECHash.pas (DECHash) 2000 +Clearing BreakPoint at 004824FF +De-Activate DECHash.pas line 2000 BreakPoint at:004824FF +Adding coverage:DECHash.pas (DECHash) 2001 +Clearing BreakPoint at 00482542 +De-Activate DECHash.pas line 2001 BreakPoint at:00482542 +Adding coverage:DECHash.pas (DECHash) 2002 +Clearing BreakPoint at 00482585 +De-Activate DECHash.pas line 2002 BreakPoint at:00482585 +Adding coverage:DECHash.pas (DECHash) 2003 +Clearing BreakPoint at 004825C8 +De-Activate DECHash.pas line 2003 BreakPoint at:004825C8 +Adding coverage:DECHash.pas (DECHash) 2004 +Clearing BreakPoint at 0048260B +De-Activate DECHash.pas line 2004 BreakPoint at:0048260B +Adding coverage:DECHash.pas (DECHash) 2005 +Clearing BreakPoint at 0048264E +De-Activate DECHash.pas line 2005 BreakPoint at:0048264E +Adding coverage:DECHash.pas (DECHash) 2006 +Clearing BreakPoint at 00482691 +De-Activate DECHash.pas line 2006 BreakPoint at:00482691 +Adding coverage:DECHash.pas (DECHash) 2007 +Clearing BreakPoint at 004826D4 +De-Activate DECHash.pas line 2007 BreakPoint at:004826D4 +Adding coverage:DECHash.pas (DECHash) 2008 +Clearing BreakPoint at 00482716 +De-Activate DECHash.pas line 2008 BreakPoint at:00482716 +Adding coverage:DECHash.pas (DECHash) 2009 +Clearing BreakPoint at 00482759 +De-Activate DECHash.pas line 2009 BreakPoint at:00482759 +Adding coverage:DECHash.pas (DECHash) 2010 +Clearing BreakPoint at 0048279C +De-Activate DECHash.pas line 2010 BreakPoint at:0048279C +Adding coverage:DECHash.pas (DECHash) 2011 +Clearing BreakPoint at 004827DF +De-Activate DECHash.pas line 2011 BreakPoint at:004827DF +Adding coverage:DECHash.pas (DECHash) 2012 +Clearing BreakPoint at 00482822 +De-Activate DECHash.pas line 2012 BreakPoint at:00482822 +Adding coverage:DECHash.pas (DECHash) 2013 +Clearing BreakPoint at 00482865 +De-Activate DECHash.pas line 2013 BreakPoint at:00482865 +Adding coverage:DECHash.pas (DECHash) 2015 +Clearing BreakPoint at 004828A8 +De-Activate DECHash.pas line 2015 BreakPoint at:004828A8 +Adding coverage:DECHash.pas (DECHash) 2016 +Clearing BreakPoint at 004828E6 +De-Activate DECHash.pas line 2016 BreakPoint at:004828E6 +Adding coverage:DECHash.pas (DECHash) 2017 +Clearing BreakPoint at 00482924 +De-Activate DECHash.pas line 2017 BreakPoint at:00482924 +Adding coverage:DECHash.pas (DECHash) 2018 +Clearing BreakPoint at 00482962 +De-Activate DECHash.pas line 2018 BreakPoint at:00482962 +Adding coverage:DECHash.pas (DECHash) 2019 +Clearing BreakPoint at 004829A0 +De-Activate DECHash.pas line 2019 BreakPoint at:004829A0 +Adding coverage:DECHash.pas (DECHash) 2020 +Clearing BreakPoint at 004829DE +De-Activate DECHash.pas line 2020 BreakPoint at:004829DE +Adding coverage:DECHash.pas (DECHash) 2021 +Clearing BreakPoint at 00482A1C +De-Activate DECHash.pas line 2021 BreakPoint at:00482A1C +Adding coverage:DECHash.pas (DECHash) 2022 +Clearing BreakPoint at 00482A5A +De-Activate DECHash.pas line 2022 BreakPoint at:00482A5A +Adding coverage:DECHash.pas (DECHash) 2023 +Clearing BreakPoint at 00482A98 +De-Activate DECHash.pas line 2023 BreakPoint at:00482A98 +Adding coverage:DECHash.pas (DECHash) 2024 +Clearing BreakPoint at 00482AD6 +De-Activate DECHash.pas line 2024 BreakPoint at:00482AD6 +Adding coverage:DECHash.pas (DECHash) 2025 +Clearing BreakPoint at 00482B14 +De-Activate DECHash.pas line 2025 BreakPoint at:00482B14 +Adding coverage:DECHash.pas (DECHash) 2026 +Clearing BreakPoint at 00482B51 +De-Activate DECHash.pas line 2026 BreakPoint at:00482B51 +Adding coverage:DECHash.pas (DECHash) 2027 +Clearing BreakPoint at 00482B8F +De-Activate DECHash.pas line 2027 BreakPoint at:00482B8F +Adding coverage:DECHash.pas (DECHash) 2028 +Clearing BreakPoint at 00482BCD +De-Activate DECHash.pas line 2028 BreakPoint at:00482BCD +Adding coverage:DECHash.pas (DECHash) 2029 +Clearing BreakPoint at 00482C0B +De-Activate DECHash.pas line 2029 BreakPoint at:00482C0B +Adding coverage:DECHash.pas (DECHash) 2030 +Clearing BreakPoint at 00482C49 +De-Activate DECHash.pas line 2030 BreakPoint at:00482C49 +Adding coverage:DECHash.pas (DECHash) 2032 +Clearing BreakPoint at 00482C87 +De-Activate DECHash.pas line 2032 BreakPoint at:00482C87 +Adding coverage:DECHash.pas (DECHash) 2033 +Clearing BreakPoint at 00482CCA +De-Activate DECHash.pas line 2033 BreakPoint at:00482CCA +Adding coverage:DECHash.pas (DECHash) 2034 +Clearing BreakPoint at 00482D0D +De-Activate DECHash.pas line 2034 BreakPoint at:00482D0D +Adding coverage:DECHash.pas (DECHash) 2035 +Clearing BreakPoint at 00482D50 +De-Activate DECHash.pas line 2035 BreakPoint at:00482D50 +Adding coverage:DECHash.pas (DECHash) 2036 +Clearing BreakPoint at 00482D93 +De-Activate DECHash.pas line 2036 BreakPoint at:00482D93 +Adding coverage:DECHash.pas (DECHash) 2037 +Clearing BreakPoint at 00482DD5 +De-Activate DECHash.pas line 2037 BreakPoint at:00482DD5 +Adding coverage:DECHash.pas (DECHash) 2038 +Clearing BreakPoint at 00482E18 +De-Activate DECHash.pas line 2038 BreakPoint at:00482E18 +Adding coverage:DECHash.pas (DECHash) 2039 +Clearing BreakPoint at 00482E5B +De-Activate DECHash.pas line 2039 BreakPoint at:00482E5B +Adding coverage:DECHash.pas (DECHash) 2040 +Clearing BreakPoint at 00482E9E +De-Activate DECHash.pas line 2040 BreakPoint at:00482E9E +Adding coverage:DECHash.pas (DECHash) 2041 +Clearing BreakPoint at 00482EE1 +De-Activate DECHash.pas line 2041 BreakPoint at:00482EE1 +Adding coverage:DECHash.pas (DECHash) 2042 +Clearing BreakPoint at 00482F24 +De-Activate DECHash.pas line 2042 BreakPoint at:00482F24 +Adding coverage:DECHash.pas (DECHash) 2043 +Clearing BreakPoint at 00482F67 +De-Activate DECHash.pas line 2043 BreakPoint at:00482F67 +Adding coverage:DECHash.pas (DECHash) 2044 +Clearing BreakPoint at 00482FAA +De-Activate DECHash.pas line 2044 BreakPoint at:00482FAA +Adding coverage:DECHash.pas (DECHash) 2045 +Clearing BreakPoint at 00482FED +De-Activate DECHash.pas line 2045 BreakPoint at:00482FED +Adding coverage:DECHash.pas (DECHash) 2046 +Clearing BreakPoint at 00483030 +De-Activate DECHash.pas line 2046 BreakPoint at:00483030 +Adding coverage:DECHash.pas (DECHash) 2047 +Clearing BreakPoint at 00483073 +De-Activate DECHash.pas line 2047 BreakPoint at:00483073 +Adding coverage:DECHash.pas (DECHash) 2049 +Clearing BreakPoint at 004830B6 +De-Activate DECHash.pas line 2049 BreakPoint at:004830B6 +Adding coverage:DECHash.pas (DECHash) 2050 +Clearing BreakPoint at 004830F4 +De-Activate DECHash.pas line 2050 BreakPoint at:004830F4 +Adding coverage:DECHash.pas (DECHash) 2051 +Clearing BreakPoint at 00483131 +De-Activate DECHash.pas line 2051 BreakPoint at:00483131 +Adding coverage:DECHash.pas (DECHash) 2052 +Clearing BreakPoint at 0048316F +De-Activate DECHash.pas line 2052 BreakPoint at:0048316F +Adding coverage:DECHash.pas (DECHash) 2053 +Clearing BreakPoint at 004831AD +De-Activate DECHash.pas line 2053 BreakPoint at:004831AD +Adding coverage:DECHash.pas (DECHash) 2054 +Clearing BreakPoint at 004831EB +De-Activate DECHash.pas line 2054 BreakPoint at:004831EB +Adding coverage:DECHash.pas (DECHash) 2055 +Clearing BreakPoint at 00483229 +De-Activate DECHash.pas line 2055 BreakPoint at:00483229 +Adding coverage:DECHash.pas (DECHash) 2056 +Clearing BreakPoint at 00483267 +De-Activate DECHash.pas line 2056 BreakPoint at:00483267 +Adding coverage:DECHash.pas (DECHash) 2057 +Clearing BreakPoint at 004832A5 +De-Activate DECHash.pas line 2057 BreakPoint at:004832A5 +Adding coverage:DECHash.pas (DECHash) 2058 +Clearing BreakPoint at 004832E3 +De-Activate DECHash.pas line 2058 BreakPoint at:004832E3 +Adding coverage:DECHash.pas (DECHash) 2059 +Clearing BreakPoint at 00483321 +De-Activate DECHash.pas line 2059 BreakPoint at:00483321 +Adding coverage:DECHash.pas (DECHash) 2060 +Clearing BreakPoint at 0048335F +De-Activate DECHash.pas line 2060 BreakPoint at:0048335F +Adding coverage:DECHash.pas (DECHash) 2061 +Clearing BreakPoint at 0048339D +De-Activate DECHash.pas line 2061 BreakPoint at:0048339D +Adding coverage:DECHash.pas (DECHash) 2062 +Clearing BreakPoint at 004833DB +De-Activate DECHash.pas line 2062 BreakPoint at:004833DB +Adding coverage:DECHash.pas (DECHash) 2063 +Clearing BreakPoint at 00483419 +De-Activate DECHash.pas line 2063 BreakPoint at:00483419 +Adding coverage:DECHash.pas (DECHash) 2064 +Clearing BreakPoint at 00483457 +De-Activate DECHash.pas line 2064 BreakPoint at:00483457 +Adding coverage:DECHash.pas (DECHash) 2066 +Clearing BreakPoint at 00483495 +De-Activate DECHash.pas line 2066 BreakPoint at:00483495 +Adding coverage:DECHash.pas (DECHash) 2067 +Clearing BreakPoint at 004834A7 +De-Activate DECHash.pas line 2067 BreakPoint at:004834A7 +Adding coverage:DECHash.pas (DECHash) 2068 +Clearing BreakPoint at 004834B9 +De-Activate DECHash.pas line 2068 BreakPoint at:004834B9 +Adding coverage:DECHash.pas (DECHash) 2069 +Clearing BreakPoint at 004834CB +De-Activate DECHash.pas line 2069 BreakPoint at:004834CB +Adding coverage:DECHash.pas (DECHash) 2070 +Clearing BreakPoint at 004834DD +De-Activate DECHash.pas line 2070 BreakPoint at:004834DD +Adding coverage:DECHash.pas (DECHash) 2072 +Clearing BreakPoint at 004834EF +De-Activate DECHash.pas line 2072 BreakPoint at:004834EF +Adding coverage:DECHash.pas (DECHash) 2073 +Clearing BreakPoint at 0048352D +De-Activate DECHash.pas line 2073 BreakPoint at:0048352D +Adding coverage:DECHash.pas (DECHash) 2074 +Clearing BreakPoint at 0048356B +De-Activate DECHash.pas line 2074 BreakPoint at:0048356B +Adding coverage:DECHash.pas (DECHash) 2075 +Clearing BreakPoint at 004835A9 +De-Activate DECHash.pas line 2075 BreakPoint at:004835A9 +Adding coverage:DECHash.pas (DECHash) 2076 +Clearing BreakPoint at 004835E6 +De-Activate DECHash.pas line 2076 BreakPoint at:004835E6 +Adding coverage:DECHash.pas (DECHash) 2077 +Clearing BreakPoint at 00483624 +De-Activate DECHash.pas line 2077 BreakPoint at:00483624 +Adding coverage:DECHash.pas (DECHash) 2078 +Clearing BreakPoint at 00483662 +De-Activate DECHash.pas line 2078 BreakPoint at:00483662 +Adding coverage:DECHash.pas (DECHash) 2079 +Clearing BreakPoint at 004836A0 +De-Activate DECHash.pas line 2079 BreakPoint at:004836A0 +Adding coverage:DECHash.pas (DECHash) 2080 +Clearing BreakPoint at 004836DE +De-Activate DECHash.pas line 2080 BreakPoint at:004836DE +Adding coverage:DECHash.pas (DECHash) 2081 +Clearing BreakPoint at 0048371C +De-Activate DECHash.pas line 2081 BreakPoint at:0048371C +Adding coverage:DECHash.pas (DECHash) 2082 +Clearing BreakPoint at 0048375A +De-Activate DECHash.pas line 2082 BreakPoint at:0048375A +Adding coverage:DECHash.pas (DECHash) 2083 +Clearing BreakPoint at 00483798 +De-Activate DECHash.pas line 2083 BreakPoint at:00483798 +Adding coverage:DECHash.pas (DECHash) 2084 +Clearing BreakPoint at 004837D6 +De-Activate DECHash.pas line 2084 BreakPoint at:004837D6 +Adding coverage:DECHash.pas (DECHash) 2085 +Clearing BreakPoint at 00483814 +De-Activate DECHash.pas line 2085 BreakPoint at:00483814 +Adding coverage:DECHash.pas (DECHash) 2086 +Clearing BreakPoint at 00483852 +De-Activate DECHash.pas line 2086 BreakPoint at:00483852 +Adding coverage:DECHash.pas (DECHash) 2087 +Clearing BreakPoint at 00483890 +De-Activate DECHash.pas line 2087 BreakPoint at:00483890 +Adding coverage:DECHash.pas (DECHash) 2089 +Clearing BreakPoint at 004838CE +De-Activate DECHash.pas line 2089 BreakPoint at:004838CE +Adding coverage:DECHash.pas (DECHash) 2090 +Clearing BreakPoint at 00483911 +De-Activate DECHash.pas line 2090 BreakPoint at:00483911 +Adding coverage:DECHash.pas (DECHash) 2091 +Clearing BreakPoint at 00483954 +De-Activate DECHash.pas line 2091 BreakPoint at:00483954 +Adding coverage:DECHash.pas (DECHash) 2092 +Clearing BreakPoint at 00483997 +De-Activate DECHash.pas line 2092 BreakPoint at:00483997 +Adding coverage:DECHash.pas (DECHash) 2093 +Clearing BreakPoint at 004839DA +De-Activate DECHash.pas line 2093 BreakPoint at:004839DA +Adding coverage:DECHash.pas (DECHash) 2094 +Clearing BreakPoint at 00483A1C +De-Activate DECHash.pas line 2094 BreakPoint at:00483A1C +Adding coverage:DECHash.pas (DECHash) 2095 +Clearing BreakPoint at 00483A5F +De-Activate DECHash.pas line 2095 BreakPoint at:00483A5F +Adding coverage:DECHash.pas (DECHash) 2096 +Clearing BreakPoint at 00483AA2 +De-Activate DECHash.pas line 2096 BreakPoint at:00483AA2 +Adding coverage:DECHash.pas (DECHash) 2097 +Clearing BreakPoint at 00483AE5 +De-Activate DECHash.pas line 2097 BreakPoint at:00483AE5 +Adding coverage:DECHash.pas (DECHash) 2098 +Clearing BreakPoint at 00483B28 +De-Activate DECHash.pas line 2098 BreakPoint at:00483B28 +Adding coverage:DECHash.pas (DECHash) 2099 +Clearing BreakPoint at 00483B6B +De-Activate DECHash.pas line 2099 BreakPoint at:00483B6B +Adding coverage:DECHash.pas (DECHash) 2100 +Clearing BreakPoint at 00483BAE +De-Activate DECHash.pas line 2100 BreakPoint at:00483BAE +Adding coverage:DECHash.pas (DECHash) 2101 +Clearing BreakPoint at 00483BF1 +De-Activate DECHash.pas line 2101 BreakPoint at:00483BF1 +Adding coverage:DECHash.pas (DECHash) 2102 +Clearing BreakPoint at 00483C34 +De-Activate DECHash.pas line 2102 BreakPoint at:00483C34 +Adding coverage:DECHash.pas (DECHash) 2103 +Clearing BreakPoint at 00483C77 +De-Activate DECHash.pas line 2103 BreakPoint at:00483C77 +Adding coverage:DECHash.pas (DECHash) 2104 +Clearing BreakPoint at 00483CBA +De-Activate DECHash.pas line 2104 BreakPoint at:00483CBA +Adding coverage:DECHash.pas (DECHash) 2106 +Clearing BreakPoint at 00483CFD +De-Activate DECHash.pas line 2106 BreakPoint at:00483CFD +Adding coverage:DECHash.pas (DECHash) 2107 +Clearing BreakPoint at 00483D3B +De-Activate DECHash.pas line 2107 BreakPoint at:00483D3B +Adding coverage:DECHash.pas (DECHash) 2108 +Clearing BreakPoint at 00483D79 +De-Activate DECHash.pas line 2108 BreakPoint at:00483D79 +Adding coverage:DECHash.pas (DECHash) 2109 +Clearing BreakPoint at 00483DB7 +De-Activate DECHash.pas line 2109 BreakPoint at:00483DB7 +Adding coverage:DECHash.pas (DECHash) 2110 +Clearing BreakPoint at 00483DF5 +De-Activate DECHash.pas line 2110 BreakPoint at:00483DF5 +Adding coverage:DECHash.pas (DECHash) 2111 +Clearing BreakPoint at 00483E33 +De-Activate DECHash.pas line 2111 BreakPoint at:00483E33 +Adding coverage:DECHash.pas (DECHash) 2112 +Clearing BreakPoint at 00483E71 +De-Activate DECHash.pas line 2112 BreakPoint at:00483E71 +Adding coverage:DECHash.pas (DECHash) 2113 +Clearing BreakPoint at 00483EAF +De-Activate DECHash.pas line 2113 BreakPoint at:00483EAF +Adding coverage:DECHash.pas (DECHash) 2114 +Clearing BreakPoint at 00483EED +De-Activate DECHash.pas line 2114 BreakPoint at:00483EED +Adding coverage:DECHash.pas (DECHash) 2115 +Clearing BreakPoint at 00483F2B +De-Activate DECHash.pas line 2115 BreakPoint at:00483F2B +Adding coverage:DECHash.pas (DECHash) 2116 +Clearing BreakPoint at 00483F69 +De-Activate DECHash.pas line 2116 BreakPoint at:00483F69 +Adding coverage:DECHash.pas (DECHash) 2117 +Clearing BreakPoint at 00483FA7 +De-Activate DECHash.pas line 2117 BreakPoint at:00483FA7 +Adding coverage:DECHash.pas (DECHash) 2118 +Clearing BreakPoint at 00483FE5 +De-Activate DECHash.pas line 2118 BreakPoint at:00483FE5 +Adding coverage:DECHash.pas (DECHash) 2119 +Clearing BreakPoint at 00484023 +De-Activate DECHash.pas line 2119 BreakPoint at:00484023 +Adding coverage:DECHash.pas (DECHash) 2120 +Clearing BreakPoint at 00484060 +De-Activate DECHash.pas line 2120 BreakPoint at:00484060 +Adding coverage:DECHash.pas (DECHash) 2121 +Clearing BreakPoint at 0048409E +De-Activate DECHash.pas line 2121 BreakPoint at:0048409E +Adding coverage:DECHash.pas (DECHash) 2123 +Clearing BreakPoint at 004840DC +De-Activate DECHash.pas line 2123 BreakPoint at:004840DC +Adding coverage:DECHash.pas (DECHash) 2124 +Clearing BreakPoint at 0048411F +De-Activate DECHash.pas line 2124 BreakPoint at:0048411F +Adding coverage:DECHash.pas (DECHash) 2125 +Clearing BreakPoint at 00484162 +De-Activate DECHash.pas line 2125 BreakPoint at:00484162 +Adding coverage:DECHash.pas (DECHash) 2126 +Clearing BreakPoint at 004841A5 +De-Activate DECHash.pas line 2126 BreakPoint at:004841A5 +Adding coverage:DECHash.pas (DECHash) 2127 +Clearing BreakPoint at 004841E8 +De-Activate DECHash.pas line 2127 BreakPoint at:004841E8 +Adding coverage:DECHash.pas (DECHash) 2128 +Clearing BreakPoint at 0048422B +De-Activate DECHash.pas line 2128 BreakPoint at:0048422B +Adding coverage:DECHash.pas (DECHash) 2129 +Clearing BreakPoint at 0048426E +De-Activate DECHash.pas line 2129 BreakPoint at:0048426E +Adding coverage:DECHash.pas (DECHash) 2130 +Clearing BreakPoint at 004842B1 +De-Activate DECHash.pas line 2130 BreakPoint at:004842B1 +Adding coverage:DECHash.pas (DECHash) 2131 +Clearing BreakPoint at 004842F3 +De-Activate DECHash.pas line 2131 BreakPoint at:004842F3 +Adding coverage:DECHash.pas (DECHash) 2132 +Clearing BreakPoint at 00484336 +De-Activate DECHash.pas line 2132 BreakPoint at:00484336 +Adding coverage:DECHash.pas (DECHash) 2133 +Clearing BreakPoint at 00484379 +De-Activate DECHash.pas line 2133 BreakPoint at:00484379 +Adding coverage:DECHash.pas (DECHash) 2134 +Clearing BreakPoint at 004843BC +De-Activate DECHash.pas line 2134 BreakPoint at:004843BC +Adding coverage:DECHash.pas (DECHash) 2135 +Clearing BreakPoint at 004843FF +De-Activate DECHash.pas line 2135 BreakPoint at:004843FF +Adding coverage:DECHash.pas (DECHash) 2136 +Clearing BreakPoint at 00484442 +De-Activate DECHash.pas line 2136 BreakPoint at:00484442 +Adding coverage:DECHash.pas (DECHash) 2137 +Clearing BreakPoint at 00484485 +De-Activate DECHash.pas line 2137 BreakPoint at:00484485 +Adding coverage:DECHash.pas (DECHash) 2138 +Clearing BreakPoint at 004844C8 +De-Activate DECHash.pas line 2138 BreakPoint at:004844C8 +Adding coverage:DECHash.pas (DECHash) 2140 +Clearing BreakPoint at 0048450B +De-Activate DECHash.pas line 2140 BreakPoint at:0048450B +Adding coverage:DECHash.pas (DECHash) 2141 +Clearing BreakPoint at 00484542 +De-Activate DECHash.pas line 2141 BreakPoint at:00484542 +Adding coverage:DECHash.pas (DECHash) 2142 +Clearing BreakPoint at 00484579 +De-Activate DECHash.pas line 2142 BreakPoint at:00484579 +Adding coverage:DECHash.pas (DECHash) 2143 +Clearing BreakPoint at 004845B0 +De-Activate DECHash.pas line 2143 BreakPoint at:004845B0 +Adding coverage:DECHash.pas (DECHash) 2144 +Clearing BreakPoint at 004845E7 +De-Activate DECHash.pas line 2144 BreakPoint at:004845E7 +Adding coverage:DECHash.pas (DECHash) 2145 +Clearing BreakPoint at 0048461E +De-Activate DECHash.pas line 2145 BreakPoint at:0048461E +Adding coverage:DECHash.pas (DECHash) 2146 +Clearing BreakPoint at 00484655 +De-Activate DECHash.pas line 2146 BreakPoint at:00484655 +Adding coverage:DECHash.pas (DECHash) 2147 +Clearing BreakPoint at 0048468C +De-Activate DECHash.pas line 2147 BreakPoint at:0048468C +Adding coverage:DECHash.pas (DECHash) 2148 +Clearing BreakPoint at 004846C3 +De-Activate DECHash.pas line 2148 BreakPoint at:004846C3 +Adding coverage:DECHash.pas (DECHash) 2149 +Clearing BreakPoint at 004846FA +De-Activate DECHash.pas line 2149 BreakPoint at:004846FA +Adding coverage:DECHash.pas (DECHash) 2150 +Clearing BreakPoint at 00484731 +De-Activate DECHash.pas line 2150 BreakPoint at:00484731 +Adding coverage:DECHash.pas (DECHash) 2151 +Clearing BreakPoint at 00484768 +De-Activate DECHash.pas line 2151 BreakPoint at:00484768 +Adding coverage:DECHash.pas (DECHash) 2152 +Clearing BreakPoint at 0048479F +De-Activate DECHash.pas line 2152 BreakPoint at:0048479F +Adding coverage:DECHash.pas (DECHash) 2153 +Clearing BreakPoint at 004847D5 +De-Activate DECHash.pas line 2153 BreakPoint at:004847D5 +Adding coverage:DECHash.pas (DECHash) 2154 +Clearing BreakPoint at 0048480C +De-Activate DECHash.pas line 2154 BreakPoint at:0048480C +Adding coverage:DECHash.pas (DECHash) 2155 +Clearing BreakPoint at 00484843 +De-Activate DECHash.pas line 2155 BreakPoint at:00484843 +Adding coverage:DECHash.pas (DECHash) 2157 +Clearing BreakPoint at 0048487A +De-Activate DECHash.pas line 2157 BreakPoint at:0048487A +Adding coverage:DECHash.pas (DECHash) 2158 +Clearing BreakPoint at 00484886 +De-Activate DECHash.pas line 2158 BreakPoint at:00484886 +Adding coverage:DECHash.pas (DECHash) 2159 +Clearing BreakPoint at 00484898 +De-Activate DECHash.pas line 2159 BreakPoint at:00484898 +Adding coverage:DECHash.pas (DECHash) 2160 +Clearing BreakPoint at 004848AA +De-Activate DECHash.pas line 2160 BreakPoint at:004848AA +Adding coverage:DECHash.pas (DECHash) 2161 +Clearing BreakPoint at 004848BC +De-Activate DECHash.pas line 2161 BreakPoint at:004848BC +Adding coverage:DECHash.pas (DECHash) 2162 +Clearing BreakPoint at 004848CE +De-Activate DECHash.pas line 2162 BreakPoint at:004848CE +Adding coverage:DECHash.pas (DECHash) 2163 +Clearing BreakPoint at 004848D7 +De-Activate DECHash.pas line 2163 BreakPoint at:004848D7 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2385 +Clearing BreakPoint at 00486120 +De-Activate DECHash.pas line 2385 BreakPoint at:00486120 +Adding coverage:DECHash.pas (DECHash) 2386 +Clearing BreakPoint at 00486129 +De-Activate DECHash.pas line 2386 BreakPoint at:00486129 +Adding coverage:DECHash.pas (DECHash) 2387 +Clearing BreakPoint at 00486130 +De-Activate DECHash.pas line 2387 BreakPoint at:00486130 +Adding coverage:DECHash.pas (DECHash) 2371 +Clearing BreakPoint at 004860B0 +De-Activate DECHash.pas line 2371 BreakPoint at:004860B0 +Adding coverage:DECHash.pas (DECHash) 2372 +Clearing BreakPoint at 004860B7 +De-Activate DECHash.pas line 2372 BreakPoint at:004860B7 +Adding coverage:DECHash.pas (DECHash) 2373 +Clearing BreakPoint at 004860C1 +De-Activate DECHash.pas line 2373 BreakPoint at:004860C1 +Adding coverage:DECHash.pas (DECHash) 2374 +Clearing BreakPoint at 004860CB +De-Activate DECHash.pas line 2374 BreakPoint at:004860CB +Adding coverage:DECHash.pas (DECHash) 2375 +Clearing BreakPoint at 004860D5 +De-Activate DECHash.pas line 2375 BreakPoint at:004860D5 +Adding coverage:DECHash.pas (DECHash) 2376 +Clearing BreakPoint at 004860DF +De-Activate DECHash.pas line 2376 BreakPoint at:004860DF +Adding coverage:DECHash.pas (DECHash) 2377 +Clearing BreakPoint at 004860E9 +De-Activate DECHash.pas line 2377 BreakPoint at:004860E9 +Adding coverage:DECHash.pas (DECHash) 2378 +Clearing BreakPoint at 004860F3 +De-Activate DECHash.pas line 2378 BreakPoint at:004860F3 +Adding coverage:DECHash.pas (DECHash) 2379 +Clearing BreakPoint at 004860FD +De-Activate DECHash.pas line 2379 BreakPoint at:004860FD +Adding coverage:DECHash.pas (DECHash) 2380 +Clearing BreakPoint at 00486107 +De-Activate DECHash.pas line 2380 BreakPoint at:00486107 +Adding coverage:DECHash.pas (DECHash) 2381 +Clearing BreakPoint at 00486111 +De-Activate DECHash.pas line 2381 BreakPoint at:00486111 +Adding coverage:DECHash.pas (DECHash) 2382 +Clearing BreakPoint at 0048611B +De-Activate DECHash.pas line 2382 BreakPoint at:0048611B +Adding coverage:DECHash.pas (DECHash) 2179 +Clearing BreakPoint at 004848F4 +De-Activate DECHash.pas line 2179 BreakPoint at:004848F4 +Adding coverage:DECHash.pas (DECHash) 2180 +Clearing BreakPoint at 00484900 +De-Activate DECHash.pas line 2180 BreakPoint at:00484900 +Adding coverage:DECHash.pas (DECHash) 2181 +Clearing BreakPoint at 00484909 +De-Activate DECHash.pas line 2181 BreakPoint at:00484909 +Adding coverage:DECHash.pas (DECHash) 2182 +Clearing BreakPoint at 00484912 +De-Activate DECHash.pas line 2182 BreakPoint at:00484912 +Adding coverage:DECHash.pas (DECHash) 2183 +Clearing BreakPoint at 0048491B +De-Activate DECHash.pas line 2183 BreakPoint at:0048491B +Adding coverage:DECHash.pas (DECHash) 2185 +Clearing BreakPoint at 00484924 +De-Activate DECHash.pas line 2185 BreakPoint at:00484924 +Adding coverage:DECHash.pas (DECHash) 2186 +Clearing BreakPoint at 0048492D +De-Activate DECHash.pas line 2186 BreakPoint at:0048492D +Adding coverage:DECHash.pas (DECHash) 2187 +Clearing BreakPoint at 00484936 +De-Activate DECHash.pas line 2187 BreakPoint at:00484936 +Adding coverage:DECHash.pas (DECHash) 2188 +Clearing BreakPoint at 0048493F +De-Activate DECHash.pas line 2188 BreakPoint at:0048493F +Adding coverage:DECHash.pas (DECHash) 2190 +Clearing BreakPoint at 00484948 +De-Activate DECHash.pas line 2190 BreakPoint at:00484948 +Adding coverage:DECHash.pas (DECHash) 2191 +Clearing BreakPoint at 0048496A +De-Activate DECHash.pas line 2191 BreakPoint at:0048496A +Adding coverage:DECHash.pas (DECHash) 2192 +Clearing BreakPoint at 0048498D +De-Activate DECHash.pas line 2192 BreakPoint at:0048498D +Adding coverage:DECHash.pas (DECHash) 2193 +Clearing BreakPoint at 004849B0 +De-Activate DECHash.pas line 2193 BreakPoint at:004849B0 +Adding coverage:DECHash.pas (DECHash) 2194 +Clearing BreakPoint at 004849D3 +De-Activate DECHash.pas line 2194 BreakPoint at:004849D3 +Adding coverage:DECHash.pas (DECHash) 2195 +Clearing BreakPoint at 004849F6 +De-Activate DECHash.pas line 2195 BreakPoint at:004849F6 +Adding coverage:DECHash.pas (DECHash) 2196 +Clearing BreakPoint at 00484A19 +De-Activate DECHash.pas line 2196 BreakPoint at:00484A19 +Adding coverage:DECHash.pas (DECHash) 2197 +Clearing BreakPoint at 00484A3C +De-Activate DECHash.pas line 2197 BreakPoint at:00484A3C +Adding coverage:DECHash.pas (DECHash) 2198 +Clearing BreakPoint at 00484A5F +De-Activate DECHash.pas line 2198 BreakPoint at:00484A5F +Adding coverage:DECHash.pas (DECHash) 2199 +Clearing BreakPoint at 00484A82 +De-Activate DECHash.pas line 2199 BreakPoint at:00484A82 +Adding coverage:DECHash.pas (DECHash) 2200 +Clearing BreakPoint at 00484AA5 +De-Activate DECHash.pas line 2200 BreakPoint at:00484AA5 +Adding coverage:DECHash.pas (DECHash) 2201 +Clearing BreakPoint at 00484AC8 +De-Activate DECHash.pas line 2201 BreakPoint at:00484AC8 +Adding coverage:DECHash.pas (DECHash) 2202 +Clearing BreakPoint at 00484AEB +De-Activate DECHash.pas line 2202 BreakPoint at:00484AEB +Adding coverage:DECHash.pas (DECHash) 2203 +Clearing BreakPoint at 00484B0E +De-Activate DECHash.pas line 2203 BreakPoint at:00484B0E +Adding coverage:DECHash.pas (DECHash) 2204 +Clearing BreakPoint at 00484B31 +De-Activate DECHash.pas line 2204 BreakPoint at:00484B31 +Adding coverage:DECHash.pas (DECHash) 2205 +Clearing BreakPoint at 00484B54 +De-Activate DECHash.pas line 2205 BreakPoint at:00484B54 +Adding coverage:DECHash.pas (DECHash) 2207 +Clearing BreakPoint at 00484B77 +De-Activate DECHash.pas line 2207 BreakPoint at:00484B77 +Adding coverage:DECHash.pas (DECHash) 2208 +Clearing BreakPoint at 00484B89 +De-Activate DECHash.pas line 2208 BreakPoint at:00484B89 +Adding coverage:DECHash.pas (DECHash) 2209 +Clearing BreakPoint at 00484B9B +De-Activate DECHash.pas line 2209 BreakPoint at:00484B9B +Adding coverage:DECHash.pas (DECHash) 2210 +Clearing BreakPoint at 00484BAD +De-Activate DECHash.pas line 2210 BreakPoint at:00484BAD +Adding coverage:DECHash.pas (DECHash) 2212 +Clearing BreakPoint at 00484BBF +De-Activate DECHash.pas line 2212 BreakPoint at:00484BBF +Adding coverage:DECHash.pas (DECHash) 2213 +Clearing BreakPoint at 00484BEE +De-Activate DECHash.pas line 2213 BreakPoint at:00484BEE +Adding coverage:DECHash.pas (DECHash) 2214 +Clearing BreakPoint at 00484C1D +De-Activate DECHash.pas line 2214 BreakPoint at:00484C1D +Adding coverage:DECHash.pas (DECHash) 2215 +Clearing BreakPoint at 00484C4C +De-Activate DECHash.pas line 2215 BreakPoint at:00484C4C +Adding coverage:DECHash.pas (DECHash) 2216 +Clearing BreakPoint at 00484C7A +De-Activate DECHash.pas line 2216 BreakPoint at:00484C7A +Adding coverage:DECHash.pas (DECHash) 2217 +Clearing BreakPoint at 00484CA9 +De-Activate DECHash.pas line 2217 BreakPoint at:00484CA9 +Adding coverage:DECHash.pas (DECHash) 2218 +Clearing BreakPoint at 00484CD8 +De-Activate DECHash.pas line 2218 BreakPoint at:00484CD8 +Adding coverage:DECHash.pas (DECHash) 2219 +Clearing BreakPoint at 00484D07 +De-Activate DECHash.pas line 2219 BreakPoint at:00484D07 +Adding coverage:DECHash.pas (DECHash) 2220 +Clearing BreakPoint at 00484D36 +De-Activate DECHash.pas line 2220 BreakPoint at:00484D36 +Adding coverage:DECHash.pas (DECHash) 2221 +Clearing BreakPoint at 00484D65 +De-Activate DECHash.pas line 2221 BreakPoint at:00484D65 +Adding coverage:DECHash.pas (DECHash) 2222 +Clearing BreakPoint at 00484D94 +De-Activate DECHash.pas line 2222 BreakPoint at:00484D94 +Adding coverage:DECHash.pas (DECHash) 2223 +Clearing BreakPoint at 00484DC3 +De-Activate DECHash.pas line 2223 BreakPoint at:00484DC3 +Adding coverage:DECHash.pas (DECHash) 2224 +Clearing BreakPoint at 00484DF2 +De-Activate DECHash.pas line 2224 BreakPoint at:00484DF2 +Adding coverage:DECHash.pas (DECHash) 2225 +Clearing BreakPoint at 00484E21 +De-Activate DECHash.pas line 2225 BreakPoint at:00484E21 +Adding coverage:DECHash.pas (DECHash) 2226 +Clearing BreakPoint at 00484E50 +De-Activate DECHash.pas line 2226 BreakPoint at:00484E50 +Adding coverage:DECHash.pas (DECHash) 2227 +Clearing BreakPoint at 00484E7F +De-Activate DECHash.pas line 2227 BreakPoint at:00484E7F +Adding coverage:DECHash.pas (DECHash) 2229 +Clearing BreakPoint at 00484EAE +De-Activate DECHash.pas line 2229 BreakPoint at:00484EAE +Adding coverage:DECHash.pas (DECHash) 2230 +Clearing BreakPoint at 00484EC0 +De-Activate DECHash.pas line 2230 BreakPoint at:00484EC0 +Adding coverage:DECHash.pas (DECHash) 2231 +Clearing BreakPoint at 00484ED2 +De-Activate DECHash.pas line 2231 BreakPoint at:00484ED2 +Adding coverage:DECHash.pas (DECHash) 2233 +Clearing BreakPoint at 00484EE4 +De-Activate DECHash.pas line 2233 BreakPoint at:00484EE4 +Adding coverage:DECHash.pas (DECHash) 2234 +Clearing BreakPoint at 00484F13 +De-Activate DECHash.pas line 2234 BreakPoint at:00484F13 +Adding coverage:DECHash.pas (DECHash) 2235 +Clearing BreakPoint at 00484F42 +De-Activate DECHash.pas line 2235 BreakPoint at:00484F42 +Adding coverage:DECHash.pas (DECHash) 2236 +Clearing BreakPoint at 00484F71 +De-Activate DECHash.pas line 2236 BreakPoint at:00484F71 +Adding coverage:DECHash.pas (DECHash) 2237 +Clearing BreakPoint at 00484FA0 +De-Activate DECHash.pas line 2237 BreakPoint at:00484FA0 +Adding coverage:DECHash.pas (DECHash) 2238 +Clearing BreakPoint at 00484FCF +De-Activate DECHash.pas line 2238 BreakPoint at:00484FCF +Adding coverage:DECHash.pas (DECHash) 2239 +Clearing BreakPoint at 00484FFE +De-Activate DECHash.pas line 2239 BreakPoint at:00484FFE +Adding coverage:DECHash.pas (DECHash) 2240 +Clearing BreakPoint at 0048502D +De-Activate DECHash.pas line 2240 BreakPoint at:0048502D +Adding coverage:DECHash.pas (DECHash) 2241 +Clearing BreakPoint at 0048505C +De-Activate DECHash.pas line 2241 BreakPoint at:0048505C +Adding coverage:DECHash.pas (DECHash) 2242 +Clearing BreakPoint at 0048508B +De-Activate DECHash.pas line 2242 BreakPoint at:0048508B +Adding coverage:DECHash.pas (DECHash) 2243 +Clearing BreakPoint at 004850B9 +De-Activate DECHash.pas line 2243 BreakPoint at:004850B9 +Adding coverage:DECHash.pas (DECHash) 2244 +Clearing BreakPoint at 004850E8 +De-Activate DECHash.pas line 2244 BreakPoint at:004850E8 +Adding coverage:DECHash.pas (DECHash) 2245 +Clearing BreakPoint at 00485117 +De-Activate DECHash.pas line 2245 BreakPoint at:00485117 +Adding coverage:DECHash.pas (DECHash) 2246 +Clearing BreakPoint at 00485146 +De-Activate DECHash.pas line 2246 BreakPoint at:00485146 +Adding coverage:DECHash.pas (DECHash) 2247 +Clearing BreakPoint at 00485175 +De-Activate DECHash.pas line 2247 BreakPoint at:00485175 +Adding coverage:DECHash.pas (DECHash) 2248 +Clearing BreakPoint at 004851A4 +De-Activate DECHash.pas line 2248 BreakPoint at:004851A4 +Adding coverage:DECHash.pas (DECHash) 2250 +Clearing BreakPoint at 004851D3 +De-Activate DECHash.pas line 2250 BreakPoint at:004851D3 +Adding coverage:DECHash.pas (DECHash) 2251 +Clearing BreakPoint at 004851E5 +De-Activate DECHash.pas line 2251 BreakPoint at:004851E5 +Adding coverage:DECHash.pas (DECHash) 2252 +Clearing BreakPoint at 004851F7 +De-Activate DECHash.pas line 2252 BreakPoint at:004851F7 +Adding coverage:DECHash.pas (DECHash) 2253 +Clearing BreakPoint at 00485209 +De-Activate DECHash.pas line 2253 BreakPoint at:00485209 +Adding coverage:DECHash.pas (DECHash) 2255 +Clearing BreakPoint at 0048521B +De-Activate DECHash.pas line 2255 BreakPoint at:0048521B +Adding coverage:DECHash.pas (DECHash) 2256 +Clearing BreakPoint at 00485245 +De-Activate DECHash.pas line 2256 BreakPoint at:00485245 +Adding coverage:DECHash.pas (DECHash) 2257 +Clearing BreakPoint at 0048526F +De-Activate DECHash.pas line 2257 BreakPoint at:0048526F +Adding coverage:DECHash.pas (DECHash) 2258 +Clearing BreakPoint at 00485299 +De-Activate DECHash.pas line 2258 BreakPoint at:00485299 +Adding coverage:DECHash.pas (DECHash) 2259 +Clearing BreakPoint at 004852C3 +De-Activate DECHash.pas line 2259 BreakPoint at:004852C3 +Adding coverage:DECHash.pas (DECHash) 2260 +Clearing BreakPoint at 004852EC +De-Activate DECHash.pas line 2260 BreakPoint at:004852EC +Adding coverage:DECHash.pas (DECHash) 2261 +Clearing BreakPoint at 00485316 +De-Activate DECHash.pas line 2261 BreakPoint at:00485316 +Adding coverage:DECHash.pas (DECHash) 2262 +Clearing BreakPoint at 00485340 +De-Activate DECHash.pas line 2262 BreakPoint at:00485340 +Adding coverage:DECHash.pas (DECHash) 2263 +Clearing BreakPoint at 0048536A +De-Activate DECHash.pas line 2263 BreakPoint at:0048536A +Adding coverage:DECHash.pas (DECHash) 2264 +Clearing BreakPoint at 00485394 +De-Activate DECHash.pas line 2264 BreakPoint at:00485394 +Adding coverage:DECHash.pas (DECHash) 2265 +Clearing BreakPoint at 004853BE +De-Activate DECHash.pas line 2265 BreakPoint at:004853BE +Adding coverage:DECHash.pas (DECHash) 2266 +Clearing BreakPoint at 004853E8 +De-Activate DECHash.pas line 2266 BreakPoint at:004853E8 +Adding coverage:DECHash.pas (DECHash) 2267 +Clearing BreakPoint at 00485412 +De-Activate DECHash.pas line 2267 BreakPoint at:00485412 +Adding coverage:DECHash.pas (DECHash) 2268 +Clearing BreakPoint at 0048543C +De-Activate DECHash.pas line 2268 BreakPoint at:0048543C +Adding coverage:DECHash.pas (DECHash) 2269 +Clearing BreakPoint at 00485466 +De-Activate DECHash.pas line 2269 BreakPoint at:00485466 +Adding coverage:DECHash.pas (DECHash) 2270 +Clearing BreakPoint at 00485490 +De-Activate DECHash.pas line 2270 BreakPoint at:00485490 +Adding coverage:DECHash.pas (DECHash) 2272 +Clearing BreakPoint at 004854BA +De-Activate DECHash.pas line 2272 BreakPoint at:004854BA +Adding coverage:DECHash.pas (DECHash) 2273 +Clearing BreakPoint at 004854CC +De-Activate DECHash.pas line 2273 BreakPoint at:004854CC +Adding coverage:DECHash.pas (DECHash) 2274 +Clearing BreakPoint at 004854DE +De-Activate DECHash.pas line 2274 BreakPoint at:004854DE +Adding coverage:DECHash.pas (DECHash) 2276 +Clearing BreakPoint at 004854F0 +De-Activate DECHash.pas line 2276 BreakPoint at:004854F0 +Adding coverage:DECHash.pas (DECHash) 2277 +Clearing BreakPoint at 0048551A +De-Activate DECHash.pas line 2277 BreakPoint at:0048551A +Adding coverage:DECHash.pas (DECHash) 2278 +Clearing BreakPoint at 00485544 +De-Activate DECHash.pas line 2278 BreakPoint at:00485544 +Adding coverage:DECHash.pas (DECHash) 2279 +Clearing BreakPoint at 0048556E +De-Activate DECHash.pas line 2279 BreakPoint at:0048556E +Adding coverage:DECHash.pas (DECHash) 2280 +Clearing BreakPoint at 00485598 +De-Activate DECHash.pas line 2280 BreakPoint at:00485598 +Adding coverage:DECHash.pas (DECHash) 2281 +Clearing BreakPoint at 004855C2 +De-Activate DECHash.pas line 2281 BreakPoint at:004855C2 +Adding coverage:DECHash.pas (DECHash) 2282 +Clearing BreakPoint at 004855EC +De-Activate DECHash.pas line 2282 BreakPoint at:004855EC +Adding coverage:DECHash.pas (DECHash) 2283 +Clearing BreakPoint at 00485616 +De-Activate DECHash.pas line 2283 BreakPoint at:00485616 +Adding coverage:DECHash.pas (DECHash) 2284 +Clearing BreakPoint at 00485640 +De-Activate DECHash.pas line 2284 BreakPoint at:00485640 +Adding coverage:DECHash.pas (DECHash) 2285 +Clearing BreakPoint at 0048566A +De-Activate DECHash.pas line 2285 BreakPoint at:0048566A +Adding coverage:DECHash.pas (DECHash) 2286 +Clearing BreakPoint at 00485694 +De-Activate DECHash.pas line 2286 BreakPoint at:00485694 +Adding coverage:DECHash.pas (DECHash) 2287 +Clearing BreakPoint at 004856BD +De-Activate DECHash.pas line 2287 BreakPoint at:004856BD +Adding coverage:DECHash.pas (DECHash) 2288 +Clearing BreakPoint at 004856E7 +De-Activate DECHash.pas line 2288 BreakPoint at:004856E7 +Adding coverage:DECHash.pas (DECHash) 2289 +Clearing BreakPoint at 00485711 +De-Activate DECHash.pas line 2289 BreakPoint at:00485711 +Adding coverage:DECHash.pas (DECHash) 2290 +Clearing BreakPoint at 0048573B +De-Activate DECHash.pas line 2290 BreakPoint at:0048573B +Adding coverage:DECHash.pas (DECHash) 2291 +Clearing BreakPoint at 00485765 +De-Activate DECHash.pas line 2291 BreakPoint at:00485765 +Adding coverage:DECHash.pas (DECHash) 2293 +Clearing BreakPoint at 0048578F +De-Activate DECHash.pas line 2293 BreakPoint at:0048578F +Adding coverage:DECHash.pas (DECHash) 2294 +Clearing BreakPoint at 004857A1 +De-Activate DECHash.pas line 2294 BreakPoint at:004857A1 +Adding coverage:DECHash.pas (DECHash) 2295 +Clearing BreakPoint at 004857B3 +De-Activate DECHash.pas line 2295 BreakPoint at:004857B3 +Adding coverage:DECHash.pas (DECHash) 2296 +Clearing BreakPoint at 004857C5 +De-Activate DECHash.pas line 2296 BreakPoint at:004857C5 +Adding coverage:DECHash.pas (DECHash) 2298 +Clearing BreakPoint at 004857D7 +De-Activate DECHash.pas line 2298 BreakPoint at:004857D7 +Adding coverage:DECHash.pas (DECHash) 2299 +Clearing BreakPoint at 00485806 +De-Activate DECHash.pas line 2299 BreakPoint at:00485806 +Adding coverage:DECHash.pas (DECHash) 2300 +Clearing BreakPoint at 00485835 +De-Activate DECHash.pas line 2300 BreakPoint at:00485835 +Adding coverage:DECHash.pas (DECHash) 2301 +Clearing BreakPoint at 00485864 +De-Activate DECHash.pas line 2301 BreakPoint at:00485864 +Adding coverage:DECHash.pas (DECHash) 2302 +Clearing BreakPoint at 00485893 +De-Activate DECHash.pas line 2302 BreakPoint at:00485893 +Adding coverage:DECHash.pas (DECHash) 2303 +Clearing BreakPoint at 004858C2 +De-Activate DECHash.pas line 2303 BreakPoint at:004858C2 +Adding coverage:DECHash.pas (DECHash) 2304 +Clearing BreakPoint at 004858F1 +De-Activate DECHash.pas line 2304 BreakPoint at:004858F1 +Adding coverage:DECHash.pas (DECHash) 2305 +Clearing BreakPoint at 00485920 +De-Activate DECHash.pas line 2305 BreakPoint at:00485920 +Adding coverage:DECHash.pas (DECHash) 2306 +Clearing BreakPoint at 0048594F +De-Activate DECHash.pas line 2306 BreakPoint at:0048594F +Adding coverage:DECHash.pas (DECHash) 2307 +Clearing BreakPoint at 0048597E +De-Activate DECHash.pas line 2307 BreakPoint at:0048597E +Adding coverage:DECHash.pas (DECHash) 2308 +Clearing BreakPoint at 004859AD +De-Activate DECHash.pas line 2308 BreakPoint at:004859AD +Adding coverage:DECHash.pas (DECHash) 2309 +Clearing BreakPoint at 004859DC +De-Activate DECHash.pas line 2309 BreakPoint at:004859DC +Adding coverage:DECHash.pas (DECHash) 2310 +Clearing BreakPoint at 00485A0B +De-Activate DECHash.pas line 2310 BreakPoint at:00485A0B +Adding coverage:DECHash.pas (DECHash) 2311 +Clearing BreakPoint at 00485A3A +De-Activate DECHash.pas line 2311 BreakPoint at:00485A3A +Adding coverage:DECHash.pas (DECHash) 2312 +Clearing BreakPoint at 00485A68 +De-Activate DECHash.pas line 2312 BreakPoint at:00485A68 +Adding coverage:DECHash.pas (DECHash) 2313 +Clearing BreakPoint at 00485A97 +De-Activate DECHash.pas line 2313 BreakPoint at:00485A97 +Adding coverage:DECHash.pas (DECHash) 2315 +Clearing BreakPoint at 00485AC6 +De-Activate DECHash.pas line 2315 BreakPoint at:00485AC6 +Adding coverage:DECHash.pas (DECHash) 2316 +Clearing BreakPoint at 00485AD8 +De-Activate DECHash.pas line 2316 BreakPoint at:00485AD8 +Adding coverage:DECHash.pas (DECHash) 2317 +Clearing BreakPoint at 00485AEA +De-Activate DECHash.pas line 2317 BreakPoint at:00485AEA +Adding coverage:DECHash.pas (DECHash) 2319 +Clearing BreakPoint at 00485AFC +De-Activate DECHash.pas line 2319 BreakPoint at:00485AFC +Adding coverage:DECHash.pas (DECHash) 2320 +Clearing BreakPoint at 00485B2B +De-Activate DECHash.pas line 2320 BreakPoint at:00485B2B +Adding coverage:DECHash.pas (DECHash) 2321 +Clearing BreakPoint at 00485B5A +De-Activate DECHash.pas line 2321 BreakPoint at:00485B5A +Adding coverage:DECHash.pas (DECHash) 2322 +Clearing BreakPoint at 00485B89 +De-Activate DECHash.pas line 2322 BreakPoint at:00485B89 +Adding coverage:DECHash.pas (DECHash) 2323 +Clearing BreakPoint at 00485BB8 +De-Activate DECHash.pas line 2323 BreakPoint at:00485BB8 +Adding coverage:DECHash.pas (DECHash) 2324 +Clearing BreakPoint at 00485BE6 +De-Activate DECHash.pas line 2324 BreakPoint at:00485BE6 +Adding coverage:DECHash.pas (DECHash) 2325 +Clearing BreakPoint at 00485C15 +De-Activate DECHash.pas line 2325 BreakPoint at:00485C15 +Adding coverage:DECHash.pas (DECHash) 2326 +Clearing BreakPoint at 00485C44 +De-Activate DECHash.pas line 2326 BreakPoint at:00485C44 +Adding coverage:DECHash.pas (DECHash) 2327 +Clearing BreakPoint at 00485C73 +De-Activate DECHash.pas line 2327 BreakPoint at:00485C73 +Adding coverage:DECHash.pas (DECHash) 2328 +Clearing BreakPoint at 00485CA2 +De-Activate DECHash.pas line 2328 BreakPoint at:00485CA2 +Adding coverage:DECHash.pas (DECHash) 2329 +Clearing BreakPoint at 00485CD1 +De-Activate DECHash.pas line 2329 BreakPoint at:00485CD1 +Adding coverage:DECHash.pas (DECHash) 2330 +Clearing BreakPoint at 00485D00 +De-Activate DECHash.pas line 2330 BreakPoint at:00485D00 +Adding coverage:DECHash.pas (DECHash) 2331 +Clearing BreakPoint at 00485D2F +De-Activate DECHash.pas line 2331 BreakPoint at:00485D2F +Adding coverage:DECHash.pas (DECHash) 2332 +Clearing BreakPoint at 00485D5E +De-Activate DECHash.pas line 2332 BreakPoint at:00485D5E +Adding coverage:DECHash.pas (DECHash) 2333 +Clearing BreakPoint at 00485D8D +De-Activate DECHash.pas line 2333 BreakPoint at:00485D8D +Adding coverage:DECHash.pas (DECHash) 2334 +Clearing BreakPoint at 00485DBC +De-Activate DECHash.pas line 2334 BreakPoint at:00485DBC +Adding coverage:DECHash.pas (DECHash) 2336 +Clearing BreakPoint at 00485DEB +De-Activate DECHash.pas line 2336 BreakPoint at:00485DEB +Adding coverage:DECHash.pas (DECHash) 2337 +Clearing BreakPoint at 00485DFD +De-Activate DECHash.pas line 2337 BreakPoint at:00485DFD +Adding coverage:DECHash.pas (DECHash) 2338 +Clearing BreakPoint at 00485E0F +De-Activate DECHash.pas line 2338 BreakPoint at:00485E0F +Adding coverage:DECHash.pas (DECHash) 2339 +Clearing BreakPoint at 00485E21 +De-Activate DECHash.pas line 2339 BreakPoint at:00485E21 +Adding coverage:DECHash.pas (DECHash) 2341 +Clearing BreakPoint at 00485E33 +De-Activate DECHash.pas line 2341 BreakPoint at:00485E33 +Adding coverage:DECHash.pas (DECHash) 2342 +Clearing BreakPoint at 00485E56 +De-Activate DECHash.pas line 2342 BreakPoint at:00485E56 +Adding coverage:DECHash.pas (DECHash) 2343 +Clearing BreakPoint at 00485E79 +De-Activate DECHash.pas line 2343 BreakPoint at:00485E79 +Adding coverage:DECHash.pas (DECHash) 2344 +Clearing BreakPoint at 00485E9C +De-Activate DECHash.pas line 2344 BreakPoint at:00485E9C +Adding coverage:DECHash.pas (DECHash) 2345 +Clearing BreakPoint at 00485EBF +De-Activate DECHash.pas line 2345 BreakPoint at:00485EBF +Adding coverage:DECHash.pas (DECHash) 2346 +Clearing BreakPoint at 00485EE2 +De-Activate DECHash.pas line 2346 BreakPoint at:00485EE2 +Adding coverage:DECHash.pas (DECHash) 2347 +Clearing BreakPoint at 00485F05 +De-Activate DECHash.pas line 2347 BreakPoint at:00485F05 +Adding coverage:DECHash.pas (DECHash) 2348 +Clearing BreakPoint at 00485F28 +De-Activate DECHash.pas line 2348 BreakPoint at:00485F28 +Adding coverage:DECHash.pas (DECHash) 2349 +Clearing BreakPoint at 00485F4A +De-Activate DECHash.pas line 2349 BreakPoint at:00485F4A +Adding coverage:DECHash.pas (DECHash) 2350 +Clearing BreakPoint at 00485F6D +De-Activate DECHash.pas line 2350 BreakPoint at:00485F6D +Adding coverage:DECHash.pas (DECHash) 2351 +Clearing BreakPoint at 00485F90 +De-Activate DECHash.pas line 2351 BreakPoint at:00485F90 +Adding coverage:DECHash.pas (DECHash) 2352 +Clearing BreakPoint at 00485FB3 +De-Activate DECHash.pas line 2352 BreakPoint at:00485FB3 +Adding coverage:DECHash.pas (DECHash) 2353 +Clearing BreakPoint at 00485FD6 +De-Activate DECHash.pas line 2353 BreakPoint at:00485FD6 +Adding coverage:DECHash.pas (DECHash) 2354 +Clearing BreakPoint at 00485FF9 +De-Activate DECHash.pas line 2354 BreakPoint at:00485FF9 +Adding coverage:DECHash.pas (DECHash) 2355 +Clearing BreakPoint at 0048601C +De-Activate DECHash.pas line 2355 BreakPoint at:0048601C +Adding coverage:DECHash.pas (DECHash) 2356 +Clearing BreakPoint at 0048603F +De-Activate DECHash.pas line 2356 BreakPoint at:0048603F +Adding coverage:DECHash.pas (DECHash) 2358 +Clearing BreakPoint at 00486062 +De-Activate DECHash.pas line 2358 BreakPoint at:00486062 +Adding coverage:DECHash.pas (DECHash) 2359 +Clearing BreakPoint at 0048606B +De-Activate DECHash.pas line 2359 BreakPoint at:0048606B +Adding coverage:DECHash.pas (DECHash) 2360 +Clearing BreakPoint at 00486074 +De-Activate DECHash.pas line 2360 BreakPoint at:00486074 +Adding coverage:DECHash.pas (DECHash) 2361 +Clearing BreakPoint at 0048607D +De-Activate DECHash.pas line 2361 BreakPoint at:0048607D +Adding coverage:DECHash.pas (DECHash) 2363 +Clearing BreakPoint at 00486086 +De-Activate DECHash.pas line 2363 BreakPoint at:00486086 +Adding coverage:DECHash.pas (DECHash) 2364 +Clearing BreakPoint at 0048608F +De-Activate DECHash.pas line 2364 BreakPoint at:0048608F +Adding coverage:DECHash.pas (DECHash) 2365 +Clearing BreakPoint at 00486098 +De-Activate DECHash.pas line 2365 BreakPoint at:00486098 +Adding coverage:DECHash.pas (DECHash) 2366 +Clearing BreakPoint at 004860A1 +De-Activate DECHash.pas line 2366 BreakPoint at:004860A1 +Adding coverage:DECHash.pas (DECHash) 2367 +Clearing BreakPoint at 004860AA +De-Activate DECHash.pas line 2367 BreakPoint at:004860AA +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2643 +Clearing BreakPoint at 00488BF4 +De-Activate DECHash.pas line 2643 BreakPoint at:00488BF4 +Adding coverage:DECHash.pas (DECHash) 2644 +Clearing BreakPoint at 00488BFD +De-Activate DECHash.pas line 2644 BreakPoint at:00488BFD +Adding coverage:DECHash.pas (DECHash) 2645 +Clearing BreakPoint at 00488C04 +De-Activate DECHash.pas line 2645 BreakPoint at:00488C04 +Adding coverage:DECHash.pas (DECHash) 2397 +Clearing BreakPoint at 00486138 +De-Activate DECHash.pas line 2397 BreakPoint at:00486138 +Adding coverage:DECHash.pas (DECHash) 2398 +Clearing BreakPoint at 00486144 +De-Activate DECHash.pas line 2398 BreakPoint at:00486144 +Adding coverage:DECHash.pas (DECHash) 2399 +Clearing BreakPoint at 0048614D +De-Activate DECHash.pas line 2399 BreakPoint at:0048614D +Adding coverage:DECHash.pas (DECHash) 2400 +Clearing BreakPoint at 00486156 +De-Activate DECHash.pas line 2400 BreakPoint at:00486156 +Adding coverage:DECHash.pas (DECHash) 2401 +Clearing BreakPoint at 0048615F +De-Activate DECHash.pas line 2401 BreakPoint at:0048615F +Adding coverage:DECHash.pas (DECHash) 2402 +Clearing BreakPoint at 00486168 +De-Activate DECHash.pas line 2402 BreakPoint at:00486168 +Adding coverage:DECHash.pas (DECHash) 2403 +Clearing BreakPoint at 00486171 +De-Activate DECHash.pas line 2403 BreakPoint at:00486171 +Adding coverage:DECHash.pas (DECHash) 2404 +Clearing BreakPoint at 0048617A +De-Activate DECHash.pas line 2404 BreakPoint at:0048617A +Adding coverage:DECHash.pas (DECHash) 2405 +Clearing BreakPoint at 00486183 +De-Activate DECHash.pas line 2405 BreakPoint at:00486183 +Adding coverage:DECHash.pas (DECHash) 2406 +Clearing BreakPoint at 0048618C +De-Activate DECHash.pas line 2406 BreakPoint at:0048618C +Adding coverage:DECHash.pas (DECHash) 2407 +Clearing BreakPoint at 00486195 +De-Activate DECHash.pas line 2407 BreakPoint at:00486195 +Adding coverage:DECHash.pas (DECHash) 2409 +Clearing BreakPoint at 0048619E +De-Activate DECHash.pas line 2409 BreakPoint at:0048619E +Adding coverage:DECHash.pas (DECHash) 2410 +Clearing BreakPoint at 004861D4 +De-Activate DECHash.pas line 2410 BreakPoint at:004861D4 +Adding coverage:DECHash.pas (DECHash) 2411 +Clearing BreakPoint at 0048620B +De-Activate DECHash.pas line 2411 BreakPoint at:0048620B +Adding coverage:DECHash.pas (DECHash) 2412 +Clearing BreakPoint at 00486242 +De-Activate DECHash.pas line 2412 BreakPoint at:00486242 +Adding coverage:DECHash.pas (DECHash) 2413 +Clearing BreakPoint at 00486279 +De-Activate DECHash.pas line 2413 BreakPoint at:00486279 +Adding coverage:DECHash.pas (DECHash) 2414 +Clearing BreakPoint at 004862B0 +De-Activate DECHash.pas line 2414 BreakPoint at:004862B0 +Adding coverage:DECHash.pas (DECHash) 2415 +Clearing BreakPoint at 004862E7 +De-Activate DECHash.pas line 2415 BreakPoint at:004862E7 +Adding coverage:DECHash.pas (DECHash) 2416 +Clearing BreakPoint at 0048631E +De-Activate DECHash.pas line 2416 BreakPoint at:0048631E +Adding coverage:DECHash.pas (DECHash) 2417 +Clearing BreakPoint at 00486355 +De-Activate DECHash.pas line 2417 BreakPoint at:00486355 +Adding coverage:DECHash.pas (DECHash) 2418 +Clearing BreakPoint at 0048638C +De-Activate DECHash.pas line 2418 BreakPoint at:0048638C +Adding coverage:DECHash.pas (DECHash) 2419 +Clearing BreakPoint at 004863C3 +De-Activate DECHash.pas line 2419 BreakPoint at:004863C3 +Adding coverage:DECHash.pas (DECHash) 2420 +Clearing BreakPoint at 004863FA +De-Activate DECHash.pas line 2420 BreakPoint at:004863FA +Adding coverage:DECHash.pas (DECHash) 2421 +Clearing BreakPoint at 00486431 +De-Activate DECHash.pas line 2421 BreakPoint at:00486431 +Adding coverage:DECHash.pas (DECHash) 2422 +Clearing BreakPoint at 00486468 +De-Activate DECHash.pas line 2422 BreakPoint at:00486468 +Adding coverage:DECHash.pas (DECHash) 2423 +Clearing BreakPoint at 0048649F +De-Activate DECHash.pas line 2423 BreakPoint at:0048649F +Adding coverage:DECHash.pas (DECHash) 2424 +Clearing BreakPoint at 004864D6 +De-Activate DECHash.pas line 2424 BreakPoint at:004864D6 +Adding coverage:DECHash.pas (DECHash) 2426 +Clearing BreakPoint at 0048650D +De-Activate DECHash.pas line 2426 BreakPoint at:0048650D +Adding coverage:DECHash.pas (DECHash) 2427 +Clearing BreakPoint at 0048651F +De-Activate DECHash.pas line 2427 BreakPoint at:0048651F +Adding coverage:DECHash.pas (DECHash) 2428 +Clearing BreakPoint at 00486531 +De-Activate DECHash.pas line 2428 BreakPoint at:00486531 +Adding coverage:DECHash.pas (DECHash) 2429 +Clearing BreakPoint at 00486543 +De-Activate DECHash.pas line 2429 BreakPoint at:00486543 +Adding coverage:DECHash.pas (DECHash) 2430 +Clearing BreakPoint at 00486555 +De-Activate DECHash.pas line 2430 BreakPoint at:00486555 +Adding coverage:DECHash.pas (DECHash) 2432 +Clearing BreakPoint at 00486567 +De-Activate DECHash.pas line 2432 BreakPoint at:00486567 +Adding coverage:DECHash.pas (DECHash) 2433 +Clearing BreakPoint at 004865A5 +De-Activate DECHash.pas line 2433 BreakPoint at:004865A5 +Adding coverage:DECHash.pas (DECHash) 2434 +Clearing BreakPoint at 004865E3 +De-Activate DECHash.pas line 2434 BreakPoint at:004865E3 +Adding coverage:DECHash.pas (DECHash) 2435 +Clearing BreakPoint at 00486621 +De-Activate DECHash.pas line 2435 BreakPoint at:00486621 +Adding coverage:DECHash.pas (DECHash) 2436 +Clearing BreakPoint at 0048665E +De-Activate DECHash.pas line 2436 BreakPoint at:0048665E +Adding coverage:DECHash.pas (DECHash) 2437 +Clearing BreakPoint at 0048669C +De-Activate DECHash.pas line 2437 BreakPoint at:0048669C +Adding coverage:DECHash.pas (DECHash) 2438 +Clearing BreakPoint at 004866DA +De-Activate DECHash.pas line 2438 BreakPoint at:004866DA +Adding coverage:DECHash.pas (DECHash) 2439 +Clearing BreakPoint at 00486718 +De-Activate DECHash.pas line 2439 BreakPoint at:00486718 +Adding coverage:DECHash.pas (DECHash) 2440 +Clearing BreakPoint at 00486756 +De-Activate DECHash.pas line 2440 BreakPoint at:00486756 +Adding coverage:DECHash.pas (DECHash) 2441 +Clearing BreakPoint at 00486794 +De-Activate DECHash.pas line 2441 BreakPoint at:00486794 +Adding coverage:DECHash.pas (DECHash) 2442 +Clearing BreakPoint at 004867D2 +De-Activate DECHash.pas line 2442 BreakPoint at:004867D2 +Adding coverage:DECHash.pas (DECHash) 2443 +Clearing BreakPoint at 00486810 +De-Activate DECHash.pas line 2443 BreakPoint at:00486810 +Adding coverage:DECHash.pas (DECHash) 2444 +Clearing BreakPoint at 0048684E +De-Activate DECHash.pas line 2444 BreakPoint at:0048684E +Adding coverage:DECHash.pas (DECHash) 2445 +Clearing BreakPoint at 0048688C +De-Activate DECHash.pas line 2445 BreakPoint at:0048688C +Adding coverage:DECHash.pas (DECHash) 2446 +Clearing BreakPoint at 004868CA +De-Activate DECHash.pas line 2446 BreakPoint at:004868CA +Adding coverage:DECHash.pas (DECHash) 2447 +Clearing BreakPoint at 00486908 +De-Activate DECHash.pas line 2447 BreakPoint at:00486908 +Adding coverage:DECHash.pas (DECHash) 2449 +Clearing BreakPoint at 00486946 +De-Activate DECHash.pas line 2449 BreakPoint at:00486946 +Adding coverage:DECHash.pas (DECHash) 2450 +Clearing BreakPoint at 00486958 +De-Activate DECHash.pas line 2450 BreakPoint at:00486958 +Adding coverage:DECHash.pas (DECHash) 2451 +Clearing BreakPoint at 0048696A +De-Activate DECHash.pas line 2451 BreakPoint at:0048696A +Adding coverage:DECHash.pas (DECHash) 2452 +Clearing BreakPoint at 0048697C +De-Activate DECHash.pas line 2452 BreakPoint at:0048697C +Adding coverage:DECHash.pas (DECHash) 2454 +Clearing BreakPoint at 0048698E +De-Activate DECHash.pas line 2454 BreakPoint at:0048698E +Adding coverage:DECHash.pas (DECHash) 2455 +Clearing BreakPoint at 004869D1 +De-Activate DECHash.pas line 2455 BreakPoint at:004869D1 +Adding coverage:DECHash.pas (DECHash) 2456 +Clearing BreakPoint at 00486A14 +De-Activate DECHash.pas line 2456 BreakPoint at:00486A14 +Adding coverage:DECHash.pas (DECHash) 2457 +Clearing BreakPoint at 00486A57 +De-Activate DECHash.pas line 2457 BreakPoint at:00486A57 +Adding coverage:DECHash.pas (DECHash) 2458 +Clearing BreakPoint at 00486A9A +De-Activate DECHash.pas line 2458 BreakPoint at:00486A9A +Adding coverage:DECHash.pas (DECHash) 2459 +Clearing BreakPoint at 00486ADD +De-Activate DECHash.pas line 2459 BreakPoint at:00486ADD +Adding coverage:DECHash.pas (DECHash) 2460 +Clearing BreakPoint at 00486B20 +De-Activate DECHash.pas line 2460 BreakPoint at:00486B20 +Adding coverage:DECHash.pas (DECHash) 2461 +Clearing BreakPoint at 00486B63 +De-Activate DECHash.pas line 2461 BreakPoint at:00486B63 +Adding coverage:DECHash.pas (DECHash) 2462 +Clearing BreakPoint at 00486BA6 +De-Activate DECHash.pas line 2462 BreakPoint at:00486BA6 +Adding coverage:DECHash.pas (DECHash) 2463 +Clearing BreakPoint at 00486BE9 +De-Activate DECHash.pas line 2463 BreakPoint at:00486BE9 +Adding coverage:DECHash.pas (DECHash) 2464 +Clearing BreakPoint at 00486C2B +De-Activate DECHash.pas line 2464 BreakPoint at:00486C2B +Adding coverage:DECHash.pas (DECHash) 2465 +Clearing BreakPoint at 00486C6E +De-Activate DECHash.pas line 2465 BreakPoint at:00486C6E +Adding coverage:DECHash.pas (DECHash) 2466 +Clearing BreakPoint at 00486CB1 +De-Activate DECHash.pas line 2466 BreakPoint at:00486CB1 +Adding coverage:DECHash.pas (DECHash) 2467 +Clearing BreakPoint at 00486CF4 +De-Activate DECHash.pas line 2467 BreakPoint at:00486CF4 +Adding coverage:DECHash.pas (DECHash) 2468 +Clearing BreakPoint at 00486D37 +De-Activate DECHash.pas line 2468 BreakPoint at:00486D37 +Adding coverage:DECHash.pas (DECHash) 2469 +Clearing BreakPoint at 00486D7A +De-Activate DECHash.pas line 2469 BreakPoint at:00486D7A +Adding coverage:DECHash.pas (DECHash) 2471 +Clearing BreakPoint at 00486DBD +De-Activate DECHash.pas line 2471 BreakPoint at:00486DBD +Adding coverage:DECHash.pas (DECHash) 2472 +Clearing BreakPoint at 00486DCF +De-Activate DECHash.pas line 2472 BreakPoint at:00486DCF +Adding coverage:DECHash.pas (DECHash) 2473 +Clearing BreakPoint at 00486DE1 +De-Activate DECHash.pas line 2473 BreakPoint at:00486DE1 +Adding coverage:DECHash.pas (DECHash) 2474 +Clearing BreakPoint at 00486DF3 +De-Activate DECHash.pas line 2474 BreakPoint at:00486DF3 +Adding coverage:DECHash.pas (DECHash) 2475 +Clearing BreakPoint at 00486E05 +De-Activate DECHash.pas line 2475 BreakPoint at:00486E05 +Adding coverage:DECHash.pas (DECHash) 2477 +Clearing BreakPoint at 00486E17 +De-Activate DECHash.pas line 2477 BreakPoint at:00486E17 +Adding coverage:DECHash.pas (DECHash) 2478 +Clearing BreakPoint at 00486E5A +De-Activate DECHash.pas line 2478 BreakPoint at:00486E5A +Adding coverage:DECHash.pas (DECHash) 2479 +Clearing BreakPoint at 00486E9D +De-Activate DECHash.pas line 2479 BreakPoint at:00486E9D +Adding coverage:DECHash.pas (DECHash) 2480 +Clearing BreakPoint at 00486EE0 +De-Activate DECHash.pas line 2480 BreakPoint at:00486EE0 +Adding coverage:DECHash.pas (DECHash) 2481 +Clearing BreakPoint at 00486F23 +De-Activate DECHash.pas line 2481 BreakPoint at:00486F23 +Adding coverage:DECHash.pas (DECHash) 2482 +Clearing BreakPoint at 00486F65 +De-Activate DECHash.pas line 2482 BreakPoint at:00486F65 +Adding coverage:DECHash.pas (DECHash) 2483 +Clearing BreakPoint at 00486FA8 +De-Activate DECHash.pas line 2483 BreakPoint at:00486FA8 +Adding coverage:DECHash.pas (DECHash) 2484 +Clearing BreakPoint at 00486FEB +De-Activate DECHash.pas line 2484 BreakPoint at:00486FEB +Adding coverage:DECHash.pas (DECHash) 2485 +Clearing BreakPoint at 0048702E +De-Activate DECHash.pas line 2485 BreakPoint at:0048702E +Adding coverage:DECHash.pas (DECHash) 2486 +Clearing BreakPoint at 00487071 +De-Activate DECHash.pas line 2486 BreakPoint at:00487071 +Adding coverage:DECHash.pas (DECHash) 2487 +Clearing BreakPoint at 004870B4 +De-Activate DECHash.pas line 2487 BreakPoint at:004870B4 +Adding coverage:DECHash.pas (DECHash) 2488 +Clearing BreakPoint at 004870F7 +De-Activate DECHash.pas line 2488 BreakPoint at:004870F7 +Adding coverage:DECHash.pas (DECHash) 2489 +Clearing BreakPoint at 0048713A +De-Activate DECHash.pas line 2489 BreakPoint at:0048713A +Adding coverage:DECHash.pas (DECHash) 2490 +Clearing BreakPoint at 0048717D +De-Activate DECHash.pas line 2490 BreakPoint at:0048717D +Adding coverage:DECHash.pas (DECHash) 2491 +Clearing BreakPoint at 004871C0 +De-Activate DECHash.pas line 2491 BreakPoint at:004871C0 +Adding coverage:DECHash.pas (DECHash) 2492 +Clearing BreakPoint at 00487203 +De-Activate DECHash.pas line 2492 BreakPoint at:00487203 +Adding coverage:DECHash.pas (DECHash) 2494 +Clearing BreakPoint at 00487246 +De-Activate DECHash.pas line 2494 BreakPoint at:00487246 +Adding coverage:DECHash.pas (DECHash) 2495 +Clearing BreakPoint at 00487258 +De-Activate DECHash.pas line 2495 BreakPoint at:00487258 +Adding coverage:DECHash.pas (DECHash) 2496 +Clearing BreakPoint at 0048726A +De-Activate DECHash.pas line 2496 BreakPoint at:0048726A +Adding coverage:DECHash.pas (DECHash) 2497 +Clearing BreakPoint at 0048727C +De-Activate DECHash.pas line 2497 BreakPoint at:0048727C +Adding coverage:DECHash.pas (DECHash) 2499 +Clearing BreakPoint at 0048728E +De-Activate DECHash.pas line 2499 BreakPoint at:0048728E +Adding coverage:DECHash.pas (DECHash) 2500 +Clearing BreakPoint at 004872CC +De-Activate DECHash.pas line 2500 BreakPoint at:004872CC +Adding coverage:DECHash.pas (DECHash) 2501 +Clearing BreakPoint at 0048730A +De-Activate DECHash.pas line 2501 BreakPoint at:0048730A +Adding coverage:DECHash.pas (DECHash) 2502 +Clearing BreakPoint at 00487348 +De-Activate DECHash.pas line 2502 BreakPoint at:00487348 +Adding coverage:DECHash.pas (DECHash) 2503 +Clearing BreakPoint at 00487386 +De-Activate DECHash.pas line 2503 BreakPoint at:00487386 +Adding coverage:DECHash.pas (DECHash) 2504 +Clearing BreakPoint at 004873C4 +De-Activate DECHash.pas line 2504 BreakPoint at:004873C4 +Adding coverage:DECHash.pas (DECHash) 2505 +Clearing BreakPoint at 00487402 +De-Activate DECHash.pas line 2505 BreakPoint at:00487402 +Adding coverage:DECHash.pas (DECHash) 2506 +Clearing BreakPoint at 00487440 +De-Activate DECHash.pas line 2506 BreakPoint at:00487440 +Adding coverage:DECHash.pas (DECHash) 2507 +Clearing BreakPoint at 0048747E +De-Activate DECHash.pas line 2507 BreakPoint at:0048747E +Adding coverage:DECHash.pas (DECHash) 2508 +Clearing BreakPoint at 004874BC +De-Activate DECHash.pas line 2508 BreakPoint at:004874BC +Adding coverage:DECHash.pas (DECHash) 2509 +Clearing BreakPoint at 004874FA +De-Activate DECHash.pas line 2509 BreakPoint at:004874FA +Adding coverage:DECHash.pas (DECHash) 2510 +Clearing BreakPoint at 00487537 +De-Activate DECHash.pas line 2510 BreakPoint at:00487537 +Adding coverage:DECHash.pas (DECHash) 2511 +Clearing BreakPoint at 00487575 +De-Activate DECHash.pas line 2511 BreakPoint at:00487575 +Adding coverage:DECHash.pas (DECHash) 2512 +Clearing BreakPoint at 004875B3 +De-Activate DECHash.pas line 2512 BreakPoint at:004875B3 +Adding coverage:DECHash.pas (DECHash) 2513 +Clearing BreakPoint at 004875F1 +De-Activate DECHash.pas line 2513 BreakPoint at:004875F1 +Adding coverage:DECHash.pas (DECHash) 2514 +Clearing BreakPoint at 0048762F +De-Activate DECHash.pas line 2514 BreakPoint at:0048762F +Adding coverage:DECHash.pas (DECHash) 2516 +Clearing BreakPoint at 0048766D +De-Activate DECHash.pas line 2516 BreakPoint at:0048766D +Adding coverage:DECHash.pas (DECHash) 2517 +Clearing BreakPoint at 0048767F +De-Activate DECHash.pas line 2517 BreakPoint at:0048767F +Adding coverage:DECHash.pas (DECHash) 2518 +Clearing BreakPoint at 00487691 +De-Activate DECHash.pas line 2518 BreakPoint at:00487691 +Adding coverage:DECHash.pas (DECHash) 2519 +Clearing BreakPoint at 004876A3 +De-Activate DECHash.pas line 2519 BreakPoint at:004876A3 +Adding coverage:DECHash.pas (DECHash) 2520 +Clearing BreakPoint at 004876B5 +De-Activate DECHash.pas line 2520 BreakPoint at:004876B5 +Adding coverage:DECHash.pas (DECHash) 2522 +Clearing BreakPoint at 004876C7 +De-Activate DECHash.pas line 2522 BreakPoint at:004876C7 +Adding coverage:DECHash.pas (DECHash) 2523 +Clearing BreakPoint at 00487705 +De-Activate DECHash.pas line 2523 BreakPoint at:00487705 +Adding coverage:DECHash.pas (DECHash) 2524 +Clearing BreakPoint at 00487743 +De-Activate DECHash.pas line 2524 BreakPoint at:00487743 +Adding coverage:DECHash.pas (DECHash) 2525 +Clearing BreakPoint at 00487781 +De-Activate DECHash.pas line 2525 BreakPoint at:00487781 +Adding coverage:DECHash.pas (DECHash) 2526 +Clearing BreakPoint at 004877BF +De-Activate DECHash.pas line 2526 BreakPoint at:004877BF +Adding coverage:DECHash.pas (DECHash) 2527 +Clearing BreakPoint at 004877FD +De-Activate DECHash.pas line 2527 BreakPoint at:004877FD +Adding coverage:DECHash.pas (DECHash) 2528 +Clearing BreakPoint at 0048783B +De-Activate DECHash.pas line 2528 BreakPoint at:0048783B +Adding coverage:DECHash.pas (DECHash) 2529 +Clearing BreakPoint at 00487879 +De-Activate DECHash.pas line 2529 BreakPoint at:00487879 +Adding coverage:DECHash.pas (DECHash) 2530 +Clearing BreakPoint at 004878B7 +De-Activate DECHash.pas line 2530 BreakPoint at:004878B7 +Adding coverage:DECHash.pas (DECHash) 2531 +Clearing BreakPoint at 004878F5 +De-Activate DECHash.pas line 2531 BreakPoint at:004878F5 +Adding coverage:DECHash.pas (DECHash) 2532 +Clearing BreakPoint at 00487933 +De-Activate DECHash.pas line 2532 BreakPoint at:00487933 +Adding coverage:DECHash.pas (DECHash) 2533 +Clearing BreakPoint at 00487971 +De-Activate DECHash.pas line 2533 BreakPoint at:00487971 +Adding coverage:DECHash.pas (DECHash) 2534 +Clearing BreakPoint at 004879AF +De-Activate DECHash.pas line 2534 BreakPoint at:004879AF +Adding coverage:DECHash.pas (DECHash) 2535 +Clearing BreakPoint at 004879ED +De-Activate DECHash.pas line 2535 BreakPoint at:004879ED +Adding coverage:DECHash.pas (DECHash) 2536 +Clearing BreakPoint at 00487A2A +De-Activate DECHash.pas line 2536 BreakPoint at:00487A2A +Adding coverage:DECHash.pas (DECHash) 2537 +Clearing BreakPoint at 00487A68 +De-Activate DECHash.pas line 2537 BreakPoint at:00487A68 +Adding coverage:DECHash.pas (DECHash) 2539 +Clearing BreakPoint at 00487AA6 +De-Activate DECHash.pas line 2539 BreakPoint at:00487AA6 +Adding coverage:DECHash.pas (DECHash) 2540 +Clearing BreakPoint at 00487AB8 +De-Activate DECHash.pas line 2540 BreakPoint at:00487AB8 +Adding coverage:DECHash.pas (DECHash) 2541 +Clearing BreakPoint at 00487ACA +De-Activate DECHash.pas line 2541 BreakPoint at:00487ACA +Adding coverage:DECHash.pas (DECHash) 2542 +Clearing BreakPoint at 00487ADC +De-Activate DECHash.pas line 2542 BreakPoint at:00487ADC +Adding coverage:DECHash.pas (DECHash) 2544 +Clearing BreakPoint at 00487AEE +De-Activate DECHash.pas line 2544 BreakPoint at:00487AEE +Adding coverage:DECHash.pas (DECHash) 2545 +Clearing BreakPoint at 00487B31 +De-Activate DECHash.pas line 2545 BreakPoint at:00487B31 +Adding coverage:DECHash.pas (DECHash) 2546 +Clearing BreakPoint at 00487B74 +De-Activate DECHash.pas line 2546 BreakPoint at:00487B74 +Adding coverage:DECHash.pas (DECHash) 2547 +Clearing BreakPoint at 00487BB7 +De-Activate DECHash.pas line 2547 BreakPoint at:00487BB7 +Adding coverage:DECHash.pas (DECHash) 2548 +Clearing BreakPoint at 00487BFA +De-Activate DECHash.pas line 2548 BreakPoint at:00487BFA +Adding coverage:DECHash.pas (DECHash) 2549 +Clearing BreakPoint at 00487C3C +De-Activate DECHash.pas line 2549 BreakPoint at:00487C3C +Adding coverage:DECHash.pas (DECHash) 2550 +Clearing BreakPoint at 00487C7F +De-Activate DECHash.pas line 2550 BreakPoint at:00487C7F +Adding coverage:DECHash.pas (DECHash) 2551 +Clearing BreakPoint at 00487CC2 +De-Activate DECHash.pas line 2551 BreakPoint at:00487CC2 +Adding coverage:DECHash.pas (DECHash) 2552 +Clearing BreakPoint at 00487D05 +De-Activate DECHash.pas line 2552 BreakPoint at:00487D05 +Adding coverage:DECHash.pas (DECHash) 2553 +Clearing BreakPoint at 00487D48 +De-Activate DECHash.pas line 2553 BreakPoint at:00487D48 +Adding coverage:DECHash.pas (DECHash) 2554 +Clearing BreakPoint at 00487D8B +De-Activate DECHash.pas line 2554 BreakPoint at:00487D8B +Adding coverage:DECHash.pas (DECHash) 2555 +Clearing BreakPoint at 00487DCE +De-Activate DECHash.pas line 2555 BreakPoint at:00487DCE +Adding coverage:DECHash.pas (DECHash) 2556 +Clearing BreakPoint at 00487E11 +De-Activate DECHash.pas line 2556 BreakPoint at:00487E11 +Adding coverage:DECHash.pas (DECHash) 2557 +Clearing BreakPoint at 00487E54 +De-Activate DECHash.pas line 2557 BreakPoint at:00487E54 +Adding coverage:DECHash.pas (DECHash) 2558 +Clearing BreakPoint at 00487E97 +De-Activate DECHash.pas line 2558 BreakPoint at:00487E97 +Adding coverage:DECHash.pas (DECHash) 2559 +Clearing BreakPoint at 00487EDA +De-Activate DECHash.pas line 2559 BreakPoint at:00487EDA +Adding coverage:DECHash.pas (DECHash) 2561 +Clearing BreakPoint at 00487F1D +De-Activate DECHash.pas line 2561 BreakPoint at:00487F1D +Adding coverage:DECHash.pas (DECHash) 2562 +Clearing BreakPoint at 00487F2F +De-Activate DECHash.pas line 2562 BreakPoint at:00487F2F +Adding coverage:DECHash.pas (DECHash) 2563 +Clearing BreakPoint at 00487F41 +De-Activate DECHash.pas line 2563 BreakPoint at:00487F41 +Adding coverage:DECHash.pas (DECHash) 2564 +Clearing BreakPoint at 00487F53 +De-Activate DECHash.pas line 2564 BreakPoint at:00487F53 +Adding coverage:DECHash.pas (DECHash) 2565 +Clearing BreakPoint at 00487F65 +De-Activate DECHash.pas line 2565 BreakPoint at:00487F65 +Adding coverage:DECHash.pas (DECHash) 2567 +Clearing BreakPoint at 00487F77 +De-Activate DECHash.pas line 2567 BreakPoint at:00487F77 +Adding coverage:DECHash.pas (DECHash) 2568 +Clearing BreakPoint at 00487FBA +De-Activate DECHash.pas line 2568 BreakPoint at:00487FBA +Adding coverage:DECHash.pas (DECHash) 2569 +Clearing BreakPoint at 00487FFD +De-Activate DECHash.pas line 2569 BreakPoint at:00487FFD +Adding coverage:DECHash.pas (DECHash) 2570 +Clearing BreakPoint at 00488040 +De-Activate DECHash.pas line 2570 BreakPoint at:00488040 +Adding coverage:DECHash.pas (DECHash) 2571 +Clearing BreakPoint at 00488083 +De-Activate DECHash.pas line 2571 BreakPoint at:00488083 +Adding coverage:DECHash.pas (DECHash) 2572 +Clearing BreakPoint at 004880C6 +De-Activate DECHash.pas line 2572 BreakPoint at:004880C6 +Adding coverage:DECHash.pas (DECHash) 2573 +Clearing BreakPoint at 00488109 +De-Activate DECHash.pas line 2573 BreakPoint at:00488109 +Adding coverage:DECHash.pas (DECHash) 2574 +Clearing BreakPoint at 0048814C +De-Activate DECHash.pas line 2574 BreakPoint at:0048814C +Adding coverage:DECHash.pas (DECHash) 2575 +Clearing BreakPoint at 0048818E +De-Activate DECHash.pas line 2575 BreakPoint at:0048818E +Adding coverage:DECHash.pas (DECHash) 2576 +Clearing BreakPoint at 004881D1 +De-Activate DECHash.pas line 2576 BreakPoint at:004881D1 +Adding coverage:DECHash.pas (DECHash) 2577 +Clearing BreakPoint at 00488214 +De-Activate DECHash.pas line 2577 BreakPoint at:00488214 +Adding coverage:DECHash.pas (DECHash) 2578 +Clearing BreakPoint at 00488257 +De-Activate DECHash.pas line 2578 BreakPoint at:00488257 +Adding coverage:DECHash.pas (DECHash) 2579 +Clearing BreakPoint at 0048829A +De-Activate DECHash.pas line 2579 BreakPoint at:0048829A +Adding coverage:DECHash.pas (DECHash) 2580 +Clearing BreakPoint at 004882DD +De-Activate DECHash.pas line 2580 BreakPoint at:004882DD +Adding coverage:DECHash.pas (DECHash) 2581 +Clearing BreakPoint at 00488320 +De-Activate DECHash.pas line 2581 BreakPoint at:00488320 +Adding coverage:DECHash.pas (DECHash) 2582 +Clearing BreakPoint at 00488363 +De-Activate DECHash.pas line 2582 BreakPoint at:00488363 +Adding coverage:DECHash.pas (DECHash) 2584 +Clearing BreakPoint at 004883A6 +De-Activate DECHash.pas line 2584 BreakPoint at:004883A6 +Adding coverage:DECHash.pas (DECHash) 2585 +Clearing BreakPoint at 004883B8 +De-Activate DECHash.pas line 2585 BreakPoint at:004883B8 +Adding coverage:DECHash.pas (DECHash) 2586 +Clearing BreakPoint at 004883CA +De-Activate DECHash.pas line 2586 BreakPoint at:004883CA +Adding coverage:DECHash.pas (DECHash) 2587 +Clearing BreakPoint at 004883DC +De-Activate DECHash.pas line 2587 BreakPoint at:004883DC +Adding coverage:DECHash.pas (DECHash) 2589 +Clearing BreakPoint at 004883EE +De-Activate DECHash.pas line 2589 BreakPoint at:004883EE +Adding coverage:DECHash.pas (DECHash) 2590 +Clearing BreakPoint at 0048842C +De-Activate DECHash.pas line 2590 BreakPoint at:0048842C +Adding coverage:DECHash.pas (DECHash) 2591 +Clearing BreakPoint at 00488469 +De-Activate DECHash.pas line 2591 BreakPoint at:00488469 +Adding coverage:DECHash.pas (DECHash) 2592 +Clearing BreakPoint at 004884A7 +De-Activate DECHash.pas line 2592 BreakPoint at:004884A7 +Adding coverage:DECHash.pas (DECHash) 2593 +Clearing BreakPoint at 004884E5 +De-Activate DECHash.pas line 2593 BreakPoint at:004884E5 +Adding coverage:DECHash.pas (DECHash) 2594 +Clearing BreakPoint at 00488523 +De-Activate DECHash.pas line 2594 BreakPoint at:00488523 +Adding coverage:DECHash.pas (DECHash) 2595 +Clearing BreakPoint at 00488561 +De-Activate DECHash.pas line 2595 BreakPoint at:00488561 +Adding coverage:DECHash.pas (DECHash) 2596 +Clearing BreakPoint at 0048859F +De-Activate DECHash.pas line 2596 BreakPoint at:0048859F +Adding coverage:DECHash.pas (DECHash) 2597 +Clearing BreakPoint at 004885DD +De-Activate DECHash.pas line 2597 BreakPoint at:004885DD +Adding coverage:DECHash.pas (DECHash) 2598 +Clearing BreakPoint at 0048861B +De-Activate DECHash.pas line 2598 BreakPoint at:0048861B +Adding coverage:DECHash.pas (DECHash) 2599 +Clearing BreakPoint at 00488659 +De-Activate DECHash.pas line 2599 BreakPoint at:00488659 +Adding coverage:DECHash.pas (DECHash) 2600 +Clearing BreakPoint at 00488697 +De-Activate DECHash.pas line 2600 BreakPoint at:00488697 +Adding coverage:DECHash.pas (DECHash) 2601 +Clearing BreakPoint at 004886D5 +De-Activate DECHash.pas line 2601 BreakPoint at:004886D5 +Adding coverage:DECHash.pas (DECHash) 2602 +Clearing BreakPoint at 00488713 +De-Activate DECHash.pas line 2602 BreakPoint at:00488713 +Adding coverage:DECHash.pas (DECHash) 2603 +Clearing BreakPoint at 00488751 +De-Activate DECHash.pas line 2603 BreakPoint at:00488751 +Adding coverage:DECHash.pas (DECHash) 2604 +Clearing BreakPoint at 0048878F +De-Activate DECHash.pas line 2604 BreakPoint at:0048878F +Adding coverage:DECHash.pas (DECHash) 2606 +Clearing BreakPoint at 004887CD +De-Activate DECHash.pas line 2606 BreakPoint at:004887CD +Adding coverage:DECHash.pas (DECHash) 2607 +Clearing BreakPoint at 004887DF +De-Activate DECHash.pas line 2607 BreakPoint at:004887DF +Adding coverage:DECHash.pas (DECHash) 2608 +Clearing BreakPoint at 004887F1 +De-Activate DECHash.pas line 2608 BreakPoint at:004887F1 +Adding coverage:DECHash.pas (DECHash) 2609 +Clearing BreakPoint at 00488803 +De-Activate DECHash.pas line 2609 BreakPoint at:00488803 +Adding coverage:DECHash.pas (DECHash) 2610 +Clearing BreakPoint at 00488815 +De-Activate DECHash.pas line 2610 BreakPoint at:00488815 +Adding coverage:DECHash.pas (DECHash) 2612 +Clearing BreakPoint at 00488827 +De-Activate DECHash.pas line 2612 BreakPoint at:00488827 +Adding coverage:DECHash.pas (DECHash) 2613 +Clearing BreakPoint at 0048885E +De-Activate DECHash.pas line 2613 BreakPoint at:0048885E +Adding coverage:DECHash.pas (DECHash) 2614 +Clearing BreakPoint at 00488895 +De-Activate DECHash.pas line 2614 BreakPoint at:00488895 +Adding coverage:DECHash.pas (DECHash) 2615 +Clearing BreakPoint at 004888CC +De-Activate DECHash.pas line 2615 BreakPoint at:004888CC +Adding coverage:DECHash.pas (DECHash) 2616 +Clearing BreakPoint at 00488903 +De-Activate DECHash.pas line 2616 BreakPoint at:00488903 +Adding coverage:DECHash.pas (DECHash) 2617 +Clearing BreakPoint at 0048893A +De-Activate DECHash.pas line 2617 BreakPoint at:0048893A +Adding coverage:DECHash.pas (DECHash) 2618 +Clearing BreakPoint at 00488971 +De-Activate DECHash.pas line 2618 BreakPoint at:00488971 +Adding coverage:DECHash.pas (DECHash) 2619 +Clearing BreakPoint at 004889A8 +De-Activate DECHash.pas line 2619 BreakPoint at:004889A8 +Adding coverage:DECHash.pas (DECHash) 2620 +Clearing BreakPoint at 004889DF +De-Activate DECHash.pas line 2620 BreakPoint at:004889DF +Adding coverage:DECHash.pas (DECHash) 2621 +Clearing BreakPoint at 00488A16 +De-Activate DECHash.pas line 2621 BreakPoint at:00488A16 +Adding coverage:DECHash.pas (DECHash) 2622 +Clearing BreakPoint at 00488A4D +De-Activate DECHash.pas line 2622 BreakPoint at:00488A4D +Adding coverage:DECHash.pas (DECHash) 2623 +Clearing BreakPoint at 00488A84 +De-Activate DECHash.pas line 2623 BreakPoint at:00488A84 +Adding coverage:DECHash.pas (DECHash) 2624 +Clearing BreakPoint at 00488ABB +De-Activate DECHash.pas line 2624 BreakPoint at:00488ABB +Adding coverage:DECHash.pas (DECHash) 2625 +Clearing BreakPoint at 00488AF1 +De-Activate DECHash.pas line 2625 BreakPoint at:00488AF1 +Adding coverage:DECHash.pas (DECHash) 2626 +Clearing BreakPoint at 00488B28 +De-Activate DECHash.pas line 2626 BreakPoint at:00488B28 +Adding coverage:DECHash.pas (DECHash) 2627 +Clearing BreakPoint at 00488B5F +De-Activate DECHash.pas line 2627 BreakPoint at:00488B5F +Adding coverage:DECHash.pas (DECHash) 2629 +Clearing BreakPoint at 00488B96 +De-Activate DECHash.pas line 2629 BreakPoint at:00488B96 +Adding coverage:DECHash.pas (DECHash) 2630 +Clearing BreakPoint at 00488B9F +De-Activate DECHash.pas line 2630 BreakPoint at:00488B9F +Adding coverage:DECHash.pas (DECHash) 2631 +Clearing BreakPoint at 00488BA8 +De-Activate DECHash.pas line 2631 BreakPoint at:00488BA8 +Adding coverage:DECHash.pas (DECHash) 2632 +Clearing BreakPoint at 00488BB1 +De-Activate DECHash.pas line 2632 BreakPoint at:00488BB1 +Adding coverage:DECHash.pas (DECHash) 2633 +Clearing BreakPoint at 00488BBA +De-Activate DECHash.pas line 2633 BreakPoint at:00488BBA +Adding coverage:DECHash.pas (DECHash) 2634 +Clearing BreakPoint at 00488BC3 +De-Activate DECHash.pas line 2634 BreakPoint at:00488BC3 +Adding coverage:DECHash.pas (DECHash) 2635 +Clearing BreakPoint at 00488BCC +De-Activate DECHash.pas line 2635 BreakPoint at:00488BCC +Adding coverage:DECHash.pas (DECHash) 2636 +Clearing BreakPoint at 00488BD5 +De-Activate DECHash.pas line 2636 BreakPoint at:00488BD5 +Adding coverage:DECHash.pas (DECHash) 2637 +Clearing BreakPoint at 00488BDE +De-Activate DECHash.pas line 2637 BreakPoint at:00488BDE +Adding coverage:DECHash.pas (DECHash) 2638 +Clearing BreakPoint at 00488BE7 +De-Activate DECHash.pas line 2638 BreakPoint at:00488BE7 +Adding coverage:DECHash.pas (DECHash) 2639 +Clearing BreakPoint at 00488BF0 +De-Activate DECHash.pas line 2639 BreakPoint at:00488BF0 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2794 +Clearing BreakPoint at 0048A064 +De-Activate DECHash.pas line 2794 BreakPoint at:0048A064 +Adding coverage:DECHash.pas (DECHash) 2795 +Clearing BreakPoint at 0048A06D +De-Activate DECHash.pas line 2795 BreakPoint at:0048A06D +Adding coverage:DECHash.pas (DECHash) 2796 +Clearing BreakPoint at 0048A074 +De-Activate DECHash.pas line 2796 BreakPoint at:0048A074 +Adding coverage:DECHash.pas (DECHash) 2655 +Clearing BreakPoint at 00488C0C +De-Activate DECHash.pas line 2655 BreakPoint at:00488C0C +Adding coverage:DECHash.pas (DECHash) 2656 +Clearing BreakPoint at 00488C1B +De-Activate DECHash.pas line 2656 BreakPoint at:00488C1B +Adding coverage:DECHash.pas (DECHash) 2657 +Clearing BreakPoint at 00488C2E +De-Activate DECHash.pas line 2657 BreakPoint at:00488C2E +Adding coverage:DECHash.pas (DECHash) 2659 +Clearing BreakPoint at 00488C3B +De-Activate DECHash.pas line 2659 BreakPoint at:00488C3B +Adding coverage:DECHash.pas (DECHash) 2661 +Clearing BreakPoint at 00488C42 +De-Activate DECHash.pas line 2661 BreakPoint at:00488C42 +Adding coverage:DECHash.pas (DECHash) 2662 +Clearing BreakPoint at 00488C6D +De-Activate DECHash.pas line 2662 BreakPoint at:00488C6D +Adding coverage:DECHash.pas (DECHash) 2663 +Clearing BreakPoint at 00488C7A +De-Activate DECHash.pas line 2663 BreakPoint at:00488C7A +Adding coverage:DECHash.pas (DECHash) 2659 +Clearing BreakPoint at 00488C7D +De-Activate DECHash.pas line 2659 BreakPoint at:00488C7D +Adding coverage:DECHash.pas (DECHash) 2674 +Clearing BreakPoint at 00488CD7 +De-Activate DECHash.pas line 2674 BreakPoint at:00488CD7 +Adding coverage:DECHash.pas (DECHash) 2675 +Clearing BreakPoint at 00488CE0 +De-Activate DECHash.pas line 2675 BreakPoint at:00488CE0 +Adding coverage:DECHash.pas (DECHash) 2676 +Clearing BreakPoint at 00488CE9 +De-Activate DECHash.pas line 2676 BreakPoint at:00488CE9 +Adding coverage:DECHash.pas (DECHash) 2677 +Clearing BreakPoint at 00488CF2 +De-Activate DECHash.pas line 2677 BreakPoint at:00488CF2 +Adding coverage:DECHash.pas (DECHash) 2678 +Clearing BreakPoint at 00488CFB +De-Activate DECHash.pas line 2678 BreakPoint at:00488CFB +Adding coverage:DECHash.pas (DECHash) 2680 +Clearing BreakPoint at 00488D04 +De-Activate DECHash.pas line 2680 BreakPoint at:00488D04 +Adding coverage:DECHash.pas (DECHash) 2681 +Clearing BreakPoint at 00488D3F +De-Activate DECHash.pas line 2681 BreakPoint at:00488D3F +Adding coverage:DECHash.pas (DECHash) 2682 +Clearing BreakPoint at 00488D7A +De-Activate DECHash.pas line 2682 BreakPoint at:00488D7A +Adding coverage:DECHash.pas (DECHash) 2683 +Clearing BreakPoint at 00488DB5 +De-Activate DECHash.pas line 2683 BreakPoint at:00488DB5 +Adding coverage:DECHash.pas (DECHash) 2684 +Clearing BreakPoint at 00488DF0 +De-Activate DECHash.pas line 2684 BreakPoint at:00488DF0 +Adding coverage:DECHash.pas (DECHash) 2685 +Clearing BreakPoint at 00488E2B +De-Activate DECHash.pas line 2685 BreakPoint at:00488E2B +Adding coverage:DECHash.pas (DECHash) 2686 +Clearing BreakPoint at 00488E66 +De-Activate DECHash.pas line 2686 BreakPoint at:00488E66 +Adding coverage:DECHash.pas (DECHash) 2687 +Clearing BreakPoint at 00488EA1 +De-Activate DECHash.pas line 2687 BreakPoint at:00488EA1 +Adding coverage:DECHash.pas (DECHash) 2688 +Clearing BreakPoint at 00488EDC +De-Activate DECHash.pas line 2688 BreakPoint at:00488EDC +Adding coverage:DECHash.pas (DECHash) 2689 +Clearing BreakPoint at 00488F17 +De-Activate DECHash.pas line 2689 BreakPoint at:00488F17 +Adding coverage:DECHash.pas (DECHash) 2690 +Clearing BreakPoint at 00488F52 +De-Activate DECHash.pas line 2690 BreakPoint at:00488F52 +Adding coverage:DECHash.pas (DECHash) 2691 +Clearing BreakPoint at 00488F8D +De-Activate DECHash.pas line 2691 BreakPoint at:00488F8D +Adding coverage:DECHash.pas (DECHash) 2692 +Clearing BreakPoint at 00488FC8 +De-Activate DECHash.pas line 2692 BreakPoint at:00488FC8 +Adding coverage:DECHash.pas (DECHash) 2693 +Clearing BreakPoint at 00489003 +De-Activate DECHash.pas line 2693 BreakPoint at:00489003 +Adding coverage:DECHash.pas (DECHash) 2694 +Clearing BreakPoint at 0048903E +De-Activate DECHash.pas line 2694 BreakPoint at:0048903E +Adding coverage:DECHash.pas (DECHash) 2695 +Clearing BreakPoint at 00489079 +De-Activate DECHash.pas line 2695 BreakPoint at:00489079 +Adding coverage:DECHash.pas (DECHash) 2696 +Clearing BreakPoint at 004890B4 +De-Activate DECHash.pas line 2696 BreakPoint at:004890B4 +Adding coverage:DECHash.pas (DECHash) 2697 +Clearing BreakPoint at 004890EF +De-Activate DECHash.pas line 2697 BreakPoint at:004890EF +Adding coverage:DECHash.pas (DECHash) 2698 +Clearing BreakPoint at 0048912A +De-Activate DECHash.pas line 2698 BreakPoint at:0048912A +Adding coverage:DECHash.pas (DECHash) 2699 +Clearing BreakPoint at 00489165 +De-Activate DECHash.pas line 2699 BreakPoint at:00489165 +Adding coverage:DECHash.pas (DECHash) 2701 +Clearing BreakPoint at 004891A0 +De-Activate DECHash.pas line 2701 BreakPoint at:004891A0 +Adding coverage:DECHash.pas (DECHash) 2702 +Clearing BreakPoint at 004891D8 +De-Activate DECHash.pas line 2702 BreakPoint at:004891D8 +Adding coverage:DECHash.pas (DECHash) 2703 +Clearing BreakPoint at 00489210 +De-Activate DECHash.pas line 2703 BreakPoint at:00489210 +Adding coverage:DECHash.pas (DECHash) 2704 +Clearing BreakPoint at 00489248 +De-Activate DECHash.pas line 2704 BreakPoint at:00489248 +Adding coverage:DECHash.pas (DECHash) 2705 +Clearing BreakPoint at 00489280 +De-Activate DECHash.pas line 2705 BreakPoint at:00489280 +Adding coverage:DECHash.pas (DECHash) 2706 +Clearing BreakPoint at 004892B8 +De-Activate DECHash.pas line 2706 BreakPoint at:004892B8 +Adding coverage:DECHash.pas (DECHash) 2707 +Clearing BreakPoint at 004892F0 +De-Activate DECHash.pas line 2707 BreakPoint at:004892F0 +Adding coverage:DECHash.pas (DECHash) 2708 +Clearing BreakPoint at 00489328 +De-Activate DECHash.pas line 2708 BreakPoint at:00489328 +Adding coverage:DECHash.pas (DECHash) 2709 +Clearing BreakPoint at 00489360 +De-Activate DECHash.pas line 2709 BreakPoint at:00489360 +Adding coverage:DECHash.pas (DECHash) 2710 +Clearing BreakPoint at 00489398 +De-Activate DECHash.pas line 2710 BreakPoint at:00489398 +Adding coverage:DECHash.pas (DECHash) 2711 +Clearing BreakPoint at 004893D0 +De-Activate DECHash.pas line 2711 BreakPoint at:004893D0 +Adding coverage:DECHash.pas (DECHash) 2712 +Clearing BreakPoint at 00489408 +De-Activate DECHash.pas line 2712 BreakPoint at:00489408 +Adding coverage:DECHash.pas (DECHash) 2713 +Clearing BreakPoint at 00489440 +De-Activate DECHash.pas line 2713 BreakPoint at:00489440 +Adding coverage:DECHash.pas (DECHash) 2714 +Clearing BreakPoint at 00489478 +De-Activate DECHash.pas line 2714 BreakPoint at:00489478 +Adding coverage:DECHash.pas (DECHash) 2715 +Clearing BreakPoint at 004894B0 +De-Activate DECHash.pas line 2715 BreakPoint at:004894B0 +Adding coverage:DECHash.pas (DECHash) 2716 +Clearing BreakPoint at 004894E8 +De-Activate DECHash.pas line 2716 BreakPoint at:004894E8 +Adding coverage:DECHash.pas (DECHash) 2717 +Clearing BreakPoint at 00489520 +De-Activate DECHash.pas line 2717 BreakPoint at:00489520 +Adding coverage:DECHash.pas (DECHash) 2718 +Clearing BreakPoint at 00489558 +De-Activate DECHash.pas line 2718 BreakPoint at:00489558 +Adding coverage:DECHash.pas (DECHash) 2719 +Clearing BreakPoint at 00489590 +De-Activate DECHash.pas line 2719 BreakPoint at:00489590 +Adding coverage:DECHash.pas (DECHash) 2720 +Clearing BreakPoint at 004895C8 +De-Activate DECHash.pas line 2720 BreakPoint at:004895C8 +Adding coverage:DECHash.pas (DECHash) 2722 +Clearing BreakPoint at 00489600 +De-Activate DECHash.pas line 2722 BreakPoint at:00489600 +Adding coverage:DECHash.pas (DECHash) 2723 +Clearing BreakPoint at 00489640 +De-Activate DECHash.pas line 2723 BreakPoint at:00489640 +Adding coverage:DECHash.pas (DECHash) 2724 +Clearing BreakPoint at 00489680 +De-Activate DECHash.pas line 2724 BreakPoint at:00489680 +Adding coverage:DECHash.pas (DECHash) 2725 +Clearing BreakPoint at 004896C0 +De-Activate DECHash.pas line 2725 BreakPoint at:004896C0 +Adding coverage:DECHash.pas (DECHash) 2726 +Clearing BreakPoint at 00489700 +De-Activate DECHash.pas line 2726 BreakPoint at:00489700 +Adding coverage:DECHash.pas (DECHash) 2727 +Clearing BreakPoint at 00489740 +De-Activate DECHash.pas line 2727 BreakPoint at:00489740 +Adding coverage:DECHash.pas (DECHash) 2728 +Clearing BreakPoint at 00489780 +De-Activate DECHash.pas line 2728 BreakPoint at:00489780 +Adding coverage:DECHash.pas (DECHash) 2729 +Clearing BreakPoint at 004897C0 +De-Activate DECHash.pas line 2729 BreakPoint at:004897C0 +Adding coverage:DECHash.pas (DECHash) 2730 +Clearing BreakPoint at 00489800 +De-Activate DECHash.pas line 2730 BreakPoint at:00489800 +Adding coverage:DECHash.pas (DECHash) 2731 +Clearing BreakPoint at 00489840 +De-Activate DECHash.pas line 2731 BreakPoint at:00489840 +Adding coverage:DECHash.pas (DECHash) 2732 +Clearing BreakPoint at 00489880 +De-Activate DECHash.pas line 2732 BreakPoint at:00489880 +Adding coverage:DECHash.pas (DECHash) 2733 +Clearing BreakPoint at 004898C0 +De-Activate DECHash.pas line 2733 BreakPoint at:004898C0 +Adding coverage:DECHash.pas (DECHash) 2734 +Clearing BreakPoint at 00489900 +De-Activate DECHash.pas line 2734 BreakPoint at:00489900 +Adding coverage:DECHash.pas (DECHash) 2735 +Clearing BreakPoint at 00489940 +De-Activate DECHash.pas line 2735 BreakPoint at:00489940 +Adding coverage:DECHash.pas (DECHash) 2736 +Clearing BreakPoint at 00489980 +De-Activate DECHash.pas line 2736 BreakPoint at:00489980 +Adding coverage:DECHash.pas (DECHash) 2737 +Clearing BreakPoint at 004899C0 +De-Activate DECHash.pas line 2737 BreakPoint at:004899C0 +Adding coverage:DECHash.pas (DECHash) 2738 +Clearing BreakPoint at 00489A00 +De-Activate DECHash.pas line 2738 BreakPoint at:00489A00 +Adding coverage:DECHash.pas (DECHash) 2739 +Clearing BreakPoint at 00489A40 +De-Activate DECHash.pas line 2739 BreakPoint at:00489A40 +Adding coverage:DECHash.pas (DECHash) 2740 +Clearing BreakPoint at 00489A7D +De-Activate DECHash.pas line 2740 BreakPoint at:00489A7D +Adding coverage:DECHash.pas (DECHash) 2741 +Clearing BreakPoint at 00489ABA +De-Activate DECHash.pas line 2741 BreakPoint at:00489ABA +Adding coverage:DECHash.pas (DECHash) 2743 +Clearing BreakPoint at 00489AF7 +De-Activate DECHash.pas line 2743 BreakPoint at:00489AF7 +Adding coverage:DECHash.pas (DECHash) 2744 +Clearing BreakPoint at 00489B2C +De-Activate DECHash.pas line 2744 BreakPoint at:00489B2C +Adding coverage:DECHash.pas (DECHash) 2745 +Clearing BreakPoint at 00489B61 +De-Activate DECHash.pas line 2745 BreakPoint at:00489B61 +Adding coverage:DECHash.pas (DECHash) 2746 +Clearing BreakPoint at 00489B96 +De-Activate DECHash.pas line 2746 BreakPoint at:00489B96 +Adding coverage:DECHash.pas (DECHash) 2747 +Clearing BreakPoint at 00489BCB +De-Activate DECHash.pas line 2747 BreakPoint at:00489BCB +Adding coverage:DECHash.pas (DECHash) 2748 +Clearing BreakPoint at 00489C00 +De-Activate DECHash.pas line 2748 BreakPoint at:00489C00 +Adding coverage:DECHash.pas (DECHash) 2749 +Clearing BreakPoint at 00489C35 +De-Activate DECHash.pas line 2749 BreakPoint at:00489C35 +Adding coverage:DECHash.pas (DECHash) 2750 +Clearing BreakPoint at 00489C6A +De-Activate DECHash.pas line 2750 BreakPoint at:00489C6A +Adding coverage:DECHash.pas (DECHash) 2751 +Clearing BreakPoint at 00489C9F +De-Activate DECHash.pas line 2751 BreakPoint at:00489C9F +Adding coverage:DECHash.pas (DECHash) 2752 +Clearing BreakPoint at 00489CD4 +De-Activate DECHash.pas line 2752 BreakPoint at:00489CD4 +Adding coverage:DECHash.pas (DECHash) 2753 +Clearing BreakPoint at 00489D09 +De-Activate DECHash.pas line 2753 BreakPoint at:00489D09 +Adding coverage:DECHash.pas (DECHash) 2754 +Clearing BreakPoint at 00489D3E +De-Activate DECHash.pas line 2754 BreakPoint at:00489D3E +Adding coverage:DECHash.pas (DECHash) 2755 +Clearing BreakPoint at 00489D73 +De-Activate DECHash.pas line 2755 BreakPoint at:00489D73 +Adding coverage:DECHash.pas (DECHash) 2756 +Clearing BreakPoint at 00489DA8 +De-Activate DECHash.pas line 2756 BreakPoint at:00489DA8 +Adding coverage:DECHash.pas (DECHash) 2757 +Clearing BreakPoint at 00489DDD +De-Activate DECHash.pas line 2757 BreakPoint at:00489DDD +Adding coverage:DECHash.pas (DECHash) 2758 +Clearing BreakPoint at 00489E12 +De-Activate DECHash.pas line 2758 BreakPoint at:00489E12 +Adding coverage:DECHash.pas (DECHash) 2759 +Clearing BreakPoint at 00489E47 +De-Activate DECHash.pas line 2759 BreakPoint at:00489E47 +Adding coverage:DECHash.pas (DECHash) 2760 +Clearing BreakPoint at 00489E7C +De-Activate DECHash.pas line 2760 BreakPoint at:00489E7C +Adding coverage:DECHash.pas (DECHash) 2761 +Clearing BreakPoint at 00489EB1 +De-Activate DECHash.pas line 2761 BreakPoint at:00489EB1 +Adding coverage:DECHash.pas (DECHash) 2762 +Clearing BreakPoint at 00489EE6 +De-Activate DECHash.pas line 2762 BreakPoint at:00489EE6 +Adding coverage:DECHash.pas (DECHash) 2764 +Clearing BreakPoint at 00489F1B +De-Activate DECHash.pas line 2764 BreakPoint at:00489F1B +Adding coverage:DECHash.pas (DECHash) 2765 +Clearing BreakPoint at 00489F24 +De-Activate DECHash.pas line 2765 BreakPoint at:00489F24 +Adding coverage:DECHash.pas (DECHash) 2766 +Clearing BreakPoint at 00489F2D +De-Activate DECHash.pas line 2766 BreakPoint at:00489F2D +Adding coverage:DECHash.pas (DECHash) 2767 +Clearing BreakPoint at 00489F36 +De-Activate DECHash.pas line 2767 BreakPoint at:00489F36 +Adding coverage:DECHash.pas (DECHash) 2768 +Clearing BreakPoint at 00489F3F +De-Activate DECHash.pas line 2768 BreakPoint at:00489F3F +Adding coverage:DECHash.pas (DECHash) 2769 +Clearing BreakPoint at 00489F48 +De-Activate DECHash.pas line 2769 BreakPoint at:00489F48 +Adding coverage:DECHash.pas (DECHash) 2782 +Clearing BreakPoint at 00489FA7 +De-Activate DECHash.pas line 2782 BreakPoint at:00489FA7 +Adding coverage:DECHash.pas (DECHash) 2783 +Clearing BreakPoint at 00489FC9 +De-Activate DECHash.pas line 2783 BreakPoint at:00489FC9 +Adding coverage:DECHash.pas (DECHash) 2784 +Clearing BreakPoint at 00489FD7 +De-Activate DECHash.pas line 2784 BreakPoint at:00489FD7 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2667 +Clearing BreakPoint at 00488C85 +De-Activate DECHash.pas line 2667 BreakPoint at:00488C85 +Adding coverage:DECHash.pas (DECHash) 2669 +Clearing BreakPoint at 00488C8C +De-Activate DECHash.pas line 2669 BreakPoint at:00488C8C +Adding coverage:DECHash.pas (DECHash) 2670 +Clearing BreakPoint at 00488CB7 +De-Activate DECHash.pas line 2670 BreakPoint at:00488CB7 +Adding coverage:DECHash.pas (DECHash) 2671 +Clearing BreakPoint at 00488CCE +De-Activate DECHash.pas line 2671 BreakPoint at:00488CCE +Adding coverage:DECHash.pas (DECHash) 2667 +Clearing BreakPoint at 00488CD1 +De-Activate DECHash.pas line 2667 BreakPoint at:00488CD1 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2874 +Clearing BreakPoint at 0048A340 +De-Activate DECHash.pas line 2874 BreakPoint at:0048A340 +Adding coverage:DECHash.pas (DECHash) 2875 +Clearing BreakPoint at 0048A349 +De-Activate DECHash.pas line 2875 BreakPoint at:0048A349 +Adding coverage:DECHash.pas (DECHash) 2876 +Clearing BreakPoint at 0048A350 +De-Activate DECHash.pas line 2876 BreakPoint at:0048A350 +Adding coverage:DECHash.pas (DECHash) 2869 +Clearing BreakPoint at 0048A328 +De-Activate DECHash.pas line 2869 BreakPoint at:0048A328 +Adding coverage:DECHash.pas (DECHash) 2870 +Clearing BreakPoint at 0048A331 +De-Activate DECHash.pas line 2870 BreakPoint at:0048A331 +Adding coverage:DECHash.pas (DECHash) 2871 +Clearing BreakPoint at 0048A338 +De-Activate DECHash.pas line 2871 BreakPoint at:0048A338 +Adding coverage:DECHash.pas (DECHash) 2879 +Clearing BreakPoint at 0048A358 +De-Activate DECHash.pas line 2879 BreakPoint at:0048A358 +Adding coverage:DECHash.pas (DECHash) 2880 +Clearing BreakPoint at 0048A35F +De-Activate DECHash.pas line 2880 BreakPoint at:0048A35F +Adding coverage:DECHash.pas (DECHash) 2881 +Clearing BreakPoint at 0048A369 +De-Activate DECHash.pas line 2881 BreakPoint at:0048A369 +Adding coverage:DECHash.pas (DECHash) 2882 +Clearing BreakPoint at 0048A373 +De-Activate DECHash.pas line 2882 BreakPoint at:0048A373 +Adding coverage:DECHash.pas (DECHash) 2883 +Clearing BreakPoint at 0048A37D +De-Activate DECHash.pas line 2883 BreakPoint at:0048A37D +Adding coverage:DECHash.pas (DECHash) 2884 +Clearing BreakPoint at 0048A387 +De-Activate DECHash.pas line 2884 BreakPoint at:0048A387 +Adding coverage:DECHash.pas (DECHash) 2885 +Clearing BreakPoint at 0048A391 +De-Activate DECHash.pas line 2885 BreakPoint at:0048A391 +Adding coverage:DECHash.pas (DECHash) 2886 +Clearing BreakPoint at 0048A39B +De-Activate DECHash.pas line 2886 BreakPoint at:0048A39B +Adding coverage:DECHash.pas (DECHash) 2887 +Clearing BreakPoint at 0048A3A5 +De-Activate DECHash.pas line 2887 BreakPoint at:0048A3A5 +Adding coverage:DECHash.pas (DECHash) 2888 +Clearing BreakPoint at 0048A3AF +De-Activate DECHash.pas line 2888 BreakPoint at:0048A3AF +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 2990 +Clearing BreakPoint at 0048AA24 +De-Activate DECHash.pas line 2990 BreakPoint at:0048AA24 +Adding coverage:DECHash.pas (DECHash) 2991 +Clearing BreakPoint at 0048AA2D +De-Activate DECHash.pas line 2991 BreakPoint at:0048AA2D +Adding coverage:DECHash.pas (DECHash) 2992 +Clearing BreakPoint at 0048AA34 +De-Activate DECHash.pas line 2992 BreakPoint at:0048AA34 +Adding coverage:DECHash.pas (DECHash) 2985 +Clearing BreakPoint at 0048AA08 +De-Activate DECHash.pas line 2985 BreakPoint at:0048AA08 +Adding coverage:DECHash.pas (DECHash) 2986 +Clearing BreakPoint at 0048AA11 +De-Activate DECHash.pas line 2986 BreakPoint at:0048AA11 +Adding coverage:DECHash.pas (DECHash) 2987 +Clearing BreakPoint at 0048AA1A +De-Activate DECHash.pas line 2987 BreakPoint at:0048AA1A +Adding coverage:DECHash.pas (DECHash) 2995 +Clearing BreakPoint at 0048AA3C +De-Activate DECHash.pas line 2995 BreakPoint at:0048AA3C +Adding coverage:DECHash.pas (DECHash) 2996 +Clearing BreakPoint at 0048AA45 +De-Activate DECHash.pas line 2996 BreakPoint at:0048AA45 +Adding coverage:DECHash.pas (DECHash) 2997 +Clearing BreakPoint at 0048AA4C +De-Activate DECHash.pas line 2997 BreakPoint at:0048AA4C +Adding coverage:DECHash.pas (DECHash) 2893 +Clearing BreakPoint at 0048A3B4 +De-Activate DECHash.pas line 2893 BreakPoint at:0048A3B4 +Adding coverage:DECHash.pas (DECHash) 2894 +Clearing BreakPoint at 0048A3BB +De-Activate DECHash.pas line 2894 BreakPoint at:0048A3BB +Adding coverage:DECHash.pas (DECHash) 2895 +Clearing BreakPoint at 0048A3CC +De-Activate DECHash.pas line 2895 BreakPoint at:0048A3CC +Adding coverage:DECHash.pas (DECHash) 2896 +Clearing BreakPoint at 0048A3DD +De-Activate DECHash.pas line 2896 BreakPoint at:0048A3DD +Adding coverage:DECHash.pas (DECHash) 2897 +Clearing BreakPoint at 0048A3EE +De-Activate DECHash.pas line 2897 BreakPoint at:0048A3EE +Adding coverage:DECHash.pas (DECHash) 2898 +Clearing BreakPoint at 0048A3FF +De-Activate DECHash.pas line 2898 BreakPoint at:0048A3FF +Adding coverage:DECHash.pas (DECHash) 2899 +Clearing BreakPoint at 0048A410 +De-Activate DECHash.pas line 2899 BreakPoint at:0048A410 +Adding coverage:DECHash.pas (DECHash) 2900 +Clearing BreakPoint at 0048A421 +De-Activate DECHash.pas line 2900 BreakPoint at:0048A421 +Adding coverage:DECHash.pas (DECHash) 2901 +Clearing BreakPoint at 0048A432 +De-Activate DECHash.pas line 2901 BreakPoint at:0048A432 +Adding coverage:DECHash.pas (DECHash) 2902 +Clearing BreakPoint at 0048A449 +De-Activate DECHash.pas line 2902 BreakPoint at:0048A449 +Adding coverage:DECHash.pas (DECHash) 2963 +Clearing BreakPoint at 0048A8CC +De-Activate DECHash.pas line 2963 BreakPoint at:0048A8CC +Adding coverage:DECHash.pas (DECHash) 2964 +Clearing BreakPoint at 0048A8D3 +De-Activate DECHash.pas line 2964 BreakPoint at:0048A8D3 +Adding coverage:DECHash.pas (DECHash) 2965 +Clearing BreakPoint at 0048A8DC +De-Activate DECHash.pas line 2965 BreakPoint at:0048A8DC +Adding coverage:DECHash.pas (DECHash) 2966 +Clearing BreakPoint at 0048A8E3 +De-Activate DECHash.pas line 2966 BreakPoint at:0048A8E3 +Adding coverage:DECHash.pas (DECHash) 2967 +Clearing BreakPoint at 0048A8F8 +De-Activate DECHash.pas line 2967 BreakPoint at:0048A8F8 +Adding coverage:DECHash.pas (DECHash) 2968 +Clearing BreakPoint at 0048A8FE +De-Activate DECHash.pas line 2968 BreakPoint at:0048A8FE +Adding coverage:DECHash.pas (DECHash) 2974 +Clearing BreakPoint at 0048A949 +De-Activate DECHash.pas line 2974 BreakPoint at:0048A949 +Adding coverage:DECHash.pas (DECHash) 2975 +Clearing BreakPoint at 0048A96B +De-Activate DECHash.pas line 2975 BreakPoint at:0048A96B +Adding coverage:DECHash.pas (DECHash) 2976 +Clearing BreakPoint at 0048A981 +De-Activate DECHash.pas line 2976 BreakPoint at:0048A981 +Adding coverage:DECHash.pas (DECHash) 2977 +Clearing BreakPoint at 0048A999 +De-Activate DECHash.pas line 2977 BreakPoint at:0048A999 +Adding coverage:DECHash.pas (DECHash) 2978 +Clearing BreakPoint at 0048A9B1 +De-Activate DECHash.pas line 2978 BreakPoint at:0048A9B1 +Adding coverage:DECHash.pas (DECHash) 2979 +Clearing BreakPoint at 0048A9C9 +De-Activate DECHash.pas line 2979 BreakPoint at:0048A9C9 +Adding coverage:DECHash.pas (DECHash) 2980 +Clearing BreakPoint at 0048A9E1 +De-Activate DECHash.pas line 2980 BreakPoint at:0048A9E1 +Adding coverage:DECHash.pas (DECHash) 2911 +Clearing BreakPoint at 0048A44C +De-Activate DECHash.pas line 2911 BreakPoint at:0048A44C +Adding coverage:DECHash.pas (DECHash) 2913 +Clearing BreakPoint at 0048A45C +De-Activate DECHash.pas line 2913 BreakPoint at:0048A45C +Adding coverage:DECHash.pas (DECHash) 2916 +Clearing BreakPoint at 0048A46F +De-Activate DECHash.pas line 2916 BreakPoint at:0048A46F +Adding coverage:DECHash.pas (DECHash) 2918 +Clearing BreakPoint at 0048A476 +De-Activate DECHash.pas line 2918 BreakPoint at:0048A476 +Adding coverage:DECHash.pas (DECHash) 2919 +Clearing BreakPoint at 0048A48D +De-Activate DECHash.pas line 2919 BreakPoint at:0048A48D +Adding coverage:DECHash.pas (DECHash) 2920 +Clearing BreakPoint at 0048A4A4 +De-Activate DECHash.pas line 2920 BreakPoint at:0048A4A4 +Adding coverage:DECHash.pas (DECHash) 2923 +Clearing BreakPoint at 0048A5BC +De-Activate DECHash.pas line 2923 BreakPoint at:0048A5BC +Adding coverage:DECHash.pas (DECHash) 2916 +Clearing BreakPoint at 0048A5BF +De-Activate DECHash.pas line 2916 BreakPoint at:0048A5BF +Adding coverage:DECHash.pas (DECHash) 2926 +Clearing BreakPoint at 0048A5C9 +De-Activate DECHash.pas line 2926 BreakPoint at:0048A5C9 +Adding coverage:DECHash.pas (DECHash) 2927 +Clearing BreakPoint at 0048A5D8 +De-Activate DECHash.pas line 2927 BreakPoint at:0048A5D8 +Adding coverage:DECHash.pas (DECHash) 2928 +Clearing BreakPoint at 0048A5E7 +De-Activate DECHash.pas line 2928 BreakPoint at:0048A5E7 +Adding coverage:DECHash.pas (DECHash) 2929 +Clearing BreakPoint at 0048A5F6 +De-Activate DECHash.pas line 2929 BreakPoint at:0048A5F6 +Adding coverage:DECHash.pas (DECHash) 2930 +Clearing BreakPoint at 0048A605 +De-Activate DECHash.pas line 2930 BreakPoint at:0048A605 +Adding coverage:DECHash.pas (DECHash) 2931 +Clearing BreakPoint at 0048A614 +De-Activate DECHash.pas line 2931 BreakPoint at:0048A614 +Adding coverage:DECHash.pas (DECHash) 2932 +Clearing BreakPoint at 0048A623 +De-Activate DECHash.pas line 2932 BreakPoint at:0048A623 +Adding coverage:DECHash.pas (DECHash) 2933 +Clearing BreakPoint at 0048A632 +De-Activate DECHash.pas line 2933 BreakPoint at:0048A632 +Adding coverage:DECHash.pas (DECHash) 2935 +Clearing BreakPoint at 0048A647 +De-Activate DECHash.pas line 2935 BreakPoint at:0048A647 +Adding coverage:DECHash.pas (DECHash) 2937 +Clearing BreakPoint at 0048A64C +De-Activate DECHash.pas line 2937 BreakPoint at:0048A64C +Adding coverage:DECHash.pas (DECHash) 2939 +Clearing BreakPoint at 0048A718 +De-Activate DECHash.pas line 2939 BreakPoint at:0048A718 +Adding coverage:DECHash.pas (DECHash) 2941 +Clearing BreakPoint at 0048A7CF +De-Activate DECHash.pas line 2941 BreakPoint at:0048A7CF +Adding coverage:DECHash.pas (DECHash) 2942 +Clearing BreakPoint at 0048A7DB +De-Activate DECHash.pas line 2942 BreakPoint at:0048A7DB +Adding coverage:DECHash.pas (DECHash) 2943 +Clearing BreakPoint at 0048A7E7 +De-Activate DECHash.pas line 2943 BreakPoint at:0048A7E7 +Adding coverage:DECHash.pas (DECHash) 2944 +Clearing BreakPoint at 0048A7F3 +De-Activate DECHash.pas line 2944 BreakPoint at:0048A7F3 +Adding coverage:DECHash.pas (DECHash) 2945 +Clearing BreakPoint at 0048A805 +De-Activate DECHash.pas line 2945 BreakPoint at:0048A805 +Adding coverage:DECHash.pas (DECHash) 2946 +Clearing BreakPoint at 0048A811 +De-Activate DECHash.pas line 2946 BreakPoint at:0048A811 +Adding coverage:DECHash.pas (DECHash) 2947 +Clearing BreakPoint at 0048A81D +De-Activate DECHash.pas line 2947 BreakPoint at:0048A81D +Adding coverage:DECHash.pas (DECHash) 2948 +Clearing BreakPoint at 0048A829 +De-Activate DECHash.pas line 2948 BreakPoint at:0048A829 +Adding coverage:DECHash.pas (DECHash) 2949 +Clearing BreakPoint at 0048A83B +De-Activate DECHash.pas line 2949 BreakPoint at:0048A83B +Adding coverage:DECHash.pas (DECHash) 2935 +Clearing BreakPoint at 0048A83E +De-Activate DECHash.pas line 2935 BreakPoint at:0048A83E +Adding coverage:DECHash.pas (DECHash) 2951 +Clearing BreakPoint at 0048A848 +De-Activate DECHash.pas line 2951 BreakPoint at:0048A848 +Adding coverage:DECHash.pas (DECHash) 2952 +Clearing BreakPoint at 0048A857 +De-Activate DECHash.pas line 2952 BreakPoint at:0048A857 +Adding coverage:DECHash.pas (DECHash) 2953 +Clearing BreakPoint at 0048A866 +De-Activate DECHash.pas line 2953 BreakPoint at:0048A866 +Adding coverage:DECHash.pas (DECHash) 2954 +Clearing BreakPoint at 0048A875 +De-Activate DECHash.pas line 2954 BreakPoint at:0048A875 +Adding coverage:DECHash.pas (DECHash) 2955 +Clearing BreakPoint at 0048A884 +De-Activate DECHash.pas line 2955 BreakPoint at:0048A884 +Adding coverage:DECHash.pas (DECHash) 2956 +Clearing BreakPoint at 0048A893 +De-Activate DECHash.pas line 2956 BreakPoint at:0048A893 +Adding coverage:DECHash.pas (DECHash) 2957 +Clearing BreakPoint at 0048A8A2 +De-Activate DECHash.pas line 2957 BreakPoint at:0048A8A2 +Adding coverage:DECHash.pas (DECHash) 2958 +Clearing BreakPoint at 0048A8B1 +De-Activate DECHash.pas line 2958 BreakPoint at:0048A8B1 +Adding coverage:DECHash.pas (DECHash) 2959 +Clearing BreakPoint at 0048A8C6 +De-Activate DECHash.pas line 2959 BreakPoint at:0048A8C6 +Adding coverage:DECHash.pas (DECHash) 2981 +Clearing BreakPoint at 0048A9EF +De-Activate DECHash.pas line 2981 BreakPoint at:0048A9EF +Adding coverage:DECHash.pas (DECHash) 2982 +Clearing BreakPoint at 0048AA05 +De-Activate DECHash.pas line 2982 BreakPoint at:0048AA05 +Adding coverage:DECHash.pas (DECHash) 2970 +Clearing BreakPoint at 0048A911 +De-Activate DECHash.pas line 2970 BreakPoint at:0048A911 +Adding coverage:DECHash.pas (DECHash) 2971 +Clearing BreakPoint at 0048A933 +De-Activate DECHash.pas line 2971 BreakPoint at:0048A933 +Adding coverage:DECHash.pas (DECHash) 2972 +Clearing BreakPoint at 0048A941 +De-Activate DECHash.pas line 2972 BreakPoint at:0048A941 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3014 +Clearing BreakPoint at 0048AAEC +De-Activate DECHash.pas line 3014 BreakPoint at:0048AAEC +Adding coverage:DECHash.pas (DECHash) 3015 +Clearing BreakPoint at 0048AAF5 +De-Activate DECHash.pas line 3015 BreakPoint at:0048AAF5 +Adding coverage:DECHash.pas (DECHash) 3016 +Clearing BreakPoint at 0048AAFC +De-Activate DECHash.pas line 3016 BreakPoint at:0048AAFC +Adding coverage:DECHash.pas (DECHash) 3002 +Clearing BreakPoint at 0048AA54 +De-Activate DECHash.pas line 3002 BreakPoint at:0048AA54 +Adding coverage:DECHash.pas (DECHash) 3003 +Clearing BreakPoint at 0048AA5B +De-Activate DECHash.pas line 3003 BreakPoint at:0048AA5B +Adding coverage:DECHash.pas (DECHash) 3004 +Clearing BreakPoint at 0048AA6C +De-Activate DECHash.pas line 3004 BreakPoint at:0048AA6C +Adding coverage:DECHash.pas (DECHash) 3005 +Clearing BreakPoint at 0048AA7D +De-Activate DECHash.pas line 3005 BreakPoint at:0048AA7D +Adding coverage:DECHash.pas (DECHash) 3006 +Clearing BreakPoint at 0048AA8E +De-Activate DECHash.pas line 3006 BreakPoint at:0048AA8E +Adding coverage:DECHash.pas (DECHash) 3007 +Clearing BreakPoint at 0048AA9F +De-Activate DECHash.pas line 3007 BreakPoint at:0048AA9F +Adding coverage:DECHash.pas (DECHash) 3008 +Clearing BreakPoint at 0048AAB0 +De-Activate DECHash.pas line 3008 BreakPoint at:0048AAB0 +Adding coverage:DECHash.pas (DECHash) 3009 +Clearing BreakPoint at 0048AAC1 +De-Activate DECHash.pas line 3009 BreakPoint at:0048AAC1 +Adding coverage:DECHash.pas (DECHash) 3010 +Clearing BreakPoint at 0048AAD2 +De-Activate DECHash.pas line 3010 BreakPoint at:0048AAD2 +Adding coverage:DECHash.pas (DECHash) 3011 +Clearing BreakPoint at 0048AAE9 +De-Activate DECHash.pas line 3011 BreakPoint at:0048AAE9 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3383 +Clearing BreakPoint at 0048BB78 +De-Activate DECHash.pas line 3383 BreakPoint at:0048BB78 +Adding coverage:DECHash.pas (DECHash) 3384 +Clearing BreakPoint at 0048BB81 +De-Activate DECHash.pas line 3384 BreakPoint at:0048BB81 +Adding coverage:DECHash.pas (DECHash) 3385 +Clearing BreakPoint at 0048BB88 +De-Activate DECHash.pas line 3385 BreakPoint at:0048BB88 +Adding coverage:DECHash.pas (DECHash) 3371 +Clearing BreakPoint at 0048BB44 +De-Activate DECHash.pas line 3371 BreakPoint at:0048BB44 +Adding coverage:DECHash.pas (DECHash) 3372 +Clearing BreakPoint at 0048BB4D +De-Activate DECHash.pas line 3372 BreakPoint at:0048BB4D +Adding coverage:DECHash.pas (DECHash) 3373 +Clearing BreakPoint at 0048BB56 +De-Activate DECHash.pas line 3373 BreakPoint at:0048BB56 +Adding coverage:DECHash.pas (DECHash) 3376 +Clearing BreakPoint at 0048BB60 +De-Activate DECHash.pas line 3376 BreakPoint at:0048BB60 +Adding coverage:DECHash.pas (DECHash) 3377 +Clearing BreakPoint at 0048BB69 +De-Activate DECHash.pas line 3377 BreakPoint at:0048BB69 +Adding coverage:DECHash.pas (DECHash) 3378 +Clearing BreakPoint at 0048BB70 +De-Activate DECHash.pas line 3378 BreakPoint at:0048BB70 +Adding coverage:DECHash.pas (DECHash) 3061 +Clearing BreakPoint at 0048AC34 +De-Activate DECHash.pas line 3061 BreakPoint at:0048AC34 +Adding coverage:DECHash.pas (DECHash) 3062 +Clearing BreakPoint at 0048AC3D +De-Activate DECHash.pas line 3062 BreakPoint at:0048AC3D +Adding coverage:DECHash.pas (DECHash) 3063 +Clearing BreakPoint at 0048AC44 +De-Activate DECHash.pas line 3063 BreakPoint at:0048AC44 +Adding coverage:DECHash.pas (DECHash) 3066 +Clearing BreakPoint at 0048AC4C +De-Activate DECHash.pas line 3066 BreakPoint at:0048AC4C +Adding coverage:DECHash.pas (DECHash) 3067 +Clearing BreakPoint at 0048AC55 +De-Activate DECHash.pas line 3067 BreakPoint at:0048AC55 +Adding coverage:DECHash.pas (DECHash) 3068 +Clearing BreakPoint at 0048AC62 +De-Activate DECHash.pas line 3068 BreakPoint at:0048AC62 +Adding coverage:DECHash.pas (DECHash) 3076 +Clearing BreakPoint at 0048AC88 +De-Activate DECHash.pas line 3076 BreakPoint at:0048AC88 +Adding coverage:DECHash.pas (DECHash) 3021 +Clearing BreakPoint at 0048AB04 +De-Activate DECHash.pas line 3021 BreakPoint at:0048AB04 +Adding coverage:DECHash.pas (DECHash) 3022 +Clearing BreakPoint at 0048AB10 +De-Activate DECHash.pas line 3022 BreakPoint at:0048AB10 +Adding coverage:DECHash.pas (DECHash) 3034 +Clearing BreakPoint at 0048AB56 +De-Activate DECHash.pas line 3034 BreakPoint at:0048AB56 +Adding coverage:DECHash.pas (DECHash) 3035 +Clearing BreakPoint at 0048AB5F +De-Activate DECHash.pas line 3035 BreakPoint at:0048AB5F +Adding coverage:DECHash.pas (DECHash) 3036 +Clearing BreakPoint at 0048AB72 +De-Activate DECHash.pas line 3036 BreakPoint at:0048AB72 +Adding coverage:DECHash.pas (DECHash) 3040 +Clearing BreakPoint at 0048ABA6 +De-Activate DECHash.pas line 3040 BreakPoint at:0048ABA6 +Adding coverage:DECHash.pas (DECHash) 3038 +Clearing BreakPoint at 0048AB96 +De-Activate DECHash.pas line 3038 BreakPoint at:0048AB96 +Adding coverage:DECHash.pas (DECHash) 3079 +Clearing BreakPoint at 0048AC90 +De-Activate DECHash.pas line 3079 BreakPoint at:0048AC90 +Adding coverage:DECHash.pas (DECHash) 3080 +Clearing BreakPoint at 0048AC99 +De-Activate DECHash.pas line 3080 BreakPoint at:0048AC99 +Adding coverage:DECHash.pas (DECHash) 3081 +Clearing BreakPoint at 0048ACA2 +De-Activate DECHash.pas line 3081 BreakPoint at:0048ACA2 +Adding coverage:DECHash.pas (DECHash) 3024 +Clearing BreakPoint at 0048AB23 +De-Activate DECHash.pas line 3024 BreakPoint at:0048AB23 +Adding coverage:DECHash.pas (DECHash) 3025 +Clearing BreakPoint at 0048AB30 +De-Activate DECHash.pas line 3025 BreakPoint at:0048AB30 +Adding coverage:DECHash.pas (DECHash) 3043 +Clearing BreakPoint at 0048ABAC +De-Activate DECHash.pas line 3043 BreakPoint at:0048ABAC +Adding coverage:DECHash.pas (DECHash) 3044 +Clearing BreakPoint at 0048ABB3 +De-Activate DECHash.pas line 3044 BreakPoint at:0048ABB3 +Adding coverage:DECHash.pas (DECHash) 3045 +Clearing BreakPoint at 0048ABC1 +De-Activate DECHash.pas line 3045 BreakPoint at:0048ABC1 +Adding coverage:DECHash.pas (DECHash) 3046 +Clearing BreakPoint at 0048ABCB +De-Activate DECHash.pas line 3046 BreakPoint at:0048ABCB +Adding coverage:DECHash.pas (DECHash) 3047 +Clearing BreakPoint at 0048ABD5 +De-Activate DECHash.pas line 3047 BreakPoint at:0048ABD5 +Adding coverage:DECHash.pas (DECHash) 3048 +Clearing BreakPoint at 0048ABDF +De-Activate DECHash.pas line 3048 BreakPoint at:0048ABDF +Adding coverage:DECHash.pas (DECHash) 3049 +Clearing BreakPoint at 0048ABE9 +De-Activate DECHash.pas line 3049 BreakPoint at:0048ABE9 +Adding coverage:DECHash.pas (DECHash) 3050 +Clearing BreakPoint at 0048ABF3 +De-Activate DECHash.pas line 3050 BreakPoint at:0048ABF3 +Adding coverage:DECHash.pas (DECHash) 3051 +Clearing BreakPoint at 0048ABFD +De-Activate DECHash.pas line 3051 BreakPoint at:0048ABFD +Adding coverage:DECHash.pas (DECHash) 3052 +Clearing BreakPoint at 0048AC07 +De-Activate DECHash.pas line 3052 BreakPoint at:0048AC07 +Adding coverage:DECHash.pas (DECHash) 3053 +Clearing BreakPoint at 0048AC11 +De-Activate DECHash.pas line 3053 BreakPoint at:0048AC11 +Adding coverage:DECHash.pas (DECHash) 3289 +Clearing BreakPoint at 0048B690 +De-Activate DECHash.pas line 3289 BreakPoint at:0048B690 +Adding coverage:DECHash.pas (DECHash) 3290 +Clearing BreakPoint at 0048B699 +De-Activate DECHash.pas line 3290 BreakPoint at:0048B699 +Adding coverage:DECHash.pas (DECHash) 3292 +Clearing BreakPoint at 0048B6AF +De-Activate DECHash.pas line 3292 BreakPoint at:0048B6AF +Adding coverage:DECHash.pas (DECHash) 3294 +Clearing BreakPoint at 0048B6BF +De-Activate DECHash.pas line 3294 BreakPoint at:0048B6BF +Adding coverage:DECHash.pas (DECHash) 3295 +Clearing BreakPoint at 0048B6D4 +De-Activate DECHash.pas line 3295 BreakPoint at:0048B6D4 +Adding coverage:DECHash.pas (DECHash) 3296 +Clearing BreakPoint at 0048B6DA +De-Activate DECHash.pas line 3296 BreakPoint at:0048B6DA +Adding coverage:DECHash.pas (DECHash) 3302 +Clearing BreakPoint at 0048B728 +De-Activate DECHash.pas line 3302 BreakPoint at:0048B728 +Adding coverage:DECHash.pas (DECHash) 3303 +Clearing BreakPoint at 0048B74D +De-Activate DECHash.pas line 3303 BreakPoint at:0048B74D +Adding coverage:DECHash.pas (DECHash) 3304 +Clearing BreakPoint at 0048B76D +De-Activate DECHash.pas line 3304 BreakPoint at:0048B76D +Adding coverage:DECHash.pas (DECHash) 3305 +Clearing BreakPoint at 0048B78A +De-Activate DECHash.pas line 3305 BreakPoint at:0048B78A +Adding coverage:DECHash.pas (DECHash) 3306 +Clearing BreakPoint at 0048B7AA +De-Activate DECHash.pas line 3306 BreakPoint at:0048B7AA +Adding coverage:DECHash.pas (DECHash) 3056 +Clearing BreakPoint at 0048AC14 +De-Activate DECHash.pas line 3056 BreakPoint at:0048AC14 +Adding coverage:DECHash.pas (DECHash) 3057 +Clearing BreakPoint at 0048AC21 +De-Activate DECHash.pas line 3057 BreakPoint at:0048AC21 +Adding coverage:DECHash.pas (DECHash) 3089 +Clearing BreakPoint at 0048ACAC +De-Activate DECHash.pas line 3089 BreakPoint at:0048ACAC +Adding coverage:DECHash.pas (DECHash) 3090 +Clearing BreakPoint at 0048ACB8 +De-Activate DECHash.pas line 3090 BreakPoint at:0048ACB8 +Adding coverage:DECHash.pas (DECHash) 3091 +Clearing BreakPoint at 0048ACC0 +De-Activate DECHash.pas line 3091 BreakPoint at:0048ACC0 +Adding coverage:DECHash.pas (DECHash) 3093 +Clearing BreakPoint at 0048ACC8 +De-Activate DECHash.pas line 3093 BreakPoint at:0048ACC8 +Adding coverage:DECHash.pas (DECHash) 3094 +Clearing BreakPoint at 0048ACD1 +De-Activate DECHash.pas line 3094 BreakPoint at:0048ACD1 +Adding coverage:DECHash.pas (DECHash) 3095 +Clearing BreakPoint at 0048ACDA +De-Activate DECHash.pas line 3095 BreakPoint at:0048ACDA +Adding coverage:DECHash.pas (DECHash) 3096 +Clearing BreakPoint at 0048ACE3 +De-Activate DECHash.pas line 3096 BreakPoint at:0048ACE3 +Adding coverage:DECHash.pas (DECHash) 3097 +Clearing BreakPoint at 0048ACEC +De-Activate DECHash.pas line 3097 BreakPoint at:0048ACEC +Adding coverage:DECHash.pas (DECHash) 3098 +Clearing BreakPoint at 0048ACF5 +De-Activate DECHash.pas line 3098 BreakPoint at:0048ACF5 +Adding coverage:DECHash.pas (DECHash) 3099 +Clearing BreakPoint at 0048ACFE +De-Activate DECHash.pas line 3099 BreakPoint at:0048ACFE +Adding coverage:DECHash.pas (DECHash) 3100 +Clearing BreakPoint at 0048AD07 +De-Activate DECHash.pas line 3100 BreakPoint at:0048AD07 +Adding coverage:DECHash.pas (DECHash) 3102 +Clearing BreakPoint at 0048AD10 +De-Activate DECHash.pas line 3102 BreakPoint at:0048AD10 +Adding coverage:DECHash.pas (DECHash) 3104 +Clearing BreakPoint at 0048AD15 +De-Activate DECHash.pas line 3104 BreakPoint at:0048AD15 +Adding coverage:DECHash.pas (DECHash) 3105 +Clearing BreakPoint at 0048AD34 +De-Activate DECHash.pas line 3105 BreakPoint at:0048AD34 +Adding coverage:DECHash.pas (DECHash) 3106 +Clearing BreakPoint at 0048AD5E +De-Activate DECHash.pas line 3106 BreakPoint at:0048AD5E +Adding coverage:DECHash.pas (DECHash) 3107 +Clearing BreakPoint at 0048AD8E +De-Activate DECHash.pas line 3107 BreakPoint at:0048AD8E +Adding coverage:DECHash.pas (DECHash) 3102 +Clearing BreakPoint at 0048AD91 +De-Activate DECHash.pas line 3102 BreakPoint at:0048AD91 +Adding coverage:DECHash.pas (DECHash) 3109 +Clearing BreakPoint at 0048AD9B +De-Activate DECHash.pas line 3109 BreakPoint at:0048AD9B +Adding coverage:DECHash.pas (DECHash) 3111 +Clearing BreakPoint at 0048ADA0 +De-Activate DECHash.pas line 3111 BreakPoint at:0048ADA0 +Adding coverage:DECHash.pas (DECHash) 3112 +Clearing BreakPoint at 0048ADD2 +De-Activate DECHash.pas line 3112 BreakPoint at:0048ADD2 +Adding coverage:DECHash.pas (DECHash) 3113 +Clearing BreakPoint at 0048AE04 +De-Activate DECHash.pas line 3113 BreakPoint at:0048AE04 +Adding coverage:DECHash.pas (DECHash) 3114 +Clearing BreakPoint at 0048AE07 +De-Activate DECHash.pas line 3114 BreakPoint at:0048AE07 +Adding coverage:DECHash.pas (DECHash) 3115 +Clearing BreakPoint at 0048AE0B +De-Activate DECHash.pas line 3115 BreakPoint at:0048AE0B +Adding coverage:DECHash.pas (DECHash) 3116 +Clearing BreakPoint at 0048AE3B +De-Activate DECHash.pas line 3116 BreakPoint at:0048AE3B +Adding coverage:DECHash.pas (DECHash) 3109 +Clearing BreakPoint at 0048AE3E +De-Activate DECHash.pas line 3109 BreakPoint at:0048AE3E +Adding coverage:DECHash.pas (DECHash) 3118 +Clearing BreakPoint at 0048AE48 +De-Activate DECHash.pas line 3118 BreakPoint at:0048AE48 +Adding coverage:DECHash.pas (DECHash) 3120 +Clearing BreakPoint at 0048AE4D +De-Activate DECHash.pas line 3120 BreakPoint at:0048AE4D +Adding coverage:DECHash.pas (DECHash) 3121 +Clearing BreakPoint at 0048AE72 +De-Activate DECHash.pas line 3121 BreakPoint at:0048AE72 +Adding coverage:DECHash.pas (DECHash) 3122 +Clearing BreakPoint at 0048AEA4 +De-Activate DECHash.pas line 3122 BreakPoint at:0048AEA4 +Adding coverage:DECHash.pas (DECHash) 3123 +Clearing BreakPoint at 0048AEA7 +De-Activate DECHash.pas line 3123 BreakPoint at:0048AEA7 +Adding coverage:DECHash.pas (DECHash) 3124 +Clearing BreakPoint at 0048AEAB +De-Activate DECHash.pas line 3124 BreakPoint at:0048AEAB +Adding coverage:DECHash.pas (DECHash) 3125 +Clearing BreakPoint at 0048AEDB +De-Activate DECHash.pas line 3125 BreakPoint at:0048AEDB +Adding coverage:DECHash.pas (DECHash) 3118 +Clearing BreakPoint at 0048AEDE +De-Activate DECHash.pas line 3118 BreakPoint at:0048AEDE +Adding coverage:DECHash.pas (DECHash) 3127 +Clearing BreakPoint at 0048AEE8 +De-Activate DECHash.pas line 3127 BreakPoint at:0048AEE8 +Adding coverage:DECHash.pas (DECHash) 3128 +Clearing BreakPoint at 0048AEF1 +De-Activate DECHash.pas line 3128 BreakPoint at:0048AEF1 +Adding coverage:DECHash.pas (DECHash) 3129 +Clearing BreakPoint at 0048AEFA +De-Activate DECHash.pas line 3129 BreakPoint at:0048AEFA +Adding coverage:DECHash.pas (DECHash) 3130 +Clearing BreakPoint at 0048AF03 +De-Activate DECHash.pas line 3130 BreakPoint at:0048AF03 +Adding coverage:DECHash.pas (DECHash) 3131 +Clearing BreakPoint at 0048AF0C +De-Activate DECHash.pas line 3131 BreakPoint at:0048AF0C +Adding coverage:DECHash.pas (DECHash) 3132 +Clearing BreakPoint at 0048AF15 +De-Activate DECHash.pas line 3132 BreakPoint at:0048AF15 +Adding coverage:DECHash.pas (DECHash) 3133 +Clearing BreakPoint at 0048AF1E +De-Activate DECHash.pas line 3133 BreakPoint at:0048AF1E +Adding coverage:DECHash.pas (DECHash) 3134 +Clearing BreakPoint at 0048AF27 +De-Activate DECHash.pas line 3134 BreakPoint at:0048AF27 +Adding coverage:DECHash.pas (DECHash) 3135 +Clearing BreakPoint at 0048AF30 +De-Activate DECHash.pas line 3135 BreakPoint at:0048AF30 +Adding coverage:DECHash.pas (DECHash) 3058 +Clearing BreakPoint at 0048AC2D +De-Activate DECHash.pas line 3058 BreakPoint at:0048AC2D +Adding coverage:DECHash.pas (DECHash) 3308 +Clearing BreakPoint at 0048B7B8 +De-Activate DECHash.pas line 3308 BreakPoint at:0048B7B8 +Adding coverage:DECHash.pas (DECHash) 3313 +Clearing BreakPoint at 0048B7E5 +De-Activate DECHash.pas line 3313 BreakPoint at:0048B7E5 +Adding coverage:DECHash.pas (DECHash) 3282 +Clearing BreakPoint at 0048B660 +De-Activate DECHash.pas line 3282 BreakPoint at:0048B660 +Adding coverage:DECHash.pas (DECHash) 3283 +Clearing BreakPoint at 0048B66C +De-Activate DECHash.pas line 3283 BreakPoint at:0048B66C +Adding coverage:DECHash.pas (DECHash) 3284 +Clearing BreakPoint at 0048B686 +De-Activate DECHash.pas line 3284 BreakPoint at:0048B686 +Adding coverage:DECHash.pas (DECHash) 3314 +Clearing BreakPoint at 0048B82C +De-Activate DECHash.pas line 3314 BreakPoint at:0048B82C +Adding coverage:DECHash.pas (DECHash) 3318 +Clearing BreakPoint at 0048B873 +De-Activate DECHash.pas line 3318 BreakPoint at:0048B873 +Adding coverage:DECHash.pas (DECHash) 3322 +Clearing BreakPoint at 0048B8BA +De-Activate DECHash.pas line 3322 BreakPoint at:0048B8BA +Adding coverage:DECHash.pas (DECHash) 3368 +Clearing BreakPoint at 0048BB40 +De-Activate DECHash.pas line 3368 BreakPoint at:0048BB40 +Adding coverage:DECHash.pas (DECHash) 3037 +Clearing BreakPoint at 0048AB84 +De-Activate DECHash.pas line 3037 BreakPoint at:0048AB84 +Adding coverage:DECHash.pas (DECHash) 3142 +Clearing BreakPoint at 0048AF34 +De-Activate DECHash.pas line 3142 BreakPoint at:0048AF34 +Adding coverage:DECHash.pas (DECHash) 3143 +Clearing BreakPoint at 0048AF40 +De-Activate DECHash.pas line 3143 BreakPoint at:0048AF40 +Adding coverage:DECHash.pas (DECHash) 3144 +Clearing BreakPoint at 0048AF48 +De-Activate DECHash.pas line 3144 BreakPoint at:0048AF48 +Adding coverage:DECHash.pas (DECHash) 3146 +Clearing BreakPoint at 0048AF50 +De-Activate DECHash.pas line 3146 BreakPoint at:0048AF50 +Adding coverage:DECHash.pas (DECHash) 3147 +Clearing BreakPoint at 0048AF59 +De-Activate DECHash.pas line 3147 BreakPoint at:0048AF59 +Adding coverage:DECHash.pas (DECHash) 3148 +Clearing BreakPoint at 0048AF62 +De-Activate DECHash.pas line 3148 BreakPoint at:0048AF62 +Adding coverage:DECHash.pas (DECHash) 3149 +Clearing BreakPoint at 0048AF6B +De-Activate DECHash.pas line 3149 BreakPoint at:0048AF6B +Adding coverage:DECHash.pas (DECHash) 3150 +Clearing BreakPoint at 0048AF74 +De-Activate DECHash.pas line 3150 BreakPoint at:0048AF74 +Adding coverage:DECHash.pas (DECHash) 3151 +Clearing BreakPoint at 0048AF7D +De-Activate DECHash.pas line 3151 BreakPoint at:0048AF7D +Adding coverage:DECHash.pas (DECHash) 3152 +Clearing BreakPoint at 0048AF86 +De-Activate DECHash.pas line 3152 BreakPoint at:0048AF86 +Adding coverage:DECHash.pas (DECHash) 3153 +Clearing BreakPoint at 0048AF8F +De-Activate DECHash.pas line 3153 BreakPoint at:0048AF8F +Adding coverage:DECHash.pas (DECHash) 3155 +Clearing BreakPoint at 0048AF98 +De-Activate DECHash.pas line 3155 BreakPoint at:0048AF98 +Adding coverage:DECHash.pas (DECHash) 3157 +Clearing BreakPoint at 0048AF9D +De-Activate DECHash.pas line 3157 BreakPoint at:0048AF9D +Adding coverage:DECHash.pas (DECHash) 3158 +Clearing BreakPoint at 0048AFBC +De-Activate DECHash.pas line 3158 BreakPoint at:0048AFBC +Adding coverage:DECHash.pas (DECHash) 3159 +Clearing BreakPoint at 0048AFE6 +De-Activate DECHash.pas line 3159 BreakPoint at:0048AFE6 +Adding coverage:DECHash.pas (DECHash) 3160 +Clearing BreakPoint at 0048B016 +De-Activate DECHash.pas line 3160 BreakPoint at:0048B016 +Adding coverage:DECHash.pas (DECHash) 3155 +Clearing BreakPoint at 0048B019 +De-Activate DECHash.pas line 3155 BreakPoint at:0048B019 +Adding coverage:DECHash.pas (DECHash) 3162 +Clearing BreakPoint at 0048B023 +De-Activate DECHash.pas line 3162 BreakPoint at:0048B023 +Adding coverage:DECHash.pas (DECHash) 3164 +Clearing BreakPoint at 0048B028 +De-Activate DECHash.pas line 3164 BreakPoint at:0048B028 +Adding coverage:DECHash.pas (DECHash) 3165 +Clearing BreakPoint at 0048B05A +De-Activate DECHash.pas line 3165 BreakPoint at:0048B05A +Adding coverage:DECHash.pas (DECHash) 3166 +Clearing BreakPoint at 0048B08C +De-Activate DECHash.pas line 3166 BreakPoint at:0048B08C +Adding coverage:DECHash.pas (DECHash) 3167 +Clearing BreakPoint at 0048B08F +De-Activate DECHash.pas line 3167 BreakPoint at:0048B08F +Adding coverage:DECHash.pas (DECHash) 3168 +Clearing BreakPoint at 0048B093 +De-Activate DECHash.pas line 3168 BreakPoint at:0048B093 +Adding coverage:DECHash.pas (DECHash) 3169 +Clearing BreakPoint at 0048B0C3 +De-Activate DECHash.pas line 3169 BreakPoint at:0048B0C3 +Adding coverage:DECHash.pas (DECHash) 3162 +Clearing BreakPoint at 0048B0C6 +De-Activate DECHash.pas line 3162 BreakPoint at:0048B0C6 +Adding coverage:DECHash.pas (DECHash) 3171 +Clearing BreakPoint at 0048B0D0 +De-Activate DECHash.pas line 3171 BreakPoint at:0048B0D0 +Adding coverage:DECHash.pas (DECHash) 3173 +Clearing BreakPoint at 0048B0D5 +De-Activate DECHash.pas line 3173 BreakPoint at:0048B0D5 +Adding coverage:DECHash.pas (DECHash) 3174 +Clearing BreakPoint at 0048B0FA +De-Activate DECHash.pas line 3174 BreakPoint at:0048B0FA +Adding coverage:DECHash.pas (DECHash) 3175 +Clearing BreakPoint at 0048B12C +De-Activate DECHash.pas line 3175 BreakPoint at:0048B12C +Adding coverage:DECHash.pas (DECHash) 3176 +Clearing BreakPoint at 0048B12F +De-Activate DECHash.pas line 3176 BreakPoint at:0048B12F +Adding coverage:DECHash.pas (DECHash) 3177 +Clearing BreakPoint at 0048B133 +De-Activate DECHash.pas line 3177 BreakPoint at:0048B133 +Adding coverage:DECHash.pas (DECHash) 3178 +Clearing BreakPoint at 0048B163 +De-Activate DECHash.pas line 3178 BreakPoint at:0048B163 +Adding coverage:DECHash.pas (DECHash) 3171 +Clearing BreakPoint at 0048B166 +De-Activate DECHash.pas line 3171 BreakPoint at:0048B166 +Adding coverage:DECHash.pas (DECHash) 3180 +Clearing BreakPoint at 0048B170 +De-Activate DECHash.pas line 3180 BreakPoint at:0048B170 +Adding coverage:DECHash.pas (DECHash) 3182 +Clearing BreakPoint at 0048B175 +De-Activate DECHash.pas line 3182 BreakPoint at:0048B175 +Adding coverage:DECHash.pas (DECHash) 3184 +Clearing BreakPoint at 0048B1B2 +De-Activate DECHash.pas line 3184 BreakPoint at:0048B1B2 +Adding coverage:DECHash.pas (DECHash) 3185 +Clearing BreakPoint at 0048B1E4 +De-Activate DECHash.pas line 3185 BreakPoint at:0048B1E4 +Adding coverage:DECHash.pas (DECHash) 3186 +Clearing BreakPoint at 0048B1E7 +De-Activate DECHash.pas line 3186 BreakPoint at:0048B1E7 +Adding coverage:DECHash.pas (DECHash) 3187 +Clearing BreakPoint at 0048B1EB +De-Activate DECHash.pas line 3187 BreakPoint at:0048B1EB +Adding coverage:DECHash.pas (DECHash) 3188 +Clearing BreakPoint at 0048B21B +De-Activate DECHash.pas line 3188 BreakPoint at:0048B21B +Adding coverage:DECHash.pas (DECHash) 3180 +Clearing BreakPoint at 0048B21E +De-Activate DECHash.pas line 3180 BreakPoint at:0048B21E +Adding coverage:DECHash.pas (DECHash) 3190 +Clearing BreakPoint at 0048B228 +De-Activate DECHash.pas line 3190 BreakPoint at:0048B228 +Adding coverage:DECHash.pas (DECHash) 3191 +Clearing BreakPoint at 0048B231 +De-Activate DECHash.pas line 3191 BreakPoint at:0048B231 +Adding coverage:DECHash.pas (DECHash) 3192 +Clearing BreakPoint at 0048B23A +De-Activate DECHash.pas line 3192 BreakPoint at:0048B23A +Adding coverage:DECHash.pas (DECHash) 3193 +Clearing BreakPoint at 0048B243 +De-Activate DECHash.pas line 3193 BreakPoint at:0048B243 +Adding coverage:DECHash.pas (DECHash) 3194 +Clearing BreakPoint at 0048B24C +De-Activate DECHash.pas line 3194 BreakPoint at:0048B24C +Adding coverage:DECHash.pas (DECHash) 3195 +Clearing BreakPoint at 0048B255 +De-Activate DECHash.pas line 3195 BreakPoint at:0048B255 +Adding coverage:DECHash.pas (DECHash) 3196 +Clearing BreakPoint at 0048B25E +De-Activate DECHash.pas line 3196 BreakPoint at:0048B25E +Adding coverage:DECHash.pas (DECHash) 3197 +Clearing BreakPoint at 0048B267 +De-Activate DECHash.pas line 3197 BreakPoint at:0048B267 +Adding coverage:DECHash.pas (DECHash) 3198 +Clearing BreakPoint at 0048B270 +De-Activate DECHash.pas line 3198 BreakPoint at:0048B270 +Adding coverage:DECHash.pas (DECHash) 3205 +Clearing BreakPoint at 0048B274 +De-Activate DECHash.pas line 3205 BreakPoint at:0048B274 +Adding coverage:DECHash.pas (DECHash) 3206 +Clearing BreakPoint at 0048B280 +De-Activate DECHash.pas line 3206 BreakPoint at:0048B280 +Adding coverage:DECHash.pas (DECHash) 3207 +Clearing BreakPoint at 0048B288 +De-Activate DECHash.pas line 3207 BreakPoint at:0048B288 +Adding coverage:DECHash.pas (DECHash) 3209 +Clearing BreakPoint at 0048B290 +De-Activate DECHash.pas line 3209 BreakPoint at:0048B290 +Adding coverage:DECHash.pas (DECHash) 3210 +Clearing BreakPoint at 0048B299 +De-Activate DECHash.pas line 3210 BreakPoint at:0048B299 +Adding coverage:DECHash.pas (DECHash) 3211 +Clearing BreakPoint at 0048B2A2 +De-Activate DECHash.pas line 3211 BreakPoint at:0048B2A2 +Adding coverage:DECHash.pas (DECHash) 3212 +Clearing BreakPoint at 0048B2AB +De-Activate DECHash.pas line 3212 BreakPoint at:0048B2AB +Adding coverage:DECHash.pas (DECHash) 3213 +Clearing BreakPoint at 0048B2B4 +De-Activate DECHash.pas line 3213 BreakPoint at:0048B2B4 +Adding coverage:DECHash.pas (DECHash) 3214 +Clearing BreakPoint at 0048B2BD +De-Activate DECHash.pas line 3214 BreakPoint at:0048B2BD +Adding coverage:DECHash.pas (DECHash) 3215 +Clearing BreakPoint at 0048B2C6 +De-Activate DECHash.pas line 3215 BreakPoint at:0048B2C6 +Adding coverage:DECHash.pas (DECHash) 3216 +Clearing BreakPoint at 0048B2CF +De-Activate DECHash.pas line 3216 BreakPoint at:0048B2CF +Adding coverage:DECHash.pas (DECHash) 3218 +Clearing BreakPoint at 0048B2D8 +De-Activate DECHash.pas line 3218 BreakPoint at:0048B2D8 +Adding coverage:DECHash.pas (DECHash) 3220 +Clearing BreakPoint at 0048B2DD +De-Activate DECHash.pas line 3220 BreakPoint at:0048B2DD +Adding coverage:DECHash.pas (DECHash) 3221 +Clearing BreakPoint at 0048B2FC +De-Activate DECHash.pas line 3221 BreakPoint at:0048B2FC +Adding coverage:DECHash.pas (DECHash) 3222 +Clearing BreakPoint at 0048B326 +De-Activate DECHash.pas line 3222 BreakPoint at:0048B326 +Adding coverage:DECHash.pas (DECHash) 3223 +Clearing BreakPoint at 0048B356 +De-Activate DECHash.pas line 3223 BreakPoint at:0048B356 +Adding coverage:DECHash.pas (DECHash) 3218 +Clearing BreakPoint at 0048B359 +De-Activate DECHash.pas line 3218 BreakPoint at:0048B359 +Adding coverage:DECHash.pas (DECHash) 3225 +Clearing BreakPoint at 0048B363 +De-Activate DECHash.pas line 3225 BreakPoint at:0048B363 +Adding coverage:DECHash.pas (DECHash) 3227 +Clearing BreakPoint at 0048B368 +De-Activate DECHash.pas line 3227 BreakPoint at:0048B368 +Adding coverage:DECHash.pas (DECHash) 3228 +Clearing BreakPoint at 0048B39A +De-Activate DECHash.pas line 3228 BreakPoint at:0048B39A +Adding coverage:DECHash.pas (DECHash) 3229 +Clearing BreakPoint at 0048B3CC +De-Activate DECHash.pas line 3229 BreakPoint at:0048B3CC +Adding coverage:DECHash.pas (DECHash) 3230 +Clearing BreakPoint at 0048B3CF +De-Activate DECHash.pas line 3230 BreakPoint at:0048B3CF +Adding coverage:DECHash.pas (DECHash) 3231 +Clearing BreakPoint at 0048B3D3 +De-Activate DECHash.pas line 3231 BreakPoint at:0048B3D3 +Adding coverage:DECHash.pas (DECHash) 3232 +Clearing BreakPoint at 0048B403 +De-Activate DECHash.pas line 3232 BreakPoint at:0048B403 +Adding coverage:DECHash.pas (DECHash) 3225 +Clearing BreakPoint at 0048B406 +De-Activate DECHash.pas line 3225 BreakPoint at:0048B406 +Adding coverage:DECHash.pas (DECHash) 3234 +Clearing BreakPoint at 0048B410 +De-Activate DECHash.pas line 3234 BreakPoint at:0048B410 +Adding coverage:DECHash.pas (DECHash) 3236 +Clearing BreakPoint at 0048B415 +De-Activate DECHash.pas line 3236 BreakPoint at:0048B415 +Adding coverage:DECHash.pas (DECHash) 3237 +Clearing BreakPoint at 0048B43A +De-Activate DECHash.pas line 3237 BreakPoint at:0048B43A +Adding coverage:DECHash.pas (DECHash) 3238 +Clearing BreakPoint at 0048B46C +De-Activate DECHash.pas line 3238 BreakPoint at:0048B46C +Adding coverage:DECHash.pas (DECHash) 3239 +Clearing BreakPoint at 0048B46F +De-Activate DECHash.pas line 3239 BreakPoint at:0048B46F +Adding coverage:DECHash.pas (DECHash) 3240 +Clearing BreakPoint at 0048B473 +De-Activate DECHash.pas line 3240 BreakPoint at:0048B473 +Adding coverage:DECHash.pas (DECHash) 3241 +Clearing BreakPoint at 0048B4A3 +De-Activate DECHash.pas line 3241 BreakPoint at:0048B4A3 +Adding coverage:DECHash.pas (DECHash) 3234 +Clearing BreakPoint at 0048B4A6 +De-Activate DECHash.pas line 3234 BreakPoint at:0048B4A6 +Adding coverage:DECHash.pas (DECHash) 3243 +Clearing BreakPoint at 0048B4B0 +De-Activate DECHash.pas line 3243 BreakPoint at:0048B4B0 +Adding coverage:DECHash.pas (DECHash) 3245 +Clearing BreakPoint at 0048B4B5 +De-Activate DECHash.pas line 3245 BreakPoint at:0048B4B5 +Adding coverage:DECHash.pas (DECHash) 3247 +Clearing BreakPoint at 0048B4F2 +De-Activate DECHash.pas line 3247 BreakPoint at:0048B4F2 +Adding coverage:DECHash.pas (DECHash) 3248 +Clearing BreakPoint at 0048B524 +De-Activate DECHash.pas line 3248 BreakPoint at:0048B524 +Adding coverage:DECHash.pas (DECHash) 3249 +Clearing BreakPoint at 0048B527 +De-Activate DECHash.pas line 3249 BreakPoint at:0048B527 +Adding coverage:DECHash.pas (DECHash) 3250 +Clearing BreakPoint at 0048B52B +De-Activate DECHash.pas line 3250 BreakPoint at:0048B52B +Adding coverage:DECHash.pas (DECHash) 3251 +Clearing BreakPoint at 0048B55B +De-Activate DECHash.pas line 3251 BreakPoint at:0048B55B +Adding coverage:DECHash.pas (DECHash) 3243 +Clearing BreakPoint at 0048B55E +De-Activate DECHash.pas line 3243 BreakPoint at:0048B55E +Adding coverage:DECHash.pas (DECHash) 3253 +Clearing BreakPoint at 0048B568 +De-Activate DECHash.pas line 3253 BreakPoint at:0048B568 +Adding coverage:DECHash.pas (DECHash) 3255 +Clearing BreakPoint at 0048B56D +De-Activate DECHash.pas line 3255 BreakPoint at:0048B56D +Adding coverage:DECHash.pas (DECHash) 3256 +Clearing BreakPoint at 0048B59B +De-Activate DECHash.pas line 3256 BreakPoint at:0048B59B +Adding coverage:DECHash.pas (DECHash) 3257 +Clearing BreakPoint at 0048B5CD +De-Activate DECHash.pas line 3257 BreakPoint at:0048B5CD +Adding coverage:DECHash.pas (DECHash) 3258 +Clearing BreakPoint at 0048B5D4 +De-Activate DECHash.pas line 3258 BreakPoint at:0048B5D4 +Adding coverage:DECHash.pas (DECHash) 3259 +Clearing BreakPoint at 0048B604 +De-Activate DECHash.pas line 3259 BreakPoint at:0048B604 +Adding coverage:DECHash.pas (DECHash) 3253 +Clearing BreakPoint at 0048B607 +De-Activate DECHash.pas line 3253 BreakPoint at:0048B607 +Adding coverage:DECHash.pas (DECHash) 3261 +Clearing BreakPoint at 0048B611 +De-Activate DECHash.pas line 3261 BreakPoint at:0048B611 +Adding coverage:DECHash.pas (DECHash) 3262 +Clearing BreakPoint at 0048B61A +De-Activate DECHash.pas line 3262 BreakPoint at:0048B61A +Adding coverage:DECHash.pas (DECHash) 3263 +Clearing BreakPoint at 0048B623 +De-Activate DECHash.pas line 3263 BreakPoint at:0048B623 +Adding coverage:DECHash.pas (DECHash) 3264 +Clearing BreakPoint at 0048B62C +De-Activate DECHash.pas line 3264 BreakPoint at:0048B62C +Adding coverage:DECHash.pas (DECHash) 3265 +Clearing BreakPoint at 0048B635 +De-Activate DECHash.pas line 3265 BreakPoint at:0048B635 +Adding coverage:DECHash.pas (DECHash) 3266 +Clearing BreakPoint at 0048B63E +De-Activate DECHash.pas line 3266 BreakPoint at:0048B63E +Adding coverage:DECHash.pas (DECHash) 3267 +Clearing BreakPoint at 0048B647 +De-Activate DECHash.pas line 3267 BreakPoint at:0048B647 +Adding coverage:DECHash.pas (DECHash) 3268 +Clearing BreakPoint at 0048B650 +De-Activate DECHash.pas line 3268 BreakPoint at:0048B650 +Adding coverage:DECHash.pas (DECHash) 3269 +Clearing BreakPoint at 0048B659 +De-Activate DECHash.pas line 3269 BreakPoint at:0048B659 +Adding coverage:DECHash.pas (DECHash) 3298 +Clearing BreakPoint at 0048B6ED +De-Activate DECHash.pas line 3298 BreakPoint at:0048B6ED +Adding coverage:DECHash.pas (DECHash) 3299 +Clearing BreakPoint at 0048B712 +De-Activate DECHash.pas line 3299 BreakPoint at:0048B712 +Adding coverage:DECHash.pas (DECHash) 3300 +Clearing BreakPoint at 0048B720 +De-Activate DECHash.pas line 3300 BreakPoint at:0048B720 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3390 +Clearing BreakPoint at 0048BB90 +De-Activate DECHash.pas line 3390 BreakPoint at:0048BB90 +Adding coverage:DECHash.pas (DECHash) 3391 +Clearing BreakPoint at 0048BB99 +De-Activate DECHash.pas line 3391 BreakPoint at:0048BB99 +Adding coverage:DECHash.pas (DECHash) 3392 +Clearing BreakPoint at 0048BBA0 +De-Activate DECHash.pas line 3392 BreakPoint at:0048BBA0 +Adding coverage:DECHash.pas (DECHash) 3330 +Clearing BreakPoint at 0048B8FA +De-Activate DECHash.pas line 3330 BreakPoint at:0048B8FA +Adding coverage:DECHash.pas (DECHash) 3331 +Clearing BreakPoint at 0048B931 +De-Activate DECHash.pas line 3331 BreakPoint at:0048B931 +Adding coverage:DECHash.pas (DECHash) 3334 +Clearing BreakPoint at 0048B967 +De-Activate DECHash.pas line 3334 BreakPoint at:0048B967 +Adding coverage:DECHash.pas (DECHash) 3337 +Clearing BreakPoint at 0048B991 +De-Activate DECHash.pas line 3337 BreakPoint at:0048B991 +Adding coverage:DECHash.pas (DECHash) 3340 +Clearing BreakPoint at 0048B9C1 +De-Activate DECHash.pas line 3340 BreakPoint at:0048B9C1 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3397 +Clearing BreakPoint at 0048BBA8 +De-Activate DECHash.pas line 3397 BreakPoint at:0048BBA8 +Adding coverage:DECHash.pas (DECHash) 3398 +Clearing BreakPoint at 0048BBB1 +De-Activate DECHash.pas line 3398 BreakPoint at:0048BBB1 +Adding coverage:DECHash.pas (DECHash) 3399 +Clearing BreakPoint at 0048BBB8 +De-Activate DECHash.pas line 3399 BreakPoint at:0048BBB8 +Adding coverage:DECHash.pas (DECHash) 3071 +Clearing BreakPoint at 0048AC6B +De-Activate DECHash.pas line 3071 BreakPoint at:0048AC6B +Adding coverage:DECHash.pas (DECHash) 3072 +Clearing BreakPoint at 0048AC78 +De-Activate DECHash.pas line 3072 BreakPoint at:0048AC78 +Adding coverage:DECHash.pas (DECHash) 3028 +Clearing BreakPoint at 0048AB39 +De-Activate DECHash.pas line 3028 BreakPoint at:0048AB39 +Adding coverage:DECHash.pas (DECHash) 3029 +Clearing BreakPoint at 0048AB46 +De-Activate DECHash.pas line 3029 BreakPoint at:0048AB46 +Adding coverage:DECHash.pas (DECHash) 3346 +Clearing BreakPoint at 0048B9F6 +De-Activate DECHash.pas line 3346 BreakPoint at:0048B9F6 +Adding coverage:DECHash.pas (DECHash) 3347 +Clearing BreakPoint at 0048BA1F +De-Activate DECHash.pas line 3347 BreakPoint at:0048BA1F +Adding coverage:DECHash.pas (DECHash) 3349 +Clearing BreakPoint at 0048BA3B +De-Activate DECHash.pas line 3349 BreakPoint at:0048BA3B +Adding coverage:DECHash.pas (DECHash) 3351 +Clearing BreakPoint at 0048BA5D +De-Activate DECHash.pas line 3351 BreakPoint at:0048BA5D +Adding coverage:DECHash.pas (DECHash) 3353 +Clearing BreakPoint at 0048BA7F +De-Activate DECHash.pas line 3353 BreakPoint at:0048BA7F +Adding coverage:DECHash.pas (DECHash) 3355 +Clearing BreakPoint at 0048BAA1 +De-Activate DECHash.pas line 3355 BreakPoint at:0048BAA1 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3404 +Clearing BreakPoint at 0048BBC0 +De-Activate DECHash.pas line 3404 BreakPoint at:0048BBC0 +Adding coverage:DECHash.pas (DECHash) 3405 +Clearing BreakPoint at 0048BBC9 +De-Activate DECHash.pas line 3405 BreakPoint at:0048BBC9 +Adding coverage:DECHash.pas (DECHash) 3406 +Clearing BreakPoint at 0048BBD0 +De-Activate DECHash.pas line 3406 BreakPoint at:0048BBD0 +Adding coverage:DECHash.pas (DECHash) 3359 +Clearing BreakPoint at 0048BAC5 +De-Activate DECHash.pas line 3359 BreakPoint at:0048BAC5 +Adding coverage:DECHash.pas (DECHash) 3360 +Clearing BreakPoint at 0048BAD7 +De-Activate DECHash.pas line 3360 BreakPoint at:0048BAD7 +Adding coverage:DECHash.pas (DECHash) 3361 +Clearing BreakPoint at 0048BAE9 +De-Activate DECHash.pas line 3361 BreakPoint at:0048BAE9 +Adding coverage:DECHash.pas (DECHash) 3362 +Clearing BreakPoint at 0048BAFB +De-Activate DECHash.pas line 3362 BreakPoint at:0048BAFB +Adding coverage:DECHash.pas (DECHash) 3363 +Clearing BreakPoint at 0048BB0D +De-Activate DECHash.pas line 3363 BreakPoint at:0048BB0D +Adding coverage:DECHash.pas (DECHash) 3364 +Clearing BreakPoint at 0048BB1F +De-Activate DECHash.pas line 3364 BreakPoint at:0048BB1F +Adding coverage:DECHash.pas (DECHash) 3365 +Clearing BreakPoint at 0048BB31 +De-Activate DECHash.pas line 3365 BreakPoint at:0048BB31 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3411 +Clearing BreakPoint at 0048BBD8 +De-Activate DECHash.pas line 3411 BreakPoint at:0048BBD8 +Adding coverage:DECHash.pas (DECHash) 3412 +Clearing BreakPoint at 0048BBE1 +De-Activate DECHash.pas line 3412 BreakPoint at:0048BBE1 +Adding coverage:DECHash.pas (DECHash) 3413 +Clearing BreakPoint at 0048BBE8 +De-Activate DECHash.pas line 3413 BreakPoint at:0048BBE8 +Adding coverage:DECHash.pas (DECHash) 3074 +Clearing BreakPoint at 0048AC81 +De-Activate DECHash.pas line 3074 BreakPoint at:0048AC81 +Adding coverage:DECHash.pas (DECHash) 3031 +Clearing BreakPoint at 0048AB4F +De-Activate DECHash.pas line 3031 BreakPoint at:0048AB4F +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3418 +Clearing BreakPoint at 0048BBF0 +De-Activate DECHash.pas line 3418 BreakPoint at:0048BBF0 +Adding coverage:DECHash.pas (DECHash) 3419 +Clearing BreakPoint at 0048BBFC +De-Activate DECHash.pas line 3419 BreakPoint at:0048BBFC +Adding coverage:DECHash.pas (DECHash) 3422 +Clearing BreakPoint at 0048BC09 +De-Activate DECHash.pas line 3422 BreakPoint at:0048BC09 +Adding coverage:DECHash.pas (DECHash) 3425 +Clearing BreakPoint at 0048BC16 +De-Activate DECHash.pas line 3425 BreakPoint at:0048BC16 +Adding coverage:DECHash.pas (DECHash) 3426 +Clearing BreakPoint at 0048BC1F +De-Activate DECHash.pas line 3426 BreakPoint at:0048BC1F +Adding coverage:DECHash.pas (DECHash) 3669 +Clearing BreakPoint at 0048CC44 +De-Activate DECHash.pas line 3669 BreakPoint at:0048CC44 +Adding coverage:DECHash.pas (DECHash) 3670 +Clearing BreakPoint at 0048CC4D +De-Activate DECHash.pas line 3670 BreakPoint at:0048CC4D +Adding coverage:DECHash.pas (DECHash) 3671 +Clearing BreakPoint at 0048CC56 +De-Activate DECHash.pas line 3671 BreakPoint at:0048CC56 +Adding coverage:DECHash.pas (DECHash) 3674 +Clearing BreakPoint at 0048CC60 +De-Activate DECHash.pas line 3674 BreakPoint at:0048CC60 +Adding coverage:DECHash.pas (DECHash) 3675 +Clearing BreakPoint at 0048CC69 +De-Activate DECHash.pas line 3675 BreakPoint at:0048CC69 +Adding coverage:DECHash.pas (DECHash) 3676 +Clearing BreakPoint at 0048CC70 +De-Activate DECHash.pas line 3676 BreakPoint at:0048CC70 +Adding coverage:DECHash.pas (DECHash) 3420 +Clearing BreakPoint at 0048BC02 +De-Activate DECHash.pas line 3420 BreakPoint at:0048BC02 +Adding coverage:DECHash.pas (DECHash) 3423 +Clearing BreakPoint at 0048BC0F +De-Activate DECHash.pas line 3423 BreakPoint at:0048BC0F +Adding coverage:DECHash.pas (DECHash) 3664 +Clearing BreakPoint at 0048CC2C +De-Activate DECHash.pas line 3664 BreakPoint at:0048CC2C +Adding coverage:DECHash.pas (DECHash) 3665 +Clearing BreakPoint at 0048CC35 +De-Activate DECHash.pas line 3665 BreakPoint at:0048CC35 +Adding coverage:DECHash.pas (DECHash) 3666 +Clearing BreakPoint at 0048CC3C +De-Activate DECHash.pas line 3666 BreakPoint at:0048CC3C +Adding coverage:DECHash.pas (DECHash) 3659 +Clearing BreakPoint at 0048CC14 +De-Activate DECHash.pas line 3659 BreakPoint at:0048CC14 +Adding coverage:DECHash.pas (DECHash) 3660 +Clearing BreakPoint at 0048CC1D +De-Activate DECHash.pas line 3660 BreakPoint at:0048CC1D +Adding coverage:DECHash.pas (DECHash) 3661 +Clearing BreakPoint at 0048CC24 +De-Activate DECHash.pas line 3661 BreakPoint at:0048CC24 +Adding coverage:DECHash.pas (DECHash) 3429 +Clearing BreakPoint at 0048BC24 +De-Activate DECHash.pas line 3429 BreakPoint at:0048BC24 +Adding coverage:DECHash.pas (DECHash) 3430 +Clearing BreakPoint at 0048BC2B +De-Activate DECHash.pas line 3430 BreakPoint at:0048BC2B +Adding coverage:DECHash.pas (DECHash) 3431 +Clearing BreakPoint at 0048BC39 +De-Activate DECHash.pas line 3431 BreakPoint at:0048BC39 +Adding coverage:DECHash.pas (DECHash) 3433 +Clearing BreakPoint at 0048BC49 +De-Activate DECHash.pas line 3433 BreakPoint at:0048BC49 +Adding coverage:DECHash.pas (DECHash) 3434 +Clearing BreakPoint at 0048BC53 +De-Activate DECHash.pas line 3434 BreakPoint at:0048BC53 +Adding coverage:DECHash.pas (DECHash) 3435 +Clearing BreakPoint at 0048BC5D +De-Activate DECHash.pas line 3435 BreakPoint at:0048BC5D +Adding coverage:DECHash.pas (DECHash) 3436 +Clearing BreakPoint at 0048BC67 +De-Activate DECHash.pas line 3436 BreakPoint at:0048BC67 +Adding coverage:DECHash.pas (DECHash) 3437 +Clearing BreakPoint at 0048BC71 +De-Activate DECHash.pas line 3437 BreakPoint at:0048BC71 +Adding coverage:DECHash.pas (DECHash) 3438 +Clearing BreakPoint at 0048BC7B +De-Activate DECHash.pas line 3438 BreakPoint at:0048BC7B +Adding coverage:DECHash.pas (DECHash) 3439 +Clearing BreakPoint at 0048BC85 +De-Activate DECHash.pas line 3439 BreakPoint at:0048BC85 +Adding coverage:DECHash.pas (DECHash) 3454 +Clearing BreakPoint at 0048BC88 +De-Activate DECHash.pas line 3454 BreakPoint at:0048BC88 +Adding coverage:DECHash.pas (DECHash) 3455 +Clearing BreakPoint at 0048BC94 +De-Activate DECHash.pas line 3455 BreakPoint at:0048BC94 +Adding coverage:DECHash.pas (DECHash) 3456 +Clearing BreakPoint at 0048BCA5 +De-Activate DECHash.pas line 3456 BreakPoint at:0048BCA5 +Adding coverage:DECHash.pas (DECHash) 3457 +Clearing BreakPoint at 0048BCB7 +De-Activate DECHash.pas line 3457 BreakPoint at:0048BCB7 +Adding coverage:DECHash.pas (DECHash) 3458 +Clearing BreakPoint at 0048BCC9 +De-Activate DECHash.pas line 3458 BreakPoint at:0048BCC9 +Adding coverage:DECHash.pas (DECHash) 3459 +Clearing BreakPoint at 0048BCD7 +De-Activate DECHash.pas line 3459 BreakPoint at:0048BCD7 +Adding coverage:DECHash.pas (DECHash) 3460 +Clearing BreakPoint at 0048BCE6 +De-Activate DECHash.pas line 3460 BreakPoint at:0048BCE6 +Adding coverage:DECHash.pas (DECHash) 3461 +Clearing BreakPoint at 0048BCF5 +De-Activate DECHash.pas line 3461 BreakPoint at:0048BCF5 +Adding coverage:DECHash.pas (DECHash) 3462 +Clearing BreakPoint at 0048BD04 +De-Activate DECHash.pas line 3462 BreakPoint at:0048BD04 +Adding coverage:DECHash.pas (DECHash) 3463 +Clearing BreakPoint at 0048BD13 +De-Activate DECHash.pas line 3463 BreakPoint at:0048BD13 +Adding coverage:DECHash.pas (DECHash) 3464 +Clearing BreakPoint at 0048BD22 +De-Activate DECHash.pas line 3464 BreakPoint at:0048BD22 +Adding coverage:DECHash.pas (DECHash) 3465 +Clearing BreakPoint at 0048BD31 +De-Activate DECHash.pas line 3465 BreakPoint at:0048BD31 +Adding coverage:DECHash.pas (DECHash) 3467 +Clearing BreakPoint at 0048BD40 +De-Activate DECHash.pas line 3467 BreakPoint at:0048BD40 +Adding coverage:DECHash.pas (DECHash) 3469 +Clearing BreakPoint at 0048BD58 +De-Activate DECHash.pas line 3469 BreakPoint at:0048BD58 +Adding coverage:DECHash.pas (DECHash) 3489 +Clearing BreakPoint at 0048BE9C +De-Activate DECHash.pas line 3489 BreakPoint at:0048BE9C +Adding coverage:DECHash.pas (DECHash) 3490 +Clearing BreakPoint at 0048BEAE +De-Activate DECHash.pas line 3490 BreakPoint at:0048BEAE +Adding coverage:DECHash.pas (DECHash) 3494 +Clearing BreakPoint at 0048BF49 +De-Activate DECHash.pas line 3494 BreakPoint at:0048BF49 +Adding coverage:DECHash.pas (DECHash) 3499 +Clearing BreakPoint at 0048BFDD +De-Activate DECHash.pas line 3499 BreakPoint at:0048BFDD +Adding coverage:DECHash.pas (DECHash) 3500 +Clearing BreakPoint at 0048BFE3 +De-Activate DECHash.pas line 3500 BreakPoint at:0048BFE3 +Adding coverage:DECHash.pas (DECHash) 3509 +Clearing BreakPoint at 0048C038 +De-Activate DECHash.pas line 3509 BreakPoint at:0048C038 +Adding coverage:DECHash.pas (DECHash) 3510 +Clearing BreakPoint at 0048C04A +De-Activate DECHash.pas line 3510 BreakPoint at:0048C04A +Adding coverage:DECHash.pas (DECHash) 3514 +Clearing BreakPoint at 0048C0E5 +De-Activate DECHash.pas line 3514 BreakPoint at:0048C0E5 +Adding coverage:DECHash.pas (DECHash) 3519 +Clearing BreakPoint at 0048C179 +De-Activate DECHash.pas line 3519 BreakPoint at:0048C179 +Adding coverage:DECHash.pas (DECHash) 3520 +Clearing BreakPoint at 0048C17F +De-Activate DECHash.pas line 3520 BreakPoint at:0048C17F +Adding coverage:DECHash.pas (DECHash) 3529 +Clearing BreakPoint at 0048C1D4 +De-Activate DECHash.pas line 3529 BreakPoint at:0048C1D4 +Adding coverage:DECHash.pas (DECHash) 3530 +Clearing BreakPoint at 0048C1E6 +De-Activate DECHash.pas line 3530 BreakPoint at:0048C1E6 +Adding coverage:DECHash.pas (DECHash) 3534 +Clearing BreakPoint at 0048C281 +De-Activate DECHash.pas line 3534 BreakPoint at:0048C281 +Adding coverage:DECHash.pas (DECHash) 3539 +Clearing BreakPoint at 0048C315 +De-Activate DECHash.pas line 3539 BreakPoint at:0048C315 +Adding coverage:DECHash.pas (DECHash) 3540 +Clearing BreakPoint at 0048C31B +De-Activate DECHash.pas line 3540 BreakPoint at:0048C31B +Adding coverage:DECHash.pas (DECHash) 3549 +Clearing BreakPoint at 0048C370 +De-Activate DECHash.pas line 3549 BreakPoint at:0048C370 +Adding coverage:DECHash.pas (DECHash) 3550 +Clearing BreakPoint at 0048C382 +De-Activate DECHash.pas line 3550 BreakPoint at:0048C382 +Adding coverage:DECHash.pas (DECHash) 3554 +Clearing BreakPoint at 0048C41D +De-Activate DECHash.pas line 3554 BreakPoint at:0048C41D +Adding coverage:DECHash.pas (DECHash) 3559 +Clearing BreakPoint at 0048C4B1 +De-Activate DECHash.pas line 3559 BreakPoint at:0048C4B1 +Adding coverage:DECHash.pas (DECHash) 3560 +Clearing BreakPoint at 0048C4B7 +De-Activate DECHash.pas line 3560 BreakPoint at:0048C4B7 +Adding coverage:DECHash.pas (DECHash) 3569 +Clearing BreakPoint at 0048C50C +De-Activate DECHash.pas line 3569 BreakPoint at:0048C50C +Adding coverage:DECHash.pas (DECHash) 3570 +Clearing BreakPoint at 0048C51E +De-Activate DECHash.pas line 3570 BreakPoint at:0048C51E +Adding coverage:DECHash.pas (DECHash) 3574 +Clearing BreakPoint at 0048C5B9 +De-Activate DECHash.pas line 3574 BreakPoint at:0048C5B9 +Adding coverage:DECHash.pas (DECHash) 3579 +Clearing BreakPoint at 0048C64D +De-Activate DECHash.pas line 3579 BreakPoint at:0048C64D +Adding coverage:DECHash.pas (DECHash) 3580 +Clearing BreakPoint at 0048C653 +De-Activate DECHash.pas line 3580 BreakPoint at:0048C653 +Adding coverage:DECHash.pas (DECHash) 3589 +Clearing BreakPoint at 0048C6A8 +De-Activate DECHash.pas line 3589 BreakPoint at:0048C6A8 +Adding coverage:DECHash.pas (DECHash) 3590 +Clearing BreakPoint at 0048C6BA +De-Activate DECHash.pas line 3590 BreakPoint at:0048C6BA +Adding coverage:DECHash.pas (DECHash) 3594 +Clearing BreakPoint at 0048C755 +De-Activate DECHash.pas line 3594 BreakPoint at:0048C755 +Adding coverage:DECHash.pas (DECHash) 3599 +Clearing BreakPoint at 0048C7E9 +De-Activate DECHash.pas line 3599 BreakPoint at:0048C7E9 +Adding coverage:DECHash.pas (DECHash) 3600 +Clearing BreakPoint at 0048C7EF +De-Activate DECHash.pas line 3600 BreakPoint at:0048C7EF +Adding coverage:DECHash.pas (DECHash) 3609 +Clearing BreakPoint at 0048C844 +De-Activate DECHash.pas line 3609 BreakPoint at:0048C844 +Adding coverage:DECHash.pas (DECHash) 3610 +Clearing BreakPoint at 0048C856 +De-Activate DECHash.pas line 3610 BreakPoint at:0048C856 +Adding coverage:DECHash.pas (DECHash) 3614 +Clearing BreakPoint at 0048C8F1 +De-Activate DECHash.pas line 3614 BreakPoint at:0048C8F1 +Adding coverage:DECHash.pas (DECHash) 3619 +Clearing BreakPoint at 0048C985 +De-Activate DECHash.pas line 3619 BreakPoint at:0048C985 +Adding coverage:DECHash.pas (DECHash) 3620 +Clearing BreakPoint at 0048C98B +De-Activate DECHash.pas line 3620 BreakPoint at:0048C98B +Adding coverage:DECHash.pas (DECHash) 3629 +Clearing BreakPoint at 0048C9E0 +De-Activate DECHash.pas line 3629 BreakPoint at:0048C9E0 +Adding coverage:DECHash.pas (DECHash) 3630 +Clearing BreakPoint at 0048C9F2 +De-Activate DECHash.pas line 3630 BreakPoint at:0048C9F2 +Adding coverage:DECHash.pas (DECHash) 3634 +Clearing BreakPoint at 0048CA8D +De-Activate DECHash.pas line 3634 BreakPoint at:0048CA8D +Adding coverage:DECHash.pas (DECHash) 3639 +Clearing BreakPoint at 0048CB21 +De-Activate DECHash.pas line 3639 BreakPoint at:0048CB21 +Adding coverage:DECHash.pas (DECHash) 3640 +Clearing BreakPoint at 0048CB27 +De-Activate DECHash.pas line 3640 BreakPoint at:0048CB27 +Adding coverage:DECHash.pas (DECHash) 3649 +Clearing BreakPoint at 0048CB7C +De-Activate DECHash.pas line 3649 BreakPoint at:0048CB7C +Adding coverage:DECHash.pas (DECHash) 3650 +Clearing BreakPoint at 0048CBAC +De-Activate DECHash.pas line 3650 BreakPoint at:0048CBAC +Adding coverage:DECHash.pas (DECHash) 3467 +Clearing BreakPoint at 0048CBAF +De-Activate DECHash.pas line 3467 BreakPoint at:0048CBAF +Adding coverage:DECHash.pas (DECHash) 3471 +Clearing BreakPoint at 0048BD62 +De-Activate DECHash.pas line 3471 BreakPoint at:0048BD62 +Adding coverage:DECHash.pas (DECHash) 3472 +Clearing BreakPoint at 0048BD7A +De-Activate DECHash.pas line 3472 BreakPoint at:0048BD7A +Adding coverage:DECHash.pas (DECHash) 3473 +Clearing BreakPoint at 0048BD8C +De-Activate DECHash.pas line 3473 BreakPoint at:0048BD8C +Adding coverage:DECHash.pas (DECHash) 3474 +Clearing BreakPoint at 0048BD98 +De-Activate DECHash.pas line 3474 BreakPoint at:0048BD98 +Adding coverage:DECHash.pas (DECHash) 3475 +Clearing BreakPoint at 0048BDB5 +De-Activate DECHash.pas line 3475 BreakPoint at:0048BDB5 +Adding coverage:DECHash.pas (DECHash) 3476 +Clearing BreakPoint at 0048BDC7 +De-Activate DECHash.pas line 3476 BreakPoint at:0048BDC7 +Adding coverage:DECHash.pas (DECHash) 3477 +Clearing BreakPoint at 0048BDD3 +De-Activate DECHash.pas line 3477 BreakPoint at:0048BDD3 +Adding coverage:DECHash.pas (DECHash) 3478 +Clearing BreakPoint at 0048BDF0 +De-Activate DECHash.pas line 3478 BreakPoint at:0048BDF0 +Adding coverage:DECHash.pas (DECHash) 3479 +Clearing BreakPoint at 0048BE02 +De-Activate DECHash.pas line 3479 BreakPoint at:0048BE02 +Adding coverage:DECHash.pas (DECHash) 3480 +Clearing BreakPoint at 0048BE0E +De-Activate DECHash.pas line 3480 BreakPoint at:0048BE0E +Adding coverage:DECHash.pas (DECHash) 3481 +Clearing BreakPoint at 0048BE2B +De-Activate DECHash.pas line 3481 BreakPoint at:0048BE2B +Adding coverage:DECHash.pas (DECHash) 3482 +Clearing BreakPoint at 0048BE3D +De-Activate DECHash.pas line 3482 BreakPoint at:0048BE3D +Adding coverage:DECHash.pas (DECHash) 3483 +Clearing BreakPoint at 0048BE49 +De-Activate DECHash.pas line 3483 BreakPoint at:0048BE49 +Adding coverage:DECHash.pas (DECHash) 3484 +Clearing BreakPoint at 0048BE66 +De-Activate DECHash.pas line 3484 BreakPoint at:0048BE66 +Adding coverage:DECHash.pas (DECHash) 3485 +Clearing BreakPoint at 0048BE78 +De-Activate DECHash.pas line 3485 BreakPoint at:0048BE78 +Adding coverage:DECHash.pas (DECHash) 3486 +Clearing BreakPoint at 0048BE84 +De-Activate DECHash.pas line 3486 BreakPoint at:0048BE84 +Adding coverage:DECHash.pas (DECHash) 3503 +Clearing BreakPoint at 0048BFFE +De-Activate DECHash.pas line 3503 BreakPoint at:0048BFFE +Adding coverage:DECHash.pas (DECHash) 3504 +Clearing BreakPoint at 0048C004 +De-Activate DECHash.pas line 3504 BreakPoint at:0048C004 +Adding coverage:DECHash.pas (DECHash) 3523 +Clearing BreakPoint at 0048C19A +De-Activate DECHash.pas line 3523 BreakPoint at:0048C19A +Adding coverage:DECHash.pas (DECHash) 3524 +Clearing BreakPoint at 0048C1A0 +De-Activate DECHash.pas line 3524 BreakPoint at:0048C1A0 +Adding coverage:DECHash.pas (DECHash) 3543 +Clearing BreakPoint at 0048C336 +De-Activate DECHash.pas line 3543 BreakPoint at:0048C336 +Adding coverage:DECHash.pas (DECHash) 3544 +Clearing BreakPoint at 0048C33C +De-Activate DECHash.pas line 3544 BreakPoint at:0048C33C +Adding coverage:DECHash.pas (DECHash) 3563 +Clearing BreakPoint at 0048C4D2 +De-Activate DECHash.pas line 3563 BreakPoint at:0048C4D2 +Adding coverage:DECHash.pas (DECHash) 3564 +Clearing BreakPoint at 0048C4D8 +De-Activate DECHash.pas line 3564 BreakPoint at:0048C4D8 +Adding coverage:DECHash.pas (DECHash) 3583 +Clearing BreakPoint at 0048C66E +De-Activate DECHash.pas line 3583 BreakPoint at:0048C66E +Adding coverage:DECHash.pas (DECHash) 3584 +Clearing BreakPoint at 0048C674 +De-Activate DECHash.pas line 3584 BreakPoint at:0048C674 +Adding coverage:DECHash.pas (DECHash) 3603 +Clearing BreakPoint at 0048C80A +De-Activate DECHash.pas line 3603 BreakPoint at:0048C80A +Adding coverage:DECHash.pas (DECHash) 3604 +Clearing BreakPoint at 0048C810 +De-Activate DECHash.pas line 3604 BreakPoint at:0048C810 +Adding coverage:DECHash.pas (DECHash) 3623 +Clearing BreakPoint at 0048C9A6 +De-Activate DECHash.pas line 3623 BreakPoint at:0048C9A6 +Adding coverage:DECHash.pas (DECHash) 3624 +Clearing BreakPoint at 0048C9AC +De-Activate DECHash.pas line 3624 BreakPoint at:0048C9AC +Adding coverage:DECHash.pas (DECHash) 3643 +Clearing BreakPoint at 0048CB42 +De-Activate DECHash.pas line 3643 BreakPoint at:0048CB42 +Adding coverage:DECHash.pas (DECHash) 3644 +Clearing BreakPoint at 0048CB48 +De-Activate DECHash.pas line 3644 BreakPoint at:0048CB48 +Adding coverage:DECHash.pas (DECHash) 3506 +Clearing BreakPoint at 0048C01F +De-Activate DECHash.pas line 3506 BreakPoint at:0048C01F +Adding coverage:DECHash.pas (DECHash) 3526 +Clearing BreakPoint at 0048C1BB +De-Activate DECHash.pas line 3526 BreakPoint at:0048C1BB +Adding coverage:DECHash.pas (DECHash) 3546 +Clearing BreakPoint at 0048C357 +De-Activate DECHash.pas line 3546 BreakPoint at:0048C357 +Adding coverage:DECHash.pas (DECHash) 3566 +Clearing BreakPoint at 0048C4F3 +De-Activate DECHash.pas line 3566 BreakPoint at:0048C4F3 +Adding coverage:DECHash.pas (DECHash) 3586 +Clearing BreakPoint at 0048C68F +De-Activate DECHash.pas line 3586 BreakPoint at:0048C68F +Adding coverage:DECHash.pas (DECHash) 3606 +Clearing BreakPoint at 0048C82B +De-Activate DECHash.pas line 3606 BreakPoint at:0048C82B +Adding coverage:DECHash.pas (DECHash) 3626 +Clearing BreakPoint at 0048C9C7 +De-Activate DECHash.pas line 3626 BreakPoint at:0048C9C7 +Adding coverage:DECHash.pas (DECHash) 3646 +Clearing BreakPoint at 0048CB63 +De-Activate DECHash.pas line 3646 BreakPoint at:0048CB63 +Adding coverage:DECHash.pas (DECHash) 3652 +Clearing BreakPoint at 0048CBB8 +De-Activate DECHash.pas line 3652 BreakPoint at:0048CBB8 +Adding coverage:DECHash.pas (DECHash) 3653 +Clearing BreakPoint at 0048CBD4 +De-Activate DECHash.pas line 3653 BreakPoint at:0048CBD4 +Adding coverage:DECHash.pas (DECHash) 3654 +Clearing BreakPoint at 0048CBF2 +De-Activate DECHash.pas line 3654 BreakPoint at:0048CBF2 +Adding coverage:DECHash.pas (DECHash) 3655 +Clearing BreakPoint at 0048CC10 +De-Activate DECHash.pas line 3655 BreakPoint at:0048CC10 +Adding coverage:DECHash.pas (DECHash) 3432 +Clearing BreakPoint at 0048BC42 +De-Activate DECHash.pas line 3432 BreakPoint at:0048BC42 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 3913 +Clearing BreakPoint at 0048DEC8 +De-Activate DECHash.pas line 3913 BreakPoint at:0048DEC8 +Adding coverage:DECHash.pas (DECHash) 3914 +Clearing BreakPoint at 0048DED1 +De-Activate DECHash.pas line 3914 BreakPoint at:0048DED1 +Adding coverage:DECHash.pas (DECHash) 3915 +Clearing BreakPoint at 0048DED8 +De-Activate DECHash.pas line 3915 BreakPoint at:0048DED8 +Adding coverage:DECHash.pas (DECHash) 3908 +Clearing BreakPoint at 0048DEAC +De-Activate DECHash.pas line 3908 BreakPoint at:0048DEAC +Adding coverage:DECHash.pas (DECHash) 3909 +Clearing BreakPoint at 0048DEB5 +De-Activate DECHash.pas line 3909 BreakPoint at:0048DEB5 +Adding coverage:DECHash.pas (DECHash) 3910 +Clearing BreakPoint at 0048DEC0 +De-Activate DECHash.pas line 3910 BreakPoint at:0048DEC0 +Adding coverage:DECHash.pas (DECHash) 3918 +Clearing BreakPoint at 0048DEE0 +De-Activate DECHash.pas line 3918 BreakPoint at:0048DEE0 +Adding coverage:DECHash.pas (DECHash) 3919 +Clearing BreakPoint at 0048DEE9 +De-Activate DECHash.pas line 3919 BreakPoint at:0048DEE9 +Adding coverage:DECHash.pas (DECHash) 3920 +Clearing BreakPoint at 0048DEF0 +De-Activate DECHash.pas line 3920 BreakPoint at:0048DEF0 +Adding coverage:DECHash.pas (DECHash) 3681 +Clearing BreakPoint at 0048CC78 +De-Activate DECHash.pas line 3681 BreakPoint at:0048CC78 +Adding coverage:DECHash.pas (DECHash) 3682 +Clearing BreakPoint at 0048CC7F +De-Activate DECHash.pas line 3682 BreakPoint at:0048CC7F +Adding coverage:DECHash.pas (DECHash) 3683 +Clearing BreakPoint at 0048CC91 +De-Activate DECHash.pas line 3683 BreakPoint at:0048CC91 +Adding coverage:DECHash.pas (DECHash) 3684 +Clearing BreakPoint at 0048CCA5 +De-Activate DECHash.pas line 3684 BreakPoint at:0048CCA5 +Adding coverage:DECHash.pas (DECHash) 3685 +Clearing BreakPoint at 0048CCB0 +De-Activate DECHash.pas line 3685 BreakPoint at:0048CCB0 +Adding coverage:DECHash.pas (DECHash) 3785 +Clearing BreakPoint at 0048D500 +De-Activate DECHash.pas line 3785 BreakPoint at:0048D500 +Adding coverage:DECHash.pas (DECHash) 3786 +Clearing BreakPoint at 0048D507 +De-Activate DECHash.pas line 3786 BreakPoint at:0048D507 +Adding coverage:DECHash.pas (DECHash) 3787 +Clearing BreakPoint at 0048D510 +De-Activate DECHash.pas line 3787 BreakPoint at:0048D510 +Adding coverage:DECHash.pas (DECHash) 3788 +Clearing BreakPoint at 0048D517 +De-Activate DECHash.pas line 3788 BreakPoint at:0048D517 +Adding coverage:DECHash.pas (DECHash) 3789 +Clearing BreakPoint at 0048D52C +De-Activate DECHash.pas line 3789 BreakPoint at:0048D52C +Adding coverage:DECHash.pas (DECHash) 3790 +Clearing BreakPoint at 0048D532 +De-Activate DECHash.pas line 3790 BreakPoint at:0048D532 +Adding coverage:DECHash.pas (DECHash) 3791 +Clearing BreakPoint at 0048D554 +De-Activate DECHash.pas line 3791 BreakPoint at:0048D554 +Adding coverage:DECHash.pas (DECHash) 3692 +Clearing BreakPoint at 0048CCB4 +De-Activate DECHash.pas line 3692 BreakPoint at:0048CCB4 +Adding coverage:DECHash.pas (DECHash) 3694 +Clearing BreakPoint at 0048CCC0 +De-Activate DECHash.pas line 3694 BreakPoint at:0048CCC0 +Adding coverage:DECHash.pas (DECHash) 3695 +Clearing BreakPoint at 0048CCCC +De-Activate DECHash.pas line 3695 BreakPoint at:0048CCCC +Adding coverage:DECHash.pas (DECHash) 3696 +Clearing BreakPoint at 0048CCD8 +De-Activate DECHash.pas line 3696 BreakPoint at:0048CCD8 +Adding coverage:DECHash.pas (DECHash) 3697 +Clearing BreakPoint at 0048CCF7 +De-Activate DECHash.pas line 3697 BreakPoint at:0048CCF7 +Adding coverage:DECHash.pas (DECHash) 3698 +Clearing BreakPoint at 0048CD16 +De-Activate DECHash.pas line 3698 BreakPoint at:0048CD16 +Adding coverage:DECHash.pas (DECHash) 3699 +Clearing BreakPoint at 0048CD35 +De-Activate DECHash.pas line 3699 BreakPoint at:0048CD35 +Adding coverage:DECHash.pas (DECHash) 3700 +Clearing BreakPoint at 0048CD54 +De-Activate DECHash.pas line 3700 BreakPoint at:0048CD54 +Adding coverage:DECHash.pas (DECHash) 3701 +Clearing BreakPoint at 0048CD73 +De-Activate DECHash.pas line 3701 BreakPoint at:0048CD73 +Adding coverage:DECHash.pas (DECHash) 3702 +Clearing BreakPoint at 0048CD92 +De-Activate DECHash.pas line 3702 BreakPoint at:0048CD92 +Adding coverage:DECHash.pas (DECHash) 3703 +Clearing BreakPoint at 0048CDB1 +De-Activate DECHash.pas line 3703 BreakPoint at:0048CDB1 +Adding coverage:DECHash.pas (DECHash) 3704 +Clearing BreakPoint at 0048CDD0 +De-Activate DECHash.pas line 3704 BreakPoint at:0048CDD0 +Adding coverage:DECHash.pas (DECHash) 3705 +Clearing BreakPoint at 0048CDEF +De-Activate DECHash.pas line 3705 BreakPoint at:0048CDEF +Adding coverage:DECHash.pas (DECHash) 3706 +Clearing BreakPoint at 0048CE0E +De-Activate DECHash.pas line 3706 BreakPoint at:0048CE0E +Adding coverage:DECHash.pas (DECHash) 3707 +Clearing BreakPoint at 0048CE2D +De-Activate DECHash.pas line 3707 BreakPoint at:0048CE2D +Adding coverage:DECHash.pas (DECHash) 3708 +Clearing BreakPoint at 0048CE4C +De-Activate DECHash.pas line 3708 BreakPoint at:0048CE4C +Adding coverage:DECHash.pas (DECHash) 3709 +Clearing BreakPoint at 0048CE6B +De-Activate DECHash.pas line 3709 BreakPoint at:0048CE6B +Adding coverage:DECHash.pas (DECHash) 3710 +Clearing BreakPoint at 0048CE8A +De-Activate DECHash.pas line 3710 BreakPoint at:0048CE8A +Adding coverage:DECHash.pas (DECHash) 3711 +Clearing BreakPoint at 0048CEA9 +De-Activate DECHash.pas line 3711 BreakPoint at:0048CEA9 +Adding coverage:DECHash.pas (DECHash) 3712 +Clearing BreakPoint at 0048CEC2 +De-Activate DECHash.pas line 3712 BreakPoint at:0048CEC2 +Adding coverage:DECHash.pas (DECHash) 3715 +Clearing BreakPoint at 0048CED3 +De-Activate DECHash.pas line 3715 BreakPoint at:0048CED3 +Adding coverage:DECHash.pas (DECHash) 3716 +Clearing BreakPoint at 0048CEDF +De-Activate DECHash.pas line 3716 BreakPoint at:0048CEDF +Adding coverage:DECHash.pas (DECHash) 3717 +Clearing BreakPoint at 0048CF01 +De-Activate DECHash.pas line 3717 BreakPoint at:0048CF01 +Adding coverage:DECHash.pas (DECHash) 3718 +Clearing BreakPoint at 0048CF24 +De-Activate DECHash.pas line 3718 BreakPoint at:0048CF24 +Adding coverage:DECHash.pas (DECHash) 3719 +Clearing BreakPoint at 0048CF47 +De-Activate DECHash.pas line 3719 BreakPoint at:0048CF47 +Adding coverage:DECHash.pas (DECHash) 3720 +Clearing BreakPoint at 0048CF6A +De-Activate DECHash.pas line 3720 BreakPoint at:0048CF6A +Adding coverage:DECHash.pas (DECHash) 3721 +Clearing BreakPoint at 0048CF8D +De-Activate DECHash.pas line 3721 BreakPoint at:0048CF8D +Adding coverage:DECHash.pas (DECHash) 3722 +Clearing BreakPoint at 0048CFB0 +De-Activate DECHash.pas line 3722 BreakPoint at:0048CFB0 +Adding coverage:DECHash.pas (DECHash) 3723 +Clearing BreakPoint at 0048CFD3 +De-Activate DECHash.pas line 3723 BreakPoint at:0048CFD3 +Adding coverage:DECHash.pas (DECHash) 3724 +Clearing BreakPoint at 0048CFF6 +De-Activate DECHash.pas line 3724 BreakPoint at:0048CFF6 +Adding coverage:DECHash.pas (DECHash) 3725 +Clearing BreakPoint at 0048D019 +De-Activate DECHash.pas line 3725 BreakPoint at:0048D019 +Adding coverage:DECHash.pas (DECHash) 3726 +Clearing BreakPoint at 0048D03C +De-Activate DECHash.pas line 3726 BreakPoint at:0048D03C +Adding coverage:DECHash.pas (DECHash) 3727 +Clearing BreakPoint at 0048D05F +De-Activate DECHash.pas line 3727 BreakPoint at:0048D05F +Adding coverage:DECHash.pas (DECHash) 3728 +Clearing BreakPoint at 0048D082 +De-Activate DECHash.pas line 3728 BreakPoint at:0048D082 +Adding coverage:DECHash.pas (DECHash) 3729 +Clearing BreakPoint at 0048D0A5 +De-Activate DECHash.pas line 3729 BreakPoint at:0048D0A5 +Adding coverage:DECHash.pas (DECHash) 3730 +Clearing BreakPoint at 0048D0C8 +De-Activate DECHash.pas line 3730 BreakPoint at:0048D0C8 +Adding coverage:DECHash.pas (DECHash) 3731 +Clearing BreakPoint at 0048D0EB +De-Activate DECHash.pas line 3731 BreakPoint at:0048D0EB +Adding coverage:DECHash.pas (DECHash) 3734 +Clearing BreakPoint at 0048D102 +De-Activate DECHash.pas line 3734 BreakPoint at:0048D102 +Adding coverage:DECHash.pas (DECHash) 3735 +Clearing BreakPoint at 0048D11E +De-Activate DECHash.pas line 3735 BreakPoint at:0048D11E +Adding coverage:DECHash.pas (DECHash) 3736 +Clearing BreakPoint at 0048D134 +De-Activate DECHash.pas line 3736 BreakPoint at:0048D134 +Adding coverage:DECHash.pas (DECHash) 3737 +Clearing BreakPoint at 0048D14A +De-Activate DECHash.pas line 3737 BreakPoint at:0048D14A +Adding coverage:DECHash.pas (DECHash) 3740 +Clearing BreakPoint at 0048D166 +De-Activate DECHash.pas line 3740 BreakPoint at:0048D166 +Adding coverage:DECHash.pas (DECHash) 3741 +Clearing BreakPoint at 0048D171 +De-Activate DECHash.pas line 3741 BreakPoint at:0048D171 +Adding coverage:DECHash.pas (DECHash) 3742 +Clearing BreakPoint at 0048D17D +De-Activate DECHash.pas line 3742 BreakPoint at:0048D17D +Adding coverage:DECHash.pas (DECHash) 3743 +Clearing BreakPoint at 0048D189 +De-Activate DECHash.pas line 3743 BreakPoint at:0048D189 +Adding coverage:DECHash.pas (DECHash) 3744 +Clearing BreakPoint at 0048D195 +De-Activate DECHash.pas line 3744 BreakPoint at:0048D195 +Adding coverage:DECHash.pas (DECHash) 3745 +Clearing BreakPoint at 0048D1A1 +De-Activate DECHash.pas line 3745 BreakPoint at:0048D1A1 +Adding coverage:DECHash.pas (DECHash) 3746 +Clearing BreakPoint at 0048D1AD +De-Activate DECHash.pas line 3746 BreakPoint at:0048D1AD +Adding coverage:DECHash.pas (DECHash) 3747 +Clearing BreakPoint at 0048D1B8 +De-Activate DECHash.pas line 3747 BreakPoint at:0048D1B8 +Adding coverage:DECHash.pas (DECHash) 3748 +Clearing BreakPoint at 0048D1C4 +De-Activate DECHash.pas line 3748 BreakPoint at:0048D1C4 +Adding coverage:DECHash.pas (DECHash) 3749 +Clearing BreakPoint at 0048D1CE +De-Activate DECHash.pas line 3749 BreakPoint at:0048D1CE +Adding coverage:DECHash.pas (DECHash) 3750 +Clearing BreakPoint at 0048D1DA +De-Activate DECHash.pas line 3750 BreakPoint at:0048D1DA +Adding coverage:DECHash.pas (DECHash) 3751 +Clearing BreakPoint at 0048D1E6 +De-Activate DECHash.pas line 3751 BreakPoint at:0048D1E6 +Adding coverage:DECHash.pas (DECHash) 3752 +Clearing BreakPoint at 0048D1F2 +De-Activate DECHash.pas line 3752 BreakPoint at:0048D1F2 +Adding coverage:DECHash.pas (DECHash) 3753 +Clearing BreakPoint at 0048D1FE +De-Activate DECHash.pas line 3753 BreakPoint at:0048D1FE +Adding coverage:DECHash.pas (DECHash) 3754 +Clearing BreakPoint at 0048D20A +De-Activate DECHash.pas line 3754 BreakPoint at:0048D20A +Adding coverage:DECHash.pas (DECHash) 3755 +Clearing BreakPoint at 0048D216 +De-Activate DECHash.pas line 3755 BreakPoint at:0048D216 +Adding coverage:DECHash.pas (DECHash) 3758 +Clearing BreakPoint at 0048D222 +De-Activate DECHash.pas line 3758 BreakPoint at:0048D222 +Adding coverage:DECHash.pas (DECHash) 3759 +Clearing BreakPoint at 0048D22E +De-Activate DECHash.pas line 3759 BreakPoint at:0048D22E +Adding coverage:DECHash.pas (DECHash) 3760 +Clearing BreakPoint at 0048D23A +De-Activate DECHash.pas line 3760 BreakPoint at:0048D23A +Adding coverage:DECHash.pas (DECHash) 3761 +Clearing BreakPoint at 0048D246 +De-Activate DECHash.pas line 3761 BreakPoint at:0048D246 +Adding coverage:DECHash.pas (DECHash) 3763 +Clearing BreakPoint at 0048D252 +De-Activate DECHash.pas line 3763 BreakPoint at:0048D252 +Adding coverage:DECHash.pas (DECHash) 3764 +Clearing BreakPoint at 0048D279 +De-Activate DECHash.pas line 3764 BreakPoint at:0048D279 +Adding coverage:DECHash.pas (DECHash) 3765 +Clearing BreakPoint at 0048D2A2 +De-Activate DECHash.pas line 3765 BreakPoint at:0048D2A2 +Adding coverage:DECHash.pas (DECHash) 3766 +Clearing BreakPoint at 0048D2CC +De-Activate DECHash.pas line 3766 BreakPoint at:0048D2CC +Adding coverage:DECHash.pas (DECHash) 3767 +Clearing BreakPoint at 0048D2F6 +De-Activate DECHash.pas line 3767 BreakPoint at:0048D2F6 +Adding coverage:DECHash.pas (DECHash) 3768 +Clearing BreakPoint at 0048D320 +De-Activate DECHash.pas line 3768 BreakPoint at:0048D320 +Adding coverage:DECHash.pas (DECHash) 3769 +Clearing BreakPoint at 0048D34A +De-Activate DECHash.pas line 3769 BreakPoint at:0048D34A +Adding coverage:DECHash.pas (DECHash) 3770 +Clearing BreakPoint at 0048D374 +De-Activate DECHash.pas line 3770 BreakPoint at:0048D374 +Adding coverage:DECHash.pas (DECHash) 3771 +Clearing BreakPoint at 0048D39E +De-Activate DECHash.pas line 3771 BreakPoint at:0048D39E +Adding coverage:DECHash.pas (DECHash) 3773 +Clearing BreakPoint at 0048D3C8 +De-Activate DECHash.pas line 3773 BreakPoint at:0048D3C8 +Adding coverage:DECHash.pas (DECHash) 3774 +Clearing BreakPoint at 0048D3F1 +De-Activate DECHash.pas line 3774 BreakPoint at:0048D3F1 +Adding coverage:DECHash.pas (DECHash) 3775 +Clearing BreakPoint at 0048D41B +De-Activate DECHash.pas line 3775 BreakPoint at:0048D41B +Adding coverage:DECHash.pas (DECHash) 3776 +Clearing BreakPoint at 0048D445 +De-Activate DECHash.pas line 3776 BreakPoint at:0048D445 +Adding coverage:DECHash.pas (DECHash) 3777 +Clearing BreakPoint at 0048D46F +De-Activate DECHash.pas line 3777 BreakPoint at:0048D46F +Adding coverage:DECHash.pas (DECHash) 3778 +Clearing BreakPoint at 0048D493 +De-Activate DECHash.pas line 3778 BreakPoint at:0048D493 +Adding coverage:DECHash.pas (DECHash) 3779 +Clearing BreakPoint at 0048D4B7 +De-Activate DECHash.pas line 3779 BreakPoint at:0048D4B7 +Adding coverage:DECHash.pas (DECHash) 3780 +Clearing BreakPoint at 0048D4DB +De-Activate DECHash.pas line 3780 BreakPoint at:0048D4DB +Adding coverage:DECHash.pas (DECHash) 3781 +Clearing BreakPoint at 0048D4F9 +De-Activate DECHash.pas line 3781 BreakPoint at:0048D4F9 +Adding coverage:DECHash.pas (DECHash) 3792 +Clearing BreakPoint at 0048D562 +De-Activate DECHash.pas line 3792 BreakPoint at:0048D562 +Adding coverage:DECHash.pas (DECHash) 3803 +Clearing BreakPoint at 0048D58C +De-Activate DECHash.pas line 3803 BreakPoint at:0048D58C +Adding coverage:DECHash.pas (DECHash) 3804 +Clearing BreakPoint at 0048D595 +De-Activate DECHash.pas line 3804 BreakPoint at:0048D595 +Adding coverage:DECHash.pas (DECHash) 3807 +Clearing BreakPoint at 0048D59A +De-Activate DECHash.pas line 3807 BreakPoint at:0048D59A +Adding coverage:DECHash.pas (DECHash) 3808 +Clearing BreakPoint at 0048D5B6 +De-Activate DECHash.pas line 3808 BreakPoint at:0048D5B6 +Adding coverage:DECHash.pas (DECHash) 3809 +Clearing BreakPoint at 0048D5D2 +De-Activate DECHash.pas line 3809 BreakPoint at:0048D5D2 +Adding coverage:DECHash.pas (DECHash) 3810 +Clearing BreakPoint at 0048D5E8 +De-Activate DECHash.pas line 3810 BreakPoint at:0048D5E8 +Adding coverage:DECHash.pas (DECHash) 3811 +Clearing BreakPoint at 0048D5FE +De-Activate DECHash.pas line 3811 BreakPoint at:0048D5FE +Adding coverage:DECHash.pas (DECHash) 3814 +Clearing BreakPoint at 0048D61A +De-Activate DECHash.pas line 3814 BreakPoint at:0048D61A +Adding coverage:DECHash.pas (DECHash) 3815 +Clearing BreakPoint at 0048D625 +De-Activate DECHash.pas line 3815 BreakPoint at:0048D625 +Adding coverage:DECHash.pas (DECHash) 3816 +Clearing BreakPoint at 0048D631 +De-Activate DECHash.pas line 3816 BreakPoint at:0048D631 +Adding coverage:DECHash.pas (DECHash) 3817 +Clearing BreakPoint at 0048D63D +De-Activate DECHash.pas line 3817 BreakPoint at:0048D63D +Adding coverage:DECHash.pas (DECHash) 3818 +Clearing BreakPoint at 0048D649 +De-Activate DECHash.pas line 3818 BreakPoint at:0048D649 +Adding coverage:DECHash.pas (DECHash) 3819 +Clearing BreakPoint at 0048D655 +De-Activate DECHash.pas line 3819 BreakPoint at:0048D655 +Adding coverage:DECHash.pas (DECHash) 3820 +Clearing BreakPoint at 0048D661 +De-Activate DECHash.pas line 3820 BreakPoint at:0048D661 +Adding coverage:DECHash.pas (DECHash) 3821 +Clearing BreakPoint at 0048D66C +De-Activate DECHash.pas line 3821 BreakPoint at:0048D66C +Adding coverage:DECHash.pas (DECHash) 3822 +Clearing BreakPoint at 0048D678 +De-Activate DECHash.pas line 3822 BreakPoint at:0048D678 +Adding coverage:DECHash.pas (DECHash) 3823 +Clearing BreakPoint at 0048D686 +De-Activate DECHash.pas line 3823 BreakPoint at:0048D686 +Adding coverage:DECHash.pas (DECHash) 3824 +Clearing BreakPoint at 0048D695 +De-Activate DECHash.pas line 3824 BreakPoint at:0048D695 +Adding coverage:DECHash.pas (DECHash) 3825 +Clearing BreakPoint at 0048D6A4 +De-Activate DECHash.pas line 3825 BreakPoint at:0048D6A4 +Adding coverage:DECHash.pas (DECHash) 3826 +Clearing BreakPoint at 0048D6B3 +De-Activate DECHash.pas line 3826 BreakPoint at:0048D6B3 +Adding coverage:DECHash.pas (DECHash) 3827 +Clearing BreakPoint at 0048D6C2 +De-Activate DECHash.pas line 3827 BreakPoint at:0048D6C2 +Adding coverage:DECHash.pas (DECHash) 3828 +Clearing BreakPoint at 0048D6D1 +De-Activate DECHash.pas line 3828 BreakPoint at:0048D6D1 +Adding coverage:DECHash.pas (DECHash) 3829 +Clearing BreakPoint at 0048D6E0 +De-Activate DECHash.pas line 3829 BreakPoint at:0048D6E0 +Adding coverage:DECHash.pas (DECHash) 3832 +Clearing BreakPoint at 0048D6EF +De-Activate DECHash.pas line 3832 BreakPoint at:0048D6EF +Adding coverage:DECHash.pas (DECHash) 3833 +Clearing BreakPoint at 0048D6FB +De-Activate DECHash.pas line 3833 BreakPoint at:0048D6FB +Adding coverage:DECHash.pas (DECHash) 3834 +Clearing BreakPoint at 0048D707 +De-Activate DECHash.pas line 3834 BreakPoint at:0048D707 +Adding coverage:DECHash.pas (DECHash) 3835 +Clearing BreakPoint at 0048D726 +De-Activate DECHash.pas line 3835 BreakPoint at:0048D726 +Adding coverage:DECHash.pas (DECHash) 3836 +Clearing BreakPoint at 0048D745 +De-Activate DECHash.pas line 3836 BreakPoint at:0048D745 +Adding coverage:DECHash.pas (DECHash) 3837 +Clearing BreakPoint at 0048D764 +De-Activate DECHash.pas line 3837 BreakPoint at:0048D764 +Adding coverage:DECHash.pas (DECHash) 3838 +Clearing BreakPoint at 0048D783 +De-Activate DECHash.pas line 3838 BreakPoint at:0048D783 +Adding coverage:DECHash.pas (DECHash) 3839 +Clearing BreakPoint at 0048D7A2 +De-Activate DECHash.pas line 3839 BreakPoint at:0048D7A2 +Adding coverage:DECHash.pas (DECHash) 3840 +Clearing BreakPoint at 0048D7C1 +De-Activate DECHash.pas line 3840 BreakPoint at:0048D7C1 +Adding coverage:DECHash.pas (DECHash) 3841 +Clearing BreakPoint at 0048D7E0 +De-Activate DECHash.pas line 3841 BreakPoint at:0048D7E0 +Adding coverage:DECHash.pas (DECHash) 3842 +Clearing BreakPoint at 0048D7FF +De-Activate DECHash.pas line 3842 BreakPoint at:0048D7FF +Adding coverage:DECHash.pas (DECHash) 3843 +Clearing BreakPoint at 0048D81E +De-Activate DECHash.pas line 3843 BreakPoint at:0048D81E +Adding coverage:DECHash.pas (DECHash) 3844 +Clearing BreakPoint at 0048D83D +De-Activate DECHash.pas line 3844 BreakPoint at:0048D83D +Adding coverage:DECHash.pas (DECHash) 3845 +Clearing BreakPoint at 0048D85C +De-Activate DECHash.pas line 3845 BreakPoint at:0048D85C +Adding coverage:DECHash.pas (DECHash) 3846 +Clearing BreakPoint at 0048D87B +De-Activate DECHash.pas line 3846 BreakPoint at:0048D87B +Adding coverage:DECHash.pas (DECHash) 3847 +Clearing BreakPoint at 0048D89A +De-Activate DECHash.pas line 3847 BreakPoint at:0048D89A +Adding coverage:DECHash.pas (DECHash) 3848 +Clearing BreakPoint at 0048D8B9 +De-Activate DECHash.pas line 3848 BreakPoint at:0048D8B9 +Adding coverage:DECHash.pas (DECHash) 3849 +Clearing BreakPoint at 0048D8D8 +De-Activate DECHash.pas line 3849 BreakPoint at:0048D8D8 +Adding coverage:DECHash.pas (DECHash) 3850 +Clearing BreakPoint at 0048D8F1 +De-Activate DECHash.pas line 3850 BreakPoint at:0048D8F1 +Adding coverage:DECHash.pas (DECHash) 3853 +Clearing BreakPoint at 0048D902 +De-Activate DECHash.pas line 3853 BreakPoint at:0048D902 +Adding coverage:DECHash.pas (DECHash) 3854 +Clearing BreakPoint at 0048D90E +De-Activate DECHash.pas line 3854 BreakPoint at:0048D90E +Adding coverage:DECHash.pas (DECHash) 3855 +Clearing BreakPoint at 0048D930 +De-Activate DECHash.pas line 3855 BreakPoint at:0048D930 +Adding coverage:DECHash.pas (DECHash) 3856 +Clearing BreakPoint at 0048D953 +De-Activate DECHash.pas line 3856 BreakPoint at:0048D953 +Adding coverage:DECHash.pas (DECHash) 3857 +Clearing BreakPoint at 0048D976 +De-Activate DECHash.pas line 3857 BreakPoint at:0048D976 +Adding coverage:DECHash.pas (DECHash) 3858 +Clearing BreakPoint at 0048D999 +De-Activate DECHash.pas line 3858 BreakPoint at:0048D999 +Adding coverage:DECHash.pas (DECHash) 3859 +Clearing BreakPoint at 0048D9BC +De-Activate DECHash.pas line 3859 BreakPoint at:0048D9BC +Adding coverage:DECHash.pas (DECHash) 3860 +Clearing BreakPoint at 0048D9DF +De-Activate DECHash.pas line 3860 BreakPoint at:0048D9DF +Adding coverage:DECHash.pas (DECHash) 3861 +Clearing BreakPoint at 0048DA02 +De-Activate DECHash.pas line 3861 BreakPoint at:0048DA02 +Adding coverage:DECHash.pas (DECHash) 3862 +Clearing BreakPoint at 0048DA25 +De-Activate DECHash.pas line 3862 BreakPoint at:0048DA25 +Adding coverage:DECHash.pas (DECHash) 3863 +Clearing BreakPoint at 0048DA48 +De-Activate DECHash.pas line 3863 BreakPoint at:0048DA48 +Adding coverage:DECHash.pas (DECHash) 3864 +Clearing BreakPoint at 0048DA6B +De-Activate DECHash.pas line 3864 BreakPoint at:0048DA6B +Adding coverage:DECHash.pas (DECHash) 3865 +Clearing BreakPoint at 0048DA8E +De-Activate DECHash.pas line 3865 BreakPoint at:0048DA8E +Adding coverage:DECHash.pas (DECHash) 3866 +Clearing BreakPoint at 0048DAB1 +De-Activate DECHash.pas line 3866 BreakPoint at:0048DAB1 +Adding coverage:DECHash.pas (DECHash) 3867 +Clearing BreakPoint at 0048DAD4 +De-Activate DECHash.pas line 3867 BreakPoint at:0048DAD4 +Adding coverage:DECHash.pas (DECHash) 3868 +Clearing BreakPoint at 0048DAF7 +De-Activate DECHash.pas line 3868 BreakPoint at:0048DAF7 +Adding coverage:DECHash.pas (DECHash) 3869 +Clearing BreakPoint at 0048DB1A +De-Activate DECHash.pas line 3869 BreakPoint at:0048DB1A +Adding coverage:DECHash.pas (DECHash) 3872 +Clearing BreakPoint at 0048DB31 +De-Activate DECHash.pas line 3872 BreakPoint at:0048DB31 +Adding coverage:DECHash.pas (DECHash) 3873 +Clearing BreakPoint at 0048DB3D +De-Activate DECHash.pas line 3873 BreakPoint at:0048DB3D +Adding coverage:DECHash.pas (DECHash) 3874 +Clearing BreakPoint at 0048DB49 +De-Activate DECHash.pas line 3874 BreakPoint at:0048DB49 +Adding coverage:DECHash.pas (DECHash) 3875 +Clearing BreakPoint at 0048DB55 +De-Activate DECHash.pas line 3875 BreakPoint at:0048DB55 +Adding coverage:DECHash.pas (DECHash) 3876 +Clearing BreakPoint at 0048DB61 +De-Activate DECHash.pas line 3876 BreakPoint at:0048DB61 +Adding coverage:DECHash.pas (DECHash) 3877 +Clearing BreakPoint at 0048DB88 +De-Activate DECHash.pas line 3877 BreakPoint at:0048DB88 +Adding coverage:DECHash.pas (DECHash) 3878 +Clearing BreakPoint at 0048DBB1 +De-Activate DECHash.pas line 3878 BreakPoint at:0048DBB1 +Adding coverage:DECHash.pas (DECHash) 3879 +Clearing BreakPoint at 0048DBDB +De-Activate DECHash.pas line 3879 BreakPoint at:0048DBDB +Adding coverage:DECHash.pas (DECHash) 3880 +Clearing BreakPoint at 0048DC05 +De-Activate DECHash.pas line 3880 BreakPoint at:0048DC05 +Adding coverage:DECHash.pas (DECHash) 3881 +Clearing BreakPoint at 0048DC2F +De-Activate DECHash.pas line 3881 BreakPoint at:0048DC2F +Adding coverage:DECHash.pas (DECHash) 3882 +Clearing BreakPoint at 0048DC59 +De-Activate DECHash.pas line 3882 BreakPoint at:0048DC59 +Adding coverage:DECHash.pas (DECHash) 3883 +Clearing BreakPoint at 0048DC83 +De-Activate DECHash.pas line 3883 BreakPoint at:0048DC83 +Adding coverage:DECHash.pas (DECHash) 3884 +Clearing BreakPoint at 0048DCAD +De-Activate DECHash.pas line 3884 BreakPoint at:0048DCAD +Adding coverage:DECHash.pas (DECHash) 3885 +Clearing BreakPoint at 0048DCD7 +De-Activate DECHash.pas line 3885 BreakPoint at:0048DCD7 +Adding coverage:DECHash.pas (DECHash) 3886 +Clearing BreakPoint at 0048DD00 +De-Activate DECHash.pas line 3886 BreakPoint at:0048DD00 +Adding coverage:DECHash.pas (DECHash) 3887 +Clearing BreakPoint at 0048DD2A +De-Activate DECHash.pas line 3887 BreakPoint at:0048DD2A +Adding coverage:DECHash.pas (DECHash) 3888 +Clearing BreakPoint at 0048DD54 +De-Activate DECHash.pas line 3888 BreakPoint at:0048DD54 +Adding coverage:DECHash.pas (DECHash) 3889 +Clearing BreakPoint at 0048DD7E +De-Activate DECHash.pas line 3889 BreakPoint at:0048DD7E +Adding coverage:DECHash.pas (DECHash) 3890 +Clearing BreakPoint at 0048DDA2 +De-Activate DECHash.pas line 3890 BreakPoint at:0048DDA2 +Adding coverage:DECHash.pas (DECHash) 3891 +Clearing BreakPoint at 0048DDC6 +De-Activate DECHash.pas line 3891 BreakPoint at:0048DDC6 +Adding coverage:DECHash.pas (DECHash) 3892 +Clearing BreakPoint at 0048DDEA +De-Activate DECHash.pas line 3892 BreakPoint at:0048DDEA +Adding coverage:DECHash.pas (DECHash) 3893 +Clearing BreakPoint at 0048DE08 +De-Activate DECHash.pas line 3893 BreakPoint at:0048DE08 +Adding coverage:DECHash.pas (DECHash) 3804 +Clearing BreakPoint at 0048DE0B +De-Activate DECHash.pas line 3804 BreakPoint at:0048DE0B +Adding coverage:DECHash.pas (DECHash) 3896 +Clearing BreakPoint at 0048DE15 +De-Activate DECHash.pas line 3896 BreakPoint at:0048DE15 +Adding coverage:DECHash.pas (DECHash) 3897 +Clearing BreakPoint at 0048DE27 +De-Activate DECHash.pas line 3897 BreakPoint at:0048DE27 +Adding coverage:DECHash.pas (DECHash) 3898 +Clearing BreakPoint at 0048DE39 +De-Activate DECHash.pas line 3898 BreakPoint at:0048DE39 +Adding coverage:DECHash.pas (DECHash) 3899 +Clearing BreakPoint at 0048DE4B +De-Activate DECHash.pas line 3899 BreakPoint at:0048DE4B +Adding coverage:DECHash.pas (DECHash) 3900 +Clearing BreakPoint at 0048DE5D +De-Activate DECHash.pas line 3900 BreakPoint at:0048DE5D +Adding coverage:DECHash.pas (DECHash) 3901 +Clearing BreakPoint at 0048DE6F +De-Activate DECHash.pas line 3901 BreakPoint at:0048DE6F +Adding coverage:DECHash.pas (DECHash) 3902 +Clearing BreakPoint at 0048DE81 +De-Activate DECHash.pas line 3902 BreakPoint at:0048DE81 +Adding coverage:DECHash.pas (DECHash) 3903 +Clearing BreakPoint at 0048DE93 +De-Activate DECHash.pas line 3903 BreakPoint at:0048DE93 +Adding coverage:DECHash.pas (DECHash) 3904 +Clearing BreakPoint at 0048DEA5 +De-Activate DECHash.pas line 3904 BreakPoint at:0048DEA5 +Adding coverage:DECHash.pas (DECHash) 3793 +Clearing BreakPoint at 0048D56A +De-Activate DECHash.pas line 3793 BreakPoint at:0048D56A +Adding coverage:DECHash.pas (DECHash) 3794 +Clearing BreakPoint at 0048D57C +De-Activate DECHash.pas line 3794 BreakPoint at:0048D57C +Adding coverage:DECHash.pas (DECHash) 3795 +Clearing BreakPoint at 0048D587 +De-Activate DECHash.pas line 3795 BreakPoint at:0048D587 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4120 +Clearing BreakPoint at 0048EEB4 +De-Activate DECHash.pas line 4120 BreakPoint at:0048EEB4 +Adding coverage:DECHash.pas (DECHash) 4121 +Clearing BreakPoint at 0048EEBD +De-Activate DECHash.pas line 4121 BreakPoint at:0048EEBD +Adding coverage:DECHash.pas (DECHash) 4122 +Clearing BreakPoint at 0048EEC4 +De-Activate DECHash.pas line 4122 BreakPoint at:0048EEC4 +Adding coverage:DECHash.pas (DECHash) 4115 +Clearing BreakPoint at 0048EE98 +De-Activate DECHash.pas line 4115 BreakPoint at:0048EE98 +Adding coverage:DECHash.pas (DECHash) 4116 +Clearing BreakPoint at 0048EEA1 +De-Activate DECHash.pas line 4116 BreakPoint at:0048EEA1 +Adding coverage:DECHash.pas (DECHash) 4117 +Clearing BreakPoint at 0048EEAA +De-Activate DECHash.pas line 4117 BreakPoint at:0048EEAA +Adding coverage:DECHash.pas (DECHash) 4125 +Clearing BreakPoint at 0048EECC +De-Activate DECHash.pas line 4125 BreakPoint at:0048EECC +Adding coverage:DECHash.pas (DECHash) 4126 +Clearing BreakPoint at 0048EED5 +De-Activate DECHash.pas line 4126 BreakPoint at:0048EED5 +Adding coverage:DECHash.pas (DECHash) 4127 +Clearing BreakPoint at 0048EEDC +De-Activate DECHash.pas line 4127 BreakPoint at:0048EEDC +Adding coverage:DECHash.pas (DECHash) 4132 +Clearing BreakPoint at 0048EEE4 +De-Activate DECHash.pas line 4132 BreakPoint at:0048EEE4 +Adding coverage:DECHash.pas (DECHash) 4133 +Clearing BreakPoint at 0048EEEB +De-Activate DECHash.pas line 4133 BreakPoint at:0048EEEB +Adding coverage:DECHash.pas (DECHash) 4134 +Clearing BreakPoint at 0048EEFD +De-Activate DECHash.pas line 4134 BreakPoint at:0048EEFD +Adding coverage:DECHash.pas (DECHash) 4135 +Clearing BreakPoint at 0048EF0B +De-Activate DECHash.pas line 4135 BreakPoint at:0048EF0B +Adding coverage:DECHash.pas (DECHash) 4136 +Clearing BreakPoint at 0048EF19 +De-Activate DECHash.pas line 4136 BreakPoint at:0048EF19 +Adding coverage:DECHash.pas (DECHash) 4097 +Clearing BreakPoint at 0048EDB8 +De-Activate DECHash.pas line 4097 BreakPoint at:0048EDB8 +Adding coverage:DECHash.pas (DECHash) 4098 +Clearing BreakPoint at 0048EDC1 +De-Activate DECHash.pas line 4098 BreakPoint at:0048EDC1 +Adding coverage:DECHash.pas (DECHash) 4099 +Clearing BreakPoint at 0048EDCA +De-Activate DECHash.pas line 4099 BreakPoint at:0048EDCA +Adding coverage:DECHash.pas (DECHash) 4100 +Clearing BreakPoint at 0048EDD1 +De-Activate DECHash.pas line 4100 BreakPoint at:0048EDD1 +Adding coverage:DECHash.pas (DECHash) 4101 +Clearing BreakPoint at 0048EDE6 +De-Activate DECHash.pas line 4101 BreakPoint at:0048EDE6 +Adding coverage:DECHash.pas (DECHash) 4102 +Clearing BreakPoint at 0048EDEC +De-Activate DECHash.pas line 4102 BreakPoint at:0048EDEC +Adding coverage:DECHash.pas (DECHash) 4108 +Clearing BreakPoint at 0048EE37 +De-Activate DECHash.pas line 4108 BreakPoint at:0048EE37 +Adding coverage:DECHash.pas (DECHash) 4109 +Clearing BreakPoint at 0048EE59 +De-Activate DECHash.pas line 4109 BreakPoint at:0048EE59 +Adding coverage:DECHash.pas (DECHash) 4110 +Clearing BreakPoint at 0048EE60 +De-Activate DECHash.pas line 4110 BreakPoint at:0048EE60 +Adding coverage:DECHash.pas (DECHash) 4109 +Clearing BreakPoint at 0048EE80 +De-Activate DECHash.pas line 4109 BreakPoint at:0048EE80 +Adding coverage:DECHash.pas (DECHash) 4111 +Clearing BreakPoint at 0048EE86 +De-Activate DECHash.pas line 4111 BreakPoint at:0048EE86 +Adding coverage:DECHash.pas (DECHash) 4067 +Clearing BreakPoint at 0048EB7C +De-Activate DECHash.pas line 4067 BreakPoint at:0048EB7C +Adding coverage:DECHash.pas (DECHash) 4068 +Clearing BreakPoint at 0048EB8B +De-Activate DECHash.pas line 4068 BreakPoint at:0048EB8B +Adding coverage:DECHash.pas (DECHash) 4070 +Clearing BreakPoint at 0048EBA1 +De-Activate DECHash.pas line 4070 BreakPoint at:0048EBA1 +Adding coverage:DECHash.pas (DECHash) 4071 +Clearing BreakPoint at 0048EBB7 +De-Activate DECHash.pas line 4071 BreakPoint at:0048EBB7 +Adding coverage:DECHash.pas (DECHash) 4074 +Clearing BreakPoint at 0048EBCE +De-Activate DECHash.pas line 4074 BreakPoint at:0048EBCE +Adding coverage:DECHash.pas (DECHash) 4076 +Clearing BreakPoint at 0048EBD3 +De-Activate DECHash.pas line 4076 BreakPoint at:0048EBD3 +Adding coverage:DECHash.pas (DECHash) 3933 +Clearing BreakPoint at 0048DEF8 +De-Activate DECHash.pas line 3933 BreakPoint at:0048DEF8 +Adding coverage:DECHash.pas (DECHash) 3934 +Clearing BreakPoint at 0048DF07 +De-Activate DECHash.pas line 3934 BreakPoint at:0048DF07 +Adding coverage:DECHash.pas (DECHash) 3942 +Clearing BreakPoint at 0048DFCC +De-Activate DECHash.pas line 3942 BreakPoint at:0048DFCC +Adding coverage:DECHash.pas (DECHash) 3950 +Clearing BreakPoint at 0048E093 +De-Activate DECHash.pas line 3950 BreakPoint at:0048E093 +Adding coverage:DECHash.pas (DECHash) 3958 +Clearing BreakPoint at 0048E159 +De-Activate DECHash.pas line 3958 BreakPoint at:0048E159 +Adding coverage:DECHash.pas (DECHash) 3966 +Clearing BreakPoint at 0048E220 +De-Activate DECHash.pas line 3966 BreakPoint at:0048E220 +Adding coverage:DECHash.pas (DECHash) 3974 +Clearing BreakPoint at 0048E2E6 +De-Activate DECHash.pas line 3974 BreakPoint at:0048E2E6 +Adding coverage:DECHash.pas (DECHash) 3982 +Clearing BreakPoint at 0048E3AD +De-Activate DECHash.pas line 3982 BreakPoint at:0048E3AD +Adding coverage:DECHash.pas (DECHash) 3990 +Clearing BreakPoint at 0048E473 +De-Activate DECHash.pas line 3990 BreakPoint at:0048E473 +Adding coverage:DECHash.pas (DECHash) 3998 +Clearing BreakPoint at 0048E53A +De-Activate DECHash.pas line 3998 BreakPoint at:0048E53A +Adding coverage:DECHash.pas (DECHash) 4006 +Clearing BreakPoint at 0048E601 +De-Activate DECHash.pas line 4006 BreakPoint at:0048E601 +Adding coverage:DECHash.pas (DECHash) 4014 +Clearing BreakPoint at 0048E6C9 +De-Activate DECHash.pas line 4014 BreakPoint at:0048E6C9 +Adding coverage:DECHash.pas (DECHash) 4022 +Clearing BreakPoint at 0048E790 +De-Activate DECHash.pas line 4022 BreakPoint at:0048E790 +Adding coverage:DECHash.pas (DECHash) 4030 +Clearing BreakPoint at 0048E858 +De-Activate DECHash.pas line 4030 BreakPoint at:0048E858 +Adding coverage:DECHash.pas (DECHash) 4038 +Clearing BreakPoint at 0048E91F +De-Activate DECHash.pas line 4038 BreakPoint at:0048E91F +Adding coverage:DECHash.pas (DECHash) 4046 +Clearing BreakPoint at 0048E9E7 +De-Activate DECHash.pas line 4046 BreakPoint at:0048E9E7 +Adding coverage:DECHash.pas (DECHash) 4054 +Clearing BreakPoint at 0048EAAE +De-Activate DECHash.pas line 4054 BreakPoint at:0048EAAE +Adding coverage:DECHash.pas (DECHash) 4062 +Clearing BreakPoint at 0048EB76 +De-Activate DECHash.pas line 4062 BreakPoint at:0048EB76 +Adding coverage:DECHash.pas (DECHash) 4077 +Clearing BreakPoint at 0048EBEF +De-Activate DECHash.pas line 4077 BreakPoint at:0048EBEF +Adding coverage:DECHash.pas (DECHash) 4078 +Clearing BreakPoint at 0048EC07 +De-Activate DECHash.pas line 4078 BreakPoint at:0048EC07 +Adding coverage:DECHash.pas (DECHash) 4079 +Clearing BreakPoint at 0048EC20 +De-Activate DECHash.pas line 4079 BreakPoint at:0048EC20 +Adding coverage:DECHash.pas (DECHash) 4080 +Clearing BreakPoint at 0048EC39 +De-Activate DECHash.pas line 4080 BreakPoint at:0048EC39 +Adding coverage:DECHash.pas (DECHash) 4082 +Clearing BreakPoint at 0048EC53 +De-Activate DECHash.pas line 4082 BreakPoint at:0048EC53 +Adding coverage:DECHash.pas (DECHash) 4083 +Clearing BreakPoint at 0048EC6F +De-Activate DECHash.pas line 4083 BreakPoint at:0048EC6F +Adding coverage:DECHash.pas (DECHash) 4084 +Clearing BreakPoint at 0048EC88 +De-Activate DECHash.pas line 4084 BreakPoint at:0048EC88 +Adding coverage:DECHash.pas (DECHash) 4085 +Clearing BreakPoint at 0048ECA1 +De-Activate DECHash.pas line 4085 BreakPoint at:0048ECA1 +Adding coverage:DECHash.pas (DECHash) 4086 +Clearing BreakPoint at 0048ECBA +De-Activate DECHash.pas line 4086 BreakPoint at:0048ECBA +Adding coverage:DECHash.pas (DECHash) 4087 +Clearing BreakPoint at 0048ECD4 +De-Activate DECHash.pas line 4087 BreakPoint at:0048ECD4 +Adding coverage:DECHash.pas (DECHash) 4074 +Clearing BreakPoint at 0048ECD7 +De-Activate DECHash.pas line 4074 BreakPoint at:0048ECD7 +Adding coverage:DECHash.pas (DECHash) 4089 +Clearing BreakPoint at 0048ECE1 +De-Activate DECHash.pas line 4089 BreakPoint at:0048ECE1 +Adding coverage:DECHash.pas (DECHash) 4090 +Clearing BreakPoint at 0048ECF5 +De-Activate DECHash.pas line 4090 BreakPoint at:0048ECF5 +Adding coverage:DECHash.pas (DECHash) 4091 +Clearing BreakPoint at 0048ED0F +De-Activate DECHash.pas line 4091 BreakPoint at:0048ED0F +Adding coverage:DECHash.pas (DECHash) 4112 +Clearing BreakPoint at 0048EE94 +De-Activate DECHash.pas line 4112 BreakPoint at:0048EE94 +Adding coverage:DECHash.pas (DECHash) 4104 +Clearing BreakPoint at 0048EDFF +De-Activate DECHash.pas line 4104 BreakPoint at:0048EDFF +Adding coverage:DECHash.pas (DECHash) 4105 +Clearing BreakPoint at 0048EE21 +De-Activate DECHash.pas line 4105 BreakPoint at:0048EE21 +Adding coverage:DECHash.pas (DECHash) 4106 +Clearing BreakPoint at 0048EE2F +De-Activate DECHash.pas line 4106 BreakPoint at:0048EE2F +Wait For Debug Event timed-out +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4141 +Clearing BreakPoint at 0048EF1C +De-Activate DECHash.pas line 4141 BreakPoint at:0048EF1C +Adding coverage:DECHash.pas (DECHash) 4142 +Clearing BreakPoint at 0048EF23 +De-Activate DECHash.pas line 4142 BreakPoint at:0048EF23 +Adding coverage:DECHash.pas (DECHash) 4143 +Clearing BreakPoint at 0048EF35 +De-Activate DECHash.pas line 4143 BreakPoint at:0048EF35 +Adding coverage:DECHash.pas (DECHash) 4144 +Clearing BreakPoint at 0048EF43 +De-Activate DECHash.pas line 4144 BreakPoint at:0048EF43 +Adding coverage:DECHash.pas (DECHash) 4145 +Clearing BreakPoint at 0048EF51 +De-Activate DECHash.pas line 4145 BreakPoint at:0048EF51 +Wait For Debug Event timed-out +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4150 +Clearing BreakPoint at 0048EF54 +De-Activate DECHash.pas line 4150 BreakPoint at:0048EF54 +Adding coverage:DECHash.pas (DECHash) 4151 +Clearing BreakPoint at 0048EF5B +De-Activate DECHash.pas line 4151 BreakPoint at:0048EF5B +Adding coverage:DECHash.pas (DECHash) 4152 +Clearing BreakPoint at 0048EF6D +De-Activate DECHash.pas line 4152 BreakPoint at:0048EF6D +Adding coverage:DECHash.pas (DECHash) 4153 +Clearing BreakPoint at 0048EF7B +De-Activate DECHash.pas line 4153 BreakPoint at:0048EF7B +Adding coverage:DECHash.pas (DECHash) 4154 +Clearing BreakPoint at 0048EF89 +De-Activate DECHash.pas line 4154 BreakPoint at:0048EF89 +Wait For Debug Event timed-out +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4279 +Clearing BreakPoint at 0048F760 +De-Activate DECHash.pas line 4279 BreakPoint at:0048F760 +Adding coverage:DECHash.pas (DECHash) 4280 +Clearing BreakPoint at 0048F769 +De-Activate DECHash.pas line 4280 BreakPoint at:0048F769 +Adding coverage:DECHash.pas (DECHash) 4281 +Clearing BreakPoint at 0048F770 +De-Activate DECHash.pas line 4281 BreakPoint at:0048F770 +Adding coverage:DECHash.pas (DECHash) 4274 +Clearing BreakPoint at 0048F744 +De-Activate DECHash.pas line 4274 BreakPoint at:0048F744 +Adding coverage:DECHash.pas (DECHash) 4275 +Clearing BreakPoint at 0048F74D +De-Activate DECHash.pas line 4275 BreakPoint at:0048F74D +Adding coverage:DECHash.pas (DECHash) 4276 +Clearing BreakPoint at 0048F756 +De-Activate DECHash.pas line 4276 BreakPoint at:0048F756 +Adding coverage:DECHash.pas (DECHash) 4284 +Clearing BreakPoint at 0048F778 +De-Activate DECHash.pas line 4284 BreakPoint at:0048F778 +Adding coverage:DECHash.pas (DECHash) 4285 +Clearing BreakPoint at 0048F781 +De-Activate DECHash.pas line 4285 BreakPoint at:0048F781 +Adding coverage:DECHash.pas (DECHash) 4286 +Clearing BreakPoint at 0048F788 +De-Activate DECHash.pas line 4286 BreakPoint at:0048F788 +Adding coverage:DECHash.pas (DECHash) 4159 +Clearing BreakPoint at 0048EF8C +De-Activate DECHash.pas line 4159 BreakPoint at:0048EF8C +Adding coverage:DECHash.pas (DECHash) 4160 +Clearing BreakPoint at 0048EF93 +De-Activate DECHash.pas line 4160 BreakPoint at:0048EF93 +Adding coverage:DECHash.pas (DECHash) 4161 +Clearing BreakPoint at 0048EFA5 +De-Activate DECHash.pas line 4161 BreakPoint at:0048EFA5 +Adding coverage:DECHash.pas (DECHash) 4256 +Clearing BreakPoint at 0048F664 +De-Activate DECHash.pas line 4256 BreakPoint at:0048F664 +Adding coverage:DECHash.pas (DECHash) 4257 +Clearing BreakPoint at 0048F66D +De-Activate DECHash.pas line 4257 BreakPoint at:0048F66D +Adding coverage:DECHash.pas (DECHash) 4258 +Clearing BreakPoint at 0048F676 +De-Activate DECHash.pas line 4258 BreakPoint at:0048F676 +Adding coverage:DECHash.pas (DECHash) 4259 +Clearing BreakPoint at 0048F67D +De-Activate DECHash.pas line 4259 BreakPoint at:0048F67D +Adding coverage:DECHash.pas (DECHash) 4260 +Clearing BreakPoint at 0048F692 +De-Activate DECHash.pas line 4260 BreakPoint at:0048F692 +Adding coverage:DECHash.pas (DECHash) 4261 +Clearing BreakPoint at 0048F698 +De-Activate DECHash.pas line 4261 BreakPoint at:0048F698 +Adding coverage:DECHash.pas (DECHash) 4267 +Clearing BreakPoint at 0048F6E3 +De-Activate DECHash.pas line 4267 BreakPoint at:0048F6E3 +Adding coverage:DECHash.pas (DECHash) 4268 +Clearing BreakPoint at 0048F705 +De-Activate DECHash.pas line 4268 BreakPoint at:0048F705 +Adding coverage:DECHash.pas (DECHash) 4269 +Clearing BreakPoint at 0048F70C +De-Activate DECHash.pas line 4269 BreakPoint at:0048F70C +Adding coverage:DECHash.pas (DECHash) 4268 +Clearing BreakPoint at 0048F72C +De-Activate DECHash.pas line 4268 BreakPoint at:0048F72C +Adding coverage:DECHash.pas (DECHash) 4270 +Clearing BreakPoint at 0048F732 +De-Activate DECHash.pas line 4270 BreakPoint at:0048F732 +Adding coverage:DECHash.pas (DECHash) 4170 +Clearing BreakPoint at 0048EFA8 +De-Activate DECHash.pas line 4170 BreakPoint at:0048EFA8 +Adding coverage:DECHash.pas (DECHash) 4172 +Clearing BreakPoint at 0048EFB7 +De-Activate DECHash.pas line 4172 BreakPoint at:0048EFB7 +Adding coverage:DECHash.pas (DECHash) 4173 +Clearing BreakPoint at 0048EFC3 +De-Activate DECHash.pas line 4173 BreakPoint at:0048EFC3 +Adding coverage:DECHash.pas (DECHash) 4174 +Clearing BreakPoint at 0048EFCF +De-Activate DECHash.pas line 4174 BreakPoint at:0048EFCF +Adding coverage:DECHash.pas (DECHash) 4175 +Clearing BreakPoint at 0048EFDB +De-Activate DECHash.pas line 4175 BreakPoint at:0048EFDB +Adding coverage:DECHash.pas (DECHash) 4177 +Clearing BreakPoint at 0048EFE7 +De-Activate DECHash.pas line 4177 BreakPoint at:0048EFE7 +Adding coverage:DECHash.pas (DECHash) 4179 +Clearing BreakPoint at 0048EFEE +De-Activate DECHash.pas line 4179 BreakPoint at:0048EFEE +Adding coverage:DECHash.pas (DECHash) 4180 +Clearing BreakPoint at 0048F035 +De-Activate DECHash.pas line 4180 BreakPoint at:0048F035 +Adding coverage:DECHash.pas (DECHash) 4181 +Clearing BreakPoint at 0048F059 +De-Activate DECHash.pas line 4181 BreakPoint at:0048F059 +Adding coverage:DECHash.pas (DECHash) 4182 +Clearing BreakPoint at 0048F07D +De-Activate DECHash.pas line 4182 BreakPoint at:0048F07D +Adding coverage:DECHash.pas (DECHash) 4184 +Clearing BreakPoint at 0048F0A1 +De-Activate DECHash.pas line 4184 BreakPoint at:0048F0A1 +Adding coverage:DECHash.pas (DECHash) 4188 +Clearing BreakPoint at 0048F127 +De-Activate DECHash.pas line 4188 BreakPoint at:0048F127 +Adding coverage:DECHash.pas (DECHash) 4192 +Clearing BreakPoint at 0048F1AD +De-Activate DECHash.pas line 4192 BreakPoint at:0048F1AD +Adding coverage:DECHash.pas (DECHash) 4196 +Clearing BreakPoint at 0048F233 +De-Activate DECHash.pas line 4196 BreakPoint at:0048F233 +Adding coverage:DECHash.pas (DECHash) 4200 +Clearing BreakPoint at 0048F2B9 +De-Activate DECHash.pas line 4200 BreakPoint at:0048F2B9 +Adding coverage:DECHash.pas (DECHash) 4177 +Clearing BreakPoint at 0048F2BC +De-Activate DECHash.pas line 4177 BreakPoint at:0048F2BC +Adding coverage:DECHash.pas (DECHash) 4203 +Clearing BreakPoint at 0048F2C6 +De-Activate DECHash.pas line 4203 BreakPoint at:0048F2C6 +Adding coverage:DECHash.pas (DECHash) 4204 +Clearing BreakPoint at 0048F2D4 +De-Activate DECHash.pas line 4204 BreakPoint at:0048F2D4 +Adding coverage:DECHash.pas (DECHash) 4205 +Clearing BreakPoint at 0048F2E3 +De-Activate DECHash.pas line 4205 BreakPoint at:0048F2E3 +Adding coverage:DECHash.pas (DECHash) 4206 +Clearing BreakPoint at 0048F2F2 +De-Activate DECHash.pas line 4206 BreakPoint at:0048F2F2 +Adding coverage:DECHash.pas (DECHash) 4208 +Clearing BreakPoint at 0048F301 +De-Activate DECHash.pas line 4208 BreakPoint at:0048F301 +Adding coverage:DECHash.pas (DECHash) 4210 +Clearing BreakPoint at 0048F306 +De-Activate DECHash.pas line 4210 BreakPoint at:0048F306 +Adding coverage:DECHash.pas (DECHash) 4214 +Clearing BreakPoint at 0048F368 +De-Activate DECHash.pas line 4214 BreakPoint at:0048F368 +Adding coverage:DECHash.pas (DECHash) 4218 +Clearing BreakPoint at 0048F3D6 +De-Activate DECHash.pas line 4218 BreakPoint at:0048F3D6 +Adding coverage:DECHash.pas (DECHash) 4222 +Clearing BreakPoint at 0048F444 +De-Activate DECHash.pas line 4222 BreakPoint at:0048F444 +Adding coverage:DECHash.pas (DECHash) 4227 +Clearing BreakPoint at 0048F49B +De-Activate DECHash.pas line 4227 BreakPoint at:0048F49B +Adding coverage:DECHash.pas (DECHash) 4228 +Clearing BreakPoint at 0048F4B3 +De-Activate DECHash.pas line 4228 BreakPoint at:0048F4B3 +Adding coverage:DECHash.pas (DECHash) 4208 +Clearing BreakPoint at 0048F4B6 +De-Activate DECHash.pas line 4208 BreakPoint at:0048F4B6 +Adding coverage:DECHash.pas (DECHash) 4230 +Clearing BreakPoint at 0048F4C0 +De-Activate DECHash.pas line 4230 BreakPoint at:0048F4C0 +Adding coverage:DECHash.pas (DECHash) 4235 +Clearing BreakPoint at 0048F524 +De-Activate DECHash.pas line 4235 BreakPoint at:0048F524 +Adding coverage:DECHash.pas (DECHash) 4240 +Clearing BreakPoint at 0048F595 +De-Activate DECHash.pas line 4240 BreakPoint at:0048F595 +Adding coverage:DECHash.pas (DECHash) 4245 +Clearing BreakPoint at 0048F606 +De-Activate DECHash.pas line 4245 BreakPoint at:0048F606 +Adding coverage:DECHash.pas (DECHash) 4250 +Clearing BreakPoint at 0048F660 +De-Activate DECHash.pas line 4250 BreakPoint at:0048F660 +Adding coverage:DECHash.pas (DECHash) 4271 +Clearing BreakPoint at 0048F740 +De-Activate DECHash.pas line 4271 BreakPoint at:0048F740 +Adding coverage:DECHash.pas (DECHash) 4263 +Clearing BreakPoint at 0048F6AB +De-Activate DECHash.pas line 4263 BreakPoint at:0048F6AB +Adding coverage:DECHash.pas (DECHash) 4264 +Clearing BreakPoint at 0048F6CD +De-Activate DECHash.pas line 4264 BreakPoint at:0048F6CD +Adding coverage:DECHash.pas (DECHash) 4265 +Clearing BreakPoint at 0048F6DB +De-Activate DECHash.pas line 4265 BreakPoint at:0048F6DB +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4389 +Clearing BreakPoint at 0048FBAC +De-Activate DECHash.pas line 4389 BreakPoint at:0048FBAC +Adding coverage:DECHash.pas (DECHash) 4390 +Clearing BreakPoint at 0048FBB5 +De-Activate DECHash.pas line 4390 BreakPoint at:0048FBB5 +Adding coverage:DECHash.pas (DECHash) 4391 +Clearing BreakPoint at 0048FBBC +De-Activate DECHash.pas line 4391 BreakPoint at:0048FBBC +Adding coverage:DECHash.pas (DECHash) 4334 +Clearing BreakPoint at 0048F908 +De-Activate DECHash.pas line 4334 BreakPoint at:0048F908 +Adding coverage:DECHash.pas (DECHash) 4335 +Clearing BreakPoint at 0048F911 +De-Activate DECHash.pas line 4335 BreakPoint at:0048F911 +Adding coverage:DECHash.pas (DECHash) 4336 +Clearing BreakPoint at 0048F91A +De-Activate DECHash.pas line 4336 BreakPoint at:0048F91A +Adding coverage:DECHash.pas (DECHash) 4394 +Clearing BreakPoint at 0048FBC4 +De-Activate DECHash.pas line 4394 BreakPoint at:0048FBC4 +Adding coverage:DECHash.pas (DECHash) 4395 +Clearing BreakPoint at 0048FBCD +De-Activate DECHash.pas line 4395 BreakPoint at:0048FBCD +Adding coverage:DECHash.pas (DECHash) 4396 +Clearing BreakPoint at 0048FBD4 +De-Activate DECHash.pas line 4396 BreakPoint at:0048FBD4 +Adding coverage:DECHash.pas (DECHash) 4309 +Clearing BreakPoint at 0048F808 +De-Activate DECHash.pas line 4309 BreakPoint at:0048F808 +Adding coverage:DECHash.pas (DECHash) 4310 +Clearing BreakPoint at 0048F811 +De-Activate DECHash.pas line 4310 BreakPoint at:0048F811 +Adding coverage:DECHash.pas (DECHash) 4311 +Clearing BreakPoint at 0048F818 +De-Activate DECHash.pas line 4311 BreakPoint at:0048F818 +Adding coverage:DECHash.pas (DECHash) 4304 +Clearing BreakPoint at 0048F7F0 +De-Activate DECHash.pas line 4304 BreakPoint at:0048F7F0 +Adding coverage:DECHash.pas (DECHash) 4305 +Clearing BreakPoint at 0048F7F9 +De-Activate DECHash.pas line 4305 BreakPoint at:0048F7F9 +Adding coverage:DECHash.pas (DECHash) 4306 +Clearing BreakPoint at 0048F800 +De-Activate DECHash.pas line 4306 BreakPoint at:0048F800 +Adding coverage:DECHash.pas (DECHash) 4291 +Clearing BreakPoint at 0048F790 +De-Activate DECHash.pas line 4291 BreakPoint at:0048F790 +Adding coverage:DECHash.pas (DECHash) 4292 +Clearing BreakPoint at 0048F79C +De-Activate DECHash.pas line 4292 BreakPoint at:0048F79C +Adding coverage:DECHash.pas (DECHash) 4294 +Clearing BreakPoint at 0048F7AF +De-Activate DECHash.pas line 4294 BreakPoint at:0048F7AF +Adding coverage:DECHash.pas (DECHash) 4295 +Clearing BreakPoint at 0048F7BB +De-Activate DECHash.pas line 4295 BreakPoint at:0048F7BB +Adding coverage:DECHash.pas (DECHash) 4314 +Clearing BreakPoint at 0048F820 +De-Activate DECHash.pas line 4314 BreakPoint at:0048F820 +Adding coverage:DECHash.pas (DECHash) 4315 +Clearing BreakPoint at 0048F829 +De-Activate DECHash.pas line 4315 BreakPoint at:0048F829 +Adding coverage:DECHash.pas (DECHash) 4316 +Clearing BreakPoint at 0048F835 +De-Activate DECHash.pas line 4316 BreakPoint at:0048F835 +Adding coverage:DECHash.pas (DECHash) 4293 +Clearing BreakPoint at 0048F7A8 +De-Activate DECHash.pas line 4293 BreakPoint at:0048F7A8 +Adding coverage:DECHash.pas (DECHash) 4298 +Clearing BreakPoint at 0048F7C0 +De-Activate DECHash.pas line 4298 BreakPoint at:0048F7C0 +Adding coverage:DECHash.pas (DECHash) 4299 +Clearing BreakPoint at 0048F7C7 +De-Activate DECHash.pas line 4299 BreakPoint at:0048F7C7 +Adding coverage:DECHash.pas (DECHash) 4300 +Clearing BreakPoint at 0048F7D9 +De-Activate DECHash.pas line 4300 BreakPoint at:0048F7D9 +Adding coverage:DECHash.pas (DECHash) 4301 +Clearing BreakPoint at 0048F7EA +De-Activate DECHash.pas line 4301 BreakPoint at:0048F7EA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1367 +Clearing BreakPoint at 00479F9B +De-Activate DECHashAuthentication.pas line 1367 BreakPoint at:00479F9B +Adding coverage:DECHash.pas (DECHash) 4319 +Clearing BreakPoint at 0048F83C +De-Activate DECHash.pas line 4319 BreakPoint at:0048F83C +Adding coverage:DECHash.pas (DECHash) 4320 +Clearing BreakPoint at 0048F843 +De-Activate DECHash.pas line 4320 BreakPoint at:0048F843 +Adding coverage:DECHash.pas (DECHash) 4326 +Clearing BreakPoint at 0048F884 +De-Activate DECHash.pas line 4326 BreakPoint at:0048F884 +Adding coverage:DECHash.pas (DECHash) 4327 +Clearing BreakPoint at 0048F8A6 +De-Activate DECHash.pas line 4327 BreakPoint at:0048F8A6 +Adding coverage:DECHash.pas (DECHash) 4328 +Clearing BreakPoint at 0048F8C3 +De-Activate DECHash.pas line 4328 BreakPoint at:0048F8C3 +Adding coverage:DECHash.pas (DECHash) 4329 +Clearing BreakPoint at 0048F8E0 +De-Activate DECHash.pas line 4329 BreakPoint at:0048F8E0 +Adding coverage:DECHash.pas (DECHash) 4347 +Clearing BreakPoint at 0048F924 +De-Activate DECHash.pas line 4347 BreakPoint at:0048F924 +Adding coverage:DECHash.pas (DECHash) 4348 +Clearing BreakPoint at 0048F931 +De-Activate DECHash.pas line 4348 BreakPoint at:0048F931 +Adding coverage:DECHash.pas (DECHash) 4349 +Clearing BreakPoint at 0048F93A +De-Activate DECHash.pas line 4349 BreakPoint at:0048F93A +Adding coverage:DECHash.pas (DECHash) 4350 +Clearing BreakPoint at 0048F94D +De-Activate DECHash.pas line 4350 BreakPoint at:0048F94D +Adding coverage:DECHash.pas (DECHash) 4351 +Clearing BreakPoint at 0048F960 +De-Activate DECHash.pas line 4351 BreakPoint at:0048F960 +Adding coverage:DECHash.pas (DECHash) 4352 +Clearing BreakPoint at 0048F968 +De-Activate DECHash.pas line 4352 BreakPoint at:0048F968 +Adding coverage:DECHash.pas (DECHash) 4353 +Clearing BreakPoint at 0048F975 +De-Activate DECHash.pas line 4353 BreakPoint at:0048F975 +Adding coverage:DECHash.pas (DECHash) 4355 +Clearing BreakPoint at 0048F992 +De-Activate DECHash.pas line 4355 BreakPoint at:0048F992 +Adding coverage:DECHash.pas (DECHash) 4357 +Clearing BreakPoint at 0048F997 +De-Activate DECHash.pas line 4357 BreakPoint at:0048F997 +Adding coverage:DECHash.pas (DECHash) 4358 +Clearing BreakPoint at 0048F99C +De-Activate DECHash.pas line 4358 BreakPoint at:0048F99C +Adding coverage:DECHash.pas (DECHash) 4359 +Clearing BreakPoint at 0048F9A4 +De-Activate DECHash.pas line 4359 BreakPoint at:0048F9A4 +Adding coverage:DECHash.pas (DECHash) 4361 +Clearing BreakPoint at 0048F9AE +De-Activate DECHash.pas line 4361 BreakPoint at:0048F9AE +Adding coverage:DECHash.pas (DECHash) 4362 +Clearing BreakPoint at 0048F9BF +De-Activate DECHash.pas line 4362 BreakPoint at:0048F9BF +Adding coverage:DECHash.pas (DECHash) 4363 +Clearing BreakPoint at 0048F9E4 +De-Activate DECHash.pas line 4363 BreakPoint at:0048F9E4 +Adding coverage:DECHash.pas (DECHash) 4364 +Clearing BreakPoint at 0048F9FC +De-Activate DECHash.pas line 4364 BreakPoint at:0048F9FC +Adding coverage:DECHash.pas (DECHash) 4365 +Clearing BreakPoint at 0048FA0D +De-Activate DECHash.pas line 4365 BreakPoint at:0048FA0D +Adding coverage:DECHash.pas (DECHash) 4366 +Clearing BreakPoint at 0048FA34 +De-Activate DECHash.pas line 4366 BreakPoint at:0048FA34 +Adding coverage:DECHash.pas (DECHash) 4367 +Clearing BreakPoint at 0048FA4C +De-Activate DECHash.pas line 4367 BreakPoint at:0048FA4C +Adding coverage:DECHash.pas (DECHash) 4368 +Clearing BreakPoint at 0048FA5D +De-Activate DECHash.pas line 4368 BreakPoint at:0048FA5D +Adding coverage:DECHash.pas (DECHash) 4369 +Clearing BreakPoint at 0048FA84 +De-Activate DECHash.pas line 4369 BreakPoint at:0048FA84 +Adding coverage:DECHash.pas (DECHash) 4370 +Clearing BreakPoint at 0048FA9C +De-Activate DECHash.pas line 4370 BreakPoint at:0048FA9C +Adding coverage:DECHash.pas (DECHash) 4371 +Clearing BreakPoint at 0048FAAD +De-Activate DECHash.pas line 4371 BreakPoint at:0048FAAD +Adding coverage:DECHash.pas (DECHash) 4372 +Clearing BreakPoint at 0048FAD4 +De-Activate DECHash.pas line 4372 BreakPoint at:0048FAD4 +Adding coverage:DECHash.pas (DECHash) 4373 +Clearing BreakPoint at 0048FAEC +De-Activate DECHash.pas line 4373 BreakPoint at:0048FAEC +Adding coverage:DECHash.pas (DECHash) 4359 +Clearing BreakPoint at 0048FAF0 +De-Activate DECHash.pas line 4359 BreakPoint at:0048FAF0 +Adding coverage:DECHash.pas (DECHash) 4375 +Clearing BreakPoint at 0048FAFA +De-Activate DECHash.pas line 4375 BreakPoint at:0048FAFA +Adding coverage:DECHash.pas (DECHash) 4376 +Clearing BreakPoint at 0048FB07 +De-Activate DECHash.pas line 4376 BreakPoint at:0048FB07 +Adding coverage:DECHash.pas (DECHash) 4377 +Clearing BreakPoint at 0048FB12 +De-Activate DECHash.pas line 4377 BreakPoint at:0048FB12 +Adding coverage:DECHash.pas (DECHash) 4378 +Clearing BreakPoint at 0048FB17 +De-Activate DECHash.pas line 4378 BreakPoint at:0048FB17 +Adding coverage:DECHash.pas (DECHash) 4377 +Clearing BreakPoint at 0048FB41 +De-Activate DECHash.pas line 4377 BreakPoint at:0048FB41 +Adding coverage:DECHash.pas (DECHash) 4379 +Clearing BreakPoint at 0048FB47 +De-Activate DECHash.pas line 4379 BreakPoint at:0048FB47 +Adding coverage:DECHash.pas (DECHash) 4355 +Clearing BreakPoint at 0048FB4A +De-Activate DECHash.pas line 4355 BreakPoint at:0048FB4A +Adding coverage:DECHash.pas (DECHash) 4380 +Clearing BreakPoint at 0048FB54 +De-Activate DECHash.pas line 4380 BreakPoint at:0048FB54 +Adding coverage:DECHash.pas (DECHash) 4381 +Clearing BreakPoint at 0048FB5F +De-Activate DECHash.pas line 4381 BreakPoint at:0048FB5F +Adding coverage:DECHash.pas (DECHash) 4382 +Clearing BreakPoint at 0048FB6A +De-Activate DECHash.pas line 4382 BreakPoint at:0048FB6A +Adding coverage:DECHash.pas (DECHash) 4353 +Clearing BreakPoint at 0048FB6D +De-Activate DECHash.pas line 4353 BreakPoint at:0048FB6D +Adding coverage:DECHash.pas (DECHash) 4383 +Clearing BreakPoint at 0048FB76 +De-Activate DECHash.pas line 4383 BreakPoint at:0048FB76 +Adding coverage:DECHash.pas (DECHash) 4384 +Clearing BreakPoint at 0048FB7B +De-Activate DECHash.pas line 4384 BreakPoint at:0048FB7B +Adding coverage:DECHash.pas (DECHash) 4383 +Clearing BreakPoint at 0048FB9F +De-Activate DECHash.pas line 4383 BreakPoint at:0048FB9F +Adding coverage:DECHash.pas (DECHash) 4385 +Clearing BreakPoint at 0048FBA5 +De-Activate DECHash.pas line 4385 BreakPoint at:0048FBA5 +Adding coverage:DECHash.pas (DECHash) 4330 +Clearing BreakPoint at 0048F8EE +De-Activate DECHash.pas line 4330 BreakPoint at:0048F8EE +Adding coverage:DECHash.pas (DECHash) 4331 +Clearing BreakPoint at 0048F904 +De-Activate DECHash.pas line 4331 BreakPoint at:0048F904 +Adding coverage:DECHash.pas (DECHash) 4322 +Clearing BreakPoint at 0048F84C +De-Activate DECHash.pas line 4322 BreakPoint at:0048F84C +Adding coverage:DECHash.pas (DECHash) 4323 +Clearing BreakPoint at 0048F86E +De-Activate DECHash.pas line 4323 BreakPoint at:0048F86E +Adding coverage:DECHash.pas (DECHash) 4324 +Clearing BreakPoint at 0048F87C +De-Activate DECHash.pas line 4324 BreakPoint at:0048F87C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1444 +Clearing BreakPoint at 0047A430 +De-Activate DECHashAuthentication.pas line 1444 BreakPoint at:0047A430 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4449 +Clearing BreakPoint at 0048FE64 +De-Activate DECHash.pas line 4449 BreakPoint at:0048FE64 +Adding coverage:DECHash.pas (DECHash) 4450 +Clearing BreakPoint at 0048FE6D +De-Activate DECHash.pas line 4450 BreakPoint at:0048FE6D +Adding coverage:DECHash.pas (DECHash) 4451 +Clearing BreakPoint at 0048FE74 +De-Activate DECHash.pas line 4451 BreakPoint at:0048FE74 +Adding coverage:DECHash.pas (DECHash) 4454 +Clearing BreakPoint at 0048FE7C +De-Activate DECHash.pas line 4454 BreakPoint at:0048FE7C +Adding coverage:DECHash.pas (DECHash) 4455 +Clearing BreakPoint at 0048FE85 +De-Activate DECHash.pas line 4455 BreakPoint at:0048FE85 +Adding coverage:DECHash.pas (DECHash) 4456 +Clearing BreakPoint at 0048FE8C +De-Activate DECHash.pas line 4456 BreakPoint at:0048FE8C +Adding coverage:DECHash.pas (DECHash) 4407 +Clearing BreakPoint at 0048FBDC +De-Activate DECHash.pas line 4407 BreakPoint at:0048FBDC +Adding coverage:DECHash.pas (DECHash) 4408 +Clearing BreakPoint at 0048FBE9 +De-Activate DECHash.pas line 4408 BreakPoint at:0048FBE9 +Adding coverage:DECHash.pas (DECHash) 4409 +Clearing BreakPoint at 0048FBF2 +De-Activate DECHash.pas line 4409 BreakPoint at:0048FBF2 +Adding coverage:DECHash.pas (DECHash) 4410 +Clearing BreakPoint at 0048FC05 +De-Activate DECHash.pas line 4410 BreakPoint at:0048FC05 +Adding coverage:DECHash.pas (DECHash) 4411 +Clearing BreakPoint at 0048FC18 +De-Activate DECHash.pas line 4411 BreakPoint at:0048FC18 +Adding coverage:DECHash.pas (DECHash) 4412 +Clearing BreakPoint at 0048FC20 +De-Activate DECHash.pas line 4412 BreakPoint at:0048FC20 +Adding coverage:DECHash.pas (DECHash) 4413 +Clearing BreakPoint at 0048FC2D +De-Activate DECHash.pas line 4413 BreakPoint at:0048FC2D +Adding coverage:DECHash.pas (DECHash) 4415 +Clearing BreakPoint at 0048FC4A +De-Activate DECHash.pas line 4415 BreakPoint at:0048FC4A +Adding coverage:DECHash.pas (DECHash) 4417 +Clearing BreakPoint at 0048FC4F +De-Activate DECHash.pas line 4417 BreakPoint at:0048FC4F +Adding coverage:DECHash.pas (DECHash) 4418 +Clearing BreakPoint at 0048FC54 +De-Activate DECHash.pas line 4418 BreakPoint at:0048FC54 +Adding coverage:DECHash.pas (DECHash) 4419 +Clearing BreakPoint at 0048FC5C +De-Activate DECHash.pas line 4419 BreakPoint at:0048FC5C +Adding coverage:DECHash.pas (DECHash) 4421 +Clearing BreakPoint at 0048FC66 +De-Activate DECHash.pas line 4421 BreakPoint at:0048FC66 +Adding coverage:DECHash.pas (DECHash) 4422 +Clearing BreakPoint at 0048FC77 +De-Activate DECHash.pas line 4422 BreakPoint at:0048FC77 +Adding coverage:DECHash.pas (DECHash) 4423 +Clearing BreakPoint at 0048FC9C +De-Activate DECHash.pas line 4423 BreakPoint at:0048FC9C +Adding coverage:DECHash.pas (DECHash) 4424 +Clearing BreakPoint at 0048FCB4 +De-Activate DECHash.pas line 4424 BreakPoint at:0048FCB4 +Adding coverage:DECHash.pas (DECHash) 4425 +Clearing BreakPoint at 0048FCC5 +De-Activate DECHash.pas line 4425 BreakPoint at:0048FCC5 +Adding coverage:DECHash.pas (DECHash) 4426 +Clearing BreakPoint at 0048FCEC +De-Activate DECHash.pas line 4426 BreakPoint at:0048FCEC +Adding coverage:DECHash.pas (DECHash) 4427 +Clearing BreakPoint at 0048FD04 +De-Activate DECHash.pas line 4427 BreakPoint at:0048FD04 +Adding coverage:DECHash.pas (DECHash) 4428 +Clearing BreakPoint at 0048FD15 +De-Activate DECHash.pas line 4428 BreakPoint at:0048FD15 +Adding coverage:DECHash.pas (DECHash) 4429 +Clearing BreakPoint at 0048FD3C +De-Activate DECHash.pas line 4429 BreakPoint at:0048FD3C +Adding coverage:DECHash.pas (DECHash) 4430 +Clearing BreakPoint at 0048FD54 +De-Activate DECHash.pas line 4430 BreakPoint at:0048FD54 +Adding coverage:DECHash.pas (DECHash) 4431 +Clearing BreakPoint at 0048FD65 +De-Activate DECHash.pas line 4431 BreakPoint at:0048FD65 +Adding coverage:DECHash.pas (DECHash) 4432 +Clearing BreakPoint at 0048FD8C +De-Activate DECHash.pas line 4432 BreakPoint at:0048FD8C +Adding coverage:DECHash.pas (DECHash) 4433 +Clearing BreakPoint at 0048FDA4 +De-Activate DECHash.pas line 4433 BreakPoint at:0048FDA4 +Adding coverage:DECHash.pas (DECHash) 4419 +Clearing BreakPoint at 0048FDA8 +De-Activate DECHash.pas line 4419 BreakPoint at:0048FDA8 +Adding coverage:DECHash.pas (DECHash) 4435 +Clearing BreakPoint at 0048FDB2 +De-Activate DECHash.pas line 4435 BreakPoint at:0048FDB2 +Adding coverage:DECHash.pas (DECHash) 4436 +Clearing BreakPoint at 0048FDBF +De-Activate DECHash.pas line 4436 BreakPoint at:0048FDBF +Adding coverage:DECHash.pas (DECHash) 4437 +Clearing BreakPoint at 0048FDCA +De-Activate DECHash.pas line 4437 BreakPoint at:0048FDCA +Adding coverage:DECHash.pas (DECHash) 4438 +Clearing BreakPoint at 0048FDCF +De-Activate DECHash.pas line 4438 BreakPoint at:0048FDCF +Adding coverage:DECHash.pas (DECHash) 4437 +Clearing BreakPoint at 0048FDF9 +De-Activate DECHash.pas line 4437 BreakPoint at:0048FDF9 +Adding coverage:DECHash.pas (DECHash) 4439 +Clearing BreakPoint at 0048FDFF +De-Activate DECHash.pas line 4439 BreakPoint at:0048FDFF +Adding coverage:DECHash.pas (DECHash) 4415 +Clearing BreakPoint at 0048FE02 +De-Activate DECHash.pas line 4415 BreakPoint at:0048FE02 +Adding coverage:DECHash.pas (DECHash) 4440 +Clearing BreakPoint at 0048FE0C +De-Activate DECHash.pas line 4440 BreakPoint at:0048FE0C +Adding coverage:DECHash.pas (DECHash) 4441 +Clearing BreakPoint at 0048FE17 +De-Activate DECHash.pas line 4441 BreakPoint at:0048FE17 +Adding coverage:DECHash.pas (DECHash) 4442 +Clearing BreakPoint at 0048FE22 +De-Activate DECHash.pas line 4442 BreakPoint at:0048FE22 +Adding coverage:DECHash.pas (DECHash) 4413 +Clearing BreakPoint at 0048FE25 +De-Activate DECHash.pas line 4413 BreakPoint at:0048FE25 +Adding coverage:DECHash.pas (DECHash) 4443 +Clearing BreakPoint at 0048FE2E +De-Activate DECHash.pas line 4443 BreakPoint at:0048FE2E +Adding coverage:DECHash.pas (DECHash) 4444 +Clearing BreakPoint at 0048FE33 +De-Activate DECHash.pas line 4444 BreakPoint at:0048FE33 +Adding coverage:DECHash.pas (DECHash) 4443 +Clearing BreakPoint at 0048FE57 +De-Activate DECHash.pas line 4443 BreakPoint at:0048FE57 +Adding coverage:DECHash.pas (DECHash) 4445 +Clearing BreakPoint at 0048FE5D +De-Activate DECHash.pas line 4445 BreakPoint at:0048FE5D +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4559 +Clearing BreakPoint at 0049021C +De-Activate DECHash.pas line 4559 BreakPoint at:0049021C +Adding coverage:DECHash.pas (DECHash) 4560 +Clearing BreakPoint at 00490225 +De-Activate DECHash.pas line 4560 BreakPoint at:00490225 +Adding coverage:DECHash.pas (DECHash) 4561 +Clearing BreakPoint at 0049022C +De-Activate DECHash.pas line 4561 BreakPoint at:0049022C +Adding coverage:DECHash.pas (DECHash) 4540 +Clearing BreakPoint at 00490194 +De-Activate DECHash.pas line 4540 BreakPoint at:00490194 +Adding coverage:DECHash.pas (DECHash) 4541 +Clearing BreakPoint at 0049019D +De-Activate DECHash.pas line 4541 BreakPoint at:0049019D +Adding coverage:DECHash.pas (DECHash) 4542 +Clearing BreakPoint at 004901A8 +De-Activate DECHash.pas line 4542 BreakPoint at:004901A8 +Adding coverage:DECHash.pas (DECHash) 4564 +Clearing BreakPoint at 00490234 +De-Activate DECHash.pas line 4564 BreakPoint at:00490234 +Adding coverage:DECHash.pas (DECHash) 4565 +Clearing BreakPoint at 0049023D +De-Activate DECHash.pas line 4565 BreakPoint at:0049023D +Adding coverage:DECHash.pas (DECHash) 4566 +Clearing BreakPoint at 00490244 +De-Activate DECHash.pas line 4566 BreakPoint at:00490244 +Adding coverage:DECHash.pas (DECHash) 4482 +Clearing BreakPoint at 0048FF2C +De-Activate DECHash.pas line 4482 BreakPoint at:0048FF2C +Adding coverage:DECHash.pas (DECHash) 4483 +Clearing BreakPoint at 0048FF38 +De-Activate DECHash.pas line 4483 BreakPoint at:0048FF38 +Adding coverage:DECHash.pas (DECHash) 4484 +Clearing BreakPoint at 0048FF44 +De-Activate DECHash.pas line 4484 BreakPoint at:0048FF44 +Adding coverage:DECHash.pas (DECHash) 4487 +Clearing BreakPoint at 0048FF63 +De-Activate DECHash.pas line 4487 BreakPoint at:0048FF63 +Adding coverage:DECHash.pas (DECHash) 4463 +Clearing BreakPoint at 0048FE94 +De-Activate DECHash.pas line 4463 BreakPoint at:0048FE94 +Adding coverage:DECHash.pas (DECHash) 4464 +Clearing BreakPoint at 0048FE9D +De-Activate DECHash.pas line 4464 BreakPoint at:0048FE9D +Adding coverage:DECHash.pas (DECHash) 4465 +Clearing BreakPoint at 0048FEB1 +De-Activate DECHash.pas line 4465 BreakPoint at:0048FEB1 +Adding coverage:DECHash.pas (DECHash) 4466 +Clearing BreakPoint at 0048FEBE +De-Activate DECHash.pas line 4466 BreakPoint at:0048FEBE +Adding coverage:DECHash.pas (DECHash) 4467 +Clearing BreakPoint at 0048FECB +De-Activate DECHash.pas line 4467 BreakPoint at:0048FECB +Adding coverage:DECHash.pas (DECHash) 4468 +Clearing BreakPoint at 0048FED8 +De-Activate DECHash.pas line 4468 BreakPoint at:0048FED8 +Adding coverage:DECHash.pas (DECHash) 4469 +Clearing BreakPoint at 0048FEE5 +De-Activate DECHash.pas line 4469 BreakPoint at:0048FEE5 +Adding coverage:DECHash.pas (DECHash) 4470 +Clearing BreakPoint at 0048FEF2 +De-Activate DECHash.pas line 4470 BreakPoint at:0048FEF2 +Adding coverage:DECHash.pas (DECHash) 4471 +Clearing BreakPoint at 0048FEF7 +De-Activate DECHash.pas line 4471 BreakPoint at:0048FEF7 +Adding coverage:DECHash.pas (DECHash) 4470 +Clearing BreakPoint at 0048FF0C +De-Activate DECHash.pas line 4470 BreakPoint at:0048FF0C +Adding coverage:DECHash.pas (DECHash) 4472 +Clearing BreakPoint at 0048FF15 +De-Activate DECHash.pas line 4472 BreakPoint at:0048FF15 +Adding coverage:DECHash.pas (DECHash) 4492 +Clearing BreakPoint at 0048FF68 +De-Activate DECHash.pas line 4492 BreakPoint at:0048FF68 +Adding coverage:DECHash.pas (DECHash) 4493 +Clearing BreakPoint at 0048FF72 +De-Activate DECHash.pas line 4493 BreakPoint at:0048FF72 +Adding coverage:DECHash.pas (DECHash) 4494 +Clearing BreakPoint at 0048FF79 +De-Activate DECHash.pas line 4494 BreakPoint at:0048FF79 +Adding coverage:DECHash.pas (DECHash) 4507 +Clearing BreakPoint at 0048FFF4 +De-Activate DECHash.pas line 4507 BreakPoint at:0048FFF4 +Adding coverage:DECHash.pas (DECHash) 4508 +Clearing BreakPoint at 00490003 +De-Activate DECHash.pas line 4508 BreakPoint at:00490003 +Adding coverage:DECHash.pas (DECHash) 4509 +Clearing BreakPoint at 00490009 +De-Activate DECHash.pas line 4509 BreakPoint at:00490009 +Adding coverage:DECHash.pas (DECHash) 4510 +Clearing BreakPoint at 00490015 +De-Activate DECHash.pas line 4510 BreakPoint at:00490015 +Adding coverage:DECHash.pas (DECHash) 4511 +Clearing BreakPoint at 00490021 +De-Activate DECHash.pas line 4511 BreakPoint at:00490021 +Adding coverage:DECHash.pas (DECHash) 4512 +Clearing BreakPoint at 0049002D +De-Activate DECHash.pas line 4512 BreakPoint at:0049002D +Adding coverage:DECHash.pas (DECHash) 4513 +Clearing BreakPoint at 00490039 +De-Activate DECHash.pas line 4513 BreakPoint at:00490039 +Adding coverage:DECHash.pas (DECHash) 4515 +Clearing BreakPoint at 00490045 +De-Activate DECHash.pas line 4515 BreakPoint at:00490045 +Adding coverage:DECHash.pas (DECHash) 4517 +Clearing BreakPoint at 0049004F +De-Activate DECHash.pas line 4517 BreakPoint at:0049004F +Adding coverage:DECHash.pas (DECHash) 4518 +Clearing BreakPoint at 00490052 +De-Activate DECHash.pas line 4518 BreakPoint at:00490052 +Adding coverage:DECHash.pas (DECHash) 4519 +Clearing BreakPoint at 00490067 +De-Activate DECHash.pas line 4519 BreakPoint at:00490067 +Adding coverage:DECHash.pas (DECHash) 4520 +Clearing BreakPoint at 00490073 +De-Activate DECHash.pas line 4520 BreakPoint at:00490073 +Adding coverage:DECHash.pas (DECHash) 4521 +Clearing BreakPoint at 00490080 +De-Activate DECHash.pas line 4521 BreakPoint at:00490080 +Adding coverage:DECHash.pas (DECHash) 4522 +Clearing BreakPoint at 00490094 +De-Activate DECHash.pas line 4522 BreakPoint at:00490094 +Adding coverage:DECHash.pas (DECHash) 4523 +Clearing BreakPoint at 004900A8 +De-Activate DECHash.pas line 4523 BreakPoint at:004900A8 +Adding coverage:DECHash.pas (DECHash) 4524 +Clearing BreakPoint at 004900BC +De-Activate DECHash.pas line 4524 BreakPoint at:004900BC +Adding coverage:DECHash.pas (DECHash) 4525 +Clearing BreakPoint at 004900C9 +De-Activate DECHash.pas line 4525 BreakPoint at:004900C9 +Adding coverage:DECHash.pas (DECHash) 4526 +Clearing BreakPoint at 004900DE +De-Activate DECHash.pas line 4526 BreakPoint at:004900DE +Adding coverage:DECHash.pas (DECHash) 4527 +Clearing BreakPoint at 00490104 +De-Activate DECHash.pas line 4527 BreakPoint at:00490104 +Adding coverage:DECHash.pas (DECHash) 4528 +Clearing BreakPoint at 00490110 +De-Activate DECHash.pas line 4528 BreakPoint at:00490110 +Adding coverage:DECHash.pas (DECHash) 4515 +Clearing BreakPoint at 00490149 +De-Activate DECHash.pas line 4515 BreakPoint at:00490149 +Adding coverage:DECHash.pas (DECHash) 4531 +Clearing BreakPoint at 00490153 +De-Activate DECHash.pas line 4531 BreakPoint at:00490153 +Adding coverage:DECHash.pas (DECHash) 4532 +Clearing BreakPoint at 0049015F +De-Activate DECHash.pas line 4532 BreakPoint at:0049015F +Adding coverage:DECHash.pas (DECHash) 4533 +Clearing BreakPoint at 0049016B +De-Activate DECHash.pas line 4533 BreakPoint at:0049016B +Adding coverage:DECHash.pas (DECHash) 4534 +Clearing BreakPoint at 00490177 +De-Activate DECHash.pas line 4534 BreakPoint at:00490177 +Adding coverage:DECHash.pas (DECHash) 4535 +Clearing BreakPoint at 00490183 +De-Activate DECHash.pas line 4535 BreakPoint at:00490183 +Adding coverage:DECHash.pas (DECHash) 4536 +Clearing BreakPoint at 0049018F +De-Activate DECHash.pas line 4536 BreakPoint at:0049018F +Adding coverage:DECHash.pas (DECHash) 4493 +Clearing BreakPoint at 0048FF8C +De-Activate DECHash.pas line 4493 BreakPoint at:0048FF8C +Adding coverage:DECHash.pas (DECHash) 4495 +Clearing BreakPoint at 0048FF92 +De-Activate DECHash.pas line 4495 BreakPoint at:0048FF92 +Adding coverage:DECHash.pas (DECHash) 4497 +Clearing BreakPoint at 0048FFAA +De-Activate DECHash.pas line 4497 BreakPoint at:0048FFAA +Adding coverage:DECHash.pas (DECHash) 4498 +Clearing BreakPoint at 0048FFBC +De-Activate DECHash.pas line 4498 BreakPoint at:0048FFBC +Adding coverage:DECHash.pas (DECHash) 4499 +Clearing BreakPoint at 0048FFD3 +De-Activate DECHash.pas line 4499 BreakPoint at:0048FFD3 +Adding coverage:DECHash.pas (DECHash) 4495 +Clearing BreakPoint at 0048FFD6 +De-Activate DECHash.pas line 4495 BreakPoint at:0048FFD6 +Adding coverage:DECHash.pas (DECHash) 4500 +Clearing BreakPoint at 0048FFDB +De-Activate DECHash.pas line 4500 BreakPoint at:0048FFDB +Adding coverage:DECHash.pas (DECHash) 4547 +Clearing BreakPoint at 004901B0 +De-Activate DECHash.pas line 4547 BreakPoint at:004901B0 +Adding coverage:DECHash.pas (DECHash) 4548 +Clearing BreakPoint at 004901BC +De-Activate DECHash.pas line 4548 BreakPoint at:004901BC +Adding coverage:DECHash.pas (DECHash) 4549 +Clearing BreakPoint at 004901C8 +De-Activate DECHash.pas line 4549 BreakPoint at:004901C8 +Adding coverage:DECHash.pas (DECHash) 4553 +Clearing BreakPoint at 004901E2 +De-Activate DECHash.pas line 4553 BreakPoint at:004901E2 +Adding coverage:DECHash.pas (DECHash) 4554 +Clearing BreakPoint at 004901FC +De-Activate DECHash.pas line 4554 BreakPoint at:004901FC +Adding coverage:DECHash.pas (DECHash) 4555 +Clearing BreakPoint at 00490202 +De-Activate DECHash.pas line 4555 BreakPoint at:00490202 +Adding coverage:DECHash.pas (DECHash) 4556 +Clearing BreakPoint at 00490217 +De-Activate DECHash.pas line 4556 BreakPoint at:00490217 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5264 +Clearing BreakPoint at 004925C8 +De-Activate DECHash.pas line 5264 BreakPoint at:004925C8 +Adding coverage:DECHash.pas (DECHash) 5265 +Clearing BreakPoint at 004925D1 +De-Activate DECHash.pas line 5265 BreakPoint at:004925D1 +Adding coverage:DECHash.pas (DECHash) 5266 +Clearing BreakPoint at 004925D8 +De-Activate DECHash.pas line 5266 BreakPoint at:004925D8 +Adding coverage:DECHash.pas (DECHash) 5589 +Clearing BreakPoint at 004931A8 +De-Activate DECHash.pas line 5589 BreakPoint at:004931A8 +Adding coverage:DECHash.pas (DECHash) 5590 +Clearing BreakPoint at 004931B1 +De-Activate DECHash.pas line 5590 BreakPoint at:004931B1 +Adding coverage:DECHash.pas (DECHash) 5591 +Clearing BreakPoint at 004931B5 +De-Activate DECHash.pas line 5591 BreakPoint at:004931B5 +Adding coverage:DECHash.pas (DECHash) 5599 +Clearing BreakPoint at 004931D0 +De-Activate DECHash.pas line 5599 BreakPoint at:004931D0 +Adding coverage:DECHash.pas (DECHash) 5600 +Clearing BreakPoint at 004931D9 +De-Activate DECHash.pas line 5600 BreakPoint at:004931D9 +Adding coverage:DECHash.pas (DECHash) 5601 +Clearing BreakPoint at 004931DD +De-Activate DECHash.pas line 5601 BreakPoint at:004931DD +Adding coverage:DECHash.pas (DECHash) 5584 +Clearing BreakPoint at 00493194 +De-Activate DECHash.pas line 5584 BreakPoint at:00493194 +Adding coverage:DECHash.pas (DECHash) 5585 +Clearing BreakPoint at 0049319D +De-Activate DECHash.pas line 5585 BreakPoint at:0049319D +Adding coverage:DECHash.pas (DECHash) 5586 +Clearing BreakPoint at 004931A1 +De-Activate DECHash.pas line 5586 BreakPoint at:004931A1 +Adding coverage:DECHash.pas (DECHash) 5609 +Clearing BreakPoint at 004931F8 +De-Activate DECHash.pas line 5609 BreakPoint at:004931F8 +Adding coverage:DECHash.pas (DECHash) 5610 +Clearing BreakPoint at 00493217 +De-Activate DECHash.pas line 5610 BreakPoint at:00493217 +Adding coverage:DECHash.pas (DECHash) 5613 +Clearing BreakPoint at 00493271 +De-Activate DECHash.pas line 5613 BreakPoint at:00493271 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004932C0 +Exact line:DECHash line 5614 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEE9C +Exact line:TestDECHash line 6142 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C31D4 +Exact line:TestDECHash line 6392 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004932C0 +Exact line:DECHash line 5614 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEE84 +Exact line:TestDECHash line 6137 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C31B0 +Exact line:TestDECHash line 6387 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5611 +Clearing BreakPoint at 00493263 +De-Activate DECHash.pas line 5611 BreakPoint at:00493263 +Adding coverage:DECHash.pas (DECHash) 5614 +Clearing BreakPoint at 004932C0 +De-Activate DECHash.pas line 5614 BreakPoint at:004932C0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1602 +Clearing BreakPoint at 0047AC58 +De-Activate DECHashAuthentication.pas line 1602 BreakPoint at:0047AC58 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1603 +Clearing BreakPoint at 0047AC7B +De-Activate DECHashAuthentication.pas line 1603 BreakPoint at:0047AC7B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1618 +Clearing BreakPoint at 0047ACD8 +De-Activate DECHashAuthentication.pas line 1618 BreakPoint at:0047ACD8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1623 +Clearing BreakPoint at 0047AD0B +De-Activate DECHashAuthentication.pas line 1623 BreakPoint at:0047AD0B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1624 +Clearing BreakPoint at 0047AD16 +De-Activate DECHashAuthentication.pas line 1624 BreakPoint at:0047AD16 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1626 +Clearing BreakPoint at 0047AD22 +De-Activate DECHashAuthentication.pas line 1626 BreakPoint at:0047AD22 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1629 +Clearing BreakPoint at 0047AD3A +De-Activate DECHashAuthentication.pas line 1629 BreakPoint at:0047AD3A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1631 +Clearing BreakPoint at 0047AD58 +De-Activate DECHashAuthentication.pas line 1631 BreakPoint at:0047AD58 +Adding coverage:DECHash.pas (DECHash) 5434 +Clearing BreakPoint at 00492CE0 +De-Activate DECHash.pas line 5434 BreakPoint at:00492CE0 +Adding coverage:DECHash.pas (DECHash) 5435 +Clearing BreakPoint at 00492CEF +De-Activate DECHash.pas line 5435 BreakPoint at:00492CEF +Adding coverage:DECHash.pas (DECHash) 5436 +Clearing BreakPoint at 00492CFA +De-Activate DECHash.pas line 5436 BreakPoint at:00492CFA +Adding coverage:DECHash.pas (DECHash) 5437 +Clearing BreakPoint at 00492D19 +De-Activate DECHash.pas line 5437 BreakPoint at:00492D19 +Adding coverage:DECHash.pas (DECHash) 5439 +Clearing BreakPoint at 00492D2B +De-Activate DECHash.pas line 5439 BreakPoint at:00492D2B +Adding coverage:DECHash.pas (DECHash) 5440 +Clearing BreakPoint at 00492D3D +De-Activate DECHash.pas line 5440 BreakPoint at:00492D3D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1549 +Clearing BreakPoint at 0047A980 +De-Activate DECHashAuthentication.pas line 1549 BreakPoint at:0047A980 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1550 +Clearing BreakPoint at 0047A9A6 +De-Activate DECHashAuthentication.pas line 1550 BreakPoint at:0047A9A6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1552 +Clearing BreakPoint at 0047A9B4 +De-Activate DECHashAuthentication.pas line 1552 BreakPoint at:0047A9B4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1553 +Clearing BreakPoint at 0047A9F8 +De-Activate DECHashAuthentication.pas line 1553 BreakPoint at:0047A9F8 +Adding coverage:DECHash.pas (DECHash) 5414 +Clearing BreakPoint at 00492B80 +De-Activate DECHash.pas line 5414 BreakPoint at:00492B80 +Adding coverage:DECHash.pas (DECHash) 5415 +Clearing BreakPoint at 00492BAE +De-Activate DECHash.pas line 5415 BreakPoint at:00492BAE +Adding coverage:DECHash.pas (DECHash) 5416 +Clearing BreakPoint at 00492BBD +De-Activate DECHash.pas line 5416 BreakPoint at:00492BBD +Adding coverage:DECHash.pas (DECHash) 5417 +Clearing BreakPoint at 00492BCB +De-Activate DECHash.pas line 5417 BreakPoint at:00492BCB +Adding coverage:DECHash.pas (DECHash) 5418 +Clearing BreakPoint at 00492BEA +De-Activate DECHash.pas line 5418 BreakPoint at:00492BEA +Adding coverage:DECHash.pas (DECHash) 5421 +Clearing BreakPoint at 00492BF5 +De-Activate DECHash.pas line 5421 BreakPoint at:00492BF5 +Adding coverage:DECHash.pas (DECHash) 5569 +Clearing BreakPoint at 00493128 +De-Activate DECHash.pas line 5569 BreakPoint at:00493128 +Adding coverage:DECHash.pas (DECHash) 5570 +Clearing BreakPoint at 00493131 +De-Activate DECHash.pas line 5570 BreakPoint at:00493131 +Adding coverage:DECHash.pas (DECHash) 5571 +Clearing BreakPoint at 00493143 +De-Activate DECHash.pas line 5571 BreakPoint at:00493143 +Adding coverage:DECHash.pas (DECHash) 5573 +Clearing BreakPoint at 00493155 +De-Activate DECHash.pas line 5573 BreakPoint at:00493155 +Adding coverage:DECHash.pas (DECHash) 5574 +Clearing BreakPoint at 00493168 +De-Activate DECHash.pas line 5574 BreakPoint at:00493168 +Adding coverage:DECHash.pas (DECHash) 5575 +Clearing BreakPoint at 0049317E +De-Activate DECHash.pas line 5575 BreakPoint at:0049317E +Adding coverage:DECHash.pas (DECHash) 5276 +Clearing BreakPoint at 004925E0 +De-Activate DECHash.pas line 5276 BreakPoint at:004925E0 +Adding coverage:DECHash.pas (DECHash) 5277 +Clearing BreakPoint at 00492609 +De-Activate DECHash.pas line 5277 BreakPoint at:00492609 +Adding coverage:DECHash.pas (DECHash) 5282 +Clearing BreakPoint at 00492656 +De-Activate DECHash.pas line 5282 BreakPoint at:00492656 +Adding coverage:DECHash.pas (DECHash) 5287 +Clearing BreakPoint at 00492717 +De-Activate DECHash.pas line 5287 BreakPoint at:00492717 +Adding coverage:DECHash.pas (DECHash) 5288 +Clearing BreakPoint at 0049273B +De-Activate DECHash.pas line 5288 BreakPoint at:0049273B +Adding coverage:DECHash.pas (DECHash) 5290 +Clearing BreakPoint at 0049275B +De-Activate DECHash.pas line 5290 BreakPoint at:0049275B +Adding coverage:DECHash.pas (DECHash) 5310 +Clearing BreakPoint at 00492810 +De-Activate DECHash.pas line 5310 BreakPoint at:00492810 +Adding coverage:DECHash.pas (DECHash) 5312 +Clearing BreakPoint at 0049281F +De-Activate DECHash.pas line 5312 BreakPoint at:0049281F +Adding coverage:DECHash.pas (DECHash) 5315 +Clearing BreakPoint at 00492834 +De-Activate DECHash.pas line 5315 BreakPoint at:00492834 +Adding coverage:DECHash.pas (DECHash) 5318 +Clearing BreakPoint at 0049285A +De-Activate DECHash.pas line 5318 BreakPoint at:0049285A +Adding coverage:DECHash.pas (DECHash) 5339 +Clearing BreakPoint at 004928B4 +De-Activate DECHash.pas line 5339 BreakPoint at:004928B4 +Adding coverage:DECHash.pas (DECHash) 5340 +Clearing BreakPoint at 004928DA +De-Activate DECHash.pas line 5340 BreakPoint at:004928DA +Adding coverage:DECHash.pas (DECHash) 5352 +Clearing BreakPoint at 004928F5 +De-Activate DECHash.pas line 5352 BreakPoint at:004928F5 +Adding coverage:DECHash.pas (DECHash) 5353 +Clearing BreakPoint at 004928FA +De-Activate DECHash.pas line 5353 BreakPoint at:004928FA +Adding coverage:DECHash.pas (DECHash) 5355 +Clearing BreakPoint at 004928FF +De-Activate DECHash.pas line 5355 BreakPoint at:004928FF +Adding coverage:DECHash.pas (DECHash) 5356 +Clearing BreakPoint at 00492904 +De-Activate DECHash.pas line 5356 BreakPoint at:00492904 +Adding coverage:DECHash.pas (DECHash) 5358 +Clearing BreakPoint at 00492909 +De-Activate DECHash.pas line 5358 BreakPoint at:00492909 +Adding coverage:DECHash.pas (DECHash) 5359 +Clearing BreakPoint at 00492928 +De-Activate DECHash.pas line 5359 BreakPoint at:00492928 +Adding coverage:DECHash.pas (DECHash) 5361 +Clearing BreakPoint at 00492933 +De-Activate DECHash.pas line 5361 BreakPoint at:00492933 +Adding coverage:DECHash.pas (DECHash) 5362 +Clearing BreakPoint at 0049293B +De-Activate DECHash.pas line 5362 BreakPoint at:0049293B +Adding coverage:DECHash.pas (DECHash) 5363 +Clearing BreakPoint at 00492940 +De-Activate DECHash.pas line 5363 BreakPoint at:00492940 +Adding coverage:DECHash.pas (DECHash) 5356 +Clearing BreakPoint at 00492943 +De-Activate DECHash.pas line 5356 BreakPoint at:00492943 +Adding coverage:DECHash.pas (DECHash) 5365 +Clearing BreakPoint at 00492949 +De-Activate DECHash.pas line 5365 BreakPoint at:00492949 +Adding coverage:DECHash.pas (DECHash) 5366 +Clearing BreakPoint at 00492963 +De-Activate DECHash.pas line 5366 BreakPoint at:00492963 +Adding coverage:DECHash.pas (DECHash) 5353 +Clearing BreakPoint at 00492966 +De-Activate DECHash.pas line 5353 BreakPoint at:00492966 +Adding coverage:DECHash.pas (DECHash) 5370 +Clearing BreakPoint at 0049296C +De-Activate DECHash.pas line 5370 BreakPoint at:0049296C +Adding coverage:DECHash.pas (DECHash) 5503 +Clearing BreakPoint at 00492E90 +De-Activate DECHash.pas line 5503 BreakPoint at:00492E90 +Adding coverage:DECHash.pas (DECHash) 5504 +Clearing BreakPoint at 00492E9F +De-Activate DECHash.pas line 5504 BreakPoint at:00492E9F +Adding coverage:DECHash.pas (DECHash) 5505 +Clearing BreakPoint at 00492EB5 +De-Activate DECHash.pas line 5505 BreakPoint at:00492EB5 +Adding coverage:DECHash.pas (DECHash) 5506 +Clearing BreakPoint at 00492EC3 +De-Activate DECHash.pas line 5506 BreakPoint at:00492EC3 +Adding coverage:DECHash.pas (DECHash) 5510 +Clearing BreakPoint at 00492ECE +De-Activate DECHash.pas line 5510 BreakPoint at:00492ECE +Adding coverage:DECHash.pas (DECHash) 5516 +Clearing BreakPoint at 00492ED5 +De-Activate DECHash.pas line 5516 BreakPoint at:00492ED5 +Adding coverage:DECHash.pas (DECHash) 5520 +Clearing BreakPoint at 00492F61 +De-Activate DECHash.pas line 5520 BreakPoint at:00492F61 +Adding coverage:DECHash.pas (DECHash) 5521 +Clearing BreakPoint at 00492F65 +De-Activate DECHash.pas line 5521 BreakPoint at:00492F65 +Adding coverage:DECHash.pas (DECHash) 5525 +Clearing BreakPoint at 00492FF1 +De-Activate DECHash.pas line 5525 BreakPoint at:00492FF1 +Adding coverage:DECHash.pas (DECHash) 5526 +Clearing BreakPoint at 00492FF5 +De-Activate DECHash.pas line 5526 BreakPoint at:00492FF5 +Adding coverage:DECHash.pas (DECHash) 5510 +Clearing BreakPoint at 00492FF8 +De-Activate DECHash.pas line 5510 BreakPoint at:00492FF8 +Adding coverage:DECHash.pas (DECHash) 5529 +Clearing BreakPoint at 00493002 +De-Activate DECHash.pas line 5529 BreakPoint at:00493002 +Adding coverage:DECHash.pas (DECHash) 5530 +Clearing BreakPoint at 00493010 +De-Activate DECHash.pas line 5530 BreakPoint at:00493010 +Adding coverage:DECHash.pas (DECHash) 5531 +Clearing BreakPoint at 00493022 +De-Activate DECHash.pas line 5531 BreakPoint at:00493022 +Adding coverage:DECHash.pas (DECHash) 5373 +Clearing BreakPoint at 0049298F +De-Activate DECHash.pas line 5373 BreakPoint at:0049298F +Adding coverage:DECHash.pas (DECHash) 5374 +Clearing BreakPoint at 004929A0 +De-Activate DECHash.pas line 5374 BreakPoint at:004929A0 +Adding coverage:DECHash.pas (DECHash) 5382 +Clearing BreakPoint at 004929B1 +De-Activate DECHash.pas line 5382 BreakPoint at:004929B1 +Adding coverage:DECHash.pas (DECHash) 5383 +Clearing BreakPoint at 004929B8 +De-Activate DECHash.pas line 5383 BreakPoint at:004929B8 +Adding coverage:DECHash.pas (DECHash) 5385 +Clearing BreakPoint at 004929BF +De-Activate DECHash.pas line 5385 BreakPoint at:004929BF +Adding coverage:DECHash.pas (DECHash) 5534 +Clearing BreakPoint at 00493028 +De-Activate DECHash.pas line 5534 BreakPoint at:00493028 +Adding coverage:DECHash.pas (DECHash) 5535 +Clearing BreakPoint at 00493037 +De-Activate DECHash.pas line 5535 BreakPoint at:00493037 +Adding coverage:DECHash.pas (DECHash) 5536 +Clearing BreakPoint at 00493046 +De-Activate DECHash.pas line 5536 BreakPoint at:00493046 +Adding coverage:DECHash.pas (DECHash) 5537 +Clearing BreakPoint at 00493058 +De-Activate DECHash.pas line 5537 BreakPoint at:00493058 +Adding coverage:DECHash.pas (DECHash) 5386 +Clearing BreakPoint at 004929E7 +De-Activate DECHash.pas line 5386 BreakPoint at:004929E7 +Adding coverage:DECHash.pas (DECHash) 5387 +Clearing BreakPoint at 004929EB +De-Activate DECHash.pas line 5387 BreakPoint at:004929EB +Adding coverage:DECHash.pas (DECHash) 5388 +Clearing BreakPoint at 004929F9 +De-Activate DECHash.pas line 5388 BreakPoint at:004929F9 +Adding coverage:DECHash.pas (DECHash) 5389 +Clearing BreakPoint at 00492A20 +De-Activate DECHash.pas line 5389 BreakPoint at:00492A20 +Adding coverage:DECHash.pas (DECHash) 5390 +Clearing BreakPoint at 00492A51 +De-Activate DECHash.pas line 5390 BreakPoint at:00492A51 +Adding coverage:DECHash.pas (DECHash) 5383 +Clearing BreakPoint at 00492A54 +De-Activate DECHash.pas line 5383 BreakPoint at:00492A54 +Adding coverage:DECHash.pas (DECHash) 5395 +Clearing BreakPoint at 00492A5E +De-Activate DECHash.pas line 5395 BreakPoint at:00492A5E +Adding coverage:DECHash.pas (DECHash) 5397 +Clearing BreakPoint at 00492A63 +De-Activate DECHash.pas line 5397 BreakPoint at:00492A63 +Adding coverage:DECHash.pas (DECHash) 5399 +Clearing BreakPoint at 00492A68 +De-Activate DECHash.pas line 5399 BreakPoint at:00492A68 +Adding coverage:DECHash.pas (DECHash) 5400 +Clearing BreakPoint at 00492A90 +De-Activate DECHash.pas line 5400 BreakPoint at:00492A90 +Adding coverage:DECHash.pas (DECHash) 5401 +Clearing BreakPoint at 00492A94 +De-Activate DECHash.pas line 5401 BreakPoint at:00492A94 +Adding coverage:DECHash.pas (DECHash) 5402 +Clearing BreakPoint at 00492AA2 +De-Activate DECHash.pas line 5402 BreakPoint at:00492AA2 +Adding coverage:DECHash.pas (DECHash) 5403 +Clearing BreakPoint at 00492AE6 +De-Activate DECHash.pas line 5403 BreakPoint at:00492AE6 +Adding coverage:DECHash.pas (DECHash) 5404 +Clearing BreakPoint at 00492B34 +De-Activate DECHash.pas line 5404 BreakPoint at:00492B34 +Adding coverage:DECHash.pas (DECHash) 5397 +Clearing BreakPoint at 00492B37 +De-Activate DECHash.pas line 5397 BreakPoint at:00492B37 +Adding coverage:DECHash.pas (DECHash) 5405 +Clearing BreakPoint at 00492B44 +De-Activate DECHash.pas line 5405 BreakPoint at:00492B44 +Adding coverage:DECHash.pas (DECHash) 5395 +Clearing BreakPoint at 00492B47 +De-Activate DECHash.pas line 5395 BreakPoint at:00492B47 +Adding coverage:DECHash.pas (DECHash) 5406 +Clearing BreakPoint at 00492B51 +De-Activate DECHash.pas line 5406 BreakPoint at:00492B51 +Adding coverage:DECHash.pas (DECHash) 5321 +Clearing BreakPoint at 0049286F +De-Activate DECHash.pas line 5321 BreakPoint at:0049286F +Adding coverage:DECHash.pas (DECHash) 5323 +Clearing BreakPoint at 0049287A +De-Activate DECHash.pas line 5323 BreakPoint at:0049287A +Adding coverage:DECHash.pas (DECHash) 5324 +Clearing BreakPoint at 0049288F +De-Activate DECHash.pas line 5324 BreakPoint at:0049288F +Adding coverage:DECHash.pas (DECHash) 5325 +Clearing BreakPoint at 004928A5 +De-Activate DECHash.pas line 5325 BreakPoint at:004928A5 +Adding coverage:DECHash.pas (DECHash) 5321 +Clearing BreakPoint at 004928A8 +De-Activate DECHash.pas line 5321 BreakPoint at:004928A8 +Adding coverage:DECHash.pas (DECHash) 5326 +Clearing BreakPoint at 004928AE +De-Activate DECHash.pas line 5326 BreakPoint at:004928AE +Adding coverage:DECHash.pas (DECHash) 5292 +Clearing BreakPoint at 00492773 +De-Activate DECHash.pas line 5292 BreakPoint at:00492773 +Adding coverage:DECHash.pas (DECHash) 5295 +Clearing BreakPoint at 00492788 +De-Activate DECHash.pas line 5295 BreakPoint at:00492788 +Adding coverage:DECHash.pas (DECHash) 5297 +Clearing BreakPoint at 0049278F +De-Activate DECHash.pas line 5297 BreakPoint at:0049278F +Adding coverage:DECHash.pas (DECHash) 5298 +Clearing BreakPoint at 004927A3 +De-Activate DECHash.pas line 5298 BreakPoint at:004927A3 +Adding coverage:DECHash.pas (DECHash) 5299 +Clearing BreakPoint at 004927B7 +De-Activate DECHash.pas line 5299 BreakPoint at:004927B7 +Adding coverage:DECHash.pas (DECHash) 5300 +Clearing BreakPoint at 004927CB +De-Activate DECHash.pas line 5300 BreakPoint at:004927CB +Adding coverage:DECHash.pas (DECHash) 5295 +Clearing BreakPoint at 004927CE +De-Activate DECHash.pas line 5295 BreakPoint at:004927CE +Adding coverage:DECHash.pas (DECHash) 5302 +Clearing BreakPoint at 004927D4 +De-Activate DECHash.pas line 5302 BreakPoint at:004927D4 +Adding coverage:DECHash.pas (DECHash) 5560 +Clearing BreakPoint at 004930E0 +De-Activate DECHash.pas line 5560 BreakPoint at:004930E0 +Adding coverage:DECHash.pas (DECHash) 5561 +Clearing BreakPoint at 004930E7 +De-Activate DECHash.pas line 5561 BreakPoint at:004930E7 +Adding coverage:DECHash.pas (DECHash) 5562 +Clearing BreakPoint at 004930F9 +De-Activate DECHash.pas line 5562 BreakPoint at:004930F9 +Adding coverage:DECHash.pas (DECHash) 5563 +Clearing BreakPoint at 0049310B +De-Activate DECHash.pas line 5563 BreakPoint at:0049310B +Adding coverage:DECHash.pas (DECHash) 5565 +Clearing BreakPoint at 0049311D +De-Activate DECHash.pas line 5565 BreakPoint at:0049311D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1581 +Clearing BreakPoint at 0047ABC0 +De-Activate DECHashAuthentication.pas line 1581 BreakPoint at:0047ABC0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1584 +Clearing BreakPoint at 0047ABC7 +De-Activate DECHashAuthentication.pas line 1584 BreakPoint at:0047ABC7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1585 +Clearing BreakPoint at 0047ABEA +De-Activate DECHashAuthentication.pas line 1585 BreakPoint at:0047ABEA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1586 +Clearing BreakPoint at 0047ABFB +De-Activate DECHashAuthentication.pas line 1586 BreakPoint at:0047ABFB +Adding coverage:DECHash.pas (DECHash) 5566 +Clearing BreakPoint at 00493125 +De-Activate DECHash.pas line 5566 BreakPoint at:00493125 +Adding coverage:DECHash.pas (DECHash) 5423 +Clearing BreakPoint at 00492C58 +De-Activate DECHash.pas line 5423 BreakPoint at:00492C58 +Adding coverage:DECHash.pas (DECHash) 5425 +Clearing BreakPoint at 00492C6A +De-Activate DECHash.pas line 5425 BreakPoint at:00492C6A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1635 +Clearing BreakPoint at 0047ADB1 +De-Activate DECHashAuthentication.pas line 1635 BreakPoint at:0047ADB1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1608 +Clearing BreakPoint at 0047ACA9 +De-Activate DECHashAuthentication.pas line 1608 BreakPoint at:0047ACA9 +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1640 +Clearing BreakPoint at 0047AE00 +De-Activate DECHashAuthentication.pas line 1640 BreakPoint at:0047AE00 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1641 +Clearing BreakPoint at 0047AE23 +De-Activate DECHashAuthentication.pas line 1641 BreakPoint at:0047AE23 +Adding coverage:DECHash.pas (DECHash) 5448 +Clearing BreakPoint at 00492D64 +De-Activate DECHash.pas line 5448 BreakPoint at:00492D64 +Adding coverage:DECHash.pas (DECHash) 5449 +Clearing BreakPoint at 00492DA3 +De-Activate DECHash.pas line 5449 BreakPoint at:00492DA3 +Adding coverage:DECHash.pas (DECHash) 5451 +Clearing BreakPoint at 00492DA7 +De-Activate DECHash.pas line 5451 BreakPoint at:00492DA7 +Adding coverage:DECHash.pas (DECHash) 5453 +Clearing BreakPoint at 00492DC4 +De-Activate DECHash.pas line 5453 BreakPoint at:00492DC4 +Adding coverage:DECHash.pas (DECHash) 5620 +Clearing BreakPoint at 004932E4 +De-Activate DECHash.pas line 5620 BreakPoint at:004932E4 +Adding coverage:DECHash.pas (DECHash) 5621 +Clearing BreakPoint at 00493307 +De-Activate DECHash.pas line 5621 BreakPoint at:00493307 +Adding coverage:DECHash.pas (DECHash) 5623 +Clearing BreakPoint at 0049330B +De-Activate DECHash.pas line 5623 BreakPoint at:0049330B +Adding coverage:DECHash.pas (DECHash) 5625 +Clearing BreakPoint at 00493320 +De-Activate DECHash.pas line 5625 BreakPoint at:00493320 +Adding coverage:DECHash.pas (DECHash) 5627 +Clearing BreakPoint at 00493341 +De-Activate DECHash.pas line 5627 BreakPoint at:00493341 +Adding coverage:DECHash.pas (DECHash) 5628 +Clearing BreakPoint at 0049335F +De-Activate DECHash.pas line 5628 BreakPoint at:0049335F +Adding coverage:DECHash.pas (DECHash) 5629 +Clearing BreakPoint at 004933BF +De-Activate DECHash.pas line 5629 BreakPoint at:004933BF +Adding coverage:DECHash.pas (DECHash) 5630 +Clearing BreakPoint at 004933EE +De-Activate DECHash.pas line 5630 BreakPoint at:004933EE +Adding coverage:DECHash.pas (DECHash) 5632 +Clearing BreakPoint at 004933F2 +De-Activate DECHash.pas line 5632 BreakPoint at:004933F2 +Adding coverage:DECHash.pas (DECHash) 5456 +Clearing BreakPoint at 00492DD6 +De-Activate DECHash.pas line 5456 BreakPoint at:00492DD6 +Adding coverage:DECHash.pas (DECHash) 5459 +Clearing BreakPoint at 00492E00 +De-Activate DECHash.pas line 5459 BreakPoint at:00492E00 +Adding coverage:DECHash.pas (DECHash) 5465 +Clearing BreakPoint at 00492E1C +De-Activate DECHash.pas line 5465 BreakPoint at:00492E1C +Adding coverage:DECHash.pas (DECHash) 5468 +Clearing BreakPoint at 00492E2B +De-Activate DECHash.pas line 5468 BreakPoint at:00492E2B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1644 +Clearing BreakPoint at 0047AE48 +De-Activate DECHashAuthentication.pas line 1644 BreakPoint at:0047AE48 +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Adding coverage:DECHash.pas (DECHash) 5283 +Clearing BreakPoint at 004926C8 +De-Activate DECHash.pas line 5283 BreakPoint at:004926C8 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00492717 +Exact line:DECHash line 5287 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475C05 +After line:DECHashBase line 674 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475DA5 +Exact line:DECHashBase line 714 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BEF03 +After line:TestDECHash line 6153 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4E48 +Exact line:TestDECHash line 6669 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047A90A +Exact line:DECHashAuthentication line 1531 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BF7AD +After line:TestDECHash line 6206 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4F14 +Exact line:TestDECHash line 6693 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047A8A6 +Exact line:DECHashAuthentication line 1528 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BF505 +After line:TestDECHash line 6190 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4EF0 +Exact line:TestDECHash line 6688 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5278 +Clearing BreakPoint at 0049261B +De-Activate DECHash.pas line 5278 BreakPoint at:0049261B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00492656 +Exact line:DECHash line 5282 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475C05 +After line:DECHashBase line 674 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475CD5 +After line:DECHashBase line 696 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BF259 +After line:TestDECHash line 6175 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004C4ECC +Exact line:TestDECHash line 6683 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Wait For Debug Event timed-out +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5108 +Clearing BreakPoint at 00491FB4 +De-Activate DECHash.pas line 5108 BreakPoint at:00491FB4 +Adding coverage:DECHash.pas (DECHash) 5109 +Clearing BreakPoint at 00491FCC +De-Activate DECHash.pas line 5109 BreakPoint at:00491FCC +Adding coverage:DECHash.pas (DECHash) 5111 +Clearing BreakPoint at 00491FD6 +De-Activate DECHash.pas line 5111 BreakPoint at:00491FD6 +Adding coverage:DECHash.pas (DECHash) 5112 +Clearing BreakPoint at 00491FE0 +De-Activate DECHash.pas line 5112 BreakPoint at:00491FE0 +Adding coverage:DECHash.pas (DECHash) 5113 +Clearing BreakPoint at 00491FFD +De-Activate DECHash.pas line 5113 BreakPoint at:00491FFD +Adding coverage:DECHash.pas (DECHash) 4655 +Clearing BreakPoint at 00490394 +De-Activate DECHash.pas line 4655 BreakPoint at:00490394 +Adding coverage:DECHash.pas (DECHash) 4656 +Clearing BreakPoint at 0049039D +De-Activate DECHash.pas line 4656 BreakPoint at:0049039D +Adding coverage:DECHash.pas (DECHash) 4657 +Clearing BreakPoint at 004903A4 +De-Activate DECHash.pas line 4657 BreakPoint at:004903A4 +Adding coverage:DECHash.pas (DECHash) 5116 +Clearing BreakPoint at 0049201C +De-Activate DECHash.pas line 5116 BreakPoint at:0049201C +Adding coverage:DECHash.pas (DECHash) 5117 +Clearing BreakPoint at 00492025 +De-Activate DECHash.pas line 5117 BreakPoint at:00492025 +Adding coverage:DECHash.pas (DECHash) 5118 +Clearing BreakPoint at 00492044 +De-Activate DECHash.pas line 5118 BreakPoint at:00492044 +Adding coverage:DECHash.pas (DECHash) 4650 +Clearing BreakPoint at 0049037C +De-Activate DECHash.pas line 4650 BreakPoint at:0049037C +Adding coverage:DECHash.pas (DECHash) 4651 +Clearing BreakPoint at 00490385 +De-Activate DECHash.pas line 4651 BreakPoint at:00490385 +Adding coverage:DECHash.pas (DECHash) 4652 +Clearing BreakPoint at 0049038C +De-Activate DECHash.pas line 4652 BreakPoint at:0049038C +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 90 +Clearing BreakPoint at 0047B130 +De-Activate DECHashBitBase.pas line 90 BreakPoint at:0047B130 +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 94 +Clearing BreakPoint at 0047B14F +De-Activate DECHashBitBase.pas line 94 BreakPoint at:0047B14F +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 97 +Clearing BreakPoint at 0047B188 +De-Activate DECHashBitBase.pas line 97 BreakPoint at:0047B188 +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 98 +Clearing BreakPoint at 0047B191 +De-Activate DECHashBitBase.pas line 98 BreakPoint at:0047B191 +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 85 +Clearing BreakPoint at 0047B114 +De-Activate DECHashBitBase.pas line 85 BreakPoint at:0047B114 +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 86 +Clearing BreakPoint at 0047B11D +De-Activate DECHashBitBase.pas line 86 BreakPoint at:0047B11D +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 87 +Clearing BreakPoint at 0047B126 +De-Activate DECHashBitBase.pas line 87 BreakPoint at:0047B126 +Adding coverage:DECHashBitBase.pas (DECHashBitBase) 95 +Clearing BreakPoint at 0047B155 +De-Activate DECHashBitBase.pas line 95 BreakPoint at:0047B155 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047B188 +Exact line:DECHashBitBase line 97 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051FC75 +Exact line:TestDECHashSHA3 line 864 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051FC40 +Exact line:TestDECHashSHA3 line 855 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4660 +Clearing BreakPoint at 004903AC +De-Activate DECHash.pas line 4660 BreakPoint at:004903AC +Adding coverage:DECHash.pas (DECHash) 4661 +Clearing BreakPoint at 004903B3 +De-Activate DECHash.pas line 4661 BreakPoint at:004903B3 +Adding coverage:DECHash.pas (DECHash) 5127 +Clearing BreakPoint at 00492084 +De-Activate DECHash.pas line 5127 BreakPoint at:00492084 +Adding coverage:DECHash.pas (DECHash) 5130 +Clearing BreakPoint at 0049208D +De-Activate DECHash.pas line 5130 BreakPoint at:0049208D +Adding coverage:DECHash.pas (DECHash) 5131 +Clearing BreakPoint at 00492097 +De-Activate DECHash.pas line 5131 BreakPoint at:00492097 +Adding coverage:DECHash.pas (DECHash) 5132 +Clearing BreakPoint at 004920E0 +De-Activate DECHash.pas line 5132 BreakPoint at:004920E0 +Adding coverage:DECHash.pas (DECHash) 4663 +Clearing BreakPoint at 004903BB +De-Activate DECHash.pas line 4663 BreakPoint at:004903BB +Adding coverage:DECHash.pas (DECHash) 4772 +Clearing BreakPoint at 004905A4 +De-Activate DECHash.pas line 4772 BreakPoint at:004905A4 +Adding coverage:DECHash.pas (DECHash) 4773 +Clearing BreakPoint at 004905D2 +De-Activate DECHash.pas line 4773 BreakPoint at:004905D2 +Adding coverage:DECHash.pas (DECHash) 4777 +Clearing BreakPoint at 004905EE +De-Activate DECHash.pas line 4777 BreakPoint at:004905EE +Adding coverage:DECHash.pas (DECHash) 4779 +Clearing BreakPoint at 004905F4 +De-Activate DECHash.pas line 4779 BreakPoint at:004905F4 +Adding coverage:DECHash.pas (DECHash) 4781 +Clearing BreakPoint at 00490606 +De-Activate DECHash.pas line 4781 BreakPoint at:00490606 +Adding coverage:DECHash.pas (DECHash) 4787 +Clearing BreakPoint at 004906A5 +De-Activate DECHash.pas line 4787 BreakPoint at:004906A5 +Adding coverage:DECHash.pas (DECHash) 4788 +Clearing BreakPoint at 004906B3 +De-Activate DECHash.pas line 4788 BreakPoint at:004906B3 +Adding coverage:DECHash.pas (DECHash) 4790 +Clearing BreakPoint at 004906C1 +De-Activate DECHash.pas line 4790 BreakPoint at:004906C1 +Adding coverage:DECHash.pas (DECHash) 4792 +Clearing BreakPoint at 004906DB +De-Activate DECHash.pas line 4792 BreakPoint at:004906DB +Adding coverage:DECHash.pas (DECHash) 4664 +Clearing BreakPoint at 004903CB +De-Activate DECHash.pas line 4664 BreakPoint at:004903CB +Adding coverage:DECHash.pas (DECHash) 4665 +Clearing BreakPoint at 004903D7 +De-Activate DECHash.pas line 4665 BreakPoint at:004903D7 +Adding coverage:DECHash.pas (DECHash) 5087 +Clearing BreakPoint at 00491F24 +De-Activate DECHash.pas line 5087 BreakPoint at:00491F24 +Adding coverage:DECHash.pas (DECHash) 5089 +Clearing BreakPoint at 00491F33 +De-Activate DECHash.pas line 5089 BreakPoint at:00491F33 +Adding coverage:DECHash.pas (DECHash) 5091 +Clearing BreakPoint at 00491F39 +De-Activate DECHash.pas line 5091 BreakPoint at:00491F39 +Adding coverage:DECHash.pas (DECHash) 5093 +Clearing BreakPoint at 00491FA8 +De-Activate DECHash.pas line 5093 BreakPoint at:00491FA8 +Adding coverage:DECHash.pas (DECHash) 5095 +Clearing BreakPoint at 00491F41 +De-Activate DECHash.pas line 5095 BreakPoint at:00491F41 +Adding coverage:DECHash.pas (DECHash) 5096 +Clearing BreakPoint at 00491F50 +De-Activate DECHash.pas line 5096 BreakPoint at:00491F50 +Adding coverage:DECHash.pas (DECHash) 5099 +Clearing BreakPoint at 00491F60 +De-Activate DECHash.pas line 5099 BreakPoint at:00491F60 +Adding coverage:DECHash.pas (DECHash) 5019 +Clearing BreakPoint at 00491B88 +De-Activate DECHash.pas line 5019 BreakPoint at:00491B88 +Adding coverage:DECHash.pas (DECHash) 5022 +Clearing BreakPoint at 00491BAE +De-Activate DECHash.pas line 5022 BreakPoint at:00491BAE +Adding coverage:DECHash.pas (DECHash) 5029 +Clearing BreakPoint at 00491C1B +De-Activate DECHash.pas line 5029 BreakPoint at:00491C1B +Adding coverage:DECHash.pas (DECHash) 5031 +Clearing BreakPoint at 00491C20 +De-Activate DECHash.pas line 5031 BreakPoint at:00491C20 +Adding coverage:DECHash.pas (DECHash) 5033 +Clearing BreakPoint at 00491C2C +De-Activate DECHash.pas line 5033 BreakPoint at:00491C2C +Adding coverage:DECHash.pas (DECHash) 5049 +Clearing BreakPoint at 00491D26 +De-Activate DECHash.pas line 5049 BreakPoint at:00491D26 +Adding coverage:DECHash.pas (DECHash) 5050 +Clearing BreakPoint at 00491D36 +De-Activate DECHash.pas line 5050 BreakPoint at:00491D36 +Adding coverage:DECHash.pas (DECHash) 5053 +Clearing BreakPoint at 00491D78 +De-Activate DECHash.pas line 5053 BreakPoint at:00491D78 +Adding coverage:DECHash.pas (DECHash) 5054 +Clearing BreakPoint at 00491D81 +De-Activate DECHash.pas line 5054 BreakPoint at:00491D81 +Adding coverage:DECHash.pas (DECHash) 5055 +Clearing BreakPoint at 00491D8E +De-Activate DECHash.pas line 5055 BreakPoint at:00491D8E +Adding coverage:DECHash.pas (DECHash) 5056 +Clearing BreakPoint at 00491DE2 +De-Activate DECHash.pas line 5056 BreakPoint at:00491DE2 +Adding coverage:DECHash.pas (DECHash) 5057 +Clearing BreakPoint at 00491DF6 +De-Activate DECHash.pas line 5057 BreakPoint at:00491DF6 +Adding coverage:DECHash.pas (DECHash) 5058 +Clearing BreakPoint at 00491E03 +De-Activate DECHash.pas line 5058 BreakPoint at:00491E03 +Adding coverage:DECHash.pas (DECHash) 5061 +Clearing BreakPoint at 00491E21 +De-Activate DECHash.pas line 5061 BreakPoint at:00491E21 +Adding coverage:DECHash.pas (DECHash) 5031 +Clearing BreakPoint at 00491EB3 +De-Activate DECHash.pas line 5031 BreakPoint at:00491EB3 +Adding coverage:DECHash.pas (DECHash) 5071 +Clearing BreakPoint at 00491EBF +De-Activate DECHash.pas line 5071 BreakPoint at:00491EBF +Adding coverage:DECHash.pas (DECHash) 5100 +Clearing BreakPoint at 00491F87 +De-Activate DECHash.pas line 5100 BreakPoint at:00491F87 +Adding coverage:DECHash.pas (DECHash) 5101 +Clearing BreakPoint at 00491F94 +De-Activate DECHash.pas line 5101 BreakPoint at:00491F94 +Adding coverage:DECHash.pas (DECHash) 5105 +Clearing BreakPoint at 00491FAE +De-Activate DECHash.pas line 5105 BreakPoint at:00491FAE +Adding coverage:DECHash.pas (DECHash) 5121 +Clearing BreakPoint at 0049204C +De-Activate DECHash.pas line 5121 BreakPoint at:0049204C +Adding coverage:DECHash.pas (DECHash) 5122 +Clearing BreakPoint at 00492053 +De-Activate DECHash.pas line 5122 BreakPoint at:00492053 +Adding coverage:DECHash.pas (DECHash) 5123 +Clearing BreakPoint at 0049205F +De-Activate DECHash.pas line 5123 BreakPoint at:0049205F +Adding coverage:DECHash.pas (DECHash) 5173 +Clearing BreakPoint at 004921D8 +De-Activate DECHash.pas line 5173 BreakPoint at:004921D8 +Adding coverage:DECHash.pas (DECHash) 5175 +Clearing BreakPoint at 004921E8 +De-Activate DECHash.pas line 5175 BreakPoint at:004921E8 +Adding coverage:DECHash.pas (DECHash) 5176 +Clearing BreakPoint at 004921ED +De-Activate DECHash.pas line 5176 BreakPoint at:004921ED +Adding coverage:DECHash.pas (DECHash) 5177 +Clearing BreakPoint at 004921F4 +De-Activate DECHash.pas line 5177 BreakPoint at:004921F4 +Adding coverage:DECHash.pas (DECHash) 5183 +Clearing BreakPoint at 00492228 +De-Activate DECHash.pas line 5183 BreakPoint at:00492228 +Adding coverage:DECHash.pas (DECHash) 5190 +Clearing BreakPoint at 0049229D +De-Activate DECHash.pas line 5190 BreakPoint at:0049229D +Adding coverage:DECHash.pas (DECHash) 5193 +Clearing BreakPoint at 004922A9 +De-Activate DECHash.pas line 5193 BreakPoint at:004922A9 +Adding coverage:DECHash.pas (DECHash) 5195 +Clearing BreakPoint at 004922CA +De-Activate DECHash.pas line 5195 BreakPoint at:004922CA +Adding coverage:DECHash.pas (DECHash) 5202 +Clearing BreakPoint at 00492312 +De-Activate DECHash.pas line 5202 BreakPoint at:00492312 +Adding coverage:DECHash.pas (DECHash) 5205 +Clearing BreakPoint at 00492319 +De-Activate DECHash.pas line 5205 BreakPoint at:00492319 +Adding coverage:DECHash.pas (DECHash) 5206 +Clearing BreakPoint at 00492341 +De-Activate DECHash.pas line 5206 BreakPoint at:00492341 +Adding coverage:DECHash.pas (DECHash) 5137 +Clearing BreakPoint at 004920E4 +De-Activate DECHash.pas line 5137 BreakPoint at:004920E4 +Adding coverage:DECHash.pas (DECHash) 5139 +Clearing BreakPoint at 004920F3 +De-Activate DECHash.pas line 5139 BreakPoint at:004920F3 +Adding coverage:DECHash.pas (DECHash) 5145 +Clearing BreakPoint at 00492109 +De-Activate DECHash.pas line 5145 BreakPoint at:00492109 +Adding coverage:DECHash.pas (DECHash) 5148 +Clearing BreakPoint at 00492126 +De-Activate DECHash.pas line 5148 BreakPoint at:00492126 +Adding coverage:DECHash.pas (DECHash) 5149 +Clearing BreakPoint at 0049216B +De-Activate DECHash.pas line 5149 BreakPoint at:0049216B +Adding coverage:DECHash.pas (DECHash) 5064 +Clearing BreakPoint at 00491E2B +De-Activate DECHash.pas line 5064 BreakPoint at:00491E2B +Adding coverage:DECHash.pas (DECHash) 5066 +Clearing BreakPoint at 00491E92 +De-Activate DECHash.pas line 5066 BreakPoint at:00491E92 +Adding coverage:DECHash.pas (DECHash) 5067 +Clearing BreakPoint at 00491EA6 +De-Activate DECHash.pas line 5067 BreakPoint at:00491EA6 +Adding coverage:DECHash.pas (DECHash) 5151 +Clearing BreakPoint at 0049217C +De-Activate DECHash.pas line 5151 BreakPoint at:0049217C +Adding coverage:DECHash.pas (DECHash) 5208 +Clearing BreakPoint at 00492350 +De-Activate DECHash.pas line 5208 BreakPoint at:00492350 +Adding coverage:DECHash.pas (DECHash) 4969 +Clearing BreakPoint at 0049190C +De-Activate DECHash.pas line 4969 BreakPoint at:0049190C +Adding coverage:DECHash.pas (DECHash) 4970 +Clearing BreakPoint at 0049192F +De-Activate DECHash.pas line 4970 BreakPoint at:0049192F +Adding coverage:DECHash.pas (DECHash) 4971 +Clearing BreakPoint at 0049193B +De-Activate DECHash.pas line 4971 BreakPoint at:0049193B +Adding coverage:DECHash.pas (DECHash) 4935 +Clearing BreakPoint at 004916B0 +De-Activate DECHash.pas line 4935 BreakPoint at:004916B0 +Adding coverage:DECHash.pas (DECHash) 4937 +Clearing BreakPoint at 004916B9 +De-Activate DECHash.pas line 4937 BreakPoint at:004916B9 +Adding coverage:DECHash.pas (DECHash) 4947 +Clearing BreakPoint at 00491770 +De-Activate DECHash.pas line 4947 BreakPoint at:00491770 +Adding coverage:DECHash.pas (DECHash) 4948 +Clearing BreakPoint at 00491780 +De-Activate DECHash.pas line 4948 BreakPoint at:00491780 +Adding coverage:DECHash.pas (DECHash) 4950 +Clearing BreakPoint at 004917E1 +De-Activate DECHash.pas line 4950 BreakPoint at:004917E1 +Adding coverage:DECHash.pas (DECHash) 4954 +Clearing BreakPoint at 00491839 +De-Activate DECHash.pas line 4954 BreakPoint at:00491839 +Adding coverage:DECHash.pas (DECHash) 4955 +Clearing BreakPoint at 0049185A +De-Activate DECHash.pas line 4955 BreakPoint at:0049185A +Adding coverage:DECHash.pas (DECHash) 4957 +Clearing BreakPoint at 004918BB +De-Activate DECHash.pas line 4957 BreakPoint at:004918BB +Adding coverage:DECHash.pas (DECHash) 5074 +Clearing BreakPoint at 00491EE8 +De-Activate DECHash.pas line 5074 BreakPoint at:00491EE8 +Adding coverage:DECHash.pas (DECHash) 5076 +Clearing BreakPoint at 00491EEF +De-Activate DECHash.pas line 5076 BreakPoint at:00491EEF +Adding coverage:DECHash.pas (DECHash) 4795 +Clearing BreakPoint at 0049075C +De-Activate DECHash.pas line 4795 BreakPoint at:0049075C +Adding coverage:DECHash.pas (DECHash) 4796 +Clearing BreakPoint at 0049076B +De-Activate DECHash.pas line 4796 BreakPoint at:0049076B +Adding coverage:DECHash.pas (DECHash) 5004 +Clearing BreakPoint at 00491B2C +De-Activate DECHash.pas line 5004 BreakPoint at:00491B2C +Adding coverage:DECHash.pas (DECHash) 5005 +Clearing BreakPoint at 00491B3B +De-Activate DECHash.pas line 5005 BreakPoint at:00491B3B +Adding coverage:DECHash.pas (DECHash) 5006 +Clearing BreakPoint at 00491B41 +De-Activate DECHash.pas line 5006 BreakPoint at:00491B41 +Adding coverage:DECHash.pas (DECHash) 5007 +Clearing BreakPoint at 00491B56 +De-Activate DECHash.pas line 5007 BreakPoint at:00491B56 +Adding coverage:DECHash.pas (DECHash) 5008 +Clearing BreakPoint at 00491B6E +De-Activate DECHash.pas line 5008 BreakPoint at:00491B6E +Adding coverage:DECHash.pas (DECHash) 5009 +Clearing BreakPoint at 00491B72 +De-Activate DECHash.pas line 5009 BreakPoint at:00491B72 +Adding coverage:DECHash.pas (DECHash) 5010 +Clearing BreakPoint at 00491B76 +De-Activate DECHash.pas line 5010 BreakPoint at:00491B76 +Adding coverage:DECHash.pas (DECHash) 5006 +Clearing BreakPoint at 00491B79 +De-Activate DECHash.pas line 5006 BreakPoint at:00491B79 +Adding coverage:DECHash.pas (DECHash) 5011 +Clearing BreakPoint at 00491B7F +De-Activate DECHash.pas line 5011 BreakPoint at:00491B7F +Adding coverage:DECHash.pas (DECHash) 4797 +Clearing BreakPoint at 0049077D +De-Activate DECHash.pas line 4797 BreakPoint at:0049077D +Adding coverage:DECHash.pas (DECHash) 4818 +Clearing BreakPoint at 00490790 +De-Activate DECHash.pas line 4818 BreakPoint at:00490790 +Adding coverage:DECHash.pas (DECHash) 4819 +Clearing BreakPoint at 0049079F +De-Activate DECHash.pas line 4819 BreakPoint at:0049079F +Adding coverage:DECHash.pas (DECHash) 4820 +Clearing BreakPoint at 004907A5 +De-Activate DECHash.pas line 4820 BreakPoint at:004907A5 +Adding coverage:DECHash.pas (DECHash) 4822 +Clearing BreakPoint at 004907AA +De-Activate DECHash.pas line 4822 BreakPoint at:004907AA +Adding coverage:DECHash.pas (DECHash) 4823 +Clearing BreakPoint at 004907E2 +De-Activate DECHash.pas line 4823 BreakPoint at:004907E2 +Adding coverage:DECHash.pas (DECHash) 4824 +Clearing BreakPoint at 00490821 +De-Activate DECHash.pas line 4824 BreakPoint at:00490821 +Adding coverage:DECHash.pas (DECHash) 4825 +Clearing BreakPoint at 00490860 +De-Activate DECHash.pas line 4825 BreakPoint at:00490860 +Adding coverage:DECHash.pas (DECHash) 4826 +Clearing BreakPoint at 0049089F +De-Activate DECHash.pas line 4826 BreakPoint at:0049089F +Adding coverage:DECHash.pas (DECHash) 4828 +Clearing BreakPoint at 004908DE +De-Activate DECHash.pas line 4828 BreakPoint at:004908DE +Adding coverage:DECHash.pas (DECHash) 4829 +Clearing BreakPoint at 0049090A +De-Activate DECHash.pas line 4829 BreakPoint at:0049090A +Adding coverage:DECHash.pas (DECHash) 4830 +Clearing BreakPoint at 00490936 +De-Activate DECHash.pas line 4830 BreakPoint at:00490936 +Adding coverage:DECHash.pas (DECHash) 4831 +Clearing BreakPoint at 00490962 +De-Activate DECHash.pas line 4831 BreakPoint at:00490962 +Adding coverage:DECHash.pas (DECHash) 4832 +Clearing BreakPoint at 0049098E +De-Activate DECHash.pas line 4832 BreakPoint at:0049098E +Adding coverage:DECHash.pas (DECHash) 4834 +Clearing BreakPoint at 004909BA +De-Activate DECHash.pas line 4834 BreakPoint at:004909BA +Adding coverage:DECHash.pas (DECHash) 4835 +Clearing BreakPoint at 004909D4 +De-Activate DECHash.pas line 4835 BreakPoint at:004909D4 +Adding coverage:DECHash.pas (DECHash) 4836 +Clearing BreakPoint at 00490A16 +De-Activate DECHash.pas line 4836 BreakPoint at:00490A16 +Adding coverage:DECHash.pas (DECHash) 4837 +Clearing BreakPoint at 00490A58 +De-Activate DECHash.pas line 4837 BreakPoint at:00490A58 +Adding coverage:DECHash.pas (DECHash) 4838 +Clearing BreakPoint at 00490AA0 +De-Activate DECHash.pas line 4838 BreakPoint at:00490AA0 +Adding coverage:DECHash.pas (DECHash) 4839 +Clearing BreakPoint at 00490AF7 +De-Activate DECHash.pas line 4839 BreakPoint at:00490AF7 +Adding coverage:DECHash.pas (DECHash) 4840 +Clearing BreakPoint at 00490B48 +De-Activate DECHash.pas line 4840 BreakPoint at:00490B48 +Adding coverage:DECHash.pas (DECHash) 4841 +Clearing BreakPoint at 00490B99 +De-Activate DECHash.pas line 4841 BreakPoint at:00490B99 +Adding coverage:DECHash.pas (DECHash) 4842 +Clearing BreakPoint at 00490BEA +De-Activate DECHash.pas line 4842 BreakPoint at:00490BEA +Adding coverage:DECHash.pas (DECHash) 4843 +Clearing BreakPoint at 00490C41 +De-Activate DECHash.pas line 4843 BreakPoint at:00490C41 +Adding coverage:DECHash.pas (DECHash) 4844 +Clearing BreakPoint at 00490C98 +De-Activate DECHash.pas line 4844 BreakPoint at:00490C98 +Adding coverage:DECHash.pas (DECHash) 4845 +Clearing BreakPoint at 00490CE8 +De-Activate DECHash.pas line 4845 BreakPoint at:00490CE8 +Adding coverage:DECHash.pas (DECHash) 4846 +Clearing BreakPoint at 00490D39 +De-Activate DECHash.pas line 4846 BreakPoint at:00490D39 +Adding coverage:DECHash.pas (DECHash) 4847 +Clearing BreakPoint at 00490D8A +De-Activate DECHash.pas line 4847 BreakPoint at:00490D8A +Adding coverage:DECHash.pas (DECHash) 4848 +Clearing BreakPoint at 00490DE1 +De-Activate DECHash.pas line 4848 BreakPoint at:00490DE1 +Adding coverage:DECHash.pas (DECHash) 4849 +Clearing BreakPoint at 00490E38 +De-Activate DECHash.pas line 4849 BreakPoint at:00490E38 +Adding coverage:DECHash.pas (DECHash) 4850 +Clearing BreakPoint at 00490E89 +De-Activate DECHash.pas line 4850 BreakPoint at:00490E89 +Adding coverage:DECHash.pas (DECHash) 4851 +Clearing BreakPoint at 00490EDA +De-Activate DECHash.pas line 4851 BreakPoint at:00490EDA +Adding coverage:DECHash.pas (DECHash) 4852 +Clearing BreakPoint at 00490F2B +De-Activate DECHash.pas line 4852 BreakPoint at:00490F2B +Adding coverage:DECHash.pas (DECHash) 4853 +Clearing BreakPoint at 00490F82 +De-Activate DECHash.pas line 4853 BreakPoint at:00490F82 +Adding coverage:DECHash.pas (DECHash) 4854 +Clearing BreakPoint at 00490FD9 +De-Activate DECHash.pas line 4854 BreakPoint at:00490FD9 +Adding coverage:DECHash.pas (DECHash) 4855 +Clearing BreakPoint at 0049102A +De-Activate DECHash.pas line 4855 BreakPoint at:0049102A +Adding coverage:DECHash.pas (DECHash) 4856 +Clearing BreakPoint at 0049107B +De-Activate DECHash.pas line 4856 BreakPoint at:0049107B +Adding coverage:DECHash.pas (DECHash) 4857 +Clearing BreakPoint at 004910CC +De-Activate DECHash.pas line 4857 BreakPoint at:004910CC +Adding coverage:DECHash.pas (DECHash) 4858 +Clearing BreakPoint at 0049111D +De-Activate DECHash.pas line 4858 BreakPoint at:0049111D +Adding coverage:DECHash.pas (DECHash) 4860 +Clearing BreakPoint at 00491174 +De-Activate DECHash.pas line 4860 BreakPoint at:00491174 +Adding coverage:DECHash.pas (DECHash) 4861 +Clearing BreakPoint at 004911A4 +De-Activate DECHash.pas line 4861 BreakPoint at:004911A4 +Adding coverage:DECHash.pas (DECHash) 4862 +Clearing BreakPoint at 004911D5 +De-Activate DECHash.pas line 4862 BreakPoint at:004911D5 +Adding coverage:DECHash.pas (DECHash) 4863 +Clearing BreakPoint at 00491206 +De-Activate DECHash.pas line 4863 BreakPoint at:00491206 +Adding coverage:DECHash.pas (DECHash) 4864 +Clearing BreakPoint at 00491237 +De-Activate DECHash.pas line 4864 BreakPoint at:00491237 +Adding coverage:DECHash.pas (DECHash) 4865 +Clearing BreakPoint at 00491268 +De-Activate DECHash.pas line 4865 BreakPoint at:00491268 +Adding coverage:DECHash.pas (DECHash) 4866 +Clearing BreakPoint at 00491299 +De-Activate DECHash.pas line 4866 BreakPoint at:00491299 +Adding coverage:DECHash.pas (DECHash) 4867 +Clearing BreakPoint at 004912CA +De-Activate DECHash.pas line 4867 BreakPoint at:004912CA +Adding coverage:DECHash.pas (DECHash) 4868 +Clearing BreakPoint at 004912FB +De-Activate DECHash.pas line 4868 BreakPoint at:004912FB +Adding coverage:DECHash.pas (DECHash) 4869 +Clearing BreakPoint at 0049132C +De-Activate DECHash.pas line 4869 BreakPoint at:0049132C +Adding coverage:DECHash.pas (DECHash) 4870 +Clearing BreakPoint at 0049135D +De-Activate DECHash.pas line 4870 BreakPoint at:0049135D +Adding coverage:DECHash.pas (DECHash) 4871 +Clearing BreakPoint at 0049138E +De-Activate DECHash.pas line 4871 BreakPoint at:0049138E +Adding coverage:DECHash.pas (DECHash) 4872 +Clearing BreakPoint at 004913BF +De-Activate DECHash.pas line 4872 BreakPoint at:004913BF +Adding coverage:DECHash.pas (DECHash) 4873 +Clearing BreakPoint at 004913F0 +De-Activate DECHash.pas line 4873 BreakPoint at:004913F0 +Adding coverage:DECHash.pas (DECHash) 4874 +Clearing BreakPoint at 00491421 +De-Activate DECHash.pas line 4874 BreakPoint at:00491421 +Adding coverage:DECHash.pas (DECHash) 4875 +Clearing BreakPoint at 00491452 +De-Activate DECHash.pas line 4875 BreakPoint at:00491452 +Adding coverage:DECHash.pas (DECHash) 4876 +Clearing BreakPoint at 00491483 +De-Activate DECHash.pas line 4876 BreakPoint at:00491483 +Adding coverage:DECHash.pas (DECHash) 4877 +Clearing BreakPoint at 004914BA +De-Activate DECHash.pas line 4877 BreakPoint at:004914BA +Adding coverage:DECHash.pas (DECHash) 4878 +Clearing BreakPoint at 004914F1 +De-Activate DECHash.pas line 4878 BreakPoint at:004914F1 +Adding coverage:DECHash.pas (DECHash) 4879 +Clearing BreakPoint at 00491528 +De-Activate DECHash.pas line 4879 BreakPoint at:00491528 +Adding coverage:DECHash.pas (DECHash) 4880 +Clearing BreakPoint at 0049155F +De-Activate DECHash.pas line 4880 BreakPoint at:0049155F +Adding coverage:DECHash.pas (DECHash) 4881 +Clearing BreakPoint at 00491596 +De-Activate DECHash.pas line 4881 BreakPoint at:00491596 +Adding coverage:DECHash.pas (DECHash) 4882 +Clearing BreakPoint at 004915CD +De-Activate DECHash.pas line 4882 BreakPoint at:004915CD +Adding coverage:DECHash.pas (DECHash) 4883 +Clearing BreakPoint at 00491604 +De-Activate DECHash.pas line 4883 BreakPoint at:00491604 +Adding coverage:DECHash.pas (DECHash) 4884 +Clearing BreakPoint at 0049163B +De-Activate DECHash.pas line 4884 BreakPoint at:0049163B +Adding coverage:DECHash.pas (DECHash) 4886 +Clearing BreakPoint at 00491672 +De-Activate DECHash.pas line 4886 BreakPoint at:00491672 +Adding coverage:DECHash.pas (DECHash) 4887 +Clearing BreakPoint at 0049169D +De-Activate DECHash.pas line 4887 BreakPoint at:0049169D +Adding coverage:DECHash.pas (DECHash) 4820 +Clearing BreakPoint at 004916A0 +De-Activate DECHash.pas line 4820 BreakPoint at:004916A0 +Adding coverage:DECHash.pas (DECHash) 4888 +Clearing BreakPoint at 004916AA +De-Activate DECHash.pas line 4888 BreakPoint at:004916AA +Adding coverage:DECHash.pas (DECHash) 4798 +Clearing BreakPoint at 00490788 +De-Activate DECHash.pas line 4798 BreakPoint at:00490788 +Adding coverage:DECHash.pas (DECHash) 5077 +Clearing BreakPoint at 00491F14 +De-Activate DECHash.pas line 5077 BreakPoint at:00491F14 +Adding coverage:DECHash.pas (DECHash) 5078 +Clearing BreakPoint at 00491F20 +De-Activate DECHash.pas line 5078 BreakPoint at:00491F20 +Adding coverage:DECHash.pas (DECHash) 4958 +Clearing BreakPoint at 004918C3 +De-Activate DECHash.pas line 4958 BreakPoint at:004918C3 +Adding coverage:DECHash.pas (DECHash) 5157 +Clearing BreakPoint at 00492180 +De-Activate DECHash.pas line 5157 BreakPoint at:00492180 +Adding coverage:DECHash.pas (DECHash) 5158 +Clearing BreakPoint at 0049218F +De-Activate DECHash.pas line 5158 BreakPoint at:0049218F +Adding coverage:DECHash.pas (DECHash) 5159 +Clearing BreakPoint at 00492195 +De-Activate DECHash.pas line 5159 BreakPoint at:00492195 +Adding coverage:DECHash.pas (DECHash) 5160 +Clearing BreakPoint at 0049219B +De-Activate DECHash.pas line 5160 BreakPoint at:0049219B +Adding coverage:DECHash.pas (DECHash) 5162 +Clearing BreakPoint at 004921B0 +De-Activate DECHash.pas line 5162 BreakPoint at:004921B0 +Adding coverage:DECHash.pas (DECHash) 5163 +Clearing BreakPoint at 004921C0 +De-Activate DECHash.pas line 5163 BreakPoint at:004921C0 +Adding coverage:DECHash.pas (DECHash) 5164 +Clearing BreakPoint at 004921C4 +De-Activate DECHash.pas line 5164 BreakPoint at:004921C4 +Adding coverage:DECHash.pas (DECHash) 5165 +Clearing BreakPoint at 004921C8 +De-Activate DECHash.pas line 5165 BreakPoint at:004921C8 +Adding coverage:DECHash.pas (DECHash) 5160 +Clearing BreakPoint at 004921CB +De-Activate DECHash.pas line 5160 BreakPoint at:004921CB +Adding coverage:DECHash.pas (DECHash) 5166 +Clearing BreakPoint at 004921D1 +De-Activate DECHash.pas line 5166 BreakPoint at:004921D1 +Adding coverage:DECHash.pas (DECHash) 4961 +Clearing BreakPoint at 004918E8 +De-Activate DECHash.pas line 4961 BreakPoint at:004918E8 +Adding coverage:DECHash.pas (DECHash) 4962 +Clearing BreakPoint at 004918FC +De-Activate DECHash.pas line 4962 BreakPoint at:004918FC +Adding coverage:DECHash.pas (DECHash) 4963 +Clearing BreakPoint at 00491906 +De-Activate DECHash.pas line 4963 BreakPoint at:00491906 +Adding coverage:DECHash.pas (DECHash) 4974 +Clearing BreakPoint at 00491943 +De-Activate DECHash.pas line 4974 BreakPoint at:00491943 +Adding coverage:DECHash.pas (DECHash) 4978 +Clearing BreakPoint at 00491986 +De-Activate DECHash.pas line 4978 BreakPoint at:00491986 +Adding coverage:DECHash.pas (DECHash) 4979 +Clearing BreakPoint at 0049198B +De-Activate DECHash.pas line 4979 BreakPoint at:0049198B +Adding coverage:DECHash.pas (DECHash) 4981 +Clearing BreakPoint at 00491997 +De-Activate DECHash.pas line 4981 BreakPoint at:00491997 +Adding coverage:DECHash.pas (DECHash) 4989 +Clearing BreakPoint at 004919EB +De-Activate DECHash.pas line 4989 BreakPoint at:004919EB +Adding coverage:DECHash.pas (DECHash) 4990 +Clearing BreakPoint at 00491A0F +De-Activate DECHash.pas line 4990 BreakPoint at:00491A0F +Adding coverage:DECHash.pas (DECHash) 4991 +Clearing BreakPoint at 00491A24 +De-Activate DECHash.pas line 4991 BreakPoint at:00491A24 +Adding coverage:DECHash.pas (DECHash) 4993 +Clearing BreakPoint at 00491A4B +De-Activate DECHash.pas line 4993 BreakPoint at:00491A4B +Adding coverage:DECHash.pas (DECHash) 4995 +Clearing BreakPoint at 00491ABE +De-Activate DECHash.pas line 4995 BreakPoint at:00491ABE +Adding coverage:DECHash.pas (DECHash) 4996 +Clearing BreakPoint at 00491AD3 +De-Activate DECHash.pas line 4996 BreakPoint at:00491AD3 +Adding coverage:DECHash.pas (DECHash) 4979 +Clearing BreakPoint at 00491AE1 +De-Activate DECHash.pas line 4979 BreakPoint at:00491AE1 +Adding coverage:DECHash.pas (DECHash) 4998 +Clearing BreakPoint at 00491AED +De-Activate DECHash.pas line 4998 BreakPoint at:00491AED +Adding coverage:DECHash.pas (DECHash) 5222 +Clearing BreakPoint at 004923C1 +De-Activate DECHash.pas line 5222 BreakPoint at:004923C1 +Adding coverage:DECHash.pas (DECHash) 5124 +Clearing BreakPoint at 0049207E +De-Activate DECHash.pas line 5124 BreakPoint at:0049207E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1355 +Clearing BreakPoint at 00479F34 +De-Activate DECHashAuthentication.pas line 1355 BreakPoint at:00479F34 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1390 +Clearing BreakPoint at 0047A0F1 +De-Activate DECHashAuthentication.pas line 1390 BreakPoint at:0047A0F1 +Adding coverage:DECHash.pas (DECHash) 5179 +Clearing BreakPoint at 004921FC +De-Activate DECHash.pas line 5179 BreakPoint at:004921FC +Adding coverage:DECHash.pas (DECHash) 5140 +Clearing BreakPoint at 004920F9 +De-Activate DECHash.pas line 5140 BreakPoint at:004920F9 +Adding coverage:DECHash.pas (DECHash) 5036 +Clearing BreakPoint at 00491C6F +De-Activate DECHash.pas line 5036 BreakPoint at:00491C6F +Adding coverage:DECHash.pas (DECHash) 5037 +Clearing BreakPoint at 00491C8E +De-Activate DECHash.pas line 5037 BreakPoint at:00491C8E +Adding coverage:DECHash.pas (DECHash) 5038 +Clearing BreakPoint at 00491CB0 +De-Activate DECHash.pas line 5038 BreakPoint at:00491CB0 +Adding coverage:DECHash.pas (DECHash) 5039 +Clearing BreakPoint at 00491CB5 +De-Activate DECHash.pas line 5039 BreakPoint at:00491CB5 +Adding coverage:DECHash.pas (DECHash) 5041 +Clearing BreakPoint at 00491CBD +De-Activate DECHash.pas line 5041 BreakPoint at:00491CBD +Adding coverage:DECHash.pas (DECHash) 5042 +Clearing BreakPoint at 00491CDC +De-Activate DECHash.pas line 5042 BreakPoint at:00491CDC +Adding coverage:DECHash.pas (DECHash) 5043 +Clearing BreakPoint at 00491CE7 +De-Activate DECHash.pas line 5043 BreakPoint at:00491CE7 +Adding coverage:DECHash.pas (DECHash) 5039 +Clearing BreakPoint at 00491CF7 +De-Activate DECHash.pas line 5039 BreakPoint at:00491CF7 +Adding coverage:DECHash.pas (DECHash) 5045 +Clearing BreakPoint at 00491CFF +De-Activate DECHash.pas line 5045 BreakPoint at:00491CFF +Adding coverage:DECHash.pas (DECHash) 5213 +Clearing BreakPoint at 00492367 +De-Activate DECHash.pas line 5213 BreakPoint at:00492367 +Adding coverage:DECHash.pas (DECHash) 5216 +Clearing BreakPoint at 00492377 +De-Activate DECHash.pas line 5216 BreakPoint at:00492377 +Adding coverage:DECHash.pas (DECHash) 5217 +Clearing BreakPoint at 00492383 +De-Activate DECHash.pas line 5217 BreakPoint at:00492383 +Adding coverage:DECHash.pas (DECHash) 5218 +Clearing BreakPoint at 0049239D +De-Activate DECHash.pas line 5218 BreakPoint at:0049239D +Adding coverage:DECHash.pas (DECHash) 5220 +Clearing BreakPoint at 004923AC +De-Activate DECHash.pas line 5220 BreakPoint at:004923AC +Adding coverage:DECHash.pas (DECHash) 4939 +Clearing BreakPoint at 004916DF +De-Activate DECHash.pas line 4939 BreakPoint at:004916DF +Adding coverage:DECHash.pas (DECHash) 4940 +Clearing BreakPoint at 004916EF +De-Activate DECHash.pas line 4940 BreakPoint at:004916EF +Adding coverage:DECHash.pas (DECHash) 4942 +Clearing BreakPoint at 00491747 +De-Activate DECHash.pas line 4942 BreakPoint at:00491747 +Adding coverage:DECHash.pas (DECHash) 4943 +Clearing BreakPoint at 0049174F +De-Activate DECHash.pas line 4943 BreakPoint at:0049174F +Adding coverage:DECHash.pas (DECHash) 5059 +Clearing BreakPoint at 00491E19 +De-Activate DECHash.pas line 5059 BreakPoint at:00491E19 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1432 +Clearing BreakPoint at 0047A3C9 +De-Activate DECHashAuthentication.pas line 1432 BreakPoint at:0047A3C9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1469 +Clearing BreakPoint at 0047A58C +De-Activate DECHashAuthentication.pas line 1469 BreakPoint at:0047A58C +Adding coverage:DECHash.pas (DECHash) 5051 +Clearing BreakPoint at 00491D58 +De-Activate DECHash.pas line 5051 BreakPoint at:00491D58 +Adding coverage:DECHashBase.pas (DECHashBase) 674 +Clearing BreakPoint at 00475C07 +De-Activate DECHashBase.pas line 674 BreakPoint at:00475C07 +Adding coverage:DECHashBase.pas (DECHashBase) 678 +Clearing BreakPoint at 00475C0D +De-Activate DECHashBase.pas line 678 BreakPoint at:00475C0D +Adding coverage:DECHashBase.pas (DECHashBase) 679 +Clearing BreakPoint at 00475C13 +De-Activate DECHashBase.pas line 679 BreakPoint at:00475C13 +Adding coverage:DECHashBase.pas (DECHashBase) 680 +Clearing BreakPoint at 00475C23 +De-Activate DECHashBase.pas line 680 BreakPoint at:00475C23 +Adding coverage:DECHashBase.pas (DECHashBase) 683 +Clearing BreakPoint at 00475C2E +De-Activate DECHashBase.pas line 683 BreakPoint at:00475C2E +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4675 +Clearing BreakPoint at 004903F4 +De-Activate DECHash.pas line 4675 BreakPoint at:004903F4 +Adding coverage:DECHash.pas (DECHash) 4676 +Clearing BreakPoint at 004903FD +De-Activate DECHash.pas line 4676 BreakPoint at:004903FD +Adding coverage:DECHash.pas (DECHash) 4677 +Clearing BreakPoint at 00490404 +De-Activate DECHash.pas line 4677 BreakPoint at:00490404 +Adding coverage:DECHash.pas (DECHash) 4670 +Clearing BreakPoint at 004903DC +De-Activate DECHash.pas line 4670 BreakPoint at:004903DC +Adding coverage:DECHash.pas (DECHash) 4671 +Clearing BreakPoint at 004903E5 +De-Activate DECHash.pas line 4671 BreakPoint at:004903E5 +Adding coverage:DECHash.pas (DECHash) 4672 +Clearing BreakPoint at 004903EC +De-Activate DECHash.pas line 4672 BreakPoint at:004903EC +Adding coverage:DECHash.pas (DECHash) 4680 +Clearing BreakPoint at 0049040C +De-Activate DECHash.pas line 4680 BreakPoint at:0049040C +Adding coverage:DECHash.pas (DECHash) 4681 +Clearing BreakPoint at 00490413 +De-Activate DECHash.pas line 4681 BreakPoint at:00490413 +Adding coverage:DECHash.pas (DECHash) 4683 +Clearing BreakPoint at 0049041B +De-Activate DECHash.pas line 4683 BreakPoint at:0049041B +Adding coverage:DECHash.pas (DECHash) 4684 +Clearing BreakPoint at 0049042B +De-Activate DECHash.pas line 4684 BreakPoint at:0049042B +Adding coverage:DECHash.pas (DECHash) 4685 +Clearing BreakPoint at 00490437 +De-Activate DECHash.pas line 4685 BreakPoint at:00490437 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4695 +Clearing BreakPoint at 00490454 +De-Activate DECHash.pas line 4695 BreakPoint at:00490454 +Adding coverage:DECHash.pas (DECHash) 4696 +Clearing BreakPoint at 0049045D +De-Activate DECHash.pas line 4696 BreakPoint at:0049045D +Adding coverage:DECHash.pas (DECHash) 4697 +Clearing BreakPoint at 00490464 +De-Activate DECHash.pas line 4697 BreakPoint at:00490464 +Adding coverage:DECHash.pas (DECHash) 4690 +Clearing BreakPoint at 0049043C +De-Activate DECHash.pas line 4690 BreakPoint at:0049043C +Adding coverage:DECHash.pas (DECHash) 4691 +Clearing BreakPoint at 00490445 +De-Activate DECHash.pas line 4691 BreakPoint at:00490445 +Adding coverage:DECHash.pas (DECHash) 4692 +Clearing BreakPoint at 0049044C +De-Activate DECHash.pas line 4692 BreakPoint at:0049044C +Adding coverage:DECHash.pas (DECHash) 4700 +Clearing BreakPoint at 0049046C +De-Activate DECHash.pas line 4700 BreakPoint at:0049046C +Adding coverage:DECHash.pas (DECHash) 4701 +Clearing BreakPoint at 00490473 +De-Activate DECHash.pas line 4701 BreakPoint at:00490473 +Adding coverage:DECHash.pas (DECHash) 4703 +Clearing BreakPoint at 0049047B +De-Activate DECHash.pas line 4703 BreakPoint at:0049047B +Adding coverage:DECHash.pas (DECHash) 4704 +Clearing BreakPoint at 0049048B +De-Activate DECHash.pas line 4704 BreakPoint at:0049048B +Adding coverage:DECHash.pas (DECHash) 4705 +Clearing BreakPoint at 00490497 +De-Activate DECHash.pas line 4705 BreakPoint at:00490497 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4715 +Clearing BreakPoint at 004904B4 +De-Activate DECHash.pas line 4715 BreakPoint at:004904B4 +Adding coverage:DECHash.pas (DECHash) 4716 +Clearing BreakPoint at 004904BD +De-Activate DECHash.pas line 4716 BreakPoint at:004904BD +Adding coverage:DECHash.pas (DECHash) 4717 +Clearing BreakPoint at 004904C4 +De-Activate DECHash.pas line 4717 BreakPoint at:004904C4 +Adding coverage:DECHash.pas (DECHash) 4710 +Clearing BreakPoint at 0049049C +De-Activate DECHash.pas line 4710 BreakPoint at:0049049C +Adding coverage:DECHash.pas (DECHash) 4711 +Clearing BreakPoint at 004904A5 +De-Activate DECHash.pas line 4711 BreakPoint at:004904A5 +Adding coverage:DECHash.pas (DECHash) 4712 +Clearing BreakPoint at 004904AC +De-Activate DECHash.pas line 4712 BreakPoint at:004904AC +Adding coverage:DECHash.pas (DECHash) 4720 +Clearing BreakPoint at 004904CC +De-Activate DECHash.pas line 4720 BreakPoint at:004904CC +Adding coverage:DECHash.pas (DECHash) 4721 +Clearing BreakPoint at 004904D3 +De-Activate DECHash.pas line 4721 BreakPoint at:004904D3 +Adding coverage:DECHash.pas (DECHash) 4723 +Clearing BreakPoint at 004904DB +De-Activate DECHash.pas line 4723 BreakPoint at:004904DB +Adding coverage:DECHash.pas (DECHash) 4724 +Clearing BreakPoint at 004904EB +De-Activate DECHash.pas line 4724 BreakPoint at:004904EB +Adding coverage:DECHash.pas (DECHash) 4725 +Clearing BreakPoint at 004904F7 +De-Activate DECHash.pas line 4725 BreakPoint at:004904F7 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4735 +Clearing BreakPoint at 00490514 +De-Activate DECHash.pas line 4735 BreakPoint at:00490514 +Adding coverage:DECHash.pas (DECHash) 4737 +Clearing BreakPoint at 0049051D +De-Activate DECHash.pas line 4737 BreakPoint at:0049051D +Adding coverage:DECHash.pas (DECHash) 4738 +Clearing BreakPoint at 00490522 +De-Activate DECHash.pas line 4738 BreakPoint at:00490522 +Adding coverage:DECHash.pas (DECHash) 4730 +Clearing BreakPoint at 004904FC +De-Activate DECHash.pas line 4730 BreakPoint at:004904FC +Adding coverage:DECHash.pas (DECHash) 4731 +Clearing BreakPoint at 00490505 +De-Activate DECHash.pas line 4731 BreakPoint at:00490505 +Adding coverage:DECHash.pas (DECHash) 4732 +Clearing BreakPoint at 0049050C +De-Activate DECHash.pas line 4732 BreakPoint at:0049050C +Adding coverage:DECHash.pas (DECHash) 5239 +Clearing BreakPoint at 00492408 +De-Activate DECHash.pas line 5239 BreakPoint at:00492408 +Adding coverage:DECHash.pas (DECHash) 5240 +Clearing BreakPoint at 0049242B +De-Activate DECHash.pas line 5240 BreakPoint at:0049242B +Adding coverage:DECHash.pas (DECHash) 5241 +Clearing BreakPoint at 00492432 +De-Activate DECHash.pas line 5241 BreakPoint at:00492432 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0049247C +Exact line:DECHash line 5245 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00522EE0 +After line:TestDECHashSHA3 line 1551 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00522F24 +Exact line:TestDECHashSHA3 line 1558 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 5245 +Clearing BreakPoint at 0049247C +De-Activate DECHash.pas line 5245 BreakPoint at:0049247C +Adding coverage:DECHash.pas (DECHash) 5248 +Clearing BreakPoint at 004924A4 +De-Activate DECHash.pas line 5248 BreakPoint at:004924A4 +Adding coverage:DECHash.pas (DECHash) 5250 +Clearing BreakPoint at 004924AE +De-Activate DECHash.pas line 5250 BreakPoint at:004924AE +Adding coverage:DECHash.pas (DECHash) 5251 +Clearing BreakPoint at 004924CE +De-Activate DECHash.pas line 5251 BreakPoint at:004924CE +Adding coverage:DECHash.pas (DECHash) 5252 +Clearing BreakPoint at 00492517 +De-Activate DECHash.pas line 5252 BreakPoint at:00492517 +Adding coverage:DECHash.pas (DECHash) 4741 +Clearing BreakPoint at 0049052C +De-Activate DECHash.pas line 4741 BreakPoint at:0049052C +Adding coverage:DECHash.pas (DECHash) 4742 +Clearing BreakPoint at 00490533 +De-Activate DECHash.pas line 4742 BreakPoint at:00490533 +Adding coverage:DECHash.pas (DECHash) 4744 +Clearing BreakPoint at 0049053B +De-Activate DECHash.pas line 4744 BreakPoint at:0049053B +Adding coverage:DECHash.pas (DECHash) 4774 +Clearing BreakPoint at 004905DE +De-Activate DECHash.pas line 4774 BreakPoint at:004905DE +Adding coverage:DECHash.pas (DECHash) 4791 +Clearing BreakPoint at 004906CD +De-Activate DECHash.pas line 4791 BreakPoint at:004906CD +Adding coverage:DECHash.pas (DECHash) 4745 +Clearing BreakPoint at 0049054B +De-Activate DECHash.pas line 4745 BreakPoint at:0049054B +Adding coverage:DECHash.pas (DECHash) 5185 +Clearing BreakPoint at 00492252 +De-Activate DECHash.pas line 5185 BreakPoint at:00492252 +Adding coverage:DECHash.pas (DECHash) 5186 +Clearing BreakPoint at 00492273 +De-Activate DECHash.pas line 5186 BreakPoint at:00492273 +Adding coverage:DECHash.pas (DECHash) 4983 +Clearing BreakPoint at 004919A4 +De-Activate DECHash.pas line 4983 BreakPoint at:004919A4 +Adding coverage:DECHash.pas (DECHash) 4984 +Clearing BreakPoint at 004919B2 +De-Activate DECHash.pas line 4984 BreakPoint at:004919B2 +Adding coverage:DECHash.pas (DECHash) 4986 +Clearing BreakPoint at 004919D7 +De-Activate DECHash.pas line 4986 BreakPoint at:004919D7 +Adding coverage:DECHash.pas (DECHash) 5255 +Clearing BreakPoint at 00492540 +De-Activate DECHash.pas line 5255 BreakPoint at:00492540 +Adding coverage:DECHash.pas (DECHash) 5256 +Clearing BreakPoint at 0049254C +De-Activate DECHash.pas line 5256 BreakPoint at:0049254C +Adding coverage:DECHash.pas (DECHash) 5257 +Clearing BreakPoint at 00492570 +De-Activate DECHash.pas line 5257 BreakPoint at:00492570 +Adding coverage:DECHash.pas (DECHash) 5258 +Clearing BreakPoint at 0049257D +De-Activate DECHash.pas line 5258 BreakPoint at:0049257D +Adding coverage:DECHash.pas (DECHash) 5259 +Clearing BreakPoint at 004925C3 +De-Activate DECHash.pas line 5259 BreakPoint at:004925C3 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4755 +Clearing BreakPoint at 00490568 +De-Activate DECHash.pas line 4755 BreakPoint at:00490568 +Adding coverage:DECHash.pas (DECHash) 4757 +Clearing BreakPoint at 00490571 +De-Activate DECHash.pas line 4757 BreakPoint at:00490571 +Adding coverage:DECHash.pas (DECHash) 4758 +Clearing BreakPoint at 00490576 +De-Activate DECHash.pas line 4758 BreakPoint at:00490576 +Adding coverage:DECHash.pas (DECHash) 4750 +Clearing BreakPoint at 00490550 +De-Activate DECHash.pas line 4750 BreakPoint at:00490550 +Adding coverage:DECHash.pas (DECHash) 4751 +Clearing BreakPoint at 00490559 +De-Activate DECHash.pas line 4751 BreakPoint at:00490559 +Adding coverage:DECHash.pas (DECHash) 4752 +Clearing BreakPoint at 00490560 +De-Activate DECHash.pas line 4752 BreakPoint at:00490560 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0049247C +Exact line:DECHash line 5245 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00523F18 +After line:TestDECHashSHA3 line 1737 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00523F5C +Exact line:TestDECHashSHA3 line 1744 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4761 +Clearing BreakPoint at 00490580 +De-Activate DECHash.pas line 4761 BreakPoint at:00490580 +Adding coverage:DECHash.pas (DECHash) 4762 +Clearing BreakPoint at 00490587 +De-Activate DECHash.pas line 4762 BreakPoint at:00490587 +Adding coverage:DECHash.pas (DECHash) 4764 +Clearing BreakPoint at 0049058F +De-Activate DECHash.pas line 4764 BreakPoint at:0049058F +Adding coverage:DECHash.pas (DECHash) 4765 +Clearing BreakPoint at 0049059F +De-Activate DECHash.pas line 4765 BreakPoint at:0049059F +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4574 +Clearing BreakPoint at 0049024C +De-Activate DECHash.pas line 4574 BreakPoint at:0049024C +Adding coverage:DECHash.pas (DECHash) 4575 +Clearing BreakPoint at 00490255 +De-Activate DECHash.pas line 4575 BreakPoint at:00490255 +Adding coverage:DECHash.pas (DECHash) 4576 +Clearing BreakPoint at 0049025C +De-Activate DECHash.pas line 4576 BreakPoint at:0049025C +Adding coverage:DECHash.pas (DECHash) 4584 +Clearing BreakPoint at 0049027C +De-Activate DECHash.pas line 4584 BreakPoint at:0049027C +Adding coverage:DECHash.pas (DECHash) 4585 +Clearing BreakPoint at 00490283 +De-Activate DECHash.pas line 4585 BreakPoint at:00490283 +Adding coverage:DECHash.pas (DECHash) 4587 +Clearing BreakPoint at 0049028B +De-Activate DECHash.pas line 4587 BreakPoint at:0049028B +Adding coverage:DECHash.pas (DECHash) 4588 +Clearing BreakPoint at 00490295 +De-Activate DECHash.pas line 4588 BreakPoint at:00490295 +Adding coverage:DECHash.pas (DECHash) 5198 +Clearing BreakPoint at 004922F4 +De-Activate DECHash.pas line 5198 BreakPoint at:004922F4 +Adding coverage:DECHash.pas (DECHash) 4579 +Clearing BreakPoint at 00490264 +De-Activate DECHash.pas line 4579 BreakPoint at:00490264 +Adding coverage:DECHash.pas (DECHash) 4580 +Clearing BreakPoint at 0049026D +De-Activate DECHash.pas line 4580 BreakPoint at:0049026D +Adding coverage:DECHash.pas (DECHash) 4581 +Clearing BreakPoint at 00490274 +De-Activate DECHash.pas line 4581 BreakPoint at:00490274 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0047B188 +Exact line:DECHashBitBase line 97 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00524A4D +Exact line:TestDECHashSHA3 line 1989 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00524A18 +Exact line:TestDECHashSHA3 line 1980 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D5D9 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043DF2B +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051E94E +Exact line:TestDECHashSHA3 line 489 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBF90 +Exact line:TestDECHash line 5571 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4593 +Clearing BreakPoint at 00490298 +De-Activate DECHash.pas line 4593 BreakPoint at:00490298 +Adding coverage:DECHash.pas (DECHash) 4594 +Clearing BreakPoint at 004902A1 +De-Activate DECHash.pas line 4594 BreakPoint at:004902A1 +Adding coverage:DECHash.pas (DECHash) 4595 +Clearing BreakPoint at 004902A8 +De-Activate DECHash.pas line 4595 BreakPoint at:004902A8 +Adding coverage:DECHash.pas (DECHash) 4603 +Clearing BreakPoint at 004902C8 +De-Activate DECHash.pas line 4603 BreakPoint at:004902C8 +Adding coverage:DECHash.pas (DECHash) 4604 +Clearing BreakPoint at 004902CF +De-Activate DECHash.pas line 4604 BreakPoint at:004902CF +Adding coverage:DECHash.pas (DECHash) 4606 +Clearing BreakPoint at 004902D7 +De-Activate DECHash.pas line 4606 BreakPoint at:004902D7 +Adding coverage:DECHash.pas (DECHash) 4607 +Clearing BreakPoint at 004902E1 +De-Activate DECHash.pas line 4607 BreakPoint at:004902E1 +Adding coverage:DECHash.pas (DECHash) 4598 +Clearing BreakPoint at 004902B0 +De-Activate DECHash.pas line 4598 BreakPoint at:004902B0 +Adding coverage:DECHash.pas (DECHash) 4599 +Clearing BreakPoint at 004902B9 +De-Activate DECHash.pas line 4599 BreakPoint at:004902B9 +Adding coverage:DECHash.pas (DECHash) 4600 +Clearing BreakPoint at 004902C0 +De-Activate DECHash.pas line 4600 BreakPoint at:004902C0 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D5D9 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043DF2B +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051E94E +Exact line:TestDECHashSHA3 line 489 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBF90 +Exact line:TestDECHash line 5571 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4612 +Clearing BreakPoint at 004902E4 +De-Activate DECHash.pas line 4612 BreakPoint at:004902E4 +Adding coverage:DECHash.pas (DECHash) 4613 +Clearing BreakPoint at 004902ED +De-Activate DECHash.pas line 4613 BreakPoint at:004902ED +Adding coverage:DECHash.pas (DECHash) 4614 +Clearing BreakPoint at 004902F4 +De-Activate DECHash.pas line 4614 BreakPoint at:004902F4 +Adding coverage:DECHash.pas (DECHash) 4622 +Clearing BreakPoint at 00490314 +De-Activate DECHash.pas line 4622 BreakPoint at:00490314 +Adding coverage:DECHash.pas (DECHash) 4623 +Clearing BreakPoint at 0049031B +De-Activate DECHash.pas line 4623 BreakPoint at:0049031B +Adding coverage:DECHash.pas (DECHash) 4625 +Clearing BreakPoint at 00490323 +De-Activate DECHash.pas line 4625 BreakPoint at:00490323 +Adding coverage:DECHash.pas (DECHash) 4626 +Clearing BreakPoint at 0049032D +De-Activate DECHash.pas line 4626 BreakPoint at:0049032D +Adding coverage:DECHash.pas (DECHash) 4617 +Clearing BreakPoint at 004902FC +De-Activate DECHash.pas line 4617 BreakPoint at:004902FC +Adding coverage:DECHash.pas (DECHash) 4618 +Clearing BreakPoint at 00490305 +De-Activate DECHash.pas line 4618 BreakPoint at:00490305 +Adding coverage:DECHash.pas (DECHash) 4619 +Clearing BreakPoint at 0049030C +De-Activate DECHash.pas line 4619 BreakPoint at:0049030C +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D5D9 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043DF2B +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051E94E +Exact line:TestDECHashSHA3 line 489 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBF90 +Exact line:TestDECHash line 5571 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHash.pas (DECHash) 4631 +Clearing BreakPoint at 00490330 +De-Activate DECHash.pas line 4631 BreakPoint at:00490330 +Adding coverage:DECHash.pas (DECHash) 4632 +Clearing BreakPoint at 00490339 +De-Activate DECHash.pas line 4632 BreakPoint at:00490339 +Adding coverage:DECHash.pas (DECHash) 4633 +Clearing BreakPoint at 00490340 +De-Activate DECHash.pas line 4633 BreakPoint at:00490340 +Adding coverage:DECHash.pas (DECHash) 4641 +Clearing BreakPoint at 00490360 +De-Activate DECHash.pas line 4641 BreakPoint at:00490360 +Adding coverage:DECHash.pas (DECHash) 4642 +Clearing BreakPoint at 00490367 +De-Activate DECHash.pas line 4642 BreakPoint at:00490367 +Adding coverage:DECHash.pas (DECHash) 4644 +Clearing BreakPoint at 0049036F +De-Activate DECHash.pas line 4644 BreakPoint at:0049036F +Adding coverage:DECHash.pas (DECHash) 4645 +Clearing BreakPoint at 00490379 +De-Activate DECHash.pas line 4645 BreakPoint at:00490379 +Adding coverage:DECHash.pas (DECHash) 4636 +Clearing BreakPoint at 00490348 +De-Activate DECHash.pas line 4636 BreakPoint at:00490348 +Adding coverage:DECHash.pas (DECHash) 4637 +Clearing BreakPoint at 00490351 +De-Activate DECHash.pas line 4637 BreakPoint at:00490351 +Adding coverage:DECHash.pas (DECHash) 4638 +Clearing BreakPoint at 00490358 +De-Activate DECHash.pas line 4638 BreakPoint at:00490358 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D5D9 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043DF2B +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBC74 +Exact line:TestDECHash line 5524 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051E94E +Exact line:TestDECHashSHA3 line 489 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BBF90 +Exact line:TestDECHash line 5571 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475849 +Exact line:DECHashBase line 592 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00475876 +Exact line:DECHashBase line 605 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC1D5 +After line:TestDECHash line 5616 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004BC0EB +Exact line:TestDECHash line 5603 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1019 +Clearing BreakPoint at 004773BC +De-Activate DECHashAuthentication.pas line 1019 BreakPoint at:004773BC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1020 +Clearing BreakPoint at 004773CC +De-Activate DECHashAuthentication.pas line 1020 BreakPoint at:004773CC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1021 +Clearing BreakPoint at 004775D9 +De-Activate DECHashAuthentication.pas line 1021 BreakPoint at:004775D9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1014 +Clearing BreakPoint at 00477388 +De-Activate DECHashAuthentication.pas line 1014 BreakPoint at:00477388 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1015 +Clearing BreakPoint at 00477397 +De-Activate DECHashAuthentication.pas line 1015 BreakPoint at:00477397 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1025 +Clearing BreakPoint at 004776A0 +De-Activate DECHashAuthentication.pas line 1025 BreakPoint at:004776A0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1026 +Clearing BreakPoint at 004776B0 +De-Activate DECHashAuthentication.pas line 1026 BreakPoint at:004776B0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1027 +Clearing BreakPoint at 004778A3 +De-Activate DECHashAuthentication.pas line 1027 BreakPoint at:004778A3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1016 +Clearing BreakPoint at 004773B5 +De-Activate DECHashAuthentication.pas line 1016 BreakPoint at:004773B5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1139 +Clearing BreakPoint at 00479368 +De-Activate DECHashAuthentication.pas line 1139 BreakPoint at:00479368 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1140 +Clearing BreakPoint at 00479377 +De-Activate DECHashAuthentication.pas line 1140 BreakPoint at:00479377 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1077 +Clearing BreakPoint at 00478F1C +De-Activate DECHashAuthentication.pas line 1077 BreakPoint at:00478F1C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1078 +Clearing BreakPoint at 00478F2C +De-Activate DECHashAuthentication.pas line 1078 BreakPoint at:00478F2C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1079 +Clearing BreakPoint at 00478F46 +De-Activate DECHashAuthentication.pas line 1079 BreakPoint at:00478F46 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1080 +Clearing BreakPoint at 00478F60 +De-Activate DECHashAuthentication.pas line 1080 BreakPoint at:00478F60 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1081 +Clearing BreakPoint at 00478F7A +De-Activate DECHashAuthentication.pas line 1081 BreakPoint at:00478F7A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1083 +Clearing BreakPoint at 00478F98 +De-Activate DECHashAuthentication.pas line 1083 BreakPoint at:00478F98 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1084 +Clearing BreakPoint at 00478FB2 +De-Activate DECHashAuthentication.pas line 1084 BreakPoint at:00478FB2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1086 +Clearing BreakPoint at 00478FBD +De-Activate DECHashAuthentication.pas line 1086 BreakPoint at:00478FBD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1087 +Clearing BreakPoint at 00478FC7 +De-Activate DECHashAuthentication.pas line 1087 BreakPoint at:00478FC7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1088 +Clearing BreakPoint at 00478FD5 +De-Activate DECHashAuthentication.pas line 1088 BreakPoint at:00478FD5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1090 +Clearing BreakPoint at 00478FF5 +De-Activate DECHashAuthentication.pas line 1090 BreakPoint at:00478FF5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1092 +Clearing BreakPoint at 00478FFD +De-Activate DECHashAuthentication.pas line 1092 BreakPoint at:00478FFD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1093 +Clearing BreakPoint at 00479011 +De-Activate DECHashAuthentication.pas line 1093 BreakPoint at:00479011 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1094 +Clearing BreakPoint at 00479021 +De-Activate DECHashAuthentication.pas line 1094 BreakPoint at:00479021 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1096 +Clearing BreakPoint at 00479043 +De-Activate DECHashAuthentication.pas line 1096 BreakPoint at:00479043 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1098 +Clearing BreakPoint at 00479053 +De-Activate DECHashAuthentication.pas line 1098 BreakPoint at:00479053 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1099 +Clearing BreakPoint at 00479067 +De-Activate DECHashAuthentication.pas line 1099 BreakPoint at:00479067 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1100 +Clearing BreakPoint at 00479077 +De-Activate DECHashAuthentication.pas line 1100 BreakPoint at:00479077 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1102 +Clearing BreakPoint at 00479085 +De-Activate DECHashAuthentication.pas line 1102 BreakPoint at:00479085 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1103 +Clearing BreakPoint at 00479099 +De-Activate DECHashAuthentication.pas line 1103 BreakPoint at:00479099 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1104 +Clearing BreakPoint at 004790A9 +De-Activate DECHashAuthentication.pas line 1104 BreakPoint at:004790A9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1106 +Clearing BreakPoint at 004790B7 +De-Activate DECHashAuthentication.pas line 1106 BreakPoint at:004790B7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1108 +Clearing BreakPoint at 004790BF +De-Activate DECHashAuthentication.pas line 1108 BreakPoint at:004790BF +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1110 +Clearing BreakPoint at 004790C3 +De-Activate DECHashAuthentication.pas line 1110 BreakPoint at:004790C3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1111 +Clearing BreakPoint at 004790EB +De-Activate DECHashAuthentication.pas line 1111 BreakPoint at:004790EB +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1110 +Clearing BreakPoint at 0047910C +De-Activate DECHashAuthentication.pas line 1110 BreakPoint at:0047910C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1113 +Clearing BreakPoint at 00479111 +De-Activate DECHashAuthentication.pas line 1113 BreakPoint at:00479111 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1114 +Clearing BreakPoint at 0047912D +De-Activate DECHashAuthentication.pas line 1114 BreakPoint at:0047912D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1088 +Clearing BreakPoint at 00479130 +De-Activate DECHashAuthentication.pas line 1088 BreakPoint at:00479130 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1116 +Clearing BreakPoint at 00479146 +De-Activate DECHashAuthentication.pas line 1116 BreakPoint at:00479146 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1118 +Clearing BreakPoint at 00479158 +De-Activate DECHashAuthentication.pas line 1118 BreakPoint at:00479158 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1141 +Clearing BreakPoint at 004793C2 +De-Activate DECHashAuthentication.pas line 1141 BreakPoint at:004793C2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1132 +Clearing BreakPoint at 00479330 +De-Activate DECHashAuthentication.pas line 1132 BreakPoint at:00479330 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1133 +Clearing BreakPoint at 0047933F +De-Activate DECHashAuthentication.pas line 1133 BreakPoint at:0047933F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1134 +Clearing BreakPoint at 00479361 +De-Activate DECHashAuthentication.pas line 1134 BreakPoint at:00479361 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1031 +Clearing BreakPoint at 0047796C +De-Activate DECHashAuthentication.pas line 1031 BreakPoint at:0047796C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1032 +Clearing BreakPoint at 0047797C +De-Activate DECHashAuthentication.pas line 1032 BreakPoint at:0047797C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1033 +Clearing BreakPoint at 0047799D +De-Activate DECHashAuthentication.pas line 1033 BreakPoint at:0047799D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1036 +Clearing BreakPoint at 00477E01 +De-Activate DECHashAuthentication.pas line 1036 BreakPoint at:00477E01 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1035 +Clearing BreakPoint at 00477BF4 +De-Activate DECHashAuthentication.pas line 1035 BreakPoint at:00477BF4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1040 +Clearing BreakPoint at 00477EC8 +De-Activate DECHashAuthentication.pas line 1040 BreakPoint at:00477EC8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1041 +Clearing BreakPoint at 00477ED8 +De-Activate DECHashAuthentication.pas line 1041 BreakPoint at:00477ED8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1042 +Clearing BreakPoint at 004780CD +De-Activate DECHashAuthentication.pas line 1042 BreakPoint at:004780CD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1046 +Clearing BreakPoint at 00478194 +De-Activate DECHashAuthentication.pas line 1046 BreakPoint at:00478194 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1047 +Clearing BreakPoint at 004781A4 +De-Activate DECHashAuthentication.pas line 1047 BreakPoint at:004781A4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1050 +Clearing BreakPoint at 0047841E +De-Activate DECHashAuthentication.pas line 1050 BreakPoint at:0047841E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1051 +Clearing BreakPoint at 0047862D +De-Activate DECHashAuthentication.pas line 1051 BreakPoint at:0047862D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1048 +Clearing BreakPoint at 004781C5 +De-Activate DECHashAuthentication.pas line 1048 BreakPoint at:004781C5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1055 +Clearing BreakPoint at 004786F4 +De-Activate DECHashAuthentication.pas line 1055 BreakPoint at:004786F4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1056 +Clearing BreakPoint at 00478704 +De-Activate DECHashAuthentication.pas line 1056 BreakPoint at:00478704 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1057 +Clearing BreakPoint at 004788F7 +De-Activate DECHashAuthentication.pas line 1057 BreakPoint at:004788F7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1061 +Clearing BreakPoint at 004789C0 +De-Activate DECHashAuthentication.pas line 1061 BreakPoint at:004789C0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1062 +Clearing BreakPoint at 004789D0 +De-Activate DECHashAuthentication.pas line 1062 BreakPoint at:004789D0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1065 +Clearing BreakPoint at 00478C48 +De-Activate DECHashAuthentication.pas line 1065 BreakPoint at:00478C48 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1066 +Clearing BreakPoint at 00478E55 +De-Activate DECHashAuthentication.pas line 1066 BreakPoint at:00478E55 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1063 +Clearing BreakPoint at 004789F1 +De-Activate DECHashAuthentication.pas line 1063 BreakPoint at:004789F1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1123 +Clearing BreakPoint at 00479220 +De-Activate DECHashAuthentication.pas line 1123 BreakPoint at:00479220 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1124 +Clearing BreakPoint at 0047922F +De-Activate DECHashAuthentication.pas line 1124 BreakPoint at:0047922F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1127 +Clearing BreakPoint at 004792C3 +De-Activate DECHashAuthentication.pas line 1127 BreakPoint at:004792C3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1128 +Clearing BreakPoint at 00479327 +De-Activate DECHashAuthentication.pas line 1128 BreakPoint at:00479327 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1125 +Clearing BreakPoint at 0047924C +De-Activate DECHashAuthentication.pas line 1125 BreakPoint at:0047924C +Adding coverage:DECCRC.pas (DECCRC) 597 +Clearing BreakPoint at 00451D6D +De-Activate DECCRC.pas line 597 BreakPoint at:00451D6D +Adding coverage:DECCRC.pas (DECCRC) 668 +Clearing BreakPoint at 00451E35 +De-Activate DECCRC.pas line 668 BreakPoint at:00451E35 +Adding coverage:DECCRC.pas (DECCRC) 669 +Clearing BreakPoint at 00451E40 +De-Activate DECCRC.pas line 669 BreakPoint at:00451E40 +Adding coverage:DECCRC.pas (DECCRC) 670 +Clearing BreakPoint at 00451E56 +De-Activate DECCRC.pas line 670 BreakPoint at:00451E56 +Adding coverage:DECCRC.pas (DECCRC) 671 +Clearing BreakPoint at 00451E59 +De-Activate DECCRC.pas line 671 BreakPoint at:00451E59 +Adding coverage:DECCRC.pas (DECCRC) 672 +Clearing BreakPoint at 00451E5C +De-Activate DECCRC.pas line 672 BreakPoint at:00451E5C +Adding coverage:DECCRC.pas (DECCRC) 693 +Clearing BreakPoint at 00451ECC +De-Activate DECCRC.pas line 693 BreakPoint at:00451ECC +Adding coverage:DECCRC.pas (DECCRC) 695 +Clearing BreakPoint at 00451EDB +De-Activate DECCRC.pas line 695 BreakPoint at:00451EDB +Adding coverage:DECCRC.pas (DECCRC) 698 +Clearing BreakPoint at 00451EF4 +De-Activate DECCRC.pas line 698 BreakPoint at:00451EF4 +Adding coverage:DECCRC.pas (DECCRC) 699 +Clearing BreakPoint at 00451EFF +De-Activate DECCRC.pas line 699 BreakPoint at:00451EFF +Adding coverage:DECCRC.pas (DECCRC) 700 +Clearing BreakPoint at 00451F17 +De-Activate DECCRC.pas line 700 BreakPoint at:00451F17 +Adding coverage:DECCRC.pas (DECCRC) 701 +Clearing BreakPoint at 00451F2B +De-Activate DECCRC.pas line 701 BreakPoint at:00451F2B +Adding coverage:DECCRC.pas (DECCRC) 702 +Clearing BreakPoint at 00451F31 +De-Activate DECCRC.pas line 702 BreakPoint at:00451F31 +Adding coverage:DECCRC.pas (DECCRC) 703 +Clearing BreakPoint at 00451F43 +De-Activate DECCRC.pas line 703 BreakPoint at:00451F43 +Adding coverage:DECCRC.pas (DECCRC) 717 +Clearing BreakPoint at 00451F4C +De-Activate DECCRC.pas line 717 BreakPoint at:00451F4C +Adding coverage:DECCRC.pas (DECCRC) 718 +Clearing BreakPoint at 00451F55 +De-Activate DECCRC.pas line 718 BreakPoint at:00451F55 +Adding coverage:DECCRC.pas (DECCRC) 719 +Clearing BreakPoint at 00451F61 +De-Activate DECCRC.pas line 719 BreakPoint at:00451F61 +Adding coverage:DECCRC.pas (DECCRC) 720 +Clearing BreakPoint at 00451F73 +De-Activate DECCRC.pas line 720 BreakPoint at:00451F73 +Adding coverage:DECCRC.pas (DECCRC) 721 +Clearing BreakPoint at 00451F8B +De-Activate DECCRC.pas line 721 BreakPoint at:00451F8B +Adding coverage:DECCRC.pas (DECCRC) 795 +Clearing BreakPoint at 00452000 +De-Activate DECCRC.pas line 795 BreakPoint at:00452000 +Adding coverage:DECCRC.pas (DECCRC) 796 +Clearing BreakPoint at 00452010 +De-Activate DECCRC.pas line 796 BreakPoint at:00452010 +Adding coverage:DECCRC.pas (DECCRC) 798 +Clearing BreakPoint at 00452016 +De-Activate DECCRC.pas line 798 BreakPoint at:00452016 +Adding coverage:DECCRC.pas (DECCRC) 799 +Clearing BreakPoint at 0045201E +De-Activate DECCRC.pas line 799 BreakPoint at:0045201E +Adding coverage:DECCRC.pas (DECCRC) 802 +Clearing BreakPoint at 0045202C +De-Activate DECCRC.pas line 802 BreakPoint at:0045202C +Adding coverage:DECCRC.pas (DECCRC) 803 +Clearing BreakPoint at 00452033 +De-Activate DECCRC.pas line 803 BreakPoint at:00452033 +Adding coverage:DECCRC.pas (DECCRC) 805 +Clearing BreakPoint at 00452039 +De-Activate DECCRC.pas line 805 BreakPoint at:00452039 +Adding coverage:DECCRC.pas (DECCRC) 806 +Clearing BreakPoint at 00452044 +De-Activate DECCRC.pas line 806 BreakPoint at:00452044 +Adding coverage:DECCRC.pas (DECCRC) 807 +Clearing BreakPoint at 0045205A +De-Activate DECCRC.pas line 807 BreakPoint at:0045205A +Adding coverage:DECCRC.pas (DECCRC) 808 +Clearing BreakPoint at 0045205D +De-Activate DECCRC.pas line 808 BreakPoint at:0045205D +Adding coverage:DECCRC.pas (DECCRC) 809 +Clearing BreakPoint at 00452060 +De-Activate DECCRC.pas line 809 BreakPoint at:00452060 +Adding coverage:DECCRC.pas (DECCRC) 810 +Clearing BreakPoint at 00452066 +De-Activate DECCRC.pas line 810 BreakPoint at:00452066 +Adding coverage:DECCRC.pas (DECCRC) 814 +Clearing BreakPoint at 00452078 +De-Activate DECCRC.pas line 814 BreakPoint at:00452078 +Adding coverage:DECCipherBase.pas (DECCipherBase) 850 +Clearing BreakPoint at 004D4A8C +De-Activate DECCipherBase.pas line 850 BreakPoint at:004D4A8C +Adding coverage:DECCipherBase.pas (DECCipherBase) 851 +Clearing BreakPoint at 004D4AA4 +De-Activate DECCipherBase.pas line 851 BreakPoint at:004D4AA4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 853 +Clearing BreakPoint at 004D4AAE +De-Activate DECCipherBase.pas line 853 BreakPoint at:004D4AAE +Adding coverage:DECCiphers.pas (DECCiphers) 2755 +Clearing BreakPoint at 004E44C4 +De-Activate DECCiphers.pas line 2755 BreakPoint at:004E44C4 +Adding coverage:DECCiphers.pas (DECCiphers) 2756 +Clearing BreakPoint at 004E44D0 +De-Activate DECCiphers.pas line 2756 BreakPoint at:004E44D0 +Adding coverage:DECCiphers.pas (DECCiphers) 2757 +Clearing BreakPoint at 004E44D9 +De-Activate DECCiphers.pas line 2757 BreakPoint at:004E44D9 +Adding coverage:DECCiphers.pas (DECCiphers) 2758 +Clearing BreakPoint at 004E44E3 +De-Activate DECCiphers.pas line 2758 BreakPoint at:004E44E3 +Adding coverage:DECCiphers.pas (DECCiphers) 2759 +Clearing BreakPoint at 004E44ED +De-Activate DECCiphers.pas line 2759 BreakPoint at:004E44ED +Adding coverage:DECCiphers.pas (DECCiphers) 2760 +Clearing BreakPoint at 004E44F7 +De-Activate DECCiphers.pas line 2760 BreakPoint at:004E44F7 +Adding coverage:DECCiphers.pas (DECCiphers) 2761 +Clearing BreakPoint at 004E44FE +De-Activate DECCiphers.pas line 2761 BreakPoint at:004E44FE +Adding coverage:DECCiphers.pas (DECCiphers) 2762 +Clearing BreakPoint at 004E4507 +De-Activate DECCiphers.pas line 2762 BreakPoint at:004E4507 +Adding coverage:DECCiphers.pas (DECCiphers) 2763 +Clearing BreakPoint at 004E4510 +De-Activate DECCiphers.pas line 2763 BreakPoint at:004E4510 +Adding coverage:DECCiphers.pas (DECCiphers) 2764 +Clearing BreakPoint at 004E451C +De-Activate DECCiphers.pas line 2764 BreakPoint at:004E451C +Adding coverage:DECCipherBase.pas (DECCipherBase) 854 +Clearing BreakPoint at 004D4AC2 +De-Activate DECCipherBase.pas line 854 BreakPoint at:004D4AC2 +Adding coverage:DECCipherBase.pas (DECCipherBase) 855 +Clearing BreakPoint at 004D4AD6 +De-Activate DECCipherBase.pas line 855 BreakPoint at:004D4AD6 +Adding coverage:DECCipherBase.pas (DECCipherBase) 858 +Clearing BreakPoint at 004D4AE7 +De-Activate DECCipherBase.pas line 858 BreakPoint at:004D4AE7 +Adding coverage:DECCipherBase.pas (DECCipherBase) 860 +Clearing BreakPoint at 004D4AFC +De-Activate DECCipherBase.pas line 860 BreakPoint at:004D4AFC +Adding coverage:DECCipherBase.pas (DECCipherBase) 867 +Clearing BreakPoint at 004D4B0E +De-Activate DECCipherBase.pas line 867 BreakPoint at:004D4B0E +Adding coverage:DECCipherBase.pas (DECCipherBase) 868 +Clearing BreakPoint at 004D4B2A +De-Activate DECCipherBase.pas line 868 BreakPoint at:004D4B2A +Adding coverage:DECCipherBase.pas (DECCipherBase) 869 +Clearing BreakPoint at 004D4B36 +De-Activate DECCipherBase.pas line 869 BreakPoint at:004D4B36 +Adding coverage:DECCipherBase.pas (DECCipherBase) 870 +Clearing BreakPoint at 004D4B3E +De-Activate DECCipherBase.pas line 870 BreakPoint at:004D4B3E +Adding coverage:DECCipherBase.pas (DECCipherBase) 871 +Clearing BreakPoint at 004D4B53 +De-Activate DECCipherBase.pas line 871 BreakPoint at:004D4B53 +Adding coverage:DECCipherBase.pas (DECCipherBase) 872 +Clearing BreakPoint at 004D4B68 +De-Activate DECCipherBase.pas line 872 BreakPoint at:004D4B68 +Adding coverage:DECCipherBase.pas (DECCipherBase) 874 +Clearing BreakPoint at 004D4B7D +De-Activate DECCipherBase.pas line 874 BreakPoint at:004D4B7D +Adding coverage:DECCipherBase.pas (DECCipherBase) 878 +Clearing BreakPoint at 004D4B9A +De-Activate DECCipherBase.pas line 878 BreakPoint at:004D4B9A +Adding coverage:DECCipherBase.pas (DECCipherBase) 880 +Clearing BreakPoint at 004D4BA2 +De-Activate DECCipherBase.pas line 880 BreakPoint at:004D4BA2 +Adding coverage:DECCipherBase.pas (DECCipherBase) 881 +Clearing BreakPoint at 004D4BA9 +De-Activate DECCipherBase.pas line 881 BreakPoint at:004D4BA9 +Adding coverage:DECCipherBase.pas (DECCipherBase) 883 +Clearing BreakPoint at 004D4BB0 +De-Activate DECCipherBase.pas line 883 BreakPoint at:004D4BB0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1090 +Clearing BreakPoint at 004D5314 +De-Activate DECCipherBase.pas line 1090 BreakPoint at:004D5314 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1091 +Clearing BreakPoint at 004D531B +De-Activate DECCipherBase.pas line 1091 BreakPoint at:004D531B +Adding coverage:DECCipherBase.pas (DECCipherBase) 1092 +Clearing BreakPoint at 004D532C +De-Activate DECCipherBase.pas line 1092 BreakPoint at:004D532C +Adding coverage:DECCipherBase.pas (DECCipherBase) 884 +Clearing BreakPoint at 004D4BB8 +De-Activate DECCipherBase.pas line 884 BreakPoint at:004D4BB8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1104 +Clearing BreakPoint at 004D9698 +De-Activate DECCipherModes.pas line 1104 BreakPoint at:004D9698 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1105 +Clearing BreakPoint at 004D96A9 +De-Activate DECCipherModes.pas line 1105 BreakPoint at:004D96A9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1107 +Clearing BreakPoint at 004D96B4 +De-Activate DECCipherModes.pas line 1107 BreakPoint at:004D96B4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 887 +Clearing BreakPoint at 004D4BD8 +De-Activate DECCipherBase.pas line 887 BreakPoint at:004D4BD8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 888 +Clearing BreakPoint at 004D4BE9 +De-Activate DECCipherBase.pas line 888 BreakPoint at:004D4BE9 +Adding coverage:DECCipherBase.pas (DECCipherBase) 891 +Clearing BreakPoint at 004D4BF1 +De-Activate DECCipherBase.pas line 891 BreakPoint at:004D4BF1 +Adding coverage:DECCipherBase.pas (DECCipherBase) 892 +Clearing BreakPoint at 004D4C02 +De-Activate DECCipherBase.pas line 892 BreakPoint at:004D4C02 +Adding coverage:DECCipherBase.pas (DECCipherBase) 893 +Clearing BreakPoint at 004D4C0A +De-Activate DECCipherBase.pas line 893 BreakPoint at:004D4C0A +Adding coverage:DECCipherBase.pas (DECCipherBase) 894 +Clearing BreakPoint at 004D4C12 +De-Activate DECCipherBase.pas line 894 BreakPoint at:004D4C12 +Adding coverage:DECCipherBase.pas (DECCipherBase) 895 +Clearing BreakPoint at 004D4C1A +De-Activate DECCipherBase.pas line 895 BreakPoint at:004D4C1A +Adding coverage:DECCipherBase.pas (DECCipherBase) 896 +Clearing BreakPoint at 004D4C22 +De-Activate DECCipherBase.pas line 896 BreakPoint at:004D4C22 +Adding coverage:DECCipherBase.pas (DECCipherBase) 897 +Clearing BreakPoint at 004D4C2A +De-Activate DECCipherBase.pas line 897 BreakPoint at:004D4C2A +Adding coverage:DECCipherBase.pas (DECCipherBase) 898 +Clearing BreakPoint at 004D4C38 +De-Activate DECCipherBase.pas line 898 BreakPoint at:004D4C38 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1108 +Clearing BreakPoint at 004D96C2 +De-Activate DECCipherModes.pas line 1108 BreakPoint at:004D96C2 +Adding coverage:DECCipherBase.pas (DECCipherBase) 823 +Clearing BreakPoint at 004D4938 +De-Activate DECCipherBase.pas line 823 BreakPoint at:004D4938 +Adding coverage:DECCipherBase.pas (DECCipherBase) 824 +Clearing BreakPoint at 004D4941 +De-Activate DECCipherBase.pas line 824 BreakPoint at:004D4941 +Adding coverage:DECCipherBase.pas (DECCipherBase) 827 +Clearing BreakPoint at 004D494F +De-Activate DECCipherBase.pas line 827 BreakPoint at:004D494F +Adding coverage:DECCipherBase.pas (DECCipherBase) 829 +Clearing BreakPoint at 004D4957 +De-Activate DECCipherBase.pas line 829 BreakPoint at:004D4957 +Adding coverage:DECCipherBase.pas (DECCipherBase) 831 +Clearing BreakPoint at 004D4973 +De-Activate DECCipherBase.pas line 831 BreakPoint at:004D4973 +Adding coverage:DECCipherBase.pas (DECCipherBase) 825 +Clearing BreakPoint at 004D4947 +De-Activate DECCipherBase.pas line 825 BreakPoint at:004D4947 +Adding coverage:DECCipherBase.pas (DECCipherBase) 841 +Clearing BreakPoint at 004D4A74 +De-Activate DECCipherBase.pas line 841 BreakPoint at:004D4A74 +Adding coverage:DECCipherBase.pas (DECCipherBase) 842 +Clearing BreakPoint at 004D4A7B +De-Activate DECCipherBase.pas line 842 BreakPoint at:004D4A7B +Adding coverage:DECCipherBase.pas (DECCipherBase) 843 +Clearing BreakPoint at 004D4A83 +De-Activate DECCipherBase.pas line 843 BreakPoint at:004D4A83 +Adding coverage:DECCipherBase.pas (DECCipherBase) 924 +Clearing BreakPoint at 004D4CF0 +De-Activate DECCipherBase.pas line 924 BreakPoint at:004D4CF0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 925 +Clearing BreakPoint at 004D4CF9 +De-Activate DECCipherBase.pas line 925 BreakPoint at:004D4CF9 +Adding coverage:DECCipherBase.pas (DECCipherBase) 926 +Clearing BreakPoint at 004D4D0C +De-Activate DECCipherBase.pas line 926 BreakPoint at:004D4D0C +Adding coverage:DECCipherBase.pas (DECCipherBase) 999 +Clearing BreakPoint at 004D504C +De-Activate DECCipherBase.pas line 999 BreakPoint at:004D504C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1001 +Clearing BreakPoint at 004D505B +De-Activate DECCipherBase.pas line 1001 BreakPoint at:004D505B +Adding coverage:DECCipherBase.pas (DECCipherBase) 1003 +Clearing BreakPoint at 004D5092 +De-Activate DECCipherBase.pas line 1003 BreakPoint at:004D5092 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D50A8 +Exact line:DECCipherBase line 1005 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509F2A +Exact line:TestDECCipher line 4275 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509AF8 +Exact line:TestDECCipher line 4216 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherBase.pas (DECCipherBase) 1005 +Clearing BreakPoint at 004D50A8 +De-Activate DECCipherBase.pas line 1005 BreakPoint at:004D50A8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1007 +Clearing BreakPoint at 004D50C5 +De-Activate DECCipherBase.pas line 1007 BreakPoint at:004D50C5 +Adding coverage:DECCipherBase.pas (DECCipherBase) 943 +Clearing BreakPoint at 004D4DA0 +De-Activate DECCipherBase.pas line 943 BreakPoint at:004D4DA0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 944 +Clearing BreakPoint at 004D4DC3 +De-Activate DECCipherBase.pas line 944 BreakPoint at:004D4DC3 +Adding coverage:DECCipherBase.pas (DECCipherBase) 945 +Clearing BreakPoint at 004D4DCA +De-Activate DECCipherBase.pas line 945 BreakPoint at:004D4DCA +Adding coverage:DECCipherBase.pas (DECCipherBase) 946 +Clearing BreakPoint at 004D4DD3 +De-Activate DECCipherBase.pas line 946 BreakPoint at:004D4DD3 +Adding coverage:DECCipherBase.pas (DECCipherBase) 948 +Clearing BreakPoint at 004D4DDB +De-Activate DECCipherBase.pas line 948 BreakPoint at:004D4DDB +Adding coverage:DECCipherBase.pas (DECCipherBase) 951 +Clearing BreakPoint at 004D4E15 +De-Activate DECCipherBase.pas line 951 BreakPoint at:004D4E15 +Adding coverage:DECCipherBase.pas (DECCipherBase) 954 +Clearing BreakPoint at 004D4E42 +De-Activate DECCipherBase.pas line 954 BreakPoint at:004D4E42 +Adding coverage:DECCiphers.pas (DECCiphers) 2856 +Clearing BreakPoint at 004E4524 +De-Activate DECCiphers.pas line 2856 BreakPoint at:004E4524 +Adding coverage:DECCiphers.pas (DECCiphers) 2857 +Clearing BreakPoint at 004E4533 +De-Activate DECCiphers.pas line 2857 BreakPoint at:004E4533 +Adding coverage:DECCiphers.pas (DECCiphers) 2858 +Clearing BreakPoint at 004E4539 +De-Activate DECCiphers.pas line 2858 BreakPoint at:004E4539 +Adding coverage:DECCiphers.pas (DECCiphers) 2864 +Clearing BreakPoint at 004E4561 +De-Activate DECCiphers.pas line 2864 BreakPoint at:004E4561 +Adding coverage:DECCiphers.pas (DECCiphers) 2865 +Clearing BreakPoint at 004E4573 +De-Activate DECCiphers.pas line 2865 BreakPoint at:004E4573 +Adding coverage:DECCiphers.pas (DECCiphers) 2866 +Clearing BreakPoint at 004E4584 +De-Activate DECCiphers.pas line 2866 BreakPoint at:004E4584 +Adding coverage:DECCiphers.pas (DECCiphers) 2877 +Clearing BreakPoint at 004E459C +De-Activate DECCiphers.pas line 2877 BreakPoint at:004E459C +Adding coverage:DECCiphers.pas (DECCiphers) 2878 +Clearing BreakPoint at 004E45A8 +De-Activate DECCiphers.pas line 2878 BreakPoint at:004E45A8 +Adding coverage:DECCiphers.pas (DECCiphers) 2879 +Clearing BreakPoint at 004E45B1 +De-Activate DECCiphers.pas line 2879 BreakPoint at:004E45B1 +Adding coverage:DECCiphers.pas (DECCiphers) 2881 +Clearing BreakPoint at 004E45BB +De-Activate DECCiphers.pas line 2881 BreakPoint at:004E45BB +Adding coverage:DECCiphers.pas (DECCiphers) 2883 +Clearing BreakPoint at 004E45C0 +De-Activate DECCiphers.pas line 2883 BreakPoint at:004E45C0 +Adding coverage:DECCiphers.pas (DECCiphers) 2884 +Clearing BreakPoint at 004E45C9 +De-Activate DECCiphers.pas line 2884 BreakPoint at:004E45C9 +Adding coverage:DECCiphers.pas (DECCiphers) 2888 +Clearing BreakPoint at 004E463D +De-Activate DECCiphers.pas line 2888 BreakPoint at:004E463D +Adding coverage:DECCiphers.pas (DECCiphers) 2889 +Clearing BreakPoint at 004E464F +De-Activate DECCiphers.pas line 2889 BreakPoint at:004E464F +Adding coverage:DECCiphers.pas (DECCiphers) 2890 +Clearing BreakPoint at 004E4661 +De-Activate DECCiphers.pas line 2890 BreakPoint at:004E4661 +Adding coverage:DECCiphers.pas (DECCiphers) 2891 +Clearing BreakPoint at 004E4673 +De-Activate DECCiphers.pas line 2891 BreakPoint at:004E4673 +Adding coverage:DECCiphers.pas (DECCiphers) 2892 +Clearing BreakPoint at 004E467C +De-Activate DECCiphers.pas line 2892 BreakPoint at:004E467C +Adding coverage:DECCiphers.pas (DECCiphers) 2881 +Clearing BreakPoint at 004E467F +De-Activate DECCiphers.pas line 2881 BreakPoint at:004E467F +Adding coverage:DECCiphers.pas (DECCiphers) 2939 +Clearing BreakPoint at 004E4919 +De-Activate DECCiphers.pas line 2939 BreakPoint at:004E4919 +Adding coverage:DECCiphers.pas (DECCiphers) 2867 +Clearing BreakPoint at 004E458F +De-Activate DECCiphers.pas line 2867 BreakPoint at:004E458F +Adding coverage:DECCiphers.pas (DECCiphers) 2945 +Clearing BreakPoint at 004E4920 +De-Activate DECCiphers.pas line 2945 BreakPoint at:004E4920 +Adding coverage:DECCiphers.pas (DECCiphers) 2946 +Clearing BreakPoint at 004E4929 +De-Activate DECCiphers.pas line 2946 BreakPoint at:004E4929 +Adding coverage:DECCiphers.pas (DECCiphers) 2947 +Clearing BreakPoint at 004E493C +De-Activate DECCiphers.pas line 2947 BreakPoint at:004E493C +Adding coverage:DECCiphers.pas (DECCiphers) 2948 +Clearing BreakPoint at 004E4952 +De-Activate DECCiphers.pas line 2948 BreakPoint at:004E4952 +Adding coverage:DECCiphers.pas (DECCiphers) 2949 +Clearing BreakPoint at 004E4956 +De-Activate DECCiphers.pas line 2949 BreakPoint at:004E4956 +Adding coverage:DECCiphers.pas (DECCiphers) 2951 +Clearing BreakPoint at 004E4975 +De-Activate DECCiphers.pas line 2951 BreakPoint at:004E4975 +Adding coverage:DECCiphers.pas (DECCiphers) 2955 +Clearing BreakPoint at 004E4A04 +De-Activate DECCiphers.pas line 2955 BreakPoint at:004E4A04 +Adding coverage:DECCiphers.pas (DECCiphers) 2956 +Clearing BreakPoint at 004E4A08 +De-Activate DECCiphers.pas line 2956 BreakPoint at:004E4A08 +Adding coverage:DECCiphers.pas (DECCiphers) 2949 +Clearing BreakPoint at 004E4A0B +De-Activate DECCiphers.pas line 2949 BreakPoint at:004E4A0B +Adding coverage:DECCiphers.pas (DECCiphers) 2957 +Clearing BreakPoint at 004E4A14 +De-Activate DECCiphers.pas line 2957 BreakPoint at:004E4A14 +Adding coverage:DECCiphers.pas (DECCiphers) 2870 +Clearing BreakPoint at 004E4597 +De-Activate DECCiphers.pas line 2870 BreakPoint at:004E4597 +Adding coverage:DECCipherBase.pas (DECCipherBase) 955 +Clearing BreakPoint at 004D4E50 +De-Activate DECCipherBase.pas line 955 BreakPoint at:004D4E50 +Adding coverage:DECCipherBase.pas (DECCipherBase) 959 +Clearing BreakPoint at 004D4E70 +De-Activate DECCipherBase.pas line 959 BreakPoint at:004D4E70 +Adding coverage:DECCipherBase.pas (DECCipherBase) 961 +Clearing BreakPoint at 004D4E86 +De-Activate DECCipherBase.pas line 961 BreakPoint at:004D4E86 +Adding coverage:DECCipherBase.pas (DECCipherBase) 962 +Clearing BreakPoint at 004D4EA0 +De-Activate DECCipherBase.pas line 962 BreakPoint at:004D4EA0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 963 +Clearing BreakPoint at 004D4EA6 +De-Activate DECCipherBase.pas line 963 BreakPoint at:004D4EA6 +Adding coverage:DECCipherBase.pas (DECCipherBase) 966 +Clearing BreakPoint at 004D4EB4 +De-Activate DECCipherBase.pas line 966 BreakPoint at:004D4EB4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 974 +Clearing BreakPoint at 004D4F00 +De-Activate DECCipherBase.pas line 974 BreakPoint at:004D4F00 +Adding coverage:DECCipherBase.pas (DECCipherBase) 976 +Clearing BreakPoint at 004D4F11 +De-Activate DECCipherBase.pas line 976 BreakPoint at:004D4F11 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1123 +Clearing BreakPoint at 004D9794 +De-Activate DECCipherModes.pas line 1123 BreakPoint at:004D9794 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1126 +Clearing BreakPoint at 004D97A0 +De-Activate DECCipherModes.pas line 1126 BreakPoint at:004D97A0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1128 +Clearing BreakPoint at 004D97C1 +De-Activate DECCipherModes.pas line 1128 BreakPoint at:004D97C1 +Adding coverage:DECCipherBase.pas (DECCipherBase) 978 +Clearing BreakPoint at 004D4F1C +De-Activate DECCipherBase.pas line 978 BreakPoint at:004D4F1C +Adding coverage:DECCipherBase.pas (DECCipherBase) 980 +Clearing BreakPoint at 004D4F33 +De-Activate DECCipherBase.pas line 980 BreakPoint at:004D4F33 +Adding coverage:DECCipherBase.pas (DECCipherBase) 981 +Clearing BreakPoint at 004D4F3A +De-Activate DECCipherBase.pas line 981 BreakPoint at:004D4F3A +Adding coverage:DECCipherBase.pas (DECCipherBase) 1019 +Clearing BreakPoint at 004D5153 +De-Activate DECCipherBase.pas line 1019 BreakPoint at:004D5153 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1015 +Clearing BreakPoint at 004D511B +De-Activate DECCipherBase.pas line 1015 BreakPoint at:004D511B +Adding coverage:DECCipherBase.pas (DECCipherBase) 968 +Clearing BreakPoint at 004D4EC3 +De-Activate DECCipherBase.pas line 968 BreakPoint at:004D4EC3 +Adding coverage:DECCiphers.pas (DECCiphers) 2965 +Clearing BreakPoint at 004E4A18 +De-Activate DECCiphers.pas line 2965 BreakPoint at:004E4A18 +Adding coverage:DECCiphers.pas (DECCiphers) 2966 +Clearing BreakPoint at 004E4A27 +De-Activate DECCiphers.pas line 2966 BreakPoint at:004E4A27 +Adding coverage:DECCiphers.pas (DECCiphers) 2968 +Clearing BreakPoint at 004E4A4E +De-Activate DECCiphers.pas line 2968 BreakPoint at:004E4A4E +Adding coverage:DECCiphers.pas (DECCiphers) 2969 +Clearing BreakPoint at 004E4A57 +De-Activate DECCiphers.pas line 2969 BreakPoint at:004E4A57 +Adding coverage:DECCiphers.pas (DECCiphers) 2970 +Clearing BreakPoint at 004E4A5F +De-Activate DECCiphers.pas line 2970 BreakPoint at:004E4A5F +Adding coverage:DECCiphers.pas (DECCiphers) 2971 +Clearing BreakPoint at 004E4A68 +De-Activate DECCiphers.pas line 2971 BreakPoint at:004E4A68 +Adding coverage:DECCiphers.pas (DECCiphers) 2972 +Clearing BreakPoint at 004E4A71 +De-Activate DECCiphers.pas line 2972 BreakPoint at:004E4A71 +Adding coverage:DECCiphers.pas (DECCiphers) 2974 +Clearing BreakPoint at 004E4A7A +De-Activate DECCiphers.pas line 2974 BreakPoint at:004E4A7A +Adding coverage:DECCiphers.pas (DECCiphers) 2976 +Clearing BreakPoint at 004E4A94 +De-Activate DECCiphers.pas line 2976 BreakPoint at:004E4A94 +Adding coverage:DECCiphers.pas (DECCiphers) 2977 +Clearing BreakPoint at 004E4A9F +De-Activate DECCiphers.pas line 2977 BreakPoint at:004E4A9F +Adding coverage:DECCiphers.pas (DECCiphers) 2978 +Clearing BreakPoint at 004E4AAB +De-Activate DECCiphers.pas line 2978 BreakPoint at:004E4AAB +Adding coverage:DECCiphers.pas (DECCiphers) 2979 +Clearing BreakPoint at 004E4AB7 +De-Activate DECCiphers.pas line 2979 BreakPoint at:004E4AB7 +Adding coverage:DECCiphers.pas (DECCiphers) 2981 +Clearing BreakPoint at 004E4AC3 +De-Activate DECCiphers.pas line 2981 BreakPoint at:004E4AC3 +Adding coverage:DECCiphers.pas (DECCiphers) 2985 +Clearing BreakPoint at 004E4B1C +De-Activate DECCiphers.pas line 2985 BreakPoint at:004E4B1C +Adding coverage:DECCiphers.pas (DECCiphers) 2989 +Clearing BreakPoint at 004E4B75 +De-Activate DECCiphers.pas line 2989 BreakPoint at:004E4B75 +Adding coverage:DECCiphers.pas (DECCiphers) 2993 +Clearing BreakPoint at 004E4BCE +De-Activate DECCiphers.pas line 2993 BreakPoint at:004E4BCE +Adding coverage:DECCiphers.pas (DECCiphers) 2998 +Clearing BreakPoint at 004E4C27 +De-Activate DECCiphers.pas line 2998 BreakPoint at:004E4C27 +Adding coverage:DECCiphers.pas (DECCiphers) 2999 +Clearing BreakPoint at 004E4C30 +De-Activate DECCiphers.pas line 2999 BreakPoint at:004E4C30 +Adding coverage:DECCiphers.pas (DECCiphers) 2974 +Clearing BreakPoint at 004E4C33 +De-Activate DECCiphers.pas line 2974 BreakPoint at:004E4C33 +Adding coverage:DECCiphers.pas (DECCiphers) 3001 +Clearing BreakPoint at 004E4C3C +De-Activate DECCiphers.pas line 3001 BreakPoint at:004E4C3C +Adding coverage:DECCiphers.pas (DECCiphers) 3002 +Clearing BreakPoint at 004E4C47 +De-Activate DECCiphers.pas line 3002 BreakPoint at:004E4C47 +Adding coverage:DECCiphers.pas (DECCiphers) 3003 +Clearing BreakPoint at 004E4C53 +De-Activate DECCiphers.pas line 3003 BreakPoint at:004E4C53 +Adding coverage:DECCiphers.pas (DECCiphers) 3004 +Clearing BreakPoint at 004E4C5F +De-Activate DECCiphers.pas line 3004 BreakPoint at:004E4C5F +Adding coverage:DECCiphers.pas (DECCiphers) 3006 +Clearing BreakPoint at 004E4C6B +De-Activate DECCiphers.pas line 3006 BreakPoint at:004E4C6B +Adding coverage:DECCiphers.pas (DECCiphers) 3010 +Clearing BreakPoint at 004E4CD3 +De-Activate DECCiphers.pas line 3010 BreakPoint at:004E4CD3 +Adding coverage:DECCiphers.pas (DECCiphers) 3014 +Clearing BreakPoint at 004E4D3C +De-Activate DECCiphers.pas line 3014 BreakPoint at:004E4D3C +Adding coverage:DECCiphers.pas (DECCiphers) 3018 +Clearing BreakPoint at 004E4DA5 +De-Activate DECCiphers.pas line 3018 BreakPoint at:004E4DA5 +Adding coverage:DECCiphers.pas (DECCiphers) 3022 +Clearing BreakPoint at 004E4E0E +De-Activate DECCiphers.pas line 3022 BreakPoint at:004E4E0E +Adding coverage:DECCipherBase.pas (DECCipherBase) 969 +Clearing BreakPoint at 004D4EDE +De-Activate DECCipherBase.pas line 969 BreakPoint at:004D4EDE +Adding coverage:DECCipherBase.pas (DECCipherBase) 1048 +Clearing BreakPoint at 004D515C +De-Activate DECCipherBase.pas line 1048 BreakPoint at:004D515C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1050 +Clearing BreakPoint at 004D516B +De-Activate DECCipherBase.pas line 1050 BreakPoint at:004D516B +Adding coverage:DECCipherBase.pas (DECCipherBase) 1052 +Clearing BreakPoint at 004D51A4 +De-Activate DECCipherBase.pas line 1052 BreakPoint at:004D51A4 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D51BA +Exact line:DECCipherBase line 1054 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509F66 +Exact line:TestDECCipher line 4280 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509EA0 +Exact line:TestDECCipher line 4264 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherBase.pas (DECCipherBase) 1054 +Clearing BreakPoint at 004D51BA +De-Activate DECCipherBase.pas line 1054 BreakPoint at:004D51BA +Adding coverage:DECCipherBase.pas (DECCipherBase) 1056 +Clearing BreakPoint at 004D51D9 +De-Activate DECCipherBase.pas line 1056 BreakPoint at:004D51D9 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1068 +Clearing BreakPoint at 004D5273 +De-Activate DECCipherBase.pas line 1068 BreakPoint at:004D5273 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1064 +Clearing BreakPoint at 004D5237 +De-Activate DECCipherBase.pas line 1064 BreakPoint at:004D5237 +Adding coverage:DECCipherBase.pas (DECCipherBase) 901 +Clearing BreakPoint at 004D4C4C +De-Activate DECCipherBase.pas line 901 BreakPoint at:004D4C4C +Adding coverage:DECCipherBase.pas (DECCipherBase) 902 +Clearing BreakPoint at 004D4C58 +De-Activate DECCipherBase.pas line 902 BreakPoint at:004D4C58 +Adding coverage:DECCipherBase.pas (DECCipherBase) 904 +Clearing BreakPoint at 004D4C63 +De-Activate DECCipherBase.pas line 904 BreakPoint at:004D4C63 +Adding coverage:DECCipherBase.pas (DECCipherBase) 907 +Clearing BreakPoint at 004D4C79 +De-Activate DECCipherBase.pas line 907 BreakPoint at:004D4C79 +Adding coverage:DECCipherBase.pas (DECCipherBase) 908 +Clearing BreakPoint at 004D4C82 +De-Activate DECCipherBase.pas line 908 BreakPoint at:004D4C82 +Adding coverage:DECCipherModes.pas (DECCipherModes) 735 +Clearing BreakPoint at 004D84CC +De-Activate DECCipherModes.pas line 735 BreakPoint at:004D84CC +Adding coverage:DECCipherModes.pas (DECCipherModes) 736 +Clearing BreakPoint at 004D84E8 +De-Activate DECCipherModes.pas line 736 BreakPoint at:004D84E8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 747 +Clearing BreakPoint at 004D855E +De-Activate DECCipherModes.pas line 747 BreakPoint at:004D855E +Adding coverage:DECCipherModes.pas (DECCipherModes) 749 +Clearing BreakPoint at 004D8587 +De-Activate DECCipherModes.pas line 749 BreakPoint at:004D8587 +Adding coverage:DECCipherBase.pas (DECCipherBase) 910 +Clearing BreakPoint at 004D4C8A +De-Activate DECCipherBase.pas line 910 BreakPoint at:004D4C8A +Adding coverage:DECCipherBase.pas (DECCipherBase) 1162 +Clearing BreakPoint at 004D56B8 +De-Activate DECCipherBase.pas line 1162 BreakPoint at:004D56B8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1163 +Clearing BreakPoint at 004D56C7 +De-Activate DECCipherBase.pas line 1163 BreakPoint at:004D56C7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1111 +Clearing BreakPoint at 004D96D4 +De-Activate DECCipherModes.pas line 1111 BreakPoint at:004D96D4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1112 +Clearing BreakPoint at 004D96F0 +De-Activate DECCipherModes.pas line 1112 BreakPoint at:004D96F0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1077 +Clearing BreakPoint at 004D529C +De-Activate DECCipherBase.pas line 1077 BreakPoint at:004D529C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1078 +Clearing BreakPoint at 004D52A4 +De-Activate DECCipherBase.pas line 1078 BreakPoint at:004D52A4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1080 +Clearing BreakPoint at 004D52AD +De-Activate DECCipherBase.pas line 1080 BreakPoint at:004D52AD +Adding coverage:DECCipherBase.pas (DECCipherBase) 1081 +Clearing BreakPoint at 004D52B4 +De-Activate DECCipherBase.pas line 1081 BreakPoint at:004D52B4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1082 +Clearing BreakPoint at 004D52BC +De-Activate DECCipherBase.pas line 1082 BreakPoint at:004D52BC +Adding coverage:DECCipherBase.pas (DECCipherBase) 1083 +Clearing BreakPoint at 004D52D7 +De-Activate DECCipherBase.pas line 1083 BreakPoint at:004D52D7 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1084 +Clearing BreakPoint at 004D52EE +De-Activate DECCipherBase.pas line 1084 BreakPoint at:004D52EE +Adding coverage:DECCipherBase.pas (DECCipherBase) 1087 +Clearing BreakPoint at 004D530E +De-Activate DECCipherBase.pas line 1087 BreakPoint at:004D530E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1114 +Clearing BreakPoint at 004D96F8 +De-Activate DECCipherModes.pas line 1114 BreakPoint at:004D96F8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1120 +Clearing BreakPoint at 004D976F +De-Activate DECCipherModes.pas line 1120 BreakPoint at:004D976F +Adding coverage:DECCipherBase.pas (DECCipherBase) 1164 +Clearing BreakPoint at 004D56CF +De-Activate DECCipherBase.pas line 1164 BreakPoint at:004D56CF +Adding coverage:DECCipherBase.pas (DECCipherBase) 1165 +Clearing BreakPoint at 004D56D9 +De-Activate DECCipherBase.pas line 1165 BreakPoint at:004D56D9 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D56EF +After line:DECCipherBase line 1167 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509EE6 +After line:TestDECCipher line 4270 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050A1AC +Exact line:TestDECCipher line 4316 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 1033 +Clearing BreakPoint at 004DF448 +De-Activate DECCiphers.pas line 1033 BreakPoint at:004DF448 +Adding coverage:DECCiphers.pas (DECCiphers) 1034 +Clearing BreakPoint at 004DF454 +De-Activate DECCiphers.pas line 1034 BreakPoint at:004DF454 +Adding coverage:DECCiphers.pas (DECCiphers) 1035 +Clearing BreakPoint at 004DF45B +De-Activate DECCiphers.pas line 1035 BreakPoint at:004DF45B +Adding coverage:DECCiphers.pas (DECCiphers) 1036 +Clearing BreakPoint at 004DF465 +De-Activate DECCiphers.pas line 1036 BreakPoint at:004DF465 +Adding coverage:DECCiphers.pas (DECCiphers) 1037 +Clearing BreakPoint at 004DF46F +De-Activate DECCiphers.pas line 1037 BreakPoint at:004DF46F +Adding coverage:DECCiphers.pas (DECCiphers) 1038 +Clearing BreakPoint at 004DF477 +De-Activate DECCiphers.pas line 1038 BreakPoint at:004DF477 +Adding coverage:DECCiphers.pas (DECCiphers) 1039 +Clearing BreakPoint at 004DF47E +De-Activate DECCiphers.pas line 1039 BreakPoint at:004DF47E +Adding coverage:DECCiphers.pas (DECCiphers) 1040 +Clearing BreakPoint at 004DF487 +De-Activate DECCiphers.pas line 1040 BreakPoint at:004DF487 +Adding coverage:DECCiphers.pas (DECCiphers) 1041 +Clearing BreakPoint at 004DF490 +De-Activate DECCiphers.pas line 1041 BreakPoint at:004DF490 +Adding coverage:DECCiphers.pas (DECCiphers) 1042 +Clearing BreakPoint at 004DF49C +De-Activate DECCiphers.pas line 1042 BreakPoint at:004DF49C +Adding coverage:DECCipherBase.pas (DECCipherBase) 929 +Clearing BreakPoint at 004D4D18 +De-Activate DECCipherBase.pas line 929 BreakPoint at:004D4D18 +Adding coverage:DECCipherBase.pas (DECCipherBase) 930 +Clearing BreakPoint at 004D4D24 +De-Activate DECCipherBase.pas line 930 BreakPoint at:004D4D24 +Adding coverage:DECCipherBase.pas (DECCipherBase) 931 +Clearing BreakPoint at 004D4D34 +De-Activate DECCipherBase.pas line 931 BreakPoint at:004D4D34 +Adding coverage:DECCiphers.pas (DECCiphers) 1064 +Clearing BreakPoint at 004DF510 +De-Activate DECCiphers.pas line 1064 BreakPoint at:004DF510 +Adding coverage:DECCiphers.pas (DECCiphers) 1065 +Clearing BreakPoint at 004DF51C +De-Activate DECCiphers.pas line 1065 BreakPoint at:004DF51C +Adding coverage:DECCiphers.pas (DECCiphers) 1066 +Clearing BreakPoint at 004DF525 +De-Activate DECCiphers.pas line 1066 BreakPoint at:004DF525 +Adding coverage:DECCiphers.pas (DECCiphers) 1067 +Clearing BreakPoint at 004DF52F +De-Activate DECCiphers.pas line 1067 BreakPoint at:004DF52F +Adding coverage:DECCiphers.pas (DECCiphers) 1068 +Clearing BreakPoint at 004DF539 +De-Activate DECCiphers.pas line 1068 BreakPoint at:004DF539 +Adding coverage:DECCiphers.pas (DECCiphers) 1069 +Clearing BreakPoint at 004DF543 +De-Activate DECCiphers.pas line 1069 BreakPoint at:004DF543 +Adding coverage:DECCiphers.pas (DECCiphers) 1070 +Clearing BreakPoint at 004DF54A +De-Activate DECCiphers.pas line 1070 BreakPoint at:004DF54A +Adding coverage:DECCiphers.pas (DECCiphers) 1071 +Clearing BreakPoint at 004DF553 +De-Activate DECCiphers.pas line 1071 BreakPoint at:004DF553 +Adding coverage:DECCiphers.pas (DECCiphers) 1072 +Clearing BreakPoint at 004DF55C +De-Activate DECCiphers.pas line 1072 BreakPoint at:004DF55C +Adding coverage:DECCiphers.pas (DECCiphers) 1073 +Clearing BreakPoint at 004DF568 +De-Activate DECCiphers.pas line 1073 BreakPoint at:004DF568 +Adding coverage:DECCipherBase.pas (DECCipherBase) 984 +Clearing BreakPoint at 004D4F68 +De-Activate DECCipherBase.pas line 984 BreakPoint at:004D4F68 +Adding coverage:DECCipherBase.pas (DECCipherBase) 986 +Clearing BreakPoint at 004D4F77 +De-Activate DECCipherBase.pas line 986 BreakPoint at:004D4F77 +Adding coverage:DECCipherBase.pas (DECCipherBase) 990 +Clearing BreakPoint at 004D4FC4 +De-Activate DECCipherBase.pas line 990 BreakPoint at:004D4FC4 +Adding coverage:DECCipherBase.pas (DECCipherBase) 993 +Clearing BreakPoint at 004D5014 +De-Activate DECCipherBase.pas line 993 BreakPoint at:004D5014 +Adding coverage:DECCiphers.pas (DECCiphers) 1082 +Clearing BreakPoint at 004DF570 +De-Activate DECCiphers.pas line 1082 BreakPoint at:004DF570 +Adding coverage:DECCiphers.pas (DECCiphers) 1083 +Clearing BreakPoint at 004DF580 +De-Activate DECCiphers.pas line 1083 BreakPoint at:004DF580 +Adding coverage:DECCiphers.pas (DECCiphers) 1084 +Clearing BreakPoint at 004DF586 +De-Activate DECCiphers.pas line 1084 BreakPoint at:004DF586 +Adding coverage:DECCiphers.pas (DECCiphers) 1085 +Clearing BreakPoint at 004DF58F +De-Activate DECCiphers.pas line 1085 BreakPoint at:004DF58F +Adding coverage:DECCiphers.pas (DECCiphers) 1087 +Clearing BreakPoint at 004DF59D +De-Activate DECCiphers.pas line 1087 BreakPoint at:004DF59D +Adding coverage:DECCiphers.pas (DECCiphers) 1088 +Clearing BreakPoint at 004DF5AF +De-Activate DECCiphers.pas line 1088 BreakPoint at:004DF5AF +Adding coverage:DECCiphers.pas (DECCiphers) 1089 +Clearing BreakPoint at 004DF5C1 +De-Activate DECCiphers.pas line 1089 BreakPoint at:004DF5C1 +Adding coverage:DECCiphers.pas (DECCiphers) 1090 +Clearing BreakPoint at 004DF5C6 +De-Activate DECCiphers.pas line 1090 BreakPoint at:004DF5C6 +Adding coverage:DECCiphers.pas (DECCiphers) 1091 +Clearing BreakPoint at 004DF5CC +De-Activate DECCiphers.pas line 1091 BreakPoint at:004DF5CC +Adding coverage:DECCiphers.pas (DECCiphers) 1093 +Clearing BreakPoint at 004DF5D1 +De-Activate DECCiphers.pas line 1093 BreakPoint at:004DF5D1 +Adding coverage:DECCiphers.pas (DECCiphers) 1097 +Clearing BreakPoint at 004DF629 +De-Activate DECCiphers.pas line 1097 BreakPoint at:004DF629 +Adding coverage:DECCiphers.pas (DECCiphers) 1098 +Clearing BreakPoint at 004DF636 +De-Activate DECCiphers.pas line 1098 BreakPoint at:004DF636 +Adding coverage:DECCiphers.pas (DECCiphers) 1091 +Clearing BreakPoint at 004DF639 +De-Activate DECCiphers.pas line 1091 BreakPoint at:004DF639 +Adding coverage:DECCiphers.pas (DECCiphers) 1099 +Clearing BreakPoint at 004DF63F +De-Activate DECCiphers.pas line 1099 BreakPoint at:004DF63F +Adding coverage:DECCiphers.pas (DECCiphers) 1101 +Clearing BreakPoint at 004DF64E +De-Activate DECCiphers.pas line 1101 BreakPoint at:004DF64E +Adding coverage:DECCiphers.pas (DECCiphers) 1103 +Clearing BreakPoint at 004DF653 +De-Activate DECCiphers.pas line 1103 BreakPoint at:004DF653 +Adding coverage:DECCiphers.pas (DECCiphers) 1170 +Clearing BreakPoint at 004DF710 +De-Activate DECCiphers.pas line 1170 BreakPoint at:004DF710 +Adding coverage:DECCiphers.pas (DECCiphers) 1172 +Clearing BreakPoint at 004DF739 +De-Activate DECCiphers.pas line 1172 BreakPoint at:004DF739 +Adding coverage:DECCiphers.pas (DECCiphers) 1174 +Clearing BreakPoint at 004DF7A1 +De-Activate DECCiphers.pas line 1174 BreakPoint at:004DF7A1 +Adding coverage:DECCiphers.pas (DECCiphers) 1175 +Clearing BreakPoint at 004DF7AA +De-Activate DECCiphers.pas line 1175 BreakPoint at:004DF7AA +Adding coverage:DECCiphers.pas (DECCiphers) 1176 +Clearing BreakPoint at 004DF7B8 +De-Activate DECCiphers.pas line 1176 BreakPoint at:004DF7B8 +Adding coverage:DECCiphers.pas (DECCiphers) 1177 +Clearing BreakPoint at 004DF7D3 +De-Activate DECCiphers.pas line 1177 BreakPoint at:004DF7D3 +Adding coverage:DECCiphers.pas (DECCiphers) 1178 +Clearing BreakPoint at 004DF7E1 +De-Activate DECCiphers.pas line 1178 BreakPoint at:004DF7E1 +Adding coverage:DECCiphers.pas (DECCiphers) 1182 +Clearing BreakPoint at 004DF7E6 +De-Activate DECCiphers.pas line 1182 BreakPoint at:004DF7E6 +Adding coverage:DECCiphers.pas (DECCiphers) 1187 +Clearing BreakPoint at 004DF83E +De-Activate DECCiphers.pas line 1187 BreakPoint at:004DF83E +Adding coverage:DECCiphers.pas (DECCiphers) 1191 +Clearing BreakPoint at 004DF897 +De-Activate DECCiphers.pas line 1191 BreakPoint at:004DF897 +Adding coverage:DECCiphers.pas (DECCiphers) 1192 +Clearing BreakPoint at 004DF8A0 +De-Activate DECCiphers.pas line 1192 BreakPoint at:004DF8A0 +Adding coverage:DECCiphers.pas (DECCiphers) 1178 +Clearing BreakPoint at 004DF8A3 +De-Activate DECCiphers.pas line 1178 BreakPoint at:004DF8A3 +Adding coverage:DECCiphers.pas (DECCiphers) 1193 +Clearing BreakPoint at 004DF8AD +De-Activate DECCiphers.pas line 1193 BreakPoint at:004DF8AD +Adding coverage:DECCiphers.pas (DECCiphers) 1194 +Clearing BreakPoint at 004DF8BF +De-Activate DECCiphers.pas line 1194 BreakPoint at:004DF8BF +Adding coverage:DECCiphers.pas (DECCiphers) 1195 +Clearing BreakPoint at 004DF8CD +De-Activate DECCiphers.pas line 1195 BreakPoint at:004DF8CD +Adding coverage:DECCiphers.pas (DECCiphers) 1104 +Clearing BreakPoint at 004DF663 +De-Activate DECCiphers.pas line 1104 BreakPoint at:004DF663 +Adding coverage:DECCiphers.pas (DECCiphers) 1105 +Clearing BreakPoint at 004DF676 +De-Activate DECCiphers.pas line 1105 BreakPoint at:004DF676 +Adding coverage:DECCiphers.pas (DECCiphers) 1106 +Clearing BreakPoint at 004DF68A +De-Activate DECCiphers.pas line 1106 BreakPoint at:004DF68A +Adding coverage:DECCiphers.pas (DECCiphers) 1101 +Clearing BreakPoint at 004DF68D +De-Activate DECCiphers.pas line 1101 BreakPoint at:004DF68D +Adding coverage:DECCiphers.pas (DECCiphers) 1107 +Clearing BreakPoint at 004DF693 +De-Activate DECCiphers.pas line 1107 BreakPoint at:004DF693 +Adding coverage:DECCiphers.pas (DECCiphers) 1108 +Clearing BreakPoint at 004DF698 +De-Activate DECCiphers.pas line 1108 BreakPoint at:004DF698 +Adding coverage:DECCiphers.pas (DECCiphers) 1110 +Clearing BreakPoint at 004DF69D +De-Activate DECCiphers.pas line 1110 BreakPoint at:004DF69D +Adding coverage:DECCiphers.pas (DECCiphers) 1111 +Clearing BreakPoint at 004DF6AD +De-Activate DECCiphers.pas line 1111 BreakPoint at:004DF6AD +Adding coverage:DECCiphers.pas (DECCiphers) 1112 +Clearing BreakPoint at 004DF6C9 +De-Activate DECCiphers.pas line 1112 BreakPoint at:004DF6C9 +Adding coverage:DECCiphers.pas (DECCiphers) 1113 +Clearing BreakPoint at 004DF6E6 +De-Activate DECCiphers.pas line 1113 BreakPoint at:004DF6E6 +Adding coverage:DECCiphers.pas (DECCiphers) 1108 +Clearing BreakPoint at 004DF6E9 +De-Activate DECCiphers.pas line 1108 BreakPoint at:004DF6E9 +Adding coverage:DECCiphers.pas (DECCiphers) 1113 +Clearing BreakPoint at 004DF6F2 +De-Activate DECCiphers.pas line 1113 BreakPoint at:004DF6F2 +Adding coverage:DECCiphers.pas (DECCiphers) 1107 +Clearing BreakPoint at 004DF6F5 +De-Activate DECCiphers.pas line 1107 BreakPoint at:004DF6F5 +Adding coverage:DECCiphers.pas (DECCiphers) 1114 +Clearing BreakPoint at 004DF6FB +De-Activate DECCiphers.pas line 1114 BreakPoint at:004DF6FB +Adding coverage:DECCiphers.pas (DECCiphers) 1117 +Clearing BreakPoint at 004DF70A +De-Activate DECCiphers.pas line 1117 BreakPoint at:004DF70A +Adding coverage:DECCipherBase.pas (DECCipherBase) 994 +Clearing BreakPoint at 004D5045 +De-Activate DECCipherBase.pas line 994 BreakPoint at:004D5045 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 867 +Clearing BreakPoint at 004DB0F4 +De-Activate DECCipherFormats.pas line 867 BreakPoint at:004DB0F4 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 868 +Clearing BreakPoint at 004DB117 +De-Activate DECCipherFormats.pas line 868 BreakPoint at:004DB117 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 871 +Clearing BreakPoint at 004DB138 +De-Activate DECCipherFormats.pas line 871 BreakPoint at:004DB138 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 872 +Clearing BreakPoint at 004DB15D +De-Activate DECCipherFormats.pas line 872 BreakPoint at:004DB15D +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 873 +Clearing BreakPoint at 004DB177 +De-Activate DECCipherFormats.pas line 873 BreakPoint at:004DB177 +Adding coverage:DECCipherModes.pas (DECCipherModes) 504 +Clearing BreakPoint at 004D78EC +De-Activate DECCipherModes.pas line 504 BreakPoint at:004D78EC +Adding coverage:DECCipherModes.pas (DECCipherModes) 505 +Clearing BreakPoint at 004D78FC +De-Activate DECCipherModes.pas line 505 BreakPoint at:004D78FC +Adding coverage:DECCipherBase.pas (DECCipherBase) 913 +Clearing BreakPoint at 004D4C90 +De-Activate DECCipherBase.pas line 913 BreakPoint at:004D4C90 +Adding coverage:DECCipherBase.pas (DECCipherBase) 914 +Clearing BreakPoint at 004D4C9C +De-Activate DECCipherBase.pas line 914 BreakPoint at:004D4C9C +Adding coverage:DECCipherBase.pas (DECCipherBase) 921 +Clearing BreakPoint at 004D4CE9 +De-Activate DECCipherBase.pas line 921 BreakPoint at:004D4CE9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 507 +Clearing BreakPoint at 004D790A +De-Activate DECCipherModes.pas line 507 BreakPoint at:004D790A +Adding coverage:DECCipherModes.pas (DECCipherModes) 510 +Clearing BreakPoint at 004D7977 +De-Activate DECCipherModes.pas line 510 BreakPoint at:004D7977 +Adding coverage:DECCipherModes.pas (DECCipherModes) 821 +Clearing BreakPoint at 004D8978 +De-Activate DECCipherModes.pas line 821 BreakPoint at:004D8978 +Adding coverage:DECCipherModes.pas (DECCipherModes) 822 +Clearing BreakPoint at 004D8988 +De-Activate DECCipherModes.pas line 822 BreakPoint at:004D8988 +Adding coverage:DECCipherModes.pas (DECCipherModes) 823 +Clearing BreakPoint at 004D8998 +De-Activate DECCipherModes.pas line 823 BreakPoint at:004D8998 +Adding coverage:DECCipherModes.pas (DECCipherModes) 824 +Clearing BreakPoint at 004D899D +De-Activate DECCipherModes.pas line 824 BreakPoint at:004D899D +Adding coverage:DECCipherModes.pas (DECCipherModes) 826 +Clearing BreakPoint at 004D89A9 +De-Activate DECCipherModes.pas line 826 BreakPoint at:004D89A9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 827 +Clearing BreakPoint at 004D89E5 +De-Activate DECCipherModes.pas line 827 BreakPoint at:004D89E5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 828 +Clearing BreakPoint at 004D8A1D +De-Activate DECCipherModes.pas line 828 BreakPoint at:004D8A1D +Adding coverage:DECCipherModes.pas (DECCipherModes) 829 +Clearing BreakPoint at 004D8A4A +De-Activate DECCipherModes.pas line 829 BreakPoint at:004D8A4A +Adding coverage:DECCipherModes.pas (DECCipherModes) 824 +Clearing BreakPoint at 004D8A5A +De-Activate DECCipherModes.pas line 824 BreakPoint at:004D8A5A +Adding coverage:DECCipherModes.pas (DECCipherModes) 831 +Clearing BreakPoint at 004D8A66 +De-Activate DECCipherModes.pas line 831 BreakPoint at:004D8A66 +Adding coverage:DECCipherModes.pas (DECCipherModes) 832 +Clearing BreakPoint at 004D8A80 +De-Activate DECCipherModes.pas line 832 BreakPoint at:004D8A80 +Adding coverage:DECCipherModes.pas (DECCipherModes) 838 +Clearing BreakPoint at 004D8AC4 +De-Activate DECCipherModes.pas line 838 BreakPoint at:004D8AC4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 839 +Clearing BreakPoint at 004D8ACB +De-Activate DECCipherModes.pas line 839 BreakPoint at:004D8ACB +Adding coverage:DECCipherModes.pas (DECCipherModes) 522 +Clearing BreakPoint at 004D7A18 +De-Activate DECCipherModes.pas line 522 BreakPoint at:004D7A18 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 880 +Clearing BreakPoint at 004DB1B7 +De-Activate DECCipherFormats.pas line 880 BreakPoint at:004DB1B7 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 884 +Clearing BreakPoint at 004DB1ED +De-Activate DECCipherFormats.pas line 884 BreakPoint at:004DB1ED +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 907 +Clearing BreakPoint at 004DB338 +De-Activate DECCipherFormats.pas line 907 BreakPoint at:004DB338 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 908 +Clearing BreakPoint at 004DB35E +De-Activate DECCipherFormats.pas line 908 BreakPoint at:004DB35E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 910 +Clearing BreakPoint at 004DB37F +De-Activate DECCipherFormats.pas line 910 BreakPoint at:004DB37F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 912 +Clearing BreakPoint at 004DB39F +De-Activate DECCipherFormats.pas line 912 BreakPoint at:004DB39F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 913 +Clearing BreakPoint at 004DB3BC +De-Activate DECCipherFormats.pas line 913 BreakPoint at:004DB3BC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 914 +Clearing BreakPoint at 004DB3CD +De-Activate DECCipherFormats.pas line 914 BreakPoint at:004DB3CD +Adding coverage:DECCipherModes.pas (DECCipherModes) 886 +Clearing BreakPoint at 004D8B88 +De-Activate DECCipherModes.pas line 886 BreakPoint at:004D8B88 +Adding coverage:DECCipherModes.pas (DECCipherModes) 887 +Clearing BreakPoint at 004D8B98 +De-Activate DECCipherModes.pas line 887 BreakPoint at:004D8B98 +Adding coverage:DECCipherModes.pas (DECCipherModes) 889 +Clearing BreakPoint at 004D8BA6 +De-Activate DECCipherModes.pas line 889 BreakPoint at:004D8BA6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 892 +Clearing BreakPoint at 004D8C13 +De-Activate DECCipherModes.pas line 892 BreakPoint at:004D8C13 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1219 +Clearing BreakPoint at 004D9CA8 +De-Activate DECCipherModes.pas line 1219 BreakPoint at:004D9CA8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1220 +Clearing BreakPoint at 004D9CB8 +De-Activate DECCipherModes.pas line 1220 BreakPoint at:004D9CB8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1221 +Clearing BreakPoint at 004D9CC8 +De-Activate DECCipherModes.pas line 1221 BreakPoint at:004D9CC8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1222 +Clearing BreakPoint at 004D9CD1 +De-Activate DECCipherModes.pas line 1222 BreakPoint at:004D9CD1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1223 +Clearing BreakPoint at 004D9CDA +De-Activate DECCipherModes.pas line 1223 BreakPoint at:004D9CDA +Adding coverage:DECCipherModes.pas (DECCipherModes) 1224 +Clearing BreakPoint at 004D9CDF +De-Activate DECCipherModes.pas line 1224 BreakPoint at:004D9CDF +Adding coverage:DECCipherModes.pas (DECCipherModes) 1226 +Clearing BreakPoint at 004D9CEB +De-Activate DECCipherModes.pas line 1226 BreakPoint at:004D9CEB +Adding coverage:DECCipherModes.pas (DECCipherModes) 1227 +Clearing BreakPoint at 004D9D12 +De-Activate DECCipherModes.pas line 1227 BreakPoint at:004D9D12 +Adding coverage:DECCiphers.pas (DECCiphers) 1247 +Clearing BreakPoint at 004DF9E0 +De-Activate DECCiphers.pas line 1247 BreakPoint at:004DF9E0 +Adding coverage:DECCiphers.pas (DECCiphers) 1248 +Clearing BreakPoint at 004DF9EF +De-Activate DECCiphers.pas line 1248 BreakPoint at:004DF9EF +Adding coverage:DECCiphers.pas (DECCiphers) 1250 +Clearing BreakPoint at 004DFA16 +De-Activate DECCiphers.pas line 1250 BreakPoint at:004DFA16 +Adding coverage:DECCiphers.pas (DECCiphers) 1251 +Clearing BreakPoint at 004DFA1F +De-Activate DECCiphers.pas line 1251 BreakPoint at:004DFA1F +Adding coverage:DECCiphers.pas (DECCiphers) 1252 +Clearing BreakPoint at 004DFA33 +De-Activate DECCiphers.pas line 1252 BreakPoint at:004DFA33 +Adding coverage:DECCiphers.pas (DECCiphers) 1253 +Clearing BreakPoint at 004DFA45 +De-Activate DECCiphers.pas line 1253 BreakPoint at:004DFA45 +Adding coverage:DECCiphers.pas (DECCiphers) 1254 +Clearing BreakPoint at 004DFA53 +De-Activate DECCiphers.pas line 1254 BreakPoint at:004DFA53 +Adding coverage:DECCiphers.pas (DECCiphers) 1256 +Clearing BreakPoint at 004DFA58 +De-Activate DECCiphers.pas line 1256 BreakPoint at:004DFA58 +Adding coverage:DECCiphers.pas (DECCiphers) 1257 +Clearing BreakPoint at 004DFA5C +De-Activate DECCiphers.pas line 1257 BreakPoint at:004DFA5C +Adding coverage:DECCiphers.pas (DECCiphers) 1261 +Clearing BreakPoint at 004DFAB5 +De-Activate DECCiphers.pas line 1261 BreakPoint at:004DFAB5 +Adding coverage:DECCiphers.pas (DECCiphers) 1265 +Clearing BreakPoint at 004DFB0D +De-Activate DECCiphers.pas line 1265 BreakPoint at:004DFB0D +Adding coverage:DECCiphers.pas (DECCiphers) 1254 +Clearing BreakPoint at 004DFB10 +De-Activate DECCiphers.pas line 1254 BreakPoint at:004DFB10 +Adding coverage:DECCiphers.pas (DECCiphers) 1266 +Clearing BreakPoint at 004DFB1A +De-Activate DECCiphers.pas line 1266 BreakPoint at:004DFB1A +Adding coverage:DECCiphers.pas (DECCiphers) 1267 +Clearing BreakPoint at 004DFB1E +De-Activate DECCiphers.pas line 1267 BreakPoint at:004DFB1E +Adding coverage:DECCiphers.pas (DECCiphers) 1268 +Clearing BreakPoint at 004DFB30 +De-Activate DECCiphers.pas line 1268 BreakPoint at:004DFB30 +Adding coverage:DECCiphers.pas (DECCiphers) 1269 +Clearing BreakPoint at 004DFB3E +De-Activate DECCiphers.pas line 1269 BreakPoint at:004DFB3E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1228 +Clearing BreakPoint at 004D9D4A +De-Activate DECCipherModes.pas line 1228 BreakPoint at:004D9D4A +Adding coverage:DECCipherModes.pas (DECCipherModes) 1229 +Clearing BreakPoint at 004D9D83 +De-Activate DECCipherModes.pas line 1229 BreakPoint at:004D9D83 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1230 +Clearing BreakPoint at 004D9D89 +De-Activate DECCipherModes.pas line 1230 BreakPoint at:004D9D89 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1231 +Clearing BreakPoint at 004D9D8F +De-Activate DECCipherModes.pas line 1231 BreakPoint at:004D9D8F +Adding coverage:DECCipherModes.pas (DECCipherModes) 1232 +Clearing BreakPoint at 004D9D95 +De-Activate DECCipherModes.pas line 1232 BreakPoint at:004D9D95 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1224 +Clearing BreakPoint at 004D9DA5 +De-Activate DECCipherModes.pas line 1224 BreakPoint at:004D9DA5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1234 +Clearing BreakPoint at 004D9DB1 +De-Activate DECCipherModes.pas line 1234 BreakPoint at:004D9DB1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1236 +Clearing BreakPoint at 004D9DD0 +De-Activate DECCipherModes.pas line 1236 BreakPoint at:004D9DD0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1237 +Clearing BreakPoint at 004D9DEA +De-Activate DECCipherModes.pas line 1237 BreakPoint at:004D9DEA +Adding coverage:DECCipherModes.pas (DECCipherModes) 1243 +Clearing BreakPoint at 004D9E2E +De-Activate DECCipherModes.pas line 1243 BreakPoint at:004D9E2E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1244 +Clearing BreakPoint at 004D9E35 +De-Activate DECCipherModes.pas line 1244 BreakPoint at:004D9E35 +Adding coverage:DECCipherModes.pas (DECCipherModes) 904 +Clearing BreakPoint at 004D8CB4 +De-Activate DECCipherModes.pas line 904 BreakPoint at:004D8CB4 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 918 +Clearing BreakPoint at 004DB418 +De-Activate DECCipherFormats.pas line 918 BreakPoint at:004DB418 +Adding coverage:DECCiphers.pas (DECCiphers) 1285 +Clearing BreakPoint at 004DFBF0 +De-Activate DECCiphers.pas line 1285 BreakPoint at:004DFBF0 +Adding coverage:DECCiphers.pas (DECCiphers) 1286 +Clearing BreakPoint at 004DFBFC +De-Activate DECCiphers.pas line 1286 BreakPoint at:004DFBFC +Adding coverage:DECCiphers.pas (DECCiphers) 1287 +Clearing BreakPoint at 004DFC05 +De-Activate DECCiphers.pas line 1287 BreakPoint at:004DFC05 +Adding coverage:DECCiphers.pas (DECCiphers) 1288 +Clearing BreakPoint at 004DFC0F +De-Activate DECCiphers.pas line 1288 BreakPoint at:004DFC0F +Adding coverage:DECCiphers.pas (DECCiphers) 1289 +Clearing BreakPoint at 004DFC19 +De-Activate DECCiphers.pas line 1289 BreakPoint at:004DFC19 +Adding coverage:DECCiphers.pas (DECCiphers) 1290 +Clearing BreakPoint at 004DFC23 +De-Activate DECCiphers.pas line 1290 BreakPoint at:004DFC23 +Adding coverage:DECCiphers.pas (DECCiphers) 1291 +Clearing BreakPoint at 004DFC2A +De-Activate DECCiphers.pas line 1291 BreakPoint at:004DFC2A +Adding coverage:DECCiphers.pas (DECCiphers) 1292 +Clearing BreakPoint at 004DFC33 +De-Activate DECCiphers.pas line 1292 BreakPoint at:004DFC33 +Adding coverage:DECCiphers.pas (DECCiphers) 1293 +Clearing BreakPoint at 004DFC3C +De-Activate DECCiphers.pas line 1293 BreakPoint at:004DFC3C +Adding coverage:DECCiphers.pas (DECCiphers) 1294 +Clearing BreakPoint at 004DFC48 +De-Activate DECCiphers.pas line 1294 BreakPoint at:004DFC48 +Adding coverage:DECCiphers.pas (DECCiphers) 1503 +Clearing BreakPoint at 004E0908 +De-Activate DECCiphers.pas line 1503 BreakPoint at:004E0908 +Adding coverage:DECCiphers.pas (DECCiphers) 1504 +Clearing BreakPoint at 004E0917 +De-Activate DECCiphers.pas line 1504 BreakPoint at:004E0917 +Adding coverage:DECCiphers.pas (DECCiphers) 1505 +Clearing BreakPoint at 004E0920 +De-Activate DECCiphers.pas line 1505 BreakPoint at:004E0920 +Adding coverage:DECCiphers.pas (DECCiphers) 1506 +Clearing BreakPoint at 004E092B +De-Activate DECCiphers.pas line 1506 BreakPoint at:004E092B +Adding coverage:DECCiphers.pas (DECCiphers) 1373 +Clearing BreakPoint at 004DFFDC +De-Activate DECCiphers.pas line 1373 BreakPoint at:004DFFDC +Adding coverage:DECCiphers.pas (DECCiphers) 1374 +Clearing BreakPoint at 004DFFE2 +De-Activate DECCiphers.pas line 1374 BreakPoint at:004DFFE2 +Adding coverage:DECCiphers.pas (DECCiphers) 1375 +Clearing BreakPoint at 004DFFF1 +De-Activate DECCiphers.pas line 1375 BreakPoint at:004DFFF1 +Adding coverage:DECCiphers.pas (DECCiphers) 1376 +Clearing BreakPoint at 004E0005 +De-Activate DECCiphers.pas line 1376 BreakPoint at:004E0005 +Adding coverage:DECCiphers.pas (DECCiphers) 1377 +Clearing BreakPoint at 004E000E +De-Activate DECCiphers.pas line 1377 BreakPoint at:004E000E +Adding coverage:DECCiphers.pas (DECCiphers) 1383 +Clearing BreakPoint at 004E0039 +De-Activate DECCiphers.pas line 1383 BreakPoint at:004E0039 +Adding coverage:DECCiphers.pas (DECCiphers) 1384 +Clearing BreakPoint at 004E0046 +De-Activate DECCiphers.pas line 1384 BreakPoint at:004E0046 +Adding coverage:DECCiphers.pas (DECCiphers) 1386 +Clearing BreakPoint at 004E0058 +De-Activate DECCiphers.pas line 1386 BreakPoint at:004E0058 +Adding coverage:DECCiphers.pas (DECCiphers) 1387 +Clearing BreakPoint at 004E0068 +De-Activate DECCiphers.pas line 1387 BreakPoint at:004E0068 +Adding coverage:DECCiphers.pas (DECCiphers) 1388 +Clearing BreakPoint at 004E0078 +De-Activate DECCiphers.pas line 1388 BreakPoint at:004E0078 +Adding coverage:DECCiphers.pas (DECCiphers) 1308 +Clearing BreakPoint at 004DFC50 +De-Activate DECCiphers.pas line 1308 BreakPoint at:004DFC50 +Adding coverage:DECCiphers.pas (DECCiphers) 1309 +Clearing BreakPoint at 004DFC5C +De-Activate DECCiphers.pas line 1309 BreakPoint at:004DFC5C +Adding coverage:DECCiphers.pas (DECCiphers) 1310 +Clearing BreakPoint at 004DFC61 +De-Activate DECCiphers.pas line 1310 BreakPoint at:004DFC61 +Adding coverage:DECCiphers.pas (DECCiphers) 1312 +Clearing BreakPoint at 004DFC66 +De-Activate DECCiphers.pas line 1312 BreakPoint at:004DFC66 +Adding coverage:DECCiphers.pas (DECCiphers) 1315 +Clearing BreakPoint at 004DFC74 +De-Activate DECCiphers.pas line 1315 BreakPoint at:004DFC74 +Adding coverage:DECCiphers.pas (DECCiphers) 1316 +Clearing BreakPoint at 004DFC7A +De-Activate DECCiphers.pas line 1316 BreakPoint at:004DFC7A +Adding coverage:DECCiphers.pas (DECCiphers) 1318 +Clearing BreakPoint at 004DFC7F +De-Activate DECCiphers.pas line 1318 BreakPoint at:004DFC7F +Adding coverage:DECCiphers.pas (DECCiphers) 1319 +Clearing BreakPoint at 004DFC88 +De-Activate DECCiphers.pas line 1319 BreakPoint at:004DFC88 +Adding coverage:DECCiphers.pas (DECCiphers) 1322 +Clearing BreakPoint at 004DFCA4 +De-Activate DECCiphers.pas line 1322 BreakPoint at:004DFCA4 +Adding coverage:DECCiphers.pas (DECCiphers) 1323 +Clearing BreakPoint at 004DFCB3 +De-Activate DECCiphers.pas line 1323 BreakPoint at:004DFCB3 +Adding coverage:DECCiphers.pas (DECCiphers) 1324 +Clearing BreakPoint at 004DFCB9 +De-Activate DECCiphers.pas line 1324 BreakPoint at:004DFCB9 +Adding coverage:DECCiphers.pas (DECCiphers) 1327 +Clearing BreakPoint at 004DFCE0 +De-Activate DECCiphers.pas line 1327 BreakPoint at:004DFCE0 +Adding coverage:DECCiphers.pas (DECCiphers) 1328 +Clearing BreakPoint at 004DFD08 +De-Activate DECCiphers.pas line 1328 BreakPoint at:004DFD08 +Adding coverage:DECCiphers.pas (DECCiphers) 1316 +Clearing BreakPoint at 004DFD0B +De-Activate DECCiphers.pas line 1316 BreakPoint at:004DFD0B +Adding coverage:DECCiphers.pas (DECCiphers) 1320 +Clearing BreakPoint at 004DFC8E +De-Activate DECCiphers.pas line 1320 BreakPoint at:004DFC8E +Adding coverage:DECCiphers.pas (DECCiphers) 1326 +Clearing BreakPoint at 004DFCD0 +De-Activate DECCiphers.pas line 1326 BreakPoint at:004DFCD0 +Adding coverage:DECCiphers.pas (DECCiphers) 1329 +Clearing BreakPoint at 004DFD15 +De-Activate DECCiphers.pas line 1329 BreakPoint at:004DFD15 +Adding coverage:DECCiphers.pas (DECCiphers) 1310 +Clearing BreakPoint at 004DFD18 +De-Activate DECCiphers.pas line 1310 BreakPoint at:004DFD18 +Adding coverage:DECCiphers.pas (DECCiphers) 1313 +Clearing BreakPoint at 004DFC6C +De-Activate DECCiphers.pas line 1313 BreakPoint at:004DFC6C +Adding coverage:DECCiphers.pas (DECCiphers) 1330 +Clearing BreakPoint at 004DFD22 +De-Activate DECCiphers.pas line 1330 BreakPoint at:004DFD22 +Adding coverage:DECCiphers.pas (DECCiphers) 1331 +Clearing BreakPoint at 004DFD28 +De-Activate DECCiphers.pas line 1331 BreakPoint at:004DFD28 +Adding coverage:DECCiphers.pas (DECCiphers) 1389 +Clearing BreakPoint at 004E0097 +De-Activate DECCiphers.pas line 1389 BreakPoint at:004E0097 +Adding coverage:DECCiphers.pas (DECCiphers) 1390 +Clearing BreakPoint at 004E009A +De-Activate DECCiphers.pas line 1390 BreakPoint at:004E009A +Adding coverage:DECCiphers.pas (DECCiphers) 1384 +Clearing BreakPoint at 004E009D +De-Activate DECCiphers.pas line 1384 BreakPoint at:004E009D +Adding coverage:DECCiphers.pas (DECCiphers) 1391 +Clearing BreakPoint at 004E00A2 +De-Activate DECCiphers.pas line 1391 BreakPoint at:004E00A2 +Adding coverage:DECCiphers.pas (DECCiphers) 1392 +Clearing BreakPoint at 004E00A7 +De-Activate DECCiphers.pas line 1392 BreakPoint at:004E00A7 +Adding coverage:DECCiphers.pas (DECCiphers) 1394 +Clearing BreakPoint at 004E00AC +De-Activate DECCiphers.pas line 1394 BreakPoint at:004E00AC +Adding coverage:DECCiphers.pas (DECCiphers) 1336 +Clearing BreakPoint at 004DFD30 +De-Activate DECCiphers.pas line 1336 BreakPoint at:004DFD30 +Adding coverage:DECCiphers.pas (DECCiphers) 1337 +Clearing BreakPoint at 004DFD50 +De-Activate DECCiphers.pas line 1337 BreakPoint at:004DFD50 +Adding coverage:DECCiphers.pas (DECCiphers) 1338 +Clearing BreakPoint at 004DFD5B +De-Activate DECCiphers.pas line 1338 BreakPoint at:004DFD5B +Adding coverage:DECCiphers.pas (DECCiphers) 1339 +Clearing BreakPoint at 004DFD69 +De-Activate DECCiphers.pas line 1339 BreakPoint at:004DFD69 +Adding coverage:DECCiphers.pas (DECCiphers) 1340 +Clearing BreakPoint at 004DFD77 +De-Activate DECCiphers.pas line 1340 BreakPoint at:004DFD77 +Adding coverage:DECCiphers.pas (DECCiphers) 1341 +Clearing BreakPoint at 004DFD80 +De-Activate DECCiphers.pas line 1341 BreakPoint at:004DFD80 +Adding coverage:DECCiphers.pas (DECCiphers) 1348 +Clearing BreakPoint at 004DFE0B +De-Activate DECCiphers.pas line 1348 BreakPoint at:004DFE0B +Adding coverage:DECCiphers.pas (DECCiphers) 1355 +Clearing BreakPoint at 004DFE96 +De-Activate DECCiphers.pas line 1355 BreakPoint at:004DFE96 +Adding coverage:DECCiphers.pas (DECCiphers) 1356 +Clearing BreakPoint at 004DFEB3 +De-Activate DECCiphers.pas line 1356 BreakPoint at:004DFEB3 +Adding coverage:DECCiphers.pas (DECCiphers) 1357 +Clearing BreakPoint at 004DFED7 +De-Activate DECCiphers.pas line 1357 BreakPoint at:004DFED7 +Adding coverage:DECCiphers.pas (DECCiphers) 1358 +Clearing BreakPoint at 004DFEF7 +De-Activate DECCiphers.pas line 1358 BreakPoint at:004DFEF7 +Adding coverage:DECCiphers.pas (DECCiphers) 1360 +Clearing BreakPoint at 004DFF15 +De-Activate DECCiphers.pas line 1360 BreakPoint at:004DFF15 +Adding coverage:DECCiphers.pas (DECCiphers) 1361 +Clearing BreakPoint at 004DFF31 +De-Activate DECCiphers.pas line 1361 BreakPoint at:004DFF31 +Adding coverage:DECCiphers.pas (DECCiphers) 1362 +Clearing BreakPoint at 004DFF50 +De-Activate DECCiphers.pas line 1362 BreakPoint at:004DFF50 +Adding coverage:DECCiphers.pas (DECCiphers) 1363 +Clearing BreakPoint at 004DFF73 +De-Activate DECCiphers.pas line 1363 BreakPoint at:004DFF73 +Adding coverage:DECCiphers.pas (DECCiphers) 1365 +Clearing BreakPoint at 004DFF90 +De-Activate DECCiphers.pas line 1365 BreakPoint at:004DFF90 +Adding coverage:DECCiphers.pas (DECCiphers) 1367 +Clearing BreakPoint at 004DFFCE +De-Activate DECCiphers.pas line 1367 BreakPoint at:004DFFCE +Adding coverage:DECCiphers.pas (DECCiphers) 1395 +Clearing BreakPoint at 004E00C1 +De-Activate DECCiphers.pas line 1395 BreakPoint at:004E00C1 +Adding coverage:DECCiphers.pas (DECCiphers) 1396 +Clearing BreakPoint at 004E00DB +De-Activate DECCiphers.pas line 1396 BreakPoint at:004E00DB +Adding coverage:DECCiphers.pas (DECCiphers) 1397 +Clearing BreakPoint at 004E00EC +De-Activate DECCiphers.pas line 1397 BreakPoint at:004E00EC +Adding coverage:DECCiphers.pas (DECCiphers) 1398 +Clearing BreakPoint at 004E0100 +De-Activate DECCiphers.pas line 1398 BreakPoint at:004E0100 +Adding coverage:DECCiphers.pas (DECCiphers) 1399 +Clearing BreakPoint at 004E010B +De-Activate DECCiphers.pas line 1399 BreakPoint at:004E010B +Adding coverage:DECCiphers.pas (DECCiphers) 1400 +Clearing BreakPoint at 004E0128 +De-Activate DECCiphers.pas line 1400 BreakPoint at:004E0128 +Adding coverage:DECCiphers.pas (DECCiphers) 1401 +Clearing BreakPoint at 004E012F +De-Activate DECCiphers.pas line 1401 BreakPoint at:004E012F +Adding coverage:DECCiphers.pas (DECCiphers) 1392 +Clearing BreakPoint at 004E0132 +De-Activate DECCiphers.pas line 1392 BreakPoint at:004E0132 +Adding coverage:DECCiphers.pas (DECCiphers) 1402 +Clearing BreakPoint at 004E013C +De-Activate DECCiphers.pas line 1402 BreakPoint at:004E013C +Adding coverage:DECCiphers.pas (DECCiphers) 1507 +Clearing BreakPoint at 004E0932 +De-Activate DECCiphers.pas line 1507 BreakPoint at:004E0932 +Adding coverage:DECCiphers.pas (DECCiphers) 1508 +Clearing BreakPoint at 004E0938 +De-Activate DECCiphers.pas line 1508 BreakPoint at:004E0938 +Adding coverage:DECCiphers.pas (DECCiphers) 1417 +Clearing BreakPoint at 004E0188 +De-Activate DECCiphers.pas line 1417 BreakPoint at:004E0188 +Adding coverage:DECCiphers.pas (DECCiphers) 1418 +Clearing BreakPoint at 004E0191 +De-Activate DECCiphers.pas line 1418 BreakPoint at:004E0191 +Adding coverage:DECCiphers.pas (DECCiphers) 1407 +Clearing BreakPoint at 004E0140 +De-Activate DECCiphers.pas line 1407 BreakPoint at:004E0140 +Adding coverage:DECCiphers.pas (DECCiphers) 1408 +Clearing BreakPoint at 004E014F +De-Activate DECCiphers.pas line 1408 BreakPoint at:004E014F +Adding coverage:DECCiphers.pas (DECCiphers) 1409 +Clearing BreakPoint at 004E0160 +De-Activate DECCiphers.pas line 1409 BreakPoint at:004E0160 +Adding coverage:DECCiphers.pas (DECCiphers) 1410 +Clearing BreakPoint at 004E0165 +De-Activate DECCiphers.pas line 1410 BreakPoint at:004E0165 +Adding coverage:DECCiphers.pas (DECCiphers) 1409 +Clearing BreakPoint at 004E017D +De-Activate DECCiphers.pas line 1409 BreakPoint at:004E017D +Adding coverage:DECCiphers.pas (DECCiphers) 1411 +Clearing BreakPoint at 004E0183 +De-Activate DECCiphers.pas line 1411 BreakPoint at:004E0183 +Adding coverage:DECCiphers.pas (DECCiphers) 1419 +Clearing BreakPoint at 004E01AD +De-Activate DECCiphers.pas line 1419 BreakPoint at:004E01AD +Adding coverage:DECCiphers.pas (DECCiphers) 1420 +Clearing BreakPoint at 004E01B7 +De-Activate DECCiphers.pas line 1420 BreakPoint at:004E01B7 +Adding coverage:DECCiphers.pas (DECCiphers) 1421 +Clearing BreakPoint at 004E01BC +De-Activate DECCiphers.pas line 1421 BreakPoint at:004E01BC +Adding coverage:DECCiphers.pas (DECCiphers) 1420 +Clearing BreakPoint at 004E01EC +De-Activate DECCiphers.pas line 1420 BreakPoint at:004E01EC +Adding coverage:DECCiphers.pas (DECCiphers) 1422 +Clearing BreakPoint at 004E01F5 +De-Activate DECCiphers.pas line 1422 BreakPoint at:004E01F5 +Adding coverage:DECCiphers.pas (DECCiphers) 1423 +Clearing BreakPoint at 004E021A +De-Activate DECCiphers.pas line 1423 BreakPoint at:004E021A +Adding coverage:DECCiphers.pas (DECCiphers) 1424 +Clearing BreakPoint at 004E0224 +De-Activate DECCiphers.pas line 1424 BreakPoint at:004E0224 +Adding coverage:DECCiphers.pas (DECCiphers) 1425 +Clearing BreakPoint at 004E0229 +De-Activate DECCiphers.pas line 1425 BreakPoint at:004E0229 +Adding coverage:DECCiphers.pas (DECCiphers) 1424 +Clearing BreakPoint at 004E0261 +De-Activate DECCiphers.pas line 1424 BreakPoint at:004E0261 +Adding coverage:DECCiphers.pas (DECCiphers) 1426 +Clearing BreakPoint at 004E026A +De-Activate DECCiphers.pas line 1426 BreakPoint at:004E026A +Adding coverage:DECCiphers.pas (DECCiphers) 1427 +Clearing BreakPoint at 004E0289 +De-Activate DECCiphers.pas line 1427 BreakPoint at:004E0289 +Adding coverage:DECCiphers.pas (DECCiphers) 1428 +Clearing BreakPoint at 004E0293 +De-Activate DECCiphers.pas line 1428 BreakPoint at:004E0293 +Adding coverage:DECCiphers.pas (DECCiphers) 1429 +Clearing BreakPoint at 004E0298 +De-Activate DECCiphers.pas line 1429 BreakPoint at:004E0298 +Adding coverage:DECCiphers.pas (DECCiphers) 1428 +Clearing BreakPoint at 004E02D4 +De-Activate DECCiphers.pas line 1428 BreakPoint at:004E02D4 +Adding coverage:DECCiphers.pas (DECCiphers) 1430 +Clearing BreakPoint at 004E02DD +De-Activate DECCiphers.pas line 1430 BreakPoint at:004E02DD +Adding coverage:DECCiphers.pas (DECCiphers) 1431 +Clearing BreakPoint at 004E0302 +De-Activate DECCiphers.pas line 1431 BreakPoint at:004E0302 +Adding coverage:DECCiphers.pas (DECCiphers) 1432 +Clearing BreakPoint at 004E030C +De-Activate DECCiphers.pas line 1432 BreakPoint at:004E030C +Adding coverage:DECCiphers.pas (DECCiphers) 1433 +Clearing BreakPoint at 004E0311 +De-Activate DECCiphers.pas line 1433 BreakPoint at:004E0311 +Adding coverage:DECCiphers.pas (DECCiphers) 1432 +Clearing BreakPoint at 004E034D +De-Activate DECCiphers.pas line 1432 BreakPoint at:004E034D +Adding coverage:DECCiphers.pas (DECCiphers) 1434 +Clearing BreakPoint at 004E0356 +De-Activate DECCiphers.pas line 1434 BreakPoint at:004E0356 +Adding coverage:DECCiphers.pas (DECCiphers) 1516 +Clearing BreakPoint at 004E0957 +De-Activate DECCiphers.pas line 1516 BreakPoint at:004E0957 +Adding coverage:DECCiphers.pas (DECCiphers) 1524 +Clearing BreakPoint at 004E095C +De-Activate DECCiphers.pas line 1524 BreakPoint at:004E095C +Adding coverage:DECCiphers.pas (DECCiphers) 1525 +Clearing BreakPoint at 004E096B +De-Activate DECCiphers.pas line 1525 BreakPoint at:004E096B +Adding coverage:DECCiphers.pas (DECCiphers) 1527 +Clearing BreakPoint at 004E0992 +De-Activate DECCiphers.pas line 1527 BreakPoint at:004E0992 +Adding coverage:DECCiphers.pas (DECCiphers) 1528 +Clearing BreakPoint at 004E099B +De-Activate DECCiphers.pas line 1528 BreakPoint at:004E099B +Adding coverage:DECCiphers.pas (DECCiphers) 1529 +Clearing BreakPoint at 004E09A8 +De-Activate DECCiphers.pas line 1529 BreakPoint at:004E09A8 +Adding coverage:DECCiphers.pas (DECCiphers) 1530 +Clearing BreakPoint at 004E09B7 +De-Activate DECCiphers.pas line 1530 BreakPoint at:004E09B7 +Adding coverage:DECCiphers.pas (DECCiphers) 1531 +Clearing BreakPoint at 004E09C6 +De-Activate DECCiphers.pas line 1531 BreakPoint at:004E09C6 +Adding coverage:DECCiphers.pas (DECCiphers) 1533 +Clearing BreakPoint at 004E09D5 +De-Activate DECCiphers.pas line 1533 BreakPoint at:004E09D5 +Adding coverage:DECCiphers.pas (DECCiphers) 1534 +Clearing BreakPoint at 004E09E0 +De-Activate DECCiphers.pas line 1534 BreakPoint at:004E09E0 +Adding coverage:DECCiphers.pas (DECCiphers) 1535 +Clearing BreakPoint at 004E09E9 +De-Activate DECCiphers.pas line 1535 BreakPoint at:004E09E9 +Adding coverage:DECCiphers.pas (DECCiphers) 1537 +Clearing BreakPoint at 004E09EE +De-Activate DECCiphers.pas line 1537 BreakPoint at:004E09EE +Adding coverage:DECCiphers.pas (DECCiphers) 1538 +Clearing BreakPoint at 004E0A29 +De-Activate DECCiphers.pas line 1538 BreakPoint at:004E0A29 +Adding coverage:DECCiphers.pas (DECCiphers) 1539 +Clearing BreakPoint at 004E0A64 +De-Activate DECCiphers.pas line 1539 BreakPoint at:004E0A64 +Adding coverage:DECCiphers.pas (DECCiphers) 1540 +Clearing BreakPoint at 004E0A74 +De-Activate DECCiphers.pas line 1540 BreakPoint at:004E0A74 +Adding coverage:DECCiphers.pas (DECCiphers) 1541 +Clearing BreakPoint at 004E0A82 +De-Activate DECCiphers.pas line 1541 BreakPoint at:004E0A82 +Adding coverage:DECCiphers.pas (DECCiphers) 1542 +Clearing BreakPoint at 004E0A93 +De-Activate DECCiphers.pas line 1542 BreakPoint at:004E0A93 +Adding coverage:DECCiphers.pas (DECCiphers) 1544 +Clearing BreakPoint at 004E0AA3 +De-Activate DECCiphers.pas line 1544 BreakPoint at:004E0AA3 +Adding coverage:DECCiphers.pas (DECCiphers) 1545 +Clearing BreakPoint at 004E0ADE +De-Activate DECCiphers.pas line 1545 BreakPoint at:004E0ADE +Adding coverage:DECCiphers.pas (DECCiphers) 1546 +Clearing BreakPoint at 004E0B19 +De-Activate DECCiphers.pas line 1546 BreakPoint at:004E0B19 +Adding coverage:DECCiphers.pas (DECCiphers) 1547 +Clearing BreakPoint at 004E0B29 +De-Activate DECCiphers.pas line 1547 BreakPoint at:004E0B29 +Adding coverage:DECCiphers.pas (DECCiphers) 1548 +Clearing BreakPoint at 004E0B38 +De-Activate DECCiphers.pas line 1548 BreakPoint at:004E0B38 +Adding coverage:DECCiphers.pas (DECCiphers) 1549 +Clearing BreakPoint at 004E0B49 +De-Activate DECCiphers.pas line 1549 BreakPoint at:004E0B49 +Adding coverage:DECCiphers.pas (DECCiphers) 1551 +Clearing BreakPoint at 004E0B59 +De-Activate DECCiphers.pas line 1551 BreakPoint at:004E0B59 +Adding coverage:DECCiphers.pas (DECCiphers) 1552 +Clearing BreakPoint at 004E0B62 +De-Activate DECCiphers.pas line 1552 BreakPoint at:004E0B62 +Adding coverage:DECCiphers.pas (DECCiphers) 1535 +Clearing BreakPoint at 004E0B65 +De-Activate DECCiphers.pas line 1535 BreakPoint at:004E0B65 +Adding coverage:DECCiphers.pas (DECCiphers) 1553 +Clearing BreakPoint at 004E0B6F +De-Activate DECCiphers.pas line 1553 BreakPoint at:004E0B6F +Adding coverage:DECCiphers.pas (DECCiphers) 1554 +Clearing BreakPoint at 004E0B78 +De-Activate DECCiphers.pas line 1554 BreakPoint at:004E0B78 +Adding coverage:DECCiphers.pas (DECCiphers) 1555 +Clearing BreakPoint at 004E0B86 +De-Activate DECCiphers.pas line 1555 BreakPoint at:004E0B86 +Adding coverage:DECCiphers.pas (DECCiphers) 1556 +Clearing BreakPoint at 004E0B95 +De-Activate DECCiphers.pas line 1556 BreakPoint at:004E0B95 +Adding coverage:DECCiphers.pas (DECCiphers) 1557 +Clearing BreakPoint at 004E0BA4 +De-Activate DECCiphers.pas line 1557 BreakPoint at:004E0BA4 +Adding coverage:DECCiphers.pas (DECCiphers) 1558 +Clearing BreakPoint at 004E0BB3 +De-Activate DECCiphers.pas line 1558 BreakPoint at:004E0BB3 +Adding coverage:DECCiphers.pas (DECCiphers) 1566 +Clearing BreakPoint at 004E0C68 +De-Activate DECCiphers.pas line 1566 BreakPoint at:004E0C68 +Adding coverage:DECCiphers.pas (DECCiphers) 1567 +Clearing BreakPoint at 004E0C77 +De-Activate DECCiphers.pas line 1567 BreakPoint at:004E0C77 +Adding coverage:DECCiphers.pas (DECCiphers) 1569 +Clearing BreakPoint at 004E0C9E +De-Activate DECCiphers.pas line 1569 BreakPoint at:004E0C9E +Adding coverage:DECCiphers.pas (DECCiphers) 1570 +Clearing BreakPoint at 004E0CA7 +De-Activate DECCiphers.pas line 1570 BreakPoint at:004E0CA7 +Adding coverage:DECCiphers.pas (DECCiphers) 1571 +Clearing BreakPoint at 004E0CB2 +De-Activate DECCiphers.pas line 1571 BreakPoint at:004E0CB2 +Adding coverage:DECCiphers.pas (DECCiphers) 1572 +Clearing BreakPoint at 004E0CC0 +De-Activate DECCiphers.pas line 1572 BreakPoint at:004E0CC0 +Adding coverage:DECCiphers.pas (DECCiphers) 1573 +Clearing BreakPoint at 004E0CCF +De-Activate DECCiphers.pas line 1573 BreakPoint at:004E0CCF +Adding coverage:DECCiphers.pas (DECCiphers) 1574 +Clearing BreakPoint at 004E0CDE +De-Activate DECCiphers.pas line 1574 BreakPoint at:004E0CDE +Adding coverage:DECCiphers.pas (DECCiphers) 1575 +Clearing BreakPoint at 004E0CED +De-Activate DECCiphers.pas line 1575 BreakPoint at:004E0CED +Adding coverage:DECCiphers.pas (DECCiphers) 1576 +Clearing BreakPoint at 004E0CF8 +De-Activate DECCiphers.pas line 1576 BreakPoint at:004E0CF8 +Adding coverage:DECCiphers.pas (DECCiphers) 1578 +Clearing BreakPoint at 004E0CFD +De-Activate DECCiphers.pas line 1578 BreakPoint at:004E0CFD +Adding coverage:DECCiphers.pas (DECCiphers) 1579 +Clearing BreakPoint at 004E0D38 +De-Activate DECCiphers.pas line 1579 BreakPoint at:004E0D38 +Adding coverage:DECCiphers.pas (DECCiphers) 1580 +Clearing BreakPoint at 004E0D73 +De-Activate DECCiphers.pas line 1580 BreakPoint at:004E0D73 +Adding coverage:DECCiphers.pas (DECCiphers) 1581 +Clearing BreakPoint at 004E0D83 +De-Activate DECCiphers.pas line 1581 BreakPoint at:004E0D83 +Adding coverage:DECCiphers.pas (DECCiphers) 1582 +Clearing BreakPoint at 004E0D94 +De-Activate DECCiphers.pas line 1582 BreakPoint at:004E0D94 +Adding coverage:DECCiphers.pas (DECCiphers) 1583 +Clearing BreakPoint at 004E0DA3 +De-Activate DECCiphers.pas line 1583 BreakPoint at:004E0DA3 +Adding coverage:DECCiphers.pas (DECCiphers) 1585 +Clearing BreakPoint at 004E0DB3 +De-Activate DECCiphers.pas line 1585 BreakPoint at:004E0DB3 +Adding coverage:DECCiphers.pas (DECCiphers) 1586 +Clearing BreakPoint at 004E0DEE +De-Activate DECCiphers.pas line 1586 BreakPoint at:004E0DEE +Adding coverage:DECCiphers.pas (DECCiphers) 1587 +Clearing BreakPoint at 004E0E29 +De-Activate DECCiphers.pas line 1587 BreakPoint at:004E0E29 +Adding coverage:DECCiphers.pas (DECCiphers) 1588 +Clearing BreakPoint at 004E0E39 +De-Activate DECCiphers.pas line 1588 BreakPoint at:004E0E39 +Adding coverage:DECCiphers.pas (DECCiphers) 1589 +Clearing BreakPoint at 004E0E4A +De-Activate DECCiphers.pas line 1589 BreakPoint at:004E0E4A +Adding coverage:DECCiphers.pas (DECCiphers) 1590 +Clearing BreakPoint at 004E0E58 +De-Activate DECCiphers.pas line 1590 BreakPoint at:004E0E58 +Adding coverage:DECCiphers.pas (DECCiphers) 1592 +Clearing BreakPoint at 004E0E68 +De-Activate DECCiphers.pas line 1592 BreakPoint at:004E0E68 +Adding coverage:DECCiphers.pas (DECCiphers) 1593 +Clearing BreakPoint at 004E0E6C +De-Activate DECCiphers.pas line 1593 BreakPoint at:004E0E6C +Adding coverage:DECCiphers.pas (DECCiphers) 1576 +Clearing BreakPoint at 004E0E6F +De-Activate DECCiphers.pas line 1576 BreakPoint at:004E0E6F +Adding coverage:DECCiphers.pas (DECCiphers) 1594 +Clearing BreakPoint at 004E0E79 +De-Activate DECCiphers.pas line 1594 BreakPoint at:004E0E79 +Adding coverage:DECCiphers.pas (DECCiphers) 1595 +Clearing BreakPoint at 004E0E82 +De-Activate DECCiphers.pas line 1595 BreakPoint at:004E0E82 +Adding coverage:DECCiphers.pas (DECCiphers) 1596 +Clearing BreakPoint at 004E0E8F +De-Activate DECCiphers.pas line 1596 BreakPoint at:004E0E8F +Adding coverage:DECCiphers.pas (DECCiphers) 1597 +Clearing BreakPoint at 004E0E9E +De-Activate DECCiphers.pas line 1597 BreakPoint at:004E0E9E +Adding coverage:DECCiphers.pas (DECCiphers) 1598 +Clearing BreakPoint at 004E0EAD +De-Activate DECCiphers.pas line 1598 BreakPoint at:004E0EAD +Adding coverage:DECCiphers.pas (DECCiphers) 1599 +Clearing BreakPoint at 004E0EBC +De-Activate DECCiphers.pas line 1599 BreakPoint at:004E0EBC +Adding coverage:DECCipherBase.pas (DECCipherBase) 949 +Clearing BreakPoint at 004D4DFF +De-Activate DECCipherBase.pas line 949 BreakPoint at:004D4DFF +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4E15 +Exact line:DECCipherBase line 951 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC37F +Exact line:TestDECCipher line 1117 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC3D0 +Exact line:TestDECCipher line 1122 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherBase.pas (DECCipherBase) 952 +Clearing BreakPoint at 004D4E2C +De-Activate DECCipherBase.pas line 952 BreakPoint at:004D4E2C +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4E42 +Exact line:DECCipherBase line 954 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC518 +Exact line:TestDECCipher line 1136 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC568 +Exact line:TestDECCipher line 1141 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherBase.pas (DECCipherBase) 988 +Clearing BreakPoint at 004D4FAE +De-Activate DECCipherBase.pas line 988 BreakPoint at:004D4FAE +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4FC4 +Exact line:DECCipherBase line 990 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC5FE +Exact line:TestDECCipher line 1154 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004FC64C +Exact line:TestDECCipher line 1159 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 1604 +Clearing BreakPoint at 004E0F70 +De-Activate DECCiphers.pas line 1604 BreakPoint at:004E0F70 +Adding coverage:DECCiphers.pas (DECCiphers) 1605 +Clearing BreakPoint at 004E0F7C +De-Activate DECCiphers.pas line 1605 BreakPoint at:004E0F7C +Adding coverage:DECCiphers.pas (DECCiphers) 1606 +Clearing BreakPoint at 004E0F85 +De-Activate DECCiphers.pas line 1606 BreakPoint at:004E0F85 +Adding coverage:DECCiphers.pas (DECCiphers) 1607 +Clearing BreakPoint at 004E0F8F +De-Activate DECCiphers.pas line 1607 BreakPoint at:004E0F8F +Adding coverage:DECCiphers.pas (DECCiphers) 1608 +Clearing BreakPoint at 004E0F99 +De-Activate DECCiphers.pas line 1608 BreakPoint at:004E0F99 +Adding coverage:DECCiphers.pas (DECCiphers) 1609 +Clearing BreakPoint at 004E0FA3 +De-Activate DECCiphers.pas line 1609 BreakPoint at:004E0FA3 +Adding coverage:DECCiphers.pas (DECCiphers) 1610 +Clearing BreakPoint at 004E0FAA +De-Activate DECCiphers.pas line 1610 BreakPoint at:004E0FAA +Adding coverage:DECCiphers.pas (DECCiphers) 1611 +Clearing BreakPoint at 004E0FB3 +De-Activate DECCiphers.pas line 1611 BreakPoint at:004E0FB3 +Adding coverage:DECCiphers.pas (DECCiphers) 1612 +Clearing BreakPoint at 004E0FBC +De-Activate DECCiphers.pas line 1612 BreakPoint at:004E0FBC +Adding coverage:DECCiphers.pas (DECCiphers) 1613 +Clearing BreakPoint at 004E0FC8 +De-Activate DECCiphers.pas line 1613 BreakPoint at:004E0FC8 +Adding coverage:DECCiphers.pas (DECCiphers) 1651 +Clearing BreakPoint at 004E10B4 +De-Activate DECCiphers.pas line 1651 BreakPoint at:004E10B4 +Adding coverage:DECCiphers.pas (DECCiphers) 1652 +Clearing BreakPoint at 004E10C3 +De-Activate DECCiphers.pas line 1652 BreakPoint at:004E10C3 +Adding coverage:DECCiphers.pas (DECCiphers) 1653 +Clearing BreakPoint at 004E10CC +De-Activate DECCiphers.pas line 1653 BreakPoint at:004E10CC +Adding coverage:DECCiphers.pas (DECCiphers) 1654 +Clearing BreakPoint at 004E10DA +De-Activate DECCiphers.pas line 1654 BreakPoint at:004E10DA +Adding coverage:DECCiphers.pas (DECCiphers) 1655 +Clearing BreakPoint at 004E10DF +De-Activate DECCiphers.pas line 1655 BreakPoint at:004E10DF +Adding coverage:DECCiphers.pas (DECCiphers) 1654 +Clearing BreakPoint at 004E10F8 +De-Activate DECCiphers.pas line 1654 BreakPoint at:004E10F8 +Adding coverage:DECCiphers.pas (DECCiphers) 1656 +Clearing BreakPoint at 004E10FE +De-Activate DECCiphers.pas line 1656 BreakPoint at:004E10FE +Adding coverage:DECCiphers.pas (DECCiphers) 1657 +Clearing BreakPoint at 004E1103 +De-Activate DECCiphers.pas line 1657 BreakPoint at:004E1103 +Adding coverage:DECCiphers.pas (DECCiphers) 1658 +Clearing BreakPoint at 004E1145 +De-Activate DECCiphers.pas line 1658 BreakPoint at:004E1145 +Adding coverage:DECCiphers.pas (DECCiphers) 1656 +Clearing BreakPoint at 004E1148 +De-Activate DECCiphers.pas line 1656 BreakPoint at:004E1148 +Adding coverage:DECCiphers.pas (DECCiphers) 1659 +Clearing BreakPoint at 004E114E +De-Activate DECCiphers.pas line 1659 BreakPoint at:004E114E +Adding coverage:DECCiphers.pas (DECCiphers) 1660 +Clearing BreakPoint at 004E1155 +De-Activate DECCiphers.pas line 1660 BreakPoint at:004E1155 +Adding coverage:DECCiphers.pas (DECCiphers) 1659 +Clearing BreakPoint at 004E1181 +De-Activate DECCiphers.pas line 1659 BreakPoint at:004E1181 +Adding coverage:DECCiphers.pas (DECCiphers) 1661 +Clearing BreakPoint at 004E1187 +De-Activate DECCiphers.pas line 1661 BreakPoint at:004E1187 +Adding coverage:DECCiphers.pas (DECCiphers) 1662 +Clearing BreakPoint at 004E118D +De-Activate DECCiphers.pas line 1662 BreakPoint at:004E118D +Adding coverage:DECCiphers.pas (DECCiphers) 1663 +Clearing BreakPoint at 004E1198 +De-Activate DECCiphers.pas line 1663 BreakPoint at:004E1198 +Adding coverage:DECCiphers.pas (DECCiphers) 1620 +Clearing BreakPoint at 004E0FD0 +De-Activate DECCiphers.pas line 1620 BreakPoint at:004E0FD0 +Adding coverage:DECCiphers.pas (DECCiphers) 1621 +Clearing BreakPoint at 004E0FDA +De-Activate DECCiphers.pas line 1621 BreakPoint at:004E0FDA +Adding coverage:DECCiphers.pas (DECCiphers) 1626 +Clearing BreakPoint at 004E0FEE +De-Activate DECCiphers.pas line 1626 BreakPoint at:004E0FEE +Adding coverage:DECCiphers.pas (DECCiphers) 1627 +Clearing BreakPoint at 004E0FF4 +De-Activate DECCiphers.pas line 1627 BreakPoint at:004E0FF4 +Adding coverage:DECCiphers.pas (DECCiphers) 1628 +Clearing BreakPoint at 004E1009 +De-Activate DECCiphers.pas line 1628 BreakPoint at:004E1009 +Adding coverage:DECCiphers.pas (DECCiphers) 1629 +Clearing BreakPoint at 004E101E +De-Activate DECCiphers.pas line 1629 BreakPoint at:004E101E +Adding coverage:DECCiphers.pas (DECCiphers) 1631 +Clearing BreakPoint at 004E1025 +De-Activate DECCiphers.pas line 1631 BreakPoint at:004E1025 +Adding coverage:DECCiphers.pas (DECCiphers) 1632 +Clearing BreakPoint at 004E1037 +De-Activate DECCiphers.pas line 1632 BreakPoint at:004E1037 +Adding coverage:DECCiphers.pas (DECCiphers) 1633 +Clearing BreakPoint at 004E1049 +De-Activate DECCiphers.pas line 1633 BreakPoint at:004E1049 +Adding coverage:DECCiphers.pas (DECCiphers) 1634 +Clearing BreakPoint at 004E1055 +De-Activate DECCiphers.pas line 1634 BreakPoint at:004E1055 +Adding coverage:DECCiphers.pas (DECCiphers) 1639 +Clearing BreakPoint at 004E1066 +De-Activate DECCiphers.pas line 1639 BreakPoint at:004E1066 +Adding coverage:DECCiphers.pas (DECCiphers) 1640 +Clearing BreakPoint at 004E1078 +De-Activate DECCiphers.pas line 1640 BreakPoint at:004E1078 +Adding coverage:DECCiphers.pas (DECCiphers) 1641 +Clearing BreakPoint at 004E108A +De-Activate DECCiphers.pas line 1641 BreakPoint at:004E108A +Adding coverage:DECCiphers.pas (DECCiphers) 1629 +Clearing BreakPoint at 004E1096 +De-Activate DECCiphers.pas line 1629 BreakPoint at:004E1096 +Adding coverage:DECCiphers.pas (DECCiphers) 1643 +Clearing BreakPoint at 004E109D +De-Activate DECCiphers.pas line 1643 BreakPoint at:004E109D +Adding coverage:DECCiphers.pas (DECCiphers) 1644 +Clearing BreakPoint at 004E10A9 +De-Activate DECCiphers.pas line 1644 BreakPoint at:004E10A9 +Adding coverage:DECCiphers.pas (DECCiphers) 1664 +Clearing BreakPoint at 004E11A9 +De-Activate DECCiphers.pas line 1664 BreakPoint at:004E11A9 +Adding coverage:DECCiphers.pas (DECCiphers) 1665 +Clearing BreakPoint at 004E11B6 +De-Activate DECCiphers.pas line 1665 BreakPoint at:004E11B6 +Adding coverage:DECCiphers.pas (DECCiphers) 1666 +Clearing BreakPoint at 004E11C3 +De-Activate DECCiphers.pas line 1666 BreakPoint at:004E11C3 +Adding coverage:DECCiphers.pas (DECCiphers) 1667 +Clearing BreakPoint at 004E11D8 +De-Activate DECCiphers.pas line 1667 BreakPoint at:004E11D8 +Adding coverage:DECCiphers.pas (DECCiphers) 1668 +Clearing BreakPoint at 004E11E3 +De-Activate DECCiphers.pas line 1668 BreakPoint at:004E11E3 +Adding coverage:DECCiphers.pas (DECCiphers) 1669 +Clearing BreakPoint at 004E11EE +De-Activate DECCiphers.pas line 1669 BreakPoint at:004E11EE +Adding coverage:DECCiphers.pas (DECCiphers) 1670 +Clearing BreakPoint at 004E11F8 +De-Activate DECCiphers.pas line 1670 BreakPoint at:004E11F8 +Adding coverage:DECCiphers.pas (DECCiphers) 1671 +Clearing BreakPoint at 004E11FC +De-Activate DECCiphers.pas line 1671 BreakPoint at:004E11FC +Adding coverage:DECCiphers.pas (DECCiphers) 1673 +Clearing BreakPoint at 004E1203 +De-Activate DECCiphers.pas line 1673 BreakPoint at:004E1203 +Adding coverage:DECCiphers.pas (DECCiphers) 1674 +Clearing BreakPoint at 004E1207 +De-Activate DECCiphers.pas line 1674 BreakPoint at:004E1207 +Adding coverage:DECCiphers.pas (DECCiphers) 1675 +Clearing BreakPoint at 004E1211 +De-Activate DECCiphers.pas line 1675 BreakPoint at:004E1211 +Adding coverage:DECCiphers.pas (DECCiphers) 1676 +Clearing BreakPoint at 004E121F +De-Activate DECCiphers.pas line 1676 BreakPoint at:004E121F +Adding coverage:DECCiphers.pas (DECCiphers) 1677 +Clearing BreakPoint at 004E122A +De-Activate DECCiphers.pas line 1677 BreakPoint at:004E122A +Adding coverage:DECCiphers.pas (DECCiphers) 1623 +Clearing BreakPoint at 004E0FE1 +De-Activate DECCiphers.pas line 1623 BreakPoint at:004E0FE1 +Adding coverage:DECCiphers.pas (DECCiphers) 1624 +Clearing BreakPoint at 004E0FE9 +De-Activate DECCiphers.pas line 1624 BreakPoint at:004E0FE9 +Adding coverage:DECCiphers.pas (DECCiphers) 1678 +Clearing BreakPoint at 004E123C +De-Activate DECCiphers.pas line 1678 BreakPoint at:004E123C +Adding coverage:DECCiphers.pas (DECCiphers) 1679 +Clearing BreakPoint at 004E1249 +De-Activate DECCiphers.pas line 1679 BreakPoint at:004E1249 +Adding coverage:DECCiphers.pas (DECCiphers) 1680 +Clearing BreakPoint at 004E1256 +De-Activate DECCiphers.pas line 1680 BreakPoint at:004E1256 +Adding coverage:DECCiphers.pas (DECCiphers) 1681 +Clearing BreakPoint at 004E126B +De-Activate DECCiphers.pas line 1681 BreakPoint at:004E126B +Adding coverage:DECCiphers.pas (DECCiphers) 1682 +Clearing BreakPoint at 004E1276 +De-Activate DECCiphers.pas line 1682 BreakPoint at:004E1276 +Adding coverage:DECCiphers.pas (DECCiphers) 1683 +Clearing BreakPoint at 004E1281 +De-Activate DECCiphers.pas line 1683 BreakPoint at:004E1281 +Adding coverage:DECCiphers.pas (DECCiphers) 1684 +Clearing BreakPoint at 004E128B +De-Activate DECCiphers.pas line 1684 BreakPoint at:004E128B +Adding coverage:DECCiphers.pas (DECCiphers) 1685 +Clearing BreakPoint at 004E128F +De-Activate DECCiphers.pas line 1685 BreakPoint at:004E128F +Adding coverage:DECCiphers.pas (DECCiphers) 1671 +Clearing BreakPoint at 004E1292 +De-Activate DECCiphers.pas line 1671 BreakPoint at:004E1292 +Adding coverage:DECCiphers.pas (DECCiphers) 1636 +Clearing BreakPoint at 004E105C +De-Activate DECCiphers.pas line 1636 BreakPoint at:004E105C +Adding coverage:DECCiphers.pas (DECCiphers) 1637 +Clearing BreakPoint at 004E1064 +De-Activate DECCiphers.pas line 1637 BreakPoint at:004E1064 +Adding coverage:DECCiphers.pas (DECCiphers) 1686 +Clearing BreakPoint at 004E129C +De-Activate DECCiphers.pas line 1686 BreakPoint at:004E129C +Adding coverage:DECCiphers.pas (DECCiphers) 1687 +Clearing BreakPoint at 004E12A7 +De-Activate DECCiphers.pas line 1687 BreakPoint at:004E12A7 +Adding coverage:DECCiphers.pas (DECCiphers) 1688 +Clearing BreakPoint at 004E12B5 +De-Activate DECCiphers.pas line 1688 BreakPoint at:004E12B5 +Adding coverage:DECCiphers.pas (DECCiphers) 1691 +Clearing BreakPoint at 004E12C0 +De-Activate DECCiphers.pas line 1691 BreakPoint at:004E12C0 +Adding coverage:DECCiphers.pas (DECCiphers) 1767 +Clearing BreakPoint at 004E1488 +De-Activate DECCiphers.pas line 1767 BreakPoint at:004E1488 +Adding coverage:DECCiphers.pas (DECCiphers) 1768 +Clearing BreakPoint at 004E1497 +De-Activate DECCiphers.pas line 1768 BreakPoint at:004E1497 +Adding coverage:DECCiphers.pas (DECCiphers) 1770 +Clearing BreakPoint at 004E14BE +De-Activate DECCiphers.pas line 1770 BreakPoint at:004E14BE +Adding coverage:DECCiphers.pas (DECCiphers) 1737 +Clearing BreakPoint at 004E1324 +De-Activate DECCiphers.pas line 1737 BreakPoint at:004E1324 +Adding coverage:DECCiphers.pas (DECCiphers) 1738 +Clearing BreakPoint at 004E1333 +De-Activate DECCiphers.pas line 1738 BreakPoint at:004E1333 +Adding coverage:DECCiphers.pas (DECCiphers) 1739 +Clearing BreakPoint at 004E1340 +De-Activate DECCiphers.pas line 1739 BreakPoint at:004E1340 +Adding coverage:DECCiphers.pas (DECCiphers) 1740 +Clearing BreakPoint at 004E1349 +De-Activate DECCiphers.pas line 1740 BreakPoint at:004E1349 +Adding coverage:DECCiphers.pas (DECCiphers) 1741 +Clearing BreakPoint at 004E1354 +De-Activate DECCiphers.pas line 1741 BreakPoint at:004E1354 +Adding coverage:DECCiphers.pas (DECCiphers) 1742 +Clearing BreakPoint at 004E1362 +De-Activate DECCiphers.pas line 1742 BreakPoint at:004E1362 +Adding coverage:DECCiphers.pas (DECCiphers) 1743 +Clearing BreakPoint at 004E136B +De-Activate DECCiphers.pas line 1743 BreakPoint at:004E136B +Adding coverage:DECCiphers.pas (DECCiphers) 1744 +Clearing BreakPoint at 004E1376 +De-Activate DECCiphers.pas line 1744 BreakPoint at:004E1376 +Adding coverage:DECCiphers.pas (DECCiphers) 1746 +Clearing BreakPoint at 004E137B +De-Activate DECCiphers.pas line 1746 BreakPoint at:004E137B +Adding coverage:DECCiphers.pas (DECCiphers) 1715 +Clearing BreakPoint at 004E12C4 +De-Activate DECCiphers.pas line 1715 BreakPoint at:004E12C4 +Adding coverage:DECCiphers.pas (DECCiphers) 1716 +Clearing BreakPoint at 004E12D0 +De-Activate DECCiphers.pas line 1716 BreakPoint at:004E12D0 +Adding coverage:DECCiphers.pas (DECCiphers) 1717 +Clearing BreakPoint at 004E12D7 +De-Activate DECCiphers.pas line 1717 BreakPoint at:004E12D7 +Adding coverage:DECCiphers.pas (DECCiphers) 1719 +Clearing BreakPoint at 004E12DD +De-Activate DECCiphers.pas line 1719 BreakPoint at:004E12DD +Adding coverage:DECCiphers.pas (DECCiphers) 1720 +Clearing BreakPoint at 004E12E4 +De-Activate DECCiphers.pas line 1720 BreakPoint at:004E12E4 +Adding coverage:DECCiphers.pas (DECCiphers) 1722 +Clearing BreakPoint at 004E12EA +De-Activate DECCiphers.pas line 1722 BreakPoint at:004E12EA +Adding coverage:DECCiphers.pas (DECCiphers) 1723 +Clearing BreakPoint at 004E12F4 +De-Activate DECCiphers.pas line 1723 BreakPoint at:004E12F4 +Adding coverage:DECCiphers.pas (DECCiphers) 1724 +Clearing BreakPoint at 004E1302 +De-Activate DECCiphers.pas line 1724 BreakPoint at:004E1302 +Adding coverage:DECCiphers.pas (DECCiphers) 1730 +Clearing BreakPoint at 004E131D +De-Activate DECCiphers.pas line 1730 BreakPoint at:004E131D +Adding coverage:DECCiphers.pas (DECCiphers) 1747 +Clearing BreakPoint at 004E138C +De-Activate DECCiphers.pas line 1747 BreakPoint at:004E138C +Adding coverage:DECCiphers.pas (DECCiphers) 1748 +Clearing BreakPoint at 004E1396 +De-Activate DECCiphers.pas line 1748 BreakPoint at:004E1396 +Adding coverage:DECCiphers.pas (DECCiphers) 1749 +Clearing BreakPoint at 004E13A0 +De-Activate DECCiphers.pas line 1749 BreakPoint at:004E13A0 +Adding coverage:DECCiphers.pas (DECCiphers) 1750 +Clearing BreakPoint at 004E13B2 +De-Activate DECCiphers.pas line 1750 BreakPoint at:004E13B2 +Adding coverage:DECCiphers.pas (DECCiphers) 1751 +Clearing BreakPoint at 004E13BB +De-Activate DECCiphers.pas line 1751 BreakPoint at:004E13BB +Adding coverage:DECCiphers.pas (DECCiphers) 1752 +Clearing BreakPoint at 004E13CD +De-Activate DECCiphers.pas line 1752 BreakPoint at:004E13CD +Adding coverage:DECCiphers.pas (DECCiphers) 1753 +Clearing BreakPoint at 004E13D9 +De-Activate DECCiphers.pas line 1753 BreakPoint at:004E13D9 +Adding coverage:DECCiphers.pas (DECCiphers) 1754 +Clearing BreakPoint at 004E13EB +De-Activate DECCiphers.pas line 1754 BreakPoint at:004E13EB +Adding coverage:DECCiphers.pas (DECCiphers) 1755 +Clearing BreakPoint at 004E13F1 +De-Activate DECCiphers.pas line 1755 BreakPoint at:004E13F1 +Adding coverage:DECCiphers.pas (DECCiphers) 1756 +Clearing BreakPoint at 004E13F7 +De-Activate DECCiphers.pas line 1756 BreakPoint at:004E13F7 +Adding coverage:DECCiphers.pas (DECCiphers) 1757 +Clearing BreakPoint at 004E13FD +De-Activate DECCiphers.pas line 1757 BreakPoint at:004E13FD +Adding coverage:DECCiphers.pas (DECCiphers) 1758 +Clearing BreakPoint at 004E1403 +De-Activate DECCiphers.pas line 1758 BreakPoint at:004E1403 +Adding coverage:DECCiphers.pas (DECCiphers) 1759 +Clearing BreakPoint at 004E140C +De-Activate DECCiphers.pas line 1759 BreakPoint at:004E140C +Adding coverage:DECCiphers.pas (DECCiphers) 1760 +Clearing BreakPoint at 004E1412 +De-Activate DECCiphers.pas line 1760 BreakPoint at:004E1412 +Adding coverage:DECCiphers.pas (DECCiphers) 1761 +Clearing BreakPoint at 004E141B +De-Activate DECCiphers.pas line 1761 BreakPoint at:004E141B +Adding coverage:DECCiphers.pas (DECCiphers) 1744 +Clearing BreakPoint at 004E141E +De-Activate DECCiphers.pas line 1744 BreakPoint at:004E141E +Adding coverage:DECCiphers.pas (DECCiphers) 1729 +Clearing BreakPoint at 004E1311 +De-Activate DECCiphers.pas line 1729 BreakPoint at:004E1311 +Adding coverage:DECCiphers.pas (DECCiphers) 1725 +Clearing BreakPoint at 004E130C +De-Activate DECCiphers.pas line 1725 BreakPoint at:004E130C +Adding coverage:DECCiphers.pas (DECCiphers) 1726 +Clearing BreakPoint at 004E130F +De-Activate DECCiphers.pas line 1726 BreakPoint at:004E130F +Adding coverage:DECCiphers.pas (DECCiphers) 1762 +Clearing BreakPoint at 004E1428 +De-Activate DECCiphers.pas line 1762 BreakPoint at:004E1428 +Adding coverage:DECCiphers.pas (DECCiphers) 1763 +Clearing BreakPoint at 004E1455 +De-Activate DECCiphers.pas line 1763 BreakPoint at:004E1455 +Adding coverage:DECCiphers.pas (DECCiphers) 1764 +Clearing BreakPoint at 004E1483 +De-Activate DECCiphers.pas line 1764 BreakPoint at:004E1483 +Adding coverage:DECCiphers.pas (DECCiphers) 1771 +Clearing BreakPoint at 004E14CF +De-Activate DECCiphers.pas line 1771 BreakPoint at:004E14CF +Adding coverage:DECCiphers.pas (DECCiphers) 1774 +Clearing BreakPoint at 004E1584 +De-Activate DECCiphers.pas line 1774 BreakPoint at:004E1584 +Adding coverage:DECCiphers.pas (DECCiphers) 1775 +Clearing BreakPoint at 004E1593 +De-Activate DECCiphers.pas line 1775 BreakPoint at:004E1593 +Adding coverage:DECCiphers.pas (DECCiphers) 1777 +Clearing BreakPoint at 004E15BA +De-Activate DECCiphers.pas line 1777 BreakPoint at:004E15BA +Adding coverage:DECCiphers.pas (DECCiphers) 1778 +Clearing BreakPoint at 004E15CE +De-Activate DECCiphers.pas line 1778 BreakPoint at:004E15CE +Adding coverage:DECCiphers.pas (DECCiphers) 1783 +Clearing BreakPoint at 004E1680 +De-Activate DECCiphers.pas line 1783 BreakPoint at:004E1680 +Adding coverage:DECCiphers.pas (DECCiphers) 1784 +Clearing BreakPoint at 004E168C +De-Activate DECCiphers.pas line 1784 BreakPoint at:004E168C +Adding coverage:DECCiphers.pas (DECCiphers) 1785 +Clearing BreakPoint at 004E1695 +De-Activate DECCiphers.pas line 1785 BreakPoint at:004E1695 +Adding coverage:DECCiphers.pas (DECCiphers) 1786 +Clearing BreakPoint at 004E169F +De-Activate DECCiphers.pas line 1786 BreakPoint at:004E169F +Adding coverage:DECCiphers.pas (DECCiphers) 1787 +Clearing BreakPoint at 004E16A9 +De-Activate DECCiphers.pas line 1787 BreakPoint at:004E16A9 +Adding coverage:DECCiphers.pas (DECCiphers) 1788 +Clearing BreakPoint at 004E16B3 +De-Activate DECCiphers.pas line 1788 BreakPoint at:004E16B3 +Adding coverage:DECCiphers.pas (DECCiphers) 1789 +Clearing BreakPoint at 004E16BA +De-Activate DECCiphers.pas line 1789 BreakPoint at:004E16BA +Adding coverage:DECCiphers.pas (DECCiphers) 1790 +Clearing BreakPoint at 004E16C3 +De-Activate DECCiphers.pas line 1790 BreakPoint at:004E16C3 +Adding coverage:DECCiphers.pas (DECCiphers) 1791 +Clearing BreakPoint at 004E16CC +De-Activate DECCiphers.pas line 1791 BreakPoint at:004E16CC +Adding coverage:DECCiphers.pas (DECCiphers) 1792 +Clearing BreakPoint at 004E16D8 +De-Activate DECCiphers.pas line 1792 BreakPoint at:004E16D8 +Adding coverage:DECCiphers.pas (DECCiphers) 1799 +Clearing BreakPoint at 004E16E0 +De-Activate DECCiphers.pas line 1799 BreakPoint at:004E16E0 +Adding coverage:DECCiphers.pas (DECCiphers) 1800 +Clearing BreakPoint at 004E16EF +De-Activate DECCiphers.pas line 1800 BreakPoint at:004E16EF +Adding coverage:DECCiphers.pas (DECCiphers) 1801 +Clearing BreakPoint at 004E16FE +De-Activate DECCiphers.pas line 1801 BreakPoint at:004E16FE +Adding coverage:DECCiphers.pas (DECCiphers) 1802 +Clearing BreakPoint at 004E170C +De-Activate DECCiphers.pas line 1802 BreakPoint at:004E170C +Adding coverage:DECCiphers.pas (DECCiphers) 1803 +Clearing BreakPoint at 004E171C +De-Activate DECCiphers.pas line 1803 BreakPoint at:004E171C +Adding coverage:DECCiphers.pas (DECCiphers) 1804 +Clearing BreakPoint at 004E1725 +De-Activate DECCiphers.pas line 1804 BreakPoint at:004E1725 +Adding coverage:DECCiphers.pas (DECCiphers) 1805 +Clearing BreakPoint at 004E172C +De-Activate DECCiphers.pas line 1805 BreakPoint at:004E172C +Adding coverage:DECCiphers.pas (DECCiphers) 1806 +Clearing BreakPoint at 004E1733 +De-Activate DECCiphers.pas line 1806 BreakPoint at:004E1733 +Adding coverage:DECCiphers.pas (DECCiphers) 1808 +Clearing BreakPoint at 004E1738 +De-Activate DECCiphers.pas line 1808 BreakPoint at:004E1738 +Adding coverage:DECCiphers.pas (DECCiphers) 1810 +Clearing BreakPoint at 004E173D +De-Activate DECCiphers.pas line 1810 BreakPoint at:004E173D +Adding coverage:DECCiphers.pas (DECCiphers) 1811 +Clearing BreakPoint at 004E1746 +De-Activate DECCiphers.pas line 1811 BreakPoint at:004E1746 +Adding coverage:DECCiphers.pas (DECCiphers) 1812 +Clearing BreakPoint at 004E1760 +De-Activate DECCiphers.pas line 1812 BreakPoint at:004E1760 +Adding coverage:DECCiphers.pas (DECCiphers) 1816 +Clearing BreakPoint at 004E17BA +De-Activate DECCiphers.pas line 1816 BreakPoint at:004E17BA +Adding coverage:DECCiphers.pas (DECCiphers) 1817 +Clearing BreakPoint at 004E17C1 +De-Activate DECCiphers.pas line 1817 BreakPoint at:004E17C1 +Adding coverage:DECCiphers.pas (DECCiphers) 1818 +Clearing BreakPoint at 004E17C5 +De-Activate DECCiphers.pas line 1818 BreakPoint at:004E17C5 +Adding coverage:DECCiphers.pas (DECCiphers) 1819 +Clearing BreakPoint at 004E17CE +De-Activate DECCiphers.pas line 1819 BreakPoint at:004E17CE +Adding coverage:DECCiphers.pas (DECCiphers) 1820 +Clearing BreakPoint at 004E17E8 +De-Activate DECCiphers.pas line 1820 BreakPoint at:004E17E8 +Adding coverage:DECCiphers.pas (DECCiphers) 1824 +Clearing BreakPoint at 004E1842 +De-Activate DECCiphers.pas line 1824 BreakPoint at:004E1842 +Adding coverage:DECCiphers.pas (DECCiphers) 1825 +Clearing BreakPoint at 004E1849 +De-Activate DECCiphers.pas line 1825 BreakPoint at:004E1849 +Adding coverage:DECCiphers.pas (DECCiphers) 1826 +Clearing BreakPoint at 004E184D +De-Activate DECCiphers.pas line 1826 BreakPoint at:004E184D +Adding coverage:DECCiphers.pas (DECCiphers) 1827 +Clearing BreakPoint at 004E1856 +De-Activate DECCiphers.pas line 1827 BreakPoint at:004E1856 +Adding coverage:DECCiphers.pas (DECCiphers) 1828 +Clearing BreakPoint at 004E1870 +De-Activate DECCiphers.pas line 1828 BreakPoint at:004E1870 +Adding coverage:DECCiphers.pas (DECCiphers) 1832 +Clearing BreakPoint at 004E18CA +De-Activate DECCiphers.pas line 1832 BreakPoint at:004E18CA +Adding coverage:DECCiphers.pas (DECCiphers) 1833 +Clearing BreakPoint at 004E18D1 +De-Activate DECCiphers.pas line 1833 BreakPoint at:004E18D1 +Adding coverage:DECCiphers.pas (DECCiphers) 1834 +Clearing BreakPoint at 004E18D5 +De-Activate DECCiphers.pas line 1834 BreakPoint at:004E18D5 +Adding coverage:DECCiphers.pas (DECCiphers) 1835 +Clearing BreakPoint at 004E18DE +De-Activate DECCiphers.pas line 1835 BreakPoint at:004E18DE +Adding coverage:DECCiphers.pas (DECCiphers) 1836 +Clearing BreakPoint at 004E18F8 +De-Activate DECCiphers.pas line 1836 BreakPoint at:004E18F8 +Adding coverage:DECCiphers.pas (DECCiphers) 1840 +Clearing BreakPoint at 004E1952 +De-Activate DECCiphers.pas line 1840 BreakPoint at:004E1952 +Adding coverage:DECCiphers.pas (DECCiphers) 1841 +Clearing BreakPoint at 004E1959 +De-Activate DECCiphers.pas line 1841 BreakPoint at:004E1959 +Adding coverage:DECCiphers.pas (DECCiphers) 1842 +Clearing BreakPoint at 004E195D +De-Activate DECCiphers.pas line 1842 BreakPoint at:004E195D +Adding coverage:DECCiphers.pas (DECCiphers) 1843 +Clearing BreakPoint at 004E1966 +De-Activate DECCiphers.pas line 1843 BreakPoint at:004E1966 +Adding coverage:DECCiphers.pas (DECCiphers) 1844 +Clearing BreakPoint at 004E1980 +De-Activate DECCiphers.pas line 1844 BreakPoint at:004E1980 +Adding coverage:DECCiphers.pas (DECCiphers) 1848 +Clearing BreakPoint at 004E19DA +De-Activate DECCiphers.pas line 1848 BreakPoint at:004E19DA +Adding coverage:DECCiphers.pas (DECCiphers) 1849 +Clearing BreakPoint at 004E19E1 +De-Activate DECCiphers.pas line 1849 BreakPoint at:004E19E1 +Adding coverage:DECCiphers.pas (DECCiphers) 1850 +Clearing BreakPoint at 004E19E5 +De-Activate DECCiphers.pas line 1850 BreakPoint at:004E19E5 +Adding coverage:DECCiphers.pas (DECCiphers) 1851 +Clearing BreakPoint at 004E19EE +De-Activate DECCiphers.pas line 1851 BreakPoint at:004E19EE +Adding coverage:DECCiphers.pas (DECCiphers) 1852 +Clearing BreakPoint at 004E1A08 +De-Activate DECCiphers.pas line 1852 BreakPoint at:004E1A08 +Adding coverage:DECCiphers.pas (DECCiphers) 1856 +Clearing BreakPoint at 004E1A62 +De-Activate DECCiphers.pas line 1856 BreakPoint at:004E1A62 +Adding coverage:DECCiphers.pas (DECCiphers) 1857 +Clearing BreakPoint at 004E1A69 +De-Activate DECCiphers.pas line 1857 BreakPoint at:004E1A69 +Adding coverage:DECCiphers.pas (DECCiphers) 1858 +Clearing BreakPoint at 004E1A6D +De-Activate DECCiphers.pas line 1858 BreakPoint at:004E1A6D +Adding coverage:DECCiphers.pas (DECCiphers) 1859 +Clearing BreakPoint at 004E1A76 +De-Activate DECCiphers.pas line 1859 BreakPoint at:004E1A76 +Adding coverage:DECCiphers.pas (DECCiphers) 1860 +Clearing BreakPoint at 004E1A90 +De-Activate DECCiphers.pas line 1860 BreakPoint at:004E1A90 +Adding coverage:DECCiphers.pas (DECCiphers) 1864 +Clearing BreakPoint at 004E1AEA +De-Activate DECCiphers.pas line 1864 BreakPoint at:004E1AEA +Adding coverage:DECCiphers.pas (DECCiphers) 1865 +Clearing BreakPoint at 004E1AF1 +De-Activate DECCiphers.pas line 1865 BreakPoint at:004E1AF1 +Adding coverage:DECCiphers.pas (DECCiphers) 1866 +Clearing BreakPoint at 004E1AF5 +De-Activate DECCiphers.pas line 1866 BreakPoint at:004E1AF5 +Adding coverage:DECCiphers.pas (DECCiphers) 1867 +Clearing BreakPoint at 004E1AFE +De-Activate DECCiphers.pas line 1867 BreakPoint at:004E1AFE +Adding coverage:DECCiphers.pas (DECCiphers) 1868 +Clearing BreakPoint at 004E1B18 +De-Activate DECCiphers.pas line 1868 BreakPoint at:004E1B18 +Adding coverage:DECCiphers.pas (DECCiphers) 1872 +Clearing BreakPoint at 004E1B72 +De-Activate DECCiphers.pas line 1872 BreakPoint at:004E1B72 +Adding coverage:DECCiphers.pas (DECCiphers) 1873 +Clearing BreakPoint at 004E1B79 +De-Activate DECCiphers.pas line 1873 BreakPoint at:004E1B79 +Adding coverage:DECCiphers.pas (DECCiphers) 1874 +Clearing BreakPoint at 004E1B7D +De-Activate DECCiphers.pas line 1874 BreakPoint at:004E1B7D +Adding coverage:DECCiphers.pas (DECCiphers) 1808 +Clearing BreakPoint at 004E1B80 +De-Activate DECCiphers.pas line 1808 BreakPoint at:004E1B80 +Adding coverage:DECCiphers.pas (DECCiphers) 1875 +Clearing BreakPoint at 004E1B8A +De-Activate DECCiphers.pas line 1875 BreakPoint at:004E1B8A +Adding coverage:DECCiphers.pas (DECCiphers) 1877 +Clearing BreakPoint at 004E1B90 +De-Activate DECCiphers.pas line 1877 BreakPoint at:004E1B90 +Adding coverage:DECCiphers.pas (DECCiphers) 1878 +Clearing BreakPoint at 004E1B9F +De-Activate DECCiphers.pas line 1878 BreakPoint at:004E1B9F +Adding coverage:DECCiphers.pas (DECCiphers) 1879 +Clearing BreakPoint at 004E1BAE +De-Activate DECCiphers.pas line 1879 BreakPoint at:004E1BAE +Adding coverage:DECCiphers.pas (DECCiphers) 1880 +Clearing BreakPoint at 004E1BBD +De-Activate DECCiphers.pas line 1880 BreakPoint at:004E1BBD +Adding coverage:DECCiphers.pas (DECCiphers) 1881 +Clearing BreakPoint at 004E1BCC +De-Activate DECCiphers.pas line 1881 BreakPoint at:004E1BCC +Adding coverage:DECCiphers.pas (DECCiphers) 1882 +Clearing BreakPoint at 004E1BD4 +De-Activate DECCiphers.pas line 1882 BreakPoint at:004E1BD4 +Adding coverage:DECCiphers.pas (DECCiphers) 1883 +Clearing BreakPoint at 004E1BDD +De-Activate DECCiphers.pas line 1883 BreakPoint at:004E1BDD +Adding coverage:DECCiphers.pas (DECCiphers) 1884 +Clearing BreakPoint at 004E1BE6 +De-Activate DECCiphers.pas line 1884 BreakPoint at:004E1BE6 +Adding coverage:DECCiphers.pas (DECCiphers) 1897 +Clearing BreakPoint at 004E1C50 +De-Activate DECCiphers.pas line 1897 BreakPoint at:004E1C50 +Adding coverage:DECCiphers.pas (DECCiphers) 1898 +Clearing BreakPoint at 004E1C59 +De-Activate DECCiphers.pas line 1898 BreakPoint at:004E1C59 +Adding coverage:DECCiphers.pas (DECCiphers) 1806 +Clearing BreakPoint at 004E1C5C +De-Activate DECCiphers.pas line 1806 BreakPoint at:004E1C5C +Adding coverage:DECCiphers.pas (DECCiphers) 1888 +Clearing BreakPoint at 004E1BF1 +De-Activate DECCiphers.pas line 1888 BreakPoint at:004E1BF1 +Adding coverage:DECCiphers.pas (DECCiphers) 1889 +Clearing BreakPoint at 004E1C00 +De-Activate DECCiphers.pas line 1889 BreakPoint at:004E1C00 +Adding coverage:DECCiphers.pas (DECCiphers) 1890 +Clearing BreakPoint at 004E1C0F +De-Activate DECCiphers.pas line 1890 BreakPoint at:004E1C0F +Adding coverage:DECCiphers.pas (DECCiphers) 1891 +Clearing BreakPoint at 004E1C1E +De-Activate DECCiphers.pas line 1891 BreakPoint at:004E1C1E +Adding coverage:DECCiphers.pas (DECCiphers) 1892 +Clearing BreakPoint at 004E1C2D +De-Activate DECCiphers.pas line 1892 BreakPoint at:004E1C2D +Adding coverage:DECCiphers.pas (DECCiphers) 1893 +Clearing BreakPoint at 004E1C35 +De-Activate DECCiphers.pas line 1893 BreakPoint at:004E1C35 +Adding coverage:DECCiphers.pas (DECCiphers) 1894 +Clearing BreakPoint at 004E1C3E +De-Activate DECCiphers.pas line 1894 BreakPoint at:004E1C3E +Adding coverage:DECCiphers.pas (DECCiphers) 1895 +Clearing BreakPoint at 004E1C47 +De-Activate DECCiphers.pas line 1895 BreakPoint at:004E1C47 +Adding coverage:DECCiphers.pas (DECCiphers) 1899 +Clearing BreakPoint at 004E1C66 +De-Activate DECCiphers.pas line 1899 BreakPoint at:004E1C66 +Adding coverage:DECCiphers.pas (DECCiphers) 1902 +Clearing BreakPoint at 004E1C73 +De-Activate DECCiphers.pas line 1902 BreakPoint at:004E1C73 +Adding coverage:DECCiphers.pas (DECCiphers) 1908 +Clearing BreakPoint at 004E1C78 +De-Activate DECCiphers.pas line 1908 BreakPoint at:004E1C78 +Adding coverage:DECCiphers.pas (DECCiphers) 1909 +Clearing BreakPoint at 004E1C87 +De-Activate DECCiphers.pas line 1909 BreakPoint at:004E1C87 +Adding coverage:DECCiphers.pas (DECCiphers) 1911 +Clearing BreakPoint at 004E1CAE +De-Activate DECCiphers.pas line 1911 BreakPoint at:004E1CAE +Adding coverage:DECCiphers.pas (DECCiphers) 1912 +Clearing BreakPoint at 004E1CB7 +De-Activate DECCiphers.pas line 1912 BreakPoint at:004E1CB7 +Adding coverage:DECCiphers.pas (DECCiphers) 1913 +Clearing BreakPoint at 004E1CC7 +De-Activate DECCiphers.pas line 1913 BreakPoint at:004E1CC7 +Adding coverage:DECCiphers.pas (DECCiphers) 1914 +Clearing BreakPoint at 004E1CCF +De-Activate DECCiphers.pas line 1914 BreakPoint at:004E1CCF +Adding coverage:DECCiphers.pas (DECCiphers) 1915 +Clearing BreakPoint at 004E1CD8 +De-Activate DECCiphers.pas line 1915 BreakPoint at:004E1CD8 +Adding coverage:DECCiphers.pas (DECCiphers) 1916 +Clearing BreakPoint at 004E1CE1 +De-Activate DECCiphers.pas line 1916 BreakPoint at:004E1CE1 +Adding coverage:DECCiphers.pas (DECCiphers) 1917 +Clearing BreakPoint at 004E1CEA +De-Activate DECCiphers.pas line 1917 BreakPoint at:004E1CEA +Adding coverage:DECCiphers.pas (DECCiphers) 1919 +Clearing BreakPoint at 004E1CEF +De-Activate DECCiphers.pas line 1919 BreakPoint at:004E1CEF +Adding coverage:DECCiphers.pas (DECCiphers) 1920 +Clearing BreakPoint at 004E1CFA +De-Activate DECCiphers.pas line 1920 BreakPoint at:004E1CFA +Adding coverage:DECCiphers.pas (DECCiphers) 1921 +Clearing BreakPoint at 004E1D20 +De-Activate DECCiphers.pas line 1921 BreakPoint at:004E1D20 +Adding coverage:DECCiphers.pas (DECCiphers) 1925 +Clearing BreakPoint at 004E1D7A +De-Activate DECCiphers.pas line 1925 BreakPoint at:004E1D7A +Adding coverage:DECCiphers.pas (DECCiphers) 1926 +Clearing BreakPoint at 004E1D86 +De-Activate DECCiphers.pas line 1926 BreakPoint at:004E1D86 +Adding coverage:DECCiphers.pas (DECCiphers) 1927 +Clearing BreakPoint at 004E1DAC +De-Activate DECCiphers.pas line 1927 BreakPoint at:004E1DAC +Adding coverage:DECCiphers.pas (DECCiphers) 1931 +Clearing BreakPoint at 004E1E06 +De-Activate DECCiphers.pas line 1931 BreakPoint at:004E1E06 +Adding coverage:DECCiphers.pas (DECCiphers) 1932 +Clearing BreakPoint at 004E1E12 +De-Activate DECCiphers.pas line 1932 BreakPoint at:004E1E12 +Adding coverage:DECCiphers.pas (DECCiphers) 1933 +Clearing BreakPoint at 004E1E38 +De-Activate DECCiphers.pas line 1933 BreakPoint at:004E1E38 +Adding coverage:DECCiphers.pas (DECCiphers) 1937 +Clearing BreakPoint at 004E1E92 +De-Activate DECCiphers.pas line 1937 BreakPoint at:004E1E92 +Adding coverage:DECCiphers.pas (DECCiphers) 1938 +Clearing BreakPoint at 004E1E9E +De-Activate DECCiphers.pas line 1938 BreakPoint at:004E1E9E +Adding coverage:DECCiphers.pas (DECCiphers) 1939 +Clearing BreakPoint at 004E1EC4 +De-Activate DECCiphers.pas line 1939 BreakPoint at:004E1EC4 +Adding coverage:DECCiphers.pas (DECCiphers) 1943 +Clearing BreakPoint at 004E1F1E +De-Activate DECCiphers.pas line 1943 BreakPoint at:004E1F1E +Adding coverage:DECCiphers.pas (DECCiphers) 1944 +Clearing BreakPoint at 004E1F27 +De-Activate DECCiphers.pas line 1944 BreakPoint at:004E1F27 +Adding coverage:DECCiphers.pas (DECCiphers) 1917 +Clearing BreakPoint at 004E1F2A +De-Activate DECCiphers.pas line 1917 BreakPoint at:004E1F2A +Adding coverage:DECCiphers.pas (DECCiphers) 1945 +Clearing BreakPoint at 004E1F34 +De-Activate DECCiphers.pas line 1945 BreakPoint at:004E1F34 +Adding coverage:DECCiphers.pas (DECCiphers) 1947 +Clearing BreakPoint at 004E1F39 +De-Activate DECCiphers.pas line 1947 BreakPoint at:004E1F39 +Adding coverage:DECCiphers.pas (DECCiphers) 1948 +Clearing BreakPoint at 004E1F44 +De-Activate DECCiphers.pas line 1948 BreakPoint at:004E1F44 +Adding coverage:DECCiphers.pas (DECCiphers) 1949 +Clearing BreakPoint at 004E1F6A +De-Activate DECCiphers.pas line 1949 BreakPoint at:004E1F6A +Adding coverage:DECCiphers.pas (DECCiphers) 1953 +Clearing BreakPoint at 004E1FC4 +De-Activate DECCiphers.pas line 1953 BreakPoint at:004E1FC4 +Adding coverage:DECCiphers.pas (DECCiphers) 1954 +Clearing BreakPoint at 004E1FD0 +De-Activate DECCiphers.pas line 1954 BreakPoint at:004E1FD0 +Adding coverage:DECCiphers.pas (DECCiphers) 1955 +Clearing BreakPoint at 004E1FF6 +De-Activate DECCiphers.pas line 1955 BreakPoint at:004E1FF6 +Adding coverage:DECCiphers.pas (DECCiphers) 1959 +Clearing BreakPoint at 004E2050 +De-Activate DECCiphers.pas line 1959 BreakPoint at:004E2050 +Adding coverage:DECCiphers.pas (DECCiphers) 1960 +Clearing BreakPoint at 004E205C +De-Activate DECCiphers.pas line 1960 BreakPoint at:004E205C +Adding coverage:DECCiphers.pas (DECCiphers) 1961 +Clearing BreakPoint at 004E2082 +De-Activate DECCiphers.pas line 1961 BreakPoint at:004E2082 +Adding coverage:DECCiphers.pas (DECCiphers) 1965 +Clearing BreakPoint at 004E20DC +De-Activate DECCiphers.pas line 1965 BreakPoint at:004E20DC +Adding coverage:DECCiphers.pas (DECCiphers) 1966 +Clearing BreakPoint at 004E20E8 +De-Activate DECCiphers.pas line 1966 BreakPoint at:004E20E8 +Adding coverage:DECCiphers.pas (DECCiphers) 1967 +Clearing BreakPoint at 004E210E +De-Activate DECCiphers.pas line 1967 BreakPoint at:004E210E +Adding coverage:DECCiphers.pas (DECCiphers) 1971 +Clearing BreakPoint at 004E2168 +De-Activate DECCiphers.pas line 1971 BreakPoint at:004E2168 +Adding coverage:DECCiphers.pas (DECCiphers) 1972 +Clearing BreakPoint at 004E2171 +De-Activate DECCiphers.pas line 1972 BreakPoint at:004E2171 +Adding coverage:DECCiphers.pas (DECCiphers) 1945 +Clearing BreakPoint at 004E2174 +De-Activate DECCiphers.pas line 1945 BreakPoint at:004E2174 +Adding coverage:DECCiphers.pas (DECCiphers) 1973 +Clearing BreakPoint at 004E217E +De-Activate DECCiphers.pas line 1973 BreakPoint at:004E217E +Adding coverage:DECCiphers.pas (DECCiphers) 1974 +Clearing BreakPoint at 004E2186 +De-Activate DECCiphers.pas line 1974 BreakPoint at:004E2186 +Adding coverage:DECCiphers.pas (DECCiphers) 1975 +Clearing BreakPoint at 004E218F +De-Activate DECCiphers.pas line 1975 BreakPoint at:004E218F +Adding coverage:DECCiphers.pas (DECCiphers) 1976 +Clearing BreakPoint at 004E2198 +De-Activate DECCiphers.pas line 1976 BreakPoint at:004E2198 +Adding coverage:DECCiphers.pas (DECCiphers) 1977 +Clearing BreakPoint at 004E21A1 +De-Activate DECCiphers.pas line 1977 BreakPoint at:004E21A1 +Adding coverage:DECCiphers.pas (DECCiphers) 1978 +Clearing BreakPoint at 004E21B1 +De-Activate DECCiphers.pas line 1978 BreakPoint at:004E21B1 +Adding coverage:DECCiphers.pas (DECCiphers) 1984 +Clearing BreakPoint at 004E2264 +De-Activate DECCiphers.pas line 1984 BreakPoint at:004E2264 +Adding coverage:DECCiphers.pas (DECCiphers) 1985 +Clearing BreakPoint at 004E2273 +De-Activate DECCiphers.pas line 1985 BreakPoint at:004E2273 +Adding coverage:DECCiphers.pas (DECCiphers) 1987 +Clearing BreakPoint at 004E229A +De-Activate DECCiphers.pas line 1987 BreakPoint at:004E229A +Adding coverage:DECCiphers.pas (DECCiphers) 1988 +Clearing BreakPoint at 004E22A8 +De-Activate DECCiphers.pas line 1988 BreakPoint at:004E22A8 +Adding coverage:DECCiphers.pas (DECCiphers) 1989 +Clearing BreakPoint at 004E22B8 +De-Activate DECCiphers.pas line 1989 BreakPoint at:004E22B8 +Adding coverage:DECCiphers.pas (DECCiphers) 1990 +Clearing BreakPoint at 004E22C0 +De-Activate DECCiphers.pas line 1990 BreakPoint at:004E22C0 +Adding coverage:DECCiphers.pas (DECCiphers) 1991 +Clearing BreakPoint at 004E22C9 +De-Activate DECCiphers.pas line 1991 BreakPoint at:004E22C9 +Adding coverage:DECCiphers.pas (DECCiphers) 1992 +Clearing BreakPoint at 004E22D2 +De-Activate DECCiphers.pas line 1992 BreakPoint at:004E22D2 +Adding coverage:DECCiphers.pas (DECCiphers) 1993 +Clearing BreakPoint at 004E22DB +De-Activate DECCiphers.pas line 1993 BreakPoint at:004E22DB +Adding coverage:DECCiphers.pas (DECCiphers) 1995 +Clearing BreakPoint at 004E22E0 +De-Activate DECCiphers.pas line 1995 BreakPoint at:004E22E0 +Adding coverage:DECCiphers.pas (DECCiphers) 1996 +Clearing BreakPoint at 004E22EC +De-Activate DECCiphers.pas line 1996 BreakPoint at:004E22EC +Adding coverage:DECCiphers.pas (DECCiphers) 1997 +Clearing BreakPoint at 004E2312 +De-Activate DECCiphers.pas line 1997 BreakPoint at:004E2312 +Adding coverage:DECCiphers.pas (DECCiphers) 2001 +Clearing BreakPoint at 004E236C +De-Activate DECCiphers.pas line 2001 BreakPoint at:004E236C +Adding coverage:DECCiphers.pas (DECCiphers) 2002 +Clearing BreakPoint at 004E2378 +De-Activate DECCiphers.pas line 2002 BreakPoint at:004E2378 +Adding coverage:DECCiphers.pas (DECCiphers) 2003 +Clearing BreakPoint at 004E239E +De-Activate DECCiphers.pas line 2003 BreakPoint at:004E239E +Adding coverage:DECCiphers.pas (DECCiphers) 2007 +Clearing BreakPoint at 004E23F8 +De-Activate DECCiphers.pas line 2007 BreakPoint at:004E23F8 +Adding coverage:DECCiphers.pas (DECCiphers) 2008 +Clearing BreakPoint at 004E2404 +De-Activate DECCiphers.pas line 2008 BreakPoint at:004E2404 +Adding coverage:DECCiphers.pas (DECCiphers) 2009 +Clearing BreakPoint at 004E242A +De-Activate DECCiphers.pas line 2009 BreakPoint at:004E242A +Adding coverage:DECCiphers.pas (DECCiphers) 2013 +Clearing BreakPoint at 004E2484 +De-Activate DECCiphers.pas line 2013 BreakPoint at:004E2484 +Adding coverage:DECCiphers.pas (DECCiphers) 2014 +Clearing BreakPoint at 004E248F +De-Activate DECCiphers.pas line 2014 BreakPoint at:004E248F +Adding coverage:DECCiphers.pas (DECCiphers) 2015 +Clearing BreakPoint at 004E24B5 +De-Activate DECCiphers.pas line 2015 BreakPoint at:004E24B5 +Adding coverage:DECCiphers.pas (DECCiphers) 2019 +Clearing BreakPoint at 004E250F +De-Activate DECCiphers.pas line 2019 BreakPoint at:004E250F +Adding coverage:DECCiphers.pas (DECCiphers) 2020 +Clearing BreakPoint at 004E2513 +De-Activate DECCiphers.pas line 2020 BreakPoint at:004E2513 +Adding coverage:DECCiphers.pas (DECCiphers) 1993 +Clearing BreakPoint at 004E2516 +De-Activate DECCiphers.pas line 1993 BreakPoint at:004E2516 +Adding coverage:DECCiphers.pas (DECCiphers) 2021 +Clearing BreakPoint at 004E2520 +De-Activate DECCiphers.pas line 2021 BreakPoint at:004E2520 +Adding coverage:DECCiphers.pas (DECCiphers) 2023 +Clearing BreakPoint at 004E2525 +De-Activate DECCiphers.pas line 2023 BreakPoint at:004E2525 +Adding coverage:DECCiphers.pas (DECCiphers) 2024 +Clearing BreakPoint at 004E2531 +De-Activate DECCiphers.pas line 2024 BreakPoint at:004E2531 +Adding coverage:DECCiphers.pas (DECCiphers) 2025 +Clearing BreakPoint at 004E2557 +De-Activate DECCiphers.pas line 2025 BreakPoint at:004E2557 +Adding coverage:DECCiphers.pas (DECCiphers) 2029 +Clearing BreakPoint at 004E25B1 +De-Activate DECCiphers.pas line 2029 BreakPoint at:004E25B1 +Adding coverage:DECCiphers.pas (DECCiphers) 2030 +Clearing BreakPoint at 004E25BD +De-Activate DECCiphers.pas line 2030 BreakPoint at:004E25BD +Adding coverage:DECCiphers.pas (DECCiphers) 2031 +Clearing BreakPoint at 004E25E3 +De-Activate DECCiphers.pas line 2031 BreakPoint at:004E25E3 +Adding coverage:DECCiphers.pas (DECCiphers) 2035 +Clearing BreakPoint at 004E263D +De-Activate DECCiphers.pas line 2035 BreakPoint at:004E263D +Adding coverage:DECCiphers.pas (DECCiphers) 2036 +Clearing BreakPoint at 004E2649 +De-Activate DECCiphers.pas line 2036 BreakPoint at:004E2649 +Adding coverage:DECCiphers.pas (DECCiphers) 2037 +Clearing BreakPoint at 004E266F +De-Activate DECCiphers.pas line 2037 BreakPoint at:004E266F +Adding coverage:DECCiphers.pas (DECCiphers) 2041 +Clearing BreakPoint at 004E26C9 +De-Activate DECCiphers.pas line 2041 BreakPoint at:004E26C9 +Adding coverage:DECCiphers.pas (DECCiphers) 2042 +Clearing BreakPoint at 004E26D4 +De-Activate DECCiphers.pas line 2042 BreakPoint at:004E26D4 +Adding coverage:DECCiphers.pas (DECCiphers) 2043 +Clearing BreakPoint at 004E26FA +De-Activate DECCiphers.pas line 2043 BreakPoint at:004E26FA +Adding coverage:DECCiphers.pas (DECCiphers) 2047 +Clearing BreakPoint at 004E2754 +De-Activate DECCiphers.pas line 2047 BreakPoint at:004E2754 +Adding coverage:DECCiphers.pas (DECCiphers) 2048 +Clearing BreakPoint at 004E2758 +De-Activate DECCiphers.pas line 2048 BreakPoint at:004E2758 +Adding coverage:DECCiphers.pas (DECCiphers) 2021 +Clearing BreakPoint at 004E275B +De-Activate DECCiphers.pas line 2021 BreakPoint at:004E275B +Adding coverage:DECCiphers.pas (DECCiphers) 2049 +Clearing BreakPoint at 004E2765 +De-Activate DECCiphers.pas line 2049 BreakPoint at:004E2765 +Adding coverage:DECCiphers.pas (DECCiphers) 2050 +Clearing BreakPoint at 004E276D +De-Activate DECCiphers.pas line 2050 BreakPoint at:004E276D +Adding coverage:DECCiphers.pas (DECCiphers) 2051 +Clearing BreakPoint at 004E2776 +De-Activate DECCiphers.pas line 2051 BreakPoint at:004E2776 +Adding coverage:DECCiphers.pas (DECCiphers) 2052 +Clearing BreakPoint at 004E277F +De-Activate DECCiphers.pas line 2052 BreakPoint at:004E277F +Adding coverage:DECCiphers.pas (DECCiphers) 2053 +Clearing BreakPoint at 004E2788 +De-Activate DECCiphers.pas line 2053 BreakPoint at:004E2788 +Adding coverage:DECCiphers.pas (DECCiphers) 2054 +Clearing BreakPoint at 004E2798 +De-Activate DECCiphers.pas line 2054 BreakPoint at:004E2798 +Adding coverage:DECCiphers.pas (DECCiphers) 2059 +Clearing BreakPoint at 004E284C +De-Activate DECCiphers.pas line 2059 BreakPoint at:004E284C +Adding coverage:DECCiphers.pas (DECCiphers) 2060 +Clearing BreakPoint at 004E2858 +De-Activate DECCiphers.pas line 2060 BreakPoint at:004E2858 +Adding coverage:DECCiphers.pas (DECCiphers) 2061 +Clearing BreakPoint at 004E2861 +De-Activate DECCiphers.pas line 2061 BreakPoint at:004E2861 +Adding coverage:DECCiphers.pas (DECCiphers) 2062 +Clearing BreakPoint at 004E286B +De-Activate DECCiphers.pas line 2062 BreakPoint at:004E286B +Adding coverage:DECCiphers.pas (DECCiphers) 2063 +Clearing BreakPoint at 004E2875 +De-Activate DECCiphers.pas line 2063 BreakPoint at:004E2875 +Adding coverage:DECCiphers.pas (DECCiphers) 2064 +Clearing BreakPoint at 004E287F +De-Activate DECCiphers.pas line 2064 BreakPoint at:004E287F +Adding coverage:DECCiphers.pas (DECCiphers) 2065 +Clearing BreakPoint at 004E2886 +De-Activate DECCiphers.pas line 2065 BreakPoint at:004E2886 +Adding coverage:DECCiphers.pas (DECCiphers) 2066 +Clearing BreakPoint at 004E288F +De-Activate DECCiphers.pas line 2066 BreakPoint at:004E288F +Adding coverage:DECCiphers.pas (DECCiphers) 2067 +Clearing BreakPoint at 004E2898 +De-Activate DECCiphers.pas line 2067 BreakPoint at:004E2898 +Adding coverage:DECCiphers.pas (DECCiphers) 2068 +Clearing BreakPoint at 004E28A4 +De-Activate DECCiphers.pas line 2068 BreakPoint at:004E28A4 +Adding coverage:DECCiphers.pas (DECCiphers) 2105 +Clearing BreakPoint at 004E29A0 +De-Activate DECCiphers.pas line 2105 BreakPoint at:004E29A0 +Adding coverage:DECCiphers.pas (DECCiphers) 2106 +Clearing BreakPoint at 004E29B0 +De-Activate DECCiphers.pas line 2106 BreakPoint at:004E29B0 +Adding coverage:DECCiphers.pas (DECCiphers) 2107 +Clearing BreakPoint at 004E29B9 +De-Activate DECCiphers.pas line 2107 BreakPoint at:004E29B9 +Adding coverage:DECCiphers.pas (DECCiphers) 2108 +Clearing BreakPoint at 004E29C1 +De-Activate DECCiphers.pas line 2108 BreakPoint at:004E29C1 +Adding coverage:DECCiphers.pas (DECCiphers) 2109 +Clearing BreakPoint at 004E29D0 +De-Activate DECCiphers.pas line 2109 BreakPoint at:004E29D0 +Adding coverage:DECCiphers.pas (DECCiphers) 2110 +Clearing BreakPoint at 004E29DE +De-Activate DECCiphers.pas line 2110 BreakPoint at:004E29DE +Adding coverage:DECCiphers.pas (DECCiphers) 2111 +Clearing BreakPoint at 004E29EE +De-Activate DECCiphers.pas line 2111 BreakPoint at:004E29EE +Adding coverage:DECCiphers.pas (DECCiphers) 2112 +Clearing BreakPoint at 004E29F8 +De-Activate DECCiphers.pas line 2112 BreakPoint at:004E29F8 +Adding coverage:DECCiphers.pas (DECCiphers) 2114 +Clearing BreakPoint at 004E29FD +De-Activate DECCiphers.pas line 2114 BreakPoint at:004E29FD +Adding coverage:DECCiphers.pas (DECCiphers) 2116 +Clearing BreakPoint at 004E2A02 +De-Activate DECCiphers.pas line 2116 BreakPoint at:004E2A02 +Adding coverage:DECCiphers.pas (DECCiphers) 2117 +Clearing BreakPoint at 004E2A2B +De-Activate DECCiphers.pas line 2117 BreakPoint at:004E2A2B +Adding coverage:DECCiphers.pas (DECCiphers) 2118 +Clearing BreakPoint at 004E2A52 +De-Activate DECCiphers.pas line 2118 BreakPoint at:004E2A52 +Adding coverage:DECCiphers.pas (DECCiphers) 2114 +Clearing BreakPoint at 004E2A55 +De-Activate DECCiphers.pas line 2114 BreakPoint at:004E2A55 +Adding coverage:DECCiphers.pas (DECCiphers) 2119 +Clearing BreakPoint at 004E2A5B +De-Activate DECCiphers.pas line 2119 BreakPoint at:004E2A5B +Adding coverage:DECCiphers.pas (DECCiphers) 2121 +Clearing BreakPoint at 004E2A60 +De-Activate DECCiphers.pas line 2121 BreakPoint at:004E2A60 +Adding coverage:DECCiphers.pas (DECCiphers) 2123 +Clearing BreakPoint at 004E2A65 +De-Activate DECCiphers.pas line 2123 BreakPoint at:004E2A65 +Adding coverage:DECCiphers.pas (DECCiphers) 2124 +Clearing BreakPoint at 004E2A8A +De-Activate DECCiphers.pas line 2124 BreakPoint at:004E2A8A +Adding coverage:DECCiphers.pas (DECCiphers) 2125 +Clearing BreakPoint at 004E2AA7 +De-Activate DECCiphers.pas line 2125 BreakPoint at:004E2AA7 +Adding coverage:DECCiphers.pas (DECCiphers) 2121 +Clearing BreakPoint at 004E2AAA +De-Activate DECCiphers.pas line 2121 BreakPoint at:004E2AAA +Adding coverage:DECCiphers.pas (DECCiphers) 2126 +Clearing BreakPoint at 004E2AB0 +De-Activate DECCiphers.pas line 2126 BreakPoint at:004E2AB0 +Adding coverage:DECCiphers.pas (DECCiphers) 2119 +Clearing BreakPoint at 004E2AB3 +De-Activate DECCiphers.pas line 2119 BreakPoint at:004E2AB3 +Adding coverage:DECCiphers.pas (DECCiphers) 2127 +Clearing BreakPoint at 004E2AB9 +De-Activate DECCiphers.pas line 2127 BreakPoint at:004E2AB9 +Adding coverage:DECCiphers.pas (DECCiphers) 2128 +Clearing BreakPoint at 004E2ABE +De-Activate DECCiphers.pas line 2128 BreakPoint at:004E2ABE +Adding coverage:DECCiphers.pas (DECCiphers) 2127 +Clearing BreakPoint at 004E2AE5 +De-Activate DECCiphers.pas line 2127 BreakPoint at:004E2AE5 +Adding coverage:DECCiphers.pas (DECCiphers) 2129 +Clearing BreakPoint at 004E2AEB +De-Activate DECCiphers.pas line 2129 BreakPoint at:004E2AEB +Adding coverage:DECCiphers.pas (DECCiphers) 2112 +Clearing BreakPoint at 004E2AEE +De-Activate DECCiphers.pas line 2112 BreakPoint at:004E2AEE +Adding coverage:DECCiphers.pas (DECCiphers) 2130 +Clearing BreakPoint at 004E2AF8 +De-Activate DECCiphers.pas line 2130 BreakPoint at:004E2AF8 +Adding coverage:DECCiphers.pas (DECCiphers) 2132 +Clearing BreakPoint at 004E2AFF +De-Activate DECCiphers.pas line 2132 BreakPoint at:004E2AFF +Adding coverage:DECCiphers.pas (DECCiphers) 2078 +Clearing BreakPoint at 004E28AC +De-Activate DECCiphers.pas line 2078 BreakPoint at:004E28AC +Adding coverage:DECCiphers.pas (DECCiphers) 2079 +Clearing BreakPoint at 004E28B9 +De-Activate DECCiphers.pas line 2079 BreakPoint at:004E28B9 +Adding coverage:DECCiphers.pas (DECCiphers) 2080 +Clearing BreakPoint at 004E28C2 +De-Activate DECCiphers.pas line 2080 BreakPoint at:004E28C2 +Adding coverage:DECCiphers.pas (DECCiphers) 2081 +Clearing BreakPoint at 004E28C6 +De-Activate DECCiphers.pas line 2081 BreakPoint at:004E28C6 +Adding coverage:DECCiphers.pas (DECCiphers) 2082 +Clearing BreakPoint at 004E28D5 +De-Activate DECCiphers.pas line 2082 BreakPoint at:004E28D5 +Adding coverage:DECCiphers.pas (DECCiphers) 2083 +Clearing BreakPoint at 004E28E0 +De-Activate DECCiphers.pas line 2083 BreakPoint at:004E28E0 +Adding coverage:DECCiphers.pas (DECCiphers) 2084 +Clearing BreakPoint at 004E28E9 +De-Activate DECCiphers.pas line 2084 BreakPoint at:004E28E9 +Adding coverage:DECCiphers.pas (DECCiphers) 2085 +Clearing BreakPoint at 004E28F2 +De-Activate DECCiphers.pas line 2085 BreakPoint at:004E28F2 +Adding coverage:DECCiphers.pas (DECCiphers) 2086 +Clearing BreakPoint at 004E28FB +De-Activate DECCiphers.pas line 2086 BreakPoint at:004E28FB +Adding coverage:DECCiphers.pas (DECCiphers) 2087 +Clearing BreakPoint at 004E2902 +De-Activate DECCiphers.pas line 2087 BreakPoint at:004E2902 +Adding coverage:DECCiphers.pas (DECCiphers) 2089 +Clearing BreakPoint at 004E2908 +De-Activate DECCiphers.pas line 2089 BreakPoint at:004E2908 +Adding coverage:DECCiphers.pas (DECCiphers) 2090 +Clearing BreakPoint at 004E290E +De-Activate DECCiphers.pas line 2090 BreakPoint at:004E290E +Adding coverage:DECCiphers.pas (DECCiphers) 2098 +Clearing BreakPoint at 004E2998 +De-Activate DECCiphers.pas line 2098 BreakPoint at:004E2998 +Adding coverage:DECCiphers.pas (DECCiphers) 2133 +Clearing BreakPoint at 004E2B22 +De-Activate DECCiphers.pas line 2133 BreakPoint at:004E2B22 +Adding coverage:DECCiphers.pas (DECCiphers) 2134 +Clearing BreakPoint at 004E2B26 +De-Activate DECCiphers.pas line 2134 BreakPoint at:004E2B26 +Adding coverage:DECCiphers.pas (DECCiphers) 2092 +Clearing BreakPoint at 004E2913 +De-Activate DECCiphers.pas line 2092 BreakPoint at:004E2913 +Adding coverage:DECCiphers.pas (DECCiphers) 2093 +Clearing BreakPoint at 004E291E +De-Activate DECCiphers.pas line 2093 BreakPoint at:004E291E +Adding coverage:DECCiphers.pas (DECCiphers) 2094 +Clearing BreakPoint at 004E2927 +De-Activate DECCiphers.pas line 2094 BreakPoint at:004E2927 +Adding coverage:DECCiphers.pas (DECCiphers) 2095 +Clearing BreakPoint at 004E2930 +De-Activate DECCiphers.pas line 2095 BreakPoint at:004E2930 +Adding coverage:DECCiphers.pas (DECCiphers) 2096 +Clearing BreakPoint at 004E2939 +De-Activate DECCiphers.pas line 2096 BreakPoint at:004E2939 +Adding coverage:DECCiphers.pas (DECCiphers) 2097 +Clearing BreakPoint at 004E295B +De-Activate DECCiphers.pas line 2097 BreakPoint at:004E295B +Adding coverage:DECCiphers.pas (DECCiphers) 2137 +Clearing BreakPoint at 004E2B2C +De-Activate DECCiphers.pas line 2137 BreakPoint at:004E2B2C +Adding coverage:DECCiphers.pas (DECCiphers) 2143 +Clearing BreakPoint at 004E2B34 +De-Activate DECCiphers.pas line 2143 BreakPoint at:004E2B34 +Adding coverage:DECCiphers.pas (DECCiphers) 2144 +Clearing BreakPoint at 004E2B43 +De-Activate DECCiphers.pas line 2144 BreakPoint at:004E2B43 +Adding coverage:DECCiphers.pas (DECCiphers) 2146 +Clearing BreakPoint at 004E2B6A +De-Activate DECCiphers.pas line 2146 BreakPoint at:004E2B6A +Adding coverage:DECCiphers.pas (DECCiphers) 2147 +Clearing BreakPoint at 004E2B73 +De-Activate DECCiphers.pas line 2147 BreakPoint at:004E2B73 +Adding coverage:DECCiphers.pas (DECCiphers) 2148 +Clearing BreakPoint at 004E2B80 +De-Activate DECCiphers.pas line 2148 BreakPoint at:004E2B80 +Adding coverage:DECCiphers.pas (DECCiphers) 2149 +Clearing BreakPoint at 004E2B8F +De-Activate DECCiphers.pas line 2149 BreakPoint at:004E2B8F +Adding coverage:DECCiphers.pas (DECCiphers) 2150 +Clearing BreakPoint at 004E2B9E +De-Activate DECCiphers.pas line 2150 BreakPoint at:004E2B9E +Adding coverage:DECCiphers.pas (DECCiphers) 2151 +Clearing BreakPoint at 004E2BAD +De-Activate DECCiphers.pas line 2151 BreakPoint at:004E2BAD +Adding coverage:DECCiphers.pas (DECCiphers) 2152 +Clearing BreakPoint at 004E2BB6 +De-Activate DECCiphers.pas line 2152 BreakPoint at:004E2BB6 +Adding coverage:DECCiphers.pas (DECCiphers) 2154 +Clearing BreakPoint at 004E2BBB +De-Activate DECCiphers.pas line 2154 BreakPoint at:004E2BBB +Adding coverage:DECCiphers.pas (DECCiphers) 2155 +Clearing BreakPoint at 004E2BEB +De-Activate DECCiphers.pas line 2155 BreakPoint at:004E2BEB +Adding coverage:DECCiphers.pas (DECCiphers) 2156 +Clearing BreakPoint at 004E2C02 +De-Activate DECCiphers.pas line 2156 BreakPoint at:004E2C02 +Adding coverage:DECCiphers.pas (DECCiphers) 2157 +Clearing BreakPoint at 004E2C18 +De-Activate DECCiphers.pas line 2157 BreakPoint at:004E2C18 +Adding coverage:DECCiphers.pas (DECCiphers) 2159 +Clearing BreakPoint at 004E2C2C +De-Activate DECCiphers.pas line 2159 BreakPoint at:004E2C2C +Adding coverage:DECCiphers.pas (DECCiphers) 2160 +Clearing BreakPoint at 004E2C5C +De-Activate DECCiphers.pas line 2160 BreakPoint at:004E2C5C +Adding coverage:DECCiphers.pas (DECCiphers) 2161 +Clearing BreakPoint at 004E2C73 +De-Activate DECCiphers.pas line 2161 BreakPoint at:004E2C73 +Adding coverage:DECCiphers.pas (DECCiphers) 2162 +Clearing BreakPoint at 004E2C89 +De-Activate DECCiphers.pas line 2162 BreakPoint at:004E2C89 +Adding coverage:DECCiphers.pas (DECCiphers) 2164 +Clearing BreakPoint at 004E2C9D +De-Activate DECCiphers.pas line 2164 BreakPoint at:004E2C9D +Adding coverage:DECCiphers.pas (DECCiphers) 2165 +Clearing BreakPoint at 004E2CCD +De-Activate DECCiphers.pas line 2165 BreakPoint at:004E2CCD +Adding coverage:DECCiphers.pas (DECCiphers) 2166 +Clearing BreakPoint at 004E2CE4 +De-Activate DECCiphers.pas line 2166 BreakPoint at:004E2CE4 +Adding coverage:DECCiphers.pas (DECCiphers) 2167 +Clearing BreakPoint at 004E2CFA +De-Activate DECCiphers.pas line 2167 BreakPoint at:004E2CFA +Adding coverage:DECCiphers.pas (DECCiphers) 2169 +Clearing BreakPoint at 004E2D0B +De-Activate DECCiphers.pas line 2169 BreakPoint at:004E2D0B +Adding coverage:DECCiphers.pas (DECCiphers) 2170 +Clearing BreakPoint at 004E2D3B +De-Activate DECCiphers.pas line 2170 BreakPoint at:004E2D3B +Adding coverage:DECCiphers.pas (DECCiphers) 2171 +Clearing BreakPoint at 004E2D52 +De-Activate DECCiphers.pas line 2171 BreakPoint at:004E2D52 +Adding coverage:DECCiphers.pas (DECCiphers) 2172 +Clearing BreakPoint at 004E2D68 +De-Activate DECCiphers.pas line 2172 BreakPoint at:004E2D68 +Adding coverage:DECCiphers.pas (DECCiphers) 2173 +Clearing BreakPoint at 004E2D79 +De-Activate DECCiphers.pas line 2173 BreakPoint at:004E2D79 +Adding coverage:DECCiphers.pas (DECCiphers) 2152 +Clearing BreakPoint at 004E2D7C +De-Activate DECCiphers.pas line 2152 BreakPoint at:004E2D7C +Adding coverage:DECCiphers.pas (DECCiphers) 2175 +Clearing BreakPoint at 004E2D86 +De-Activate DECCiphers.pas line 2175 BreakPoint at:004E2D86 +Adding coverage:DECCiphers.pas (DECCiphers) 2177 +Clearing BreakPoint at 004E2D8B +De-Activate DECCiphers.pas line 2177 BreakPoint at:004E2D8B +Adding coverage:DECCiphers.pas (DECCiphers) 2178 +Clearing BreakPoint at 004E2D96 +De-Activate DECCiphers.pas line 2178 BreakPoint at:004E2D96 +Adding coverage:DECCiphers.pas (DECCiphers) 2179 +Clearing BreakPoint at 004E2DA7 +De-Activate DECCiphers.pas line 2179 BreakPoint at:004E2DA7 +Adding coverage:DECCiphers.pas (DECCiphers) 2180 +Clearing BreakPoint at 004E2DB3 +De-Activate DECCiphers.pas line 2180 BreakPoint at:004E2DB3 +Adding coverage:DECCiphers.pas (DECCiphers) 2181 +Clearing BreakPoint at 004E2DC4 +De-Activate DECCiphers.pas line 2181 BreakPoint at:004E2DC4 +Adding coverage:DECCiphers.pas (DECCiphers) 2182 +Clearing BreakPoint at 004E2DDE +De-Activate DECCiphers.pas line 2182 BreakPoint at:004E2DDE +Adding coverage:DECCiphers.pas (DECCiphers) 2183 +Clearing BreakPoint at 004E2DF5 +De-Activate DECCiphers.pas line 2183 BreakPoint at:004E2DF5 +Adding coverage:DECCiphers.pas (DECCiphers) 2184 +Clearing BreakPoint at 004E2E06 +De-Activate DECCiphers.pas line 2184 BreakPoint at:004E2E06 +Adding coverage:DECCiphers.pas (DECCiphers) 2185 +Clearing BreakPoint at 004E2E0C +De-Activate DECCiphers.pas line 2185 BreakPoint at:004E2E0C +Adding coverage:DECCiphers.pas (DECCiphers) 2187 +Clearing BreakPoint at 004E2E26 +De-Activate DECCiphers.pas line 2187 BreakPoint at:004E2E26 +Adding coverage:DECCiphers.pas (DECCiphers) 2189 +Clearing BreakPoint at 004E2E2C +De-Activate DECCiphers.pas line 2189 BreakPoint at:004E2E2C +Adding coverage:DECCiphers.pas (DECCiphers) 2190 +Clearing BreakPoint at 004E2E32 +De-Activate DECCiphers.pas line 2190 BreakPoint at:004E2E32 +Adding coverage:DECCiphers.pas (DECCiphers) 2197 +Clearing BreakPoint at 004E2E46 +De-Activate DECCiphers.pas line 2197 BreakPoint at:004E2E46 +Adding coverage:DECCiphers.pas (DECCiphers) 2198 +Clearing BreakPoint at 004E2E52 +De-Activate DECCiphers.pas line 2198 BreakPoint at:004E2E52 +Adding coverage:DECCiphers.pas (DECCiphers) 2199 +Clearing BreakPoint at 004E2E63 +De-Activate DECCiphers.pas line 2199 BreakPoint at:004E2E63 +Adding coverage:DECCiphers.pas (DECCiphers) 2200 +Clearing BreakPoint at 004E2E6F +De-Activate DECCiphers.pas line 2200 BreakPoint at:004E2E6F +Adding coverage:DECCiphers.pas (DECCiphers) 2201 +Clearing BreakPoint at 004E2E80 +De-Activate DECCiphers.pas line 2201 BreakPoint at:004E2E80 +Adding coverage:DECCiphers.pas (DECCiphers) 2202 +Clearing BreakPoint at 004E2E9A +De-Activate DECCiphers.pas line 2202 BreakPoint at:004E2E9A +Adding coverage:DECCiphers.pas (DECCiphers) 2203 +Clearing BreakPoint at 004E2EB1 +De-Activate DECCiphers.pas line 2203 BreakPoint at:004E2EB1 +Adding coverage:DECCiphers.pas (DECCiphers) 2204 +Clearing BreakPoint at 004E2EC2 +De-Activate DECCiphers.pas line 2204 BreakPoint at:004E2EC2 +Adding coverage:DECCiphers.pas (DECCiphers) 2205 +Clearing BreakPoint at 004E2EC8 +De-Activate DECCiphers.pas line 2205 BreakPoint at:004E2EC8 +Adding coverage:DECCiphers.pas (DECCiphers) 2206 +Clearing BreakPoint at 004E2EE2 +De-Activate DECCiphers.pas line 2206 BreakPoint at:004E2EE2 +Adding coverage:DECCiphers.pas (DECCiphers) 2208 +Clearing BreakPoint at 004E2EE8 +De-Activate DECCiphers.pas line 2208 BreakPoint at:004E2EE8 +Adding coverage:DECCiphers.pas (DECCiphers) 2209 +Clearing BreakPoint at 004E2EEE +De-Activate DECCiphers.pas line 2209 BreakPoint at:004E2EEE +Adding coverage:DECCiphers.pas (DECCiphers) 2216 +Clearing BreakPoint at 004E2F02 +De-Activate DECCiphers.pas line 2216 BreakPoint at:004E2F02 +Adding coverage:DECCiphers.pas (DECCiphers) 2217 +Clearing BreakPoint at 004E2F0E +De-Activate DECCiphers.pas line 2217 BreakPoint at:004E2F0E +Adding coverage:DECCiphers.pas (DECCiphers) 2218 +Clearing BreakPoint at 004E2F1F +De-Activate DECCiphers.pas line 2218 BreakPoint at:004E2F1F +Adding coverage:DECCiphers.pas (DECCiphers) 2219 +Clearing BreakPoint at 004E2F2B +De-Activate DECCiphers.pas line 2219 BreakPoint at:004E2F2B +Adding coverage:DECCiphers.pas (DECCiphers) 2220 +Clearing BreakPoint at 004E2F3C +De-Activate DECCiphers.pas line 2220 BreakPoint at:004E2F3C +Adding coverage:DECCiphers.pas (DECCiphers) 2221 +Clearing BreakPoint at 004E2F56 +De-Activate DECCiphers.pas line 2221 BreakPoint at:004E2F56 +Adding coverage:DECCiphers.pas (DECCiphers) 2222 +Clearing BreakPoint at 004E2F6D +De-Activate DECCiphers.pas line 2222 BreakPoint at:004E2F6D +Adding coverage:DECCiphers.pas (DECCiphers) 2223 +Clearing BreakPoint at 004E2F7E +De-Activate DECCiphers.pas line 2223 BreakPoint at:004E2F7E +Adding coverage:DECCiphers.pas (DECCiphers) 2224 +Clearing BreakPoint at 004E2F84 +De-Activate DECCiphers.pas line 2224 BreakPoint at:004E2F84 +Adding coverage:DECCiphers.pas (DECCiphers) 2225 +Clearing BreakPoint at 004E2F9E +De-Activate DECCiphers.pas line 2225 BreakPoint at:004E2F9E +Adding coverage:DECCiphers.pas (DECCiphers) 2227 +Clearing BreakPoint at 004E2FA4 +De-Activate DECCiphers.pas line 2227 BreakPoint at:004E2FA4 +Adding coverage:DECCiphers.pas (DECCiphers) 2228 +Clearing BreakPoint at 004E2FAA +De-Activate DECCiphers.pas line 2228 BreakPoint at:004E2FAA +Adding coverage:DECCiphers.pas (DECCiphers) 2235 +Clearing BreakPoint at 004E2FBE +De-Activate DECCiphers.pas line 2235 BreakPoint at:004E2FBE +Adding coverage:DECCiphers.pas (DECCiphers) 2236 +Clearing BreakPoint at 004E2FCA +De-Activate DECCiphers.pas line 2236 BreakPoint at:004E2FCA +Adding coverage:DECCiphers.pas (DECCiphers) 2237 +Clearing BreakPoint at 004E2FDB +De-Activate DECCiphers.pas line 2237 BreakPoint at:004E2FDB +Adding coverage:DECCiphers.pas (DECCiphers) 2238 +Clearing BreakPoint at 004E2FE7 +De-Activate DECCiphers.pas line 2238 BreakPoint at:004E2FE7 +Adding coverage:DECCiphers.pas (DECCiphers) 2239 +Clearing BreakPoint at 004E2FF8 +De-Activate DECCiphers.pas line 2239 BreakPoint at:004E2FF8 +Adding coverage:DECCiphers.pas (DECCiphers) 2240 +Clearing BreakPoint at 004E3012 +De-Activate DECCiphers.pas line 2240 BreakPoint at:004E3012 +Adding coverage:DECCiphers.pas (DECCiphers) 2241 +Clearing BreakPoint at 004E3029 +De-Activate DECCiphers.pas line 2241 BreakPoint at:004E3029 +Adding coverage:DECCiphers.pas (DECCiphers) 2242 +Clearing BreakPoint at 004E303A +De-Activate DECCiphers.pas line 2242 BreakPoint at:004E303A +Adding coverage:DECCiphers.pas (DECCiphers) 2243 +Clearing BreakPoint at 004E3040 +De-Activate DECCiphers.pas line 2243 BreakPoint at:004E3040 +Adding coverage:DECCiphers.pas (DECCiphers) 2244 +Clearing BreakPoint at 004E305A +De-Activate DECCiphers.pas line 2244 BreakPoint at:004E305A +Adding coverage:DECCiphers.pas (DECCiphers) 2246 +Clearing BreakPoint at 004E3060 +De-Activate DECCiphers.pas line 2246 BreakPoint at:004E3060 +Adding coverage:DECCiphers.pas (DECCiphers) 2247 +Clearing BreakPoint at 004E3066 +De-Activate DECCiphers.pas line 2247 BreakPoint at:004E3066 +Adding coverage:DECCiphers.pas (DECCiphers) 2254 +Clearing BreakPoint at 004E307A +De-Activate DECCiphers.pas line 2254 BreakPoint at:004E307A +Adding coverage:DECCiphers.pas (DECCiphers) 2255 +Clearing BreakPoint at 004E3083 +De-Activate DECCiphers.pas line 2255 BreakPoint at:004E3083 +Adding coverage:DECCiphers.pas (DECCiphers) 2175 +Clearing BreakPoint at 004E3086 +De-Activate DECCiphers.pas line 2175 BreakPoint at:004E3086 +Adding coverage:DECCiphers.pas (DECCiphers) 2194 +Clearing BreakPoint at 004E2E3A +De-Activate DECCiphers.pas line 2194 BreakPoint at:004E2E3A +Adding coverage:DECCiphers.pas (DECCiphers) 2195 +Clearing BreakPoint at 004E2E40 +De-Activate DECCiphers.pas line 2195 BreakPoint at:004E2E40 +Adding coverage:DECCiphers.pas (DECCiphers) 2213 +Clearing BreakPoint at 004E2EF6 +De-Activate DECCiphers.pas line 2213 BreakPoint at:004E2EF6 +Adding coverage:DECCiphers.pas (DECCiphers) 2214 +Clearing BreakPoint at 004E2EFC +De-Activate DECCiphers.pas line 2214 BreakPoint at:004E2EFC +Adding coverage:DECCiphers.pas (DECCiphers) 2232 +Clearing BreakPoint at 004E2FB2 +De-Activate DECCiphers.pas line 2232 BreakPoint at:004E2FB2 +Adding coverage:DECCiphers.pas (DECCiphers) 2233 +Clearing BreakPoint at 004E2FB8 +De-Activate DECCiphers.pas line 2233 BreakPoint at:004E2FB8 +Adding coverage:DECCiphers.pas (DECCiphers) 2251 +Clearing BreakPoint at 004E306E +De-Activate DECCiphers.pas line 2251 BreakPoint at:004E306E +Adding coverage:DECCiphers.pas (DECCiphers) 2252 +Clearing BreakPoint at 004E3074 +De-Activate DECCiphers.pas line 2252 BreakPoint at:004E3074 +Adding coverage:DECCiphers.pas (DECCiphers) 2256 +Clearing BreakPoint at 004E3090 +De-Activate DECCiphers.pas line 2256 BreakPoint at:004E3090 +Adding coverage:DECCiphers.pas (DECCiphers) 2258 +Clearing BreakPoint at 004E3095 +De-Activate DECCiphers.pas line 2258 BreakPoint at:004E3095 +Adding coverage:DECCiphers.pas (DECCiphers) 2259 +Clearing BreakPoint at 004E30AD +De-Activate DECCiphers.pas line 2259 BreakPoint at:004E30AD +Adding coverage:DECCiphers.pas (DECCiphers) 2260 +Clearing BreakPoint at 004E30BF +De-Activate DECCiphers.pas line 2260 BreakPoint at:004E30BF +Adding coverage:DECCiphers.pas (DECCiphers) 2261 +Clearing BreakPoint at 004E30F1 +De-Activate DECCiphers.pas line 2261 BreakPoint at:004E30F1 +Adding coverage:DECCiphers.pas (DECCiphers) 2262 +Clearing BreakPoint at 004E3102 +De-Activate DECCiphers.pas line 2262 BreakPoint at:004E3102 +Adding coverage:DECCiphers.pas (DECCiphers) 2263 +Clearing BreakPoint at 004E311A +De-Activate DECCiphers.pas line 2263 BreakPoint at:004E311A +Adding coverage:DECCiphers.pas (DECCiphers) 2264 +Clearing BreakPoint at 004E312C +De-Activate DECCiphers.pas line 2264 BreakPoint at:004E312C +Adding coverage:DECCiphers.pas (DECCiphers) 2265 +Clearing BreakPoint at 004E315E +De-Activate DECCiphers.pas line 2265 BreakPoint at:004E315E +Adding coverage:DECCiphers.pas (DECCiphers) 2266 +Clearing BreakPoint at 004E316F +De-Activate DECCiphers.pas line 2266 BreakPoint at:004E316F +Adding coverage:DECCiphers.pas (DECCiphers) 2267 +Clearing BreakPoint at 004E3175 +De-Activate DECCiphers.pas line 2267 BreakPoint at:004E3175 +Adding coverage:DECCiphers.pas (DECCiphers) 2268 +Clearing BreakPoint at 004E318D +De-Activate DECCiphers.pas line 2268 BreakPoint at:004E318D +Adding coverage:DECCiphers.pas (DECCiphers) 2269 +Clearing BreakPoint at 004E319F +De-Activate DECCiphers.pas line 2269 BreakPoint at:004E319F +Adding coverage:DECCiphers.pas (DECCiphers) 2270 +Clearing BreakPoint at 004E31D1 +De-Activate DECCiphers.pas line 2270 BreakPoint at:004E31D1 +Adding coverage:DECCiphers.pas (DECCiphers) 2271 +Clearing BreakPoint at 004E31E2 +De-Activate DECCiphers.pas line 2271 BreakPoint at:004E31E2 +Adding coverage:DECCiphers.pas (DECCiphers) 2272 +Clearing BreakPoint at 004E31E8 +De-Activate DECCiphers.pas line 2272 BreakPoint at:004E31E8 +Adding coverage:DECCiphers.pas (DECCiphers) 2273 +Clearing BreakPoint at 004E3200 +De-Activate DECCiphers.pas line 2273 BreakPoint at:004E3200 +Adding coverage:DECCiphers.pas (DECCiphers) 2274 +Clearing BreakPoint at 004E3212 +De-Activate DECCiphers.pas line 2274 BreakPoint at:004E3212 +Adding coverage:DECCiphers.pas (DECCiphers) 2275 +Clearing BreakPoint at 004E3244 +De-Activate DECCiphers.pas line 2275 BreakPoint at:004E3244 +Adding coverage:DECCiphers.pas (DECCiphers) 2276 +Clearing BreakPoint at 004E3255 +De-Activate DECCiphers.pas line 2276 BreakPoint at:004E3255 +Adding coverage:DECCiphers.pas (DECCiphers) 2256 +Clearing BreakPoint at 004E3258 +De-Activate DECCiphers.pas line 2256 BreakPoint at:004E3258 +Adding coverage:DECCiphers.pas (DECCiphers) 2277 +Clearing BreakPoint at 004E3262 +De-Activate DECCiphers.pas line 2277 BreakPoint at:004E3262 +Adding coverage:DECCiphers.pas (DECCiphers) 2278 +Clearing BreakPoint at 004E326F +De-Activate DECCiphers.pas line 2278 BreakPoint at:004E326F +Adding coverage:DECCiphers.pas (DECCiphers) 2279 +Clearing BreakPoint at 004E327E +De-Activate DECCiphers.pas line 2279 BreakPoint at:004E327E +Adding coverage:DECCiphers.pas (DECCiphers) 2280 +Clearing BreakPoint at 004E328D +De-Activate DECCiphers.pas line 2280 BreakPoint at:004E328D +Adding coverage:DECCiphers.pas (DECCiphers) 2281 +Clearing BreakPoint at 004E329C +De-Activate DECCiphers.pas line 2281 BreakPoint at:004E329C +Adding coverage:DECCiphers.pas (DECCiphers) 2287 +Clearing BreakPoint at 004E3350 +De-Activate DECCiphers.pas line 2287 BreakPoint at:004E3350 +Adding coverage:DECCiphers.pas (DECCiphers) 2288 +Clearing BreakPoint at 004E335F +De-Activate DECCiphers.pas line 2288 BreakPoint at:004E335F +Adding coverage:DECCiphers.pas (DECCiphers) 2290 +Clearing BreakPoint at 004E3386 +De-Activate DECCiphers.pas line 2290 BreakPoint at:004E3386 +Adding coverage:DECCiphers.pas (DECCiphers) 2291 +Clearing BreakPoint at 004E3392 +De-Activate DECCiphers.pas line 2291 BreakPoint at:004E3392 +Adding coverage:DECCiphers.pas (DECCiphers) 2292 +Clearing BreakPoint at 004E33A0 +De-Activate DECCiphers.pas line 2292 BreakPoint at:004E33A0 +Adding coverage:DECCiphers.pas (DECCiphers) 2293 +Clearing BreakPoint at 004E33AF +De-Activate DECCiphers.pas line 2293 BreakPoint at:004E33AF +Adding coverage:DECCiphers.pas (DECCiphers) 2294 +Clearing BreakPoint at 004E33BE +De-Activate DECCiphers.pas line 2294 BreakPoint at:004E33BE +Adding coverage:DECCiphers.pas (DECCiphers) 2295 +Clearing BreakPoint at 004E33CD +De-Activate DECCiphers.pas line 2295 BreakPoint at:004E33CD +Adding coverage:DECCiphers.pas (DECCiphers) 2297 +Clearing BreakPoint at 004E33D2 +De-Activate DECCiphers.pas line 2297 BreakPoint at:004E33D2 +Adding coverage:DECCiphers.pas (DECCiphers) 2298 +Clearing BreakPoint at 004E33E3 +De-Activate DECCiphers.pas line 2298 BreakPoint at:004E33E3 +Adding coverage:DECCiphers.pas (DECCiphers) 2299 +Clearing BreakPoint at 004E3416 +De-Activate DECCiphers.pas line 2299 BreakPoint at:004E3416 +Adding coverage:DECCiphers.pas (DECCiphers) 2300 +Clearing BreakPoint at 004E3428 +De-Activate DECCiphers.pas line 2300 BreakPoint at:004E3428 +Adding coverage:DECCiphers.pas (DECCiphers) 2301 +Clearing BreakPoint at 004E3440 +De-Activate DECCiphers.pas line 2301 BreakPoint at:004E3440 +Adding coverage:DECCiphers.pas (DECCiphers) 2302 +Clearing BreakPoint at 004E3446 +De-Activate DECCiphers.pas line 2302 BreakPoint at:004E3446 +Adding coverage:DECCiphers.pas (DECCiphers) 2303 +Clearing BreakPoint at 004E3457 +De-Activate DECCiphers.pas line 2303 BreakPoint at:004E3457 +Adding coverage:DECCiphers.pas (DECCiphers) 2304 +Clearing BreakPoint at 004E348A +De-Activate DECCiphers.pas line 2304 BreakPoint at:004E348A +Adding coverage:DECCiphers.pas (DECCiphers) 2305 +Clearing BreakPoint at 004E349C +De-Activate DECCiphers.pas line 2305 BreakPoint at:004E349C +Adding coverage:DECCiphers.pas (DECCiphers) 2306 +Clearing BreakPoint at 004E34B4 +De-Activate DECCiphers.pas line 2306 BreakPoint at:004E34B4 +Adding coverage:DECCiphers.pas (DECCiphers) 2307 +Clearing BreakPoint at 004E34BA +De-Activate DECCiphers.pas line 2307 BreakPoint at:004E34BA +Adding coverage:DECCiphers.pas (DECCiphers) 2308 +Clearing BreakPoint at 004E34CB +De-Activate DECCiphers.pas line 2308 BreakPoint at:004E34CB +Adding coverage:DECCiphers.pas (DECCiphers) 2309 +Clearing BreakPoint at 004E34FE +De-Activate DECCiphers.pas line 2309 BreakPoint at:004E34FE +Adding coverage:DECCiphers.pas (DECCiphers) 2310 +Clearing BreakPoint at 004E3510 +De-Activate DECCiphers.pas line 2310 BreakPoint at:004E3510 +Adding coverage:DECCiphers.pas (DECCiphers) 2311 +Clearing BreakPoint at 004E3528 +De-Activate DECCiphers.pas line 2311 BreakPoint at:004E3528 +Adding coverage:DECCiphers.pas (DECCiphers) 2312 +Clearing BreakPoint at 004E3539 +De-Activate DECCiphers.pas line 2312 BreakPoint at:004E3539 +Adding coverage:DECCiphers.pas (DECCiphers) 2313 +Clearing BreakPoint at 004E356C +De-Activate DECCiphers.pas line 2313 BreakPoint at:004E356C +Adding coverage:DECCiphers.pas (DECCiphers) 2314 +Clearing BreakPoint at 004E357E +De-Activate DECCiphers.pas line 2314 BreakPoint at:004E357E +Adding coverage:DECCiphers.pas (DECCiphers) 2315 +Clearing BreakPoint at 004E3596 +De-Activate DECCiphers.pas line 2315 BreakPoint at:004E3596 +Adding coverage:DECCiphers.pas (DECCiphers) 2295 +Clearing BreakPoint at 004E3599 +De-Activate DECCiphers.pas line 2295 BreakPoint at:004E3599 +Adding coverage:DECCiphers.pas (DECCiphers) 2316 +Clearing BreakPoint at 004E35A3 +De-Activate DECCiphers.pas line 2316 BreakPoint at:004E35A3 +Adding coverage:DECCiphers.pas (DECCiphers) 2318 +Clearing BreakPoint at 004E35A8 +De-Activate DECCiphers.pas line 2318 BreakPoint at:004E35A8 +Adding coverage:DECCiphers.pas (DECCiphers) 2319 +Clearing BreakPoint at 004E35B4 +De-Activate DECCiphers.pas line 2319 BreakPoint at:004E35B4 +Adding coverage:DECCiphers.pas (DECCiphers) 2320 +Clearing BreakPoint at 004E35C5 +De-Activate DECCiphers.pas line 2320 BreakPoint at:004E35C5 +Adding coverage:DECCiphers.pas (DECCiphers) 2321 +Clearing BreakPoint at 004E35D6 +De-Activate DECCiphers.pas line 2321 BreakPoint at:004E35D6 +Adding coverage:DECCiphers.pas (DECCiphers) 2322 +Clearing BreakPoint at 004E35E2 +De-Activate DECCiphers.pas line 2322 BreakPoint at:004E35E2 +Adding coverage:DECCiphers.pas (DECCiphers) 2323 +Clearing BreakPoint at 004E35FC +De-Activate DECCiphers.pas line 2323 BreakPoint at:004E35FC +Adding coverage:DECCiphers.pas (DECCiphers) 2324 +Clearing BreakPoint at 004E3613 +De-Activate DECCiphers.pas line 2324 BreakPoint at:004E3613 +Adding coverage:DECCiphers.pas (DECCiphers) 2325 +Clearing BreakPoint at 004E3624 +De-Activate DECCiphers.pas line 2325 BreakPoint at:004E3624 +Adding coverage:DECCiphers.pas (DECCiphers) 2326 +Clearing BreakPoint at 004E362A +De-Activate DECCiphers.pas line 2326 BreakPoint at:004E362A +Adding coverage:DECCiphers.pas (DECCiphers) 2327 +Clearing BreakPoint at 004E3644 +De-Activate DECCiphers.pas line 2327 BreakPoint at:004E3644 +Adding coverage:DECCiphers.pas (DECCiphers) 2329 +Clearing BreakPoint at 004E364A +De-Activate DECCiphers.pas line 2329 BreakPoint at:004E364A +Adding coverage:DECCiphers.pas (DECCiphers) 2330 +Clearing BreakPoint at 004E3650 +De-Activate DECCiphers.pas line 2330 BreakPoint at:004E3650 +Adding coverage:DECCiphers.pas (DECCiphers) 2337 +Clearing BreakPoint at 004E3664 +De-Activate DECCiphers.pas line 2337 BreakPoint at:004E3664 +Adding coverage:DECCiphers.pas (DECCiphers) 2338 +Clearing BreakPoint at 004E3670 +De-Activate DECCiphers.pas line 2338 BreakPoint at:004E3670 +Adding coverage:DECCiphers.pas (DECCiphers) 2339 +Clearing BreakPoint at 004E3681 +De-Activate DECCiphers.pas line 2339 BreakPoint at:004E3681 +Adding coverage:DECCiphers.pas (DECCiphers) 2340 +Clearing BreakPoint at 004E3692 +De-Activate DECCiphers.pas line 2340 BreakPoint at:004E3692 +Adding coverage:DECCiphers.pas (DECCiphers) 2341 +Clearing BreakPoint at 004E369E +De-Activate DECCiphers.pas line 2341 BreakPoint at:004E369E +Adding coverage:DECCiphers.pas (DECCiphers) 2342 +Clearing BreakPoint at 004E36B8 +De-Activate DECCiphers.pas line 2342 BreakPoint at:004E36B8 +Adding coverage:DECCiphers.pas (DECCiphers) 2343 +Clearing BreakPoint at 004E36CF +De-Activate DECCiphers.pas line 2343 BreakPoint at:004E36CF +Adding coverage:DECCiphers.pas (DECCiphers) 2344 +Clearing BreakPoint at 004E36E0 +De-Activate DECCiphers.pas line 2344 BreakPoint at:004E36E0 +Adding coverage:DECCiphers.pas (DECCiphers) 2345 +Clearing BreakPoint at 004E36E6 +De-Activate DECCiphers.pas line 2345 BreakPoint at:004E36E6 +Adding coverage:DECCiphers.pas (DECCiphers) 2346 +Clearing BreakPoint at 004E3700 +De-Activate DECCiphers.pas line 2346 BreakPoint at:004E3700 +Adding coverage:DECCiphers.pas (DECCiphers) 2348 +Clearing BreakPoint at 004E3706 +De-Activate DECCiphers.pas line 2348 BreakPoint at:004E3706 +Adding coverage:DECCiphers.pas (DECCiphers) 2349 +Clearing BreakPoint at 004E370C +De-Activate DECCiphers.pas line 2349 BreakPoint at:004E370C +Adding coverage:DECCiphers.pas (DECCiphers) 2356 +Clearing BreakPoint at 004E3720 +De-Activate DECCiphers.pas line 2356 BreakPoint at:004E3720 +Adding coverage:DECCiphers.pas (DECCiphers) 2357 +Clearing BreakPoint at 004E372C +De-Activate DECCiphers.pas line 2357 BreakPoint at:004E372C +Adding coverage:DECCiphers.pas (DECCiphers) 2358 +Clearing BreakPoint at 004E373D +De-Activate DECCiphers.pas line 2358 BreakPoint at:004E373D +Adding coverage:DECCiphers.pas (DECCiphers) 2359 +Clearing BreakPoint at 004E374E +De-Activate DECCiphers.pas line 2359 BreakPoint at:004E374E +Adding coverage:DECCiphers.pas (DECCiphers) 2360 +Clearing BreakPoint at 004E375A +De-Activate DECCiphers.pas line 2360 BreakPoint at:004E375A +Adding coverage:DECCiphers.pas (DECCiphers) 2361 +Clearing BreakPoint at 004E3774 +De-Activate DECCiphers.pas line 2361 BreakPoint at:004E3774 +Adding coverage:DECCiphers.pas (DECCiphers) 2362 +Clearing BreakPoint at 004E378B +De-Activate DECCiphers.pas line 2362 BreakPoint at:004E378B +Adding coverage:DECCiphers.pas (DECCiphers) 2363 +Clearing BreakPoint at 004E379C +De-Activate DECCiphers.pas line 2363 BreakPoint at:004E379C +Adding coverage:DECCiphers.pas (DECCiphers) 2364 +Clearing BreakPoint at 004E37A2 +De-Activate DECCiphers.pas line 2364 BreakPoint at:004E37A2 +Adding coverage:DECCiphers.pas (DECCiphers) 2365 +Clearing BreakPoint at 004E37BC +De-Activate DECCiphers.pas line 2365 BreakPoint at:004E37BC +Adding coverage:DECCiphers.pas (DECCiphers) 2367 +Clearing BreakPoint at 004E37C2 +De-Activate DECCiphers.pas line 2367 BreakPoint at:004E37C2 +Adding coverage:DECCiphers.pas (DECCiphers) 2368 +Clearing BreakPoint at 004E37C8 +De-Activate DECCiphers.pas line 2368 BreakPoint at:004E37C8 +Adding coverage:DECCiphers.pas (DECCiphers) 2375 +Clearing BreakPoint at 004E37DC +De-Activate DECCiphers.pas line 2375 BreakPoint at:004E37DC +Adding coverage:DECCiphers.pas (DECCiphers) 2376 +Clearing BreakPoint at 004E37E8 +De-Activate DECCiphers.pas line 2376 BreakPoint at:004E37E8 +Adding coverage:DECCiphers.pas (DECCiphers) 2377 +Clearing BreakPoint at 004E37F9 +De-Activate DECCiphers.pas line 2377 BreakPoint at:004E37F9 +Adding coverage:DECCiphers.pas (DECCiphers) 2378 +Clearing BreakPoint at 004E380A +De-Activate DECCiphers.pas line 2378 BreakPoint at:004E380A +Adding coverage:DECCiphers.pas (DECCiphers) 2379 +Clearing BreakPoint at 004E3815 +De-Activate DECCiphers.pas line 2379 BreakPoint at:004E3815 +Adding coverage:DECCiphers.pas (DECCiphers) 2380 +Clearing BreakPoint at 004E382F +De-Activate DECCiphers.pas line 2380 BreakPoint at:004E382F +Adding coverage:DECCiphers.pas (DECCiphers) 2381 +Clearing BreakPoint at 004E3846 +De-Activate DECCiphers.pas line 2381 BreakPoint at:004E3846 +Adding coverage:DECCiphers.pas (DECCiphers) 2382 +Clearing BreakPoint at 004E3857 +De-Activate DECCiphers.pas line 2382 BreakPoint at:004E3857 +Adding coverage:DECCiphers.pas (DECCiphers) 2383 +Clearing BreakPoint at 004E385D +De-Activate DECCiphers.pas line 2383 BreakPoint at:004E385D +Adding coverage:DECCiphers.pas (DECCiphers) 2384 +Clearing BreakPoint at 004E3877 +De-Activate DECCiphers.pas line 2384 BreakPoint at:004E3877 +Adding coverage:DECCiphers.pas (DECCiphers) 2386 +Clearing BreakPoint at 004E387D +De-Activate DECCiphers.pas line 2386 BreakPoint at:004E387D +Adding coverage:DECCiphers.pas (DECCiphers) 2387 +Clearing BreakPoint at 004E3883 +De-Activate DECCiphers.pas line 2387 BreakPoint at:004E3883 +Adding coverage:DECCiphers.pas (DECCiphers) 2394 +Clearing BreakPoint at 004E3897 +De-Activate DECCiphers.pas line 2394 BreakPoint at:004E3897 +Adding coverage:DECCiphers.pas (DECCiphers) 2395 +Clearing BreakPoint at 004E389B +De-Activate DECCiphers.pas line 2395 BreakPoint at:004E389B +Adding coverage:DECCiphers.pas (DECCiphers) 2316 +Clearing BreakPoint at 004E389E +De-Activate DECCiphers.pas line 2316 BreakPoint at:004E389E +Adding coverage:DECCiphers.pas (DECCiphers) 2334 +Clearing BreakPoint at 004E3658 +De-Activate DECCiphers.pas line 2334 BreakPoint at:004E3658 +Adding coverage:DECCiphers.pas (DECCiphers) 2335 +Clearing BreakPoint at 004E365E +De-Activate DECCiphers.pas line 2335 BreakPoint at:004E365E +Adding coverage:DECCiphers.pas (DECCiphers) 2353 +Clearing BreakPoint at 004E3714 +De-Activate DECCiphers.pas line 2353 BreakPoint at:004E3714 +Adding coverage:DECCiphers.pas (DECCiphers) 2354 +Clearing BreakPoint at 004E371A +De-Activate DECCiphers.pas line 2354 BreakPoint at:004E371A +Adding coverage:DECCiphers.pas (DECCiphers) 2372 +Clearing BreakPoint at 004E37D0 +De-Activate DECCiphers.pas line 2372 BreakPoint at:004E37D0 +Adding coverage:DECCiphers.pas (DECCiphers) 2373 +Clearing BreakPoint at 004E37D6 +De-Activate DECCiphers.pas line 2373 BreakPoint at:004E37D6 +Adding coverage:DECCiphers.pas (DECCiphers) 2391 +Clearing BreakPoint at 004E388B +De-Activate DECCiphers.pas line 2391 BreakPoint at:004E388B +Adding coverage:DECCiphers.pas (DECCiphers) 2392 +Clearing BreakPoint at 004E3891 +De-Activate DECCiphers.pas line 2392 BreakPoint at:004E3891 +Adding coverage:DECCiphers.pas (DECCiphers) 2396 +Clearing BreakPoint at 004E38A8 +De-Activate DECCiphers.pas line 2396 BreakPoint at:004E38A8 +Adding coverage:DECCiphers.pas (DECCiphers) 2398 +Clearing BreakPoint at 004E38AD +De-Activate DECCiphers.pas line 2398 BreakPoint at:004E38AD +Adding coverage:DECCiphers.pas (DECCiphers) 2399 +Clearing BreakPoint at 004E38BE +De-Activate DECCiphers.pas line 2399 BreakPoint at:004E38BE +Adding coverage:DECCiphers.pas (DECCiphers) 2400 +Clearing BreakPoint at 004E38D4 +De-Activate DECCiphers.pas line 2400 BreakPoint at:004E38D4 +Adding coverage:DECCiphers.pas (DECCiphers) 2401 +Clearing BreakPoint at 004E38EB +De-Activate DECCiphers.pas line 2401 BreakPoint at:004E38EB +Adding coverage:DECCiphers.pas (DECCiphers) 2402 +Clearing BreakPoint at 004E391A +De-Activate DECCiphers.pas line 2402 BreakPoint at:004E391A +Adding coverage:DECCiphers.pas (DECCiphers) 2403 +Clearing BreakPoint at 004E392B +De-Activate DECCiphers.pas line 2403 BreakPoint at:004E392B +Adding coverage:DECCiphers.pas (DECCiphers) 2404 +Clearing BreakPoint at 004E3941 +De-Activate DECCiphers.pas line 2404 BreakPoint at:004E3941 +Adding coverage:DECCiphers.pas (DECCiphers) 2405 +Clearing BreakPoint at 004E3958 +De-Activate DECCiphers.pas line 2405 BreakPoint at:004E3958 +Adding coverage:DECCiphers.pas (DECCiphers) 2406 +Clearing BreakPoint at 004E3987 +De-Activate DECCiphers.pas line 2406 BreakPoint at:004E3987 +Adding coverage:DECCiphers.pas (DECCiphers) 2407 +Clearing BreakPoint at 004E398D +De-Activate DECCiphers.pas line 2407 BreakPoint at:004E398D +Adding coverage:DECCiphers.pas (DECCiphers) 2408 +Clearing BreakPoint at 004E399E +De-Activate DECCiphers.pas line 2408 BreakPoint at:004E399E +Adding coverage:DECCiphers.pas (DECCiphers) 2409 +Clearing BreakPoint at 004E39B4 +De-Activate DECCiphers.pas line 2409 BreakPoint at:004E39B4 +Adding coverage:DECCiphers.pas (DECCiphers) 2410 +Clearing BreakPoint at 004E39CB +De-Activate DECCiphers.pas line 2410 BreakPoint at:004E39CB +Adding coverage:DECCiphers.pas (DECCiphers) 2411 +Clearing BreakPoint at 004E39FA +De-Activate DECCiphers.pas line 2411 BreakPoint at:004E39FA +Adding coverage:DECCiphers.pas (DECCiphers) 2412 +Clearing BreakPoint at 004E3A00 +De-Activate DECCiphers.pas line 2412 BreakPoint at:004E3A00 +Adding coverage:DECCiphers.pas (DECCiphers) 2413 +Clearing BreakPoint at 004E3A11 +De-Activate DECCiphers.pas line 2413 BreakPoint at:004E3A11 +Adding coverage:DECCiphers.pas (DECCiphers) 2414 +Clearing BreakPoint at 004E3A27 +De-Activate DECCiphers.pas line 2414 BreakPoint at:004E3A27 +Adding coverage:DECCiphers.pas (DECCiphers) 2415 +Clearing BreakPoint at 004E3A3E +De-Activate DECCiphers.pas line 2415 BreakPoint at:004E3A3E +Adding coverage:DECCiphers.pas (DECCiphers) 2416 +Clearing BreakPoint at 004E3A6D +De-Activate DECCiphers.pas line 2416 BreakPoint at:004E3A6D +Adding coverage:DECCiphers.pas (DECCiphers) 2396 +Clearing BreakPoint at 004E3A70 +De-Activate DECCiphers.pas line 2396 BreakPoint at:004E3A70 +Adding coverage:DECCiphers.pas (DECCiphers) 2417 +Clearing BreakPoint at 004E3A7A +De-Activate DECCiphers.pas line 2417 BreakPoint at:004E3A7A +Adding coverage:DECCiphers.pas (DECCiphers) 2418 +Clearing BreakPoint at 004E3A88 +De-Activate DECCiphers.pas line 2418 BreakPoint at:004E3A88 +Adding coverage:DECCiphers.pas (DECCiphers) 2419 +Clearing BreakPoint at 004E3A97 +De-Activate DECCiphers.pas line 2419 BreakPoint at:004E3A97 +Adding coverage:DECCiphers.pas (DECCiphers) 2420 +Clearing BreakPoint at 004E3AA6 +De-Activate DECCiphers.pas line 2420 BreakPoint at:004E3AA6 +Adding coverage:DECCiphers.pas (DECCiphers) 2421 +Clearing BreakPoint at 004E3AB5 +De-Activate DECCiphers.pas line 2421 BreakPoint at:004E3AB5 +Adding coverage:DECCiphers.pas (DECCiphers) 2426 +Clearing BreakPoint at 004E3B68 +De-Activate DECCiphers.pas line 2426 BreakPoint at:004E3B68 +Adding coverage:DECCiphers.pas (DECCiphers) 2427 +Clearing BreakPoint at 004E3B74 +De-Activate DECCiphers.pas line 2427 BreakPoint at:004E3B74 +Adding coverage:DECCiphers.pas (DECCiphers) 2428 +Clearing BreakPoint at 004E3B7D +De-Activate DECCiphers.pas line 2428 BreakPoint at:004E3B7D +Adding coverage:DECCiphers.pas (DECCiphers) 2429 +Clearing BreakPoint at 004E3B87 +De-Activate DECCiphers.pas line 2429 BreakPoint at:004E3B87 +Adding coverage:DECCiphers.pas (DECCiphers) 2430 +Clearing BreakPoint at 004E3B91 +De-Activate DECCiphers.pas line 2430 BreakPoint at:004E3B91 +Adding coverage:DECCiphers.pas (DECCiphers) 2431 +Clearing BreakPoint at 004E3B9B +De-Activate DECCiphers.pas line 2431 BreakPoint at:004E3B9B +Adding coverage:DECCiphers.pas (DECCiphers) 2432 +Clearing BreakPoint at 004E3BA2 +De-Activate DECCiphers.pas line 2432 BreakPoint at:004E3BA2 +Adding coverage:DECCiphers.pas (DECCiphers) 2433 +Clearing BreakPoint at 004E3BAB +De-Activate DECCiphers.pas line 2433 BreakPoint at:004E3BAB +Adding coverage:DECCiphers.pas (DECCiphers) 2434 +Clearing BreakPoint at 004E3BB4 +De-Activate DECCiphers.pas line 2434 BreakPoint at:004E3BB4 +Adding coverage:DECCiphers.pas (DECCiphers) 2435 +Clearing BreakPoint at 004E3BC0 +De-Activate DECCiphers.pas line 2435 BreakPoint at:004E3BC0 +Adding coverage:DECCipherBase.pas (DECCipherBase) 864 +Clearing BreakPoint at 004D4B02 +De-Activate DECCipherBase.pas line 864 BreakPoint at:004D4B02 +Adding coverage:DECCipherBase.pas (DECCipherBase) 876 +Clearing BreakPoint at 004D4B83 +De-Activate DECCipherBase.pas line 876 BreakPoint at:004D4B83 +Adding coverage:DECCiphers.pas (DECCiphers) 2442 +Clearing BreakPoint at 004E3BC8 +De-Activate DECCiphers.pas line 2442 BreakPoint at:004E3BC8 +Adding coverage:DECCiphers.pas (DECCiphers) 2443 +Clearing BreakPoint at 004E3BDA +De-Activate DECCiphers.pas line 2443 BreakPoint at:004E3BDA +Adding coverage:DECCiphers.pas (DECCiphers) 2444 +Clearing BreakPoint at 004E3BE3 +De-Activate DECCiphers.pas line 2444 BreakPoint at:004E3BE3 +Adding coverage:DECCiphers.pas (DECCiphers) 2446 +Clearing BreakPoint at 004E3BE7 +De-Activate DECCiphers.pas line 2446 BreakPoint at:004E3BE7 +Adding coverage:DECCiphers.pas (DECCiphers) 2447 +Clearing BreakPoint at 004E3BF5 +De-Activate DECCiphers.pas line 2447 BreakPoint at:004E3BF5 +Adding coverage:DECCiphers.pas (DECCiphers) 2448 +Clearing BreakPoint at 004E3BFB +De-Activate DECCiphers.pas line 2448 BreakPoint at:004E3BFB +Adding coverage:DECCiphers.pas (DECCiphers) 2449 +Clearing BreakPoint at 004E3C16 +De-Activate DECCiphers.pas line 2449 BreakPoint at:004E3C16 +Adding coverage:DECCiphers.pas (DECCiphers) 2444 +Clearing BreakPoint at 004E3C19 +De-Activate DECCiphers.pas line 2444 BreakPoint at:004E3C19 +Adding coverage:DECCiphers.pas (DECCiphers) 2450 +Clearing BreakPoint at 004E3C1F +De-Activate DECCiphers.pas line 2450 BreakPoint at:004E3C1F +Adding coverage:DECCiphers.pas (DECCiphers) 2451 +Clearing BreakPoint at 004E3C23 +De-Activate DECCiphers.pas line 2451 BreakPoint at:004E3C23 +Adding coverage:DECCiphers.pas (DECCiphers) 2453 +Clearing BreakPoint at 004E3C27 +De-Activate DECCiphers.pas line 2453 BreakPoint at:004E3C27 +Adding coverage:DECCiphers.pas (DECCiphers) 2454 +Clearing BreakPoint at 004E3C44 +De-Activate DECCiphers.pas line 2454 BreakPoint at:004E3C44 +Adding coverage:DECCiphers.pas (DECCiphers) 2455 +Clearing BreakPoint at 004E3C52 +De-Activate DECCiphers.pas line 2455 BreakPoint at:004E3C52 +Adding coverage:DECCiphers.pas (DECCiphers) 2456 +Clearing BreakPoint at 004E3C68 +De-Activate DECCiphers.pas line 2456 BreakPoint at:004E3C68 +Adding coverage:DECCiphers.pas (DECCiphers) 2457 +Clearing BreakPoint at 004E3C76 +De-Activate DECCiphers.pas line 2457 BreakPoint at:004E3C76 +Adding coverage:DECCiphers.pas (DECCiphers) 2451 +Clearing BreakPoint at 004E3C79 +De-Activate DECCiphers.pas line 2451 BreakPoint at:004E3C79 +Adding coverage:DECCiphers.pas (DECCiphers) 2458 +Clearing BreakPoint at 004E3C7F +De-Activate DECCiphers.pas line 2458 BreakPoint at:004E3C7F +Adding coverage:DECCiphers.pas (DECCiphers) 2459 +Clearing BreakPoint at 004E3C89 +De-Activate DECCiphers.pas line 2459 BreakPoint at:004E3C89 +Adding coverage:DECCiphers.pas (DECCiphers) 2460 +Clearing BreakPoint at 004E3C93 +De-Activate DECCiphers.pas line 2460 BreakPoint at:004E3C93 +Adding coverage:DECCiphers.pas (DECCiphers) 2463 +Clearing BreakPoint at 004E3CA3 +De-Activate DECCiphers.pas line 2463 BreakPoint at:004E3CA3 +Adding coverage:DECCipherBase.pas (DECCipherBase) 957 +Clearing BreakPoint at 004D4E59 +De-Activate DECCipherBase.pas line 957 BreakPoint at:004D4E59 +Adding coverage:DECCiphers.pas (DECCiphers) 2470 +Clearing BreakPoint at 004E3CA8 +De-Activate DECCiphers.pas line 2470 BreakPoint at:004E3CA8 +Adding coverage:DECCiphers.pas (DECCiphers) 2471 +Clearing BreakPoint at 004E3CB7 +De-Activate DECCiphers.pas line 2471 BreakPoint at:004E3CB7 +Adding coverage:DECCiphers.pas (DECCiphers) 2472 +Clearing BreakPoint at 004E3CC0 +De-Activate DECCiphers.pas line 2472 BreakPoint at:004E3CC0 +Adding coverage:DECCiphers.pas (DECCiphers) 2473 +Clearing BreakPoint at 004E3CCC +De-Activate DECCiphers.pas line 2473 BreakPoint at:004E3CCC +Adding coverage:DECCiphers.pas (DECCiphers) 2474 +Clearing BreakPoint at 004E3CD8 +De-Activate DECCiphers.pas line 2474 BreakPoint at:004E3CD8 +Adding coverage:DECCiphers.pas (DECCiphers) 2476 +Clearing BreakPoint at 004E3CEB +De-Activate DECCiphers.pas line 2476 BreakPoint at:004E3CEB +Adding coverage:DECCiphers.pas (DECCiphers) 2477 +Clearing BreakPoint at 004E3CEE +De-Activate DECCiphers.pas line 2477 BreakPoint at:004E3CEE +Adding coverage:DECCiphers.pas (DECCiphers) 2478 +Clearing BreakPoint at 004E3CFC +De-Activate DECCiphers.pas line 2478 BreakPoint at:004E3CFC +Adding coverage:DECCiphers.pas (DECCiphers) 2479 +Clearing BreakPoint at 004E3D02 +De-Activate DECCiphers.pas line 2479 BreakPoint at:004E3D02 +Adding coverage:DECCiphers.pas (DECCiphers) 2480 +Clearing BreakPoint at 004E3D18 +De-Activate DECCiphers.pas line 2480 BreakPoint at:004E3D18 +Adding coverage:DECCiphers.pas (DECCiphers) 2481 +Clearing BreakPoint at 004E3D26 +De-Activate DECCiphers.pas line 2481 BreakPoint at:004E3D26 +Adding coverage:DECCiphers.pas (DECCiphers) 2482 +Clearing BreakPoint at 004E3D51 +De-Activate DECCiphers.pas line 2482 BreakPoint at:004E3D51 +Adding coverage:DECCiphers.pas (DECCiphers) 2474 +Clearing BreakPoint at 004E3D54 +De-Activate DECCiphers.pas line 2474 BreakPoint at:004E3D54 +Adding coverage:DECCiphers.pas (DECCiphers) 2483 +Clearing BreakPoint at 004E3D59 +De-Activate DECCiphers.pas line 2483 BreakPoint at:004E3D59 +Adding coverage:DECCiphers.pas (DECCiphers) 2484 +Clearing BreakPoint at 004E3D65 +De-Activate DECCiphers.pas line 2484 BreakPoint at:004E3D65 +Adding coverage:DECCiphers.pas (DECCiphers) 2485 +Clearing BreakPoint at 004E3D71 +De-Activate DECCiphers.pas line 2485 BreakPoint at:004E3D71 +Adding coverage:DECCipherBase.pas (DECCipherBase) 971 +Clearing BreakPoint at 004D4EE7 +De-Activate DECCipherBase.pas line 971 BreakPoint at:004D4EE7 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1085 +Clearing BreakPoint at 004D52F7 +De-Activate DECCipherBase.pas line 1085 BreakPoint at:004D52F7 +Adding coverage:DECCiphers.pas (DECCiphers) 2488 +Clearing BreakPoint at 004E3D78 +De-Activate DECCiphers.pas line 2488 BreakPoint at:004E3D78 +Adding coverage:DECCiphers.pas (DECCiphers) 2489 +Clearing BreakPoint at 004E3D88 +De-Activate DECCiphers.pas line 2489 BreakPoint at:004E3D88 +Adding coverage:DECCiphers.pas (DECCiphers) 2490 +Clearing BreakPoint at 004E3D9A +De-Activate DECCiphers.pas line 2490 BreakPoint at:004E3D9A +Adding coverage:DECCiphers.pas (DECCiphers) 2495 +Clearing BreakPoint at 004E3DA4 +De-Activate DECCiphers.pas line 2495 BreakPoint at:004E3DA4 +Adding coverage:DECCiphers.pas (DECCiphers) 2496 +Clearing BreakPoint at 004E3DB0 +De-Activate DECCiphers.pas line 2496 BreakPoint at:004E3DB0 +Adding coverage:DECCiphers.pas (DECCiphers) 2497 +Clearing BreakPoint at 004E3DB9 +De-Activate DECCiphers.pas line 2497 BreakPoint at:004E3DB9 +Adding coverage:DECCiphers.pas (DECCiphers) 2498 +Clearing BreakPoint at 004E3DC3 +De-Activate DECCiphers.pas line 2498 BreakPoint at:004E3DC3 +Adding coverage:DECCiphers.pas (DECCiphers) 2499 +Clearing BreakPoint at 004E3DCD +De-Activate DECCiphers.pas line 2499 BreakPoint at:004E3DCD +Adding coverage:DECCiphers.pas (DECCiphers) 2500 +Clearing BreakPoint at 004E3DD7 +De-Activate DECCiphers.pas line 2500 BreakPoint at:004E3DD7 +Adding coverage:DECCiphers.pas (DECCiphers) 2501 +Clearing BreakPoint at 004E3DDE +De-Activate DECCiphers.pas line 2501 BreakPoint at:004E3DDE +Adding coverage:DECCiphers.pas (DECCiphers) 2502 +Clearing BreakPoint at 004E3DE7 +De-Activate DECCiphers.pas line 2502 BreakPoint at:004E3DE7 +Adding coverage:DECCiphers.pas (DECCiphers) 2503 +Clearing BreakPoint at 004E3DF0 +De-Activate DECCiphers.pas line 2503 BreakPoint at:004E3DF0 +Adding coverage:DECCiphers.pas (DECCiphers) 2504 +Clearing BreakPoint at 004E3DFC +De-Activate DECCiphers.pas line 2504 BreakPoint at:004E3DFC +Adding coverage:DECCiphers.pas (DECCiphers) 2526 +Clearing BreakPoint at 004E3E8C +De-Activate DECCiphers.pas line 2526 BreakPoint at:004E3E8C +Adding coverage:DECCiphers.pas (DECCiphers) 2527 +Clearing BreakPoint at 004E3E9E +De-Activate DECCiphers.pas line 2527 BreakPoint at:004E3E9E +Adding coverage:DECCiphers.pas (DECCiphers) 2569 +Clearing BreakPoint at 004E4034 +De-Activate DECCiphers.pas line 2569 BreakPoint at:004E4034 +Adding coverage:DECCiphers.pas (DECCiphers) 2570 +Clearing BreakPoint at 004E403B +De-Activate DECCiphers.pas line 2570 BreakPoint at:004E403B +Adding coverage:DECCiphers.pas (DECCiphers) 2571 +Clearing BreakPoint at 004E4044 +De-Activate DECCiphers.pas line 2571 BreakPoint at:004E4044 +Adding coverage:DECCiphers.pas (DECCiphers) 2529 +Clearing BreakPoint at 004E3EA6 +De-Activate DECCiphers.pas line 2529 BreakPoint at:004E3EA6 +Adding coverage:DECCiphers.pas (DECCiphers) 2530 +Clearing BreakPoint at 004E3EAF +De-Activate DECCiphers.pas line 2530 BreakPoint at:004E3EAF +Adding coverage:DECCiphers.pas (DECCiphers) 2531 +Clearing BreakPoint at 004E3EC1 +De-Activate DECCiphers.pas line 2531 BreakPoint at:004E3EC1 +Adding coverage:DECCiphers.pas (DECCiphers) 2532 +Clearing BreakPoint at 004E3ED2 +De-Activate DECCiphers.pas line 2532 BreakPoint at:004E3ED2 +Adding coverage:DECCiphers.pas (DECCiphers) 2533 +Clearing BreakPoint at 004E3EDB +De-Activate DECCiphers.pas line 2533 BreakPoint at:004E3EDB +Adding coverage:DECCiphers.pas (DECCiphers) 2534 +Clearing BreakPoint at 004E3EE1 +De-Activate DECCiphers.pas line 2534 BreakPoint at:004E3EE1 +Adding coverage:DECCiphers.pas (DECCiphers) 2535 +Clearing BreakPoint at 004E3EE4 +De-Activate DECCiphers.pas line 2535 BreakPoint at:004E3EE4 +Adding coverage:DECCiphers.pas (DECCiphers) 2537 +Clearing BreakPoint at 004E3EF1 +De-Activate DECCiphers.pas line 2537 BreakPoint at:004E3EF1 +Adding coverage:DECCiphers.pas (DECCiphers) 2538 +Clearing BreakPoint at 004E3EF8 +De-Activate DECCiphers.pas line 2538 BreakPoint at:004E3EF8 +Adding coverage:DECCiphers.pas (DECCiphers) 2540 +Clearing BreakPoint at 004E3F12 +De-Activate DECCiphers.pas line 2540 BreakPoint at:004E3F12 +Adding coverage:DECCiphers.pas (DECCiphers) 2541 +Clearing BreakPoint at 004E3F1E +De-Activate DECCiphers.pas line 2541 BreakPoint at:004E3F1E +Adding coverage:DECCiphers.pas (DECCiphers) 2542 +Clearing BreakPoint at 004E3F25 +De-Activate DECCiphers.pas line 2542 BreakPoint at:004E3F25 +Adding coverage:DECCiphers.pas (DECCiphers) 2538 +Clearing BreakPoint at 004E3F28 +De-Activate DECCiphers.pas line 2538 BreakPoint at:004E3F28 +Adding coverage:DECCiphers.pas (DECCiphers) 2543 +Clearing BreakPoint at 004E3F2D +De-Activate DECCiphers.pas line 2543 BreakPoint at:004E3F2D +Adding coverage:DECCiphers.pas (DECCiphers) 2546 +Clearing BreakPoint at 004E3F48 +De-Activate DECCiphers.pas line 2546 BreakPoint at:004E3F48 +Adding coverage:DECCiphers.pas (DECCiphers) 2547 +Clearing BreakPoint at 004E3F59 +De-Activate DECCiphers.pas line 2547 BreakPoint at:004E3F59 +Adding coverage:DECCiphers.pas (DECCiphers) 2548 +Clearing BreakPoint at 004E3F5E +De-Activate DECCiphers.pas line 2548 BreakPoint at:004E3F5E +Adding coverage:DECCiphers.pas (DECCiphers) 2549 +Clearing BreakPoint at 004E3F63 +De-Activate DECCiphers.pas line 2549 BreakPoint at:004E3F63 +Adding coverage:DECCiphers.pas (DECCiphers) 2550 +Clearing BreakPoint at 004E3F68 +De-Activate DECCiphers.pas line 2550 BreakPoint at:004E3F68 +Adding coverage:DECCiphers.pas (DECCiphers) 2551 +Clearing BreakPoint at 004E3F6D +De-Activate DECCiphers.pas line 2551 BreakPoint at:004E3F6D +Adding coverage:DECCiphers.pas (DECCiphers) 2553 +Clearing BreakPoint at 004E3F7C +De-Activate DECCiphers.pas line 2553 BreakPoint at:004E3F7C +Adding coverage:DECCiphers.pas (DECCiphers) 2554 +Clearing BreakPoint at 004E3F90 +De-Activate DECCiphers.pas line 2554 BreakPoint at:004E3F90 +Adding coverage:DECCiphers.pas (DECCiphers) 2555 +Clearing BreakPoint at 004E3FA1 +De-Activate DECCiphers.pas line 2555 BreakPoint at:004E3FA1 +Adding coverage:DECCiphers.pas (DECCiphers) 2556 +Clearing BreakPoint at 004E3FAD +De-Activate DECCiphers.pas line 2556 BreakPoint at:004E3FAD +Adding coverage:DECCiphers.pas (DECCiphers) 2557 +Clearing BreakPoint at 004E3FB6 +De-Activate DECCiphers.pas line 2557 BreakPoint at:004E3FB6 +Adding coverage:DECCiphers.pas (DECCiphers) 2558 +Clearing BreakPoint at 004E3FC6 +De-Activate DECCiphers.pas line 2558 BreakPoint at:004E3FC6 +Adding coverage:DECCiphers.pas (DECCiphers) 2559 +Clearing BreakPoint at 004E3FE0 +De-Activate DECCiphers.pas line 2559 BreakPoint at:004E3FE0 +Adding coverage:DECCiphers.pas (DECCiphers) 2560 +Clearing BreakPoint at 004E3FED +De-Activate DECCiphers.pas line 2560 BreakPoint at:004E3FED +Adding coverage:DECCiphers.pas (DECCiphers) 2561 +Clearing BreakPoint at 004E4005 +De-Activate DECCiphers.pas line 2561 BreakPoint at:004E4005 +Adding coverage:DECCiphers.pas (DECCiphers) 2562 +Clearing BreakPoint at 004E4011 +De-Activate DECCiphers.pas line 2562 BreakPoint at:004E4011 +Adding coverage:DECCiphers.pas (DECCiphers) 2551 +Clearing BreakPoint at 004E4014 +De-Activate DECCiphers.pas line 2551 BreakPoint at:004E4014 +Adding coverage:DECCiphers.pas (DECCiphers) 2563 +Clearing BreakPoint at 004E401E +De-Activate DECCiphers.pas line 2563 BreakPoint at:004E401E +Adding coverage:DECCiphers.pas (DECCiphers) 2566 +Clearing BreakPoint at 004E402E +De-Activate DECCiphers.pas line 2566 BreakPoint at:004E402E +Adding coverage:DECCiphers.pas (DECCiphers) 2635 +Clearing BreakPoint at 004E407C +De-Activate DECCiphers.pas line 2635 BreakPoint at:004E407C +Adding coverage:DECCiphers.pas (DECCiphers) 2636 +Clearing BreakPoint at 004E408B +De-Activate DECCiphers.pas line 2636 BreakPoint at:004E408B +Adding coverage:DECCiphers.pas (DECCiphers) 2638 +Clearing BreakPoint at 004E40B2 +De-Activate DECCiphers.pas line 2638 BreakPoint at:004E40B2 +Adding coverage:DECCiphers.pas (DECCiphers) 2639 +Clearing BreakPoint at 004E40BB +De-Activate DECCiphers.pas line 2639 BreakPoint at:004E40BB +Adding coverage:DECCiphers.pas (DECCiphers) 2640 +Clearing BreakPoint at 004E40C3 +De-Activate DECCiphers.pas line 2640 BreakPoint at:004E40C3 +Adding coverage:DECCiphers.pas (DECCiphers) 2641 +Clearing BreakPoint at 004E40D1 +De-Activate DECCiphers.pas line 2641 BreakPoint at:004E40D1 +Adding coverage:DECCiphers.pas (DECCiphers) 2642 +Clearing BreakPoint at 004E40DA +De-Activate DECCiphers.pas line 2642 BreakPoint at:004E40DA +Adding coverage:DECCiphers.pas (DECCiphers) 2643 +Clearing BreakPoint at 004E40E9 +De-Activate DECCiphers.pas line 2643 BreakPoint at:004E40E9 +Adding coverage:DECCiphers.pas (DECCiphers) 2645 +Clearing BreakPoint at 004E4101 +De-Activate DECCiphers.pas line 2645 BreakPoint at:004E4101 +Adding coverage:DECCiphers.pas (DECCiphers) 2646 +Clearing BreakPoint at 004E410A +De-Activate DECCiphers.pas line 2646 BreakPoint at:004E410A +Adding coverage:DECCiphers.pas (DECCiphers) 2647 +Clearing BreakPoint at 004E4117 +De-Activate DECCiphers.pas line 2647 BreakPoint at:004E4117 +Adding coverage:DECCiphers.pas (DECCiphers) 2648 +Clearing BreakPoint at 004E4128 +De-Activate DECCiphers.pas line 2648 BreakPoint at:004E4128 +Adding coverage:DECCiphers.pas (DECCiphers) 2649 +Clearing BreakPoint at 004E4135 +De-Activate DECCiphers.pas line 2649 BreakPoint at:004E4135 +Adding coverage:DECCiphers.pas (DECCiphers) 2650 +Clearing BreakPoint at 004E4146 +De-Activate DECCiphers.pas line 2650 BreakPoint at:004E4146 +Adding coverage:DECCiphers.pas (DECCiphers) 2651 +Clearing BreakPoint at 004E414C +De-Activate DECCiphers.pas line 2651 BreakPoint at:004E414C +Adding coverage:DECCiphers.pas (DECCiphers) 2652 +Clearing BreakPoint at 004E416B +De-Activate DECCiphers.pas line 2652 BreakPoint at:004E416B +Adding coverage:DECCiphers.pas (DECCiphers) 2653 +Clearing BreakPoint at 004E4171 +De-Activate DECCiphers.pas line 2653 BreakPoint at:004E4171 +Adding coverage:DECCiphers.pas (DECCiphers) 2654 +Clearing BreakPoint at 004E4191 +De-Activate DECCiphers.pas line 2654 BreakPoint at:004E4191 +Adding coverage:DECCiphers.pas (DECCiphers) 2655 +Clearing BreakPoint at 004E41AF +De-Activate DECCiphers.pas line 2655 BreakPoint at:004E41AF +Adding coverage:DECCiphers.pas (DECCiphers) 2643 +Clearing BreakPoint at 004E41B2 +De-Activate DECCiphers.pas line 2643 BreakPoint at:004E41B2 +Adding coverage:DECCiphers.pas (DECCiphers) 2656 +Clearing BreakPoint at 004E41BB +De-Activate DECCiphers.pas line 2656 BreakPoint at:004E41BB +Adding coverage:DECCiphers.pas (DECCiphers) 2657 +Clearing BreakPoint at 004E41C9 +De-Activate DECCiphers.pas line 2657 BreakPoint at:004E41C9 +Adding coverage:DECCiphers.pas (DECCiphers) 2658 +Clearing BreakPoint at 004E41D2 +De-Activate DECCiphers.pas line 2658 BreakPoint at:004E41D2 +Adding coverage:DECCiphers.pas (DECCiphers) 2659 +Clearing BreakPoint at 004E41E1 +De-Activate DECCiphers.pas line 2659 BreakPoint at:004E41E1 +Adding coverage:DECCiphers.pas (DECCiphers) 2660 +Clearing BreakPoint at 004E41EA +De-Activate DECCiphers.pas line 2660 BreakPoint at:004E41EA +Adding coverage:DECCiphers.pas (DECCiphers) 2718 +Clearing BreakPoint at 004E429C +De-Activate DECCiphers.pas line 2718 BreakPoint at:004E429C +Adding coverage:DECCiphers.pas (DECCiphers) 2719 +Clearing BreakPoint at 004E42AB +De-Activate DECCiphers.pas line 2719 BreakPoint at:004E42AB +Adding coverage:DECCiphers.pas (DECCiphers) 2721 +Clearing BreakPoint at 004E42D2 +De-Activate DECCiphers.pas line 2721 BreakPoint at:004E42D2 +Adding coverage:DECCiphers.pas (DECCiphers) 2722 +Clearing BreakPoint at 004E42E6 +De-Activate DECCiphers.pas line 2722 BreakPoint at:004E42E6 +Adding coverage:DECCiphers.pas (DECCiphers) 2723 +Clearing BreakPoint at 004E42F4 +De-Activate DECCiphers.pas line 2723 BreakPoint at:004E42F4 +Adding coverage:DECCiphers.pas (DECCiphers) 2724 +Clearing BreakPoint at 004E42FD +De-Activate DECCiphers.pas line 2724 BreakPoint at:004E42FD +Adding coverage:DECCiphers.pas (DECCiphers) 2725 +Clearing BreakPoint at 004E430C +De-Activate DECCiphers.pas line 2725 BreakPoint at:004E430C +Adding coverage:DECCiphers.pas (DECCiphers) 2727 +Clearing BreakPoint at 004E4315 +De-Activate DECCiphers.pas line 2727 BreakPoint at:004E4315 +Adding coverage:DECCiphers.pas (DECCiphers) 2729 +Clearing BreakPoint at 004E432D +De-Activate DECCiphers.pas line 2729 BreakPoint at:004E432D +Adding coverage:DECCiphers.pas (DECCiphers) 2730 +Clearing BreakPoint at 004E434B +De-Activate DECCiphers.pas line 2730 BreakPoint at:004E434B +Adding coverage:DECCiphers.pas (DECCiphers) 2731 +Clearing BreakPoint at 004E4358 +De-Activate DECCiphers.pas line 2731 BreakPoint at:004E4358 +Adding coverage:DECCiphers.pas (DECCiphers) 2732 +Clearing BreakPoint at 004E4369 +De-Activate DECCiphers.pas line 2732 BreakPoint at:004E4369 +Adding coverage:DECCiphers.pas (DECCiphers) 2733 +Clearing BreakPoint at 004E4376 +De-Activate DECCiphers.pas line 2733 BreakPoint at:004E4376 +Adding coverage:DECCiphers.pas (DECCiphers) 2734 +Clearing BreakPoint at 004E4387 +De-Activate DECCiphers.pas line 2734 BreakPoint at:004E4387 +Adding coverage:DECCiphers.pas (DECCiphers) 2735 +Clearing BreakPoint at 004E4390 +De-Activate DECCiphers.pas line 2735 BreakPoint at:004E4390 +Adding coverage:DECCiphers.pas (DECCiphers) 2736 +Clearing BreakPoint at 004E43AD +De-Activate DECCiphers.pas line 2736 BreakPoint at:004E43AD +Adding coverage:DECCiphers.pas (DECCiphers) 2737 +Clearing BreakPoint at 004E43B5 +De-Activate DECCiphers.pas line 2737 BreakPoint at:004E43B5 +Adding coverage:DECCiphers.pas (DECCiphers) 2738 +Clearing BreakPoint at 004E43D2 +De-Activate DECCiphers.pas line 2738 BreakPoint at:004E43D2 +Adding coverage:DECCiphers.pas (DECCiphers) 2739 +Clearing BreakPoint at 004E43D6 +De-Activate DECCiphers.pas line 2739 BreakPoint at:004E43D6 +Adding coverage:DECCiphers.pas (DECCiphers) 2727 +Clearing BreakPoint at 004E43D9 +De-Activate DECCiphers.pas line 2727 BreakPoint at:004E43D9 +Adding coverage:DECCiphers.pas (DECCiphers) 2741 +Clearing BreakPoint at 004E43E2 +De-Activate DECCiphers.pas line 2741 BreakPoint at:004E43E2 +Adding coverage:DECCiphers.pas (DECCiphers) 2742 +Clearing BreakPoint at 004E43EA +De-Activate DECCiphers.pas line 2742 BreakPoint at:004E43EA +Adding coverage:DECCiphers.pas (DECCiphers) 2743 +Clearing BreakPoint at 004E43F8 +De-Activate DECCiphers.pas line 2743 BreakPoint at:004E43F8 +Adding coverage:DECCiphers.pas (DECCiphers) 2744 +Clearing BreakPoint at 004E4401 +De-Activate DECCiphers.pas line 2744 BreakPoint at:004E4401 +Adding coverage:DECCiphers.pas (DECCiphers) 2745 +Clearing BreakPoint at 004E4410 +De-Activate DECCiphers.pas line 2745 BreakPoint at:004E4410 +Adding coverage:DECCiphers.pas (DECCiphers) 2507 +Clearing BreakPoint at 004E3E04 +De-Activate DECCiphers.pas line 2507 BreakPoint at:004E3E04 +Adding coverage:DECCiphers.pas (DECCiphers) 2508 +Clearing BreakPoint at 004E3E10 +De-Activate DECCiphers.pas line 2508 BreakPoint at:004E3E10 +Adding coverage:DECCiphers.pas (DECCiphers) 2511 +Clearing BreakPoint at 004E3E38 +De-Activate DECCiphers.pas line 2511 BreakPoint at:004E3E38 +Adding coverage:DECCiphers.pas (DECCiphers) 2513 +Clearing BreakPoint at 004E3E5E +De-Activate DECCiphers.pas line 2513 BreakPoint at:004E3E5E +Adding coverage:DECCiphers.pas (DECCiphers) 2515 +Clearing BreakPoint at 004E3E69 +De-Activate DECCiphers.pas line 2515 BreakPoint at:004E3E69 +Adding coverage:DECCiphers.pas (DECCiphers) 2517 +Clearing BreakPoint at 004E3E7F +De-Activate DECCiphers.pas line 2517 BreakPoint at:004E3E7F +Adding coverage:DECCiphers.pas (DECCiphers) 2519 +Clearing BreakPoint at 004E3E88 +De-Activate DECCiphers.pas line 2519 BreakPoint at:004E3E88 +Adding coverage:DECCiphers.pas (DECCiphers) 2509 +Clearing BreakPoint at 004E3E24 +De-Activate DECCiphers.pas line 2509 BreakPoint at:004E3E24 +Adding coverage:DECCiphers.pas (DECCiphers) 2512 +Clearing BreakPoint at 004E3E4C +De-Activate DECCiphers.pas line 2512 BreakPoint at:004E3E4C +Adding coverage:DECCipherModes.pas (DECCipherModes) 508 +Clearing BreakPoint at 004D7949 +De-Activate DECCipherModes.pas line 508 BreakPoint at:004D7949 +Adding coverage:DECCipherModes.pas (DECCipherModes) 527 +Clearing BreakPoint at 004D7A24 +De-Activate DECCipherModes.pas line 527 BreakPoint at:004D7A24 +Adding coverage:DECCipherModes.pas (DECCipherModes) 528 +Clearing BreakPoint at 004D7A34 +De-Activate DECCipherModes.pas line 528 BreakPoint at:004D7A34 +Adding coverage:DECCipherModes.pas (DECCipherModes) 535 +Clearing BreakPoint at 004D7A63 +De-Activate DECCipherModes.pas line 535 BreakPoint at:004D7A63 +Adding coverage:DECCipherModes.pas (DECCipherModes) 536 +Clearing BreakPoint at 004D7A73 +De-Activate DECCipherModes.pas line 536 BreakPoint at:004D7A73 +Adding coverage:DECCipherModes.pas (DECCipherModes) 537 +Clearing BreakPoint at 004D7A78 +De-Activate DECCipherModes.pas line 537 BreakPoint at:004D7A78 +Adding coverage:DECCipherModes.pas (DECCipherModes) 539 +Clearing BreakPoint at 004D7A80 +De-Activate DECCipherModes.pas line 539 BreakPoint at:004D7A80 +Adding coverage:DECCipherModes.pas (DECCipherModes) 540 +Clearing BreakPoint at 004D7AB8 +De-Activate DECCipherModes.pas line 540 BreakPoint at:004D7AB8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 537 +Clearing BreakPoint at 004D7AC8 +De-Activate DECCipherModes.pas line 537 BreakPoint at:004D7AC8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 542 +Clearing BreakPoint at 004D7AD0 +De-Activate DECCipherModes.pas line 542 BreakPoint at:004D7AD0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 543 +Clearing BreakPoint at 004D7AEA +De-Activate DECCipherModes.pas line 543 BreakPoint at:004D7AEA +Adding coverage:DECCipherModes.pas (DECCipherModes) 557 +Clearing BreakPoint at 004D7B56 +De-Activate DECCipherModes.pas line 557 BreakPoint at:004D7B56 +Adding coverage:DECCiphers.pas (DECCiphers) 2860 +Clearing BreakPoint at 004E4545 +De-Activate DECCiphers.pas line 2860 BreakPoint at:004E4545 +Adding coverage:DECCiphers.pas (DECCiphers) 2861 +Clearing BreakPoint at 004E454B +De-Activate DECCiphers.pas line 2861 BreakPoint at:004E454B +Adding coverage:DECCiphers.pas (DECCiphers) 2895 +Clearing BreakPoint at 004E468E +De-Activate DECCiphers.pas line 2895 BreakPoint at:004E468E +Adding coverage:DECCiphers.pas (DECCiphers) 2897 +Clearing BreakPoint at 004E4698 +De-Activate DECCiphers.pas line 2897 BreakPoint at:004E4698 +Adding coverage:DECCiphers.pas (DECCiphers) 2899 +Clearing BreakPoint at 004E469D +De-Activate DECCiphers.pas line 2899 BreakPoint at:004E469D +Adding coverage:DECCiphers.pas (DECCiphers) 2900 +Clearing BreakPoint at 004E46A6 +De-Activate DECCiphers.pas line 2900 BreakPoint at:004E46A6 +Adding coverage:DECCiphers.pas (DECCiphers) 2904 +Clearing BreakPoint at 004E471A +De-Activate DECCiphers.pas line 2904 BreakPoint at:004E471A +Adding coverage:DECCiphers.pas (DECCiphers) 2905 +Clearing BreakPoint at 004E472C +De-Activate DECCiphers.pas line 2905 BreakPoint at:004E472C +Adding coverage:DECCiphers.pas (DECCiphers) 2906 +Clearing BreakPoint at 004E473E +De-Activate DECCiphers.pas line 2906 BreakPoint at:004E473E +Adding coverage:DECCiphers.pas (DECCiphers) 2907 +Clearing BreakPoint at 004E4750 +De-Activate DECCiphers.pas line 2907 BreakPoint at:004E4750 +Adding coverage:DECCiphers.pas (DECCiphers) 2909 +Clearing BreakPoint at 004E475A +De-Activate DECCiphers.pas line 2909 BreakPoint at:004E475A +Adding coverage:DECCiphers.pas (DECCiphers) 2910 +Clearing BreakPoint at 004E476C +De-Activate DECCiphers.pas line 2910 BreakPoint at:004E476C +Adding coverage:DECCiphers.pas (DECCiphers) 2911 +Clearing BreakPoint at 004E477E +De-Activate DECCiphers.pas line 2911 BreakPoint at:004E477E +Adding coverage:DECCiphers.pas (DECCiphers) 2912 +Clearing BreakPoint at 004E4787 +De-Activate DECCiphers.pas line 2912 BreakPoint at:004E4787 +Adding coverage:DECCiphers.pas (DECCiphers) 2897 +Clearing BreakPoint at 004E478A +De-Activate DECCiphers.pas line 2897 BreakPoint at:004E478A +Adding coverage:DECCiphers.pas (DECCiphers) 2863 +Clearing BreakPoint at 004E4557 +De-Activate DECCiphers.pas line 2863 BreakPoint at:004E4557 +Adding coverage:DECCiphers.pas (DECCiphers) 2916 +Clearing BreakPoint at 004E4799 +De-Activate DECCiphers.pas line 2916 BreakPoint at:004E4799 +Adding coverage:DECCiphers.pas (DECCiphers) 2918 +Clearing BreakPoint at 004E479E +De-Activate DECCiphers.pas line 2918 BreakPoint at:004E479E +Adding coverage:DECCiphers.pas (DECCiphers) 2919 +Clearing BreakPoint at 004E47A7 +De-Activate DECCiphers.pas line 2919 BreakPoint at:004E47A7 +Adding coverage:DECCiphers.pas (DECCiphers) 2923 +Clearing BreakPoint at 004E481B +De-Activate DECCiphers.pas line 2923 BreakPoint at:004E481B +Adding coverage:DECCiphers.pas (DECCiphers) 2924 +Clearing BreakPoint at 004E482D +De-Activate DECCiphers.pas line 2924 BreakPoint at:004E482D +Adding coverage:DECCiphers.pas (DECCiphers) 2925 +Clearing BreakPoint at 004E483F +De-Activate DECCiphers.pas line 2925 BreakPoint at:004E483F +Adding coverage:DECCiphers.pas (DECCiphers) 2926 +Clearing BreakPoint at 004E4851 +De-Activate DECCiphers.pas line 2926 BreakPoint at:004E4851 +Adding coverage:DECCiphers.pas (DECCiphers) 2928 +Clearing BreakPoint at 004E485B +De-Activate DECCiphers.pas line 2928 BreakPoint at:004E485B +Adding coverage:DECCiphers.pas (DECCiphers) 2929 +Clearing BreakPoint at 004E4864 +De-Activate DECCiphers.pas line 2929 BreakPoint at:004E4864 +Adding coverage:DECCiphers.pas (DECCiphers) 2933 +Clearing BreakPoint at 004E48CD +De-Activate DECCiphers.pas line 2933 BreakPoint at:004E48CD +Adding coverage:DECCiphers.pas (DECCiphers) 2934 +Clearing BreakPoint at 004E48DF +De-Activate DECCiphers.pas line 2934 BreakPoint at:004E48DF +Adding coverage:DECCiphers.pas (DECCiphers) 2935 +Clearing BreakPoint at 004E48F1 +De-Activate DECCiphers.pas line 2935 BreakPoint at:004E48F1 +Adding coverage:DECCiphers.pas (DECCiphers) 2936 +Clearing BreakPoint at 004E4903 +De-Activate DECCiphers.pas line 2936 BreakPoint at:004E4903 +Adding coverage:DECCiphers.pas (DECCiphers) 2937 +Clearing BreakPoint at 004E490C +De-Activate DECCiphers.pas line 2937 BreakPoint at:004E490C +Adding coverage:DECCiphers.pas (DECCiphers) 2916 +Clearing BreakPoint at 004E490F +De-Activate DECCiphers.pas line 2916 BreakPoint at:004E490F +Adding coverage:DECCipherBase.pas (DECCipherBase) 991 +Clearing BreakPoint at 004D4FCA +De-Activate DECCipherBase.pas line 991 BreakPoint at:004D4FCA +Adding coverage:DECCipherModes.pas (DECCipherModes) 509 +Clearing BreakPoint at 004D7960 +De-Activate DECCipherModes.pas line 509 BreakPoint at:004D7960 +Adding coverage:DECCipherModes.pas (DECCipherModes) 795 +Clearing BreakPoint at 004D8838 +De-Activate DECCipherModes.pas line 795 BreakPoint at:004D8838 +Adding coverage:DECCipherModes.pas (DECCipherModes) 796 +Clearing BreakPoint at 004D8848 +De-Activate DECCipherModes.pas line 796 BreakPoint at:004D8848 +Adding coverage:DECCipherModes.pas (DECCipherModes) 797 +Clearing BreakPoint at 004D8858 +De-Activate DECCipherModes.pas line 797 BreakPoint at:004D8858 +Adding coverage:DECCipherModes.pas (DECCipherModes) 798 +Clearing BreakPoint at 004D8861 +De-Activate DECCipherModes.pas line 798 BreakPoint at:004D8861 +Adding coverage:DECCipherModes.pas (DECCipherModes) 799 +Clearing BreakPoint at 004D8866 +De-Activate DECCipherModes.pas line 799 BreakPoint at:004D8866 +Adding coverage:DECCipherModes.pas (DECCipherModes) 801 +Clearing BreakPoint at 004D886E +De-Activate DECCipherModes.pas line 801 BreakPoint at:004D886E +Adding coverage:DECCipherModes.pas (DECCipherModes) 802 +Clearing BreakPoint at 004D88A7 +De-Activate DECCipherModes.pas line 802 BreakPoint at:004D88A7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 803 +Clearing BreakPoint at 004D88BF +De-Activate DECCipherModes.pas line 803 BreakPoint at:004D88BF +Adding coverage:DECCipherModes.pas (DECCipherModes) 804 +Clearing BreakPoint at 004D88D4 +De-Activate DECCipherModes.pas line 804 BreakPoint at:004D88D4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 799 +Clearing BreakPoint at 004D88E4 +De-Activate DECCipherModes.pas line 799 BreakPoint at:004D88E4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 806 +Clearing BreakPoint at 004D88EC +De-Activate DECCipherModes.pas line 806 BreakPoint at:004D88EC +Adding coverage:DECCipherModes.pas (DECCipherModes) 807 +Clearing BreakPoint at 004D88F7 +De-Activate DECCipherModes.pas line 807 BreakPoint at:004D88F7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 808 +Clearing BreakPoint at 004D890B +De-Activate DECCipherModes.pas line 808 BreakPoint at:004D890B +Adding coverage:DECCipherModes.pas (DECCipherModes) 809 +Clearing BreakPoint at 004D8925 +De-Activate DECCipherModes.pas line 809 BreakPoint at:004D8925 +Adding coverage:DECCipherModes.pas (DECCipherModes) 815 +Clearing BreakPoint at 004D8969 +De-Activate DECCipherModes.pas line 815 BreakPoint at:004D8969 +Adding coverage:DECCipherModes.pas (DECCipherModes) 816 +Clearing BreakPoint at 004D8970 +De-Activate DECCipherModes.pas line 816 BreakPoint at:004D8970 +Adding coverage:DECCiphers.pas (DECCiphers) 3030 +Clearing BreakPoint at 004E4EC0 +De-Activate DECCiphers.pas line 3030 BreakPoint at:004E4EC0 +Adding coverage:DECCiphers.pas (DECCiphers) 3031 +Clearing BreakPoint at 004E4ECF +De-Activate DECCiphers.pas line 3031 BreakPoint at:004E4ECF +Adding coverage:DECCiphers.pas (DECCiphers) 3033 +Clearing BreakPoint at 004E4EF6 +De-Activate DECCiphers.pas line 3033 BreakPoint at:004E4EF6 +Adding coverage:DECCiphers.pas (DECCiphers) 3034 +Clearing BreakPoint at 004E4F14 +De-Activate DECCiphers.pas line 3034 BreakPoint at:004E4F14 +Adding coverage:DECCiphers.pas (DECCiphers) 3035 +Clearing BreakPoint at 004E4F1C +De-Activate DECCiphers.pas line 3035 BreakPoint at:004E4F1C +Adding coverage:DECCiphers.pas (DECCiphers) 3036 +Clearing BreakPoint at 004E4F25 +De-Activate DECCiphers.pas line 3036 BreakPoint at:004E4F25 +Adding coverage:DECCiphers.pas (DECCiphers) 3037 +Clearing BreakPoint at 004E4F2E +De-Activate DECCiphers.pas line 3037 BreakPoint at:004E4F2E +Adding coverage:DECCiphers.pas (DECCiphers) 3039 +Clearing BreakPoint at 004E4F37 +De-Activate DECCiphers.pas line 3039 BreakPoint at:004E4F37 +Adding coverage:DECCiphers.pas (DECCiphers) 3041 +Clearing BreakPoint at 004E4F51 +De-Activate DECCiphers.pas line 3041 BreakPoint at:004E4F51 +Adding coverage:DECCiphers.pas (DECCiphers) 3042 +Clearing BreakPoint at 004E4F5C +De-Activate DECCiphers.pas line 3042 BreakPoint at:004E4F5C +Adding coverage:DECCiphers.pas (DECCiphers) 3043 +Clearing BreakPoint at 004E4F68 +De-Activate DECCiphers.pas line 3043 BreakPoint at:004E4F68 +Adding coverage:DECCiphers.pas (DECCiphers) 3044 +Clearing BreakPoint at 004E4F74 +De-Activate DECCiphers.pas line 3044 BreakPoint at:004E4F74 +Adding coverage:DECCiphers.pas (DECCiphers) 3046 +Clearing BreakPoint at 004E4F80 +De-Activate DECCiphers.pas line 3046 BreakPoint at:004E4F80 +Adding coverage:DECCiphers.pas (DECCiphers) 3050 +Clearing BreakPoint at 004E4FDD +De-Activate DECCiphers.pas line 3050 BreakPoint at:004E4FDD +Adding coverage:DECCiphers.pas (DECCiphers) 3054 +Clearing BreakPoint at 004E503A +De-Activate DECCiphers.pas line 3054 BreakPoint at:004E503A +Adding coverage:DECCiphers.pas (DECCiphers) 3058 +Clearing BreakPoint at 004E5097 +De-Activate DECCiphers.pas line 3058 BreakPoint at:004E5097 +Adding coverage:DECCiphers.pas (DECCiphers) 3063 +Clearing BreakPoint at 004E50F4 +De-Activate DECCiphers.pas line 3063 BreakPoint at:004E50F4 +Adding coverage:DECCiphers.pas (DECCiphers) 3064 +Clearing BreakPoint at 004E50F8 +De-Activate DECCiphers.pas line 3064 BreakPoint at:004E50F8 +Adding coverage:DECCiphers.pas (DECCiphers) 3039 +Clearing BreakPoint at 004E50FB +De-Activate DECCiphers.pas line 3039 BreakPoint at:004E50FB +Adding coverage:DECCiphers.pas (DECCiphers) 3066 +Clearing BreakPoint at 004E5104 +De-Activate DECCiphers.pas line 3066 BreakPoint at:004E5104 +Adding coverage:DECCiphers.pas (DECCiphers) 3067 +Clearing BreakPoint at 004E510F +De-Activate DECCiphers.pas line 3067 BreakPoint at:004E510F +Adding coverage:DECCiphers.pas (DECCiphers) 3068 +Clearing BreakPoint at 004E511B +De-Activate DECCiphers.pas line 3068 BreakPoint at:004E511B +Adding coverage:DECCiphers.pas (DECCiphers) 3069 +Clearing BreakPoint at 004E5127 +De-Activate DECCiphers.pas line 3069 BreakPoint at:004E5127 +Adding coverage:DECCiphers.pas (DECCiphers) 3071 +Clearing BreakPoint at 004E5133 +De-Activate DECCiphers.pas line 3071 BreakPoint at:004E5133 +Adding coverage:DECCiphers.pas (DECCiphers) 3073 +Clearing BreakPoint at 004E5137 +De-Activate DECCiphers.pas line 3073 BreakPoint at:004E5137 +Adding coverage:DECCiphers.pas (DECCiphers) 3077 +Clearing BreakPoint at 004E51AE +De-Activate DECCiphers.pas line 3077 BreakPoint at:004E51AE +Adding coverage:DECCiphers.pas (DECCiphers) 3081 +Clearing BreakPoint at 004E5227 +De-Activate DECCiphers.pas line 3081 BreakPoint at:004E5227 +Adding coverage:DECCiphers.pas (DECCiphers) 3085 +Clearing BreakPoint at 004E52A0 +De-Activate DECCiphers.pas line 3085 BreakPoint at:004E52A0 +Adding coverage:DECCiphers.pas (DECCiphers) 3089 +Clearing BreakPoint at 004E5319 +De-Activate DECCiphers.pas line 3089 BreakPoint at:004E5319 +Adding coverage:DECCipherModes.pas (DECCipherModes) 890 +Clearing BreakPoint at 004D8BE5 +De-Activate DECCipherModes.pas line 890 BreakPoint at:004D8BE5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 909 +Clearing BreakPoint at 004D8CC0 +De-Activate DECCipherModes.pas line 909 BreakPoint at:004D8CC0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 910 +Clearing BreakPoint at 004D8CD0 +De-Activate DECCipherModes.pas line 910 BreakPoint at:004D8CD0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 917 +Clearing BreakPoint at 004D8CFF +De-Activate DECCipherModes.pas line 917 BreakPoint at:004D8CFF +Adding coverage:DECCipherModes.pas (DECCipherModes) 918 +Clearing BreakPoint at 004D8D0F +De-Activate DECCipherModes.pas line 918 BreakPoint at:004D8D0F +Adding coverage:DECCipherModes.pas (DECCipherModes) 919 +Clearing BreakPoint at 004D8D14 +De-Activate DECCipherModes.pas line 919 BreakPoint at:004D8D14 +Adding coverage:DECCipherModes.pas (DECCipherModes) 921 +Clearing BreakPoint at 004D8D1C +De-Activate DECCipherModes.pas line 921 BreakPoint at:004D8D1C +Adding coverage:DECCipherModes.pas (DECCipherModes) 922 +Clearing BreakPoint at 004D8D54 +De-Activate DECCipherModes.pas line 922 BreakPoint at:004D8D54 +Adding coverage:DECCipherModes.pas (DECCipherModes) 919 +Clearing BreakPoint at 004D8D64 +De-Activate DECCipherModes.pas line 919 BreakPoint at:004D8D64 +Adding coverage:DECCipherModes.pas (DECCipherModes) 924 +Clearing BreakPoint at 004D8D6C +De-Activate DECCipherModes.pas line 924 BreakPoint at:004D8D6C +Adding coverage:DECCipherModes.pas (DECCipherModes) 925 +Clearing BreakPoint at 004D8D86 +De-Activate DECCipherModes.pas line 925 BreakPoint at:004D8D86 +Adding coverage:DECCipherModes.pas (DECCipherModes) 939 +Clearing BreakPoint at 004D8DF2 +De-Activate DECCipherModes.pas line 939 BreakPoint at:004D8DF2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 891 +Clearing BreakPoint at 004D8BFC +De-Activate DECCipherModes.pas line 891 BreakPoint at:004D8BFC +Adding coverage:DECCipherModes.pas (DECCipherModes) 1175 +Clearing BreakPoint at 004D9A54 +De-Activate DECCipherModes.pas line 1175 BreakPoint at:004D9A54 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1176 +Clearing BreakPoint at 004D9A64 +De-Activate DECCipherModes.pas line 1176 BreakPoint at:004D9A64 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1177 +Clearing BreakPoint at 004D9A74 +De-Activate DECCipherModes.pas line 1177 BreakPoint at:004D9A74 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1178 +Clearing BreakPoint at 004D9A7D +De-Activate DECCipherModes.pas line 1178 BreakPoint at:004D9A7D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1179 +Clearing BreakPoint at 004D9A82 +De-Activate DECCipherModes.pas line 1179 BreakPoint at:004D9A82 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1181 +Clearing BreakPoint at 004D9A8E +De-Activate DECCipherModes.pas line 1181 BreakPoint at:004D9A8E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1182 +Clearing BreakPoint at 004D9A97 +De-Activate DECCipherModes.pas line 1182 BreakPoint at:004D9A97 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1184 +Clearing BreakPoint at 004D9AA3 +De-Activate DECCipherModes.pas line 1184 BreakPoint at:004D9AA3 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1185 +Clearing BreakPoint at 004D9AC6 +De-Activate DECCipherModes.pas line 1185 BreakPoint at:004D9AC6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1186 +Clearing BreakPoint at 004D9AFE +De-Activate DECCipherModes.pas line 1186 BreakPoint at:004D9AFE +Adding coverage:DECCipherModes.pas (DECCipherModes) 1187 +Clearing BreakPoint at 004D9B37 +De-Activate DECCipherModes.pas line 1187 BreakPoint at:004D9B37 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1188 +Clearing BreakPoint at 004D9B3D +De-Activate DECCipherModes.pas line 1188 BreakPoint at:004D9B3D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1189 +Clearing BreakPoint at 004D9B43 +De-Activate DECCipherModes.pas line 1189 BreakPoint at:004D9B43 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1190 +Clearing BreakPoint at 004D9B49 +De-Activate DECCipherModes.pas line 1190 BreakPoint at:004D9B49 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1182 +Clearing BreakPoint at 004D9B59 +De-Activate DECCipherModes.pas line 1182 BreakPoint at:004D9B59 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1203 +Clearing BreakPoint at 004D9C1A +De-Activate DECCipherModes.pas line 1203 BreakPoint at:004D9C1A +Adding coverage:DECCipherModes.pas (DECCipherModes) 1205 +Clearing BreakPoint at 004D9C39 +De-Activate DECCipherModes.pas line 1205 BreakPoint at:004D9C39 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1206 +Clearing BreakPoint at 004D9C53 +De-Activate DECCipherModes.pas line 1206 BreakPoint at:004D9C53 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1212 +Clearing BreakPoint at 004D9C97 +De-Activate DECCipherModes.pas line 1212 BreakPoint at:004D9C97 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1213 +Clearing BreakPoint at 004D9C9E +De-Activate DECCipherModes.pas line 1213 BreakPoint at:004D9C9E +Adding coverage:DECCiphers.pas (DECCiphers) 3098 +Clearing BreakPoint at 004E53CC +De-Activate DECCiphers.pas line 3098 BreakPoint at:004E53CC +Adding coverage:DECCiphers.pas (DECCiphers) 3099 +Clearing BreakPoint at 004E53D8 +De-Activate DECCiphers.pas line 3099 BreakPoint at:004E53D8 +Adding coverage:DECCiphers.pas (DECCiphers) 3100 +Clearing BreakPoint at 004E53E1 +De-Activate DECCiphers.pas line 3100 BreakPoint at:004E53E1 +Adding coverage:DECCiphers.pas (DECCiphers) 3101 +Clearing BreakPoint at 004E53EB +De-Activate DECCiphers.pas line 3101 BreakPoint at:004E53EB +Adding coverage:DECCiphers.pas (DECCiphers) 3102 +Clearing BreakPoint at 004E53F5 +De-Activate DECCiphers.pas line 3102 BreakPoint at:004E53F5 +Adding coverage:DECCiphers.pas (DECCiphers) 3103 +Clearing BreakPoint at 004E53FF +De-Activate DECCiphers.pas line 3103 BreakPoint at:004E53FF +Adding coverage:DECCiphers.pas (DECCiphers) 3104 +Clearing BreakPoint at 004E5406 +De-Activate DECCiphers.pas line 3104 BreakPoint at:004E5406 +Adding coverage:DECCiphers.pas (DECCiphers) 3105 +Clearing BreakPoint at 004E540F +De-Activate DECCiphers.pas line 3105 BreakPoint at:004E540F +Adding coverage:DECCiphers.pas (DECCiphers) 3106 +Clearing BreakPoint at 004E5418 +De-Activate DECCiphers.pas line 3106 BreakPoint at:004E5418 +Adding coverage:DECCiphers.pas (DECCiphers) 3107 +Clearing BreakPoint at 004E5424 +De-Activate DECCiphers.pas line 3107 BreakPoint at:004E5424 +Adding coverage:DECCiphers.pas (DECCiphers) 3110 +Clearing BreakPoint at 004E542C +De-Activate DECCiphers.pas line 3110 BreakPoint at:004E542C +Adding coverage:DECCiphers.pas (DECCiphers) 3114 +Clearing BreakPoint at 004E543B +De-Activate DECCiphers.pas line 3114 BreakPoint at:004E543B +Adding coverage:DECCiphers.pas (DECCiphers) 3116 +Clearing BreakPoint at 004E5445 +De-Activate DECCiphers.pas line 3116 BreakPoint at:004E5445 +Adding coverage:DECCiphers.pas (DECCiphers) 3117 +Clearing BreakPoint at 004E5457 +De-Activate DECCiphers.pas line 3117 BreakPoint at:004E5457 +Adding coverage:DECCiphers.pas (DECCiphers) 3118 +Clearing BreakPoint at 004E5468 +De-Activate DECCiphers.pas line 3118 BreakPoint at:004E5468 +Adding coverage:DECCiphers.pas (DECCiphers) 3119 +Clearing BreakPoint at 004E57D9 +De-Activate DECCiphers.pas line 3119 BreakPoint at:004E57D9 +Adding coverage:DECCiphers.pas (DECCiphers) 3121 +Clearing BreakPoint at 004E58C4 +De-Activate DECCiphers.pas line 3121 BreakPoint at:004E58C4 +Adding coverage:DECCiphers.pas (DECCiphers) 3122 +Clearing BreakPoint at 004E58D2 +De-Activate DECCiphers.pas line 3122 BreakPoint at:004E58D2 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4E15 +Exact line:DECCipherBase line 951 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D5119 +After line:DECCipherBase line 1015 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050B5FA +Exact line:TestDECCipher line 4563 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050C0C0 +Exact line:TestDECCipher line 4678 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 3131 +Clearing BreakPoint at 004E58D8 +De-Activate DECCiphers.pas line 3131 BreakPoint at:004E58D8 +Adding coverage:DECCiphers.pas (DECCiphers) 3132 +Clearing BreakPoint at 004E58E4 +De-Activate DECCiphers.pas line 3132 BreakPoint at:004E58E4 +Adding coverage:DECCiphers.pas (DECCiphers) 3133 +Clearing BreakPoint at 004E58ED +De-Activate DECCiphers.pas line 3133 BreakPoint at:004E58ED +Adding coverage:DECCiphers.pas (DECCiphers) 3134 +Clearing BreakPoint at 004E58F7 +De-Activate DECCiphers.pas line 3134 BreakPoint at:004E58F7 +Adding coverage:DECCiphers.pas (DECCiphers) 3135 +Clearing BreakPoint at 004E5901 +De-Activate DECCiphers.pas line 3135 BreakPoint at:004E5901 +Adding coverage:DECCiphers.pas (DECCiphers) 3136 +Clearing BreakPoint at 004E590B +De-Activate DECCiphers.pas line 3136 BreakPoint at:004E590B +Adding coverage:DECCiphers.pas (DECCiphers) 3137 +Clearing BreakPoint at 004E5912 +De-Activate DECCiphers.pas line 3137 BreakPoint at:004E5912 +Adding coverage:DECCiphers.pas (DECCiphers) 3138 +Clearing BreakPoint at 004E591B +De-Activate DECCiphers.pas line 3138 BreakPoint at:004E591B +Adding coverage:DECCiphers.pas (DECCiphers) 3139 +Clearing BreakPoint at 004E5924 +De-Activate DECCiphers.pas line 3139 BreakPoint at:004E5924 +Adding coverage:DECCiphers.pas (DECCiphers) 3140 +Clearing BreakPoint at 004E5930 +De-Activate DECCiphers.pas line 3140 BreakPoint at:004E5930 +Adding coverage:DECCiphers.pas (DECCiphers) 3143 +Clearing BreakPoint at 004E5938 +De-Activate DECCiphers.pas line 3143 BreakPoint at:004E5938 +Adding coverage:DECCiphers.pas (DECCiphers) 3147 +Clearing BreakPoint at 004E5947 +De-Activate DECCiphers.pas line 3147 BreakPoint at:004E5947 +Adding coverage:DECCiphers.pas (DECCiphers) 3149 +Clearing BreakPoint at 004E5951 +De-Activate DECCiphers.pas line 3149 BreakPoint at:004E5951 +Adding coverage:DECCiphers.pas (DECCiphers) 3150 +Clearing BreakPoint at 004E5963 +De-Activate DECCiphers.pas line 3150 BreakPoint at:004E5963 +Adding coverage:DECCiphers.pas (DECCiphers) 3151 +Clearing BreakPoint at 004E5974 +De-Activate DECCiphers.pas line 3151 BreakPoint at:004E5974 +Adding coverage:DECCiphers.pas (DECCiphers) 3152 +Clearing BreakPoint at 004E5CE5 +De-Activate DECCiphers.pas line 3152 BreakPoint at:004E5CE5 +Adding coverage:DECCiphers.pas (DECCiphers) 3154 +Clearing BreakPoint at 004E5DD0 +De-Activate DECCiphers.pas line 3154 BreakPoint at:004E5DD0 +Adding coverage:DECCiphers.pas (DECCiphers) 3155 +Clearing BreakPoint at 004E5DDE +De-Activate DECCiphers.pas line 3155 BreakPoint at:004E5DDE +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4E15 +Exact line:DECCipherBase line 951 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D5119 +After line:DECCipherBase line 1015 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050C11A +Exact line:TestDECCipher line 4695 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050C820 +Exact line:TestDECCipher line 4789 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 3164 +Clearing BreakPoint at 004E5DE4 +De-Activate DECCiphers.pas line 3164 BreakPoint at:004E5DE4 +Adding coverage:DECCiphers.pas (DECCiphers) 3165 +Clearing BreakPoint at 004E5DF0 +De-Activate DECCiphers.pas line 3165 BreakPoint at:004E5DF0 +Adding coverage:DECCiphers.pas (DECCiphers) 3166 +Clearing BreakPoint at 004E5DF9 +De-Activate DECCiphers.pas line 3166 BreakPoint at:004E5DF9 +Adding coverage:DECCiphers.pas (DECCiphers) 3167 +Clearing BreakPoint at 004E5E03 +De-Activate DECCiphers.pas line 3167 BreakPoint at:004E5E03 +Adding coverage:DECCiphers.pas (DECCiphers) 3168 +Clearing BreakPoint at 004E5E0D +De-Activate DECCiphers.pas line 3168 BreakPoint at:004E5E0D +Adding coverage:DECCiphers.pas (DECCiphers) 3169 +Clearing BreakPoint at 004E5E17 +De-Activate DECCiphers.pas line 3169 BreakPoint at:004E5E17 +Adding coverage:DECCiphers.pas (DECCiphers) 3170 +Clearing BreakPoint at 004E5E1E +De-Activate DECCiphers.pas line 3170 BreakPoint at:004E5E1E +Adding coverage:DECCiphers.pas (DECCiphers) 3171 +Clearing BreakPoint at 004E5E27 +De-Activate DECCiphers.pas line 3171 BreakPoint at:004E5E27 +Adding coverage:DECCiphers.pas (DECCiphers) 3172 +Clearing BreakPoint at 004E5E30 +De-Activate DECCiphers.pas line 3172 BreakPoint at:004E5E30 +Adding coverage:DECCiphers.pas (DECCiphers) 3173 +Clearing BreakPoint at 004E5E3C +De-Activate DECCiphers.pas line 3173 BreakPoint at:004E5E3C +Adding coverage:DECCiphers.pas (DECCiphers) 3176 +Clearing BreakPoint at 004E5E44 +De-Activate DECCiphers.pas line 3176 BreakPoint at:004E5E44 +Adding coverage:DECCiphers.pas (DECCiphers) 3180 +Clearing BreakPoint at 004E5E53 +De-Activate DECCiphers.pas line 3180 BreakPoint at:004E5E53 +Adding coverage:DECCiphers.pas (DECCiphers) 3182 +Clearing BreakPoint at 004E5E5D +De-Activate DECCiphers.pas line 3182 BreakPoint at:004E5E5D +Adding coverage:DECCiphers.pas (DECCiphers) 3183 +Clearing BreakPoint at 004E5E6F +De-Activate DECCiphers.pas line 3183 BreakPoint at:004E5E6F +Adding coverage:DECCiphers.pas (DECCiphers) 3184 +Clearing BreakPoint at 004E5E80 +De-Activate DECCiphers.pas line 3184 BreakPoint at:004E5E80 +Adding coverage:DECCiphers.pas (DECCiphers) 3185 +Clearing BreakPoint at 004E61F1 +De-Activate DECCiphers.pas line 3185 BreakPoint at:004E61F1 +Adding coverage:DECCiphers.pas (DECCiphers) 3187 +Clearing BreakPoint at 004E62DC +De-Activate DECCiphers.pas line 3187 BreakPoint at:004E62DC +Adding coverage:DECCiphers.pas (DECCiphers) 3188 +Clearing BreakPoint at 004E62EA +De-Activate DECCiphers.pas line 3188 BreakPoint at:004E62EA +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4E15 +Exact line:DECCipherBase line 951 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D5119 +After line:DECCipherBase line 1015 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050C87A +Exact line:TestDECCipher line 4806 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050CFA0 +Exact line:TestDECCipher line 4901 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4D31 +After line:DECCipherBase line 931 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050B3A8 +After line:TestDECCipher line 4510 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050B458 +Exact line:TestDECCipher line 4516 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 3193 +Clearing BreakPoint at 004E62F0 +De-Activate DECCiphers.pas line 3193 BreakPoint at:004E62F0 +Adding coverage:DECCiphers.pas (DECCiphers) 3194 +Clearing BreakPoint at 004E62FC +De-Activate DECCiphers.pas line 3194 BreakPoint at:004E62FC +Adding coverage:DECCiphers.pas (DECCiphers) 3195 +Clearing BreakPoint at 004E6305 +De-Activate DECCiphers.pas line 3195 BreakPoint at:004E6305 +Adding coverage:DECCiphers.pas (DECCiphers) 3196 +Clearing BreakPoint at 004E630F +De-Activate DECCiphers.pas line 3196 BreakPoint at:004E630F +Adding coverage:DECCiphers.pas (DECCiphers) 3197 +Clearing BreakPoint at 004E6319 +De-Activate DECCiphers.pas line 3197 BreakPoint at:004E6319 +Adding coverage:DECCiphers.pas (DECCiphers) 3198 +Clearing BreakPoint at 004E6323 +De-Activate DECCiphers.pas line 3198 BreakPoint at:004E6323 +Adding coverage:DECCiphers.pas (DECCiphers) 3199 +Clearing BreakPoint at 004E632A +De-Activate DECCiphers.pas line 3199 BreakPoint at:004E632A +Adding coverage:DECCiphers.pas (DECCiphers) 3200 +Clearing BreakPoint at 004E6333 +De-Activate DECCiphers.pas line 3200 BreakPoint at:004E6333 +Adding coverage:DECCiphers.pas (DECCiphers) 3201 +Clearing BreakPoint at 004E633C +De-Activate DECCiphers.pas line 3201 BreakPoint at:004E633C +Adding coverage:DECCiphers.pas (DECCiphers) 3202 +Clearing BreakPoint at 004E6348 +De-Activate DECCiphers.pas line 3202 BreakPoint at:004E6348 +Adding coverage:DECCiphers.pas (DECCiphers) 3212 +Clearing BreakPoint at 004E6350 +De-Activate DECCiphers.pas line 3212 BreakPoint at:004E6350 +Adding coverage:DECCiphers.pas (DECCiphers) 3213 +Clearing BreakPoint at 004E6361 +De-Activate DECCiphers.pas line 3213 BreakPoint at:004E6361 +Adding coverage:DECCiphers.pas (DECCiphers) 3214 +Clearing BreakPoint at 004E636A +De-Activate DECCiphers.pas line 3214 BreakPoint at:004E636A +Adding coverage:DECCiphers.pas (DECCiphers) 3215 +Clearing BreakPoint at 004E637A +De-Activate DECCiphers.pas line 3215 BreakPoint at:004E637A +Adding coverage:DECCiphers.pas (DECCiphers) 3217 +Clearing BreakPoint at 004E6388 +De-Activate DECCiphers.pas line 3217 BreakPoint at:004E6388 +Adding coverage:DECCiphers.pas (DECCiphers) 3219 +Clearing BreakPoint at 004E638F +De-Activate DECCiphers.pas line 3219 BreakPoint at:004E638F +Adding coverage:DECCiphers.pas (DECCiphers) 3220 +Clearing BreakPoint at 004E639E +De-Activate DECCiphers.pas line 3220 BreakPoint at:004E639E +Adding coverage:DECCiphers.pas (DECCiphers) 3221 +Clearing BreakPoint at 004E63AF +De-Activate DECCiphers.pas line 3221 BreakPoint at:004E63AF +Adding coverage:DECCiphers.pas (DECCiphers) 3222 +Clearing BreakPoint at 004E63D6 +De-Activate DECCiphers.pas line 3222 BreakPoint at:004E63D6 +Adding coverage:DECCiphers.pas (DECCiphers) 3223 +Clearing BreakPoint at 004E63F9 +De-Activate DECCiphers.pas line 3223 BreakPoint at:004E63F9 +Adding coverage:DECCiphers.pas (DECCiphers) 3224 +Clearing BreakPoint at 004E641D +De-Activate DECCiphers.pas line 3224 BreakPoint at:004E641D +Adding coverage:DECCiphers.pas (DECCiphers) 3226 +Clearing BreakPoint at 004E6441 +De-Activate DECCiphers.pas line 3226 BreakPoint at:004E6441 +Adding coverage:DECCiphers.pas (DECCiphers) 3227 +Clearing BreakPoint at 004E645C +De-Activate DECCiphers.pas line 3227 BreakPoint at:004E645C +Adding coverage:DECCiphers.pas (DECCiphers) 3228 +Clearing BreakPoint at 004E6479 +De-Activate DECCiphers.pas line 3228 BreakPoint at:004E6479 +Adding coverage:DECCiphers.pas (DECCiphers) 3229 +Clearing BreakPoint at 004E6496 +De-Activate DECCiphers.pas line 3229 BreakPoint at:004E6496 +Adding coverage:DECCiphers.pas (DECCiphers) 3231 +Clearing BreakPoint at 004E64B3 +De-Activate DECCiphers.pas line 3231 BreakPoint at:004E64B3 +Adding coverage:DECCiphers.pas (DECCiphers) 3233 +Clearing BreakPoint at 004E64B8 +De-Activate DECCiphers.pas line 3233 BreakPoint at:004E64B8 +Adding coverage:DECCiphers.pas (DECCiphers) 3234 +Clearing BreakPoint at 004E64CD +De-Activate DECCiphers.pas line 3234 BreakPoint at:004E64CD +Adding coverage:DECCiphers.pas (DECCiphers) 3235 +Clearing BreakPoint at 004E64E1 +De-Activate DECCiphers.pas line 3235 BreakPoint at:004E64E1 +Adding coverage:DECCiphers.pas (DECCiphers) 3236 +Clearing BreakPoint at 004E64F8 +De-Activate DECCiphers.pas line 3236 BreakPoint at:004E64F8 +Adding coverage:DECCiphers.pas (DECCiphers) 3237 +Clearing BreakPoint at 004E6509 +De-Activate DECCiphers.pas line 3237 BreakPoint at:004E6509 +Adding coverage:DECCiphers.pas (DECCiphers) 3238 +Clearing BreakPoint at 004E650F +De-Activate DECCiphers.pas line 3238 BreakPoint at:004E650F +Adding coverage:DECCiphers.pas (DECCiphers) 3239 +Clearing BreakPoint at 004E6526 +De-Activate DECCiphers.pas line 3239 BreakPoint at:004E6526 +Adding coverage:DECCiphers.pas (DECCiphers) 3240 +Clearing BreakPoint at 004E6537 +De-Activate DECCiphers.pas line 3240 BreakPoint at:004E6537 +Adding coverage:DECCiphers.pas (DECCiphers) 3241 +Clearing BreakPoint at 004E653D +De-Activate DECCiphers.pas line 3241 BreakPoint at:004E653D +Adding coverage:DECCiphers.pas (DECCiphers) 3242 +Clearing BreakPoint at 004E654F +De-Activate DECCiphers.pas line 3242 BreakPoint at:004E654F +Adding coverage:DECCiphers.pas (DECCiphers) 3243 +Clearing BreakPoint at 004E6560 +De-Activate DECCiphers.pas line 3243 BreakPoint at:004E6560 +Adding coverage:DECCiphers.pas (DECCiphers) 3244 +Clearing BreakPoint at 004E6566 +De-Activate DECCiphers.pas line 3244 BreakPoint at:004E6566 +Adding coverage:DECCiphers.pas (DECCiphers) 3245 +Clearing BreakPoint at 004E657B +De-Activate DECCiphers.pas line 3245 BreakPoint at:004E657B +Adding coverage:DECCiphers.pas (DECCiphers) 3231 +Clearing BreakPoint at 004E657E +De-Activate DECCiphers.pas line 3231 BreakPoint at:004E657E +Adding coverage:DECCiphers.pas (DECCiphers) 3246 +Clearing BreakPoint at 004E6588 +De-Activate DECCiphers.pas line 3246 BreakPoint at:004E6588 +Adding coverage:DECCiphers.pas (DECCiphers) 3217 +Clearing BreakPoint at 004E658B +De-Activate DECCiphers.pas line 3217 BreakPoint at:004E658B +Adding coverage:DECCiphers.pas (DECCiphers) 3248 +Clearing BreakPoint at 004E6595 +De-Activate DECCiphers.pas line 3248 BreakPoint at:004E6595 +Adding coverage:DECCiphers.pas (DECCiphers) 3251 +Clearing BreakPoint at 004E65A5 +De-Activate DECCiphers.pas line 3251 BreakPoint at:004E65A5 +Adding coverage:DECCiphers.pas (DECCiphers) 3259 +Clearing BreakPoint at 004E65AC +De-Activate DECCiphers.pas line 3259 BreakPoint at:004E65AC +Adding coverage:DECCiphers.pas (DECCiphers) 3260 +Clearing BreakPoint at 004E65BB +De-Activate DECCiphers.pas line 3260 BreakPoint at:004E65BB +Adding coverage:DECCiphers.pas (DECCiphers) 3261 +Clearing BreakPoint at 004E65C4 +De-Activate DECCiphers.pas line 3261 BreakPoint at:004E65C4 +Adding coverage:DECCiphers.pas (DECCiphers) 3262 +Clearing BreakPoint at 004E65D1 +De-Activate DECCiphers.pas line 3262 BreakPoint at:004E65D1 +Adding coverage:DECCiphers.pas (DECCiphers) 3263 +Clearing BreakPoint at 004E65E0 +De-Activate DECCiphers.pas line 3263 BreakPoint at:004E65E0 +Adding coverage:DECCiphers.pas (DECCiphers) 3264 +Clearing BreakPoint at 004E65EF +De-Activate DECCiphers.pas line 3264 BreakPoint at:004E65EF +Adding coverage:DECCiphers.pas (DECCiphers) 3265 +Clearing BreakPoint at 004E65FE +De-Activate DECCiphers.pas line 3265 BreakPoint at:004E65FE +Adding coverage:DECCiphers.pas (DECCiphers) 3267 +Clearing BreakPoint at 004E6607 +De-Activate DECCiphers.pas line 3267 BreakPoint at:004E6607 +Adding coverage:DECCiphers.pas (DECCiphers) 3269 +Clearing BreakPoint at 004E660C +De-Activate DECCiphers.pas line 3269 BreakPoint at:004E660C +Adding coverage:DECCiphers.pas (DECCiphers) 3273 +Clearing BreakPoint at 004E6667 +De-Activate DECCiphers.pas line 3273 BreakPoint at:004E6667 +Adding coverage:DECCiphers.pas (DECCiphers) 3277 +Clearing BreakPoint at 004E66CF +De-Activate DECCiphers.pas line 3277 BreakPoint at:004E66CF +Adding coverage:DECCiphers.pas (DECCiphers) 3281 +Clearing BreakPoint at 004E6737 +De-Activate DECCiphers.pas line 3281 BreakPoint at:004E6737 +Adding coverage:DECCiphers.pas (DECCiphers) 3286 +Clearing BreakPoint at 004E6788 +De-Activate DECCiphers.pas line 3286 BreakPoint at:004E6788 +Adding coverage:DECCiphers.pas (DECCiphers) 3288 +Clearing BreakPoint at 004E679A +De-Activate DECCiphers.pas line 3288 BreakPoint at:004E679A +Adding coverage:DECCiphers.pas (DECCiphers) 3289 +Clearing BreakPoint at 004E67A3 +De-Activate DECCiphers.pas line 3289 BreakPoint at:004E67A3 +Adding coverage:DECCiphers.pas (DECCiphers) 3267 +Clearing BreakPoint at 004E67A6 +De-Activate DECCiphers.pas line 3267 BreakPoint at:004E67A6 +Adding coverage:DECCiphers.pas (DECCiphers) 3291 +Clearing BreakPoint at 004E67B0 +De-Activate DECCiphers.pas line 3291 BreakPoint at:004E67B0 +Adding coverage:DECCiphers.pas (DECCiphers) 3295 +Clearing BreakPoint at 004E6814 +De-Activate DECCiphers.pas line 3295 BreakPoint at:004E6814 +Adding coverage:DECCiphers.pas (DECCiphers) 3299 +Clearing BreakPoint at 004E6886 +De-Activate DECCiphers.pas line 3299 BreakPoint at:004E6886 +Adding coverage:DECCiphers.pas (DECCiphers) 3303 +Clearing BreakPoint at 004E68F8 +De-Activate DECCiphers.pas line 3303 BreakPoint at:004E68F8 +Adding coverage:DECCiphers.pas (DECCiphers) 3307 +Clearing BreakPoint at 004E6953 +De-Activate DECCiphers.pas line 3307 BreakPoint at:004E6953 +Adding coverage:DECCiphers.pas (DECCiphers) 3315 +Clearing BreakPoint at 004E695C +De-Activate DECCiphers.pas line 3315 BreakPoint at:004E695C +Adding coverage:DECCiphers.pas (DECCiphers) 3316 +Clearing BreakPoint at 004E696B +De-Activate DECCiphers.pas line 3316 BreakPoint at:004E696B +Adding coverage:DECCiphers.pas (DECCiphers) 3317 +Clearing BreakPoint at 004E6979 +De-Activate DECCiphers.pas line 3317 BreakPoint at:004E6979 +Adding coverage:DECCiphers.pas (DECCiphers) 3318 +Clearing BreakPoint at 004E6986 +De-Activate DECCiphers.pas line 3318 BreakPoint at:004E6986 +Adding coverage:DECCiphers.pas (DECCiphers) 3319 +Clearing BreakPoint at 004E6995 +De-Activate DECCiphers.pas line 3319 BreakPoint at:004E6995 +Adding coverage:DECCiphers.pas (DECCiphers) 3320 +Clearing BreakPoint at 004E69A4 +De-Activate DECCiphers.pas line 3320 BreakPoint at:004E69A4 +Adding coverage:DECCiphers.pas (DECCiphers) 3321 +Clearing BreakPoint at 004E69B3 +De-Activate DECCiphers.pas line 3321 BreakPoint at:004E69B3 +Adding coverage:DECCiphers.pas (DECCiphers) 3323 +Clearing BreakPoint at 004E69BC +De-Activate DECCiphers.pas line 3323 BreakPoint at:004E69BC +Adding coverage:DECCiphers.pas (DECCiphers) 3325 +Clearing BreakPoint at 004E69C1 +De-Activate DECCiphers.pas line 3325 BreakPoint at:004E69C1 +Adding coverage:DECCiphers.pas (DECCiphers) 3329 +Clearing BreakPoint at 004E6A1C +De-Activate DECCiphers.pas line 3329 BreakPoint at:004E6A1C +Adding coverage:DECCiphers.pas (DECCiphers) 3333 +Clearing BreakPoint at 004E6A84 +De-Activate DECCiphers.pas line 3333 BreakPoint at:004E6A84 +Adding coverage:DECCiphers.pas (DECCiphers) 3337 +Clearing BreakPoint at 004E6AEC +De-Activate DECCiphers.pas line 3337 BreakPoint at:004E6AEC +Adding coverage:DECCiphers.pas (DECCiphers) 3342 +Clearing BreakPoint at 004E6B3D +De-Activate DECCiphers.pas line 3342 BreakPoint at:004E6B3D +Adding coverage:DECCiphers.pas (DECCiphers) 3343 +Clearing BreakPoint at 004E6B4F +De-Activate DECCiphers.pas line 3343 BreakPoint at:004E6B4F +Adding coverage:DECCiphers.pas (DECCiphers) 3344 +Clearing BreakPoint at 004E6B58 +De-Activate DECCiphers.pas line 3344 BreakPoint at:004E6B58 +Adding coverage:DECCiphers.pas (DECCiphers) 3323 +Clearing BreakPoint at 004E6B5B +De-Activate DECCiphers.pas line 3323 BreakPoint at:004E6B5B +Adding coverage:DECCiphers.pas (DECCiphers) 3346 +Clearing BreakPoint at 004E6B65 +De-Activate DECCiphers.pas line 3346 BreakPoint at:004E6B65 +Adding coverage:DECCiphers.pas (DECCiphers) 3350 +Clearing BreakPoint at 004E6BC9 +De-Activate DECCiphers.pas line 3350 BreakPoint at:004E6BC9 +Adding coverage:DECCiphers.pas (DECCiphers) 3354 +Clearing BreakPoint at 004E6C3B +De-Activate DECCiphers.pas line 3354 BreakPoint at:004E6C3B +Adding coverage:DECCiphers.pas (DECCiphers) 3358 +Clearing BreakPoint at 004E6CAD +De-Activate DECCiphers.pas line 3358 BreakPoint at:004E6CAD +Adding coverage:DECCiphers.pas (DECCiphers) 3362 +Clearing BreakPoint at 004E6D08 +De-Activate DECCiphers.pas line 3362 BreakPoint at:004E6D08 +Adding coverage:DECCiphers.pas (DECCiphers) 3367 +Clearing BreakPoint at 004E6D10 +De-Activate DECCiphers.pas line 3367 BreakPoint at:004E6D10 +Adding coverage:DECCiphers.pas (DECCiphers) 3368 +Clearing BreakPoint at 004E6D1C +De-Activate DECCiphers.pas line 3368 BreakPoint at:004E6D1C +Adding coverage:DECCiphers.pas (DECCiphers) 3369 +Clearing BreakPoint at 004E6D25 +De-Activate DECCiphers.pas line 3369 BreakPoint at:004E6D25 +Adding coverage:DECCiphers.pas (DECCiphers) 3370 +Clearing BreakPoint at 004E6D2F +De-Activate DECCiphers.pas line 3370 BreakPoint at:004E6D2F +Adding coverage:DECCiphers.pas (DECCiphers) 3371 +Clearing BreakPoint at 004E6D39 +De-Activate DECCiphers.pas line 3371 BreakPoint at:004E6D39 +Adding coverage:DECCiphers.pas (DECCiphers) 3372 +Clearing BreakPoint at 004E6D43 +De-Activate DECCiphers.pas line 3372 BreakPoint at:004E6D43 +Adding coverage:DECCiphers.pas (DECCiphers) 3373 +Clearing BreakPoint at 004E6D4A +De-Activate DECCiphers.pas line 3373 BreakPoint at:004E6D4A +Adding coverage:DECCiphers.pas (DECCiphers) 3374 +Clearing BreakPoint at 004E6D53 +De-Activate DECCiphers.pas line 3374 BreakPoint at:004E6D53 +Adding coverage:DECCiphers.pas (DECCiphers) 3375 +Clearing BreakPoint at 004E6D5C +De-Activate DECCiphers.pas line 3375 BreakPoint at:004E6D5C +Adding coverage:DECCiphers.pas (DECCiphers) 3376 +Clearing BreakPoint at 004E6D68 +De-Activate DECCiphers.pas line 3376 BreakPoint at:004E6D68 +Adding coverage:DECCiphers.pas (DECCiphers) 3445 +Clearing BreakPoint at 004E6FA0 +De-Activate DECCiphers.pas line 3445 BreakPoint at:004E6FA0 +Adding coverage:DECCiphers.pas (DECCiphers) 3446 +Clearing BreakPoint at 004E6FAF +De-Activate DECCiphers.pas line 3446 BreakPoint at:004E6FAF +Adding coverage:DECCiphers.pas (DECCiphers) 3447 +Clearing BreakPoint at 004E6FBE +De-Activate DECCiphers.pas line 3447 BreakPoint at:004E6FBE +Adding coverage:DECCiphers.pas (DECCiphers) 3448 +Clearing BreakPoint at 004E6FCD +De-Activate DECCiphers.pas line 3448 BreakPoint at:004E6FCD +Adding coverage:DECCiphers.pas (DECCiphers) 3449 +Clearing BreakPoint at 004E6FD9 +De-Activate DECCiphers.pas line 3449 BreakPoint at:004E6FD9 +Adding coverage:DECCiphers.pas (DECCiphers) 3389 +Clearing BreakPoint at 004E6D70 +De-Activate DECCiphers.pas line 3389 BreakPoint at:004E6D70 +Adding coverage:DECCiphers.pas (DECCiphers) 3390 +Clearing BreakPoint at 004E6D76 +De-Activate DECCiphers.pas line 3390 BreakPoint at:004E6D76 +Adding coverage:DECCiphers.pas (DECCiphers) 3391 +Clearing BreakPoint at 004E6D7D +De-Activate DECCiphers.pas line 3391 BreakPoint at:004E6D7D +Adding coverage:DECCiphers.pas (DECCiphers) 3392 +Clearing BreakPoint at 004E6D86 +De-Activate DECCiphers.pas line 3392 BreakPoint at:004E6D86 +Adding coverage:DECCiphers.pas (DECCiphers) 3393 +Clearing BreakPoint at 004E6D9A +De-Activate DECCiphers.pas line 3393 BreakPoint at:004E6D9A +Adding coverage:DECCiphers.pas (DECCiphers) 3394 +Clearing BreakPoint at 004E6DA8 +De-Activate DECCiphers.pas line 3394 BreakPoint at:004E6DA8 +Adding coverage:DECCiphers.pas (DECCiphers) 3393 +Clearing BreakPoint at 004E6DD3 +De-Activate DECCiphers.pas line 3393 BreakPoint at:004E6DD3 +Adding coverage:DECCiphers.pas (DECCiphers) 3395 +Clearing BreakPoint at 004E6DD9 +De-Activate DECCiphers.pas line 3395 BreakPoint at:004E6DD9 +Adding coverage:DECCiphers.pas (DECCiphers) 3396 +Clearing BreakPoint at 004E6DDE +De-Activate DECCiphers.pas line 3396 BreakPoint at:004E6DDE +Adding coverage:DECCiphers.pas (DECCiphers) 3400 +Clearing BreakPoint at 004E6DF9 +De-Activate DECCiphers.pas line 3400 BreakPoint at:004E6DF9 +Adding coverage:DECCiphers.pas (DECCiphers) 3395 +Clearing BreakPoint at 004E6DFC +De-Activate DECCiphers.pas line 3395 BreakPoint at:004E6DFC +Adding coverage:DECCiphers.pas (DECCiphers) 3401 +Clearing BreakPoint at 004E6E02 +De-Activate DECCiphers.pas line 3401 BreakPoint at:004E6E02 +Adding coverage:DECCiphers.pas (DECCiphers) 3450 +Clearing BreakPoint at 004E6FE0 +De-Activate DECCiphers.pas line 3450 BreakPoint at:004E6FE0 +Adding coverage:DECCiphers.pas (DECCiphers) 3451 +Clearing BreakPoint at 004E6FE5 +De-Activate DECCiphers.pas line 3451 BreakPoint at:004E6FE5 +Adding coverage:DECCiphers.pas (DECCiphers) 3409 +Clearing BreakPoint at 004E6E08 +De-Activate DECCiphers.pas line 3409 BreakPoint at:004E6E08 +Adding coverage:DECCiphers.pas (DECCiphers) 3410 +Clearing BreakPoint at 004E6E11 +De-Activate DECCiphers.pas line 3410 BreakPoint at:004E6E11 +Adding coverage:DECCiphers.pas (DECCiphers) 3411 +Clearing BreakPoint at 004E6E16 +De-Activate DECCiphers.pas line 3411 BreakPoint at:004E6E16 +Adding coverage:DECCiphers.pas (DECCiphers) 3412 +Clearing BreakPoint at 004E6E1B +De-Activate DECCiphers.pas line 3412 BreakPoint at:004E6E1B +Adding coverage:DECCiphers.pas (DECCiphers) 3414 +Clearing BreakPoint at 004E6E25 +De-Activate DECCiphers.pas line 3414 BreakPoint at:004E6E25 +Adding coverage:DECCiphers.pas (DECCiphers) 3415 +Clearing BreakPoint at 004E6E35 +De-Activate DECCiphers.pas line 3415 BreakPoint at:004E6E35 +Adding coverage:DECCiphers.pas (DECCiphers) 3416 +Clearing BreakPoint at 004E6E3E +De-Activate DECCiphers.pas line 3416 BreakPoint at:004E6E3E +Adding coverage:DECCiphers.pas (DECCiphers) 3417 +Clearing BreakPoint at 004E6E47 +De-Activate DECCiphers.pas line 3417 BreakPoint at:004E6E47 +Adding coverage:DECCiphers.pas (DECCiphers) 3418 +Clearing BreakPoint at 004E6E50 +De-Activate DECCiphers.pas line 3418 BreakPoint at:004E6E50 +Adding coverage:DECCiphers.pas (DECCiphers) 3422 +Clearing BreakPoint at 004E6E95 +De-Activate DECCiphers.pas line 3422 BreakPoint at:004E6E95 +Adding coverage:DECCiphers.pas (DECCiphers) 3423 +Clearing BreakPoint at 004E6EA7 +De-Activate DECCiphers.pas line 3423 BreakPoint at:004E6EA7 +Adding coverage:DECCiphers.pas (DECCiphers) 3424 +Clearing BreakPoint at 004E6EB0 +De-Activate DECCiphers.pas line 3424 BreakPoint at:004E6EB0 +Adding coverage:DECCiphers.pas (DECCiphers) 3425 +Clearing BreakPoint at 004E6EB9 +De-Activate DECCiphers.pas line 3425 BreakPoint at:004E6EB9 +Adding coverage:DECCiphers.pas (DECCiphers) 3426 +Clearing BreakPoint at 004E6EC2 +De-Activate DECCiphers.pas line 3426 BreakPoint at:004E6EC2 +Adding coverage:DECCiphers.pas (DECCiphers) 3430 +Clearing BreakPoint at 004E6F07 +De-Activate DECCiphers.pas line 3430 BreakPoint at:004E6F07 +Adding coverage:DECCiphers.pas (DECCiphers) 3431 +Clearing BreakPoint at 004E6F21 +De-Activate DECCiphers.pas line 3431 BreakPoint at:004E6F21 +Adding coverage:DECCiphers.pas (DECCiphers) 3432 +Clearing BreakPoint at 004E6F38 +De-Activate DECCiphers.pas line 3432 BreakPoint at:004E6F38 +Adding coverage:DECCiphers.pas (DECCiphers) 3433 +Clearing BreakPoint at 004E6F3B +De-Activate DECCiphers.pas line 3433 BreakPoint at:004E6F3B +Adding coverage:DECCiphers.pas (DECCiphers) 3412 +Clearing BreakPoint at 004E6F3F +De-Activate DECCiphers.pas line 3412 BreakPoint at:004E6F3F +Adding coverage:DECCiphers.pas (DECCiphers) 3435 +Clearing BreakPoint at 004E6F49 +De-Activate DECCiphers.pas line 3435 BreakPoint at:004E6F49 +Adding coverage:DECCiphers.pas (DECCiphers) 3436 +Clearing BreakPoint at 004E6F5D +De-Activate DECCiphers.pas line 3436 BreakPoint at:004E6F5D +Adding coverage:DECCiphers.pas (DECCiphers) 3437 +Clearing BreakPoint at 004E6F71 +De-Activate DECCiphers.pas line 3437 BreakPoint at:004E6F71 +Adding coverage:DECCiphers.pas (DECCiphers) 3438 +Clearing BreakPoint at 004E6F85 +De-Activate DECCiphers.pas line 3438 BreakPoint at:004E6F85 +Adding coverage:DECCiphers.pas (DECCiphers) 3439 +Clearing BreakPoint at 004E6F99 +De-Activate DECCiphers.pas line 3439 BreakPoint at:004E6F99 +Adding coverage:DECCiphers.pas (DECCiphers) 3450 +Clearing BreakPoint at 004E6FF2 +De-Activate DECCiphers.pas line 3450 BreakPoint at:004E6FF2 +Adding coverage:DECCiphers.pas (DECCiphers) 3452 +Clearing BreakPoint at 004E6FF8 +De-Activate DECCiphers.pas line 3452 BreakPoint at:004E6FF8 +Adding coverage:DECCiphers.pas (DECCiphers) 3454 +Clearing BreakPoint at 004E6FFD +De-Activate DECCiphers.pas line 3454 BreakPoint at:004E6FFD +Adding coverage:DECCiphers.pas (DECCiphers) 3455 +Clearing BreakPoint at 004E7002 +De-Activate DECCiphers.pas line 3455 BreakPoint at:004E7002 +Adding coverage:DECCiphers.pas (DECCiphers) 3454 +Clearing BreakPoint at 004E7020 +De-Activate DECCiphers.pas line 3454 BreakPoint at:004E7020 +Adding coverage:DECCiphers.pas (DECCiphers) 3456 +Clearing BreakPoint at 004E7026 +De-Activate DECCiphers.pas line 3456 BreakPoint at:004E7026 +Adding coverage:DECCiphers.pas (DECCiphers) 3457 +Clearing BreakPoint at 004E7030 +De-Activate DECCiphers.pas line 3457 BreakPoint at:004E7030 +Adding coverage:DECCiphers.pas (DECCiphers) 3452 +Clearing BreakPoint at 004E7033 +De-Activate DECCiphers.pas line 3452 BreakPoint at:004E7033 +Adding coverage:DECCiphers.pas (DECCiphers) 3458 +Clearing BreakPoint at 004E7039 +De-Activate DECCiphers.pas line 3458 BreakPoint at:004E7039 +Adding coverage:DECCiphers.pas (DECCiphers) 3459 +Clearing BreakPoint at 004E7043 +De-Activate DECCiphers.pas line 3459 BreakPoint at:004E7043 +Adding coverage:DECCiphers.pas (DECCiphers) 3460 +Clearing BreakPoint at 004E704C +De-Activate DECCiphers.pas line 3460 BreakPoint at:004E704C +Adding coverage:DECCiphers.pas (DECCiphers) 3461 +Clearing BreakPoint at 004E7056 +De-Activate DECCiphers.pas line 3461 BreakPoint at:004E7056 +Adding coverage:DECCiphers.pas (DECCiphers) 3462 +Clearing BreakPoint at 004E705F +De-Activate DECCiphers.pas line 3462 BreakPoint at:004E705F +Adding coverage:DECCiphers.pas (DECCiphers) 3463 +Clearing BreakPoint at 004E706F +De-Activate DECCiphers.pas line 3463 BreakPoint at:004E706F +Adding coverage:DECCiphers.pas (DECCiphers) 3464 +Clearing BreakPoint at 004E7080 +De-Activate DECCiphers.pas line 3464 BreakPoint at:004E7080 +Adding coverage:DECCiphers.pas (DECCiphers) 3465 +Clearing BreakPoint at 004E7091 +De-Activate DECCiphers.pas line 3465 BreakPoint at:004E7091 +Adding coverage:DECCiphers.pas (DECCiphers) 3468 +Clearing BreakPoint at 004E709E +De-Activate DECCiphers.pas line 3468 BreakPoint at:004E709E +Adding coverage:DECCiphers.pas (DECCiphers) 3476 +Clearing BreakPoint at 004E70A4 +De-Activate DECCiphers.pas line 3476 BreakPoint at:004E70A4 +Adding coverage:DECCiphers.pas (DECCiphers) 3477 +Clearing BreakPoint at 004E70B3 +De-Activate DECCiphers.pas line 3477 BreakPoint at:004E70B3 +Adding coverage:DECCiphers.pas (DECCiphers) 3478 +Clearing BreakPoint at 004E70BC +De-Activate DECCiphers.pas line 3478 BreakPoint at:004E70BC +Adding coverage:DECCiphers.pas (DECCiphers) 3479 +Clearing BreakPoint at 004E70C4 +De-Activate DECCiphers.pas line 3479 BreakPoint at:004E70C4 +Adding coverage:DECCiphers.pas (DECCiphers) 3480 +Clearing BreakPoint at 004E70CD +De-Activate DECCiphers.pas line 3480 BreakPoint at:004E70CD +Adding coverage:DECCiphers.pas (DECCiphers) 3481 +Clearing BreakPoint at 004E70D6 +De-Activate DECCiphers.pas line 3481 BreakPoint at:004E70D6 +Adding coverage:DECCiphers.pas (DECCiphers) 3483 +Clearing BreakPoint at 004E70F7 +De-Activate DECCiphers.pas line 3483 BreakPoint at:004E70F7 +Adding coverage:DECCiphers.pas (DECCiphers) 3484 +Clearing BreakPoint at 004E7112 +De-Activate DECCiphers.pas line 3484 BreakPoint at:004E7112 +Adding coverage:DECCiphers.pas (DECCiphers) 3485 +Clearing BreakPoint at 004E7127 +De-Activate DECCiphers.pas line 3485 BreakPoint at:004E7127 +Adding coverage:DECCiphers.pas (DECCiphers) 3486 +Clearing BreakPoint at 004E713F +De-Activate DECCiphers.pas line 3486 BreakPoint at:004E713F +Adding coverage:DECCiphers.pas (DECCiphers) 3487 +Clearing BreakPoint at 004E7154 +De-Activate DECCiphers.pas line 3487 BreakPoint at:004E7154 +Adding coverage:DECCiphers.pas (DECCiphers) 3488 +Clearing BreakPoint at 004E7169 +De-Activate DECCiphers.pas line 3488 BreakPoint at:004E7169 +Adding coverage:DECCiphers.pas (DECCiphers) 3489 +Clearing BreakPoint at 004E716F +De-Activate DECCiphers.pas line 3489 BreakPoint at:004E716F +Adding coverage:DECCiphers.pas (DECCiphers) 3481 +Clearing BreakPoint at 004E7172 +De-Activate DECCiphers.pas line 3481 BreakPoint at:004E7172 +Adding coverage:DECCiphers.pas (DECCiphers) 3490 +Clearing BreakPoint at 004E7177 +De-Activate DECCiphers.pas line 3490 BreakPoint at:004E7177 +Adding coverage:DECCiphers.pas (DECCiphers) 3491 +Clearing BreakPoint at 004E7181 +De-Activate DECCiphers.pas line 3491 BreakPoint at:004E7181 +Adding coverage:DECCiphers.pas (DECCiphers) 3492 +Clearing BreakPoint at 004E718C +De-Activate DECCiphers.pas line 3492 BreakPoint at:004E718C +Adding coverage:DECCiphers.pas (DECCiphers) 3493 +Clearing BreakPoint at 004E7195 +De-Activate DECCiphers.pas line 3493 BreakPoint at:004E7195 +Adding coverage:DECCipherModes.pas (DECCipherModes) 545 +Clearing BreakPoint at 004D7AF0 +De-Activate DECCipherModes.pas line 545 BreakPoint at:004D7AF0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 547 +Clearing BreakPoint at 004D7B06 +De-Activate DECCipherModes.pas line 547 BreakPoint at:004D7B06 +Adding coverage:DECCipherModes.pas (DECCipherModes) 548 +Clearing BreakPoint at 004D7B3B +De-Activate DECCipherModes.pas line 548 BreakPoint at:004D7B3B +Adding coverage:DECCiphers.pas (DECCiphers) 3398 +Clearing BreakPoint at 004E6DEA +De-Activate DECCiphers.pas line 3398 BreakPoint at:004E6DEA +Adding coverage:DECCiphers.pas (DECCiphers) 3399 +Clearing BreakPoint at 004E6DF6 +De-Activate DECCiphers.pas line 3399 BreakPoint at:004E6DF6 +Adding coverage:DECCiphers.pas (DECCiphers) 3501 +Clearing BreakPoint at 004E719C +De-Activate DECCiphers.pas line 3501 BreakPoint at:004E719C +Adding coverage:DECCiphers.pas (DECCiphers) 3502 +Clearing BreakPoint at 004E71AB +De-Activate DECCiphers.pas line 3502 BreakPoint at:004E71AB +Adding coverage:DECCiphers.pas (DECCiphers) 3503 +Clearing BreakPoint at 004E71B4 +De-Activate DECCiphers.pas line 3503 BreakPoint at:004E71B4 +Adding coverage:DECCiphers.pas (DECCiphers) 3504 +Clearing BreakPoint at 004E71BC +De-Activate DECCiphers.pas line 3504 BreakPoint at:004E71BC +Adding coverage:DECCiphers.pas (DECCiphers) 3505 +Clearing BreakPoint at 004E71C5 +De-Activate DECCiphers.pas line 3505 BreakPoint at:004E71C5 +Adding coverage:DECCiphers.pas (DECCiphers) 3506 +Clearing BreakPoint at 004E71CE +De-Activate DECCiphers.pas line 3506 BreakPoint at:004E71CE +Adding coverage:DECCiphers.pas (DECCiphers) 3508 +Clearing BreakPoint at 004E71EF +De-Activate DECCiphers.pas line 3508 BreakPoint at:004E71EF +Adding coverage:DECCiphers.pas (DECCiphers) 3509 +Clearing BreakPoint at 004E720A +De-Activate DECCiphers.pas line 3509 BreakPoint at:004E720A +Adding coverage:DECCiphers.pas (DECCiphers) 3510 +Clearing BreakPoint at 004E721F +De-Activate DECCiphers.pas line 3510 BreakPoint at:004E721F +Adding coverage:DECCiphers.pas (DECCiphers) 3511 +Clearing BreakPoint at 004E7237 +De-Activate DECCiphers.pas line 3511 BreakPoint at:004E7237 +Adding coverage:DECCiphers.pas (DECCiphers) 3512 +Clearing BreakPoint at 004E7249 +De-Activate DECCiphers.pas line 3512 BreakPoint at:004E7249 +Adding coverage:DECCiphers.pas (DECCiphers) 3513 +Clearing BreakPoint at 004E724C +De-Activate DECCiphers.pas line 3513 BreakPoint at:004E724C +Adding coverage:DECCiphers.pas (DECCiphers) 3514 +Clearing BreakPoint at 004E7261 +De-Activate DECCiphers.pas line 3514 BreakPoint at:004E7261 +Adding coverage:DECCiphers.pas (DECCiphers) 3515 +Clearing BreakPoint at 004E7267 +De-Activate DECCiphers.pas line 3515 BreakPoint at:004E7267 +Adding coverage:DECCiphers.pas (DECCiphers) 3506 +Clearing BreakPoint at 004E726A +De-Activate DECCiphers.pas line 3506 BreakPoint at:004E726A +Adding coverage:DECCiphers.pas (DECCiphers) 3516 +Clearing BreakPoint at 004E726F +De-Activate DECCiphers.pas line 3516 BreakPoint at:004E726F +Adding coverage:DECCiphers.pas (DECCiphers) 3517 +Clearing BreakPoint at 004E7279 +De-Activate DECCiphers.pas line 3517 BreakPoint at:004E7279 +Adding coverage:DECCiphers.pas (DECCiphers) 3518 +Clearing BreakPoint at 004E7284 +De-Activate DECCiphers.pas line 3518 BreakPoint at:004E7284 +Adding coverage:DECCiphers.pas (DECCiphers) 3519 +Clearing BreakPoint at 004E728D +De-Activate DECCiphers.pas line 3519 BreakPoint at:004E728D +Adding coverage:DECCipherModes.pas (DECCipherModes) 927 +Clearing BreakPoint at 004D8D8C +De-Activate DECCipherModes.pas line 927 BreakPoint at:004D8D8C +Adding coverage:DECCipherModes.pas (DECCipherModes) 929 +Clearing BreakPoint at 004D8DA2 +De-Activate DECCipherModes.pas line 929 BreakPoint at:004D8DA2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 930 +Clearing BreakPoint at 004D8DD7 +De-Activate DECCipherModes.pas line 930 BreakPoint at:004D8DD7 +Adding coverage:DECCiphers.pas (DECCiphers) 3524 +Clearing BreakPoint at 004E7294 +De-Activate DECCiphers.pas line 3524 BreakPoint at:004E7294 +Adding coverage:DECCiphers.pas (DECCiphers) 3525 +Clearing BreakPoint at 004E72A0 +De-Activate DECCiphers.pas line 3525 BreakPoint at:004E72A0 +Adding coverage:DECCiphers.pas (DECCiphers) 3526 +Clearing BreakPoint at 004E72A9 +De-Activate DECCiphers.pas line 3526 BreakPoint at:004E72A9 +Adding coverage:DECCiphers.pas (DECCiphers) 3527 +Clearing BreakPoint at 004E72B3 +De-Activate DECCiphers.pas line 3527 BreakPoint at:004E72B3 +Adding coverage:DECCiphers.pas (DECCiphers) 3528 +Clearing BreakPoint at 004E72BD +De-Activate DECCiphers.pas line 3528 BreakPoint at:004E72BD +Adding coverage:DECCiphers.pas (DECCiphers) 3529 +Clearing BreakPoint at 004E72C7 +De-Activate DECCiphers.pas line 3529 BreakPoint at:004E72C7 +Adding coverage:DECCiphers.pas (DECCiphers) 3530 +Clearing BreakPoint at 004E72CE +De-Activate DECCiphers.pas line 3530 BreakPoint at:004E72CE +Adding coverage:DECCiphers.pas (DECCiphers) 3531 +Clearing BreakPoint at 004E72D7 +De-Activate DECCiphers.pas line 3531 BreakPoint at:004E72D7 +Adding coverage:DECCiphers.pas (DECCiphers) 3532 +Clearing BreakPoint at 004E72E0 +De-Activate DECCiphers.pas line 3532 BreakPoint at:004E72E0 +Adding coverage:DECCiphers.pas (DECCiphers) 3533 +Clearing BreakPoint at 004E72EC +De-Activate DECCiphers.pas line 3533 BreakPoint at:004E72EC +Adding coverage:DECCiphers.pas (DECCiphers) 3602 +Clearing BreakPoint at 004E7524 +De-Activate DECCiphers.pas line 3602 BreakPoint at:004E7524 +Adding coverage:DECCiphers.pas (DECCiphers) 3603 +Clearing BreakPoint at 004E7533 +De-Activate DECCiphers.pas line 3603 BreakPoint at:004E7533 +Adding coverage:DECCiphers.pas (DECCiphers) 3604 +Clearing BreakPoint at 004E7542 +De-Activate DECCiphers.pas line 3604 BreakPoint at:004E7542 +Adding coverage:DECCiphers.pas (DECCiphers) 3605 +Clearing BreakPoint at 004E7551 +De-Activate DECCiphers.pas line 3605 BreakPoint at:004E7551 +Adding coverage:DECCiphers.pas (DECCiphers) 3606 +Clearing BreakPoint at 004E755D +De-Activate DECCiphers.pas line 3606 BreakPoint at:004E755D +Adding coverage:DECCiphers.pas (DECCiphers) 3546 +Clearing BreakPoint at 004E72F4 +De-Activate DECCiphers.pas line 3546 BreakPoint at:004E72F4 +Adding coverage:DECCiphers.pas (DECCiphers) 3547 +Clearing BreakPoint at 004E72FA +De-Activate DECCiphers.pas line 3547 BreakPoint at:004E72FA +Adding coverage:DECCiphers.pas (DECCiphers) 3548 +Clearing BreakPoint at 004E7301 +De-Activate DECCiphers.pas line 3548 BreakPoint at:004E7301 +Adding coverage:DECCiphers.pas (DECCiphers) 3549 +Clearing BreakPoint at 004E730A +De-Activate DECCiphers.pas line 3549 BreakPoint at:004E730A +Adding coverage:DECCiphers.pas (DECCiphers) 3550 +Clearing BreakPoint at 004E731E +De-Activate DECCiphers.pas line 3550 BreakPoint at:004E731E +Adding coverage:DECCiphers.pas (DECCiphers) 3551 +Clearing BreakPoint at 004E732C +De-Activate DECCiphers.pas line 3551 BreakPoint at:004E732C +Adding coverage:DECCiphers.pas (DECCiphers) 3550 +Clearing BreakPoint at 004E7357 +De-Activate DECCiphers.pas line 3550 BreakPoint at:004E7357 +Adding coverage:DECCiphers.pas (DECCiphers) 3552 +Clearing BreakPoint at 004E735D +De-Activate DECCiphers.pas line 3552 BreakPoint at:004E735D +Adding coverage:DECCiphers.pas (DECCiphers) 3553 +Clearing BreakPoint at 004E7362 +De-Activate DECCiphers.pas line 3553 BreakPoint at:004E7362 +Adding coverage:DECCiphers.pas (DECCiphers) 3557 +Clearing BreakPoint at 004E737D +De-Activate DECCiphers.pas line 3557 BreakPoint at:004E737D +Adding coverage:DECCiphers.pas (DECCiphers) 3552 +Clearing BreakPoint at 004E7380 +De-Activate DECCiphers.pas line 3552 BreakPoint at:004E7380 +Adding coverage:DECCiphers.pas (DECCiphers) 3558 +Clearing BreakPoint at 004E7386 +De-Activate DECCiphers.pas line 3558 BreakPoint at:004E7386 +Adding coverage:DECCiphers.pas (DECCiphers) 3607 +Clearing BreakPoint at 004E7564 +De-Activate DECCiphers.pas line 3607 BreakPoint at:004E7564 +Adding coverage:DECCiphers.pas (DECCiphers) 3608 +Clearing BreakPoint at 004E7569 +De-Activate DECCiphers.pas line 3608 BreakPoint at:004E7569 +Adding coverage:DECCiphers.pas (DECCiphers) 3566 +Clearing BreakPoint at 004E738C +De-Activate DECCiphers.pas line 3566 BreakPoint at:004E738C +Adding coverage:DECCiphers.pas (DECCiphers) 3567 +Clearing BreakPoint at 004E7395 +De-Activate DECCiphers.pas line 3567 BreakPoint at:004E7395 +Adding coverage:DECCiphers.pas (DECCiphers) 3568 +Clearing BreakPoint at 004E739A +De-Activate DECCiphers.pas line 3568 BreakPoint at:004E739A +Adding coverage:DECCiphers.pas (DECCiphers) 3569 +Clearing BreakPoint at 004E739F +De-Activate DECCiphers.pas line 3569 BreakPoint at:004E739F +Adding coverage:DECCiphers.pas (DECCiphers) 3571 +Clearing BreakPoint at 004E73A9 +De-Activate DECCiphers.pas line 3571 BreakPoint at:004E73A9 +Adding coverage:DECCiphers.pas (DECCiphers) 3572 +Clearing BreakPoint at 004E73B9 +De-Activate DECCiphers.pas line 3572 BreakPoint at:004E73B9 +Adding coverage:DECCiphers.pas (DECCiphers) 3573 +Clearing BreakPoint at 004E73C2 +De-Activate DECCiphers.pas line 3573 BreakPoint at:004E73C2 +Adding coverage:DECCiphers.pas (DECCiphers) 3574 +Clearing BreakPoint at 004E73CB +De-Activate DECCiphers.pas line 3574 BreakPoint at:004E73CB +Adding coverage:DECCiphers.pas (DECCiphers) 3575 +Clearing BreakPoint at 004E73D4 +De-Activate DECCiphers.pas line 3575 BreakPoint at:004E73D4 +Adding coverage:DECCiphers.pas (DECCiphers) 3579 +Clearing BreakPoint at 004E7419 +De-Activate DECCiphers.pas line 3579 BreakPoint at:004E7419 +Adding coverage:DECCiphers.pas (DECCiphers) 3580 +Clearing BreakPoint at 004E742B +De-Activate DECCiphers.pas line 3580 BreakPoint at:004E742B +Adding coverage:DECCiphers.pas (DECCiphers) 3581 +Clearing BreakPoint at 004E7434 +De-Activate DECCiphers.pas line 3581 BreakPoint at:004E7434 +Adding coverage:DECCiphers.pas (DECCiphers) 3582 +Clearing BreakPoint at 004E743D +De-Activate DECCiphers.pas line 3582 BreakPoint at:004E743D +Adding coverage:DECCiphers.pas (DECCiphers) 3583 +Clearing BreakPoint at 004E7446 +De-Activate DECCiphers.pas line 3583 BreakPoint at:004E7446 +Adding coverage:DECCiphers.pas (DECCiphers) 3587 +Clearing BreakPoint at 004E748B +De-Activate DECCiphers.pas line 3587 BreakPoint at:004E748B +Adding coverage:DECCiphers.pas (DECCiphers) 3588 +Clearing BreakPoint at 004E74A5 +De-Activate DECCiphers.pas line 3588 BreakPoint at:004E74A5 +Adding coverage:DECCiphers.pas (DECCiphers) 3589 +Clearing BreakPoint at 004E74BC +De-Activate DECCiphers.pas line 3589 BreakPoint at:004E74BC +Adding coverage:DECCiphers.pas (DECCiphers) 3590 +Clearing BreakPoint at 004E74BF +De-Activate DECCiphers.pas line 3590 BreakPoint at:004E74BF +Adding coverage:DECCiphers.pas (DECCiphers) 3569 +Clearing BreakPoint at 004E74C3 +De-Activate DECCiphers.pas line 3569 BreakPoint at:004E74C3 +Adding coverage:DECCiphers.pas (DECCiphers) 3592 +Clearing BreakPoint at 004E74CD +De-Activate DECCiphers.pas line 3592 BreakPoint at:004E74CD +Adding coverage:DECCiphers.pas (DECCiphers) 3593 +Clearing BreakPoint at 004E74E1 +De-Activate DECCiphers.pas line 3593 BreakPoint at:004E74E1 +Adding coverage:DECCiphers.pas (DECCiphers) 3594 +Clearing BreakPoint at 004E74F5 +De-Activate DECCiphers.pas line 3594 BreakPoint at:004E74F5 +Adding coverage:DECCiphers.pas (DECCiphers) 3595 +Clearing BreakPoint at 004E7509 +De-Activate DECCiphers.pas line 3595 BreakPoint at:004E7509 +Adding coverage:DECCiphers.pas (DECCiphers) 3596 +Clearing BreakPoint at 004E751D +De-Activate DECCiphers.pas line 3596 BreakPoint at:004E751D +Adding coverage:DECCiphers.pas (DECCiphers) 3607 +Clearing BreakPoint at 004E7576 +De-Activate DECCiphers.pas line 3607 BreakPoint at:004E7576 +Adding coverage:DECCiphers.pas (DECCiphers) 3609 +Clearing BreakPoint at 004E757C +De-Activate DECCiphers.pas line 3609 BreakPoint at:004E757C +Adding coverage:DECCiphers.pas (DECCiphers) 3611 +Clearing BreakPoint at 004E7581 +De-Activate DECCiphers.pas line 3611 BreakPoint at:004E7581 +Adding coverage:DECCiphers.pas (DECCiphers) 3612 +Clearing BreakPoint at 004E7586 +De-Activate DECCiphers.pas line 3612 BreakPoint at:004E7586 +Adding coverage:DECCiphers.pas (DECCiphers) 3611 +Clearing BreakPoint at 004E75A4 +De-Activate DECCiphers.pas line 3611 BreakPoint at:004E75A4 +Adding coverage:DECCiphers.pas (DECCiphers) 3613 +Clearing BreakPoint at 004E75AA +De-Activate DECCiphers.pas line 3613 BreakPoint at:004E75AA +Adding coverage:DECCiphers.pas (DECCiphers) 3614 +Clearing BreakPoint at 004E75B4 +De-Activate DECCiphers.pas line 3614 BreakPoint at:004E75B4 +Adding coverage:DECCiphers.pas (DECCiphers) 3609 +Clearing BreakPoint at 004E75B7 +De-Activate DECCiphers.pas line 3609 BreakPoint at:004E75B7 +Adding coverage:DECCiphers.pas (DECCiphers) 3615 +Clearing BreakPoint at 004E75BD +De-Activate DECCiphers.pas line 3615 BreakPoint at:004E75BD +Adding coverage:DECCiphers.pas (DECCiphers) 3616 +Clearing BreakPoint at 004E75C7 +De-Activate DECCiphers.pas line 3616 BreakPoint at:004E75C7 +Adding coverage:DECCiphers.pas (DECCiphers) 3617 +Clearing BreakPoint at 004E75D0 +De-Activate DECCiphers.pas line 3617 BreakPoint at:004E75D0 +Adding coverage:DECCiphers.pas (DECCiphers) 3618 +Clearing BreakPoint at 004E75DB +De-Activate DECCiphers.pas line 3618 BreakPoint at:004E75DB +Adding coverage:DECCiphers.pas (DECCiphers) 3619 +Clearing BreakPoint at 004E75E4 +De-Activate DECCiphers.pas line 3619 BreakPoint at:004E75E4 +Adding coverage:DECCiphers.pas (DECCiphers) 3620 +Clearing BreakPoint at 004E75F4 +De-Activate DECCiphers.pas line 3620 BreakPoint at:004E75F4 +Adding coverage:DECCiphers.pas (DECCiphers) 3621 +Clearing BreakPoint at 004E7605 +De-Activate DECCiphers.pas line 3621 BreakPoint at:004E7605 +Adding coverage:DECCiphers.pas (DECCiphers) 3622 +Clearing BreakPoint at 004E7616 +De-Activate DECCiphers.pas line 3622 BreakPoint at:004E7616 +Adding coverage:DECCiphers.pas (DECCiphers) 3625 +Clearing BreakPoint at 004E7623 +De-Activate DECCiphers.pas line 3625 BreakPoint at:004E7623 +Adding coverage:DECCiphers.pas (DECCiphers) 3633 +Clearing BreakPoint at 004E7628 +De-Activate DECCiphers.pas line 3633 BreakPoint at:004E7628 +Adding coverage:DECCiphers.pas (DECCiphers) 3634 +Clearing BreakPoint at 004E7637 +De-Activate DECCiphers.pas line 3634 BreakPoint at:004E7637 +Adding coverage:DECCiphers.pas (DECCiphers) 3635 +Clearing BreakPoint at 004E7640 +De-Activate DECCiphers.pas line 3635 BreakPoint at:004E7640 +Adding coverage:DECCiphers.pas (DECCiphers) 3636 +Clearing BreakPoint at 004E7648 +De-Activate DECCiphers.pas line 3636 BreakPoint at:004E7648 +Adding coverage:DECCiphers.pas (DECCiphers) 3637 +Clearing BreakPoint at 004E7651 +De-Activate DECCiphers.pas line 3637 BreakPoint at:004E7651 +Adding coverage:DECCiphers.pas (DECCiphers) 3638 +Clearing BreakPoint at 004E765A +De-Activate DECCiphers.pas line 3638 BreakPoint at:004E765A +Adding coverage:DECCiphers.pas (DECCiphers) 3640 +Clearing BreakPoint at 004E767B +De-Activate DECCiphers.pas line 3640 BreakPoint at:004E767B +Adding coverage:DECCiphers.pas (DECCiphers) 3641 +Clearing BreakPoint at 004E7696 +De-Activate DECCiphers.pas line 3641 BreakPoint at:004E7696 +Adding coverage:DECCiphers.pas (DECCiphers) 3642 +Clearing BreakPoint at 004E76AB +De-Activate DECCiphers.pas line 3642 BreakPoint at:004E76AB +Adding coverage:DECCiphers.pas (DECCiphers) 3643 +Clearing BreakPoint at 004E76C3 +De-Activate DECCiphers.pas line 3643 BreakPoint at:004E76C3 +Adding coverage:DECCiphers.pas (DECCiphers) 3644 +Clearing BreakPoint at 004E76D8 +De-Activate DECCiphers.pas line 3644 BreakPoint at:004E76D8 +Adding coverage:DECCiphers.pas (DECCiphers) 3645 +Clearing BreakPoint at 004E76ED +De-Activate DECCiphers.pas line 3645 BreakPoint at:004E76ED +Adding coverage:DECCiphers.pas (DECCiphers) 3646 +Clearing BreakPoint at 004E76F3 +De-Activate DECCiphers.pas line 3646 BreakPoint at:004E76F3 +Adding coverage:DECCiphers.pas (DECCiphers) 3638 +Clearing BreakPoint at 004E76F6 +De-Activate DECCiphers.pas line 3638 BreakPoint at:004E76F6 +Adding coverage:DECCiphers.pas (DECCiphers) 3647 +Clearing BreakPoint at 004E76FB +De-Activate DECCiphers.pas line 3647 BreakPoint at:004E76FB +Adding coverage:DECCiphers.pas (DECCiphers) 3648 +Clearing BreakPoint at 004E7705 +De-Activate DECCiphers.pas line 3648 BreakPoint at:004E7705 +Adding coverage:DECCiphers.pas (DECCiphers) 3649 +Clearing BreakPoint at 004E7710 +De-Activate DECCiphers.pas line 3649 BreakPoint at:004E7710 +Adding coverage:DECCiphers.pas (DECCiphers) 3650 +Clearing BreakPoint at 004E7719 +De-Activate DECCiphers.pas line 3650 BreakPoint at:004E7719 +Adding coverage:DECCiphers.pas (DECCiphers) 3658 +Clearing BreakPoint at 004E7720 +De-Activate DECCiphers.pas line 3658 BreakPoint at:004E7720 +Adding coverage:DECCiphers.pas (DECCiphers) 3659 +Clearing BreakPoint at 004E772F +De-Activate DECCiphers.pas line 3659 BreakPoint at:004E772F +Adding coverage:DECCiphers.pas (DECCiphers) 3660 +Clearing BreakPoint at 004E7738 +De-Activate DECCiphers.pas line 3660 BreakPoint at:004E7738 +Adding coverage:DECCiphers.pas (DECCiphers) 3661 +Clearing BreakPoint at 004E7740 +De-Activate DECCiphers.pas line 3661 BreakPoint at:004E7740 +Adding coverage:DECCiphers.pas (DECCiphers) 3662 +Clearing BreakPoint at 004E7749 +De-Activate DECCiphers.pas line 3662 BreakPoint at:004E7749 +Adding coverage:DECCiphers.pas (DECCiphers) 3663 +Clearing BreakPoint at 004E7752 +De-Activate DECCiphers.pas line 3663 BreakPoint at:004E7752 +Adding coverage:DECCiphers.pas (DECCiphers) 3665 +Clearing BreakPoint at 004E7773 +De-Activate DECCiphers.pas line 3665 BreakPoint at:004E7773 +Adding coverage:DECCiphers.pas (DECCiphers) 3666 +Clearing BreakPoint at 004E778E +De-Activate DECCiphers.pas line 3666 BreakPoint at:004E778E +Adding coverage:DECCiphers.pas (DECCiphers) 3667 +Clearing BreakPoint at 004E77A3 +De-Activate DECCiphers.pas line 3667 BreakPoint at:004E77A3 +Adding coverage:DECCiphers.pas (DECCiphers) 3668 +Clearing BreakPoint at 004E77BB +De-Activate DECCiphers.pas line 3668 BreakPoint at:004E77BB +Adding coverage:DECCiphers.pas (DECCiphers) 3669 +Clearing BreakPoint at 004E77CD +De-Activate DECCiphers.pas line 3669 BreakPoint at:004E77CD +Adding coverage:DECCiphers.pas (DECCiphers) 3670 +Clearing BreakPoint at 004E77D0 +De-Activate DECCiphers.pas line 3670 BreakPoint at:004E77D0 +Adding coverage:DECCiphers.pas (DECCiphers) 3671 +Clearing BreakPoint at 004E77E5 +De-Activate DECCiphers.pas line 3671 BreakPoint at:004E77E5 +Adding coverage:DECCiphers.pas (DECCiphers) 3672 +Clearing BreakPoint at 004E77EB +De-Activate DECCiphers.pas line 3672 BreakPoint at:004E77EB +Adding coverage:DECCiphers.pas (DECCiphers) 3663 +Clearing BreakPoint at 004E77EE +De-Activate DECCiphers.pas line 3663 BreakPoint at:004E77EE +Adding coverage:DECCiphers.pas (DECCiphers) 3673 +Clearing BreakPoint at 004E77F3 +De-Activate DECCiphers.pas line 3673 BreakPoint at:004E77F3 +Adding coverage:DECCiphers.pas (DECCiphers) 3674 +Clearing BreakPoint at 004E77FD +De-Activate DECCiphers.pas line 3674 BreakPoint at:004E77FD +Adding coverage:DECCiphers.pas (DECCiphers) 3675 +Clearing BreakPoint at 004E7808 +De-Activate DECCiphers.pas line 3675 BreakPoint at:004E7808 +Adding coverage:DECCiphers.pas (DECCiphers) 3676 +Clearing BreakPoint at 004E7811 +De-Activate DECCiphers.pas line 3676 BreakPoint at:004E7811 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1235 +Clearing BreakPoint at 004D9DBC +De-Activate DECCipherModes.pas line 1235 BreakPoint at:004D9DBC +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4D31 +After line:DECCipherBase line 931 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005003D4 +After line:TestDECCipher line 1899 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005007DC +Exact line:TestDECCipher line 1942 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 3692 +Clearing BreakPoint at 004E7818 +De-Activate DECCiphers.pas line 3692 BreakPoint at:004E7818 +Adding coverage:DECCiphers.pas (DECCiphers) 3693 +Clearing BreakPoint at 004E7824 +De-Activate DECCiphers.pas line 3693 BreakPoint at:004E7824 +Adding coverage:DECCiphers.pas (DECCiphers) 3694 +Clearing BreakPoint at 004E782D +De-Activate DECCiphers.pas line 3694 BreakPoint at:004E782D +Adding coverage:DECCiphers.pas (DECCiphers) 3695 +Clearing BreakPoint at 004E7837 +De-Activate DECCiphers.pas line 3695 BreakPoint at:004E7837 +Adding coverage:DECCiphers.pas (DECCiphers) 3696 +Clearing BreakPoint at 004E7841 +De-Activate DECCiphers.pas line 3696 BreakPoint at:004E7841 +Adding coverage:DECCiphers.pas (DECCiphers) 3697 +Clearing BreakPoint at 004E784B +De-Activate DECCiphers.pas line 3697 BreakPoint at:004E784B +Adding coverage:DECCiphers.pas (DECCiphers) 3698 +Clearing BreakPoint at 004E7852 +De-Activate DECCiphers.pas line 3698 BreakPoint at:004E7852 +Adding coverage:DECCiphers.pas (DECCiphers) 3699 +Clearing BreakPoint at 004E785B +De-Activate DECCiphers.pas line 3699 BreakPoint at:004E785B +Adding coverage:DECCiphers.pas (DECCiphers) 3700 +Clearing BreakPoint at 004E7864 +De-Activate DECCiphers.pas line 3700 BreakPoint at:004E7864 +Adding coverage:DECCiphers.pas (DECCiphers) 3701 +Clearing BreakPoint at 004E7870 +De-Activate DECCiphers.pas line 3701 BreakPoint at:004E7870 +Adding coverage:DECCiphers.pas (DECCiphers) 3739 +Clearing BreakPoint at 004E7924 +De-Activate DECCiphers.pas line 3739 BreakPoint at:004E7924 +Adding coverage:DECCiphers.pas (DECCiphers) 3740 +Clearing BreakPoint at 004E7933 +De-Activate DECCiphers.pas line 3740 BreakPoint at:004E7933 +Adding coverage:DECCiphers.pas (DECCiphers) 3741 +Clearing BreakPoint at 004E793C +De-Activate DECCiphers.pas line 3741 BreakPoint at:004E793C +Adding coverage:DECCiphers.pas (DECCiphers) 3753 +Clearing BreakPoint at 004E79AA +De-Activate DECCiphers.pas line 3753 BreakPoint at:004E79AA +Adding coverage:DECCiphers.pas (DECCiphers) 3754 +Clearing BreakPoint at 004E79AF +De-Activate DECCiphers.pas line 3754 BreakPoint at:004E79AF +Adding coverage:DECCiphers.pas (DECCiphers) 3753 +Clearing BreakPoint at 004E79BE +De-Activate DECCiphers.pas line 3753 BreakPoint at:004E79BE +Adding coverage:DECCiphers.pas (DECCiphers) 3755 +Clearing BreakPoint at 004E79C7 +De-Activate DECCiphers.pas line 3755 BreakPoint at:004E79C7 +Adding coverage:DECCiphers.pas (DECCiphers) 3756 +Clearing BreakPoint at 004E79CC +De-Activate DECCiphers.pas line 3756 BreakPoint at:004E79CC +Adding coverage:DECCiphers.pas (DECCiphers) 3757 +Clearing BreakPoint at 004E79D0 +De-Activate DECCiphers.pas line 3757 BreakPoint at:004E79D0 +Adding coverage:DECCiphers.pas (DECCiphers) 3759 +Clearing BreakPoint at 004E79D7 +De-Activate DECCiphers.pas line 3759 BreakPoint at:004E79D7 +Adding coverage:DECCiphers.pas (DECCiphers) 3711 +Clearing BreakPoint at 004E7878 +De-Activate DECCiphers.pas line 3711 BreakPoint at:004E7878 +Adding coverage:DECCiphers.pas (DECCiphers) 3712 +Clearing BreakPoint at 004E7881 +De-Activate DECCiphers.pas line 3712 BreakPoint at:004E7881 +Adding coverage:DECCiphers.pas (DECCiphers) 3713 +Clearing BreakPoint at 004E7885 +De-Activate DECCiphers.pas line 3713 BreakPoint at:004E7885 +Adding coverage:DECCiphers.pas (DECCiphers) 3715 +Clearing BreakPoint at 004E788F +De-Activate DECCiphers.pas line 3715 BreakPoint at:004E788F +Adding coverage:DECCiphers.pas (DECCiphers) 3716 +Clearing BreakPoint at 004E7894 +De-Activate DECCiphers.pas line 3716 BreakPoint at:004E7894 +Adding coverage:DECCiphers.pas (DECCiphers) 3718 +Clearing BreakPoint at 004E789B +De-Activate DECCiphers.pas line 3718 BreakPoint at:004E789B +Adding coverage:DECCiphers.pas (DECCiphers) 3719 +Clearing BreakPoint at 004E78A3 +De-Activate DECCiphers.pas line 3719 BreakPoint at:004E78A3 +Adding coverage:DECCiphers.pas (DECCiphers) 3718 +Clearing BreakPoint at 004E78AC +De-Activate DECCiphers.pas line 3718 BreakPoint at:004E78AC +Adding coverage:DECCiphers.pas (DECCiphers) 3722 +Clearing BreakPoint at 004E78B4 +De-Activate DECCiphers.pas line 3722 BreakPoint at:004E78B4 +Adding coverage:DECCiphers.pas (DECCiphers) 3723 +Clearing BreakPoint at 004E78C9 +De-Activate DECCiphers.pas line 3723 BreakPoint at:004E78C9 +Adding coverage:DECCiphers.pas (DECCiphers) 3724 +Clearing BreakPoint at 004E78CF +De-Activate DECCiphers.pas line 3724 BreakPoint at:004E78CF +Adding coverage:DECCiphers.pas (DECCiphers) 3729 +Clearing BreakPoint at 004E78F1 +De-Activate DECCiphers.pas line 3729 BreakPoint at:004E78F1 +Adding coverage:DECCiphers.pas (DECCiphers) 3730 +Clearing BreakPoint at 004E78FD +De-Activate DECCiphers.pas line 3730 BreakPoint at:004E78FD +Adding coverage:DECCiphers.pas (DECCiphers) 3731 +Clearing BreakPoint at 004E7900 +De-Activate DECCiphers.pas line 3731 BreakPoint at:004E7900 +Adding coverage:DECCiphers.pas (DECCiphers) 3733 +Clearing BreakPoint at 004E7913 +De-Activate DECCiphers.pas line 3733 BreakPoint at:004E7913 +Adding coverage:DECCiphers.pas (DECCiphers) 3734 +Clearing BreakPoint at 004E791D +De-Activate DECCiphers.pas line 3734 BreakPoint at:004E791D +Adding coverage:DECCiphers.pas (DECCiphers) 3760 +Clearing BreakPoint at 004E79E9 +De-Activate DECCiphers.pas line 3760 BreakPoint at:004E79E9 +Adding coverage:DECCiphers.pas (DECCiphers) 3761 +Clearing BreakPoint at 004E79F5 +De-Activate DECCiphers.pas line 3761 BreakPoint at:004E79F5 +Adding coverage:DECCiphers.pas (DECCiphers) 3762 +Clearing BreakPoint at 004E7A07 +De-Activate DECCiphers.pas line 3762 BreakPoint at:004E7A07 +Adding coverage:DECCiphers.pas (DECCiphers) 3763 +Clearing BreakPoint at 004E7A13 +De-Activate DECCiphers.pas line 3763 BreakPoint at:004E7A13 +Adding coverage:DECCiphers.pas (DECCiphers) 3757 +Clearing BreakPoint at 004E7A16 +De-Activate DECCiphers.pas line 3757 BreakPoint at:004E7A16 +Adding coverage:DECCiphers.pas (DECCiphers) 3726 +Clearing BreakPoint at 004E78DD +De-Activate DECCiphers.pas line 3726 BreakPoint at:004E78DD +Adding coverage:DECCiphers.pas (DECCiphers) 3727 +Clearing BreakPoint at 004E78E5 +De-Activate DECCiphers.pas line 3727 BreakPoint at:004E78E5 +Adding coverage:DECCiphers.pas (DECCiphers) 3764 +Clearing BreakPoint at 004E7A1C +De-Activate DECCiphers.pas line 3764 BreakPoint at:004E7A1C +Adding coverage:DECCiphers.pas (DECCiphers) 3765 +Clearing BreakPoint at 004E7A2B +De-Activate DECCiphers.pas line 3765 BreakPoint at:004E7A2B +Adding coverage:DECCiphers.pas (DECCiphers) 3766 +Clearing BreakPoint at 004E7A3A +De-Activate DECCiphers.pas line 3766 BreakPoint at:004E7A3A +Adding coverage:DECCiphers.pas (DECCiphers) 3767 +Clearing BreakPoint at 004E7A49 +De-Activate DECCiphers.pas line 3767 BreakPoint at:004E7A49 +Adding coverage:DECCiphers.pas (DECCiphers) 3768 +Clearing BreakPoint at 004E7A58 +De-Activate DECCiphers.pas line 3768 BreakPoint at:004E7A58 +Adding coverage:DECCiphers.pas (DECCiphers) 3772 +Clearing BreakPoint at 004E7A6C +De-Activate DECCiphers.pas line 3772 BreakPoint at:004E7A6C +Adding coverage:DECCiphers.pas (DECCiphers) 3779 +Clearing BreakPoint at 004E7A70 +De-Activate DECCiphers.pas line 3779 BreakPoint at:004E7A70 +Adding coverage:DECCiphers.pas (DECCiphers) 3780 +Clearing BreakPoint at 004E7A7F +De-Activate DECCiphers.pas line 3780 BreakPoint at:004E7A7F +Adding coverage:DECCiphers.pas (DECCiphers) 3781 +Clearing BreakPoint at 004E7A88 +De-Activate DECCiphers.pas line 3781 BreakPoint at:004E7A88 +Adding coverage:DECCiphers.pas (DECCiphers) 3783 +Clearing BreakPoint at 004E7A9F +De-Activate DECCiphers.pas line 3783 BreakPoint at:004E7A9F +Adding coverage:DECCiphers.pas (DECCiphers) 3784 +Clearing BreakPoint at 004E7AC5 +De-Activate DECCiphers.pas line 3784 BreakPoint at:004E7AC5 +Adding coverage:DECCiphers.pas (DECCiphers) 3785 +Clearing BreakPoint at 004E7ADD +De-Activate DECCiphers.pas line 3785 BreakPoint at:004E7ADD +Adding coverage:DECCiphers.pas (DECCiphers) 3786 +Clearing BreakPoint at 004E7AEF +De-Activate DECCiphers.pas line 3786 BreakPoint at:004E7AEF +Adding coverage:DECCiphers.pas (DECCiphers) 3787 +Clearing BreakPoint at 004E7B0D +De-Activate DECCiphers.pas line 3787 BreakPoint at:004E7B0D +Adding coverage:DECCiphers.pas (DECCiphers) 3788 +Clearing BreakPoint at 004E7B2B +De-Activate DECCiphers.pas line 3788 BreakPoint at:004E7B2B +Adding coverage:DECCiphers.pas (DECCiphers) 3789 +Clearing BreakPoint at 004E7B49 +De-Activate DECCiphers.pas line 3789 BreakPoint at:004E7B49 +Adding coverage:DECCiphers.pas (DECCiphers) 3790 +Clearing BreakPoint at 004E7B5B +De-Activate DECCiphers.pas line 3790 BreakPoint at:004E7B5B +Adding coverage:DECCiphers.pas (DECCiphers) 3791 +Clearing BreakPoint at 004E7B7B +De-Activate DECCiphers.pas line 3791 BreakPoint at:004E7B7B +Adding coverage:DECCiphers.pas (DECCiphers) 3792 +Clearing BreakPoint at 004E7BB0 +De-Activate DECCiphers.pas line 3792 BreakPoint at:004E7BB0 +Adding coverage:DECCiphers.pas (DECCiphers) 3793 +Clearing BreakPoint at 004E7BC3 +De-Activate DECCiphers.pas line 3793 BreakPoint at:004E7BC3 +Adding coverage:DECCiphers.pas (DECCiphers) 3796 +Clearing BreakPoint at 004E7C0F +De-Activate DECCiphers.pas line 3796 BreakPoint at:004E7C0F +Adding coverage:DECCiphers.pas (DECCiphers) 3797 +Clearing BreakPoint at 004E7C21 +De-Activate DECCiphers.pas line 3797 BreakPoint at:004E7C21 +Adding coverage:DECCiphers.pas (DECCiphers) 3781 +Clearing BreakPoint at 004E7C24 +De-Activate DECCiphers.pas line 3781 BreakPoint at:004E7C24 +Adding coverage:DECCiphers.pas (DECCiphers) 3798 +Clearing BreakPoint at 004E7C2D +De-Activate DECCiphers.pas line 3798 BreakPoint at:004E7C2D +Adding coverage:DECCiphers.pas (DECCiphers) 3805 +Clearing BreakPoint at 004E7C34 +De-Activate DECCiphers.pas line 3805 BreakPoint at:004E7C34 +Adding coverage:DECCiphers.pas (DECCiphers) 3806 +Clearing BreakPoint at 004E7C43 +De-Activate DECCiphers.pas line 3806 BreakPoint at:004E7C43 +Adding coverage:DECCiphers.pas (DECCiphers) 3807 +Clearing BreakPoint at 004E7C4C +De-Activate DECCiphers.pas line 3807 BreakPoint at:004E7C4C +Adding coverage:DECCiphers.pas (DECCiphers) 3809 +Clearing BreakPoint at 004E7C63 +De-Activate DECCiphers.pas line 3809 BreakPoint at:004E7C63 +Adding coverage:DECCiphers.pas (DECCiphers) 3810 +Clearing BreakPoint at 004E7C89 +De-Activate DECCiphers.pas line 3810 BreakPoint at:004E7C89 +Adding coverage:DECCiphers.pas (DECCiphers) 3811 +Clearing BreakPoint at 004E7CA1 +De-Activate DECCiphers.pas line 3811 BreakPoint at:004E7CA1 +Adding coverage:DECCiphers.pas (DECCiphers) 3812 +Clearing BreakPoint at 004E7CB3 +De-Activate DECCiphers.pas line 3812 BreakPoint at:004E7CB3 +Adding coverage:DECCiphers.pas (DECCiphers) 3813 +Clearing BreakPoint at 004E7CD1 +De-Activate DECCiphers.pas line 3813 BreakPoint at:004E7CD1 +Adding coverage:DECCiphers.pas (DECCiphers) 3814 +Clearing BreakPoint at 004E7CEF +De-Activate DECCiphers.pas line 3814 BreakPoint at:004E7CEF +Adding coverage:DECCiphers.pas (DECCiphers) 3815 +Clearing BreakPoint at 004E7D0D +De-Activate DECCiphers.pas line 3815 BreakPoint at:004E7D0D +Adding coverage:DECCiphers.pas (DECCiphers) 3816 +Clearing BreakPoint at 004E7D1F +De-Activate DECCiphers.pas line 3816 BreakPoint at:004E7D1F +Adding coverage:DECCiphers.pas (DECCiphers) 3817 +Clearing BreakPoint at 004E7D3F +De-Activate DECCiphers.pas line 3817 BreakPoint at:004E7D3F +Adding coverage:DECCiphers.pas (DECCiphers) 3818 +Clearing BreakPoint at 004E7D74 +De-Activate DECCiphers.pas line 3818 BreakPoint at:004E7D74 +Adding coverage:DECCiphers.pas (DECCiphers) 3819 +Clearing BreakPoint at 004E7D87 +De-Activate DECCiphers.pas line 3819 BreakPoint at:004E7D87 +Adding coverage:DECCiphers.pas (DECCiphers) 3822 +Clearing BreakPoint at 004E7DD3 +De-Activate DECCiphers.pas line 3822 BreakPoint at:004E7DD3 +Adding coverage:DECCiphers.pas (DECCiphers) 3823 +Clearing BreakPoint at 004E7DE5 +De-Activate DECCiphers.pas line 3823 BreakPoint at:004E7DE5 +Adding coverage:DECCiphers.pas (DECCiphers) 3807 +Clearing BreakPoint at 004E7DE8 +De-Activate DECCiphers.pas line 3807 BreakPoint at:004E7DE8 +Adding coverage:DECCiphers.pas (DECCiphers) 3824 +Clearing BreakPoint at 004E7DF1 +De-Activate DECCiphers.pas line 3824 BreakPoint at:004E7DF1 +Adding coverage:DECCiphers.pas (DECCiphers) 3948 +Clearing BreakPoint at 004E8404 +De-Activate DECCiphers.pas line 3948 BreakPoint at:004E8404 +Adding coverage:DECCiphers.pas (DECCiphers) 3949 +Clearing BreakPoint at 004E8410 +De-Activate DECCiphers.pas line 3949 BreakPoint at:004E8410 +Adding coverage:DECCiphers.pas (DECCiphers) 3950 +Clearing BreakPoint at 004E8419 +De-Activate DECCiphers.pas line 3950 BreakPoint at:004E8419 +Adding coverage:DECCiphers.pas (DECCiphers) 3951 +Clearing BreakPoint at 004E8423 +De-Activate DECCiphers.pas line 3951 BreakPoint at:004E8423 +Adding coverage:DECCiphers.pas (DECCiphers) 3952 +Clearing BreakPoint at 004E842D +De-Activate DECCiphers.pas line 3952 BreakPoint at:004E842D +Adding coverage:DECCiphers.pas (DECCiphers) 3953 +Clearing BreakPoint at 004E8437 +De-Activate DECCiphers.pas line 3953 BreakPoint at:004E8437 +Adding coverage:DECCiphers.pas (DECCiphers) 3954 +Clearing BreakPoint at 004E843E +De-Activate DECCiphers.pas line 3954 BreakPoint at:004E843E +Adding coverage:DECCiphers.pas (DECCiphers) 3955 +Clearing BreakPoint at 004E8447 +De-Activate DECCiphers.pas line 3955 BreakPoint at:004E8447 +Adding coverage:DECCiphers.pas (DECCiphers) 3956 +Clearing BreakPoint at 004E8450 +De-Activate DECCiphers.pas line 3956 BreakPoint at:004E8450 +Adding coverage:DECCiphers.pas (DECCiphers) 3957 +Clearing BreakPoint at 004E845C +De-Activate DECCiphers.pas line 3957 BreakPoint at:004E845C +Adding coverage:DECCiphers.pas (DECCiphers) 3962 +Clearing BreakPoint at 004E8464 +De-Activate DECCiphers.pas line 3962 BreakPoint at:004E8464 +Adding coverage:DECCiphers.pas (DECCiphers) 3963 +Clearing BreakPoint at 004E8473 +De-Activate DECCiphers.pas line 3963 BreakPoint at:004E8473 +Adding coverage:DECCiphers.pas (DECCiphers) 3964 +Clearing BreakPoint at 004E8482 +De-Activate DECCiphers.pas line 3964 BreakPoint at:004E8482 +Adding coverage:DECCiphers.pas (DECCiphers) 3965 +Clearing BreakPoint at 004E8490 +De-Activate DECCiphers.pas line 3965 BreakPoint at:004E8490 +Adding coverage:DECCiphers.pas (DECCiphers) 3886 +Clearing BreakPoint at 004E8168 +De-Activate DECCiphers.pas line 3886 BreakPoint at:004E8168 +Adding coverage:DECCiphers.pas (DECCiphers) 3887 +Clearing BreakPoint at 004E817A +De-Activate DECCiphers.pas line 3887 BreakPoint at:004E817A +Adding coverage:DECCiphers.pas (DECCiphers) 3888 +Clearing BreakPoint at 004E818C +De-Activate DECCiphers.pas line 3888 BreakPoint at:004E818C +Adding coverage:DECCiphers.pas (DECCiphers) 3889 +Clearing BreakPoint at 004E8191 +De-Activate DECCiphers.pas line 3889 BreakPoint at:004E8191 +Adding coverage:DECCiphers.pas (DECCiphers) 3892 +Clearing BreakPoint at 004E81CB +De-Activate DECCiphers.pas line 3892 BreakPoint at:004E81CB +Adding coverage:DECCiphers.pas (DECCiphers) 3888 +Clearing BreakPoint at 004E81D6 +De-Activate DECCiphers.pas line 3888 BreakPoint at:004E81D6 +Adding coverage:DECCiphers.pas (DECCiphers) 3890 +Clearing BreakPoint at 004E81C1 +De-Activate DECCiphers.pas line 3890 BreakPoint at:004E81C1 +Adding coverage:DECCiphers.pas (DECCiphers) 3893 +Clearing BreakPoint at 004E81DC +De-Activate DECCiphers.pas line 3893 BreakPoint at:004E81DC +Adding coverage:DECCiphers.pas (DECCiphers) 3895 +Clearing BreakPoint at 004E81E1 +De-Activate DECCiphers.pas line 3895 BreakPoint at:004E81E1 +Adding coverage:DECCiphers.pas (DECCiphers) 3898 +Clearing BreakPoint at 004E81F6 +De-Activate DECCiphers.pas line 3898 BreakPoint at:004E81F6 +Adding coverage:DECCiphers.pas (DECCiphers) 3899 +Clearing BreakPoint at 004E81FE +De-Activate DECCiphers.pas line 3899 BreakPoint at:004E81FE +Adding coverage:DECCiphers.pas (DECCiphers) 3900 +Clearing BreakPoint at 004E8205 +De-Activate DECCiphers.pas line 3900 BreakPoint at:004E8205 +Adding coverage:DECCiphers.pas (DECCiphers) 3902 +Clearing BreakPoint at 004E820A +De-Activate DECCiphers.pas line 3902 BreakPoint at:004E820A +Adding coverage:DECCiphers.pas (DECCiphers) 3903 +Clearing BreakPoint at 004E821A +De-Activate DECCiphers.pas line 3903 BreakPoint at:004E821A +Adding coverage:DECCiphers.pas (DECCiphers) 3904 +Clearing BreakPoint at 004E8220 +De-Activate DECCiphers.pas line 3904 BreakPoint at:004E8220 +Adding coverage:DECCiphers.pas (DECCiphers) 3907 +Clearing BreakPoint at 004E8244 +De-Activate DECCiphers.pas line 3907 BreakPoint at:004E8244 +Adding coverage:DECCiphers.pas (DECCiphers) 3900 +Clearing BreakPoint at 004E8247 +De-Activate DECCiphers.pas line 3900 BreakPoint at:004E8247 +Adding coverage:DECCiphers.pas (DECCiphers) 3906 +Clearing BreakPoint at 004E8233 +De-Activate DECCiphers.pas line 3906 BreakPoint at:004E8233 +Adding coverage:DECCiphers.pas (DECCiphers) 3908 +Clearing BreakPoint at 004E824D +De-Activate DECCiphers.pas line 3908 BreakPoint at:004E824D +Adding coverage:DECCiphers.pas (DECCiphers) 3910 +Clearing BreakPoint at 004E8254 +De-Activate DECCiphers.pas line 3910 BreakPoint at:004E8254 +Adding coverage:DECCiphers.pas (DECCiphers) 3911 +Clearing BreakPoint at 004E8264 +De-Activate DECCiphers.pas line 3911 BreakPoint at:004E8264 +Adding coverage:DECCiphers.pas (DECCiphers) 3912 +Clearing BreakPoint at 004E826A +De-Activate DECCiphers.pas line 3912 BreakPoint at:004E826A +Adding coverage:DECCiphers.pas (DECCiphers) 3915 +Clearing BreakPoint at 004E828E +De-Activate DECCiphers.pas line 3915 BreakPoint at:004E828E +Adding coverage:DECCiphers.pas (DECCiphers) 3908 +Clearing BreakPoint at 004E8291 +De-Activate DECCiphers.pas line 3908 BreakPoint at:004E8291 +Adding coverage:DECCiphers.pas (DECCiphers) 3914 +Clearing BreakPoint at 004E827D +De-Activate DECCiphers.pas line 3914 BreakPoint at:004E827D +Adding coverage:DECCiphers.pas (DECCiphers) 3916 +Clearing BreakPoint at 004E8297 +De-Activate DECCiphers.pas line 3916 BreakPoint at:004E8297 +Adding coverage:DECCiphers.pas (DECCiphers) 3917 +Clearing BreakPoint at 004E829E +De-Activate DECCiphers.pas line 3917 BreakPoint at:004E829E +Adding coverage:DECCiphers.pas (DECCiphers) 3919 +Clearing BreakPoint at 004E82A3 +De-Activate DECCiphers.pas line 3919 BreakPoint at:004E82A3 +Adding coverage:DECCiphers.pas (DECCiphers) 3920 +Clearing BreakPoint at 004E82A6 +De-Activate DECCiphers.pas line 3920 BreakPoint at:004E82A6 +Adding coverage:DECCiphers.pas (DECCiphers) 3921 +Clearing BreakPoint at 004E82BC +De-Activate DECCiphers.pas line 3921 BreakPoint at:004E82BC +Adding coverage:DECCiphers.pas (DECCiphers) 3922 +Clearing BreakPoint at 004E82C9 +De-Activate DECCiphers.pas line 3922 BreakPoint at:004E82C9 +Adding coverage:DECCiphers.pas (DECCiphers) 3924 +Clearing BreakPoint at 004E82ED +De-Activate DECCiphers.pas line 3924 BreakPoint at:004E82ED +Adding coverage:DECCiphers.pas (DECCiphers) 3917 +Clearing BreakPoint at 004E82F0 +De-Activate DECCiphers.pas line 3917 BreakPoint at:004E82F0 +Adding coverage:DECCiphers.pas (DECCiphers) 3923 +Clearing BreakPoint at 004E82E0 +De-Activate DECCiphers.pas line 3923 BreakPoint at:004E82E0 +Adding coverage:DECCiphers.pas (DECCiphers) 3925 +Clearing BreakPoint at 004E82F6 +De-Activate DECCiphers.pas line 3925 BreakPoint at:004E82F6 +Adding coverage:DECCiphers.pas (DECCiphers) 3893 +Clearing BreakPoint at 004E82F9 +De-Activate DECCiphers.pas line 3893 BreakPoint at:004E82F9 +Adding coverage:DECCiphers.pas (DECCiphers) 3926 +Clearing BreakPoint at 004E8303 +De-Activate DECCiphers.pas line 3926 BreakPoint at:004E8303 +Adding coverage:DECCiphers.pas (DECCiphers) 3928 +Clearing BreakPoint at 004E8308 +De-Activate DECCiphers.pas line 3928 BreakPoint at:004E8308 +Adding coverage:DECCiphers.pas (DECCiphers) 3929 +Clearing BreakPoint at 004E8310 +De-Activate DECCiphers.pas line 3929 BreakPoint at:004E8310 +Adding coverage:DECCiphers.pas (DECCiphers) 3930 +Clearing BreakPoint at 004E8317 +De-Activate DECCiphers.pas line 3930 BreakPoint at:004E8317 +Adding coverage:DECCiphers.pas (DECCiphers) 3934 +Clearing BreakPoint at 004E836D +De-Activate DECCiphers.pas line 3934 BreakPoint at:004E836D +Adding coverage:DECCiphers.pas (DECCiphers) 3938 +Clearing BreakPoint at 004E83BB +De-Activate DECCiphers.pas line 3938 BreakPoint at:004E83BB +Adding coverage:DECCiphers.pas (DECCiphers) 3939 +Clearing BreakPoint at 004E83C4 +De-Activate DECCiphers.pas line 3939 BreakPoint at:004E83C4 +Adding coverage:DECCiphers.pas (DECCiphers) 3926 +Clearing BreakPoint at 004E83C7 +De-Activate DECCiphers.pas line 3926 BreakPoint at:004E83C7 +Adding coverage:DECCiphers.pas (DECCiphers) 3940 +Clearing BreakPoint at 004E83D1 +De-Activate DECCiphers.pas line 3940 BreakPoint at:004E83D1 +Adding coverage:DECCiphers.pas (DECCiphers) 3941 +Clearing BreakPoint at 004E83E1 +De-Activate DECCiphers.pas line 3941 BreakPoint at:004E83E1 +Adding coverage:DECCiphers.pas (DECCiphers) 3942 +Clearing BreakPoint at 004E83EE +De-Activate DECCiphers.pas line 3942 BreakPoint at:004E83EE +Adding coverage:DECCiphers.pas (DECCiphers) 3943 +Clearing BreakPoint at 004E83FE +De-Activate DECCiphers.pas line 3943 BreakPoint at:004E83FE +Adding coverage:DECCiphers.pas (DECCiphers) 3966 +Clearing BreakPoint at 004E84A9 +De-Activate DECCiphers.pas line 3966 BreakPoint at:004E84A9 +Adding coverage:DECCiphers.pas (DECCiphers) 3896 +Clearing BreakPoint at 004E81E7 +De-Activate DECCiphers.pas line 3896 BreakPoint at:004E81E7 +Adding coverage:DECCiphers.pas (DECCiphers) 3967 +Clearing BreakPoint at 004E84C7 +De-Activate DECCiphers.pas line 3967 BreakPoint at:004E84C7 +Adding coverage:DECCiphers.pas (DECCiphers) 3970 +Clearing BreakPoint at 004E84D4 +De-Activate DECCiphers.pas line 3970 BreakPoint at:004E84D4 +Adding coverage:DECCiphers.pas (DECCiphers) 3973 +Clearing BreakPoint at 004E84D8 +De-Activate DECCiphers.pas line 3973 BreakPoint at:004E84D8 +Adding coverage:DECCiphers.pas (DECCiphers) 3974 +Clearing BreakPoint at 004E84E7 +De-Activate DECCiphers.pas line 3974 BreakPoint at:004E84E7 +Adding coverage:DECCiphers.pas (DECCiphers) 3975 +Clearing BreakPoint at 004E850E +De-Activate DECCiphers.pas line 3975 BreakPoint at:004E850E +Adding coverage:DECCiphers.pas (DECCiphers) 3831 +Clearing BreakPoint at 004E7DF8 +De-Activate DECCiphers.pas line 3831 BreakPoint at:004E7DF8 +Adding coverage:DECCiphers.pas (DECCiphers) 3832 +Clearing BreakPoint at 004E7E07 +De-Activate DECCiphers.pas line 3832 BreakPoint at:004E7E07 +Adding coverage:DECCiphers.pas (DECCiphers) 3833 +Clearing BreakPoint at 004E7E14 +De-Activate DECCiphers.pas line 3833 BreakPoint at:004E7E14 +Adding coverage:DECCiphers.pas (DECCiphers) 3835 +Clearing BreakPoint at 004E7E22 +De-Activate DECCiphers.pas line 3835 BreakPoint at:004E7E22 +Adding coverage:DECCiphers.pas (DECCiphers) 3836 +Clearing BreakPoint at 004E7E42 +De-Activate DECCiphers.pas line 3836 BreakPoint at:004E7E42 +Adding coverage:DECCiphers.pas (DECCiphers) 3837 +Clearing BreakPoint at 004E7E62 +De-Activate DECCiphers.pas line 3837 BreakPoint at:004E7E62 +Adding coverage:DECCiphers.pas (DECCiphers) 3838 +Clearing BreakPoint at 004E7E82 +De-Activate DECCiphers.pas line 3838 BreakPoint at:004E7E82 +Adding coverage:DECCiphers.pas (DECCiphers) 3840 +Clearing BreakPoint at 004E7EA2 +De-Activate DECCiphers.pas line 3840 BreakPoint at:004E7EA2 +Adding coverage:DECCiphers.pas (DECCiphers) 3841 +Clearing BreakPoint at 004E7EB2 +De-Activate DECCiphers.pas line 3841 BreakPoint at:004E7EB2 +Adding coverage:DECCiphers.pas (DECCiphers) 3842 +Clearing BreakPoint at 004E7EC0 +De-Activate DECCiphers.pas line 3842 BreakPoint at:004E7EC0 +Adding coverage:DECCiphers.pas (DECCiphers) 3843 +Clearing BreakPoint at 004E7EC6 +De-Activate DECCiphers.pas line 3843 BreakPoint at:004E7EC6 +Adding coverage:DECCiphers.pas (DECCiphers) 3844 +Clearing BreakPoint at 004E7ECC +De-Activate DECCiphers.pas line 3844 BreakPoint at:004E7ECC +Adding coverage:DECCiphers.pas (DECCiphers) 3846 +Clearing BreakPoint at 004E7EDC +De-Activate DECCiphers.pas line 3846 BreakPoint at:004E7EDC +Adding coverage:DECCiphers.pas (DECCiphers) 3848 +Clearing BreakPoint at 004E7EE1 +De-Activate DECCiphers.pas line 3848 BreakPoint at:004E7EE1 +Adding coverage:DECCiphers.pas (DECCiphers) 3849 +Clearing BreakPoint at 004E7EF7 +De-Activate DECCiphers.pas line 3849 BreakPoint at:004E7EF7 +Adding coverage:DECCiphers.pas (DECCiphers) 3850 +Clearing BreakPoint at 004E7F03 +De-Activate DECCiphers.pas line 3850 BreakPoint at:004E7F03 +Adding coverage:DECCiphers.pas (DECCiphers) 3855 +Clearing BreakPoint at 004E7FAC +De-Activate DECCiphers.pas line 3855 BreakPoint at:004E7FAC +Adding coverage:DECCiphers.pas (DECCiphers) 3856 +Clearing BreakPoint at 004E7FC3 +De-Activate DECCiphers.pas line 3856 BreakPoint at:004E7FC3 +Adding coverage:DECCiphers.pas (DECCiphers) 3857 +Clearing BreakPoint at 004E7FCF +De-Activate DECCiphers.pas line 3857 BreakPoint at:004E7FCF +Adding coverage:DECCiphers.pas (DECCiphers) 3861 +Clearing BreakPoint at 004E8078 +De-Activate DECCiphers.pas line 3861 BreakPoint at:004E8078 +Adding coverage:DECCiphers.pas (DECCiphers) 3862 +Clearing BreakPoint at 004E8081 +De-Activate DECCiphers.pas line 3862 BreakPoint at:004E8081 +Adding coverage:DECCiphers.pas (DECCiphers) 3846 +Clearing BreakPoint at 004E8084 +De-Activate DECCiphers.pas line 3846 BreakPoint at:004E8084 +Adding coverage:DECCiphers.pas (DECCiphers) 3864 +Clearing BreakPoint at 004E808E +De-Activate DECCiphers.pas line 3864 BreakPoint at:004E808E +Adding coverage:DECCiphers.pas (DECCiphers) 3865 +Clearing BreakPoint at 004E809E +De-Activate DECCiphers.pas line 3865 BreakPoint at:004E809E +Adding coverage:DECCiphers.pas (DECCiphers) 3866 +Clearing BreakPoint at 004E80AC +De-Activate DECCiphers.pas line 3866 BreakPoint at:004E80AC +Adding coverage:DECCiphers.pas (DECCiphers) 3867 +Clearing BreakPoint at 004E80B2 +De-Activate DECCiphers.pas line 3867 BreakPoint at:004E80B2 +Adding coverage:DECCiphers.pas (DECCiphers) 3868 +Clearing BreakPoint at 004E80B8 +De-Activate DECCiphers.pas line 3868 BreakPoint at:004E80B8 +Adding coverage:DECCiphers.pas (DECCiphers) 3870 +Clearing BreakPoint at 004E80C8 +De-Activate DECCiphers.pas line 3870 BreakPoint at:004E80C8 +Adding coverage:DECCiphers.pas (DECCiphers) 3871 +Clearing BreakPoint at 004E80E8 +De-Activate DECCiphers.pas line 3871 BreakPoint at:004E80E8 +Adding coverage:DECCiphers.pas (DECCiphers) 3872 +Clearing BreakPoint at 004E8108 +De-Activate DECCiphers.pas line 3872 BreakPoint at:004E8108 +Adding coverage:DECCiphers.pas (DECCiphers) 3873 +Clearing BreakPoint at 004E8128 +De-Activate DECCiphers.pas line 3873 BreakPoint at:004E8128 +Adding coverage:DECCiphers.pas (DECCiphers) 3875 +Clearing BreakPoint at 004E8148 +De-Activate DECCiphers.pas line 3875 BreakPoint at:004E8148 +Adding coverage:DECCiphers.pas (DECCiphers) 3876 +Clearing BreakPoint at 004E8155 +De-Activate DECCiphers.pas line 3876 BreakPoint at:004E8155 +Adding coverage:DECCiphers.pas (DECCiphers) 3877 +Clearing BreakPoint at 004E8163 +De-Activate DECCiphers.pas line 3877 BreakPoint at:004E8163 +Adding coverage:DECCiphers.pas (DECCiphers) 3976 +Clearing BreakPoint at 004E851F +De-Activate DECCiphers.pas line 3976 BreakPoint at:004E851F +Adding coverage:DECCiphers.pas (DECCiphers) 3979 +Clearing BreakPoint at 004E85D4 +De-Activate DECCiphers.pas line 3979 BreakPoint at:004E85D4 +Adding coverage:DECCiphers.pas (DECCiphers) 3980 +Clearing BreakPoint at 004E85E3 +De-Activate DECCiphers.pas line 3980 BreakPoint at:004E85E3 +Adding coverage:DECCiphers.pas (DECCiphers) 3981 +Clearing BreakPoint at 004E860A +De-Activate DECCiphers.pas line 3981 BreakPoint at:004E860A +Adding coverage:DECCiphers.pas (DECCiphers) 3982 +Clearing BreakPoint at 004E8621 +De-Activate DECCiphers.pas line 3982 BreakPoint at:004E8621 +Adding coverage:DECCiphers.pas (DECCiphers) 3987 +Clearing BreakPoint at 004E86D4 +De-Activate DECCiphers.pas line 3987 BreakPoint at:004E86D4 +Adding coverage:DECCiphers.pas (DECCiphers) 3988 +Clearing BreakPoint at 004E86E0 +De-Activate DECCiphers.pas line 3988 BreakPoint at:004E86E0 +Adding coverage:DECCiphers.pas (DECCiphers) 3989 +Clearing BreakPoint at 004E86E9 +De-Activate DECCiphers.pas line 3989 BreakPoint at:004E86E9 +Adding coverage:DECCiphers.pas (DECCiphers) 3990 +Clearing BreakPoint at 004E86F3 +De-Activate DECCiphers.pas line 3990 BreakPoint at:004E86F3 +Adding coverage:DECCiphers.pas (DECCiphers) 3991 +Clearing BreakPoint at 004E86FD +De-Activate DECCiphers.pas line 3991 BreakPoint at:004E86FD +Adding coverage:DECCiphers.pas (DECCiphers) 3992 +Clearing BreakPoint at 004E8707 +De-Activate DECCiphers.pas line 3992 BreakPoint at:004E8707 +Adding coverage:DECCiphers.pas (DECCiphers) 3993 +Clearing BreakPoint at 004E870E +De-Activate DECCiphers.pas line 3993 BreakPoint at:004E870E +Adding coverage:DECCiphers.pas (DECCiphers) 3994 +Clearing BreakPoint at 004E8717 +De-Activate DECCiphers.pas line 3994 BreakPoint at:004E8717 +Adding coverage:DECCiphers.pas (DECCiphers) 3995 +Clearing BreakPoint at 004E8720 +De-Activate DECCiphers.pas line 3995 BreakPoint at:004E8720 +Adding coverage:DECCiphers.pas (DECCiphers) 3996 +Clearing BreakPoint at 004E872C +De-Activate DECCiphers.pas line 3996 BreakPoint at:004E872C +Adding coverage:DECCiphers.pas (DECCiphers) 4002 +Clearing BreakPoint at 004E8734 +De-Activate DECCiphers.pas line 4002 BreakPoint at:004E8734 +Adding coverage:DECCiphers.pas (DECCiphers) 4003 +Clearing BreakPoint at 004E8743 +De-Activate DECCiphers.pas line 4003 BreakPoint at:004E8743 +Adding coverage:DECCiphers.pas (DECCiphers) 4004 +Clearing BreakPoint at 004E8752 +De-Activate DECCiphers.pas line 4004 BreakPoint at:004E8752 +Adding coverage:DECCiphers.pas (DECCiphers) 4005 +Clearing BreakPoint at 004E8760 +De-Activate DECCiphers.pas line 4005 BreakPoint at:004E8760 +Adding coverage:DECCiphers.pas (DECCiphers) 4006 +Clearing BreakPoint at 004E8769 +De-Activate DECCiphers.pas line 4006 BreakPoint at:004E8769 +Adding coverage:DECCiphers.pas (DECCiphers) 4007 +Clearing BreakPoint at 004E877C +De-Activate DECCiphers.pas line 4007 BreakPoint at:004E877C +Adding coverage:DECCiphers.pas (DECCiphers) 4008 +Clearing BreakPoint at 004E8794 +De-Activate DECCiphers.pas line 4008 BreakPoint at:004E8794 +Adding coverage:DECCiphers.pas (DECCiphers) 4009 +Clearing BreakPoint at 004E87AC +De-Activate DECCiphers.pas line 4009 BreakPoint at:004E87AC +Adding coverage:DECCiphers.pas (DECCiphers) 4010 +Clearing BreakPoint at 004E87C4 +De-Activate DECCiphers.pas line 4010 BreakPoint at:004E87C4 +Adding coverage:DECCiphers.pas (DECCiphers) 4013 +Clearing BreakPoint at 004E87D1 +De-Activate DECCiphers.pas line 4013 BreakPoint at:004E87D1 +Adding coverage:DECCiphers.pas (DECCiphers) 4016 +Clearing BreakPoint at 004E87D8 +De-Activate DECCiphers.pas line 4016 BreakPoint at:004E87D8 +Adding coverage:DECCiphers.pas (DECCiphers) 4017 +Clearing BreakPoint at 004E87E7 +De-Activate DECCiphers.pas line 4017 BreakPoint at:004E87E7 +Adding coverage:DECCiphers.pas (DECCiphers) 4018 +Clearing BreakPoint at 004E880E +De-Activate DECCiphers.pas line 4018 BreakPoint at:004E880E +Adding coverage:DECCiphers.pas (DECCiphers) 4019 +Clearing BreakPoint at 004E881F +De-Activate DECCiphers.pas line 4019 BreakPoint at:004E881F +Adding coverage:DECCiphers.pas (DECCiphers) 4020 +Clearing BreakPoint at 004E8836 +De-Activate DECCiphers.pas line 4020 BreakPoint at:004E8836 +Adding coverage:DECCiphers.pas (DECCiphers) 4021 +Clearing BreakPoint at 004E8847 +De-Activate DECCiphers.pas line 4021 BreakPoint at:004E8847 +Adding coverage:DECCiphers.pas (DECCiphers) 4024 +Clearing BreakPoint at 004E88FC +De-Activate DECCiphers.pas line 4024 BreakPoint at:004E88FC +Adding coverage:DECCiphers.pas (DECCiphers) 4025 +Clearing BreakPoint at 004E890B +De-Activate DECCiphers.pas line 4025 BreakPoint at:004E890B +Adding coverage:DECCiphers.pas (DECCiphers) 4026 +Clearing BreakPoint at 004E8932 +De-Activate DECCiphers.pas line 4026 BreakPoint at:004E8932 +Adding coverage:DECCiphers.pas (DECCiphers) 4027 +Clearing BreakPoint at 004E8949 +De-Activate DECCiphers.pas line 4027 BreakPoint at:004E8949 +Adding coverage:DECCiphers.pas (DECCiphers) 4028 +Clearing BreakPoint at 004E8960 +De-Activate DECCiphers.pas line 4028 BreakPoint at:004E8960 +Adding coverage:DECCiphers.pas (DECCiphers) 4029 +Clearing BreakPoint at 004E8977 +De-Activate DECCiphers.pas line 4029 BreakPoint at:004E8977 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1204 +Clearing BreakPoint at 004D9C25 +De-Activate DECCipherModes.pas line 1204 BreakPoint at:004D9C25 +Adding coverage:DECCiphers.pas (DECCiphers) 4034 +Clearing BreakPoint at 004E8A2C +De-Activate DECCiphers.pas line 4034 BreakPoint at:004E8A2C +Adding coverage:DECCiphers.pas (DECCiphers) 4035 +Clearing BreakPoint at 004E8A38 +De-Activate DECCiphers.pas line 4035 BreakPoint at:004E8A38 +Adding coverage:DECCiphers.pas (DECCiphers) 4036 +Clearing BreakPoint at 004E8A41 +De-Activate DECCiphers.pas line 4036 BreakPoint at:004E8A41 +Adding coverage:DECCiphers.pas (DECCiphers) 4037 +Clearing BreakPoint at 004E8A4B +De-Activate DECCiphers.pas line 4037 BreakPoint at:004E8A4B +Adding coverage:DECCiphers.pas (DECCiphers) 4038 +Clearing BreakPoint at 004E8A55 +De-Activate DECCiphers.pas line 4038 BreakPoint at:004E8A55 +Adding coverage:DECCiphers.pas (DECCiphers) 4039 +Clearing BreakPoint at 004E8A5F +De-Activate DECCiphers.pas line 4039 BreakPoint at:004E8A5F +Adding coverage:DECCiphers.pas (DECCiphers) 4040 +Clearing BreakPoint at 004E8A66 +De-Activate DECCiphers.pas line 4040 BreakPoint at:004E8A66 +Adding coverage:DECCiphers.pas (DECCiphers) 4041 +Clearing BreakPoint at 004E8A6F +De-Activate DECCiphers.pas line 4041 BreakPoint at:004E8A6F +Adding coverage:DECCiphers.pas (DECCiphers) 4042 +Clearing BreakPoint at 004E8A78 +De-Activate DECCiphers.pas line 4042 BreakPoint at:004E8A78 +Adding coverage:DECCiphers.pas (DECCiphers) 4043 +Clearing BreakPoint at 004E8A84 +De-Activate DECCiphers.pas line 4043 BreakPoint at:004E8A84 +Adding coverage:DECCiphers.pas (DECCiphers) 4049 +Clearing BreakPoint at 004E8A8C +De-Activate DECCiphers.pas line 4049 BreakPoint at:004E8A8C +Adding coverage:DECCiphers.pas (DECCiphers) 4050 +Clearing BreakPoint at 004E8A9B +De-Activate DECCiphers.pas line 4050 BreakPoint at:004E8A9B +Adding coverage:DECCiphers.pas (DECCiphers) 4051 +Clearing BreakPoint at 004E8AAA +De-Activate DECCiphers.pas line 4051 BreakPoint at:004E8AAA +Adding coverage:DECCiphers.pas (DECCiphers) 4052 +Clearing BreakPoint at 004E8AB8 +De-Activate DECCiphers.pas line 4052 BreakPoint at:004E8AB8 +Adding coverage:DECCiphers.pas (DECCiphers) 4053 +Clearing BreakPoint at 004E8AC1 +De-Activate DECCiphers.pas line 4053 BreakPoint at:004E8AC1 +Adding coverage:DECCiphers.pas (DECCiphers) 4054 +Clearing BreakPoint at 004E8AD4 +De-Activate DECCiphers.pas line 4054 BreakPoint at:004E8AD4 +Adding coverage:DECCiphers.pas (DECCiphers) 4055 +Clearing BreakPoint at 004E8AEC +De-Activate DECCiphers.pas line 4055 BreakPoint at:004E8AEC +Adding coverage:DECCiphers.pas (DECCiphers) 4056 +Clearing BreakPoint at 004E8B04 +De-Activate DECCiphers.pas line 4056 BreakPoint at:004E8B04 +Adding coverage:DECCiphers.pas (DECCiphers) 4057 +Clearing BreakPoint at 004E8B1C +De-Activate DECCiphers.pas line 4057 BreakPoint at:004E8B1C +Adding coverage:DECCiphers.pas (DECCiphers) 4058 +Clearing BreakPoint at 004E8B34 +De-Activate DECCiphers.pas line 4058 BreakPoint at:004E8B34 +Adding coverage:DECCiphers.pas (DECCiphers) 4059 +Clearing BreakPoint at 004E8B4C +De-Activate DECCiphers.pas line 4059 BreakPoint at:004E8B4C +Adding coverage:DECCiphers.pas (DECCiphers) 4062 +Clearing BreakPoint at 004E8B59 +De-Activate DECCiphers.pas line 4062 BreakPoint at:004E8B59 +Adding coverage:DECCiphers.pas (DECCiphers) 4065 +Clearing BreakPoint at 004E8B60 +De-Activate DECCiphers.pas line 4065 BreakPoint at:004E8B60 +Adding coverage:DECCiphers.pas (DECCiphers) 4066 +Clearing BreakPoint at 004E8B6F +De-Activate DECCiphers.pas line 4066 BreakPoint at:004E8B6F +Adding coverage:DECCiphers.pas (DECCiphers) 4067 +Clearing BreakPoint at 004E8B96 +De-Activate DECCiphers.pas line 4067 BreakPoint at:004E8B96 +Adding coverage:DECCiphers.pas (DECCiphers) 4068 +Clearing BreakPoint at 004E8BA7 +De-Activate DECCiphers.pas line 4068 BreakPoint at:004E8BA7 +Adding coverage:DECCiphers.pas (DECCiphers) 4069 +Clearing BreakPoint at 004E8BBE +De-Activate DECCiphers.pas line 4069 BreakPoint at:004E8BBE +Adding coverage:DECCiphers.pas (DECCiphers) 4070 +Clearing BreakPoint at 004E8BD5 +De-Activate DECCiphers.pas line 4070 BreakPoint at:004E8BD5 +Adding coverage:DECCiphers.pas (DECCiphers) 4073 +Clearing BreakPoint at 004E8C88 +De-Activate DECCiphers.pas line 4073 BreakPoint at:004E8C88 +Adding coverage:DECCiphers.pas (DECCiphers) 4074 +Clearing BreakPoint at 004E8C97 +De-Activate DECCiphers.pas line 4074 BreakPoint at:004E8C97 +Adding coverage:DECCiphers.pas (DECCiphers) 4075 +Clearing BreakPoint at 004E8CBE +De-Activate DECCiphers.pas line 4075 BreakPoint at:004E8CBE +Adding coverage:DECCiphers.pas (DECCiphers) 4076 +Clearing BreakPoint at 004E8CD5 +De-Activate DECCiphers.pas line 4076 BreakPoint at:004E8CD5 +Adding coverage:DECCiphers.pas (DECCiphers) 4077 +Clearing BreakPoint at 004E8CEC +De-Activate DECCiphers.pas line 4077 BreakPoint at:004E8CEC +Adding coverage:DECCiphers.pas (DECCiphers) 4078 +Clearing BreakPoint at 004E8D03 +De-Activate DECCiphers.pas line 4078 BreakPoint at:004E8D03 +Adding coverage:DECCiphers.pas (DECCiphers) 4083 +Clearing BreakPoint at 004E8DB8 +De-Activate DECCiphers.pas line 4083 BreakPoint at:004E8DB8 +Adding coverage:DECCiphers.pas (DECCiphers) 4084 +Clearing BreakPoint at 004E8DC4 +De-Activate DECCiphers.pas line 4084 BreakPoint at:004E8DC4 +Adding coverage:DECCiphers.pas (DECCiphers) 4085 +Clearing BreakPoint at 004E8DCF +De-Activate DECCiphers.pas line 4085 BreakPoint at:004E8DCF +Adding coverage:DECCiphers.pas (DECCiphers) 4086 +Clearing BreakPoint at 004E8DD9 +De-Activate DECCiphers.pas line 4086 BreakPoint at:004E8DD9 +Adding coverage:DECCiphers.pas (DECCiphers) 4087 +Clearing BreakPoint at 004E8DE3 +De-Activate DECCiphers.pas line 4087 BreakPoint at:004E8DE3 +Adding coverage:DECCiphers.pas (DECCiphers) 4088 +Clearing BreakPoint at 004E8DEC +De-Activate DECCiphers.pas line 4088 BreakPoint at:004E8DEC +Adding coverage:DECCiphers.pas (DECCiphers) 4089 +Clearing BreakPoint at 004E8DF5 +De-Activate DECCiphers.pas line 4089 BreakPoint at:004E8DF5 +Adding coverage:DECCiphers.pas (DECCiphers) 4090 +Clearing BreakPoint at 004E8E01 +De-Activate DECCiphers.pas line 4090 BreakPoint at:004E8E01 +Adding coverage:DECCiphers.pas (DECCiphers) 4095 +Clearing BreakPoint at 004E8E0C +De-Activate DECCiphers.pas line 4095 BreakPoint at:004E8E0C +Adding coverage:DECCiphers.pas (DECCiphers) 4096 +Clearing BreakPoint at 004E8E1B +De-Activate DECCiphers.pas line 4096 BreakPoint at:004E8E1B +Adding coverage:DECCiphers.pas (DECCiphers) 4098 +Clearing BreakPoint at 004E8E42 +De-Activate DECCiphers.pas line 4098 BreakPoint at:004E8E42 +Adding coverage:DECCiphers.pas (DECCiphers) 4099 +Clearing BreakPoint at 004E8E53 +De-Activate DECCiphers.pas line 4099 BreakPoint at:004E8E53 +Adding coverage:DECCiphers.pas (DECCiphers) 4100 +Clearing BreakPoint at 004E8E6A +De-Activate DECCiphers.pas line 4100 BreakPoint at:004E8E6A +Adding coverage:DECCiphers.pas (DECCiphers) 4101 +Clearing BreakPoint at 004E8E73 +De-Activate DECCiphers.pas line 4101 BreakPoint at:004E8E73 +Adding coverage:DECCiphers.pas (DECCiphers) 4102 +Clearing BreakPoint at 004E8E7F +De-Activate DECCiphers.pas line 4102 BreakPoint at:004E8E7F +Adding coverage:DECCiphers.pas (DECCiphers) 4103 +Clearing BreakPoint at 004E8E88 +De-Activate DECCiphers.pas line 4103 BreakPoint at:004E8E88 +Adding coverage:DECCiphers.pas (DECCiphers) 4104 +Clearing BreakPoint at 004E8E9F +De-Activate DECCiphers.pas line 4104 BreakPoint at:004E8E9F +Adding coverage:DECCiphers.pas (DECCiphers) 4105 +Clearing BreakPoint at 004E8EBC +De-Activate DECCiphers.pas line 4105 BreakPoint at:004E8EBC +Adding coverage:DECCiphers.pas (DECCiphers) 4106 +Clearing BreakPoint at 004E8EC5 +De-Activate DECCiphers.pas line 4106 BreakPoint at:004E8EC5 +Adding coverage:DECCiphers.pas (DECCiphers) 4107 +Clearing BreakPoint at 004E8ED1 +De-Activate DECCiphers.pas line 4107 BreakPoint at:004E8ED1 +Adding coverage:DECCiphers.pas (DECCiphers) 4108 +Clearing BreakPoint at 004E8EDA +De-Activate DECCiphers.pas line 4108 BreakPoint at:004E8EDA +Adding coverage:DECCiphers.pas (DECCiphers) 4109 +Clearing BreakPoint at 004E8EEB +De-Activate DECCiphers.pas line 4109 BreakPoint at:004E8EEB +Adding coverage:DECCiphers.pas (DECCiphers) 4110 +Clearing BreakPoint at 004E8F02 +De-Activate DECCiphers.pas line 4110 BreakPoint at:004E8F02 +Adding coverage:DECCiphers.pas (DECCiphers) 4115 +Clearing BreakPoint at 004E8FB4 +De-Activate DECCiphers.pas line 4115 BreakPoint at:004E8FB4 +Adding coverage:DECCiphers.pas (DECCiphers) 4116 +Clearing BreakPoint at 004E8FC3 +De-Activate DECCiphers.pas line 4116 BreakPoint at:004E8FC3 +Adding coverage:DECCiphers.pas (DECCiphers) 4118 +Clearing BreakPoint at 004E8FEA +De-Activate DECCiphers.pas line 4118 BreakPoint at:004E8FEA +Adding coverage:DECCiphers.pas (DECCiphers) 4119 +Clearing BreakPoint at 004E9001 +De-Activate DECCiphers.pas line 4119 BreakPoint at:004E9001 +Adding coverage:DECCiphers.pas (DECCiphers) 4120 +Clearing BreakPoint at 004E901E +De-Activate DECCiphers.pas line 4120 BreakPoint at:004E901E +Adding coverage:DECCiphers.pas (DECCiphers) 4121 +Clearing BreakPoint at 004E9027 +De-Activate DECCiphers.pas line 4121 BreakPoint at:004E9027 +Adding coverage:DECCiphers.pas (DECCiphers) 4122 +Clearing BreakPoint at 004E9033 +De-Activate DECCiphers.pas line 4122 BreakPoint at:004E9033 +Adding coverage:DECCiphers.pas (DECCiphers) 4123 +Clearing BreakPoint at 004E903C +De-Activate DECCiphers.pas line 4123 BreakPoint at:004E903C +Adding coverage:DECCiphers.pas (DECCiphers) 4124 +Clearing BreakPoint at 004E9053 +De-Activate DECCiphers.pas line 4124 BreakPoint at:004E9053 +Adding coverage:DECCiphers.pas (DECCiphers) 4125 +Clearing BreakPoint at 004E9070 +De-Activate DECCiphers.pas line 4125 BreakPoint at:004E9070 +Adding coverage:DECCiphers.pas (DECCiphers) 4126 +Clearing BreakPoint at 004E9079 +De-Activate DECCiphers.pas line 4126 BreakPoint at:004E9079 +Adding coverage:DECCiphers.pas (DECCiphers) 4127 +Clearing BreakPoint at 004E9085 +De-Activate DECCiphers.pas line 4127 BreakPoint at:004E9085 +Adding coverage:DECCiphers.pas (DECCiphers) 4128 +Clearing BreakPoint at 004E908E +De-Activate DECCiphers.pas line 4128 BreakPoint at:004E908E +Adding coverage:DECCiphers.pas (DECCiphers) 4129 +Clearing BreakPoint at 004E90A5 +De-Activate DECCiphers.pas line 4129 BreakPoint at:004E90A5 +Adding coverage:DECCiphers.pas (DECCiphers) 4130 +Clearing BreakPoint at 004E90C2 +De-Activate DECCiphers.pas line 4130 BreakPoint at:004E90C2 +Adding coverage:DECCiphers.pas (DECCiphers) 4135 +Clearing BreakPoint at 004E9174 +De-Activate DECCiphers.pas line 4135 BreakPoint at:004E9174 +Adding coverage:DECCiphers.pas (DECCiphers) 4136 +Clearing BreakPoint at 004E9180 +De-Activate DECCiphers.pas line 4136 BreakPoint at:004E9180 +Adding coverage:DECCiphers.pas (DECCiphers) 4137 +Clearing BreakPoint at 004E918B +De-Activate DECCiphers.pas line 4137 BreakPoint at:004E918B +Adding coverage:DECCiphers.pas (DECCiphers) 4138 +Clearing BreakPoint at 004E9195 +De-Activate DECCiphers.pas line 4138 BreakPoint at:004E9195 +Adding coverage:DECCiphers.pas (DECCiphers) 4139 +Clearing BreakPoint at 004E919F +De-Activate DECCiphers.pas line 4139 BreakPoint at:004E919F +Adding coverage:DECCiphers.pas (DECCiphers) 4140 +Clearing BreakPoint at 004E91A8 +De-Activate DECCiphers.pas line 4140 BreakPoint at:004E91A8 +Adding coverage:DECCiphers.pas (DECCiphers) 4141 +Clearing BreakPoint at 004E91B1 +De-Activate DECCiphers.pas line 4141 BreakPoint at:004E91B1 +Adding coverage:DECCiphers.pas (DECCiphers) 4142 +Clearing BreakPoint at 004E91BD +De-Activate DECCiphers.pas line 4142 BreakPoint at:004E91BD +Adding coverage:DECCiphers.pas (DECCiphers) 4147 +Clearing BreakPoint at 004E91C8 +De-Activate DECCiphers.pas line 4147 BreakPoint at:004E91C8 +Adding coverage:DECCiphers.pas (DECCiphers) 4148 +Clearing BreakPoint at 004E91D7 +De-Activate DECCiphers.pas line 4148 BreakPoint at:004E91D7 +Adding coverage:DECCiphers.pas (DECCiphers) 4150 +Clearing BreakPoint at 004E91FE +De-Activate DECCiphers.pas line 4150 BreakPoint at:004E91FE +Adding coverage:DECCiphers.pas (DECCiphers) 4151 +Clearing BreakPoint at 004E920F +De-Activate DECCiphers.pas line 4151 BreakPoint at:004E920F +Adding coverage:DECCiphers.pas (DECCiphers) 4152 +Clearing BreakPoint at 004E9226 +De-Activate DECCiphers.pas line 4152 BreakPoint at:004E9226 +Adding coverage:DECCiphers.pas (DECCiphers) 4153 +Clearing BreakPoint at 004E922F +De-Activate DECCiphers.pas line 4153 BreakPoint at:004E922F +Adding coverage:DECCiphers.pas (DECCiphers) 4154 +Clearing BreakPoint at 004E923B +De-Activate DECCiphers.pas line 4154 BreakPoint at:004E923B +Adding coverage:DECCiphers.pas (DECCiphers) 4155 +Clearing BreakPoint at 004E9244 +De-Activate DECCiphers.pas line 4155 BreakPoint at:004E9244 +Adding coverage:DECCiphers.pas (DECCiphers) 4156 +Clearing BreakPoint at 004E925B +De-Activate DECCiphers.pas line 4156 BreakPoint at:004E925B +Adding coverage:DECCiphers.pas (DECCiphers) 4157 +Clearing BreakPoint at 004E9278 +De-Activate DECCiphers.pas line 4157 BreakPoint at:004E9278 +Adding coverage:DECCiphers.pas (DECCiphers) 4158 +Clearing BreakPoint at 004E9281 +De-Activate DECCiphers.pas line 4158 BreakPoint at:004E9281 +Adding coverage:DECCiphers.pas (DECCiphers) 4159 +Clearing BreakPoint at 004E928D +De-Activate DECCiphers.pas line 4159 BreakPoint at:004E928D +Adding coverage:DECCiphers.pas (DECCiphers) 4160 +Clearing BreakPoint at 004E9296 +De-Activate DECCiphers.pas line 4160 BreakPoint at:004E9296 +Adding coverage:DECCiphers.pas (DECCiphers) 4161 +Clearing BreakPoint at 004E92AD +De-Activate DECCiphers.pas line 4161 BreakPoint at:004E92AD +Adding coverage:DECCiphers.pas (DECCiphers) 4162 +Clearing BreakPoint at 004E92CA +De-Activate DECCiphers.pas line 4162 BreakPoint at:004E92CA +Adding coverage:DECCiphers.pas (DECCiphers) 4167 +Clearing BreakPoint at 004E937C +De-Activate DECCiphers.pas line 4167 BreakPoint at:004E937C +Adding coverage:DECCiphers.pas (DECCiphers) 4168 +Clearing BreakPoint at 004E938B +De-Activate DECCiphers.pas line 4168 BreakPoint at:004E938B +Adding coverage:DECCiphers.pas (DECCiphers) 4170 +Clearing BreakPoint at 004E93B2 +De-Activate DECCiphers.pas line 4170 BreakPoint at:004E93B2 +Adding coverage:DECCiphers.pas (DECCiphers) 4171 +Clearing BreakPoint at 004E93C9 +De-Activate DECCiphers.pas line 4171 BreakPoint at:004E93C9 +Adding coverage:DECCiphers.pas (DECCiphers) 4172 +Clearing BreakPoint at 004E93E6 +De-Activate DECCiphers.pas line 4172 BreakPoint at:004E93E6 +Adding coverage:DECCiphers.pas (DECCiphers) 4173 +Clearing BreakPoint at 004E93EF +De-Activate DECCiphers.pas line 4173 BreakPoint at:004E93EF +Adding coverage:DECCiphers.pas (DECCiphers) 4174 +Clearing BreakPoint at 004E93FB +De-Activate DECCiphers.pas line 4174 BreakPoint at:004E93FB +Adding coverage:DECCiphers.pas (DECCiphers) 4175 +Clearing BreakPoint at 004E9404 +De-Activate DECCiphers.pas line 4175 BreakPoint at:004E9404 +Adding coverage:DECCiphers.pas (DECCiphers) 4176 +Clearing BreakPoint at 004E941B +De-Activate DECCiphers.pas line 4176 BreakPoint at:004E941B +Adding coverage:DECCiphers.pas (DECCiphers) 4177 +Clearing BreakPoint at 004E9438 +De-Activate DECCiphers.pas line 4177 BreakPoint at:004E9438 +Adding coverage:DECCiphers.pas (DECCiphers) 4178 +Clearing BreakPoint at 004E9441 +De-Activate DECCiphers.pas line 4178 BreakPoint at:004E9441 +Adding coverage:DECCiphers.pas (DECCiphers) 4179 +Clearing BreakPoint at 004E944D +De-Activate DECCiphers.pas line 4179 BreakPoint at:004E944D +Adding coverage:DECCiphers.pas (DECCiphers) 4180 +Clearing BreakPoint at 004E9456 +De-Activate DECCiphers.pas line 4180 BreakPoint at:004E9456 +Adding coverage:DECCiphers.pas (DECCiphers) 4181 +Clearing BreakPoint at 004E946D +De-Activate DECCiphers.pas line 4181 BreakPoint at:004E946D +Adding coverage:DECCiphers.pas (DECCiphers) 4182 +Clearing BreakPoint at 004E948A +De-Activate DECCiphers.pas line 4182 BreakPoint at:004E948A +Adding coverage:DECCiphers.pas (DECCiphers) 4187 +Clearing BreakPoint at 004E953C +De-Activate DECCiphers.pas line 4187 BreakPoint at:004E953C +Adding coverage:DECCiphers.pas (DECCiphers) 4188 +Clearing BreakPoint at 004E9548 +De-Activate DECCiphers.pas line 4188 BreakPoint at:004E9548 +Adding coverage:DECCiphers.pas (DECCiphers) 4189 +Clearing BreakPoint at 004E9553 +De-Activate DECCiphers.pas line 4189 BreakPoint at:004E9553 +Adding coverage:DECCiphers.pas (DECCiphers) 4190 +Clearing BreakPoint at 004E955D +De-Activate DECCiphers.pas line 4190 BreakPoint at:004E955D +Adding coverage:DECCiphers.pas (DECCiphers) 4191 +Clearing BreakPoint at 004E9567 +De-Activate DECCiphers.pas line 4191 BreakPoint at:004E9567 +Adding coverage:DECCiphers.pas (DECCiphers) 4192 +Clearing BreakPoint at 004E9570 +De-Activate DECCiphers.pas line 4192 BreakPoint at:004E9570 +Adding coverage:DECCiphers.pas (DECCiphers) 4193 +Clearing BreakPoint at 004E9579 +De-Activate DECCiphers.pas line 4193 BreakPoint at:004E9579 +Adding coverage:DECCiphers.pas (DECCiphers) 4194 +Clearing BreakPoint at 004E9585 +De-Activate DECCiphers.pas line 4194 BreakPoint at:004E9585 +Adding coverage:DECCiphers.pas (DECCiphers) 4199 +Clearing BreakPoint at 004E9590 +De-Activate DECCiphers.pas line 4199 BreakPoint at:004E9590 +Adding coverage:DECCiphers.pas (DECCiphers) 4200 +Clearing BreakPoint at 004E959F +De-Activate DECCiphers.pas line 4200 BreakPoint at:004E959F +Adding coverage:DECCiphers.pas (DECCiphers) 4202 +Clearing BreakPoint at 004E95C6 +De-Activate DECCiphers.pas line 4202 BreakPoint at:004E95C6 +Adding coverage:DECCiphers.pas (DECCiphers) 4203 +Clearing BreakPoint at 004E95D7 +De-Activate DECCiphers.pas line 4203 BreakPoint at:004E95D7 +Adding coverage:DECCiphers.pas (DECCiphers) 4204 +Clearing BreakPoint at 004E95EE +De-Activate DECCiphers.pas line 4204 BreakPoint at:004E95EE +Adding coverage:DECCiphers.pas (DECCiphers) 4205 +Clearing BreakPoint at 004E9605 +De-Activate DECCiphers.pas line 4205 BreakPoint at:004E9605 +Adding coverage:DECCiphers.pas (DECCiphers) 4206 +Clearing BreakPoint at 004E960E +De-Activate DECCiphers.pas line 4206 BreakPoint at:004E960E +Adding coverage:DECCiphers.pas (DECCiphers) 4207 +Clearing BreakPoint at 004E961A +De-Activate DECCiphers.pas line 4207 BreakPoint at:004E961A +Adding coverage:DECCiphers.pas (DECCiphers) 4208 +Clearing BreakPoint at 004E9623 +De-Activate DECCiphers.pas line 4208 BreakPoint at:004E9623 +Adding coverage:DECCiphers.pas (DECCiphers) 4209 +Clearing BreakPoint at 004E962C +De-Activate DECCiphers.pas line 4209 BreakPoint at:004E962C +Adding coverage:DECCiphers.pas (DECCiphers) 4210 +Clearing BreakPoint at 004E9638 +De-Activate DECCiphers.pas line 4210 BreakPoint at:004E9638 +Adding coverage:DECCiphers.pas (DECCiphers) 4211 +Clearing BreakPoint at 004E9641 +De-Activate DECCiphers.pas line 4211 BreakPoint at:004E9641 +Adding coverage:DECCiphers.pas (DECCiphers) 4212 +Clearing BreakPoint at 004E9658 +De-Activate DECCiphers.pas line 4212 BreakPoint at:004E9658 +Adding coverage:DECCiphers.pas (DECCiphers) 4213 +Clearing BreakPoint at 004E9675 +De-Activate DECCiphers.pas line 4213 BreakPoint at:004E9675 +Adding coverage:DECCiphers.pas (DECCiphers) 4214 +Clearing BreakPoint at 004E9692 +De-Activate DECCiphers.pas line 4214 BreakPoint at:004E9692 +Adding coverage:DECCiphers.pas (DECCiphers) 4215 +Clearing BreakPoint at 004E969B +De-Activate DECCiphers.pas line 4215 BreakPoint at:004E969B +Adding coverage:DECCiphers.pas (DECCiphers) 4216 +Clearing BreakPoint at 004E96A7 +De-Activate DECCiphers.pas line 4216 BreakPoint at:004E96A7 +Adding coverage:DECCiphers.pas (DECCiphers) 4217 +Clearing BreakPoint at 004E96B0 +De-Activate DECCiphers.pas line 4217 BreakPoint at:004E96B0 +Adding coverage:DECCiphers.pas (DECCiphers) 4218 +Clearing BreakPoint at 004E96B9 +De-Activate DECCiphers.pas line 4218 BreakPoint at:004E96B9 +Adding coverage:DECCiphers.pas (DECCiphers) 4219 +Clearing BreakPoint at 004E96C5 +De-Activate DECCiphers.pas line 4219 BreakPoint at:004E96C5 +Adding coverage:DECCiphers.pas (DECCiphers) 4220 +Clearing BreakPoint at 004E96CE +De-Activate DECCiphers.pas line 4220 BreakPoint at:004E96CE +Adding coverage:DECCiphers.pas (DECCiphers) 4221 +Clearing BreakPoint at 004E96E5 +De-Activate DECCiphers.pas line 4221 BreakPoint at:004E96E5 +Adding coverage:DECCiphers.pas (DECCiphers) 4222 +Clearing BreakPoint at 004E9702 +De-Activate DECCiphers.pas line 4222 BreakPoint at:004E9702 +Adding coverage:DECCiphers.pas (DECCiphers) 4223 +Clearing BreakPoint at 004E971F +De-Activate DECCiphers.pas line 4223 BreakPoint at:004E971F +Adding coverage:DECCiphers.pas (DECCiphers) 4228 +Clearing BreakPoint at 004E97D4 +De-Activate DECCiphers.pas line 4228 BreakPoint at:004E97D4 +Adding coverage:DECCiphers.pas (DECCiphers) 4229 +Clearing BreakPoint at 004E97E3 +De-Activate DECCiphers.pas line 4229 BreakPoint at:004E97E3 +Adding coverage:DECCiphers.pas (DECCiphers) 4231 +Clearing BreakPoint at 004E980A +De-Activate DECCiphers.pas line 4231 BreakPoint at:004E980A +Adding coverage:DECCiphers.pas (DECCiphers) 4232 +Clearing BreakPoint at 004E9821 +De-Activate DECCiphers.pas line 4232 BreakPoint at:004E9821 +Adding coverage:DECCiphers.pas (DECCiphers) 4233 +Clearing BreakPoint at 004E983E +De-Activate DECCiphers.pas line 4233 BreakPoint at:004E983E +Adding coverage:DECCiphers.pas (DECCiphers) 4234 +Clearing BreakPoint at 004E985B +De-Activate DECCiphers.pas line 4234 BreakPoint at:004E985B +Adding coverage:DECCiphers.pas (DECCiphers) 4235 +Clearing BreakPoint at 004E9864 +De-Activate DECCiphers.pas line 4235 BreakPoint at:004E9864 +Adding coverage:DECCiphers.pas (DECCiphers) 4236 +Clearing BreakPoint at 004E9870 +De-Activate DECCiphers.pas line 4236 BreakPoint at:004E9870 +Adding coverage:DECCiphers.pas (DECCiphers) 4237 +Clearing BreakPoint at 004E9879 +De-Activate DECCiphers.pas line 4237 BreakPoint at:004E9879 +Adding coverage:DECCiphers.pas (DECCiphers) 4238 +Clearing BreakPoint at 004E9882 +De-Activate DECCiphers.pas line 4238 BreakPoint at:004E9882 +Adding coverage:DECCiphers.pas (DECCiphers) 4239 +Clearing BreakPoint at 004E988E +De-Activate DECCiphers.pas line 4239 BreakPoint at:004E988E +Adding coverage:DECCiphers.pas (DECCiphers) 4240 +Clearing BreakPoint at 004E9897 +De-Activate DECCiphers.pas line 4240 BreakPoint at:004E9897 +Adding coverage:DECCiphers.pas (DECCiphers) 4241 +Clearing BreakPoint at 004E98AE +De-Activate DECCiphers.pas line 4241 BreakPoint at:004E98AE +Adding coverage:DECCiphers.pas (DECCiphers) 4242 +Clearing BreakPoint at 004E98CB +De-Activate DECCiphers.pas line 4242 BreakPoint at:004E98CB +Adding coverage:DECCiphers.pas (DECCiphers) 4243 +Clearing BreakPoint at 004E98E8 +De-Activate DECCiphers.pas line 4243 BreakPoint at:004E98E8 +Adding coverage:DECCiphers.pas (DECCiphers) 4244 +Clearing BreakPoint at 004E98F1 +De-Activate DECCiphers.pas line 4244 BreakPoint at:004E98F1 +Adding coverage:DECCiphers.pas (DECCiphers) 4245 +Clearing BreakPoint at 004E98FD +De-Activate DECCiphers.pas line 4245 BreakPoint at:004E98FD +Adding coverage:DECCiphers.pas (DECCiphers) 4246 +Clearing BreakPoint at 004E9906 +De-Activate DECCiphers.pas line 4246 BreakPoint at:004E9906 +Adding coverage:DECCiphers.pas (DECCiphers) 4247 +Clearing BreakPoint at 004E990F +De-Activate DECCiphers.pas line 4247 BreakPoint at:004E990F +Adding coverage:DECCiphers.pas (DECCiphers) 4248 +Clearing BreakPoint at 004E991B +De-Activate DECCiphers.pas line 4248 BreakPoint at:004E991B +Adding coverage:DECCiphers.pas (DECCiphers) 4249 +Clearing BreakPoint at 004E9924 +De-Activate DECCiphers.pas line 4249 BreakPoint at:004E9924 +Adding coverage:DECCiphers.pas (DECCiphers) 4250 +Clearing BreakPoint at 004E993B +De-Activate DECCiphers.pas line 4250 BreakPoint at:004E993B +Adding coverage:DECCiphers.pas (DECCiphers) 4251 +Clearing BreakPoint at 004E9958 +De-Activate DECCiphers.pas line 4251 BreakPoint at:004E9958 +Adding coverage:DECCiphers.pas (DECCiphers) 4252 +Clearing BreakPoint at 004E9975 +De-Activate DECCiphers.pas line 4252 BreakPoint at:004E9975 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1239 +Clearing BreakPoint at 004D9DF0 +De-Activate DECCipherModes.pas line 1239 BreakPoint at:004D9DF0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 997 +Clearing BreakPoint at 004D9088 +De-Activate DECCipherModes.pas line 997 BreakPoint at:004D9088 +Adding coverage:DECCipherModes.pas (DECCipherModes) 998 +Clearing BreakPoint at 004D9098 +De-Activate DECCipherModes.pas line 998 BreakPoint at:004D9098 +Adding coverage:DECCipherModes.pas (DECCipherModes) 999 +Clearing BreakPoint at 004D909D +De-Activate DECCipherModes.pas line 999 BreakPoint at:004D909D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1001 +Clearing BreakPoint at 004D90A9 +De-Activate DECCipherModes.pas line 1001 BreakPoint at:004D90A9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1002 +Clearing BreakPoint at 004D90C4 +De-Activate DECCipherModes.pas line 1002 BreakPoint at:004D90C4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1003 +Clearing BreakPoint at 004D90E6 +De-Activate DECCipherModes.pas line 1003 BreakPoint at:004D90E6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1004 +Clearing BreakPoint at 004D9121 +De-Activate DECCipherModes.pas line 1004 BreakPoint at:004D9121 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1005 +Clearing BreakPoint at 004D9154 +De-Activate DECCipherModes.pas line 1005 BreakPoint at:004D9154 +Adding coverage:DECCipherModes.pas (DECCipherModes) 999 +Clearing BreakPoint at 004D915F +De-Activate DECCipherModes.pas line 999 BreakPoint at:004D915F +Adding coverage:DECCipherModes.pas (DECCipherModes) 1007 +Clearing BreakPoint at 004D916B +De-Activate DECCipherModes.pas line 1007 BreakPoint at:004D916B +Adding coverage:DECCipherModes.pas (DECCipherModes) 1008 +Clearing BreakPoint at 004D9172 +De-Activate DECCipherModes.pas line 1008 BreakPoint at:004D9172 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1240 +Clearing BreakPoint at 004D9E25 +De-Activate DECCipherModes.pas line 1240 BreakPoint at:004D9E25 +Adding coverage:DECCipherModes.pas (DECCipherModes) 834 +Clearing BreakPoint at 004D8A86 +De-Activate DECCipherModes.pas line 834 BreakPoint at:004D8A86 +Adding coverage:DECCipherModes.pas (DECCipherModes) 596 +Clearing BreakPoint at 004D7D38 +De-Activate DECCipherModes.pas line 596 BreakPoint at:004D7D38 +Adding coverage:DECCipherModes.pas (DECCipherModes) 597 +Clearing BreakPoint at 004D7D48 +De-Activate DECCipherModes.pas line 597 BreakPoint at:004D7D48 +Adding coverage:DECCipherModes.pas (DECCipherModes) 598 +Clearing BreakPoint at 004D7D4D +De-Activate DECCipherModes.pas line 598 BreakPoint at:004D7D4D +Adding coverage:DECCipherModes.pas (DECCipherModes) 600 +Clearing BreakPoint at 004D7D59 +De-Activate DECCipherModes.pas line 600 BreakPoint at:004D7D59 +Adding coverage:DECCipherModes.pas (DECCipherModes) 601 +Clearing BreakPoint at 004D7D74 +De-Activate DECCipherModes.pas line 601 BreakPoint at:004D7D74 +Adding coverage:DECCipherModes.pas (DECCipherModes) 602 +Clearing BreakPoint at 004D7DA7 +De-Activate DECCipherModes.pas line 602 BreakPoint at:004D7DA7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 603 +Clearing BreakPoint at 004D7DC9 +De-Activate DECCipherModes.pas line 603 BreakPoint at:004D7DC9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 604 +Clearing BreakPoint at 004D7E04 +De-Activate DECCipherModes.pas line 604 BreakPoint at:004D7E04 +Adding coverage:DECCipherModes.pas (DECCipherModes) 598 +Clearing BreakPoint at 004D7E0F +De-Activate DECCipherModes.pas line 598 BreakPoint at:004D7E0F +Adding coverage:DECCipherModes.pas (DECCipherModes) 606 +Clearing BreakPoint at 004D7E1B +De-Activate DECCipherModes.pas line 606 BreakPoint at:004D7E1B +Adding coverage:DECCipherModes.pas (DECCipherModes) 607 +Clearing BreakPoint at 004D7E22 +De-Activate DECCipherModes.pas line 607 BreakPoint at:004D7E22 +Adding coverage:DECCipherModes.pas (DECCipherModes) 835 +Clearing BreakPoint at 004D8ABB +De-Activate DECCipherModes.pas line 835 BreakPoint at:004D8ABB +Adding coverage:DECCiphers.pas (DECCiphers) 4266 +Clearing BreakPoint at 004E9A28 +De-Activate DECCiphers.pas line 4266 BreakPoint at:004E9A28 +Adding coverage:DECCiphers.pas (DECCiphers) 4267 +Clearing BreakPoint at 004E9A34 +De-Activate DECCiphers.pas line 4267 BreakPoint at:004E9A34 +Adding coverage:DECCiphers.pas (DECCiphers) 4268 +Clearing BreakPoint at 004E9A3D +De-Activate DECCiphers.pas line 4268 BreakPoint at:004E9A3D +Adding coverage:DECCiphers.pas (DECCiphers) 4269 +Clearing BreakPoint at 004E9A47 +De-Activate DECCiphers.pas line 4269 BreakPoint at:004E9A47 +Adding coverage:DECCiphers.pas (DECCiphers) 4270 +Clearing BreakPoint at 004E9A51 +De-Activate DECCiphers.pas line 4270 BreakPoint at:004E9A51 +Adding coverage:DECCiphers.pas (DECCiphers) 4271 +Clearing BreakPoint at 004E9A5B +De-Activate DECCiphers.pas line 4271 BreakPoint at:004E9A5B +Adding coverage:DECCiphers.pas (DECCiphers) 4272 +Clearing BreakPoint at 004E9A62 +De-Activate DECCiphers.pas line 4272 BreakPoint at:004E9A62 +Adding coverage:DECCiphers.pas (DECCiphers) 4273 +Clearing BreakPoint at 004E9A6B +De-Activate DECCiphers.pas line 4273 BreakPoint at:004E9A6B +Adding coverage:DECCiphers.pas (DECCiphers) 4274 +Clearing BreakPoint at 004E9A74 +De-Activate DECCiphers.pas line 4274 BreakPoint at:004E9A74 +Adding coverage:DECCiphers.pas (DECCiphers) 4275 +Clearing BreakPoint at 004E9A80 +De-Activate DECCiphers.pas line 4275 BreakPoint at:004E9A80 +Adding coverage:DECCiphers.pas (DECCiphers) 4296 +Clearing BreakPoint at 004E9AC8 +De-Activate DECCiphers.pas line 4296 BreakPoint at:004E9AC8 +Adding coverage:DECCiphers.pas (DECCiphers) 4297 +Clearing BreakPoint at 004E9AD7 +De-Activate DECCiphers.pas line 4297 BreakPoint at:004E9AD7 +Adding coverage:DECCiphers.pas (DECCiphers) 4299 +Clearing BreakPoint at 004E9AE0 +De-Activate DECCiphers.pas line 4299 BreakPoint at:004E9AE0 +Adding coverage:DECCiphers.pas (DECCiphers) 4300 +Clearing BreakPoint at 004E9AEE +De-Activate DECCiphers.pas line 4300 BreakPoint at:004E9AEE +Adding coverage:DECCiphers.pas (DECCiphers) 4301 +Clearing BreakPoint at 004E9AFF +De-Activate DECCiphers.pas line 4301 BreakPoint at:004E9AFF +Adding coverage:DECCiphers.pas (DECCiphers) 4282 +Clearing BreakPoint at 004E9A88 +De-Activate DECCiphers.pas line 4282 BreakPoint at:004E9A88 +Adding coverage:DECCiphers.pas (DECCiphers) 4283 +Clearing BreakPoint at 004E9A97 +De-Activate DECCiphers.pas line 4283 BreakPoint at:004E9A97 +Adding coverage:DECCiphers.pas (DECCiphers) 4285 +Clearing BreakPoint at 004E9A9C +De-Activate DECCiphers.pas line 4285 BreakPoint at:004E9A9C +Adding coverage:DECCiphers.pas (DECCiphers) 4286 +Clearing BreakPoint at 004E9AA8 +De-Activate DECCiphers.pas line 4286 BreakPoint at:004E9AA8 +Adding coverage:DECCiphers.pas (DECCiphers) 4287 +Clearing BreakPoint at 004E9AAB +De-Activate DECCiphers.pas line 4287 BreakPoint at:004E9AAB +Adding coverage:DECCiphers.pas (DECCiphers) 4289 +Clearing BreakPoint at 004E9AB8 +De-Activate DECCiphers.pas line 4289 BreakPoint at:004E9AB8 +Adding coverage:DECCiphers.pas (DECCiphers) 4283 +Clearing BreakPoint at 004E9ABB +De-Activate DECCiphers.pas line 4283 BreakPoint at:004E9ABB +Adding coverage:DECCiphers.pas (DECCiphers) 4288 +Clearing BreakPoint at 004E9AB1 +De-Activate DECCiphers.pas line 4288 BreakPoint at:004E9AB1 +Adding coverage:DECCiphers.pas (DECCiphers) 4290 +Clearing BreakPoint at 004E9AC1 +De-Activate DECCiphers.pas line 4290 BreakPoint at:004E9AC1 +Adding coverage:DECCiphers.pas (DECCiphers) 4302 +Clearing BreakPoint at 004E9B16 +De-Activate DECCiphers.pas line 4302 BreakPoint at:004E9B16 +Adding coverage:DECCiphers.pas (DECCiphers) 4303 +Clearing BreakPoint at 004E9B2D +De-Activate DECCiphers.pas line 4303 BreakPoint at:004E9B2D +Adding coverage:DECCiphers.pas (DECCiphers) 4304 +Clearing BreakPoint at 004E9B36 +De-Activate DECCiphers.pas line 4304 BreakPoint at:004E9B36 +Adding coverage:DECCiphers.pas (DECCiphers) 4305 +Clearing BreakPoint at 004E9B3F +De-Activate DECCiphers.pas line 4305 BreakPoint at:004E9B3F +Adding coverage:DECCiphers.pas (DECCiphers) 4306 +Clearing BreakPoint at 004E9B48 +De-Activate DECCiphers.pas line 4306 BreakPoint at:004E9B48 +Adding coverage:DECCiphers.pas (DECCiphers) 4309 +Clearing BreakPoint at 004E9BAC +De-Activate DECCiphers.pas line 4309 BreakPoint at:004E9BAC +Adding coverage:DECCiphers.pas (DECCiphers) 4312 +Clearing BreakPoint at 004E9C10 +De-Activate DECCiphers.pas line 4312 BreakPoint at:004E9C10 +Adding coverage:DECCiphers.pas (DECCiphers) 4315 +Clearing BreakPoint at 004E9C74 +De-Activate DECCiphers.pas line 4315 BreakPoint at:004E9C74 +Adding coverage:DECCiphers.pas (DECCiphers) 4316 +Clearing BreakPoint at 004E9C82 +De-Activate DECCiphers.pas line 4316 BreakPoint at:004E9C82 +Adding coverage:DECCiphers.pas (DECCiphers) 4317 +Clearing BreakPoint at 004E9C90 +De-Activate DECCiphers.pas line 4317 BreakPoint at:004E9C90 +Adding coverage:DECCiphers.pas (DECCiphers) 4320 +Clearing BreakPoint at 004E9C9E +De-Activate DECCiphers.pas line 4320 BreakPoint at:004E9C9E +Adding coverage:DECCiphers.pas (DECCiphers) 4330 +Clearing BreakPoint at 004E9CA4 +De-Activate DECCiphers.pas line 4330 BreakPoint at:004E9CA4 +Adding coverage:DECCiphers.pas (DECCiphers) 4331 +Clearing BreakPoint at 004E9CB3 +De-Activate DECCiphers.pas line 4331 BreakPoint at:004E9CB3 +Adding coverage:DECCiphers.pas (DECCiphers) 4332 +Clearing BreakPoint at 004E9CDA +De-Activate DECCiphers.pas line 4332 BreakPoint at:004E9CDA +Adding coverage:DECCiphers.pas (DECCiphers) 4334 +Clearing BreakPoint at 004E9CE3 +De-Activate DECCiphers.pas line 4334 BreakPoint at:004E9CE3 +Adding coverage:DECCiphers.pas (DECCiphers) 4335 +Clearing BreakPoint at 004E9CEB +De-Activate DECCiphers.pas line 4335 BreakPoint at:004E9CEB +Adding coverage:DECCiphers.pas (DECCiphers) 4336 +Clearing BreakPoint at 004E9CF4 +De-Activate DECCiphers.pas line 4336 BreakPoint at:004E9CF4 +Adding coverage:DECCiphers.pas (DECCiphers) 4337 +Clearing BreakPoint at 004E9CFD +De-Activate DECCiphers.pas line 4337 BreakPoint at:004E9CFD +Adding coverage:DECCiphers.pas (DECCiphers) 4339 +Clearing BreakPoint at 004E9D06 +De-Activate DECCiphers.pas line 4339 BreakPoint at:004E9D06 +Adding coverage:DECCiphers.pas (DECCiphers) 4340 +Clearing BreakPoint at 004E9D0E +De-Activate DECCiphers.pas line 4340 BreakPoint at:004E9D0E +Adding coverage:DECCiphers.pas (DECCiphers) 4341 +Clearing BreakPoint at 004E9D17 +De-Activate DECCiphers.pas line 4341 BreakPoint at:004E9D17 +Adding coverage:DECCiphers.pas (DECCiphers) 4342 +Clearing BreakPoint at 004E9D20 +De-Activate DECCiphers.pas line 4342 BreakPoint at:004E9D20 +Adding coverage:DECCiphers.pas (DECCiphers) 4344 +Clearing BreakPoint at 004E9D25 +De-Activate DECCiphers.pas line 4344 BreakPoint at:004E9D25 +Adding coverage:DECCiphers.pas (DECCiphers) 4345 +Clearing BreakPoint at 004E9D38 +De-Activate DECCiphers.pas line 4345 BreakPoint at:004E9D38 +Adding coverage:DECCiphers.pas (DECCiphers) 4346 +Clearing BreakPoint at 004E9D3E +De-Activate DECCiphers.pas line 4346 BreakPoint at:004E9D3E +Adding coverage:DECCiphers.pas (DECCiphers) 4347 +Clearing BreakPoint at 004E9D4C +De-Activate DECCiphers.pas line 4347 BreakPoint at:004E9D4C +Adding coverage:DECCiphers.pas (DECCiphers) 4349 +Clearing BreakPoint at 004E9D50 +De-Activate DECCiphers.pas line 4349 BreakPoint at:004E9D50 +Adding coverage:DECCiphers.pas (DECCiphers) 4352 +Clearing BreakPoint at 004E9DB4 +De-Activate DECCiphers.pas line 4352 BreakPoint at:004E9DB4 +Adding coverage:DECCiphers.pas (DECCiphers) 4355 +Clearing BreakPoint at 004E9E18 +De-Activate DECCiphers.pas line 4355 BreakPoint at:004E9E18 +Adding coverage:DECCiphers.pas (DECCiphers) 4358 +Clearing BreakPoint at 004E9E7C +De-Activate DECCiphers.pas line 4358 BreakPoint at:004E9E7C +Adding coverage:DECCiphers.pas (DECCiphers) 4359 +Clearing BreakPoint at 004E9E8D +De-Activate DECCiphers.pas line 4359 BreakPoint at:004E9E8D +Adding coverage:DECCiphers.pas (DECCiphers) 4360 +Clearing BreakPoint at 004E9E9D +De-Activate DECCiphers.pas line 4360 BreakPoint at:004E9E9D +Adding coverage:DECCiphers.pas (DECCiphers) 4361 +Clearing BreakPoint at 004E9EAB +De-Activate DECCiphers.pas line 4361 BreakPoint at:004E9EAB +Adding coverage:DECCiphers.pas (DECCiphers) 4362 +Clearing BreakPoint at 004E9EB9 +De-Activate DECCiphers.pas line 4362 BreakPoint at:004E9EB9 +Adding coverage:DECCiphers.pas (DECCiphers) 4363 +Clearing BreakPoint at 004E9EC7 +De-Activate DECCiphers.pas line 4363 BreakPoint at:004E9EC7 +Adding coverage:DECCiphers.pas (DECCiphers) 4364 +Clearing BreakPoint at 004E9ED7 +De-Activate DECCiphers.pas line 4364 BreakPoint at:004E9ED7 +Adding coverage:DECCiphers.pas (DECCiphers) 4365 +Clearing BreakPoint at 004E9EE8 +De-Activate DECCiphers.pas line 4365 BreakPoint at:004E9EE8 +Adding coverage:DECCiphers.pas (DECCiphers) 4342 +Clearing BreakPoint at 004E9EEB +De-Activate DECCiphers.pas line 4342 BreakPoint at:004E9EEB +Adding coverage:DECCiphers.pas (DECCiphers) 4366 +Clearing BreakPoint at 004E9EF5 +De-Activate DECCiphers.pas line 4366 BreakPoint at:004E9EF5 +Adding coverage:DECCiphers.pas (DECCiphers) 4367 +Clearing BreakPoint at 004E9F08 +De-Activate DECCiphers.pas line 4367 BreakPoint at:004E9F08 +Adding coverage:DECCiphers.pas (DECCiphers) 4368 +Clearing BreakPoint at 004E9F0E +De-Activate DECCiphers.pas line 4368 BreakPoint at:004E9F0E +Adding coverage:DECCiphers.pas (DECCiphers) 4369 +Clearing BreakPoint at 004E9F1C +De-Activate DECCiphers.pas line 4369 BreakPoint at:004E9F1C +Adding coverage:DECCiphers.pas (DECCiphers) 4372 +Clearing BreakPoint at 004E9F82 +De-Activate DECCiphers.pas line 4372 BreakPoint at:004E9F82 +Adding coverage:DECCiphers.pas (DECCiphers) 4375 +Clearing BreakPoint at 004E9FE9 +De-Activate DECCiphers.pas line 4375 BreakPoint at:004E9FE9 +Adding coverage:DECCiphers.pas (DECCiphers) 4378 +Clearing BreakPoint at 004EA050 +De-Activate DECCiphers.pas line 4378 BreakPoint at:004EA050 +Adding coverage:DECCiphers.pas (DECCiphers) 4388 +Clearing BreakPoint at 004EA104 +De-Activate DECCiphers.pas line 4388 BreakPoint at:004EA104 +Adding coverage:DECCiphers.pas (DECCiphers) 4389 +Clearing BreakPoint at 004EA113 +De-Activate DECCiphers.pas line 4389 BreakPoint at:004EA113 +Adding coverage:DECCiphers.pas (DECCiphers) 4390 +Clearing BreakPoint at 004EA13A +De-Activate DECCiphers.pas line 4390 BreakPoint at:004EA13A +Adding coverage:DECCiphers.pas (DECCiphers) 4392 +Clearing BreakPoint at 004EA143 +De-Activate DECCiphers.pas line 4392 BreakPoint at:004EA143 +Adding coverage:DECCiphers.pas (DECCiphers) 4393 +Clearing BreakPoint at 004EA14C +De-Activate DECCiphers.pas line 4393 BreakPoint at:004EA14C +Adding coverage:DECCiphers.pas (DECCiphers) 4394 +Clearing BreakPoint at 004EA155 +De-Activate DECCiphers.pas line 4394 BreakPoint at:004EA155 +Adding coverage:DECCiphers.pas (DECCiphers) 4395 +Clearing BreakPoint at 004EA15E +De-Activate DECCiphers.pas line 4395 BreakPoint at:004EA15E +Adding coverage:DECCiphers.pas (DECCiphers) 4397 +Clearing BreakPoint at 004EA167 +De-Activate DECCiphers.pas line 4397 BreakPoint at:004EA167 +Adding coverage:DECCiphers.pas (DECCiphers) 4398 +Clearing BreakPoint at 004EA175 +De-Activate DECCiphers.pas line 4398 BreakPoint at:004EA175 +Adding coverage:DECCiphers.pas (DECCiphers) 4399 +Clearing BreakPoint at 004EA183 +De-Activate DECCiphers.pas line 4399 BreakPoint at:004EA183 +Adding coverage:DECCiphers.pas (DECCiphers) 4400 +Clearing BreakPoint at 004EA190 +De-Activate DECCiphers.pas line 4400 BreakPoint at:004EA190 +Adding coverage:DECCiphers.pas (DECCiphers) 4402 +Clearing BreakPoint at 004EA195 +De-Activate DECCiphers.pas line 4402 BreakPoint at:004EA195 +Adding coverage:DECCiphers.pas (DECCiphers) 4403 +Clearing BreakPoint at 004EA1A8 +De-Activate DECCiphers.pas line 4403 BreakPoint at:004EA1A8 +Adding coverage:DECCiphers.pas (DECCiphers) 4404 +Clearing BreakPoint at 004EA1AE +De-Activate DECCiphers.pas line 4404 BreakPoint at:004EA1AE +Adding coverage:DECCiphers.pas (DECCiphers) 4405 +Clearing BreakPoint at 004EA1BC +De-Activate DECCiphers.pas line 4405 BreakPoint at:004EA1BC +Adding coverage:DECCiphers.pas (DECCiphers) 4407 +Clearing BreakPoint at 004EA1C0 +De-Activate DECCiphers.pas line 4407 BreakPoint at:004EA1C0 +Adding coverage:DECCiphers.pas (DECCiphers) 4410 +Clearing BreakPoint at 004EA224 +De-Activate DECCiphers.pas line 4410 BreakPoint at:004EA224 +Adding coverage:DECCiphers.pas (DECCiphers) 4413 +Clearing BreakPoint at 004EA288 +De-Activate DECCiphers.pas line 4413 BreakPoint at:004EA288 +Adding coverage:DECCiphers.pas (DECCiphers) 4416 +Clearing BreakPoint at 004EA2EC +De-Activate DECCiphers.pas line 4416 BreakPoint at:004EA2EC +Adding coverage:DECCiphers.pas (DECCiphers) 4417 +Clearing BreakPoint at 004EA2FD +De-Activate DECCiphers.pas line 4417 BreakPoint at:004EA2FD +Adding coverage:DECCiphers.pas (DECCiphers) 4418 +Clearing BreakPoint at 004EA30D +De-Activate DECCiphers.pas line 4418 BreakPoint at:004EA30D +Adding coverage:DECCiphers.pas (DECCiphers) 4419 +Clearing BreakPoint at 004EA31B +De-Activate DECCiphers.pas line 4419 BreakPoint at:004EA31B +Adding coverage:DECCiphers.pas (DECCiphers) 4420 +Clearing BreakPoint at 004EA329 +De-Activate DECCiphers.pas line 4420 BreakPoint at:004EA329 +Adding coverage:DECCiphers.pas (DECCiphers) 4421 +Clearing BreakPoint at 004EA337 +De-Activate DECCiphers.pas line 4421 BreakPoint at:004EA337 +Adding coverage:DECCiphers.pas (DECCiphers) 4422 +Clearing BreakPoint at 004EA347 +De-Activate DECCiphers.pas line 4422 BreakPoint at:004EA347 +Adding coverage:DECCiphers.pas (DECCiphers) 4423 +Clearing BreakPoint at 004EA358 +De-Activate DECCiphers.pas line 4423 BreakPoint at:004EA358 +Adding coverage:DECCiphers.pas (DECCiphers) 4400 +Clearing BreakPoint at 004EA35B +De-Activate DECCiphers.pas line 4400 BreakPoint at:004EA35B +Adding coverage:DECCiphers.pas (DECCiphers) 4424 +Clearing BreakPoint at 004EA365 +De-Activate DECCiphers.pas line 4424 BreakPoint at:004EA365 +Adding coverage:DECCiphers.pas (DECCiphers) 4425 +Clearing BreakPoint at 004EA378 +De-Activate DECCiphers.pas line 4425 BreakPoint at:004EA378 +Adding coverage:DECCiphers.pas (DECCiphers) 4426 +Clearing BreakPoint at 004EA37E +De-Activate DECCiphers.pas line 4426 BreakPoint at:004EA37E +Adding coverage:DECCiphers.pas (DECCiphers) 4427 +Clearing BreakPoint at 004EA38C +De-Activate DECCiphers.pas line 4427 BreakPoint at:004EA38C +Adding coverage:DECCiphers.pas (DECCiphers) 4430 +Clearing BreakPoint at 004EA3F0 +De-Activate DECCiphers.pas line 4430 BreakPoint at:004EA3F0 +Adding coverage:DECCiphers.pas (DECCiphers) 4433 +Clearing BreakPoint at 004EA454 +De-Activate DECCiphers.pas line 4433 BreakPoint at:004EA454 +Adding coverage:DECCiphers.pas (DECCiphers) 4437 +Clearing BreakPoint at 004EA4B8 +De-Activate DECCiphers.pas line 4437 BreakPoint at:004EA4B8 +Adding coverage:DECCiphers.pas (DECCiphers) 4438 +Clearing BreakPoint at 004EA4C6 +De-Activate DECCiphers.pas line 4438 BreakPoint at:004EA4C6 +Adding coverage:DECCiphers.pas (DECCiphers) 4439 +Clearing BreakPoint at 004EA4D4 +De-Activate DECCiphers.pas line 4439 BreakPoint at:004EA4D4 +Adding coverage:DECCiphers.pas (DECCiphers) 4440 +Clearing BreakPoint at 004EA4E1 +De-Activate DECCiphers.pas line 4440 BreakPoint at:004EA4E1 +Adding coverage:DECCiphers.pas (DECCiphers) 4445 +Clearing BreakPoint at 004EA594 +De-Activate DECCiphers.pas line 4445 BreakPoint at:004EA594 +Adding coverage:DECCiphers.pas (DECCiphers) 4446 +Clearing BreakPoint at 004EA5A0 +De-Activate DECCiphers.pas line 4446 BreakPoint at:004EA5A0 +Adding coverage:DECCiphers.pas (DECCiphers) 4447 +Clearing BreakPoint at 004EA5A9 +De-Activate DECCiphers.pas line 4447 BreakPoint at:004EA5A9 +Adding coverage:DECCiphers.pas (DECCiphers) 4448 +Clearing BreakPoint at 004EA5B3 +De-Activate DECCiphers.pas line 4448 BreakPoint at:004EA5B3 +Adding coverage:DECCiphers.pas (DECCiphers) 4449 +Clearing BreakPoint at 004EA5BD +De-Activate DECCiphers.pas line 4449 BreakPoint at:004EA5BD +Adding coverage:DECCiphers.pas (DECCiphers) 4450 +Clearing BreakPoint at 004EA5C7 +De-Activate DECCiphers.pas line 4450 BreakPoint at:004EA5C7 +Adding coverage:DECCiphers.pas (DECCiphers) 4451 +Clearing BreakPoint at 004EA5CE +De-Activate DECCiphers.pas line 4451 BreakPoint at:004EA5CE +Adding coverage:DECCiphers.pas (DECCiphers) 4452 +Clearing BreakPoint at 004EA5D7 +De-Activate DECCiphers.pas line 4452 BreakPoint at:004EA5D7 +Adding coverage:DECCiphers.pas (DECCiphers) 4453 +Clearing BreakPoint at 004EA5E0 +De-Activate DECCiphers.pas line 4453 BreakPoint at:004EA5E0 +Adding coverage:DECCiphers.pas (DECCiphers) 4454 +Clearing BreakPoint at 004EA5EC +De-Activate DECCiphers.pas line 4454 BreakPoint at:004EA5EC +Adding coverage:DECCiphers.pas (DECCiphers) 4461 +Clearing BreakPoint at 004EA5F4 +De-Activate DECCiphers.pas line 4461 BreakPoint at:004EA5F4 +Adding coverage:DECCiphers.pas (DECCiphers) 4464 +Clearing BreakPoint at 004EA603 +De-Activate DECCiphers.pas line 4464 BreakPoint at:004EA603 +Adding coverage:DECCiphers.pas (DECCiphers) 4467 +Clearing BreakPoint at 004EA615 +De-Activate DECCiphers.pas line 4467 BreakPoint at:004EA615 +Adding coverage:DECCiphers.pas (DECCiphers) 4469 +Clearing BreakPoint at 004EA61F +De-Activate DECCiphers.pas line 4469 BreakPoint at:004EA61F +Adding coverage:DECCiphers.pas (DECCiphers) 4470 +Clearing BreakPoint at 004EA628 +De-Activate DECCiphers.pas line 4470 BreakPoint at:004EA628 +Adding coverage:DECCiphers.pas (DECCiphers) 4471 +Clearing BreakPoint at 004EA637 +De-Activate DECCiphers.pas line 4471 BreakPoint at:004EA637 +Adding coverage:DECCiphers.pas (DECCiphers) 4472 +Clearing BreakPoint at 004EA645 +De-Activate DECCiphers.pas line 4472 BreakPoint at:004EA645 +Adding coverage:DECCiphers.pas (DECCiphers) 4473 +Clearing BreakPoint at 004EA655 +De-Activate DECCiphers.pas line 4473 BreakPoint at:004EA655 +Adding coverage:DECCiphers.pas (DECCiphers) 4474 +Clearing BreakPoint at 004EA65A +De-Activate DECCiphers.pas line 4474 BreakPoint at:004EA65A +Adding coverage:DECCiphers.pas (DECCiphers) 4476 +Clearing BreakPoint at 004EA664 +De-Activate DECCiphers.pas line 4476 BreakPoint at:004EA664 +Adding coverage:DECCiphers.pas (DECCiphers) 4478 +Clearing BreakPoint at 004EA66E +De-Activate DECCiphers.pas line 4478 BreakPoint at:004EA66E +Adding coverage:DECCiphers.pas (DECCiphers) 4483 +Clearing BreakPoint at 004EA6DD +De-Activate DECCiphers.pas line 4483 BreakPoint at:004EA6DD +Adding coverage:DECCiphers.pas (DECCiphers) 4484 +Clearing BreakPoint at 004EA6E3 +De-Activate DECCiphers.pas line 4484 BreakPoint at:004EA6E3 +Adding coverage:DECCiphers.pas (DECCiphers) 4489 +Clearing BreakPoint at 004EA759 +De-Activate DECCiphers.pas line 4489 BreakPoint at:004EA759 +Adding coverage:DECCiphers.pas (DECCiphers) 4490 +Clearing BreakPoint at 004EA75F +De-Activate DECCiphers.pas line 4490 BreakPoint at:004EA75F +Adding coverage:DECCiphers.pas (DECCiphers) 4495 +Clearing BreakPoint at 004EA7D0 +De-Activate DECCiphers.pas line 4495 BreakPoint at:004EA7D0 +Adding coverage:DECCiphers.pas (DECCiphers) 4496 +Clearing BreakPoint at 004EA7D6 +De-Activate DECCiphers.pas line 4496 BreakPoint at:004EA7D6 +Adding coverage:DECCiphers.pas (DECCiphers) 4501 +Clearing BreakPoint at 004EA848 +De-Activate DECCiphers.pas line 4501 BreakPoint at:004EA848 +Adding coverage:DECCiphers.pas (DECCiphers) 4530 +Clearing BreakPoint at 004EAA33 +De-Activate DECCiphers.pas line 4530 BreakPoint at:004EAA33 +Adding coverage:DECCiphers.pas (DECCiphers) 4533 +Clearing BreakPoint at 004EAA59 +De-Activate DECCiphers.pas line 4533 BreakPoint at:004EAA59 +Adding coverage:DECCiphers.pas (DECCiphers) 4537 +Clearing BreakPoint at 004EAAB9 +De-Activate DECCiphers.pas line 4537 BreakPoint at:004EAAB9 +Adding coverage:DECCiphers.pas (DECCiphers) 4541 +Clearing BreakPoint at 004EAB19 +De-Activate DECCiphers.pas line 4541 BreakPoint at:004EAB19 +Adding coverage:DECCiphers.pas (DECCiphers) 4545 +Clearing BreakPoint at 004EAB7A +De-Activate DECCiphers.pas line 4545 BreakPoint at:004EAB7A +Adding coverage:DECCiphers.pas (DECCiphers) 4570 +Clearing BreakPoint at 004EAD5E +De-Activate DECCiphers.pas line 4570 BreakPoint at:004EAD5E +Adding coverage:DECCiphers.pas (DECCiphers) 4572 +Clearing BreakPoint at 004EAD89 +De-Activate DECCiphers.pas line 4572 BreakPoint at:004EAD89 +Adding coverage:DECCiphers.pas (DECCiphers) 4573 +Clearing BreakPoint at 004EADA6 +De-Activate DECCiphers.pas line 4573 BreakPoint at:004EADA6 +Adding coverage:DECCiphers.pas (DECCiphers) 4574 +Clearing BreakPoint at 004EADC8 +De-Activate DECCiphers.pas line 4574 BreakPoint at:004EADC8 +Adding coverage:DECCiphers.pas (DECCiphers) 4575 +Clearing BreakPoint at 004EADEA +De-Activate DECCiphers.pas line 4575 BreakPoint at:004EADEA +Adding coverage:DECCiphers.pas (DECCiphers) 4596 +Clearing BreakPoint at 004EAF81 +De-Activate DECCiphers.pas line 4596 BreakPoint at:004EAF81 +Adding coverage:DECCiphers.pas (DECCiphers) 4603 +Clearing BreakPoint at 004EAFB2 +De-Activate DECCiphers.pas line 4603 BreakPoint at:004EAFB2 +Adding coverage:DECCiphers.pas (DECCiphers) 4474 +Clearing BreakPoint at 004EAFB6 +De-Activate DECCiphers.pas line 4474 BreakPoint at:004EAFB6 +Adding coverage:DECCiphers.pas (DECCiphers) 4505 +Clearing BreakPoint at 004EA853 +De-Activate DECCiphers.pas line 4505 BreakPoint at:004EA853 +Adding coverage:DECCiphers.pas (DECCiphers) 4510 +Clearing BreakPoint at 004EA8C2 +De-Activate DECCiphers.pas line 4510 BreakPoint at:004EA8C2 +Adding coverage:DECCiphers.pas (DECCiphers) 4511 +Clearing BreakPoint at 004EA8C8 +De-Activate DECCiphers.pas line 4511 BreakPoint at:004EA8C8 +Adding coverage:DECCiphers.pas (DECCiphers) 4516 +Clearing BreakPoint at 004EA93E +De-Activate DECCiphers.pas line 4516 BreakPoint at:004EA93E +Adding coverage:DECCiphers.pas (DECCiphers) 4517 +Clearing BreakPoint at 004EA944 +De-Activate DECCiphers.pas line 4517 BreakPoint at:004EA944 +Adding coverage:DECCiphers.pas (DECCiphers) 4522 +Clearing BreakPoint at 004EA9B5 +De-Activate DECCiphers.pas line 4522 BreakPoint at:004EA9B5 +Adding coverage:DECCiphers.pas (DECCiphers) 4523 +Clearing BreakPoint at 004EA9BB +De-Activate DECCiphers.pas line 4523 BreakPoint at:004EA9BB +Adding coverage:DECCiphers.pas (DECCiphers) 4528 +Clearing BreakPoint at 004EAA2D +De-Activate DECCiphers.pas line 4528 BreakPoint at:004EAA2D +Adding coverage:DECCiphers.pas (DECCiphers) 4552 +Clearing BreakPoint at 004EABDF +De-Activate DECCiphers.pas line 4552 BreakPoint at:004EABDF +Adding coverage:DECCiphers.pas (DECCiphers) 4556 +Clearing BreakPoint at 004EAC3E +De-Activate DECCiphers.pas line 4556 BreakPoint at:004EAC3E +Adding coverage:DECCiphers.pas (DECCiphers) 4560 +Clearing BreakPoint at 004EAC9E +De-Activate DECCiphers.pas line 4560 BreakPoint at:004EAC9E +Adding coverage:DECCiphers.pas (DECCiphers) 4564 +Clearing BreakPoint at 004EACFE +De-Activate DECCiphers.pas line 4564 BreakPoint at:004EACFE +Adding coverage:DECCiphers.pas (DECCiphers) 4578 +Clearing BreakPoint at 004EAE0C +De-Activate DECCiphers.pas line 4578 BreakPoint at:004EAE0C +Adding coverage:DECCiphers.pas (DECCiphers) 4579 +Clearing BreakPoint at 004EAE24 +De-Activate DECCiphers.pas line 4579 BreakPoint at:004EAE24 +Adding coverage:DECCiphers.pas (DECCiphers) 4580 +Clearing BreakPoint at 004EAE46 +De-Activate DECCiphers.pas line 4580 BreakPoint at:004EAE46 +Adding coverage:DECCiphers.pas (DECCiphers) 4581 +Clearing BreakPoint at 004EAE65 +De-Activate DECCiphers.pas line 4581 BreakPoint at:004EAE65 +Adding coverage:DECCiphers.pas (DECCiphers) 4584 +Clearing BreakPoint at 004EAE89 +De-Activate DECCiphers.pas line 4584 BreakPoint at:004EAE89 +Adding coverage:DECCiphers.pas (DECCiphers) 4585 +Clearing BreakPoint at 004EAEA6 +De-Activate DECCiphers.pas line 4585 BreakPoint at:004EAEA6 +Adding coverage:DECCiphers.pas (DECCiphers) 4586 +Clearing BreakPoint at 004EAEC3 +De-Activate DECCiphers.pas line 4586 BreakPoint at:004EAEC3 +Adding coverage:DECCiphers.pas (DECCiphers) 4587 +Clearing BreakPoint at 004EAEE5 +De-Activate DECCiphers.pas line 4587 BreakPoint at:004EAEE5 +Adding coverage:DECCiphers.pas (DECCiphers) 4590 +Clearing BreakPoint at 004EAF09 +De-Activate DECCiphers.pas line 4590 BreakPoint at:004EAF09 +Adding coverage:DECCiphers.pas (DECCiphers) 4591 +Clearing BreakPoint at 004EAF23 +De-Activate DECCiphers.pas line 4591 BreakPoint at:004EAF23 +Adding coverage:DECCiphers.pas (DECCiphers) 4592 +Clearing BreakPoint at 004EAF42 +De-Activate DECCiphers.pas line 4592 BreakPoint at:004EAF42 +Adding coverage:DECCiphers.pas (DECCiphers) 4593 +Clearing BreakPoint at 004EAF5F +De-Activate DECCiphers.pas line 4593 BreakPoint at:004EAF5F +Adding coverage:DECCiphers.pas (DECCiphers) 4598 +Clearing BreakPoint at 004EAF87 +De-Activate DECCiphers.pas line 4598 BreakPoint at:004EAF87 +Adding coverage:DECCiphers.pas (DECCiphers) 4599 +Clearing BreakPoint at 004EAF91 +De-Activate DECCiphers.pas line 4599 BreakPoint at:004EAF91 +Adding coverage:DECCiphers.pas (DECCiphers) 4600 +Clearing BreakPoint at 004EAF9C +De-Activate DECCiphers.pas line 4600 BreakPoint at:004EAF9C +Adding coverage:DECCiphers.pas (DECCiphers) 4601 +Clearing BreakPoint at 004EAFA7 +De-Activate DECCiphers.pas line 4601 BreakPoint at:004EAFA7 +Adding coverage:DECCiphers.pas (DECCiphers) 4605 +Clearing BreakPoint at 004EAFC0 +De-Activate DECCiphers.pas line 4605 BreakPoint at:004EAFC0 +Adding coverage:DECCiphers.pas (DECCiphers) 4606 +Clearing BreakPoint at 004EAFCD +De-Activate DECCiphers.pas line 4606 BreakPoint at:004EAFCD +Adding coverage:DECCiphers.pas (DECCiphers) 4607 +Clearing BreakPoint at 004EAFDA +De-Activate DECCiphers.pas line 4607 BreakPoint at:004EAFDA +Adding coverage:DECCiphers.pas (DECCiphers) 4610 +Clearing BreakPoint at 004EAFE7 +De-Activate DECCiphers.pas line 4610 BreakPoint at:004EAFE7 +Adding coverage:DECCiphers.pas (DECCiphers) 4616 +Clearing BreakPoint at 004EAFEC +De-Activate DECCiphers.pas line 4616 BreakPoint at:004EAFEC +Adding coverage:DECCiphers.pas (DECCiphers) 4617 +Clearing BreakPoint at 004EAFFB +De-Activate DECCiphers.pas line 4617 BreakPoint at:004EAFFB +Adding coverage:DECCiphers.pas (DECCiphers) 4619 +Clearing BreakPoint at 004EB022 +De-Activate DECCiphers.pas line 4619 BreakPoint at:004EB022 +Adding coverage:DECCiphers.pas (DECCiphers) 4620 +Clearing BreakPoint at 004EB02B +De-Activate DECCiphers.pas line 4620 BreakPoint at:004EB02B +Adding coverage:DECCiphers.pas (DECCiphers) 4621 +Clearing BreakPoint at 004EB038 +De-Activate DECCiphers.pas line 4621 BreakPoint at:004EB038 +Adding coverage:DECCiphers.pas (DECCiphers) 4622 +Clearing BreakPoint at 004EB046 +De-Activate DECCiphers.pas line 4622 BreakPoint at:004EB046 +Adding coverage:DECCiphers.pas (DECCiphers) 4624 +Clearing BreakPoint at 004EB04B +De-Activate DECCiphers.pas line 4624 BreakPoint at:004EB04B +Adding coverage:DECCiphers.pas (DECCiphers) 4625 +Clearing BreakPoint at 004EB056 +De-Activate DECCiphers.pas line 4625 BreakPoint at:004EB056 +Adding coverage:DECCiphers.pas (DECCiphers) 4626 +Clearing BreakPoint at 004EB076 +De-Activate DECCiphers.pas line 4626 BreakPoint at:004EB076 +Adding coverage:DECCiphers.pas (DECCiphers) 4630 +Clearing BreakPoint at 004EB0D0 +De-Activate DECCiphers.pas line 4630 BreakPoint at:004EB0D0 +Adding coverage:DECCiphers.pas (DECCiphers) 4631 +Clearing BreakPoint at 004EB0DC +De-Activate DECCiphers.pas line 4631 BreakPoint at:004EB0DC +Adding coverage:DECCiphers.pas (DECCiphers) 4632 +Clearing BreakPoint at 004EB0FC +De-Activate DECCiphers.pas line 4632 BreakPoint at:004EB0FC +Adding coverage:DECCiphers.pas (DECCiphers) 4636 +Clearing BreakPoint at 004EB156 +De-Activate DECCiphers.pas line 4636 BreakPoint at:004EB156 +Adding coverage:DECCiphers.pas (DECCiphers) 4637 +Clearing BreakPoint at 004EB162 +De-Activate DECCiphers.pas line 4637 BreakPoint at:004EB162 +Adding coverage:DECCiphers.pas (DECCiphers) 4638 +Clearing BreakPoint at 004EB182 +De-Activate DECCiphers.pas line 4638 BreakPoint at:004EB182 +Adding coverage:DECCiphers.pas (DECCiphers) 4642 +Clearing BreakPoint at 004EB1DC +De-Activate DECCiphers.pas line 4642 BreakPoint at:004EB1DC +Adding coverage:DECCiphers.pas (DECCiphers) 4643 +Clearing BreakPoint at 004EB1E8 +De-Activate DECCiphers.pas line 4643 BreakPoint at:004EB1E8 +Adding coverage:DECCiphers.pas (DECCiphers) 4644 +Clearing BreakPoint at 004EB208 +De-Activate DECCiphers.pas line 4644 BreakPoint at:004EB208 +Adding coverage:DECCiphers.pas (DECCiphers) 4648 +Clearing BreakPoint at 004EB262 +De-Activate DECCiphers.pas line 4648 BreakPoint at:004EB262 +Adding coverage:DECCiphers.pas (DECCiphers) 4650 +Clearing BreakPoint at 004EB26C +De-Activate DECCiphers.pas line 4650 BreakPoint at:004EB26C +Adding coverage:DECCiphers.pas (DECCiphers) 4651 +Clearing BreakPoint at 004EB278 +De-Activate DECCiphers.pas line 4651 BreakPoint at:004EB278 +Adding coverage:DECCiphers.pas (DECCiphers) 4652 +Clearing BreakPoint at 004EB298 +De-Activate DECCiphers.pas line 4652 BreakPoint at:004EB298 +Adding coverage:DECCiphers.pas (DECCiphers) 4656 +Clearing BreakPoint at 004EB2F2 +De-Activate DECCiphers.pas line 4656 BreakPoint at:004EB2F2 +Adding coverage:DECCiphers.pas (DECCiphers) 4657 +Clearing BreakPoint at 004EB2FE +De-Activate DECCiphers.pas line 4657 BreakPoint at:004EB2FE +Adding coverage:DECCiphers.pas (DECCiphers) 4658 +Clearing BreakPoint at 004EB31E +De-Activate DECCiphers.pas line 4658 BreakPoint at:004EB31E +Adding coverage:DECCiphers.pas (DECCiphers) 4662 +Clearing BreakPoint at 004EB378 +De-Activate DECCiphers.pas line 4662 BreakPoint at:004EB378 +Adding coverage:DECCiphers.pas (DECCiphers) 4664 +Clearing BreakPoint at 004EB387 +De-Activate DECCiphers.pas line 4664 BreakPoint at:004EB387 +Adding coverage:DECCiphers.pas (DECCiphers) 4665 +Clearing BreakPoint at 004EB390 +De-Activate DECCiphers.pas line 4665 BreakPoint at:004EB390 +Adding coverage:DECCiphers.pas (DECCiphers) 4622 +Clearing BreakPoint at 004EB393 +De-Activate DECCiphers.pas line 4622 BreakPoint at:004EB393 +Adding coverage:DECCiphers.pas (DECCiphers) 4666 +Clearing BreakPoint at 004EB39D +De-Activate DECCiphers.pas line 4666 BreakPoint at:004EB39D +Adding coverage:DECCiphers.pas (DECCiphers) 4667 +Clearing BreakPoint at 004EB3AA +De-Activate DECCiphers.pas line 4667 BreakPoint at:004EB3AA +Adding coverage:DECCiphers.pas (DECCiphers) 4668 +Clearing BreakPoint at 004EB3B8 +De-Activate DECCiphers.pas line 4668 BreakPoint at:004EB3B8 +Adding coverage:DECCiphers.pas (DECCiphers) 4675 +Clearing BreakPoint at 004EB46C +De-Activate DECCiphers.pas line 4675 BreakPoint at:004EB46C +Adding coverage:DECCiphers.pas (DECCiphers) 4676 +Clearing BreakPoint at 004EB47B +De-Activate DECCiphers.pas line 4676 BreakPoint at:004EB47B +Adding coverage:DECCiphers.pas (DECCiphers) 4677 +Clearing BreakPoint at 004EB4A2 +De-Activate DECCiphers.pas line 4677 BreakPoint at:004EB4A2 +Adding coverage:DECCiphers.pas (DECCiphers) 4679 +Clearing BreakPoint at 004EB4A6 +De-Activate DECCiphers.pas line 4679 BreakPoint at:004EB4A6 +Adding coverage:DECCiphers.pas (DECCiphers) 4680 +Clearing BreakPoint at 004EB4B2 +De-Activate DECCiphers.pas line 4680 BreakPoint at:004EB4B2 +Adding coverage:DECCiphers.pas (DECCiphers) 4681 +Clearing BreakPoint at 004EB4BF +De-Activate DECCiphers.pas line 4681 BreakPoint at:004EB4BF +Adding coverage:DECCiphers.pas (DECCiphers) 4682 +Clearing BreakPoint at 004EB4CD +De-Activate DECCiphers.pas line 4682 BreakPoint at:004EB4CD +Adding coverage:DECCiphers.pas (DECCiphers) 4684 +Clearing BreakPoint at 004EB4D4 +De-Activate DECCiphers.pas line 4684 BreakPoint at:004EB4D4 +Adding coverage:DECCiphers.pas (DECCiphers) 4687 +Clearing BreakPoint at 004EB4E3 +De-Activate DECCiphers.pas line 4687 BreakPoint at:004EB4E3 +Adding coverage:DECCiphers.pas (DECCiphers) 4689 +Clearing BreakPoint at 004EB4E7 +De-Activate DECCiphers.pas line 4689 BreakPoint at:004EB4E7 +Adding coverage:DECCiphers.pas (DECCiphers) 4691 +Clearing BreakPoint at 004EB4F1 +De-Activate DECCiphers.pas line 4691 BreakPoint at:004EB4F1 +Adding coverage:DECCiphers.pas (DECCiphers) 4708 +Clearing BreakPoint at 004EB60C +De-Activate DECCiphers.pas line 4708 BreakPoint at:004EB60C +Adding coverage:DECCiphers.pas (DECCiphers) 4710 +Clearing BreakPoint at 004EB610 +De-Activate DECCiphers.pas line 4710 BreakPoint at:004EB610 +Adding coverage:DECCiphers.pas (DECCiphers) 4711 +Clearing BreakPoint at 004EB61C +De-Activate DECCiphers.pas line 4711 BreakPoint at:004EB61C +Adding coverage:DECCiphers.pas (DECCiphers) 4712 +Clearing BreakPoint at 004EB63C +De-Activate DECCiphers.pas line 4712 BreakPoint at:004EB63C +Adding coverage:DECCiphers.pas (DECCiphers) 4716 +Clearing BreakPoint at 004EB696 +De-Activate DECCiphers.pas line 4716 BreakPoint at:004EB696 +Adding coverage:DECCiphers.pas (DECCiphers) 4717 +Clearing BreakPoint at 004EB6A2 +De-Activate DECCiphers.pas line 4717 BreakPoint at:004EB6A2 +Adding coverage:DECCiphers.pas (DECCiphers) 4718 +Clearing BreakPoint at 004EB6C2 +De-Activate DECCiphers.pas line 4718 BreakPoint at:004EB6C2 +Adding coverage:DECCiphers.pas (DECCiphers) 4722 +Clearing BreakPoint at 004EB71C +De-Activate DECCiphers.pas line 4722 BreakPoint at:004EB71C +Adding coverage:DECCiphers.pas (DECCiphers) 4723 +Clearing BreakPoint at 004EB728 +De-Activate DECCiphers.pas line 4723 BreakPoint at:004EB728 +Adding coverage:DECCiphers.pas (DECCiphers) 4724 +Clearing BreakPoint at 004EB748 +De-Activate DECCiphers.pas line 4724 BreakPoint at:004EB748 +Adding coverage:DECCiphers.pas (DECCiphers) 4728 +Clearing BreakPoint at 004EB7A2 +De-Activate DECCiphers.pas line 4728 BreakPoint at:004EB7A2 +Adding coverage:DECCiphers.pas (DECCiphers) 4729 +Clearing BreakPoint at 004EB7AD +De-Activate DECCiphers.pas line 4729 BreakPoint at:004EB7AD +Adding coverage:DECCiphers.pas (DECCiphers) 4730 +Clearing BreakPoint at 004EB7CD +De-Activate DECCiphers.pas line 4730 BreakPoint at:004EB7CD +Adding coverage:DECCiphers.pas (DECCiphers) 4734 +Clearing BreakPoint at 004EB827 +De-Activate DECCiphers.pas line 4734 BreakPoint at:004EB827 +Adding coverage:DECCiphers.pas (DECCiphers) 4689 +Clearing BreakPoint at 004EB82B +De-Activate DECCiphers.pas line 4689 BreakPoint at:004EB82B +Adding coverage:DECCiphers.pas (DECCiphers) 4693 +Clearing BreakPoint at 004EB4FB +De-Activate DECCiphers.pas line 4693 BreakPoint at:004EB4FB +Adding coverage:DECCiphers.pas (DECCiphers) 4694 +Clearing BreakPoint at 004EB4FE +De-Activate DECCiphers.pas line 4694 BreakPoint at:004EB4FE +Adding coverage:DECCiphers.pas (DECCiphers) 4695 +Clearing BreakPoint at 004EB50A +De-Activate DECCiphers.pas line 4695 BreakPoint at:004EB50A +Adding coverage:DECCiphers.pas (DECCiphers) 4696 +Clearing BreakPoint at 004EB52A +De-Activate DECCiphers.pas line 4696 BreakPoint at:004EB52A +Adding coverage:DECCiphers.pas (DECCiphers) 4700 +Clearing BreakPoint at 004EB584 +De-Activate DECCiphers.pas line 4700 BreakPoint at:004EB584 +Adding coverage:DECCiphers.pas (DECCiphers) 4701 +Clearing BreakPoint at 004EB590 +De-Activate DECCiphers.pas line 4701 BreakPoint at:004EB590 +Adding coverage:DECCiphers.pas (DECCiphers) 4702 +Clearing BreakPoint at 004EB5B0 +De-Activate DECCiphers.pas line 4702 BreakPoint at:004EB5B0 +Adding coverage:DECCiphers.pas (DECCiphers) 4737 +Clearing BreakPoint at 004EB835 +De-Activate DECCiphers.pas line 4737 BreakPoint at:004EB835 +Adding coverage:DECCiphers.pas (DECCiphers) 4738 +Clearing BreakPoint at 004EB842 +De-Activate DECCiphers.pas line 4738 BreakPoint at:004EB842 +Adding coverage:DECCiphers.pas (DECCiphers) 4739 +Clearing BreakPoint at 004EB850 +De-Activate DECCiphers.pas line 4739 BreakPoint at:004EB850 +Adding coverage:DECCiphers.pas (DECCiphers) 4744 +Clearing BreakPoint at 004EB904 +De-Activate DECCiphers.pas line 4744 BreakPoint at:004EB904 +Adding coverage:DECCiphers.pas (DECCiphers) 4745 +Clearing BreakPoint at 004EB910 +De-Activate DECCiphers.pas line 4745 BreakPoint at:004EB910 +Adding coverage:DECCiphers.pas (DECCiphers) 4746 +Clearing BreakPoint at 004EB919 +De-Activate DECCiphers.pas line 4746 BreakPoint at:004EB919 +Adding coverage:DECCiphers.pas (DECCiphers) 4747 +Clearing BreakPoint at 004EB923 +De-Activate DECCiphers.pas line 4747 BreakPoint at:004EB923 +Adding coverage:DECCiphers.pas (DECCiphers) 4748 +Clearing BreakPoint at 004EB92D +De-Activate DECCiphers.pas line 4748 BreakPoint at:004EB92D +Adding coverage:DECCiphers.pas (DECCiphers) 4749 +Clearing BreakPoint at 004EB937 +De-Activate DECCiphers.pas line 4749 BreakPoint at:004EB937 +Adding coverage:DECCiphers.pas (DECCiphers) 4750 +Clearing BreakPoint at 004EB93E +De-Activate DECCiphers.pas line 4750 BreakPoint at:004EB93E +Adding coverage:DECCiphers.pas (DECCiphers) 4751 +Clearing BreakPoint at 004EB947 +De-Activate DECCiphers.pas line 4751 BreakPoint at:004EB947 +Adding coverage:DECCiphers.pas (DECCiphers) 4752 +Clearing BreakPoint at 004EB950 +De-Activate DECCiphers.pas line 4752 BreakPoint at:004EB950 +Adding coverage:DECCiphers.pas (DECCiphers) 4753 +Clearing BreakPoint at 004EB95C +De-Activate DECCiphers.pas line 4753 BreakPoint at:004EB95C +Adding coverage:DECCiphers.pas (DECCiphers) 4756 +Clearing BreakPoint at 004EB964 +De-Activate DECCiphers.pas line 4756 BreakPoint at:004EB964 +Adding coverage:DECCiphers.pas (DECCiphers) 4757 +Clearing BreakPoint at 004EB973 +De-Activate DECCiphers.pas line 4757 BreakPoint at:004EB973 +Adding coverage:DECCiphers.pas (DECCiphers) 4760 +Clearing BreakPoint at 004EB984 +De-Activate DECCiphers.pas line 4760 BreakPoint at:004EB984 +Adding coverage:DECCiphers.pas (DECCiphers) 4766 +Clearing BreakPoint at 004EB988 +De-Activate DECCiphers.pas line 4766 BreakPoint at:004EB988 +Adding coverage:DECCiphers.pas (DECCiphers) 4767 +Clearing BreakPoint at 004EB997 +De-Activate DECCiphers.pas line 4767 BreakPoint at:004EB997 +Adding coverage:DECCiphers.pas (DECCiphers) 4769 +Clearing BreakPoint at 004EB9BE +De-Activate DECCiphers.pas line 4769 BreakPoint at:004EB9BE +Adding coverage:DECCiphers.pas (DECCiphers) 4770 +Clearing BreakPoint at 004EB9C7 +De-Activate DECCiphers.pas line 4770 BreakPoint at:004EB9C7 +Adding coverage:DECCiphers.pas (DECCiphers) 4771 +Clearing BreakPoint at 004EB9CF +De-Activate DECCiphers.pas line 4771 BreakPoint at:004EB9CF +Adding coverage:DECCiphers.pas (DECCiphers) 4773 +Clearing BreakPoint at 004EB9D8 +De-Activate DECCiphers.pas line 4773 BreakPoint at:004EB9D8 +Adding coverage:DECCiphers.pas (DECCiphers) 4775 +Clearing BreakPoint at 004EB9DD +De-Activate DECCiphers.pas line 4775 BreakPoint at:004EB9DD +Adding coverage:DECCiphers.pas (DECCiphers) 4776 +Clearing BreakPoint at 004EB9E3 +De-Activate DECCiphers.pas line 4776 BreakPoint at:004EB9E3 +Adding coverage:DECCiphers.pas (DECCiphers) 4777 +Clearing BreakPoint at 004EB9EC +De-Activate DECCiphers.pas line 4777 BreakPoint at:004EB9EC +Adding coverage:DECCiphers.pas (DECCiphers) 4778 +Clearing BreakPoint at 004EB9F7 +De-Activate DECCiphers.pas line 4778 BreakPoint at:004EB9F7 +Adding coverage:DECCiphers.pas (DECCiphers) 4782 +Clearing BreakPoint at 004EBA53 +De-Activate DECCiphers.pas line 4782 BreakPoint at:004EBA53 +Adding coverage:DECCiphers.pas (DECCiphers) 4783 +Clearing BreakPoint at 004EBA5F +De-Activate DECCiphers.pas line 4783 BreakPoint at:004EBA5F +Adding coverage:DECCiphers.pas (DECCiphers) 4787 +Clearing BreakPoint at 004EBABB +De-Activate DECCiphers.pas line 4787 BreakPoint at:004EBABB +Adding coverage:DECCiphers.pas (DECCiphers) 4788 +Clearing BreakPoint at 004EBAC4 +De-Activate DECCiphers.pas line 4788 BreakPoint at:004EBAC4 +Adding coverage:DECCiphers.pas (DECCiphers) 4773 +Clearing BreakPoint at 004EBAC7 +De-Activate DECCiphers.pas line 4773 BreakPoint at:004EBAC7 +Adding coverage:DECCiphers.pas (DECCiphers) 4790 +Clearing BreakPoint at 004EBAD1 +De-Activate DECCiphers.pas line 4790 BreakPoint at:004EBAD1 +Adding coverage:DECCiphers.pas (DECCiphers) 4792 +Clearing BreakPoint at 004EBADD +De-Activate DECCiphers.pas line 4792 BreakPoint at:004EBADD +Adding coverage:DECCiphers.pas (DECCiphers) 4794 +Clearing BreakPoint at 004EBAE2 +De-Activate DECCiphers.pas line 4794 BreakPoint at:004EBAE2 +Adding coverage:DECCiphers.pas (DECCiphers) 4795 +Clearing BreakPoint at 004EBAEE +De-Activate DECCiphers.pas line 4795 BreakPoint at:004EBAEE +Adding coverage:DECCiphers.pas (DECCiphers) 4799 +Clearing BreakPoint at 004EBB4A +De-Activate DECCiphers.pas line 4799 BreakPoint at:004EBB4A +Adding coverage:DECCiphers.pas (DECCiphers) 4800 +Clearing BreakPoint at 004EBB55 +De-Activate DECCiphers.pas line 4800 BreakPoint at:004EBB55 +Adding coverage:DECCiphers.pas (DECCiphers) 4804 +Clearing BreakPoint at 004EBBB1 +De-Activate DECCiphers.pas line 4804 BreakPoint at:004EBBB1 +Adding coverage:DECCiphers.pas (DECCiphers) 4805 +Clearing BreakPoint at 004EBBB5 +De-Activate DECCiphers.pas line 4805 BreakPoint at:004EBBB5 +Adding coverage:DECCiphers.pas (DECCiphers) 4792 +Clearing BreakPoint at 004EBBB8 +De-Activate DECCiphers.pas line 4792 BreakPoint at:004EBBB8 +Adding coverage:DECCiphers.pas (DECCiphers) 4807 +Clearing BreakPoint at 004EBBC2 +De-Activate DECCiphers.pas line 4807 BreakPoint at:004EBBC2 +Adding coverage:DECCiphers.pas (DECCiphers) 4808 +Clearing BreakPoint at 004EBBCA +De-Activate DECCiphers.pas line 4808 BreakPoint at:004EBBCA +Adding coverage:DECCiphers.pas (DECCiphers) 4809 +Clearing BreakPoint at 004EBBD3 +De-Activate DECCiphers.pas line 4809 BreakPoint at:004EBBD3 +Adding coverage:DECCiphers.pas (DECCiphers) 4815 +Clearing BreakPoint at 004EBC88 +De-Activate DECCiphers.pas line 4815 BreakPoint at:004EBC88 +Adding coverage:DECCiphers.pas (DECCiphers) 4816 +Clearing BreakPoint at 004EBC97 +De-Activate DECCiphers.pas line 4816 BreakPoint at:004EBC97 +Adding coverage:DECCiphers.pas (DECCiphers) 4818 +Clearing BreakPoint at 004EBCBE +De-Activate DECCiphers.pas line 4818 BreakPoint at:004EBCBE +Adding coverage:DECCiphers.pas (DECCiphers) 4819 +Clearing BreakPoint at 004EBCC6 +De-Activate DECCiphers.pas line 4819 BreakPoint at:004EBCC6 +Adding coverage:DECCiphers.pas (DECCiphers) 4820 +Clearing BreakPoint at 004EBCCF +De-Activate DECCiphers.pas line 4820 BreakPoint at:004EBCCF +Adding coverage:DECCiphers.pas (DECCiphers) 4822 +Clearing BreakPoint at 004EBCD8 +De-Activate DECCiphers.pas line 4822 BreakPoint at:004EBCD8 +Adding coverage:DECCiphers.pas (DECCiphers) 4824 +Clearing BreakPoint at 004EBCDD +De-Activate DECCiphers.pas line 4824 BreakPoint at:004EBCDD +Adding coverage:DECCiphers.pas (DECCiphers) 4825 +Clearing BreakPoint at 004EBCE8 +De-Activate DECCiphers.pas line 4825 BreakPoint at:004EBCE8 +Adding coverage:DECCiphers.pas (DECCiphers) 4829 +Clearing BreakPoint at 004EBD44 +De-Activate DECCiphers.pas line 4829 BreakPoint at:004EBD44 +Adding coverage:DECCiphers.pas (DECCiphers) 4830 +Clearing BreakPoint at 004EBD50 +De-Activate DECCiphers.pas line 4830 BreakPoint at:004EBD50 +Adding coverage:DECCiphers.pas (DECCiphers) 4834 +Clearing BreakPoint at 004EBDAC +De-Activate DECCiphers.pas line 4834 BreakPoint at:004EBDAC +Adding coverage:DECCiphers.pas (DECCiphers) 4835 +Clearing BreakPoint at 004EBDB5 +De-Activate DECCiphers.pas line 4835 BreakPoint at:004EBDB5 +Adding coverage:DECCiphers.pas (DECCiphers) 4822 +Clearing BreakPoint at 004EBDB8 +De-Activate DECCiphers.pas line 4822 BreakPoint at:004EBDB8 +Adding coverage:DECCiphers.pas (DECCiphers) 4837 +Clearing BreakPoint at 004EBDC2 +De-Activate DECCiphers.pas line 4837 BreakPoint at:004EBDC2 +Adding coverage:DECCiphers.pas (DECCiphers) 4839 +Clearing BreakPoint at 004EBDC7 +De-Activate DECCiphers.pas line 4839 BreakPoint at:004EBDC7 +Adding coverage:DECCiphers.pas (DECCiphers) 4840 +Clearing BreakPoint at 004EBDCD +De-Activate DECCiphers.pas line 4840 BreakPoint at:004EBDCD +Adding coverage:DECCiphers.pas (DECCiphers) 4841 +Clearing BreakPoint at 004EBDD9 +De-Activate DECCiphers.pas line 4841 BreakPoint at:004EBDD9 +Adding coverage:DECCiphers.pas (DECCiphers) 4842 +Clearing BreakPoint at 004EBDE5 +De-Activate DECCiphers.pas line 4842 BreakPoint at:004EBDE5 +Adding coverage:DECCiphers.pas (DECCiphers) 4846 +Clearing BreakPoint at 004EBE41 +De-Activate DECCiphers.pas line 4846 BreakPoint at:004EBE41 +Adding coverage:DECCiphers.pas (DECCiphers) 4847 +Clearing BreakPoint at 004EBE4C +De-Activate DECCiphers.pas line 4847 BreakPoint at:004EBE4C +Adding coverage:DECCiphers.pas (DECCiphers) 4851 +Clearing BreakPoint at 004EBEA8 +De-Activate DECCiphers.pas line 4851 BreakPoint at:004EBEA8 +Adding coverage:DECCiphers.pas (DECCiphers) 4852 +Clearing BreakPoint at 004EBEAC +De-Activate DECCiphers.pas line 4852 BreakPoint at:004EBEAC +Adding coverage:DECCiphers.pas (DECCiphers) 4837 +Clearing BreakPoint at 004EBEAF +De-Activate DECCiphers.pas line 4837 BreakPoint at:004EBEAF +Adding coverage:DECCiphers.pas (DECCiphers) 4854 +Clearing BreakPoint at 004EBEB9 +De-Activate DECCiphers.pas line 4854 BreakPoint at:004EBEB9 +Adding coverage:DECCiphers.pas (DECCiphers) 4855 +Clearing BreakPoint at 004EBEC1 +De-Activate DECCiphers.pas line 4855 BreakPoint at:004EBEC1 +Adding coverage:DECCiphers.pas (DECCiphers) 4856 +Clearing BreakPoint at 004EBECA +De-Activate DECCiphers.pas line 4856 BreakPoint at:004EBECA +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4D31 +After line:DECCipherBase line 931 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005043F8 +After line:TestDECCipher line 2832 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005044A0 +Exact line:TestDECCipher line 2838 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 4861 +Clearing BreakPoint at 004EBF7C +De-Activate DECCiphers.pas line 4861 BreakPoint at:004EBF7C +Adding coverage:DECCiphers.pas (DECCiphers) 4862 +Clearing BreakPoint at 004EBF88 +De-Activate DECCiphers.pas line 4862 BreakPoint at:004EBF88 +Adding coverage:DECCiphers.pas (DECCiphers) 4863 +Clearing BreakPoint at 004EBF91 +De-Activate DECCiphers.pas line 4863 BreakPoint at:004EBF91 +Adding coverage:DECCiphers.pas (DECCiphers) 4864 +Clearing BreakPoint at 004EBF9B +De-Activate DECCiphers.pas line 4864 BreakPoint at:004EBF9B +Adding coverage:DECCiphers.pas (DECCiphers) 4865 +Clearing BreakPoint at 004EBFA5 +De-Activate DECCiphers.pas line 4865 BreakPoint at:004EBFA5 +Adding coverage:DECCiphers.pas (DECCiphers) 4866 +Clearing BreakPoint at 004EBFAF +De-Activate DECCiphers.pas line 4866 BreakPoint at:004EBFAF +Adding coverage:DECCiphers.pas (DECCiphers) 4867 +Clearing BreakPoint at 004EBFB6 +De-Activate DECCiphers.pas line 4867 BreakPoint at:004EBFB6 +Adding coverage:DECCiphers.pas (DECCiphers) 4868 +Clearing BreakPoint at 004EBFBF +De-Activate DECCiphers.pas line 4868 BreakPoint at:004EBFBF +Adding coverage:DECCiphers.pas (DECCiphers) 4869 +Clearing BreakPoint at 004EBFC8 +De-Activate DECCiphers.pas line 4869 BreakPoint at:004EBFC8 +Adding coverage:DECCiphers.pas (DECCiphers) 4870 +Clearing BreakPoint at 004EBFD4 +De-Activate DECCiphers.pas line 4870 BreakPoint at:004EBFD4 +Adding coverage:DECCiphers.pas (DECCiphers) 4934 +Clearing BreakPoint at 004EC23C +De-Activate DECCiphers.pas line 4934 BreakPoint at:004EC23C +Adding coverage:DECCiphers.pas (DECCiphers) 4935 +Clearing BreakPoint at 004EC24B +De-Activate DECCiphers.pas line 4935 BreakPoint at:004EC24B +Adding coverage:DECCiphers.pas (DECCiphers) 4936 +Clearing BreakPoint at 004EC25A +De-Activate DECCiphers.pas line 4936 BreakPoint at:004EC25A +Adding coverage:DECCiphers.pas (DECCiphers) 4937 +Clearing BreakPoint at 004EC268 +De-Activate DECCiphers.pas line 4937 BreakPoint at:004EC268 +Adding coverage:DECCiphers.pas (DECCiphers) 4939 +Clearing BreakPoint at 004EC271 +De-Activate DECCiphers.pas line 4939 BreakPoint at:004EC271 +Adding coverage:DECCiphers.pas (DECCiphers) 4940 +Clearing BreakPoint at 004EC276 +De-Activate DECCiphers.pas line 4940 BreakPoint at:004EC276 +Adding coverage:DECCiphers.pas (DECCiphers) 4939 +Clearing BreakPoint at 004EC29B +De-Activate DECCiphers.pas line 4939 BreakPoint at:004EC29B +Adding coverage:DECCiphers.pas (DECCiphers) 4942 +Clearing BreakPoint at 004EC2A1 +De-Activate DECCiphers.pas line 4942 BreakPoint at:004EC2A1 +Adding coverage:DECCiphers.pas (DECCiphers) 4944 +Clearing BreakPoint at 004EC2A6 +De-Activate DECCiphers.pas line 4944 BreakPoint at:004EC2A6 +Adding coverage:DECCiphers.pas (DECCiphers) 4873 +Clearing BreakPoint at 004EBFDC +De-Activate DECCiphers.pas line 4873 BreakPoint at:004EBFDC +Adding coverage:DECCiphers.pas (DECCiphers) 4874 +Clearing BreakPoint at 004EBFE8 +De-Activate DECCiphers.pas line 4874 BreakPoint at:004EBFE8 +Adding coverage:DECCiphers.pas (DECCiphers) 4875 +Clearing BreakPoint at 004EC008 +De-Activate DECCiphers.pas line 4875 BreakPoint at:004EC008 +Adding coverage:DECCiphers.pas (DECCiphers) 4876 +Clearing BreakPoint at 004EC02E +De-Activate DECCiphers.pas line 4876 BreakPoint at:004EC02E +Adding coverage:DECCiphers.pas (DECCiphers) 4877 +Clearing BreakPoint at 004EC051 +De-Activate DECCiphers.pas line 4877 BreakPoint at:004EC051 +Adding coverage:DECCiphers.pas (DECCiphers) 4945 +Clearing BreakPoint at 004EC2CB +De-Activate DECCiphers.pas line 4945 BreakPoint at:004EC2CB +Adding coverage:DECCiphers.pas (DECCiphers) 4946 +Clearing BreakPoint at 004EC2E4 +De-Activate DECCiphers.pas line 4946 BreakPoint at:004EC2E4 +Adding coverage:DECCiphers.pas (DECCiphers) 4947 +Clearing BreakPoint at 004EC2FB +De-Activate DECCiphers.pas line 4947 BreakPoint at:004EC2FB +Adding coverage:DECCiphers.pas (DECCiphers) 4942 +Clearing BreakPoint at 004EC2FE +De-Activate DECCiphers.pas line 4942 BreakPoint at:004EC2FE +Adding coverage:DECCiphers.pas (DECCiphers) 4949 +Clearing BreakPoint at 004EC304 +De-Activate DECCiphers.pas line 4949 BreakPoint at:004EC304 +Adding coverage:DECCiphers.pas (DECCiphers) 4952 +Clearing BreakPoint at 004EC311 +De-Activate DECCiphers.pas line 4952 BreakPoint at:004EC311 +Adding coverage:DECCiphers.pas (DECCiphers) 4957 +Clearing BreakPoint at 004EC318 +De-Activate DECCiphers.pas line 4957 BreakPoint at:004EC318 +Adding coverage:DECCiphers.pas (DECCiphers) 4958 +Clearing BreakPoint at 004EC328 +De-Activate DECCiphers.pas line 4958 BreakPoint at:004EC328 +Adding coverage:DECCiphers.pas (DECCiphers) 4960 +Clearing BreakPoint at 004EC34F +De-Activate DECCiphers.pas line 4960 BreakPoint at:004EC34F +Adding coverage:DECCiphers.pas (DECCiphers) 4961 +Clearing BreakPoint at 004EC357 +De-Activate DECCiphers.pas line 4961 BreakPoint at:004EC357 +Adding coverage:DECCiphers.pas (DECCiphers) 4962 +Clearing BreakPoint at 004EC360 +De-Activate DECCiphers.pas line 4962 BreakPoint at:004EC360 +Adding coverage:DECCiphers.pas (DECCiphers) 4888 +Clearing BreakPoint at 004EC11C +De-Activate DECCiphers.pas line 4888 BreakPoint at:004EC11C +Adding coverage:DECCiphers.pas (DECCiphers) 4889 +Clearing BreakPoint at 004EC12B +De-Activate DECCiphers.pas line 4889 BreakPoint at:004EC12B +Adding coverage:DECCiphers.pas (DECCiphers) 4890 +Clearing BreakPoint at 004EC134 +De-Activate DECCiphers.pas line 4890 BreakPoint at:004EC134 +Adding coverage:DECCiphers.pas (DECCiphers) 4892 +Clearing BreakPoint at 004EC13B +De-Activate DECCiphers.pas line 4892 BreakPoint at:004EC13B +Adding coverage:DECCiphers.pas (DECCiphers) 4900 +Clearing BreakPoint at 004EC171 +De-Activate DECCiphers.pas line 4900 BreakPoint at:004EC171 +Adding coverage:DECCiphers.pas (DECCiphers) 4901 +Clearing BreakPoint at 004EC174 +De-Activate DECCiphers.pas line 4901 BreakPoint at:004EC174 +Adding coverage:DECCiphers.pas (DECCiphers) 4902 +Clearing BreakPoint at 004EC183 +De-Activate DECCiphers.pas line 4902 BreakPoint at:004EC183 +Adding coverage:DECCiphers.pas (DECCiphers) 4905 +Clearing BreakPoint at 004EC199 +De-Activate DECCiphers.pas line 4905 BreakPoint at:004EC199 +Adding coverage:DECCiphers.pas (DECCiphers) 4906 +Clearing BreakPoint at 004EC1A5 +De-Activate DECCiphers.pas line 4906 BreakPoint at:004EC1A5 +Adding coverage:DECCiphers.pas (DECCiphers) 4963 +Clearing BreakPoint at 004EC373 +De-Activate DECCiphers.pas line 4963 BreakPoint at:004EC373 +Adding coverage:DECCiphers.pas (DECCiphers) 4894 +Clearing BreakPoint at 004EC141 +De-Activate DECCiphers.pas line 4894 BreakPoint at:004EC141 +Adding coverage:DECCiphers.pas (DECCiphers) 4895 +Clearing BreakPoint at 004EC144 +De-Activate DECCiphers.pas line 4895 BreakPoint at:004EC144 +Adding coverage:DECCiphers.pas (DECCiphers) 4896 +Clearing BreakPoint at 004EC15A +De-Activate DECCiphers.pas line 4896 BreakPoint at:004EC15A +Adding coverage:DECCiphers.pas (DECCiphers) 4880 +Clearing BreakPoint at 004EC058 +De-Activate DECCiphers.pas line 4880 BreakPoint at:004EC058 +Adding coverage:DECCiphers.pas (DECCiphers) 4881 +Clearing BreakPoint at 004EC067 +De-Activate DECCiphers.pas line 4881 BreakPoint at:004EC067 +Adding coverage:DECCiphers.pas (DECCiphers) 4882 +Clearing BreakPoint at 004EC09B +De-Activate DECCiphers.pas line 4882 BreakPoint at:004EC09B +Adding coverage:DECCiphers.pas (DECCiphers) 4883 +Clearing BreakPoint at 004EC0CE +De-Activate DECCiphers.pas line 4883 BreakPoint at:004EC0CE +Adding coverage:DECCiphers.pas (DECCiphers) 4884 +Clearing BreakPoint at 004EC0FB +De-Activate DECCiphers.pas line 4884 BreakPoint at:004EC0FB +Adding coverage:DECCiphers.pas (DECCiphers) 4885 +Clearing BreakPoint at 004EC113 +De-Activate DECCiphers.pas line 4885 BreakPoint at:004EC113 +Adding coverage:DECCiphers.pas (DECCiphers) 4964 +Clearing BreakPoint at 004EC39D +De-Activate DECCiphers.pas line 4964 BreakPoint at:004EC39D +Adding coverage:DECCiphers.pas (DECCiphers) 4965 +Clearing BreakPoint at 004EC3B3 +De-Activate DECCiphers.pas line 4965 BreakPoint at:004EC3B3 +Adding coverage:DECCiphers.pas (DECCiphers) 4966 +Clearing BreakPoint at 004EC3C9 +De-Activate DECCiphers.pas line 4966 BreakPoint at:004EC3C9 +Adding coverage:DECCiphers.pas (DECCiphers) 4967 +Clearing BreakPoint at 004EC3F6 +De-Activate DECCiphers.pas line 4967 BreakPoint at:004EC3F6 +Adding coverage:DECCiphers.pas (DECCiphers) 4968 +Clearing BreakPoint at 004EC40C +De-Activate DECCiphers.pas line 4968 BreakPoint at:004EC40C +Adding coverage:DECCiphers.pas (DECCiphers) 4969 +Clearing BreakPoint at 004EC422 +De-Activate DECCiphers.pas line 4969 BreakPoint at:004EC422 +Adding coverage:DECCiphers.pas (DECCiphers) 4970 +Clearing BreakPoint at 004EC44F +De-Activate DECCiphers.pas line 4970 BreakPoint at:004EC44F +Adding coverage:DECCiphers.pas (DECCiphers) 4971 +Clearing BreakPoint at 004EC465 +De-Activate DECCiphers.pas line 4971 BreakPoint at:004EC465 +Adding coverage:DECCiphers.pas (DECCiphers) 4972 +Clearing BreakPoint at 004EC47B +De-Activate DECCiphers.pas line 4972 BreakPoint at:004EC47B +Adding coverage:DECCiphers.pas (DECCiphers) 4973 +Clearing BreakPoint at 004EC4A8 +De-Activate DECCiphers.pas line 4973 BreakPoint at:004EC4A8 +Adding coverage:DECCiphers.pas (DECCiphers) 4975 +Clearing BreakPoint at 004EC4BE +De-Activate DECCiphers.pas line 4975 BreakPoint at:004EC4BE +Adding coverage:DECCiphers.pas (DECCiphers) 4976 +Clearing BreakPoint at 004EC4D6 +De-Activate DECCiphers.pas line 4976 BreakPoint at:004EC4D6 +Adding coverage:DECCiphers.pas (DECCiphers) 4977 +Clearing BreakPoint at 004EC4EF +De-Activate DECCiphers.pas line 4977 BreakPoint at:004EC4EF +Adding coverage:DECCiphers.pas (DECCiphers) 4982 +Clearing BreakPoint at 004EC5A4 +De-Activate DECCiphers.pas line 4982 BreakPoint at:004EC5A4 +Adding coverage:DECCiphers.pas (DECCiphers) 4983 +Clearing BreakPoint at 004EC5B3 +De-Activate DECCiphers.pas line 4983 BreakPoint at:004EC5B3 +Adding coverage:DECCiphers.pas (DECCiphers) 4985 +Clearing BreakPoint at 004EC5DA +De-Activate DECCiphers.pas line 4985 BreakPoint at:004EC5DA +Adding coverage:DECCiphers.pas (DECCiphers) 4909 +Clearing BreakPoint at 004EC1AC +De-Activate DECCiphers.pas line 4909 BreakPoint at:004EC1AC +Adding coverage:DECCiphers.pas (DECCiphers) 4910 +Clearing BreakPoint at 004EC1BB +De-Activate DECCiphers.pas line 4910 BreakPoint at:004EC1BB +Adding coverage:DECCiphers.pas (DECCiphers) 4911 +Clearing BreakPoint at 004EC1C4 +De-Activate DECCiphers.pas line 4911 BreakPoint at:004EC1C4 +Adding coverage:DECCiphers.pas (DECCiphers) 4913 +Clearing BreakPoint at 004EC1CB +De-Activate DECCiphers.pas line 4913 BreakPoint at:004EC1CB +Adding coverage:DECCiphers.pas (DECCiphers) 4915 +Clearing BreakPoint at 004EC1D1 +De-Activate DECCiphers.pas line 4915 BreakPoint at:004EC1D1 +Adding coverage:DECCiphers.pas (DECCiphers) 4916 +Clearing BreakPoint at 004EC1D4 +De-Activate DECCiphers.pas line 4916 BreakPoint at:004EC1D4 +Adding coverage:DECCiphers.pas (DECCiphers) 4917 +Clearing BreakPoint at 004EC1E9 +De-Activate DECCiphers.pas line 4917 BreakPoint at:004EC1E9 +Adding coverage:DECCiphers.pas (DECCiphers) 4926 +Clearing BreakPoint at 004EC229 +De-Activate DECCiphers.pas line 4926 BreakPoint at:004EC229 +Adding coverage:DECCiphers.pas (DECCiphers) 4927 +Clearing BreakPoint at 004EC235 +De-Activate DECCiphers.pas line 4927 BreakPoint at:004EC235 +Adding coverage:DECCiphers.pas (DECCiphers) 4986 +Clearing BreakPoint at 004EC5F2 +De-Activate DECCiphers.pas line 4986 BreakPoint at:004EC5F2 +Adding coverage:DECCiphers.pas (DECCiphers) 4921 +Clearing BreakPoint at 004EC201 +De-Activate DECCiphers.pas line 4921 BreakPoint at:004EC201 +Adding coverage:DECCiphers.pas (DECCiphers) 4922 +Clearing BreakPoint at 004EC204 +De-Activate DECCiphers.pas line 4922 BreakPoint at:004EC204 +Adding coverage:DECCiphers.pas (DECCiphers) 4923 +Clearing BreakPoint at 004EC21A +De-Activate DECCiphers.pas line 4923 BreakPoint at:004EC21A +Adding coverage:DECCiphers.pas (DECCiphers) 4987 +Clearing BreakPoint at 004EC60B +De-Activate DECCiphers.pas line 4987 BreakPoint at:004EC60B +Adding coverage:DECCiphers.pas (DECCiphers) 4988 +Clearing BreakPoint at 004EC621 +De-Activate DECCiphers.pas line 4988 BreakPoint at:004EC621 +Adding coverage:DECCiphers.pas (DECCiphers) 4989 +Clearing BreakPoint at 004EC64A +De-Activate DECCiphers.pas line 4989 BreakPoint at:004EC64A +Adding coverage:DECCiphers.pas (DECCiphers) 4990 +Clearing BreakPoint at 004EC660 +De-Activate DECCiphers.pas line 4990 BreakPoint at:004EC660 +Adding coverage:DECCiphers.pas (DECCiphers) 4991 +Clearing BreakPoint at 004EC676 +De-Activate DECCiphers.pas line 4991 BreakPoint at:004EC676 +Adding coverage:DECCiphers.pas (DECCiphers) 4992 +Clearing BreakPoint at 004EC69F +De-Activate DECCiphers.pas line 4992 BreakPoint at:004EC69F +Adding coverage:DECCiphers.pas (DECCiphers) 4993 +Clearing BreakPoint at 004EC6B5 +De-Activate DECCiphers.pas line 4993 BreakPoint at:004EC6B5 +Adding coverage:DECCiphers.pas (DECCiphers) 4994 +Clearing BreakPoint at 004EC6CB +De-Activate DECCiphers.pas line 4994 BreakPoint at:004EC6CB +Adding coverage:DECCiphers.pas (DECCiphers) 4995 +Clearing BreakPoint at 004EC6F4 +De-Activate DECCiphers.pas line 4995 BreakPoint at:004EC6F4 +Adding coverage:DECCiphers.pas (DECCiphers) 4996 +Clearing BreakPoint at 004EC70A +De-Activate DECCiphers.pas line 4996 BreakPoint at:004EC70A +Adding coverage:DECCiphers.pas (DECCiphers) 4998 +Clearing BreakPoint at 004EC720 +De-Activate DECCiphers.pas line 4998 BreakPoint at:004EC720 +Adding coverage:DECCiphers.pas (DECCiphers) 4999 +Clearing BreakPoint at 004EC735 +De-Activate DECCiphers.pas line 4999 BreakPoint at:004EC735 +Adding coverage:DECCiphers.pas (DECCiphers) 5000 +Clearing BreakPoint at 004EC75E +De-Activate DECCiphers.pas line 5000 BreakPoint at:004EC75E +Adding coverage:DECCiphers.pas (DECCiphers) 5047 +Clearing BreakPoint at 004ECA00 +De-Activate DECCiphers.pas line 5047 BreakPoint at:004ECA00 +Adding coverage:DECCiphers.pas (DECCiphers) 5048 +Clearing BreakPoint at 004ECA0C +De-Activate DECCiphers.pas line 5048 BreakPoint at:004ECA0C +Adding coverage:DECCiphers.pas (DECCiphers) 5049 +Clearing BreakPoint at 004ECA15 +De-Activate DECCiphers.pas line 5049 BreakPoint at:004ECA15 +Adding coverage:DECCiphers.pas (DECCiphers) 5050 +Clearing BreakPoint at 004ECA1F +De-Activate DECCiphers.pas line 5050 BreakPoint at:004ECA1F +Adding coverage:DECCiphers.pas (DECCiphers) 5051 +Clearing BreakPoint at 004ECA29 +De-Activate DECCiphers.pas line 5051 BreakPoint at:004ECA29 +Adding coverage:DECCiphers.pas (DECCiphers) 5052 +Clearing BreakPoint at 004ECA33 +De-Activate DECCiphers.pas line 5052 BreakPoint at:004ECA33 +Adding coverage:DECCiphers.pas (DECCiphers) 5053 +Clearing BreakPoint at 004ECA3A +De-Activate DECCiphers.pas line 5053 BreakPoint at:004ECA3A +Adding coverage:DECCiphers.pas (DECCiphers) 5054 +Clearing BreakPoint at 004ECA43 +De-Activate DECCiphers.pas line 5054 BreakPoint at:004ECA43 +Adding coverage:DECCiphers.pas (DECCiphers) 5055 +Clearing BreakPoint at 004ECA4C +De-Activate DECCiphers.pas line 5055 BreakPoint at:004ECA4C +Adding coverage:DECCiphers.pas (DECCiphers) 5056 +Clearing BreakPoint at 004ECA58 +De-Activate DECCiphers.pas line 5056 BreakPoint at:004ECA58 +Adding coverage:DECCiphers.pas (DECCiphers) 5063 +Clearing BreakPoint at 004ECA60 +De-Activate DECCiphers.pas line 5063 BreakPoint at:004ECA60 +Adding coverage:DECCiphers.pas (DECCiphers) 5064 +Clearing BreakPoint at 004ECA6F +De-Activate DECCiphers.pas line 5064 BreakPoint at:004ECA6F +Adding coverage:DECCiphers.pas (DECCiphers) 5065 +Clearing BreakPoint at 004ECA7E +De-Activate DECCiphers.pas line 5065 BreakPoint at:004ECA7E +Adding coverage:DECCiphers.pas (DECCiphers) 5066 +Clearing BreakPoint at 004ECA8C +De-Activate DECCiphers.pas line 5066 BreakPoint at:004ECA8C +Adding coverage:DECCiphers.pas (DECCiphers) 5067 +Clearing BreakPoint at 004ECA95 +De-Activate DECCiphers.pas line 5067 BreakPoint at:004ECA95 +Adding coverage:DECCiphers.pas (DECCiphers) 5068 +Clearing BreakPoint at 004ECAA5 +De-Activate DECCiphers.pas line 5068 BreakPoint at:004ECAA5 +Adding coverage:DECCiphers.pas (DECCiphers) 5069 +Clearing BreakPoint at 004ECAB8 +De-Activate DECCiphers.pas line 5069 BreakPoint at:004ECAB8 +Adding coverage:DECCiphers.pas (DECCiphers) 5070 +Clearing BreakPoint at 004ECACB +De-Activate DECCiphers.pas line 5070 BreakPoint at:004ECACB +Adding coverage:DECCiphers.pas (DECCiphers) 5071 +Clearing BreakPoint at 004ECADE +De-Activate DECCiphers.pas line 5071 BreakPoint at:004ECADE +Adding coverage:DECCiphers.pas (DECCiphers) 5072 +Clearing BreakPoint at 004ECAE7 +De-Activate DECCiphers.pas line 5072 BreakPoint at:004ECAE7 +Adding coverage:DECCiphers.pas (DECCiphers) 5075 +Clearing BreakPoint at 004ECAEE +De-Activate DECCiphers.pas line 5075 BreakPoint at:004ECAEE +Adding coverage:DECCiphers.pas (DECCiphers) 5076 +Clearing BreakPoint at 004ECB09 +De-Activate DECCiphers.pas line 5076 BreakPoint at:004ECB09 +Adding coverage:DECCiphers.pas (DECCiphers) 5077 +Clearing BreakPoint at 004ECB25 +De-Activate DECCiphers.pas line 5077 BreakPoint at:004ECB25 +Adding coverage:DECCiphers.pas (DECCiphers) 5078 +Clearing BreakPoint at 004ECB41 +De-Activate DECCiphers.pas line 5078 BreakPoint at:004ECB41 +Adding coverage:DECCiphers.pas (DECCiphers) 5079 +Clearing BreakPoint at 004ECB5F +De-Activate DECCiphers.pas line 5079 BreakPoint at:004ECB5F +Adding coverage:DECCiphers.pas (DECCiphers) 5081 +Clearing BreakPoint at 004ECB65 +De-Activate DECCiphers.pas line 5081 BreakPoint at:004ECB65 +Adding coverage:DECCiphers.pas (DECCiphers) 5082 +Clearing BreakPoint at 004ECB75 +De-Activate DECCiphers.pas line 5082 BreakPoint at:004ECB75 +Adding coverage:DECCiphers.pas (DECCiphers) 5083 +Clearing BreakPoint at 004ECB85 +De-Activate DECCiphers.pas line 5083 BreakPoint at:004ECB85 +Adding coverage:DECCiphers.pas (DECCiphers) 5084 +Clearing BreakPoint at 004ECBA3 +De-Activate DECCiphers.pas line 5084 BreakPoint at:004ECBA3 +Adding coverage:DECCiphers.pas (DECCiphers) 5085 +Clearing BreakPoint at 004ECBAC +De-Activate DECCiphers.pas line 5085 BreakPoint at:004ECBAC +Adding coverage:DECCiphers.pas (DECCiphers) 5087 +Clearing BreakPoint at 004ECBB1 +De-Activate DECCiphers.pas line 5087 BreakPoint at:004ECBB1 +Adding coverage:DECCiphers.pas (DECCiphers) 5090 +Clearing BreakPoint at 004ECBBE +De-Activate DECCiphers.pas line 5090 BreakPoint at:004ECBBE +Adding coverage:DECCiphers.pas (DECCiphers) 5093 +Clearing BreakPoint at 004ECBC4 +De-Activate DECCiphers.pas line 5093 BreakPoint at:004ECBC4 +Adding coverage:DECCiphers.pas (DECCiphers) 5094 +Clearing BreakPoint at 004ECBD3 +De-Activate DECCiphers.pas line 5094 BreakPoint at:004ECBD3 +Adding coverage:DECCiphers.pas (DECCiphers) 5095 +Clearing BreakPoint at 004ECBFA +De-Activate DECCiphers.pas line 5095 BreakPoint at:004ECBFA +Adding coverage:DECCiphers.pas (DECCiphers) 5008 +Clearing BreakPoint at 004EC810 +De-Activate DECCiphers.pas line 5008 BreakPoint at:004EC810 +Adding coverage:DECCiphers.pas (DECCiphers) 5009 +Clearing BreakPoint at 004EC81F +De-Activate DECCiphers.pas line 5009 BreakPoint at:004EC81F +Adding coverage:DECCiphers.pas (DECCiphers) 5010 +Clearing BreakPoint at 004EC827 +De-Activate DECCiphers.pas line 5010 BreakPoint at:004EC827 +Adding coverage:DECCiphers.pas (DECCiphers) 5011 +Clearing BreakPoint at 004EC830 +De-Activate DECCiphers.pas line 5011 BreakPoint at:004EC830 +Adding coverage:DECCiphers.pas (DECCiphers) 5012 +Clearing BreakPoint at 004EC839 +De-Activate DECCiphers.pas line 5012 BreakPoint at:004EC839 +Adding coverage:DECCiphers.pas (DECCiphers) 5013 +Clearing BreakPoint at 004EC842 +De-Activate DECCiphers.pas line 5013 BreakPoint at:004EC842 +Adding coverage:DECCiphers.pas (DECCiphers) 5014 +Clearing BreakPoint at 004EC84B +De-Activate DECCiphers.pas line 5014 BreakPoint at:004EC84B +Adding coverage:DECCiphers.pas (DECCiphers) 5015 +Clearing BreakPoint at 004EC854 +De-Activate DECCiphers.pas line 5015 BreakPoint at:004EC854 +Adding coverage:DECCiphers.pas (DECCiphers) 5016 +Clearing BreakPoint at 004EC85D +De-Activate DECCiphers.pas line 5016 BreakPoint at:004EC85D +Adding coverage:DECCiphers.pas (DECCiphers) 5018 +Clearing BreakPoint at 004EC866 +De-Activate DECCiphers.pas line 5018 BreakPoint at:004EC866 +Adding coverage:DECCiphers.pas (DECCiphers) 5020 +Clearing BreakPoint at 004EC86B +De-Activate DECCiphers.pas line 5020 BreakPoint at:004EC86B +Adding coverage:DECCiphers.pas (DECCiphers) 5021 +Clearing BreakPoint at 004EC884 +De-Activate DECCiphers.pas line 5021 BreakPoint at:004EC884 +Adding coverage:DECCiphers.pas (DECCiphers) 5022 +Clearing BreakPoint at 004EC89E +De-Activate DECCiphers.pas line 5022 BreakPoint at:004EC89E +Adding coverage:DECCiphers.pas (DECCiphers) 5023 +Clearing BreakPoint at 004EC8B8 +De-Activate DECCiphers.pas line 5023 BreakPoint at:004EC8B8 +Adding coverage:DECCiphers.pas (DECCiphers) 5024 +Clearing BreakPoint at 004EC8D2 +De-Activate DECCiphers.pas line 5024 BreakPoint at:004EC8D2 +Adding coverage:DECCiphers.pas (DECCiphers) 5025 +Clearing BreakPoint at 004EC8EC +De-Activate DECCiphers.pas line 5025 BreakPoint at:004EC8EC +Adding coverage:DECCiphers.pas (DECCiphers) 5026 +Clearing BreakPoint at 004EC903 +De-Activate DECCiphers.pas line 5026 BreakPoint at:004EC903 +Adding coverage:DECCiphers.pas (DECCiphers) 5027 +Clearing BreakPoint at 004EC91D +De-Activate DECCiphers.pas line 5027 BreakPoint at:004EC91D +Adding coverage:DECCiphers.pas (DECCiphers) 5028 +Clearing BreakPoint at 004EC937 +De-Activate DECCiphers.pas line 5028 BreakPoint at:004EC937 +Adding coverage:DECCiphers.pas (DECCiphers) 5029 +Clearing BreakPoint at 004EC940 +De-Activate DECCiphers.pas line 5029 BreakPoint at:004EC940 +Adding coverage:DECCiphers.pas (DECCiphers) 5018 +Clearing BreakPoint at 004EC943 +De-Activate DECCiphers.pas line 5018 BreakPoint at:004EC943 +Adding coverage:DECCiphers.pas (DECCiphers) 5031 +Clearing BreakPoint at 004EC94D +De-Activate DECCiphers.pas line 5031 BreakPoint at:004EC94D +Adding coverage:DECCiphers.pas (DECCiphers) 5032 +Clearing BreakPoint at 004EC966 +De-Activate DECCiphers.pas line 5032 BreakPoint at:004EC966 +Adding coverage:DECCiphers.pas (DECCiphers) 5033 +Clearing BreakPoint at 004EC980 +De-Activate DECCiphers.pas line 5033 BreakPoint at:004EC980 +Adding coverage:DECCiphers.pas (DECCiphers) 5034 +Clearing BreakPoint at 004EC99A +De-Activate DECCiphers.pas line 5034 BreakPoint at:004EC99A +Adding coverage:DECCiphers.pas (DECCiphers) 5036 +Clearing BreakPoint at 004EC9B4 +De-Activate DECCiphers.pas line 5036 BreakPoint at:004EC9B4 +Adding coverage:DECCiphers.pas (DECCiphers) 5037 +Clearing BreakPoint at 004EC9BC +De-Activate DECCiphers.pas line 5037 BreakPoint at:004EC9BC +Adding coverage:DECCiphers.pas (DECCiphers) 5038 +Clearing BreakPoint at 004EC9C5 +De-Activate DECCiphers.pas line 5038 BreakPoint at:004EC9C5 +Adding coverage:DECCiphers.pas (DECCiphers) 5039 +Clearing BreakPoint at 004EC9CE +De-Activate DECCiphers.pas line 5039 BreakPoint at:004EC9CE +Adding coverage:DECCiphers.pas (DECCiphers) 5040 +Clearing BreakPoint at 004EC9D7 +De-Activate DECCiphers.pas line 5040 BreakPoint at:004EC9D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5041 +Clearing BreakPoint at 004EC9E0 +De-Activate DECCiphers.pas line 5041 BreakPoint at:004EC9E0 +Adding coverage:DECCiphers.pas (DECCiphers) 5042 +Clearing BreakPoint at 004EC9E9 +De-Activate DECCiphers.pas line 5042 BreakPoint at:004EC9E9 +Adding coverage:DECCiphers.pas (DECCiphers) 5043 +Clearing BreakPoint at 004EC9F2 +De-Activate DECCiphers.pas line 5043 BreakPoint at:004EC9F2 +Adding coverage:DECCiphers.pas (DECCiphers) 5044 +Clearing BreakPoint at 004EC9FB +De-Activate DECCiphers.pas line 5044 BreakPoint at:004EC9FB +Adding coverage:DECCiphers.pas (DECCiphers) 5096 +Clearing BreakPoint at 004ECC0B +De-Activate DECCiphers.pas line 5096 BreakPoint at:004ECC0B +Adding coverage:DECCiphers.pas (DECCiphers) 5099 +Clearing BreakPoint at 004ECCC0 +De-Activate DECCiphers.pas line 5099 BreakPoint at:004ECCC0 +Adding coverage:DECCiphers.pas (DECCiphers) 5100 +Clearing BreakPoint at 004ECCCF +De-Activate DECCiphers.pas line 5100 BreakPoint at:004ECCCF +Adding coverage:DECCiphers.pas (DECCiphers) 5101 +Clearing BreakPoint at 004ECCF6 +De-Activate DECCiphers.pas line 5101 BreakPoint at:004ECCF6 +Adding coverage:DECCiphers.pas (DECCiphers) 5102 +Clearing BreakPoint at 004ECD0A +De-Activate DECCiphers.pas line 5102 BreakPoint at:004ECD0A +Adding coverage:DECCiphers.pas (DECCiphers) 5107 +Clearing BreakPoint at 004ECDBC +De-Activate DECCiphers.pas line 5107 BreakPoint at:004ECDBC +Adding coverage:DECCiphers.pas (DECCiphers) 5108 +Clearing BreakPoint at 004ECDC8 +De-Activate DECCiphers.pas line 5108 BreakPoint at:004ECDC8 +Adding coverage:DECCiphers.pas (DECCiphers) 5109 +Clearing BreakPoint at 004ECDD1 +De-Activate DECCiphers.pas line 5109 BreakPoint at:004ECDD1 +Adding coverage:DECCiphers.pas (DECCiphers) 5110 +Clearing BreakPoint at 004ECDDB +De-Activate DECCiphers.pas line 5110 BreakPoint at:004ECDDB +Adding coverage:DECCiphers.pas (DECCiphers) 5111 +Clearing BreakPoint at 004ECDE5 +De-Activate DECCiphers.pas line 5111 BreakPoint at:004ECDE5 +Adding coverage:DECCiphers.pas (DECCiphers) 5112 +Clearing BreakPoint at 004ECDEF +De-Activate DECCiphers.pas line 5112 BreakPoint at:004ECDEF +Adding coverage:DECCiphers.pas (DECCiphers) 5113 +Clearing BreakPoint at 004ECDF6 +De-Activate DECCiphers.pas line 5113 BreakPoint at:004ECDF6 +Adding coverage:DECCiphers.pas (DECCiphers) 5114 +Clearing BreakPoint at 004ECDFF +De-Activate DECCiphers.pas line 5114 BreakPoint at:004ECDFF +Adding coverage:DECCiphers.pas (DECCiphers) 5115 +Clearing BreakPoint at 004ECE08 +De-Activate DECCiphers.pas line 5115 BreakPoint at:004ECE08 +Adding coverage:DECCiphers.pas (DECCiphers) 5116 +Clearing BreakPoint at 004ECE14 +De-Activate DECCiphers.pas line 5116 BreakPoint at:004ECE14 +Adding coverage:DECCiphers.pas (DECCiphers) 5123 +Clearing BreakPoint at 004ECE1C +De-Activate DECCiphers.pas line 5123 BreakPoint at:004ECE1C +Adding coverage:DECCiphers.pas (DECCiphers) 5124 +Clearing BreakPoint at 004ECE2B +De-Activate DECCiphers.pas line 5124 BreakPoint at:004ECE2B +Adding coverage:DECCiphers.pas (DECCiphers) 5125 +Clearing BreakPoint at 004ECE3A +De-Activate DECCiphers.pas line 5125 BreakPoint at:004ECE3A +Adding coverage:DECCiphers.pas (DECCiphers) 5126 +Clearing BreakPoint at 004ECE48 +De-Activate DECCiphers.pas line 5126 BreakPoint at:004ECE48 +Adding coverage:DECCiphers.pas (DECCiphers) 5128 +Clearing BreakPoint at 004ECE51 +De-Activate DECCiphers.pas line 5128 BreakPoint at:004ECE51 +Adding coverage:DECCiphers.pas (DECCiphers) 5130 +Clearing BreakPoint at 004ECE58 +De-Activate DECCiphers.pas line 5130 BreakPoint at:004ECE58 +Adding coverage:DECCiphers.pas (DECCiphers) 5131 +Clearing BreakPoint at 004ECE7D +De-Activate DECCiphers.pas line 5131 BreakPoint at:004ECE7D +Adding coverage:DECCiphers.pas (DECCiphers) 5132 +Clearing BreakPoint at 004ECEA2 +De-Activate DECCiphers.pas line 5132 BreakPoint at:004ECEA2 +Adding coverage:DECCiphers.pas (DECCiphers) 5133 +Clearing BreakPoint at 004ECEC7 +De-Activate DECCiphers.pas line 5133 BreakPoint at:004ECEC7 +Adding coverage:DECCiphers.pas (DECCiphers) 5134 +Clearing BreakPoint at 004ECEEC +De-Activate DECCiphers.pas line 5134 BreakPoint at:004ECEEC +Adding coverage:DECCiphers.pas (DECCiphers) 5142 +Clearing BreakPoint at 004ECF1E +De-Activate DECCiphers.pas line 5142 BreakPoint at:004ECF1E +Adding coverage:DECCiphers.pas (DECCiphers) 5128 +Clearing BreakPoint at 004ECF21 +De-Activate DECCiphers.pas line 5128 BreakPoint at:004ECF21 +Adding coverage:DECCiphers.pas (DECCiphers) 5136 +Clearing BreakPoint at 004ECEF2 +De-Activate DECCiphers.pas line 5136 BreakPoint at:004ECEF2 +Adding coverage:DECCiphers.pas (DECCiphers) 5137 +Clearing BreakPoint at 004ECEFA +De-Activate DECCiphers.pas line 5137 BreakPoint at:004ECEFA +Adding coverage:DECCiphers.pas (DECCiphers) 5138 +Clearing BreakPoint at 004ECF03 +De-Activate DECCiphers.pas line 5138 BreakPoint at:004ECF03 +Adding coverage:DECCiphers.pas (DECCiphers) 5139 +Clearing BreakPoint at 004ECF0C +De-Activate DECCiphers.pas line 5139 BreakPoint at:004ECF0C +Adding coverage:DECCiphers.pas (DECCiphers) 5140 +Clearing BreakPoint at 004ECF15 +De-Activate DECCiphers.pas line 5140 BreakPoint at:004ECF15 +Adding coverage:DECCiphers.pas (DECCiphers) 5144 +Clearing BreakPoint at 004ECF2B +De-Activate DECCiphers.pas line 5144 BreakPoint at:004ECF2B +Adding coverage:DECCiphers.pas (DECCiphers) 5147 +Clearing BreakPoint at 004ECF38 +De-Activate DECCiphers.pas line 5147 BreakPoint at:004ECF38 +Adding coverage:DECCiphers.pas (DECCiphers) 5204 +Clearing BreakPoint at 004ECF3C +De-Activate DECCiphers.pas line 5204 BreakPoint at:004ECF3C +Adding coverage:DECCiphers.pas (DECCiphers) 5205 +Clearing BreakPoint at 004ECF4B +De-Activate DECCiphers.pas line 5205 BreakPoint at:004ECF4B +Adding coverage:DECCiphers.pas (DECCiphers) 5207 +Clearing BreakPoint at 004ECF72 +De-Activate DECCiphers.pas line 5207 BreakPoint at:004ECF72 +Adding coverage:DECCiphers.pas (DECCiphers) 5208 +Clearing BreakPoint at 004ECF7B +De-Activate DECCiphers.pas line 5208 BreakPoint at:004ECF7B +Adding coverage:DECCiphers.pas (DECCiphers) 5209 +Clearing BreakPoint at 004ECF83 +De-Activate DECCiphers.pas line 5209 BreakPoint at:004ECF83 +Adding coverage:DECCiphers.pas (DECCiphers) 5210 +Clearing BreakPoint at 004ECF8C +De-Activate DECCiphers.pas line 5210 BreakPoint at:004ECF8C +Adding coverage:DECCiphers.pas (DECCiphers) 5211 +Clearing BreakPoint at 004ECF95 +De-Activate DECCiphers.pas line 5211 BreakPoint at:004ECF95 +Adding coverage:DECCiphers.pas (DECCiphers) 5212 +Clearing BreakPoint at 004ECF9E +De-Activate DECCiphers.pas line 5212 BreakPoint at:004ECF9E +Adding coverage:DECCiphers.pas (DECCiphers) 5214 +Clearing BreakPoint at 004ECFA3 +De-Activate DECCiphers.pas line 5214 BreakPoint at:004ECFA3 +Adding coverage:DECCiphers.pas (DECCiphers) 5215 +Clearing BreakPoint at 004ECFCD +De-Activate DECCiphers.pas line 5215 BreakPoint at:004ECFCD +Adding coverage:DECCiphers.pas (DECCiphers) 5216 +Clearing BreakPoint at 004ECFF8 +De-Activate DECCiphers.pas line 5216 BreakPoint at:004ECFF8 +Adding coverage:DECCiphers.pas (DECCiphers) 5217 +Clearing BreakPoint at 004ED023 +De-Activate DECCiphers.pas line 5217 BreakPoint at:004ED023 +Adding coverage:DECCiphers.pas (DECCiphers) 5218 +Clearing BreakPoint at 004ED04E +De-Activate DECCiphers.pas line 5218 BreakPoint at:004ED04E +Adding coverage:DECCiphers.pas (DECCiphers) 5219 +Clearing BreakPoint at 004ED057 +De-Activate DECCiphers.pas line 5219 BreakPoint at:004ED057 +Adding coverage:DECCiphers.pas (DECCiphers) 5212 +Clearing BreakPoint at 004ED05A +De-Activate DECCiphers.pas line 5212 BreakPoint at:004ED05A +Adding coverage:DECCiphers.pas (DECCiphers) 5220 +Clearing BreakPoint at 004ED064 +De-Activate DECCiphers.pas line 5220 BreakPoint at:004ED064 +Adding coverage:DECCiphers.pas (DECCiphers) 5221 +Clearing BreakPoint at 004ED06C +De-Activate DECCiphers.pas line 5221 BreakPoint at:004ED06C +Adding coverage:DECCiphers.pas (DECCiphers) 5222 +Clearing BreakPoint at 004ED075 +De-Activate DECCiphers.pas line 5222 BreakPoint at:004ED075 +Adding coverage:DECCiphers.pas (DECCiphers) 5223 +Clearing BreakPoint at 004ED07E +De-Activate DECCiphers.pas line 5223 BreakPoint at:004ED07E +Adding coverage:DECCiphers.pas (DECCiphers) 5224 +Clearing BreakPoint at 004ED087 +De-Activate DECCiphers.pas line 5224 BreakPoint at:004ED087 +Adding coverage:DECCiphers.pas (DECCiphers) 5283 +Clearing BreakPoint at 004ED13C +De-Activate DECCiphers.pas line 5283 BreakPoint at:004ED13C +Adding coverage:DECCiphers.pas (DECCiphers) 5284 +Clearing BreakPoint at 004ED14B +De-Activate DECCiphers.pas line 5284 BreakPoint at:004ED14B +Adding coverage:DECCiphers.pas (DECCiphers) 5286 +Clearing BreakPoint at 004ED172 +De-Activate DECCiphers.pas line 5286 BreakPoint at:004ED172 +Adding coverage:DECCiphers.pas (DECCiphers) 5287 +Clearing BreakPoint at 004ED180 +De-Activate DECCiphers.pas line 5287 BreakPoint at:004ED180 +Adding coverage:DECCiphers.pas (DECCiphers) 5288 +Clearing BreakPoint at 004ED188 +De-Activate DECCiphers.pas line 5288 BreakPoint at:004ED188 +Adding coverage:DECCiphers.pas (DECCiphers) 5289 +Clearing BreakPoint at 004ED191 +De-Activate DECCiphers.pas line 5289 BreakPoint at:004ED191 +Adding coverage:DECCiphers.pas (DECCiphers) 5290 +Clearing BreakPoint at 004ED19A +De-Activate DECCiphers.pas line 5290 BreakPoint at:004ED19A +Adding coverage:DECCiphers.pas (DECCiphers) 5291 +Clearing BreakPoint at 004ED1A3 +De-Activate DECCiphers.pas line 5291 BreakPoint at:004ED1A3 +Adding coverage:DECCiphers.pas (DECCiphers) 5293 +Clearing BreakPoint at 004ED1A8 +De-Activate DECCiphers.pas line 5293 BreakPoint at:004ED1A8 +Adding coverage:DECCiphers.pas (DECCiphers) 5294 +Clearing BreakPoint at 004ED1D3 +De-Activate DECCiphers.pas line 5294 BreakPoint at:004ED1D3 +Adding coverage:DECCiphers.pas (DECCiphers) 5295 +Clearing BreakPoint at 004ED1FE +De-Activate DECCiphers.pas line 5295 BreakPoint at:004ED1FE +Adding coverage:DECCiphers.pas (DECCiphers) 5296 +Clearing BreakPoint at 004ED229 +De-Activate DECCiphers.pas line 5296 BreakPoint at:004ED229 +Adding coverage:DECCiphers.pas (DECCiphers) 5297 +Clearing BreakPoint at 004ED253 +De-Activate DECCiphers.pas line 5297 BreakPoint at:004ED253 +Adding coverage:DECCiphers.pas (DECCiphers) 5298 +Clearing BreakPoint at 004ED257 +De-Activate DECCiphers.pas line 5298 BreakPoint at:004ED257 +Adding coverage:DECCiphers.pas (DECCiphers) 5291 +Clearing BreakPoint at 004ED25A +De-Activate DECCiphers.pas line 5291 BreakPoint at:004ED25A +Adding coverage:DECCiphers.pas (DECCiphers) 5299 +Clearing BreakPoint at 004ED264 +De-Activate DECCiphers.pas line 5299 BreakPoint at:004ED264 +Adding coverage:DECCiphers.pas (DECCiphers) 5300 +Clearing BreakPoint at 004ED26C +De-Activate DECCiphers.pas line 5300 BreakPoint at:004ED26C +Adding coverage:DECCiphers.pas (DECCiphers) 5301 +Clearing BreakPoint at 004ED275 +De-Activate DECCiphers.pas line 5301 BreakPoint at:004ED275 +Adding coverage:DECCiphers.pas (DECCiphers) 5302 +Clearing BreakPoint at 004ED27E +De-Activate DECCiphers.pas line 5302 BreakPoint at:004ED27E +Adding coverage:DECCiphers.pas (DECCiphers) 5303 +Clearing BreakPoint at 004ED287 +De-Activate DECCiphers.pas line 5303 BreakPoint at:004ED287 +Adding coverage:DECCiphers.pas (DECCiphers) 5309 +Clearing BreakPoint at 004ED33C +De-Activate DECCiphers.pas line 5309 BreakPoint at:004ED33C +Adding coverage:DECCiphers.pas (DECCiphers) 5310 +Clearing BreakPoint at 004ED348 +De-Activate DECCiphers.pas line 5310 BreakPoint at:004ED348 +Adding coverage:DECCiphers.pas (DECCiphers) 5311 +Clearing BreakPoint at 004ED351 +De-Activate DECCiphers.pas line 5311 BreakPoint at:004ED351 +Adding coverage:DECCiphers.pas (DECCiphers) 5312 +Clearing BreakPoint at 004ED35B +De-Activate DECCiphers.pas line 5312 BreakPoint at:004ED35B +Adding coverage:DECCiphers.pas (DECCiphers) 5313 +Clearing BreakPoint at 004ED365 +De-Activate DECCiphers.pas line 5313 BreakPoint at:004ED365 +Adding coverage:DECCiphers.pas (DECCiphers) 5314 +Clearing BreakPoint at 004ED36F +De-Activate DECCiphers.pas line 5314 BreakPoint at:004ED36F +Adding coverage:DECCiphers.pas (DECCiphers) 5315 +Clearing BreakPoint at 004ED376 +De-Activate DECCiphers.pas line 5315 BreakPoint at:004ED376 +Adding coverage:DECCiphers.pas (DECCiphers) 5316 +Clearing BreakPoint at 004ED37F +De-Activate DECCiphers.pas line 5316 BreakPoint at:004ED37F +Adding coverage:DECCiphers.pas (DECCiphers) 5317 +Clearing BreakPoint at 004ED388 +De-Activate DECCiphers.pas line 5317 BreakPoint at:004ED388 +Adding coverage:DECCiphers.pas (DECCiphers) 5318 +Clearing BreakPoint at 004ED394 +De-Activate DECCiphers.pas line 5318 BreakPoint at:004ED394 +Adding coverage:DECCiphers.pas (DECCiphers) 5327 +Clearing BreakPoint at 004ED39C +De-Activate DECCiphers.pas line 5327 BreakPoint at:004ED39C +Adding coverage:DECCiphers.pas (DECCiphers) 5328 +Clearing BreakPoint at 004ED3AB +De-Activate DECCiphers.pas line 5328 BreakPoint at:004ED3AB +Adding coverage:DECCiphers.pas (DECCiphers) 5330 +Clearing BreakPoint at 004ED3B5 +De-Activate DECCiphers.pas line 5330 BreakPoint at:004ED3B5 +Adding coverage:DECCiphers.pas (DECCiphers) 5331 +Clearing BreakPoint at 004ED3BE +De-Activate DECCiphers.pas line 5331 BreakPoint at:004ED3BE +Adding coverage:DECCiphers.pas (DECCiphers) 5332 +Clearing BreakPoint at 004ED3C7 +De-Activate DECCiphers.pas line 5332 BreakPoint at:004ED3C7 +Adding coverage:DECCiphers.pas (DECCiphers) 5333 +Clearing BreakPoint at 004ED3CD +De-Activate DECCiphers.pas line 5333 BreakPoint at:004ED3CD +Adding coverage:DECCiphers.pas (DECCiphers) 5336 +Clearing BreakPoint at 004ED3E8 +De-Activate DECCiphers.pas line 5336 BreakPoint at:004ED3E8 +Adding coverage:DECCiphers.pas (DECCiphers) 5337 +Clearing BreakPoint at 004ED3F4 +De-Activate DECCiphers.pas line 5337 BreakPoint at:004ED3F4 +Adding coverage:DECCiphers.pas (DECCiphers) 5338 +Clearing BreakPoint at 004ED3FD +De-Activate DECCiphers.pas line 5338 BreakPoint at:004ED3FD +Adding coverage:DECCiphers.pas (DECCiphers) 5339 +Clearing BreakPoint at 004ED40B +De-Activate DECCiphers.pas line 5339 BreakPoint at:004ED40B +Adding coverage:DECCiphers.pas (DECCiphers) 5340 +Clearing BreakPoint at 004ED416 +De-Activate DECCiphers.pas line 5340 BreakPoint at:004ED416 +Adding coverage:DECCiphers.pas (DECCiphers) 5339 +Clearing BreakPoint at 004ED44A +De-Activate DECCiphers.pas line 5339 BreakPoint at:004ED44A +Adding coverage:DECCiphers.pas (DECCiphers) 5341 +Clearing BreakPoint at 004ED453 +De-Activate DECCiphers.pas line 5341 BreakPoint at:004ED453 +Adding coverage:DECCiphers.pas (DECCiphers) 5342 +Clearing BreakPoint at 004ED47C +De-Activate DECCiphers.pas line 5342 BreakPoint at:004ED47C +Adding coverage:DECCiphers.pas (DECCiphers) 5343 +Clearing BreakPoint at 004ED48C +De-Activate DECCiphers.pas line 5343 BreakPoint at:004ED48C +Adding coverage:DECCiphers.pas (DECCiphers) 5342 +Clearing BreakPoint at 004ED4BC +De-Activate DECCiphers.pas line 5342 BreakPoint at:004ED4BC +Adding coverage:DECCiphers.pas (DECCiphers) 5346 +Clearing BreakPoint at 004ED4C2 +De-Activate DECCiphers.pas line 5346 BreakPoint at:004ED4C2 +Adding coverage:DECCiphers.pas (DECCiphers) 5353 +Clearing BreakPoint at 004ED4C8 +De-Activate DECCiphers.pas line 5353 BreakPoint at:004ED4C8 +Adding coverage:DECCiphers.pas (DECCiphers) 5354 +Clearing BreakPoint at 004ED4D7 +De-Activate DECCiphers.pas line 5354 BreakPoint at:004ED4D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5356 +Clearing BreakPoint at 004ED4FE +De-Activate DECCiphers.pas line 5356 BreakPoint at:004ED4FE +Adding coverage:DECCiphers.pas (DECCiphers) 5357 +Clearing BreakPoint at 004ED507 +De-Activate DECCiphers.pas line 5357 BreakPoint at:004ED507 +Adding coverage:DECCiphers.pas (DECCiphers) 5358 +Clearing BreakPoint at 004ED511 +De-Activate DECCiphers.pas line 5358 BreakPoint at:004ED511 +Adding coverage:DECCiphers.pas (DECCiphers) 5359 +Clearing BreakPoint at 004ED51C +De-Activate DECCiphers.pas line 5359 BreakPoint at:004ED51C +Adding coverage:DECCiphers.pas (DECCiphers) 5360 +Clearing BreakPoint at 004ED527 +De-Activate DECCiphers.pas line 5360 BreakPoint at:004ED527 +Adding coverage:DECCiphers.pas (DECCiphers) 5361 +Clearing BreakPoint at 004ED532 +De-Activate DECCiphers.pas line 5361 BreakPoint at:004ED532 +Adding coverage:DECCiphers.pas (DECCiphers) 5363 +Clearing BreakPoint at 004ED537 +De-Activate DECCiphers.pas line 5363 BreakPoint at:004ED537 +Adding coverage:DECCiphers.pas (DECCiphers) 5364 +Clearing BreakPoint at 004ED572 +De-Activate DECCiphers.pas line 5364 BreakPoint at:004ED572 +Adding coverage:DECCiphers.pas (DECCiphers) 5365 +Clearing BreakPoint at 004ED5AF +De-Activate DECCiphers.pas line 5365 BreakPoint at:004ED5AF +Adding coverage:DECCiphers.pas (DECCiphers) 5366 +Clearing BreakPoint at 004ED5EC +De-Activate DECCiphers.pas line 5366 BreakPoint at:004ED5EC +Adding coverage:DECCiphers.pas (DECCiphers) 5367 +Clearing BreakPoint at 004ED629 +De-Activate DECCiphers.pas line 5367 BreakPoint at:004ED629 +Adding coverage:DECCiphers.pas (DECCiphers) 5374 +Clearing BreakPoint at 004ED68E +De-Activate DECCiphers.pas line 5374 BreakPoint at:004ED68E +Adding coverage:DECCiphers.pas (DECCiphers) 5361 +Clearing BreakPoint at 004ED691 +De-Activate DECCiphers.pas line 5361 BreakPoint at:004ED691 +Adding coverage:DECCiphers.pas (DECCiphers) 5369 +Clearing BreakPoint at 004ED636 +De-Activate DECCiphers.pas line 5369 BreakPoint at:004ED636 +Adding coverage:DECCiphers.pas (DECCiphers) 5370 +Clearing BreakPoint at 004ED64C +De-Activate DECCiphers.pas line 5370 BreakPoint at:004ED64C +Adding coverage:DECCiphers.pas (DECCiphers) 5371 +Clearing BreakPoint at 004ED662 +De-Activate DECCiphers.pas line 5371 BreakPoint at:004ED662 +Adding coverage:DECCiphers.pas (DECCiphers) 5372 +Clearing BreakPoint at 004ED678 +De-Activate DECCiphers.pas line 5372 BreakPoint at:004ED678 +Adding coverage:DECCiphers.pas (DECCiphers) 5375 +Clearing BreakPoint at 004ED69B +De-Activate DECCiphers.pas line 5375 BreakPoint at:004ED69B +Adding coverage:DECCiphers.pas (DECCiphers) 5376 +Clearing BreakPoint at 004ED6A5 +De-Activate DECCiphers.pas line 5376 BreakPoint at:004ED6A5 +Adding coverage:DECCiphers.pas (DECCiphers) 5377 +Clearing BreakPoint at 004ED6B0 +De-Activate DECCiphers.pas line 5377 BreakPoint at:004ED6B0 +Adding coverage:DECCiphers.pas (DECCiphers) 5378 +Clearing BreakPoint at 004ED6BB +De-Activate DECCiphers.pas line 5378 BreakPoint at:004ED6BB +Adding coverage:DECCiphers.pas (DECCiphers) 5379 +Clearing BreakPoint at 004ED6C6 +De-Activate DECCiphers.pas line 5379 BreakPoint at:004ED6C6 +Adding coverage:DECCiphers.pas (DECCiphers) 5386 +Clearing BreakPoint at 004ED778 +De-Activate DECCiphers.pas line 5386 BreakPoint at:004ED778 +Adding coverage:DECCiphers.pas (DECCiphers) 5387 +Clearing BreakPoint at 004ED787 +De-Activate DECCiphers.pas line 5387 BreakPoint at:004ED787 +Adding coverage:DECCiphers.pas (DECCiphers) 5389 +Clearing BreakPoint at 004ED7AE +De-Activate DECCiphers.pas line 5389 BreakPoint at:004ED7AE +Adding coverage:DECCiphers.pas (DECCiphers) 5390 +Clearing BreakPoint at 004ED7B7 +De-Activate DECCiphers.pas line 5390 BreakPoint at:004ED7B7 +Adding coverage:DECCiphers.pas (DECCiphers) 5391 +Clearing BreakPoint at 004ED7C1 +De-Activate DECCiphers.pas line 5391 BreakPoint at:004ED7C1 +Adding coverage:DECCiphers.pas (DECCiphers) 5392 +Clearing BreakPoint at 004ED7CC +De-Activate DECCiphers.pas line 5392 BreakPoint at:004ED7CC +Adding coverage:DECCiphers.pas (DECCiphers) 5393 +Clearing BreakPoint at 004ED7D7 +De-Activate DECCiphers.pas line 5393 BreakPoint at:004ED7D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5394 +Clearing BreakPoint at 004ED7E2 +De-Activate DECCiphers.pas line 5394 BreakPoint at:004ED7E2 +Adding coverage:DECCiphers.pas (DECCiphers) 5396 +Clearing BreakPoint at 004ED7E9 +De-Activate DECCiphers.pas line 5396 BreakPoint at:004ED7E9 +Adding coverage:DECCiphers.pas (DECCiphers) 5397 +Clearing BreakPoint at 004ED825 +De-Activate DECCiphers.pas line 5397 BreakPoint at:004ED825 +Adding coverage:DECCiphers.pas (DECCiphers) 5398 +Clearing BreakPoint at 004ED861 +De-Activate DECCiphers.pas line 5398 BreakPoint at:004ED861 +Adding coverage:DECCiphers.pas (DECCiphers) 5399 +Clearing BreakPoint at 004ED89D +De-Activate DECCiphers.pas line 5399 BreakPoint at:004ED89D +Adding coverage:DECCiphers.pas (DECCiphers) 5400 +Clearing BreakPoint at 004ED8D7 +De-Activate DECCiphers.pas line 5400 BreakPoint at:004ED8D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5407 +Clearing BreakPoint at 004ED93C +De-Activate DECCiphers.pas line 5407 BreakPoint at:004ED93C +Adding coverage:DECCiphers.pas (DECCiphers) 5394 +Clearing BreakPoint at 004ED93F +De-Activate DECCiphers.pas line 5394 BreakPoint at:004ED93F +Adding coverage:DECCiphers.pas (DECCiphers) 5402 +Clearing BreakPoint at 004ED8E4 +De-Activate DECCiphers.pas line 5402 BreakPoint at:004ED8E4 +Adding coverage:DECCiphers.pas (DECCiphers) 5403 +Clearing BreakPoint at 004ED8FA +De-Activate DECCiphers.pas line 5403 BreakPoint at:004ED8FA +Adding coverage:DECCiphers.pas (DECCiphers) 5404 +Clearing BreakPoint at 004ED910 +De-Activate DECCiphers.pas line 5404 BreakPoint at:004ED910 +Adding coverage:DECCiphers.pas (DECCiphers) 5405 +Clearing BreakPoint at 004ED926 +De-Activate DECCiphers.pas line 5405 BreakPoint at:004ED926 +Adding coverage:DECCiphers.pas (DECCiphers) 5408 +Clearing BreakPoint at 004ED949 +De-Activate DECCiphers.pas line 5408 BreakPoint at:004ED949 +Adding coverage:DECCiphers.pas (DECCiphers) 5409 +Clearing BreakPoint at 004ED953 +De-Activate DECCiphers.pas line 5409 BreakPoint at:004ED953 +Adding coverage:DECCiphers.pas (DECCiphers) 5410 +Clearing BreakPoint at 004ED95E +De-Activate DECCiphers.pas line 5410 BreakPoint at:004ED95E +Adding coverage:DECCiphers.pas (DECCiphers) 5411 +Clearing BreakPoint at 004ED969 +De-Activate DECCiphers.pas line 5411 BreakPoint at:004ED969 +Adding coverage:DECCiphers.pas (DECCiphers) 5412 +Clearing BreakPoint at 004ED974 +De-Activate DECCiphers.pas line 5412 BreakPoint at:004ED974 +Adding coverage:DECCiphers.pas (DECCiphers) 5417 +Clearing BreakPoint at 004EDA28 +De-Activate DECCiphers.pas line 5417 BreakPoint at:004EDA28 +Adding coverage:DECCiphers.pas (DECCiphers) 5418 +Clearing BreakPoint at 004EDA34 +De-Activate DECCiphers.pas line 5418 BreakPoint at:004EDA34 +Adding coverage:DECCiphers.pas (DECCiphers) 5419 +Clearing BreakPoint at 004EDA3D +De-Activate DECCiphers.pas line 5419 BreakPoint at:004EDA3D +Adding coverage:DECCiphers.pas (DECCiphers) 5420 +Clearing BreakPoint at 004EDA47 +De-Activate DECCiphers.pas line 5420 BreakPoint at:004EDA47 +Adding coverage:DECCiphers.pas (DECCiphers) 5421 +Clearing BreakPoint at 004EDA51 +De-Activate DECCiphers.pas line 5421 BreakPoint at:004EDA51 +Adding coverage:DECCiphers.pas (DECCiphers) 5422 +Clearing BreakPoint at 004EDA5B +De-Activate DECCiphers.pas line 5422 BreakPoint at:004EDA5B +Adding coverage:DECCiphers.pas (DECCiphers) 5423 +Clearing BreakPoint at 004EDA62 +De-Activate DECCiphers.pas line 5423 BreakPoint at:004EDA62 +Adding coverage:DECCiphers.pas (DECCiphers) 5424 +Clearing BreakPoint at 004EDA6B +De-Activate DECCiphers.pas line 5424 BreakPoint at:004EDA6B +Adding coverage:DECCiphers.pas (DECCiphers) 5425 +Clearing BreakPoint at 004EDA74 +De-Activate DECCiphers.pas line 5425 BreakPoint at:004EDA74 +Adding coverage:DECCiphers.pas (DECCiphers) 5426 +Clearing BreakPoint at 004EDA80 +De-Activate DECCiphers.pas line 5426 BreakPoint at:004EDA80 +Adding coverage:DECCiphers.pas (DECCiphers) 5451 +Clearing BreakPoint at 004EDAF8 +De-Activate DECCiphers.pas line 5451 BreakPoint at:004EDAF8 +Adding coverage:DECCiphers.pas (DECCiphers) 5452 +Clearing BreakPoint at 004EDB0A +De-Activate DECCiphers.pas line 5452 BreakPoint at:004EDB0A +Adding coverage:DECCiphers.pas (DECCiphers) 5453 +Clearing BreakPoint at 004EDB13 +De-Activate DECCiphers.pas line 5453 BreakPoint at:004EDB13 +Adding coverage:DECCiphers.pas (DECCiphers) 5454 +Clearing BreakPoint at 004EDB1D +De-Activate DECCiphers.pas line 5454 BreakPoint at:004EDB1D +Adding coverage:DECCiphers.pas (DECCiphers) 5455 +Clearing BreakPoint at 004EDB2F +De-Activate DECCiphers.pas line 5455 BreakPoint at:004EDB2F +Adding coverage:DECCiphers.pas (DECCiphers) 5456 +Clearing BreakPoint at 004EDB40 +De-Activate DECCiphers.pas line 5456 BreakPoint at:004EDB40 +Adding coverage:DECCiphers.pas (DECCiphers) 5457 +Clearing BreakPoint at 004EDB49 +De-Activate DECCiphers.pas line 5457 BreakPoint at:004EDB49 +Adding coverage:DECCiphers.pas (DECCiphers) 5458 +Clearing BreakPoint at 004EDB55 +De-Activate DECCiphers.pas line 5458 BreakPoint at:004EDB55 +Adding coverage:DECCiphers.pas (DECCiphers) 5460 +Clearing BreakPoint at 004EDB62 +De-Activate DECCiphers.pas line 5460 BreakPoint at:004EDB62 +Adding coverage:DECCiphers.pas (DECCiphers) 5461 +Clearing BreakPoint at 004EDB69 +De-Activate DECCiphers.pas line 5461 BreakPoint at:004EDB69 +Adding coverage:DECCiphers.pas (DECCiphers) 5463 +Clearing BreakPoint at 004EDB81 +De-Activate DECCiphers.pas line 5463 BreakPoint at:004EDB81 +Adding coverage:DECCiphers.pas (DECCiphers) 5464 +Clearing BreakPoint at 004EDB8D +De-Activate DECCiphers.pas line 5464 BreakPoint at:004EDB8D +Adding coverage:DECCiphers.pas (DECCiphers) 5465 +Clearing BreakPoint at 004EDB94 +De-Activate DECCiphers.pas line 5465 BreakPoint at:004EDB94 +Adding coverage:DECCiphers.pas (DECCiphers) 5461 +Clearing BreakPoint at 004EDB97 +De-Activate DECCiphers.pas line 5461 BreakPoint at:004EDB97 +Adding coverage:DECCiphers.pas (DECCiphers) 5466 +Clearing BreakPoint at 004EDB9C +De-Activate DECCiphers.pas line 5466 BreakPoint at:004EDB9C +Adding coverage:DECCiphers.pas (DECCiphers) 5469 +Clearing BreakPoint at 004EDBB5 +De-Activate DECCiphers.pas line 5469 BreakPoint at:004EDBB5 +Adding coverage:DECCiphers.pas (DECCiphers) 5470 +Clearing BreakPoint at 004EDBC4 +De-Activate DECCiphers.pas line 5470 BreakPoint at:004EDBC4 +Adding coverage:DECCiphers.pas (DECCiphers) 5471 +Clearing BreakPoint at 004EDBC9 +De-Activate DECCiphers.pas line 5471 BreakPoint at:004EDBC9 +Adding coverage:DECCiphers.pas (DECCiphers) 5472 +Clearing BreakPoint at 004EDBCE +De-Activate DECCiphers.pas line 5472 BreakPoint at:004EDBCE +Adding coverage:DECCiphers.pas (DECCiphers) 5473 +Clearing BreakPoint at 004EDBD3 +De-Activate DECCiphers.pas line 5473 BreakPoint at:004EDBD3 +Adding coverage:DECCiphers.pas (DECCiphers) 5474 +Clearing BreakPoint at 004EDBD8 +De-Activate DECCiphers.pas line 5474 BreakPoint at:004EDBD8 +Adding coverage:DECCiphers.pas (DECCiphers) 5476 +Clearing BreakPoint at 004EDBE7 +De-Activate DECCiphers.pas line 5476 BreakPoint at:004EDBE7 +Adding coverage:DECCiphers.pas (DECCiphers) 5477 +Clearing BreakPoint at 004EDBF9 +De-Activate DECCiphers.pas line 5477 BreakPoint at:004EDBF9 +Adding coverage:DECCiphers.pas (DECCiphers) 5478 +Clearing BreakPoint at 004EDC0A +De-Activate DECCiphers.pas line 5478 BreakPoint at:004EDC0A +Adding coverage:DECCiphers.pas (DECCiphers) 5479 +Clearing BreakPoint at 004EDC16 +De-Activate DECCiphers.pas line 5479 BreakPoint at:004EDC16 +Adding coverage:DECCiphers.pas (DECCiphers) 5480 +Clearing BreakPoint at 004EDC1F +De-Activate DECCiphers.pas line 5480 BreakPoint at:004EDC1F +Adding coverage:DECCiphers.pas (DECCiphers) 5481 +Clearing BreakPoint at 004EDC2F +De-Activate DECCiphers.pas line 5481 BreakPoint at:004EDC2F +Adding coverage:DECCiphers.pas (DECCiphers) 5482 +Clearing BreakPoint at 004EDC49 +De-Activate DECCiphers.pas line 5482 BreakPoint at:004EDC49 +Adding coverage:DECCiphers.pas (DECCiphers) 5483 +Clearing BreakPoint at 004EDC56 +De-Activate DECCiphers.pas line 5483 BreakPoint at:004EDC56 +Adding coverage:DECCiphers.pas (DECCiphers) 5484 +Clearing BreakPoint at 004EDC6B +De-Activate DECCiphers.pas line 5484 BreakPoint at:004EDC6B +Adding coverage:DECCiphers.pas (DECCiphers) 5485 +Clearing BreakPoint at 004EDC76 +De-Activate DECCiphers.pas line 5485 BreakPoint at:004EDC76 +Adding coverage:DECCiphers.pas (DECCiphers) 5474 +Clearing BreakPoint at 004EDC79 +De-Activate DECCiphers.pas line 5474 BreakPoint at:004EDC79 +Adding coverage:DECCiphers.pas (DECCiphers) 5486 +Clearing BreakPoint at 004EDC83 +De-Activate DECCiphers.pas line 5486 BreakPoint at:004EDC83 +Adding coverage:DECCiphers.pas (DECCiphers) 5489 +Clearing BreakPoint at 004EDC93 +De-Activate DECCiphers.pas line 5489 BreakPoint at:004EDC93 +Adding coverage:DECCiphers.pas (DECCiphers) 5496 +Clearing BreakPoint at 004EDC98 +De-Activate DECCiphers.pas line 5496 BreakPoint at:004EDC98 +Adding coverage:DECCiphers.pas (DECCiphers) 5497 +Clearing BreakPoint at 004EDCA7 +De-Activate DECCiphers.pas line 5497 BreakPoint at:004EDCA7 +Adding coverage:DECCiphers.pas (DECCiphers) 5499 +Clearing BreakPoint at 004EDCCE +De-Activate DECCiphers.pas line 5499 BreakPoint at:004EDCCE +Adding coverage:DECCiphers.pas (DECCiphers) 5500 +Clearing BreakPoint at 004EDCD7 +De-Activate DECCiphers.pas line 5500 BreakPoint at:004EDCD7 +Adding coverage:DECCiphers.pas (DECCiphers) 5501 +Clearing BreakPoint at 004EDCE4 +De-Activate DECCiphers.pas line 5501 BreakPoint at:004EDCE4 +Adding coverage:DECCiphers.pas (DECCiphers) 5502 +Clearing BreakPoint at 004EDCF3 +De-Activate DECCiphers.pas line 5502 BreakPoint at:004EDCF3 +Adding coverage:DECCiphers.pas (DECCiphers) 5504 +Clearing BreakPoint at 004EDD07 +De-Activate DECCiphers.pas line 5504 BreakPoint at:004EDD07 +Adding coverage:DECCiphers.pas (DECCiphers) 5505 +Clearing BreakPoint at 004EDD32 +De-Activate DECCiphers.pas line 5505 BreakPoint at:004EDD32 +Adding coverage:DECCiphers.pas (DECCiphers) 5506 +Clearing BreakPoint at 004EDD5E +De-Activate DECCiphers.pas line 5506 BreakPoint at:004EDD5E +Adding coverage:DECCiphers.pas (DECCiphers) 5502 +Clearing BreakPoint at 004EDD61 +De-Activate DECCiphers.pas line 5502 BreakPoint at:004EDD61 +Adding coverage:DECCiphers.pas (DECCiphers) 5507 +Clearing BreakPoint at 004EDD66 +De-Activate DECCiphers.pas line 5507 BreakPoint at:004EDD66 +Adding coverage:DECCiphers.pas (DECCiphers) 5508 +Clearing BreakPoint at 004EDD6E +De-Activate DECCiphers.pas line 5508 BreakPoint at:004EDD6E +Adding coverage:DECCiphers.pas (DECCiphers) 5509 +Clearing BreakPoint at 004EDD77 +De-Activate DECCiphers.pas line 5509 BreakPoint at:004EDD77 +Adding coverage:DECCiphers.pas (DECCiphers) 5516 +Clearing BreakPoint at 004EDE2C +De-Activate DECCiphers.pas line 5516 BreakPoint at:004EDE2C +Adding coverage:DECCiphers.pas (DECCiphers) 5517 +Clearing BreakPoint at 004EDE3B +De-Activate DECCiphers.pas line 5517 BreakPoint at:004EDE3B +Adding coverage:DECCiphers.pas (DECCiphers) 5519 +Clearing BreakPoint at 004EDE62 +De-Activate DECCiphers.pas line 5519 BreakPoint at:004EDE62 +Adding coverage:DECCiphers.pas (DECCiphers) 5520 +Clearing BreakPoint at 004EDE6B +De-Activate DECCiphers.pas line 5520 BreakPoint at:004EDE6B +Adding coverage:DECCiphers.pas (DECCiphers) 5521 +Clearing BreakPoint at 004EDE73 +De-Activate DECCiphers.pas line 5521 BreakPoint at:004EDE73 +Adding coverage:DECCiphers.pas (DECCiphers) 5522 +Clearing BreakPoint at 004EDE7C +De-Activate DECCiphers.pas line 5522 BreakPoint at:004EDE7C +Adding coverage:DECCiphers.pas (DECCiphers) 5524 +Clearing BreakPoint at 004EDE8A +De-Activate DECCiphers.pas line 5524 BreakPoint at:004EDE8A +Adding coverage:DECCiphers.pas (DECCiphers) 5525 +Clearing BreakPoint at 004EDEB6 +De-Activate DECCiphers.pas line 5525 BreakPoint at:004EDEB6 +Adding coverage:DECCiphers.pas (DECCiphers) 5526 +Clearing BreakPoint at 004EDEE1 +De-Activate DECCiphers.pas line 5526 BreakPoint at:004EDEE1 +Adding coverage:DECCiphers.pas (DECCiphers) 5522 +Clearing BreakPoint at 004EDEE4 +De-Activate DECCiphers.pas line 5522 BreakPoint at:004EDEE4 +Adding coverage:DECCiphers.pas (DECCiphers) 5527 +Clearing BreakPoint at 004EDEEA +De-Activate DECCiphers.pas line 5527 BreakPoint at:004EDEEA +Adding coverage:DECCiphers.pas (DECCiphers) 5528 +Clearing BreakPoint at 004EDEF7 +De-Activate DECCiphers.pas line 5528 BreakPoint at:004EDEF7 +Adding coverage:DECCiphers.pas (DECCiphers) 5529 +Clearing BreakPoint at 004EDF06 +De-Activate DECCiphers.pas line 5529 BreakPoint at:004EDF06 +Adding coverage:DECCiphers.pas (DECCiphers) 5429 +Clearing BreakPoint at 004EDA88 +De-Activate DECCiphers.pas line 5429 BreakPoint at:004EDA88 +Adding coverage:DECCiphers.pas (DECCiphers) 5430 +Clearing BreakPoint at 004EDA94 +De-Activate DECCiphers.pas line 5430 BreakPoint at:004EDA94 +Adding coverage:DECCiphers.pas (DECCiphers) 5443 +Clearing BreakPoint at 004EDAF1 +De-Activate DECCiphers.pas line 5443 BreakPoint at:004EDAF1 +Adding coverage:DECCiphers.pas (DECCiphers) 5432 +Clearing BreakPoint at 004EDA9F +De-Activate DECCiphers.pas line 5432 BreakPoint at:004EDA9F +Adding coverage:DECCiphers.pas (DECCiphers) 5435 +Clearing BreakPoint at 004EDAB5 +De-Activate DECCiphers.pas line 5435 BreakPoint at:004EDAB5 +Adding coverage:DECCiphers.pas (DECCiphers) 5436 +Clearing BreakPoint at 004EDABB +De-Activate DECCiphers.pas line 5436 BreakPoint at:004EDABB +Adding coverage:DECCiphers.pas (DECCiphers) 5438 +Clearing BreakPoint at 004EDAC2 +De-Activate DECCiphers.pas line 5438 BreakPoint at:004EDAC2 +Adding coverage:DECCiphers.pas (DECCiphers) 5441 +Clearing BreakPoint at 004EDAE8 +De-Activate DECCiphers.pas line 5441 BreakPoint at:004EDAE8 +Adding coverage:DECCiphers.pas (DECCiphers) 5439 +Clearing BreakPoint at 004EDAD6 +De-Activate DECCiphers.pas line 5439 BreakPoint at:004EDAD6 +Adding coverage:DECCiphers.pas (DECCiphers) 5534 +Clearing BreakPoint at 004EDFB8 +De-Activate DECCiphers.pas line 5534 BreakPoint at:004EDFB8 +Adding coverage:DECCiphers.pas (DECCiphers) 5535 +Clearing BreakPoint at 004EDFC4 +De-Activate DECCiphers.pas line 5535 BreakPoint at:004EDFC4 +Adding coverage:DECCiphers.pas (DECCiphers) 5536 +Clearing BreakPoint at 004EDFCD +De-Activate DECCiphers.pas line 5536 BreakPoint at:004EDFCD +Adding coverage:DECCiphers.pas (DECCiphers) 5537 +Clearing BreakPoint at 004EDFD7 +De-Activate DECCiphers.pas line 5537 BreakPoint at:004EDFD7 +Adding coverage:DECCiphers.pas (DECCiphers) 5538 +Clearing BreakPoint at 004EDFE1 +De-Activate DECCiphers.pas line 5538 BreakPoint at:004EDFE1 +Adding coverage:DECCiphers.pas (DECCiphers) 5539 +Clearing BreakPoint at 004EDFEB +De-Activate DECCiphers.pas line 5539 BreakPoint at:004EDFEB +Adding coverage:DECCiphers.pas (DECCiphers) 5540 +Clearing BreakPoint at 004EDFF2 +De-Activate DECCiphers.pas line 5540 BreakPoint at:004EDFF2 +Adding coverage:DECCiphers.pas (DECCiphers) 5541 +Clearing BreakPoint at 004EDFFB +De-Activate DECCiphers.pas line 5541 BreakPoint at:004EDFFB +Adding coverage:DECCiphers.pas (DECCiphers) 5542 +Clearing BreakPoint at 004EE004 +De-Activate DECCiphers.pas line 5542 BreakPoint at:004EE004 +Adding coverage:DECCiphers.pas (DECCiphers) 5543 +Clearing BreakPoint at 004EE010 +De-Activate DECCiphers.pas line 5543 BreakPoint at:004EE010 +Adding coverage:DECCiphers.pas (DECCiphers) 5667 +Clearing BreakPoint at 004EE41C +De-Activate DECCiphers.pas line 5667 BreakPoint at:004EE41C +Adding coverage:DECCiphers.pas (DECCiphers) 5668 +Clearing BreakPoint at 004EE42B +De-Activate DECCiphers.pas line 5668 BreakPoint at:004EE42B +Adding coverage:DECCiphers.pas (DECCiphers) 5669 +Clearing BreakPoint at 004EE43D +De-Activate DECCiphers.pas line 5669 BreakPoint at:004EE43D +Adding coverage:DECCiphers.pas (DECCiphers) 5672 +Clearing BreakPoint at 004EE480 +De-Activate DECCiphers.pas line 5672 BreakPoint at:004EE480 +Adding coverage:DECCiphers.pas (DECCiphers) 5676 +Clearing BreakPoint at 004EE496 +De-Activate DECCiphers.pas line 5676 BreakPoint at:004EE496 +Adding coverage:DECCiphers.pas (DECCiphers) 5578 +Clearing BreakPoint at 004EE0E4 +De-Activate DECCiphers.pas line 5578 BreakPoint at:004EE0E4 +Adding coverage:DECCiphers.pas (DECCiphers) 5579 +Clearing BreakPoint at 004EE0EA +De-Activate DECCiphers.pas line 5579 BreakPoint at:004EE0EA +Adding coverage:DECCiphers.pas (DECCiphers) 5580 +Clearing BreakPoint at 004EE0F6 +De-Activate DECCiphers.pas line 5580 BreakPoint at:004EE0F6 +Adding coverage:DECCiphers.pas (DECCiphers) 5581 +Clearing BreakPoint at 004EE101 +De-Activate DECCiphers.pas line 5581 BreakPoint at:004EE101 +Adding coverage:DECCiphers.pas (DECCiphers) 5582 +Clearing BreakPoint at 004EE108 +De-Activate DECCiphers.pas line 5582 BreakPoint at:004EE108 +Adding coverage:DECCiphers.pas (DECCiphers) 5584 +Clearing BreakPoint at 004EE10D +De-Activate DECCiphers.pas line 5584 BreakPoint at:004EE10D +Adding coverage:DECCiphers.pas (DECCiphers) 5585 +Clearing BreakPoint at 004EE11C +De-Activate DECCiphers.pas line 5585 BreakPoint at:004EE11C +Adding coverage:DECCiphers.pas (DECCiphers) 5586 +Clearing BreakPoint at 004EE12D +De-Activate DECCiphers.pas line 5586 BreakPoint at:004EE12D +Adding coverage:DECCiphers.pas (DECCiphers) 5587 +Clearing BreakPoint at 004EE141 +De-Activate DECCiphers.pas line 5587 BreakPoint at:004EE141 +Adding coverage:DECCiphers.pas (DECCiphers) 5582 +Clearing BreakPoint at 004EE144 +De-Activate DECCiphers.pas line 5582 BreakPoint at:004EE144 +Adding coverage:DECCiphers.pas (DECCiphers) 5588 +Clearing BreakPoint at 004EE14D +De-Activate DECCiphers.pas line 5588 BreakPoint at:004EE14D +Adding coverage:DECCiphers.pas (DECCiphers) 5677 +Clearing BreakPoint at 004EE49D +De-Activate DECCiphers.pas line 5677 BreakPoint at:004EE49D +Adding coverage:DECCiphers.pas (DECCiphers) 5597 +Clearing BreakPoint at 004EE154 +De-Activate DECCiphers.pas line 5597 BreakPoint at:004EE154 +Adding coverage:DECCiphers.pas (DECCiphers) 5598 +Clearing BreakPoint at 004EE15A +De-Activate DECCiphers.pas line 5598 BreakPoint at:004EE15A +Adding coverage:DECCiphers.pas (DECCiphers) 5599 +Clearing BreakPoint at 004EE16B +De-Activate DECCiphers.pas line 5599 BreakPoint at:004EE16B +Adding coverage:DECCiphers.pas (DECCiphers) 5600 +Clearing BreakPoint at 004EE177 +De-Activate DECCiphers.pas line 5600 BreakPoint at:004EE177 +Adding coverage:DECCiphers.pas (DECCiphers) 5601 +Clearing BreakPoint at 004EE182 +De-Activate DECCiphers.pas line 5601 BreakPoint at:004EE182 +Adding coverage:DECCiphers.pas (DECCiphers) 5603 +Clearing BreakPoint at 004EE191 +De-Activate DECCiphers.pas line 5603 BreakPoint at:004EE191 +Adding coverage:DECCiphers.pas (DECCiphers) 5604 +Clearing BreakPoint at 004EE19A +De-Activate DECCiphers.pas line 5604 BreakPoint at:004EE19A +Adding coverage:DECCiphers.pas (DECCiphers) 5605 +Clearing BreakPoint at 004EE1A0 +De-Activate DECCiphers.pas line 5605 BreakPoint at:004EE1A0 +Adding coverage:DECCiphers.pas (DECCiphers) 5606 +Clearing BreakPoint at 004EE1A7 +De-Activate DECCiphers.pas line 5606 BreakPoint at:004EE1A7 +Adding coverage:DECCiphers.pas (DECCiphers) 5608 +Clearing BreakPoint at 004EE1B8 +De-Activate DECCiphers.pas line 5608 BreakPoint at:004EE1B8 +Adding coverage:DECCiphers.pas (DECCiphers) 5618 +Clearing BreakPoint at 004EE20D +De-Activate DECCiphers.pas line 5618 BreakPoint at:004EE20D +Adding coverage:DECCiphers.pas (DECCiphers) 5620 +Clearing BreakPoint at 004EE216 +De-Activate DECCiphers.pas line 5620 BreakPoint at:004EE216 +Adding coverage:DECCiphers.pas (DECCiphers) 5621 +Clearing BreakPoint at 004EE222 +De-Activate DECCiphers.pas line 5621 BreakPoint at:004EE222 +Adding coverage:DECCiphers.pas (DECCiphers) 5623 +Clearing BreakPoint at 004EE22F +De-Activate DECCiphers.pas line 5623 BreakPoint at:004EE22F +Adding coverage:DECCiphers.pas (DECCiphers) 5627 +Clearing BreakPoint at 004EE255 +De-Activate DECCiphers.pas line 5627 BreakPoint at:004EE255 +Adding coverage:DECCiphers.pas (DECCiphers) 5629 +Clearing BreakPoint at 004EE25A +De-Activate DECCiphers.pas line 5629 BreakPoint at:004EE25A +Adding coverage:DECCiphers.pas (DECCiphers) 5630 +Clearing BreakPoint at 004EE264 +De-Activate DECCiphers.pas line 5630 BreakPoint at:004EE264 +Adding coverage:DECCiphers.pas (DECCiphers) 5631 +Clearing BreakPoint at 004EE26E +De-Activate DECCiphers.pas line 5631 BreakPoint at:004EE26E +Adding coverage:DECCiphers.pas (DECCiphers) 5627 +Clearing BreakPoint at 004EE271 +De-Activate DECCiphers.pas line 5627 BreakPoint at:004EE271 +Adding coverage:DECCiphers.pas (DECCiphers) 5634 +Clearing BreakPoint at 004EE277 +De-Activate DECCiphers.pas line 5634 BreakPoint at:004EE277 +Adding coverage:DECCiphers.pas (DECCiphers) 5635 +Clearing BreakPoint at 004EE287 +De-Activate DECCiphers.pas line 5635 BreakPoint at:004EE287 +Adding coverage:DECCiphers.pas (DECCiphers) 5637 +Clearing BreakPoint at 004EE28B +De-Activate DECCiphers.pas line 5637 BreakPoint at:004EE28B +Adding coverage:DECCiphers.pas (DECCiphers) 5638 +Clearing BreakPoint at 004EE290 +De-Activate DECCiphers.pas line 5638 BreakPoint at:004EE290 +Adding coverage:DECCiphers.pas (DECCiphers) 5637 +Clearing BreakPoint at 004EE2B1 +De-Activate DECCiphers.pas line 5637 BreakPoint at:004EE2B1 +Adding coverage:DECCiphers.pas (DECCiphers) 5640 +Clearing BreakPoint at 004EE2B7 +De-Activate DECCiphers.pas line 5640 BreakPoint at:004EE2B7 +Adding coverage:DECCiphers.pas (DECCiphers) 5642 +Clearing BreakPoint at 004EE2D2 +De-Activate DECCiphers.pas line 5642 BreakPoint at:004EE2D2 +Adding coverage:DECCiphers.pas (DECCiphers) 5644 +Clearing BreakPoint at 004EE2D7 +De-Activate DECCiphers.pas line 5644 BreakPoint at:004EE2D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5645 +Clearing BreakPoint at 004EE2F5 +De-Activate DECCiphers.pas line 5645 BreakPoint at:004EE2F5 +Adding coverage:DECCiphers.pas (DECCiphers) 5646 +Clearing BreakPoint at 004EE313 +De-Activate DECCiphers.pas line 5646 BreakPoint at:004EE313 +Adding coverage:DECCiphers.pas (DECCiphers) 5642 +Clearing BreakPoint at 004EE316 +De-Activate DECCiphers.pas line 5642 BreakPoint at:004EE316 +Adding coverage:DECCiphers.pas (DECCiphers) 5647 +Clearing BreakPoint at 004EE31C +De-Activate DECCiphers.pas line 5647 BreakPoint at:004EE31C +Adding coverage:DECCiphers.pas (DECCiphers) 5649 +Clearing BreakPoint at 004EE321 +De-Activate DECCiphers.pas line 5649 BreakPoint at:004EE321 +Adding coverage:DECCiphers.pas (DECCiphers) 5650 +Clearing BreakPoint at 004EE327 +De-Activate DECCiphers.pas line 5650 BreakPoint at:004EE327 +Adding coverage:DECCiphers.pas (DECCiphers) 5653 +Clearing BreakPoint at 004EE381 +De-Activate DECCiphers.pas line 5653 BreakPoint at:004EE381 +Adding coverage:DECCiphers.pas (DECCiphers) 5654 +Clearing BreakPoint at 004EE384 +De-Activate DECCiphers.pas line 5654 BreakPoint at:004EE384 +Adding coverage:DECCiphers.pas (DECCiphers) 5647 +Clearing BreakPoint at 004EE387 +De-Activate DECCiphers.pas line 5647 BreakPoint at:004EE387 +Adding coverage:DECCiphers.pas (DECCiphers) 5655 +Clearing BreakPoint at 004EE38D +De-Activate DECCiphers.pas line 5655 BreakPoint at:004EE38D +Adding coverage:DECCiphers.pas (DECCiphers) 5657 +Clearing BreakPoint at 004EE392 +De-Activate DECCiphers.pas line 5657 BreakPoint at:004EE392 +Adding coverage:DECCiphers.pas (DECCiphers) 5658 +Clearing BreakPoint at 004EE398 +De-Activate DECCiphers.pas line 5658 BreakPoint at:004EE398 +Adding coverage:DECCiphers.pas (DECCiphers) 5661 +Clearing BreakPoint at 004EE3F1 +De-Activate DECCiphers.pas line 5661 BreakPoint at:004EE3F1 +Adding coverage:DECCiphers.pas (DECCiphers) 5662 +Clearing BreakPoint at 004EE3F4 +De-Activate DECCiphers.pas line 5662 BreakPoint at:004EE3F4 +Adding coverage:DECCiphers.pas (DECCiphers) 5655 +Clearing BreakPoint at 004EE3F7 +De-Activate DECCiphers.pas line 5655 BreakPoint at:004EE3F7 +Adding coverage:DECCiphers.pas (DECCiphers) 5663 +Clearing BreakPoint at 004EE3FD +De-Activate DECCiphers.pas line 5663 BreakPoint at:004EE3FD +Adding coverage:DECCiphers.pas (DECCiphers) 5640 +Clearing BreakPoint at 004EE400 +De-Activate DECCiphers.pas line 5640 BreakPoint at:004EE400 +Adding coverage:DECCiphers.pas (DECCiphers) 5664 +Clearing BreakPoint at 004EE409 +De-Activate DECCiphers.pas line 5664 BreakPoint at:004EE409 +Adding coverage:DECCiphers.pas (DECCiphers) 5665 +Clearing BreakPoint at 004EE416 +De-Activate DECCiphers.pas line 5665 BreakPoint at:004EE416 +Adding coverage:DECCiphers.pas (DECCiphers) 5680 +Clearing BreakPoint at 004EE4A4 +De-Activate DECCiphers.pas line 5680 BreakPoint at:004EE4A4 +Adding coverage:DECCiphers.pas (DECCiphers) 5687 +Clearing BreakPoint at 004EE4A8 +De-Activate DECCiphers.pas line 5687 BreakPoint at:004EE4A8 +Adding coverage:DECCiphers.pas (DECCiphers) 5688 +Clearing BreakPoint at 004EE4B7 +De-Activate DECCiphers.pas line 5688 BreakPoint at:004EE4B7 +Adding coverage:DECCiphers.pas (DECCiphers) 5690 +Clearing BreakPoint at 004EE4DE +De-Activate DECCiphers.pas line 5690 BreakPoint at:004EE4DE +Adding coverage:DECCiphers.pas (DECCiphers) 5691 +Clearing BreakPoint at 004EE4E7 +De-Activate DECCiphers.pas line 5691 BreakPoint at:004EE4E7 +Adding coverage:DECCiphers.pas (DECCiphers) 5692 +Clearing BreakPoint at 004EE4F2 +De-Activate DECCiphers.pas line 5692 BreakPoint at:004EE4F2 +Adding coverage:DECCiphers.pas (DECCiphers) 5694 +Clearing BreakPoint at 004EE4FD +De-Activate DECCiphers.pas line 5694 BreakPoint at:004EE4FD +Adding coverage:DECCiphers.pas (DECCiphers) 5695 +Clearing BreakPoint at 004EE505 +De-Activate DECCiphers.pas line 5695 BreakPoint at:004EE505 +Adding coverage:DECCiphers.pas (DECCiphers) 5696 +Clearing BreakPoint at 004EE50E +De-Activate DECCiphers.pas line 5696 BreakPoint at:004EE50E +Adding coverage:DECCiphers.pas (DECCiphers) 5697 +Clearing BreakPoint at 004EE517 +De-Activate DECCiphers.pas line 5697 BreakPoint at:004EE517 +Adding coverage:DECCiphers.pas (DECCiphers) 5698 +Clearing BreakPoint at 004EE520 +De-Activate DECCiphers.pas line 5698 BreakPoint at:004EE520 +Adding coverage:DECCiphers.pas (DECCiphers) 5699 +Clearing BreakPoint at 004EE529 +De-Activate DECCiphers.pas line 5699 BreakPoint at:004EE529 +Adding coverage:DECCiphers.pas (DECCiphers) 5700 +Clearing BreakPoint at 004EE532 +De-Activate DECCiphers.pas line 5700 BreakPoint at:004EE532 +Adding coverage:DECCiphers.pas (DECCiphers) 5701 +Clearing BreakPoint at 004EE53B +De-Activate DECCiphers.pas line 5701 BreakPoint at:004EE53B +Adding coverage:DECCiphers.pas (DECCiphers) 5703 +Clearing BreakPoint at 004EE544 +De-Activate DECCiphers.pas line 5703 BreakPoint at:004EE544 +Adding coverage:DECCiphers.pas (DECCiphers) 5705 +Clearing BreakPoint at 004EE55E +De-Activate DECCiphers.pas line 5705 BreakPoint at:004EE55E +Adding coverage:DECCiphers.pas (DECCiphers) 5706 +Clearing BreakPoint at 004EE566 +De-Activate DECCiphers.pas line 5706 BreakPoint at:004EE566 +Adding coverage:DECCiphers.pas (DECCiphers) 5707 +Clearing BreakPoint at 004EE56F +De-Activate DECCiphers.pas line 5707 BreakPoint at:004EE56F +Adding coverage:DECCiphers.pas (DECCiphers) 5708 +Clearing BreakPoint at 004EE578 +De-Activate DECCiphers.pas line 5708 BreakPoint at:004EE578 +Adding coverage:DECCiphers.pas (DECCiphers) 5709 +Clearing BreakPoint at 004EE581 +De-Activate DECCiphers.pas line 5709 BreakPoint at:004EE581 +Adding coverage:DECCiphers.pas (DECCiphers) 5710 +Clearing BreakPoint at 004EE58A +De-Activate DECCiphers.pas line 5710 BreakPoint at:004EE58A +Adding coverage:DECCiphers.pas (DECCiphers) 5711 +Clearing BreakPoint at 004EE593 +De-Activate DECCiphers.pas line 5711 BreakPoint at:004EE593 +Adding coverage:DECCiphers.pas (DECCiphers) 5712 +Clearing BreakPoint at 004EE59C +De-Activate DECCiphers.pas line 5712 BreakPoint at:004EE59C +Adding coverage:DECCiphers.pas (DECCiphers) 5714 +Clearing BreakPoint at 004EE5A5 +De-Activate DECCiphers.pas line 5714 BreakPoint at:004EE5A5 +Adding coverage:DECCiphers.pas (DECCiphers) 5715 +Clearing BreakPoint at 004EE5B9 +De-Activate DECCiphers.pas line 5715 BreakPoint at:004EE5B9 +Adding coverage:DECCiphers.pas (DECCiphers) 5716 +Clearing BreakPoint at 004EE5CD +De-Activate DECCiphers.pas line 5716 BreakPoint at:004EE5CD +Adding coverage:DECCiphers.pas (DECCiphers) 5717 +Clearing BreakPoint at 004EE5E1 +De-Activate DECCiphers.pas line 5717 BreakPoint at:004EE5E1 +Adding coverage:DECCiphers.pas (DECCiphers) 5718 +Clearing BreakPoint at 004EE5F5 +De-Activate DECCiphers.pas line 5718 BreakPoint at:004EE5F5 +Adding coverage:DECCiphers.pas (DECCiphers) 5719 +Clearing BreakPoint at 004EE609 +De-Activate DECCiphers.pas line 5719 BreakPoint at:004EE609 +Adding coverage:DECCiphers.pas (DECCiphers) 5720 +Clearing BreakPoint at 004EE61D +De-Activate DECCiphers.pas line 5720 BreakPoint at:004EE61D +Adding coverage:DECCiphers.pas (DECCiphers) 5721 +Clearing BreakPoint at 004EE631 +De-Activate DECCiphers.pas line 5721 BreakPoint at:004EE631 +Adding coverage:DECCiphers.pas (DECCiphers) 5722 +Clearing BreakPoint at 004EE645 +De-Activate DECCiphers.pas line 5722 BreakPoint at:004EE645 +Adding coverage:DECCiphers.pas (DECCiphers) 5723 +Clearing BreakPoint at 004EE651 +De-Activate DECCiphers.pas line 5723 BreakPoint at:004EE651 +Adding coverage:DECCiphers.pas (DECCiphers) 5724 +Clearing BreakPoint at 004EE65D +De-Activate DECCiphers.pas line 5724 BreakPoint at:004EE65D +Adding coverage:DECCiphers.pas (DECCiphers) 5725 +Clearing BreakPoint at 004EE669 +De-Activate DECCiphers.pas line 5725 BreakPoint at:004EE669 +Adding coverage:DECCiphers.pas (DECCiphers) 5726 +Clearing BreakPoint at 004EE675 +De-Activate DECCiphers.pas line 5726 BreakPoint at:004EE675 +Adding coverage:DECCiphers.pas (DECCiphers) 5727 +Clearing BreakPoint at 004EE681 +De-Activate DECCiphers.pas line 5727 BreakPoint at:004EE681 +Adding coverage:DECCiphers.pas (DECCiphers) 5728 +Clearing BreakPoint at 004EE68D +De-Activate DECCiphers.pas line 5728 BreakPoint at:004EE68D +Adding coverage:DECCiphers.pas (DECCiphers) 5729 +Clearing BreakPoint at 004EE699 +De-Activate DECCiphers.pas line 5729 BreakPoint at:004EE699 +Adding coverage:DECCiphers.pas (DECCiphers) 5730 +Clearing BreakPoint at 004EE6A5 +De-Activate DECCiphers.pas line 5730 BreakPoint at:004EE6A5 +Adding coverage:DECCiphers.pas (DECCiphers) 5731 +Clearing BreakPoint at 004EE6B1 +De-Activate DECCiphers.pas line 5731 BreakPoint at:004EE6B1 +Adding coverage:DECCiphers.pas (DECCiphers) 5732 +Clearing BreakPoint at 004EE6BD +De-Activate DECCiphers.pas line 5732 BreakPoint at:004EE6BD +Adding coverage:DECCiphers.pas (DECCiphers) 5733 +Clearing BreakPoint at 004EE6C9 +De-Activate DECCiphers.pas line 5733 BreakPoint at:004EE6C9 +Adding coverage:DECCiphers.pas (DECCiphers) 5734 +Clearing BreakPoint at 004EE6D5 +De-Activate DECCiphers.pas line 5734 BreakPoint at:004EE6D5 +Adding coverage:DECCiphers.pas (DECCiphers) 5735 +Clearing BreakPoint at 004EE6ED +De-Activate DECCiphers.pas line 5735 BreakPoint at:004EE6ED +Adding coverage:DECCiphers.pas (DECCiphers) 5736 +Clearing BreakPoint at 004EE705 +De-Activate DECCiphers.pas line 5736 BreakPoint at:004EE705 +Adding coverage:DECCiphers.pas (DECCiphers) 5737 +Clearing BreakPoint at 004EE70E +De-Activate DECCiphers.pas line 5737 BreakPoint at:004EE70E +Adding coverage:DECCiphers.pas (DECCiphers) 5703 +Clearing BreakPoint at 004EE711 +De-Activate DECCiphers.pas line 5703 BreakPoint at:004EE711 +Adding coverage:DECCiphers.pas (DECCiphers) 5739 +Clearing BreakPoint at 004EE71A +De-Activate DECCiphers.pas line 5739 BreakPoint at:004EE71A +Adding coverage:DECCiphers.pas (DECCiphers) 5740 +Clearing BreakPoint at 004EE727 +De-Activate DECCiphers.pas line 5740 BreakPoint at:004EE727 +Adding coverage:DECCiphers.pas (DECCiphers) 5741 +Clearing BreakPoint at 004EE736 +De-Activate DECCiphers.pas line 5741 BreakPoint at:004EE736 +Adding coverage:DECCiphers.pas (DECCiphers) 5742 +Clearing BreakPoint at 004EE745 +De-Activate DECCiphers.pas line 5742 BreakPoint at:004EE745 +Adding coverage:DECCiphers.pas (DECCiphers) 5743 +Clearing BreakPoint at 004EE754 +De-Activate DECCiphers.pas line 5743 BreakPoint at:004EE754 +Adding coverage:DECCiphers.pas (DECCiphers) 5744 +Clearing BreakPoint at 004EE763 +De-Activate DECCiphers.pas line 5744 BreakPoint at:004EE763 +Adding coverage:DECCiphers.pas (DECCiphers) 5745 +Clearing BreakPoint at 004EE772 +De-Activate DECCiphers.pas line 5745 BreakPoint at:004EE772 +Adding coverage:DECCiphers.pas (DECCiphers) 5746 +Clearing BreakPoint at 004EE781 +De-Activate DECCiphers.pas line 5746 BreakPoint at:004EE781 +Adding coverage:DECCiphers.pas (DECCiphers) 5747 +Clearing BreakPoint at 004EE790 +De-Activate DECCiphers.pas line 5747 BreakPoint at:004EE790 +Adding coverage:DECCiphers.pas (DECCiphers) 5754 +Clearing BreakPoint at 004EE844 +De-Activate DECCiphers.pas line 5754 BreakPoint at:004EE844 +Adding coverage:DECCiphers.pas (DECCiphers) 5755 +Clearing BreakPoint at 004EE853 +De-Activate DECCiphers.pas line 5755 BreakPoint at:004EE853 +Adding coverage:DECCiphers.pas (DECCiphers) 5757 +Clearing BreakPoint at 004EE87A +De-Activate DECCiphers.pas line 5757 BreakPoint at:004EE87A +Adding coverage:DECCiphers.pas (DECCiphers) 5758 +Clearing BreakPoint at 004EE883 +De-Activate DECCiphers.pas line 5758 BreakPoint at:004EE883 +Adding coverage:DECCiphers.pas (DECCiphers) 5759 +Clearing BreakPoint at 004EE88E +De-Activate DECCiphers.pas line 5759 BreakPoint at:004EE88E +Adding coverage:DECCiphers.pas (DECCiphers) 5761 +Clearing BreakPoint at 004EE8A8 +De-Activate DECCiphers.pas line 5761 BreakPoint at:004EE8A8 +Adding coverage:DECCiphers.pas (DECCiphers) 5762 +Clearing BreakPoint at 004EE8B5 +De-Activate DECCiphers.pas line 5762 BreakPoint at:004EE8B5 +Adding coverage:DECCiphers.pas (DECCiphers) 5763 +Clearing BreakPoint at 004EE8C4 +De-Activate DECCiphers.pas line 5763 BreakPoint at:004EE8C4 +Adding coverage:DECCiphers.pas (DECCiphers) 5764 +Clearing BreakPoint at 004EE8D3 +De-Activate DECCiphers.pas line 5764 BreakPoint at:004EE8D3 +Adding coverage:DECCiphers.pas (DECCiphers) 5765 +Clearing BreakPoint at 004EE8E2 +De-Activate DECCiphers.pas line 5765 BreakPoint at:004EE8E2 +Adding coverage:DECCiphers.pas (DECCiphers) 5766 +Clearing BreakPoint at 004EE8F1 +De-Activate DECCiphers.pas line 5766 BreakPoint at:004EE8F1 +Adding coverage:DECCiphers.pas (DECCiphers) 5767 +Clearing BreakPoint at 004EE900 +De-Activate DECCiphers.pas line 5767 BreakPoint at:004EE900 +Adding coverage:DECCiphers.pas (DECCiphers) 5768 +Clearing BreakPoint at 004EE90F +De-Activate DECCiphers.pas line 5768 BreakPoint at:004EE90F +Adding coverage:DECCiphers.pas (DECCiphers) 5770 +Clearing BreakPoint at 004EE91E +De-Activate DECCiphers.pas line 5770 BreakPoint at:004EE91E +Adding coverage:DECCiphers.pas (DECCiphers) 5772 +Clearing BreakPoint at 004EE938 +De-Activate DECCiphers.pas line 5772 BreakPoint at:004EE938 +Adding coverage:DECCiphers.pas (DECCiphers) 5773 +Clearing BreakPoint at 004EE93C +De-Activate DECCiphers.pas line 5773 BreakPoint at:004EE93C +Adding coverage:DECCiphers.pas (DECCiphers) 5774 +Clearing BreakPoint at 004EE954 +De-Activate DECCiphers.pas line 5774 BreakPoint at:004EE954 +Adding coverage:DECCiphers.pas (DECCiphers) 5775 +Clearing BreakPoint at 004EE96C +De-Activate DECCiphers.pas line 5775 BreakPoint at:004EE96C +Adding coverage:DECCiphers.pas (DECCiphers) 5776 +Clearing BreakPoint at 004EE978 +De-Activate DECCiphers.pas line 5776 BreakPoint at:004EE978 +Adding coverage:DECCiphers.pas (DECCiphers) 5777 +Clearing BreakPoint at 004EE984 +De-Activate DECCiphers.pas line 5777 BreakPoint at:004EE984 +Adding coverage:DECCiphers.pas (DECCiphers) 5778 +Clearing BreakPoint at 004EE990 +De-Activate DECCiphers.pas line 5778 BreakPoint at:004EE990 +Adding coverage:DECCiphers.pas (DECCiphers) 5779 +Clearing BreakPoint at 004EE99C +De-Activate DECCiphers.pas line 5779 BreakPoint at:004EE99C +Adding coverage:DECCiphers.pas (DECCiphers) 5780 +Clearing BreakPoint at 004EE9A8 +De-Activate DECCiphers.pas line 5780 BreakPoint at:004EE9A8 +Adding coverage:DECCiphers.pas (DECCiphers) 5781 +Clearing BreakPoint at 004EE9B4 +De-Activate DECCiphers.pas line 5781 BreakPoint at:004EE9B4 +Adding coverage:DECCiphers.pas (DECCiphers) 5782 +Clearing BreakPoint at 004EE9C0 +De-Activate DECCiphers.pas line 5782 BreakPoint at:004EE9C0 +Adding coverage:DECCiphers.pas (DECCiphers) 5783 +Clearing BreakPoint at 004EE9CC +De-Activate DECCiphers.pas line 5783 BreakPoint at:004EE9CC +Adding coverage:DECCiphers.pas (DECCiphers) 5784 +Clearing BreakPoint at 004EE9D8 +De-Activate DECCiphers.pas line 5784 BreakPoint at:004EE9D8 +Adding coverage:DECCiphers.pas (DECCiphers) 5785 +Clearing BreakPoint at 004EE9E4 +De-Activate DECCiphers.pas line 5785 BreakPoint at:004EE9E4 +Adding coverage:DECCiphers.pas (DECCiphers) 5786 +Clearing BreakPoint at 004EE9F0 +De-Activate DECCiphers.pas line 5786 BreakPoint at:004EE9F0 +Adding coverage:DECCiphers.pas (DECCiphers) 5787 +Clearing BreakPoint at 004EE9FC +De-Activate DECCiphers.pas line 5787 BreakPoint at:004EE9FC +Adding coverage:DECCiphers.pas (DECCiphers) 5788 +Clearing BreakPoint at 004EEA05 +De-Activate DECCiphers.pas line 5788 BreakPoint at:004EEA05 +Adding coverage:DECCiphers.pas (DECCiphers) 5789 +Clearing BreakPoint at 004EEA0E +De-Activate DECCiphers.pas line 5789 BreakPoint at:004EEA0E +Adding coverage:DECCiphers.pas (DECCiphers) 5790 +Clearing BreakPoint at 004EEA17 +De-Activate DECCiphers.pas line 5790 BreakPoint at:004EEA17 +Adding coverage:DECCiphers.pas (DECCiphers) 5791 +Clearing BreakPoint at 004EEA20 +De-Activate DECCiphers.pas line 5791 BreakPoint at:004EEA20 +Adding coverage:DECCiphers.pas (DECCiphers) 5792 +Clearing BreakPoint at 004EEA29 +De-Activate DECCiphers.pas line 5792 BreakPoint at:004EEA29 +Adding coverage:DECCiphers.pas (DECCiphers) 5793 +Clearing BreakPoint at 004EEA32 +De-Activate DECCiphers.pas line 5793 BreakPoint at:004EEA32 +Adding coverage:DECCiphers.pas (DECCiphers) 5794 +Clearing BreakPoint at 004EEA3B +De-Activate DECCiphers.pas line 5794 BreakPoint at:004EEA3B +Adding coverage:DECCiphers.pas (DECCiphers) 5795 +Clearing BreakPoint at 004EEA44 +De-Activate DECCiphers.pas line 5795 BreakPoint at:004EEA44 +Adding coverage:DECCiphers.pas (DECCiphers) 5796 +Clearing BreakPoint at 004EEA58 +De-Activate DECCiphers.pas line 5796 BreakPoint at:004EEA58 +Adding coverage:DECCiphers.pas (DECCiphers) 5797 +Clearing BreakPoint at 004EEA6C +De-Activate DECCiphers.pas line 5797 BreakPoint at:004EEA6C +Adding coverage:DECCiphers.pas (DECCiphers) 5798 +Clearing BreakPoint at 004EEA80 +De-Activate DECCiphers.pas line 5798 BreakPoint at:004EEA80 +Adding coverage:DECCiphers.pas (DECCiphers) 5799 +Clearing BreakPoint at 004EEA94 +De-Activate DECCiphers.pas line 5799 BreakPoint at:004EEA94 +Adding coverage:DECCiphers.pas (DECCiphers) 5800 +Clearing BreakPoint at 004EEAA8 +De-Activate DECCiphers.pas line 5800 BreakPoint at:004EEAA8 +Adding coverage:DECCiphers.pas (DECCiphers) 5801 +Clearing BreakPoint at 004EEABC +De-Activate DECCiphers.pas line 5801 BreakPoint at:004EEABC +Adding coverage:DECCiphers.pas (DECCiphers) 5802 +Clearing BreakPoint at 004EEAD0 +De-Activate DECCiphers.pas line 5802 BreakPoint at:004EEAD0 +Adding coverage:DECCiphers.pas (DECCiphers) 5803 +Clearing BreakPoint at 004EEAE3 +De-Activate DECCiphers.pas line 5803 BreakPoint at:004EEAE3 +Adding coverage:DECCiphers.pas (DECCiphers) 5770 +Clearing BreakPoint at 004EEAE6 +De-Activate DECCiphers.pas line 5770 BreakPoint at:004EEAE6 +Adding coverage:DECCiphers.pas (DECCiphers) 5805 +Clearing BreakPoint at 004EEAEF +De-Activate DECCiphers.pas line 5805 BreakPoint at:004EEAEF +Adding coverage:DECCiphers.pas (DECCiphers) 5806 +Clearing BreakPoint at 004EEAF7 +De-Activate DECCiphers.pas line 5806 BreakPoint at:004EEAF7 +Adding coverage:DECCiphers.pas (DECCiphers) 5807 +Clearing BreakPoint at 004EEB00 +De-Activate DECCiphers.pas line 5807 BreakPoint at:004EEB00 +Adding coverage:DECCiphers.pas (DECCiphers) 5808 +Clearing BreakPoint at 004EEB09 +De-Activate DECCiphers.pas line 5808 BreakPoint at:004EEB09 +Adding coverage:DECCiphers.pas (DECCiphers) 5809 +Clearing BreakPoint at 004EEB12 +De-Activate DECCiphers.pas line 5809 BreakPoint at:004EEB12 +Adding coverage:DECCiphers.pas (DECCiphers) 5810 +Clearing BreakPoint at 004EEB1B +De-Activate DECCiphers.pas line 5810 BreakPoint at:004EEB1B +Adding coverage:DECCiphers.pas (DECCiphers) 5811 +Clearing BreakPoint at 004EEB24 +De-Activate DECCiphers.pas line 5811 BreakPoint at:004EEB24 +Adding coverage:DECCiphers.pas (DECCiphers) 5812 +Clearing BreakPoint at 004EEB2D +De-Activate DECCiphers.pas line 5812 BreakPoint at:004EEB2D +Adding coverage:DECCiphers.pas (DECCiphers) 5813 +Clearing BreakPoint at 004EEB36 +De-Activate DECCiphers.pas line 5813 BreakPoint at:004EEB36 +Adding coverage:DECCiphers.pas (DECCiphers) 5546 +Clearing BreakPoint at 004EE018 +De-Activate DECCiphers.pas line 5546 BreakPoint at:004EE018 +Adding coverage:DECCiphers.pas (DECCiphers) 5547 +Clearing BreakPoint at 004EE024 +De-Activate DECCiphers.pas line 5547 BreakPoint at:004EE024 +Adding coverage:DECCiphers.pas (DECCiphers) 5549 +Clearing BreakPoint at 004EE03A +De-Activate DECCiphers.pas line 5549 BreakPoint at:004EE03A +Adding coverage:DECCiphers.pas (DECCiphers) 5557 +Clearing BreakPoint at 004EE093 +De-Activate DECCiphers.pas line 5557 BreakPoint at:004EE093 +Adding coverage:DECCiphers.pas (DECCiphers) 5558 +Clearing BreakPoint at 004EE09C +De-Activate DECCiphers.pas line 5558 BreakPoint at:004EE09C +Adding coverage:DECCiphers.pas (DECCiphers) 5561 +Clearing BreakPoint at 004EE0A0 +De-Activate DECCiphers.pas line 5561 BreakPoint at:004EE0A0 +Adding coverage:DECCiphers.pas (DECCiphers) 5562 +Clearing BreakPoint at 004EE0AC +De-Activate DECCiphers.pas line 5562 BreakPoint at:004EE0AC +Adding coverage:DECCiphers.pas (DECCiphers) 5564 +Clearing BreakPoint at 004EE0B7 +De-Activate DECCiphers.pas line 5564 BreakPoint at:004EE0B7 +Adding coverage:DECCiphers.pas (DECCiphers) 5566 +Clearing BreakPoint at 004EE0CD +De-Activate DECCiphers.pas line 5566 BreakPoint at:004EE0CD +Adding coverage:DECCiphers.pas (DECCiphers) 5567 +Clearing BreakPoint at 004EE0D6 +De-Activate DECCiphers.pas line 5567 BreakPoint at:004EE0D6 +Adding coverage:DECCiphers.pas (DECCiphers) 5550 +Clearing BreakPoint at 004EE046 +De-Activate DECCiphers.pas line 5550 BreakPoint at:004EE046 +Adding coverage:DECCiphers.pas (DECCiphers) 5551 +Clearing BreakPoint at 004EE071 +De-Activate DECCiphers.pas line 5551 BreakPoint at:004EE071 +Adding coverage:DECCiphers.pas (DECCiphers) 5569 +Clearing BreakPoint at 004EE0E0 +De-Activate DECCiphers.pas line 5569 BreakPoint at:004EE0E0 +Adding coverage:DECCiphers.pas (DECCiphers) 5552 +Clearing BreakPoint at 004EE07A +De-Activate DECCiphers.pas line 5552 BreakPoint at:004EE07A +Adding coverage:DECCiphers.pas (DECCiphers) 5553 +Clearing BreakPoint at 004EE083 +De-Activate DECCiphers.pas line 5553 BreakPoint at:004EE083 +Adding coverage:DECCiphers.pas (DECCiphers) 5928 +Clearing BreakPoint at 004EF0A4 +De-Activate DECCiphers.pas line 5928 BreakPoint at:004EF0A4 +Adding coverage:DECCiphers.pas (DECCiphers) 5929 +Clearing BreakPoint at 004EF0B0 +De-Activate DECCiphers.pas line 5929 BreakPoint at:004EF0B0 +Adding coverage:DECCiphers.pas (DECCiphers) 5930 +Clearing BreakPoint at 004EF0B9 +De-Activate DECCiphers.pas line 5930 BreakPoint at:004EF0B9 +Adding coverage:DECCiphers.pas (DECCiphers) 5931 +Clearing BreakPoint at 004EF0C3 +De-Activate DECCiphers.pas line 5931 BreakPoint at:004EF0C3 +Adding coverage:DECCiphers.pas (DECCiphers) 5932 +Clearing BreakPoint at 004EF0CD +De-Activate DECCiphers.pas line 5932 BreakPoint at:004EF0CD +Adding coverage:DECCiphers.pas (DECCiphers) 5933 +Clearing BreakPoint at 004EF0D7 +De-Activate DECCiphers.pas line 5933 BreakPoint at:004EF0D7 +Adding coverage:DECCiphers.pas (DECCiphers) 5934 +Clearing BreakPoint at 004EF0DE +De-Activate DECCiphers.pas line 5934 BreakPoint at:004EF0DE +Adding coverage:DECCiphers.pas (DECCiphers) 5935 +Clearing BreakPoint at 004EF0E7 +De-Activate DECCiphers.pas line 5935 BreakPoint at:004EF0E7 +Adding coverage:DECCiphers.pas (DECCiphers) 5936 +Clearing BreakPoint at 004EF0F0 +De-Activate DECCiphers.pas line 5936 BreakPoint at:004EF0F0 +Adding coverage:DECCiphers.pas (DECCiphers) 5937 +Clearing BreakPoint at 004EF0FC +De-Activate DECCiphers.pas line 5937 BreakPoint at:004EF0FC +Adding coverage:DECCiphers.pas (DECCiphers) 6059 +Clearing BreakPoint at 004EF55C +De-Activate DECCiphers.pas line 6059 BreakPoint at:004EF55C +Adding coverage:DECCiphers.pas (DECCiphers) 6060 +Clearing BreakPoint at 004EF577 +De-Activate DECCiphers.pas line 6060 BreakPoint at:004EF577 +Adding coverage:DECCiphers.pas (DECCiphers) 6061 +Clearing BreakPoint at 004EF589 +De-Activate DECCiphers.pas line 6061 BreakPoint at:004EF589 +Adding coverage:DECCiphers.pas (DECCiphers) 6062 +Clearing BreakPoint at 004EF5A0 +De-Activate DECCiphers.pas line 6062 BreakPoint at:004EF5A0 +Adding coverage:DECCiphers.pas (DECCiphers) 6038 +Clearing BreakPoint at 004EF4CC +De-Activate DECCiphers.pas line 6038 BreakPoint at:004EF4CC +Adding coverage:DECCiphers.pas (DECCiphers) 6039 +Clearing BreakPoint at 004EF4D0 +De-Activate DECCiphers.pas line 6039 BreakPoint at:004EF4D0 +Adding coverage:DECCiphers.pas (DECCiphers) 6040 +Clearing BreakPoint at 004EF4DA +De-Activate DECCiphers.pas line 6040 BreakPoint at:004EF4DA +Adding coverage:DECCiphers.pas (DECCiphers) 6042 +Clearing BreakPoint at 004EF4E0 +De-Activate DECCiphers.pas line 6042 BreakPoint at:004EF4E0 +Adding coverage:DECCiphers.pas (DECCiphers) 6043 +Clearing BreakPoint at 004EF4F5 +De-Activate DECCiphers.pas line 6043 BreakPoint at:004EF4F5 +Adding coverage:DECCiphers.pas (DECCiphers) 6045 +Clearing BreakPoint at 004EF501 +De-Activate DECCiphers.pas line 6045 BreakPoint at:004EF501 +Adding coverage:DECCiphers.pas (DECCiphers) 6046 +Clearing BreakPoint at 004EF512 +De-Activate DECCiphers.pas line 6046 BreakPoint at:004EF512 +Adding coverage:DECCiphers.pas (DECCiphers) 6040 +Clearing BreakPoint at 004EF516 +De-Activate DECCiphers.pas line 6040 BreakPoint at:004EF516 +Adding coverage:DECCiphers.pas (DECCiphers) 6044 +Clearing BreakPoint at 004EF4FB +De-Activate DECCiphers.pas line 6044 BreakPoint at:004EF4FB +Adding coverage:DECCiphers.pas (DECCiphers) 6047 +Clearing BreakPoint at 004EF51E +De-Activate DECCiphers.pas line 6047 BreakPoint at:004EF51E +Adding coverage:DECCiphers.pas (DECCiphers) 6048 +Clearing BreakPoint at 004EF528 +De-Activate DECCiphers.pas line 6048 BreakPoint at:004EF528 +Adding coverage:DECCiphers.pas (DECCiphers) 6049 +Clearing BreakPoint at 004EF52E +De-Activate DECCiphers.pas line 6049 BreakPoint at:004EF52E +Adding coverage:DECCiphers.pas (DECCiphers) 6048 +Clearing BreakPoint at 004EF54E +De-Activate DECCiphers.pas line 6048 BreakPoint at:004EF54E +Adding coverage:DECCiphers.pas (DECCiphers) 6050 +Clearing BreakPoint at 004EF556 +De-Activate DECCiphers.pas line 6050 BreakPoint at:004EF556 +Adding coverage:DECCiphers.pas (DECCiphers) 6063 +Clearing BreakPoint at 004EF5A7 +De-Activate DECCiphers.pas line 6063 BreakPoint at:004EF5A7 +Adding coverage:DECCiphers.pas (DECCiphers) 6064 +Clearing BreakPoint at 004EF5B6 +De-Activate DECCiphers.pas line 6064 BreakPoint at:004EF5B6 +Adding coverage:DECCiphers.pas (DECCiphers) 6065 +Clearing BreakPoint at 004EF5C5 +De-Activate DECCiphers.pas line 6065 BreakPoint at:004EF5C5 +Adding coverage:DECCiphers.pas (DECCiphers) 6066 +Clearing BreakPoint at 004EF5DA +De-Activate DECCiphers.pas line 6066 BreakPoint at:004EF5DA +Adding coverage:DECCiphers.pas (DECCiphers) 5878 +Clearing BreakPoint at 004EEF18 +De-Activate DECCiphers.pas line 5878 BreakPoint at:004EEF18 +Adding coverage:DECCiphers.pas (DECCiphers) 5879 +Clearing BreakPoint at 004EEF54 +De-Activate DECCiphers.pas line 5879 BreakPoint at:004EEF54 +Adding coverage:DECCiphers.pas (DECCiphers) 5880 +Clearing BreakPoint at 004EEF6A +De-Activate DECCiphers.pas line 5880 BreakPoint at:004EEF6A +Adding coverage:DECCiphers.pas (DECCiphers) 5881 +Clearing BreakPoint at 004EEF80 +De-Activate DECCiphers.pas line 5881 BreakPoint at:004EEF80 +Adding coverage:DECCiphers.pas (DECCiphers) 5883 +Clearing BreakPoint at 004EEF96 +De-Activate DECCiphers.pas line 5883 BreakPoint at:004EEF96 +Adding coverage:DECCiphers.pas (DECCiphers) 5885 +Clearing BreakPoint at 004EEF9D +De-Activate DECCiphers.pas line 5885 BreakPoint at:004EEF9D +Adding coverage:DECCiphers.pas (DECCiphers) 5870 +Clearing BreakPoint at 004EEED0 +De-Activate DECCiphers.pas line 5870 BreakPoint at:004EEED0 +Adding coverage:DECCiphers.pas (DECCiphers) 5872 +Clearing BreakPoint at 004EEEDC +De-Activate DECCiphers.pas line 5872 BreakPoint at:004EEEDC +Adding coverage:DECCiphers.pas (DECCiphers) 5873 +Clearing BreakPoint at 004EEF10 +De-Activate DECCiphers.pas line 5873 BreakPoint at:004EEF10 +Adding coverage:DECCiphers.pas (DECCiphers) 5886 +Clearing BreakPoint at 004EEFCD +De-Activate DECCiphers.pas line 5886 BreakPoint at:004EEFCD +Adding coverage:DECCiphers.pas (DECCiphers) 5887 +Clearing BreakPoint at 004EEFD4 +De-Activate DECCiphers.pas line 5887 BreakPoint at:004EEFD4 +Adding coverage:DECCiphers.pas (DECCiphers) 5886 +Clearing BreakPoint at 004EF01D +De-Activate DECCiphers.pas line 5886 BreakPoint at:004EF01D +Adding coverage:DECCiphers.pas (DECCiphers) 5888 +Clearing BreakPoint at 004EF026 +De-Activate DECCiphers.pas line 5888 BreakPoint at:004EF026 +Adding coverage:DECCiphers.pas (DECCiphers) 5883 +Clearing BreakPoint at 004EF02C +De-Activate DECCiphers.pas line 5883 BreakPoint at:004EF02C +Adding coverage:DECCiphers.pas (DECCiphers) 5890 +Clearing BreakPoint at 004EF039 +De-Activate DECCiphers.pas line 5890 BreakPoint at:004EF039 +Adding coverage:DECCiphers.pas (DECCiphers) 5891 +Clearing BreakPoint at 004EF046 +De-Activate DECCiphers.pas line 5891 BreakPoint at:004EF046 +Adding coverage:DECCiphers.pas (DECCiphers) 5892 +Clearing BreakPoint at 004EF04E +De-Activate DECCiphers.pas line 5892 BreakPoint at:004EF04E +Adding coverage:DECCiphers.pas (DECCiphers) 5894 +Clearing BreakPoint at 004EF055 +De-Activate DECCiphers.pas line 5894 BreakPoint at:004EF055 +Adding coverage:DECCiphers.pas (DECCiphers) 5895 +Clearing BreakPoint at 004EF06E +De-Activate DECCiphers.pas line 5895 BreakPoint at:004EF06E +Adding coverage:DECCiphers.pas (DECCiphers) 5896 +Clearing BreakPoint at 004EF08D +De-Activate DECCiphers.pas line 5896 BreakPoint at:004EF08D +Adding coverage:DECCiphers.pas (DECCiphers) 5892 +Clearing BreakPoint at 004EF093 +De-Activate DECCiphers.pas line 5892 BreakPoint at:004EF093 +Adding coverage:DECCiphers.pas (DECCiphers) 5897 +Clearing BreakPoint at 004EF09C +De-Activate DECCiphers.pas line 5897 BreakPoint at:004EF09C +Adding coverage:DECCiphers.pas (DECCiphers) 6067 +Clearing BreakPoint at 004EF617 +De-Activate DECCiphers.pas line 6067 BreakPoint at:004EF617 +Adding coverage:DECCiphers.pas (DECCiphers) 6068 +Clearing BreakPoint at 004EF61E +De-Activate DECCiphers.pas line 6068 BreakPoint at:004EF61E +Adding coverage:DECCiphers.pas (DECCiphers) 6070 +Clearing BreakPoint at 004EF625 +De-Activate DECCiphers.pas line 6070 BreakPoint at:004EF625 +Adding coverage:DECCiphers.pas (DECCiphers) 6071 +Clearing BreakPoint at 004EF649 +De-Activate DECCiphers.pas line 6071 BreakPoint at:004EF649 +Adding coverage:DECCiphers.pas (DECCiphers) 6072 +Clearing BreakPoint at 004EF65A +De-Activate DECCiphers.pas line 6072 BreakPoint at:004EF65A +Adding coverage:DECCiphers.pas (DECCiphers) 6073 +Clearing BreakPoint at 004EF660 +De-Activate DECCiphers.pas line 6073 BreakPoint at:004EF660 +Adding coverage:DECCiphers.pas (DECCiphers) 6075 +Clearing BreakPoint at 004EF667 +De-Activate DECCiphers.pas line 6075 BreakPoint at:004EF667 +Adding coverage:DECCiphers.pas (DECCiphers) 6076 +Clearing BreakPoint at 004EF69C +De-Activate DECCiphers.pas line 6076 BreakPoint at:004EF69C +Adding coverage:DECCiphers.pas (DECCiphers) 6077 +Clearing BreakPoint at 004EF6D4 +De-Activate DECCiphers.pas line 6077 BreakPoint at:004EF6D4 +Adding coverage:DECCiphers.pas (DECCiphers) 6078 +Clearing BreakPoint at 004EF6DA +De-Activate DECCiphers.pas line 6078 BreakPoint at:004EF6DA +Adding coverage:DECCiphers.pas (DECCiphers) 6073 +Clearing BreakPoint at 004EF6E0 +De-Activate DECCiphers.pas line 6073 BreakPoint at:004EF6E0 +Adding coverage:DECCiphers.pas (DECCiphers) 6079 +Clearing BreakPoint at 004EF6ED +De-Activate DECCiphers.pas line 6079 BreakPoint at:004EF6ED +Adding coverage:DECCiphers.pas (DECCiphers) 6068 +Clearing BreakPoint at 004EF6F3 +De-Activate DECCiphers.pas line 6068 BreakPoint at:004EF6F3 +Adding coverage:DECCiphers.pas (DECCiphers) 6080 +Clearing BreakPoint at 004EF700 +De-Activate DECCiphers.pas line 6080 BreakPoint at:004EF700 +Adding coverage:DECCiphers.pas (DECCiphers) 6081 +Clearing BreakPoint at 004EF708 +De-Activate DECCiphers.pas line 6081 BreakPoint at:004EF708 +Adding coverage:DECCiphers.pas (DECCiphers) 6082 +Clearing BreakPoint at 004EF710 +De-Activate DECCiphers.pas line 6082 BreakPoint at:004EF710 +Adding coverage:DECCiphers.pas (DECCiphers) 5826 +Clearing BreakPoint at 004EEBE8 +De-Activate DECCiphers.pas line 5826 BreakPoint at:004EEBE8 +Adding coverage:DECCiphers.pas (DECCiphers) 5827 +Clearing BreakPoint at 004EEBFD +De-Activate DECCiphers.pas line 5827 BreakPoint at:004EEBFD +Adding coverage:DECCiphers.pas (DECCiphers) 5829 +Clearing BreakPoint at 004EEC02 +De-Activate DECCiphers.pas line 5829 BreakPoint at:004EEC02 +Adding coverage:DECCiphers.pas (DECCiphers) 5830 +Clearing BreakPoint at 004EEC0A +De-Activate DECCiphers.pas line 5830 BreakPoint at:004EEC0A +Adding coverage:DECCiphers.pas (DECCiphers) 5831 +Clearing BreakPoint at 004EEC13 +De-Activate DECCiphers.pas line 5831 BreakPoint at:004EEC13 +Adding coverage:DECCiphers.pas (DECCiphers) 5832 +Clearing BreakPoint at 004EEC17 +De-Activate DECCiphers.pas line 5832 BreakPoint at:004EEC17 +Adding coverage:DECCiphers.pas (DECCiphers) 5841 +Clearing BreakPoint at 004EECDB +De-Activate DECCiphers.pas line 5841 BreakPoint at:004EECDB +Adding coverage:DECCiphers.pas (DECCiphers) 5849 +Clearing BreakPoint at 004EEDB7 +De-Activate DECCiphers.pas line 5849 BreakPoint at:004EEDB7 +Adding coverage:DECCiphers.pas (DECCiphers) 5850 +Clearing BreakPoint at 004EEDBD +De-Activate DECCiphers.pas line 5850 BreakPoint at:004EEDBD +Adding coverage:DECCiphers.pas (DECCiphers) 5827 +Clearing BreakPoint at 004EEDC0 +De-Activate DECCiphers.pas line 5827 BreakPoint at:004EEDC0 +Adding coverage:DECCiphers.pas (DECCiphers) 5851 +Clearing BreakPoint at 004EEDCA +De-Activate DECCiphers.pas line 5851 BreakPoint at:004EEDCA +Adding coverage:DECCiphers.pas (DECCiphers) 5852 +Clearing BreakPoint at 004EEDD2 +De-Activate DECCiphers.pas line 5852 BreakPoint at:004EEDD2 +Adding coverage:DECCiphers.pas (DECCiphers) 5853 +Clearing BreakPoint at 004EEDDB +De-Activate DECCiphers.pas line 5853 BreakPoint at:004EEDDB +Adding coverage:DECCiphers.pas (DECCiphers) 5854 +Clearing BreakPoint at 004EEDDF +De-Activate DECCiphers.pas line 5854 BreakPoint at:004EEDDF +Adding coverage:DECCiphers.pas (DECCiphers) 5858 +Clearing BreakPoint at 004EEE45 +De-Activate DECCiphers.pas line 5858 BreakPoint at:004EEE45 +Adding coverage:DECCiphers.pas (DECCiphers) 5862 +Clearing BreakPoint at 004EEEAB +De-Activate DECCiphers.pas line 5862 BreakPoint at:004EEEAB +Adding coverage:DECCiphers.pas (DECCiphers) 5863 +Clearing BreakPoint at 004EEEB8 +De-Activate DECCiphers.pas line 5863 BreakPoint at:004EEEB8 +Adding coverage:DECCiphers.pas (DECCiphers) 5864 +Clearing BreakPoint at 004EEEC7 +De-Activate DECCiphers.pas line 5864 BreakPoint at:004EEEC7 +Adding coverage:DECCiphers.pas (DECCiphers) 6083 +Clearing BreakPoint at 004EF746 +De-Activate DECCiphers.pas line 6083 BreakPoint at:004EF746 +Adding coverage:DECCiphers.pas (DECCiphers) 6084 +Clearing BreakPoint at 004EF75A +De-Activate DECCiphers.pas line 6084 BreakPoint at:004EF75A +Adding coverage:DECCiphers.pas (DECCiphers) 6085 +Clearing BreakPoint at 004EF76F +De-Activate DECCiphers.pas line 6085 BreakPoint at:004EF76F +Adding coverage:DECCiphers.pas (DECCiphers) 6087 +Clearing BreakPoint at 004EF776 +De-Activate DECCiphers.pas line 6087 BreakPoint at:004EF776 +Adding coverage:DECCiphers.pas (DECCiphers) 6088 +Clearing BreakPoint at 004EF7A0 +De-Activate DECCiphers.pas line 6088 BreakPoint at:004EF7A0 +Adding coverage:DECCiphers.pas (DECCiphers) 6089 +Clearing BreakPoint at 004EF7C6 +De-Activate DECCiphers.pas line 6089 BreakPoint at:004EF7C6 +Adding coverage:DECCiphers.pas (DECCiphers) 6090 +Clearing BreakPoint at 004EF7ED +De-Activate DECCiphers.pas line 6090 BreakPoint at:004EF7ED +Adding coverage:DECCiphers.pas (DECCiphers) 6085 +Clearing BreakPoint at 004EF7F3 +De-Activate DECCiphers.pas line 6085 BreakPoint at:004EF7F3 +Adding coverage:DECCiphers.pas (DECCiphers) 6091 +Clearing BreakPoint at 004EF800 +De-Activate DECCiphers.pas line 6091 BreakPoint at:004EF800 +Adding coverage:DECCiphers.pas (DECCiphers) 6092 +Clearing BreakPoint at 004EF840 +De-Activate DECCiphers.pas line 6092 BreakPoint at:004EF840 +Adding coverage:DECCiphers.pas (DECCiphers) 6093 +Clearing BreakPoint at 004EF857 +De-Activate DECCiphers.pas line 6093 BreakPoint at:004EF857 +Adding coverage:DECCiphers.pas (DECCiphers) 6094 +Clearing BreakPoint at 004EF86E +De-Activate DECCiphers.pas line 6094 BreakPoint at:004EF86E +Adding coverage:DECCiphers.pas (DECCiphers) 6095 +Clearing BreakPoint at 004EF875 +De-Activate DECCiphers.pas line 6095 BreakPoint at:004EF875 +Adding coverage:DECCiphers.pas (DECCiphers) 6094 +Clearing BreakPoint at 004EF8D3 +De-Activate DECCiphers.pas line 6094 BreakPoint at:004EF8D3 +Adding coverage:DECCiphers.pas (DECCiphers) 6096 +Clearing BreakPoint at 004EF8DC +De-Activate DECCiphers.pas line 6096 BreakPoint at:004EF8DC +Adding coverage:DECCiphers.pas (DECCiphers) 6097 +Clearing BreakPoint at 004EF8EC +De-Activate DECCiphers.pas line 6097 BreakPoint at:004EF8EC +Adding coverage:DECCiphers.pas (DECCiphers) 6098 +Clearing BreakPoint at 004EF8FC +De-Activate DECCiphers.pas line 6098 BreakPoint at:004EF8FC +Adding coverage:DECCiphers.pas (DECCiphers) 6101 +Clearing BreakPoint at 004EF90C +De-Activate DECCiphers.pas line 6101 BreakPoint at:004EF90C +Adding coverage:DECCiphers.pas (DECCiphers) 5946 +Clearing BreakPoint at 004EF104 +De-Activate DECCiphers.pas line 5946 BreakPoint at:004EF104 +Adding coverage:DECCiphers.pas (DECCiphers) 5947 +Clearing BreakPoint at 004EF113 +De-Activate DECCiphers.pas line 5947 BreakPoint at:004EF113 +Adding coverage:DECCiphers.pas (DECCiphers) 5949 +Clearing BreakPoint at 004EF13A +De-Activate DECCiphers.pas line 5949 BreakPoint at:004EF13A +Adding coverage:DECCiphers.pas (DECCiphers) 5950 +Clearing BreakPoint at 004EF143 +De-Activate DECCiphers.pas line 5950 BreakPoint at:004EF143 +Adding coverage:DECCiphers.pas (DECCiphers) 5951 +Clearing BreakPoint at 004EF14B +De-Activate DECCiphers.pas line 5951 BreakPoint at:004EF14B +Adding coverage:DECCiphers.pas (DECCiphers) 5952 +Clearing BreakPoint at 004EF154 +De-Activate DECCiphers.pas line 5952 BreakPoint at:004EF154 +Adding coverage:DECCiphers.pas (DECCiphers) 5954 +Clearing BreakPoint at 004EF159 +De-Activate DECCiphers.pas line 5954 BreakPoint at:004EF159 +Adding coverage:DECCiphers.pas (DECCiphers) 5955 +Clearing BreakPoint at 004EF167 +De-Activate DECCiphers.pas line 5955 BreakPoint at:004EF167 +Adding coverage:DECCiphers.pas (DECCiphers) 5956 +Clearing BreakPoint at 004EF176 +De-Activate DECCiphers.pas line 5956 BreakPoint at:004EF176 +Adding coverage:DECCiphers.pas (DECCiphers) 5964 +Clearing BreakPoint at 004EF23A +De-Activate DECCiphers.pas line 5964 BreakPoint at:004EF23A +Adding coverage:DECCiphers.pas (DECCiphers) 5972 +Clearing BreakPoint at 004EF316 +De-Activate DECCiphers.pas line 5972 BreakPoint at:004EF316 +Adding coverage:DECCiphers.pas (DECCiphers) 5973 +Clearing BreakPoint at 004EF31C +De-Activate DECCiphers.pas line 5973 BreakPoint at:004EF31C +Adding coverage:DECCiphers.pas (DECCiphers) 5952 +Clearing BreakPoint at 004EF31F +De-Activate DECCiphers.pas line 5952 BreakPoint at:004EF31F +Adding coverage:DECCiphers.pas (DECCiphers) 5974 +Clearing BreakPoint at 004EF329 +De-Activate DECCiphers.pas line 5974 BreakPoint at:004EF329 +Adding coverage:DECCiphers.pas (DECCiphers) 5975 +Clearing BreakPoint at 004EF332 +De-Activate DECCiphers.pas line 5975 BreakPoint at:004EF332 +Adding coverage:DECCiphers.pas (DECCiphers) 5976 +Clearing BreakPoint at 004EF33B +De-Activate DECCiphers.pas line 5976 BreakPoint at:004EF33B +Adding coverage:DECCiphers.pas (DECCiphers) 5980 +Clearing BreakPoint at 004EF39C +De-Activate DECCiphers.pas line 5980 BreakPoint at:004EF39C +Adding coverage:DECCiphers.pas (DECCiphers) 5984 +Clearing BreakPoint at 004EF3FD +De-Activate DECCiphers.pas line 5984 BreakPoint at:004EF3FD +Adding coverage:DECCiphers.pas (DECCiphers) 5985 +Clearing BreakPoint at 004EF40B +De-Activate DECCiphers.pas line 5985 BreakPoint at:004EF40B +Adding coverage:DECCiphers.pas (DECCiphers) 5993 +Clearing BreakPoint at 004EF41A +De-Activate DECCiphers.pas line 5993 BreakPoint at:004EF41A +Adding coverage:DECCiphers.pas (DECCiphers) 6110 +Clearing BreakPoint at 004EF910 +De-Activate DECCiphers.pas line 6110 BreakPoint at:004EF910 +Adding coverage:DECCiphers.pas (DECCiphers) 6111 +Clearing BreakPoint at 004EF91F +De-Activate DECCiphers.pas line 6111 BreakPoint at:004EF91F +Adding coverage:DECCiphers.pas (DECCiphers) 6113 +Clearing BreakPoint at 004EF946 +De-Activate DECCiphers.pas line 6113 BreakPoint at:004EF946 +Adding coverage:DECCiphers.pas (DECCiphers) 6114 +Clearing BreakPoint at 004EF952 +De-Activate DECCiphers.pas line 6114 BreakPoint at:004EF952 +Adding coverage:DECCiphers.pas (DECCiphers) 6115 +Clearing BreakPoint at 004EF95A +De-Activate DECCiphers.pas line 6115 BreakPoint at:004EF95A +Adding coverage:DECCiphers.pas (DECCiphers) 6116 +Clearing BreakPoint at 004EF963 +De-Activate DECCiphers.pas line 6116 BreakPoint at:004EF963 +Adding coverage:DECCiphers.pas (DECCiphers) 6118 +Clearing BreakPoint at 004EF968 +De-Activate DECCiphers.pas line 6118 BreakPoint at:004EF968 +Adding coverage:DECCiphers.pas (DECCiphers) 6119 +Clearing BreakPoint at 004EF976 +De-Activate DECCiphers.pas line 6119 BreakPoint at:004EF976 +Adding coverage:DECCiphers.pas (DECCiphers) 6120 +Clearing BreakPoint at 004EF985 +De-Activate DECCiphers.pas line 6120 BreakPoint at:004EF985 +Adding coverage:DECCiphers.pas (DECCiphers) 6128 +Clearing BreakPoint at 004EFA49 +De-Activate DECCiphers.pas line 6128 BreakPoint at:004EFA49 +Adding coverage:DECCiphers.pas (DECCiphers) 6136 +Clearing BreakPoint at 004EFB25 +De-Activate DECCiphers.pas line 6136 BreakPoint at:004EFB25 +Adding coverage:DECCiphers.pas (DECCiphers) 6137 +Clearing BreakPoint at 004EFB2B +De-Activate DECCiphers.pas line 6137 BreakPoint at:004EFB2B +Adding coverage:DECCiphers.pas (DECCiphers) 6116 +Clearing BreakPoint at 004EFB2E +De-Activate DECCiphers.pas line 6116 BreakPoint at:004EFB2E +Adding coverage:DECCiphers.pas (DECCiphers) 6138 +Clearing BreakPoint at 004EFB38 +De-Activate DECCiphers.pas line 6138 BreakPoint at:004EFB38 +Adding coverage:DECCiphers.pas (DECCiphers) 6139 +Clearing BreakPoint at 004EFB41 +De-Activate DECCiphers.pas line 6139 BreakPoint at:004EFB41 +Adding coverage:DECCiphers.pas (DECCiphers) 6140 +Clearing BreakPoint at 004EFB4A +De-Activate DECCiphers.pas line 6140 BreakPoint at:004EFB4A +Adding coverage:DECCiphers.pas (DECCiphers) 6144 +Clearing BreakPoint at 004EFBAB +De-Activate DECCiphers.pas line 6144 BreakPoint at:004EFBAB +Adding coverage:DECCiphers.pas (DECCiphers) 6148 +Clearing BreakPoint at 004EFC0C +De-Activate DECCiphers.pas line 6148 BreakPoint at:004EFC0C +Adding coverage:DECCiphers.pas (DECCiphers) 6149 +Clearing BreakPoint at 004EFC1A +De-Activate DECCiphers.pas line 6149 BreakPoint at:004EFC1A +Adding coverage:DECCiphers.pas (DECCiphers) 6150 +Clearing BreakPoint at 004EFC29 +De-Activate DECCiphers.pas line 6150 BreakPoint at:004EFC29 +Adding coverage:DECCiphers.pas (DECCiphers) 6290 +Clearing BreakPoint at 004EFD60 +De-Activate DECCiphers.pas line 6290 BreakPoint at:004EFD60 +Adding coverage:DECCiphers.pas (DECCiphers) 6291 +Clearing BreakPoint at 004EFD7B +De-Activate DECCiphers.pas line 6291 BreakPoint at:004EFD7B +Adding coverage:DECCiphers.pas (DECCiphers) 6292 +Clearing BreakPoint at 004EFD8D +De-Activate DECCiphers.pas line 6292 BreakPoint at:004EFD8D +Adding coverage:DECCiphers.pas (DECCiphers) 6293 +Clearing BreakPoint at 004EFDA4 +De-Activate DECCiphers.pas line 6293 BreakPoint at:004EFDA4 +Adding coverage:DECCiphers.pas (DECCiphers) 6268 +Clearing BreakPoint at 004EFCDC +De-Activate DECCiphers.pas line 6268 BreakPoint at:004EFCDC +Adding coverage:DECCiphers.pas (DECCiphers) 6270 +Clearing BreakPoint at 004EFCE0 +De-Activate DECCiphers.pas line 6270 BreakPoint at:004EFCE0 +Adding coverage:DECCiphers.pas (DECCiphers) 6271 +Clearing BreakPoint at 004EFCEA +De-Activate DECCiphers.pas line 6271 BreakPoint at:004EFCEA +Adding coverage:DECCiphers.pas (DECCiphers) 6273 +Clearing BreakPoint at 004EFCF0 +De-Activate DECCiphers.pas line 6273 BreakPoint at:004EFCF0 +Adding coverage:DECCiphers.pas (DECCiphers) 6274 +Clearing BreakPoint at 004EFD05 +De-Activate DECCiphers.pas line 6274 BreakPoint at:004EFD05 +Adding coverage:DECCiphers.pas (DECCiphers) 6276 +Clearing BreakPoint at 004EFD11 +De-Activate DECCiphers.pas line 6276 BreakPoint at:004EFD11 +Adding coverage:DECCiphers.pas (DECCiphers) 6277 +Clearing BreakPoint at 004EFD22 +De-Activate DECCiphers.pas line 6277 BreakPoint at:004EFD22 +Adding coverage:DECCiphers.pas (DECCiphers) 6271 +Clearing BreakPoint at 004EFD26 +De-Activate DECCiphers.pas line 6271 BreakPoint at:004EFD26 +Adding coverage:DECCiphers.pas (DECCiphers) 6275 +Clearing BreakPoint at 004EFD0B +De-Activate DECCiphers.pas line 6275 BreakPoint at:004EFD0B +Adding coverage:DECCiphers.pas (DECCiphers) 6278 +Clearing BreakPoint at 004EFD2E +De-Activate DECCiphers.pas line 6278 BreakPoint at:004EFD2E +Adding coverage:DECCiphers.pas (DECCiphers) 6279 +Clearing BreakPoint at 004EFD34 +De-Activate DECCiphers.pas line 6279 BreakPoint at:004EFD34 +Adding coverage:DECCiphers.pas (DECCiphers) 6278 +Clearing BreakPoint at 004EFD54 +De-Activate DECCiphers.pas line 6278 BreakPoint at:004EFD54 +Adding coverage:DECCiphers.pas (DECCiphers) 6280 +Clearing BreakPoint at 004EFD5C +De-Activate DECCiphers.pas line 6280 BreakPoint at:004EFD5C +Adding coverage:DECCiphers.pas (DECCiphers) 6294 +Clearing BreakPoint at 004EFDAB +De-Activate DECCiphers.pas line 6294 BreakPoint at:004EFDAB +Adding coverage:DECCiphers.pas (DECCiphers) 6295 +Clearing BreakPoint at 004EFDBA +De-Activate DECCiphers.pas line 6295 BreakPoint at:004EFDBA +Adding coverage:DECCiphers.pas (DECCiphers) 6296 +Clearing BreakPoint at 004EFDC9 +De-Activate DECCiphers.pas line 6296 BreakPoint at:004EFDC9 +Adding coverage:DECCiphers.pas (DECCiphers) 6297 +Clearing BreakPoint at 004EFDDE +De-Activate DECCiphers.pas line 6297 BreakPoint at:004EFDDE +Adding coverage:DECCiphers.pas (DECCiphers) 6298 +Clearing BreakPoint at 004EFE1B +De-Activate DECCiphers.pas line 6298 BreakPoint at:004EFE1B +Adding coverage:DECCiphers.pas (DECCiphers) 6299 +Clearing BreakPoint at 004EFE22 +De-Activate DECCiphers.pas line 6299 BreakPoint at:004EFE22 +Adding coverage:DECCiphers.pas (DECCiphers) 6301 +Clearing BreakPoint at 004EFE29 +De-Activate DECCiphers.pas line 6301 BreakPoint at:004EFE29 +Adding coverage:DECCiphers.pas (DECCiphers) 6302 +Clearing BreakPoint at 004EFE2F +De-Activate DECCiphers.pas line 6302 BreakPoint at:004EFE2F +Adding coverage:DECCiphers.pas (DECCiphers) 6303 +Clearing BreakPoint at 004EFE53 +De-Activate DECCiphers.pas line 6303 BreakPoint at:004EFE53 +Adding coverage:DECCiphers.pas (DECCiphers) 6304 +Clearing BreakPoint at 004EFE64 +De-Activate DECCiphers.pas line 6304 BreakPoint at:004EFE64 +Adding coverage:DECCiphers.pas (DECCiphers) 6306 +Clearing BreakPoint at 004EFE6B +De-Activate DECCiphers.pas line 6306 BreakPoint at:004EFE6B +Adding coverage:DECCiphers.pas (DECCiphers) 6307 +Clearing BreakPoint at 004EFE71 +De-Activate DECCiphers.pas line 6307 BreakPoint at:004EFE71 +Adding coverage:DECCiphers.pas (DECCiphers) 6308 +Clearing BreakPoint at 004EFEA6 +De-Activate DECCiphers.pas line 6308 BreakPoint at:004EFEA6 +Adding coverage:DECCiphers.pas (DECCiphers) 6309 +Clearing BreakPoint at 004EFEDE +De-Activate DECCiphers.pas line 6309 BreakPoint at:004EFEDE +Adding coverage:DECCiphers.pas (DECCiphers) 6304 +Clearing BreakPoint at 004EFEE4 +De-Activate DECCiphers.pas line 6304 BreakPoint at:004EFEE4 +Adding coverage:DECCiphers.pas (DECCiphers) 6310 +Clearing BreakPoint at 004EFEF1 +De-Activate DECCiphers.pas line 6310 BreakPoint at:004EFEF1 +Adding coverage:DECCiphers.pas (DECCiphers) 6299 +Clearing BreakPoint at 004EFEF7 +De-Activate DECCiphers.pas line 6299 BreakPoint at:004EFEF7 +Adding coverage:DECCiphers.pas (DECCiphers) 6311 +Clearing BreakPoint at 004EFF04 +De-Activate DECCiphers.pas line 6311 BreakPoint at:004EFF04 +Adding coverage:DECCiphers.pas (DECCiphers) 6312 +Clearing BreakPoint at 004EFF0C +De-Activate DECCiphers.pas line 6312 BreakPoint at:004EFF0C +Adding coverage:DECCiphers.pas (DECCiphers) 6313 +Clearing BreakPoint at 004EFF14 +De-Activate DECCiphers.pas line 6313 BreakPoint at:004EFF14 +Adding coverage:DECCiphers.pas (DECCiphers) 6314 +Clearing BreakPoint at 004EFF4A +De-Activate DECCiphers.pas line 6314 BreakPoint at:004EFF4A +Adding coverage:DECCiphers.pas (DECCiphers) 6315 +Clearing BreakPoint at 004EFF5E +De-Activate DECCiphers.pas line 6315 BreakPoint at:004EFF5E +Adding coverage:DECCiphers.pas (DECCiphers) 6316 +Clearing BreakPoint at 004EFF73 +De-Activate DECCiphers.pas line 6316 BreakPoint at:004EFF73 +Adding coverage:DECCiphers.pas (DECCiphers) 6318 +Clearing BreakPoint at 004EFF7A +De-Activate DECCiphers.pas line 6318 BreakPoint at:004EFF7A +Adding coverage:DECCiphers.pas (DECCiphers) 6319 +Clearing BreakPoint at 004EFFA4 +De-Activate DECCiphers.pas line 6319 BreakPoint at:004EFFA4 +Adding coverage:DECCiphers.pas (DECCiphers) 6320 +Clearing BreakPoint at 004EFFCA +De-Activate DECCiphers.pas line 6320 BreakPoint at:004EFFCA +Adding coverage:DECCiphers.pas (DECCiphers) 6321 +Clearing BreakPoint at 004EFFF1 +De-Activate DECCiphers.pas line 6321 BreakPoint at:004EFFF1 +Adding coverage:DECCiphers.pas (DECCiphers) 6316 +Clearing BreakPoint at 004EFFF7 +De-Activate DECCiphers.pas line 6316 BreakPoint at:004EFFF7 +Adding coverage:DECCiphers.pas (DECCiphers) 6322 +Clearing BreakPoint at 004F0004 +De-Activate DECCiphers.pas line 6322 BreakPoint at:004F0004 +Adding coverage:DECCiphers.pas (DECCiphers) 6323 +Clearing BreakPoint at 004F0044 +De-Activate DECCiphers.pas line 6323 BreakPoint at:004F0044 +Adding coverage:DECCiphers.pas (DECCiphers) 6324 +Clearing BreakPoint at 004F005B +De-Activate DECCiphers.pas line 6324 BreakPoint at:004F005B +Adding coverage:DECCiphers.pas (DECCiphers) 6325 +Clearing BreakPoint at 004F0072 +De-Activate DECCiphers.pas line 6325 BreakPoint at:004F0072 +Adding coverage:DECCiphers.pas (DECCiphers) 6326 +Clearing BreakPoint at 004F0079 +De-Activate DECCiphers.pas line 6326 BreakPoint at:004F0079 +Adding coverage:DECCiphers.pas (DECCiphers) 6325 +Clearing BreakPoint at 004F00D7 +De-Activate DECCiphers.pas line 6325 BreakPoint at:004F00D7 +Adding coverage:DECCiphers.pas (DECCiphers) 6327 +Clearing BreakPoint at 004F00E0 +De-Activate DECCiphers.pas line 6327 BreakPoint at:004F00E0 +Adding coverage:DECCiphers.pas (DECCiphers) 6328 +Clearing BreakPoint at 004F00F0 +De-Activate DECCiphers.pas line 6328 BreakPoint at:004F00F0 +Adding coverage:DECCiphers.pas (DECCiphers) 6329 +Clearing BreakPoint at 004F0100 +De-Activate DECCiphers.pas line 6329 BreakPoint at:004F0100 +Adding coverage:DECCiphers.pas (DECCiphers) 6377 +Clearing BreakPoint at 004F0110 +De-Activate DECCiphers.pas line 6377 BreakPoint at:004F0110 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4D31 +After line:DECCipherBase line 931 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00507384 +After line:TestDECCipher line 3595 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0050778C +Exact line:TestDECCipher line 3637 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCiphers.pas (DECCiphers) 6382 +Clearing BreakPoint at 004F0114 +De-Activate DECCiphers.pas line 6382 BreakPoint at:004F0114 +Adding coverage:DECCiphers.pas (DECCiphers) 6383 +Clearing BreakPoint at 004F0120 +De-Activate DECCiphers.pas line 6383 BreakPoint at:004F0120 +Adding coverage:DECCiphers.pas (DECCiphers) 6384 +Clearing BreakPoint at 004F0129 +De-Activate DECCiphers.pas line 6384 BreakPoint at:004F0129 +Adding coverage:DECCiphers.pas (DECCiphers) 6385 +Clearing BreakPoint at 004F0133 +De-Activate DECCiphers.pas line 6385 BreakPoint at:004F0133 +Adding coverage:DECCiphers.pas (DECCiphers) 6386 +Clearing BreakPoint at 004F013D +De-Activate DECCiphers.pas line 6386 BreakPoint at:004F013D +Adding coverage:DECCiphers.pas (DECCiphers) 6387 +Clearing BreakPoint at 004F0147 +De-Activate DECCiphers.pas line 6387 BreakPoint at:004F0147 +Adding coverage:DECCiphers.pas (DECCiphers) 6388 +Clearing BreakPoint at 004F014E +De-Activate DECCiphers.pas line 6388 BreakPoint at:004F014E +Adding coverage:DECCiphers.pas (DECCiphers) 6389 +Clearing BreakPoint at 004F0157 +De-Activate DECCiphers.pas line 6389 BreakPoint at:004F0157 +Adding coverage:DECCiphers.pas (DECCiphers) 6390 +Clearing BreakPoint at 004F0160 +De-Activate DECCiphers.pas line 6390 BreakPoint at:004F0160 +Adding coverage:DECCiphers.pas (DECCiphers) 6391 +Clearing BreakPoint at 004F016C +De-Activate DECCiphers.pas line 6391 BreakPoint at:004F016C +Adding coverage:DECCiphers.pas (DECCiphers) 6398 +Clearing BreakPoint at 004F0174 +De-Activate DECCiphers.pas line 6398 BreakPoint at:004F0174 +Adding coverage:DECCiphers.pas (DECCiphers) 6399 +Clearing BreakPoint at 004F0183 +De-Activate DECCiphers.pas line 6399 BreakPoint at:004F0183 +Adding coverage:DECCiphers.pas (DECCiphers) 6400 +Clearing BreakPoint at 004F0192 +De-Activate DECCiphers.pas line 6400 BreakPoint at:004F0192 +Adding coverage:DECCiphers.pas (DECCiphers) 6401 +Clearing BreakPoint at 004F01A0 +De-Activate DECCiphers.pas line 6401 BreakPoint at:004F01A0 +Adding coverage:DECCiphers.pas (DECCiphers) 6402 +Clearing BreakPoint at 004F01A9 +De-Activate DECCiphers.pas line 6402 BreakPoint at:004F01A9 +Adding coverage:DECCiphers.pas (DECCiphers) 6403 +Clearing BreakPoint at 004F01AE +De-Activate DECCiphers.pas line 6403 BreakPoint at:004F01AE +Adding coverage:DECCiphers.pas (DECCiphers) 6405 +Clearing BreakPoint at 004F01B3 +De-Activate DECCiphers.pas line 6405 BreakPoint at:004F01B3 +Adding coverage:DECCiphers.pas (DECCiphers) 6406 +Clearing BreakPoint at 004F01CC +De-Activate DECCiphers.pas line 6406 BreakPoint at:004F01CC +Adding coverage:DECCiphers.pas (DECCiphers) 6407 +Clearing BreakPoint at 004F01CF +De-Activate DECCiphers.pas line 6407 BreakPoint at:004F01CF +Adding coverage:DECCiphers.pas (DECCiphers) 6403 +Clearing BreakPoint at 004F01D2 +De-Activate DECCiphers.pas line 6403 BreakPoint at:004F01D2 +Adding coverage:DECCiphers.pas (DECCiphers) 6407 +Clearing BreakPoint at 004F01DB +De-Activate DECCiphers.pas line 6407 BreakPoint at:004F01DB +Adding coverage:DECCiphers.pas (DECCiphers) 6402 +Clearing BreakPoint at 004F01DE +De-Activate DECCiphers.pas line 6402 BreakPoint at:004F01DE +Adding coverage:DECCiphers.pas (DECCiphers) 6408 +Clearing BreakPoint at 004F01E4 +De-Activate DECCiphers.pas line 6408 BreakPoint at:004F01E4 +Adding coverage:DECCiphers.pas (DECCiphers) 6411 +Clearing BreakPoint at 004F01F1 +De-Activate DECCiphers.pas line 6411 BreakPoint at:004F01F1 +Adding coverage:DECCiphers.pas (DECCiphers) 6419 +Clearing BreakPoint at 004F01F8 +De-Activate DECCiphers.pas line 6419 BreakPoint at:004F01F8 +Adding coverage:DECCiphers.pas (DECCiphers) 6420 +Clearing BreakPoint at 004F0207 +De-Activate DECCiphers.pas line 6420 BreakPoint at:004F0207 +Adding coverage:DECCiphers.pas (DECCiphers) 6422 +Clearing BreakPoint at 004F022E +De-Activate DECCiphers.pas line 6422 BreakPoint at:004F022E +Adding coverage:DECCiphers.pas (DECCiphers) 6423 +Clearing BreakPoint at 004F0237 +De-Activate DECCiphers.pas line 6423 BreakPoint at:004F0237 +Adding coverage:DECCiphers.pas (DECCiphers) 6424 +Clearing BreakPoint at 004F0242 +De-Activate DECCiphers.pas line 6424 BreakPoint at:004F0242 +Adding coverage:DECCiphers.pas (DECCiphers) 6425 +Clearing BreakPoint at 004F0248 +De-Activate DECCiphers.pas line 6425 BreakPoint at:004F0248 +Adding coverage:DECCiphers.pas (DECCiphers) 6426 +Clearing BreakPoint at 004F0256 +De-Activate DECCiphers.pas line 6426 BreakPoint at:004F0256 +Adding coverage:DECCiphers.pas (DECCiphers) 6427 +Clearing BreakPoint at 004F0265 +De-Activate DECCiphers.pas line 6427 BreakPoint at:004F0265 +Adding coverage:DECCiphers.pas (DECCiphers) 6428 +Clearing BreakPoint at 004F0274 +De-Activate DECCiphers.pas line 6428 BreakPoint at:004F0274 +Adding coverage:DECCiphers.pas (DECCiphers) 6429 +Clearing BreakPoint at 004F0283 +De-Activate DECCiphers.pas line 6429 BreakPoint at:004F0283 +Adding coverage:DECCiphers.pas (DECCiphers) 6432 +Clearing BreakPoint at 004F0288 +De-Activate DECCiphers.pas line 6432 BreakPoint at:004F0288 +Adding coverage:DECCiphers.pas (DECCiphers) 6433 +Clearing BreakPoint at 004F028B +De-Activate DECCiphers.pas line 6433 BreakPoint at:004F028B +Adding coverage:DECCiphers.pas (DECCiphers) 6434 +Clearing BreakPoint at 004F0291 +De-Activate DECCiphers.pas line 6434 BreakPoint at:004F0291 +Adding coverage:DECCiphers.pas (DECCiphers) 6490 +Clearing BreakPoint at 004F0678 +De-Activate DECCiphers.pas line 6490 BreakPoint at:004F0678 +Adding coverage:DECCiphers.pas (DECCiphers) 6491 +Clearing BreakPoint at 004F0687 +De-Activate DECCiphers.pas line 6491 BreakPoint at:004F0687 +Adding coverage:DECCiphers.pas (DECCiphers) 6493 +Clearing BreakPoint at 004F0690 +De-Activate DECCiphers.pas line 6493 BreakPoint at:004F0690 +Adding coverage:DECCiphers.pas (DECCiphers) 6495 +Clearing BreakPoint at 004F06A2 +De-Activate DECCiphers.pas line 6495 BreakPoint at:004F06A2 +Adding coverage:DECCiphers.pas (DECCiphers) 6435 +Clearing BreakPoint at 004F02B8 +De-Activate DECCiphers.pas line 6435 BreakPoint at:004F02B8 +Adding coverage:DECCiphers.pas (DECCiphers) 6436 +Clearing BreakPoint at 004F02DA +De-Activate DECCiphers.pas line 6436 BreakPoint at:004F02DA +Adding coverage:DECCiphers.pas (DECCiphers) 6437 +Clearing BreakPoint at 004F0301 +De-Activate DECCiphers.pas line 6437 BreakPoint at:004F0301 +Adding coverage:DECCiphers.pas (DECCiphers) 6438 +Clearing BreakPoint at 004F0323 +De-Activate DECCiphers.pas line 6438 BreakPoint at:004F0323 +Adding coverage:DECCiphers.pas (DECCiphers) 6439 +Clearing BreakPoint at 004F032F +De-Activate DECCiphers.pas line 6439 BreakPoint at:004F032F +Adding coverage:DECCiphers.pas (DECCiphers) 6440 +Clearing BreakPoint at 004F0335 +De-Activate DECCiphers.pas line 6440 BreakPoint at:004F0335 +Adding coverage:DECCiphers.pas (DECCiphers) 6441 +Clearing BreakPoint at 004F033B +De-Activate DECCiphers.pas line 6441 BreakPoint at:004F033B +Adding coverage:DECCiphers.pas (DECCiphers) 6442 +Clearing BreakPoint at 004F0341 +De-Activate DECCiphers.pas line 6442 BreakPoint at:004F0341 +Adding coverage:DECCiphers.pas (DECCiphers) 6494 +Clearing BreakPoint at 004F069A +De-Activate DECCiphers.pas line 6494 BreakPoint at:004F069A +Adding coverage:DECCiphers.pas (DECCiphers) 6445 +Clearing BreakPoint at 004F034B +De-Activate DECCiphers.pas line 6445 BreakPoint at:004F034B +Adding coverage:DECCiphers.pas (DECCiphers) 6446 +Clearing BreakPoint at 004F034E +De-Activate DECCiphers.pas line 6446 BreakPoint at:004F034E +Adding coverage:DECCiphers.pas (DECCiphers) 6447 +Clearing BreakPoint at 004F0354 +De-Activate DECCiphers.pas line 6447 BreakPoint at:004F0354 +Adding coverage:DECCiphers.pas (DECCiphers) 6448 +Clearing BreakPoint at 004F035A +De-Activate DECCiphers.pas line 6448 BreakPoint at:004F035A +Adding coverage:DECCiphers.pas (DECCiphers) 6449 +Clearing BreakPoint at 004F0360 +De-Activate DECCiphers.pas line 6449 BreakPoint at:004F0360 +Adding coverage:DECCiphers.pas (DECCiphers) 6450 +Clearing BreakPoint at 004F036C +De-Activate DECCiphers.pas line 6450 BreakPoint at:004F036C +Adding coverage:DECCiphers.pas (DECCiphers) 6451 +Clearing BreakPoint at 004F0393 +De-Activate DECCiphers.pas line 6451 BreakPoint at:004F0393 +Adding coverage:DECCiphers.pas (DECCiphers) 6452 +Clearing BreakPoint at 004F03B5 +De-Activate DECCiphers.pas line 6452 BreakPoint at:004F03B5 +Adding coverage:DECCiphers.pas (DECCiphers) 6453 +Clearing BreakPoint at 004F03DC +De-Activate DECCiphers.pas line 6453 BreakPoint at:004F03DC +Adding coverage:DECCiphers.pas (DECCiphers) 6454 +Clearing BreakPoint at 004F03FE +De-Activate DECCiphers.pas line 6454 BreakPoint at:004F03FE +Adding coverage:DECCiphers.pas (DECCiphers) 6455 +Clearing BreakPoint at 004F0404 +De-Activate DECCiphers.pas line 6455 BreakPoint at:004F0404 +Adding coverage:DECCiphers.pas (DECCiphers) 6458 +Clearing BreakPoint at 004F040E +De-Activate DECCiphers.pas line 6458 BreakPoint at:004F040E +Adding coverage:DECCiphers.pas (DECCiphers) 6459 +Clearing BreakPoint at 004F0411 +De-Activate DECCiphers.pas line 6459 BreakPoint at:004F0411 +Adding coverage:DECCiphers.pas (DECCiphers) 6460 +Clearing BreakPoint at 004F0417 +De-Activate DECCiphers.pas line 6460 BreakPoint at:004F0417 +Adding coverage:DECCiphers.pas (DECCiphers) 6461 +Clearing BreakPoint at 004F043E +De-Activate DECCiphers.pas line 6461 BreakPoint at:004F043E +Adding coverage:DECCiphers.pas (DECCiphers) 6462 +Clearing BreakPoint at 004F0460 +De-Activate DECCiphers.pas line 6462 BreakPoint at:004F0460 +Adding coverage:DECCiphers.pas (DECCiphers) 6463 +Clearing BreakPoint at 004F0487 +De-Activate DECCiphers.pas line 6463 BreakPoint at:004F0487 +Adding coverage:DECCiphers.pas (DECCiphers) 6464 +Clearing BreakPoint at 004F04A9 +De-Activate DECCiphers.pas line 6464 BreakPoint at:004F04A9 +Adding coverage:DECCiphers.pas (DECCiphers) 6465 +Clearing BreakPoint at 004F04B5 +De-Activate DECCiphers.pas line 6465 BreakPoint at:004F04B5 +Adding coverage:DECCiphers.pas (DECCiphers) 6466 +Clearing BreakPoint at 004F04BB +De-Activate DECCiphers.pas line 6466 BreakPoint at:004F04BB +Adding coverage:DECCiphers.pas (DECCiphers) 6467 +Clearing BreakPoint at 004F04C1 +De-Activate DECCiphers.pas line 6467 BreakPoint at:004F04C1 +Adding coverage:DECCiphers.pas (DECCiphers) 6468 +Clearing BreakPoint at 004F04C7 +De-Activate DECCiphers.pas line 6468 BreakPoint at:004F04C7 +Adding coverage:DECCiphers.pas (DECCiphers) 6471 +Clearing BreakPoint at 004F04D1 +De-Activate DECCiphers.pas line 6471 BreakPoint at:004F04D1 +Adding coverage:DECCiphers.pas (DECCiphers) 6472 +Clearing BreakPoint at 004F04D4 +De-Activate DECCiphers.pas line 6472 BreakPoint at:004F04D4 +Adding coverage:DECCiphers.pas (DECCiphers) 6473 +Clearing BreakPoint at 004F04DA +De-Activate DECCiphers.pas line 6473 BreakPoint at:004F04DA +Adding coverage:DECCiphers.pas (DECCiphers) 6474 +Clearing BreakPoint at 004F04E0 +De-Activate DECCiphers.pas line 6474 BreakPoint at:004F04E0 +Adding coverage:DECCiphers.pas (DECCiphers) 6475 +Clearing BreakPoint at 004F04E6 +De-Activate DECCiphers.pas line 6475 BreakPoint at:004F04E6 +Adding coverage:DECCiphers.pas (DECCiphers) 6476 +Clearing BreakPoint at 004F04F2 +De-Activate DECCiphers.pas line 6476 BreakPoint at:004F04F2 +Adding coverage:DECCiphers.pas (DECCiphers) 6477 +Clearing BreakPoint at 004F0519 +De-Activate DECCiphers.pas line 6477 BreakPoint at:004F0519 +Adding coverage:DECCiphers.pas (DECCiphers) 6478 +Clearing BreakPoint at 004F053B +De-Activate DECCiphers.pas line 6478 BreakPoint at:004F053B +Adding coverage:DECCiphers.pas (DECCiphers) 6479 +Clearing BreakPoint at 004F0562 +De-Activate DECCiphers.pas line 6479 BreakPoint at:004F0562 +Adding coverage:DECCiphers.pas (DECCiphers) 6480 +Clearing BreakPoint at 004F0584 +De-Activate DECCiphers.pas line 6480 BreakPoint at:004F0584 +Adding coverage:DECCiphers.pas (DECCiphers) 6481 +Clearing BreakPoint at 004F058A +De-Activate DECCiphers.pas line 6481 BreakPoint at:004F058A +Adding coverage:DECCiphers.pas (DECCiphers) 6483 +Clearing BreakPoint at 004F0594 +De-Activate DECCiphers.pas line 6483 BreakPoint at:004F0594 +Adding coverage:DECCiphers.pas (DECCiphers) 6484 +Clearing BreakPoint at 004F059F +De-Activate DECCiphers.pas line 6484 BreakPoint at:004F059F +Adding coverage:DECCiphers.pas (DECCiphers) 6485 +Clearing BreakPoint at 004F05AB +De-Activate DECCiphers.pas line 6485 BreakPoint at:004F05AB +Adding coverage:DECCiphers.pas (DECCiphers) 6486 +Clearing BreakPoint at 004F05B7 +De-Activate DECCiphers.pas line 6486 BreakPoint at:004F05B7 +Adding coverage:DECCiphers.pas (DECCiphers) 6487 +Clearing BreakPoint at 004F05C3 +De-Activate DECCiphers.pas line 6487 BreakPoint at:004F05C3 +Adding coverage:DECCiphers.pas (DECCiphers) 6503 +Clearing BreakPoint at 004F06A8 +De-Activate DECCiphers.pas line 6503 BreakPoint at:004F06A8 +Adding coverage:DECCiphers.pas (DECCiphers) 6504 +Clearing BreakPoint at 004F06B7 +De-Activate DECCiphers.pas line 6504 BreakPoint at:004F06B7 +Adding coverage:DECCiphers.pas (DECCiphers) 6506 +Clearing BreakPoint at 004F06DE +De-Activate DECCiphers.pas line 6506 BreakPoint at:004F06DE +Adding coverage:DECCiphers.pas (DECCiphers) 6507 +Clearing BreakPoint at 004F06E7 +De-Activate DECCiphers.pas line 6507 BreakPoint at:004F06E7 +Adding coverage:DECCiphers.pas (DECCiphers) 6508 +Clearing BreakPoint at 004F06F2 +De-Activate DECCiphers.pas line 6508 BreakPoint at:004F06F2 +Adding coverage:DECCiphers.pas (DECCiphers) 6509 +Clearing BreakPoint at 004F06FD +De-Activate DECCiphers.pas line 6509 BreakPoint at:004F06FD +Adding coverage:DECCiphers.pas (DECCiphers) 6510 +Clearing BreakPoint at 004F070B +De-Activate DECCiphers.pas line 6510 BreakPoint at:004F070B +Adding coverage:DECCiphers.pas (DECCiphers) 6511 +Clearing BreakPoint at 004F071A +De-Activate DECCiphers.pas line 6511 BreakPoint at:004F071A +Adding coverage:DECCiphers.pas (DECCiphers) 6512 +Clearing BreakPoint at 004F0729 +De-Activate DECCiphers.pas line 6512 BreakPoint at:004F0729 +Adding coverage:DECCiphers.pas (DECCiphers) 6513 +Clearing BreakPoint at 004F0738 +De-Activate DECCiphers.pas line 6513 BreakPoint at:004F0738 +Adding coverage:DECCiphers.pas (DECCiphers) 6516 +Clearing BreakPoint at 004F073F +De-Activate DECCiphers.pas line 6516 BreakPoint at:004F073F +Adding coverage:DECCiphers.pas (DECCiphers) 6517 +Clearing BreakPoint at 004F0745 +De-Activate DECCiphers.pas line 6517 BreakPoint at:004F0745 +Adding coverage:DECCiphers.pas (DECCiphers) 6574 +Clearing BreakPoint at 004F0B2C +De-Activate DECCiphers.pas line 6574 BreakPoint at:004F0B2C +Adding coverage:DECCiphers.pas (DECCiphers) 6575 +Clearing BreakPoint at 004F0B3B +De-Activate DECCiphers.pas line 6575 BreakPoint at:004F0B3B +Adding coverage:DECCiphers.pas (DECCiphers) 6580 +Clearing BreakPoint at 004F0B44 +De-Activate DECCiphers.pas line 6580 BreakPoint at:004F0B44 +Adding coverage:DECCiphers.pas (DECCiphers) 6583 +Clearing BreakPoint at 004F0B56 +De-Activate DECCiphers.pas line 6583 BreakPoint at:004F0B56 +Adding coverage:DECCiphers.pas (DECCiphers) 6518 +Clearing BreakPoint at 004F0767 +De-Activate DECCiphers.pas line 6518 BreakPoint at:004F0767 +Adding coverage:DECCiphers.pas (DECCiphers) 6519 +Clearing BreakPoint at 004F078E +De-Activate DECCiphers.pas line 6519 BreakPoint at:004F078E +Adding coverage:DECCiphers.pas (DECCiphers) 6520 +Clearing BreakPoint at 004F07B0 +De-Activate DECCiphers.pas line 6520 BreakPoint at:004F07B0 +Adding coverage:DECCiphers.pas (DECCiphers) 6521 +Clearing BreakPoint at 004F07D7 +De-Activate DECCiphers.pas line 6521 BreakPoint at:004F07D7 +Adding coverage:DECCiphers.pas (DECCiphers) 6522 +Clearing BreakPoint at 004F07E3 +De-Activate DECCiphers.pas line 6522 BreakPoint at:004F07E3 +Adding coverage:DECCiphers.pas (DECCiphers) 6523 +Clearing BreakPoint at 004F07E9 +De-Activate DECCiphers.pas line 6523 BreakPoint at:004F07E9 +Adding coverage:DECCiphers.pas (DECCiphers) 6524 +Clearing BreakPoint at 004F07EF +De-Activate DECCiphers.pas line 6524 BreakPoint at:004F07EF +Adding coverage:DECCiphers.pas (DECCiphers) 6525 +Clearing BreakPoint at 004F07F5 +De-Activate DECCiphers.pas line 6525 BreakPoint at:004F07F5 +Adding coverage:DECCiphers.pas (DECCiphers) 6526 +Clearing BreakPoint at 004F07F8 +De-Activate DECCiphers.pas line 6526 BreakPoint at:004F07F8 +Adding coverage:DECCiphers.pas (DECCiphers) 6582 +Clearing BreakPoint at 004F0B4E +De-Activate DECCiphers.pas line 6582 BreakPoint at:004F0B4E +Adding coverage:DECCiphers.pas (DECCiphers) 6529 +Clearing BreakPoint at 004F0802 +De-Activate DECCiphers.pas line 6529 BreakPoint at:004F0802 +Adding coverage:DECCiphers.pas (DECCiphers) 6530 +Clearing BreakPoint at 004F0808 +De-Activate DECCiphers.pas line 6530 BreakPoint at:004F0808 +Adding coverage:DECCiphers.pas (DECCiphers) 6531 +Clearing BreakPoint at 004F080E +De-Activate DECCiphers.pas line 6531 BreakPoint at:004F080E +Adding coverage:DECCiphers.pas (DECCiphers) 6532 +Clearing BreakPoint at 004F0814 +De-Activate DECCiphers.pas line 6532 BreakPoint at:004F0814 +Adding coverage:DECCiphers.pas (DECCiphers) 6533 +Clearing BreakPoint at 004F0820 +De-Activate DECCiphers.pas line 6533 BreakPoint at:004F0820 +Adding coverage:DECCiphers.pas (DECCiphers) 6534 +Clearing BreakPoint at 004F0842 +De-Activate DECCiphers.pas line 6534 BreakPoint at:004F0842 +Adding coverage:DECCiphers.pas (DECCiphers) 6535 +Clearing BreakPoint at 004F0869 +De-Activate DECCiphers.pas line 6535 BreakPoint at:004F0869 +Adding coverage:DECCiphers.pas (DECCiphers) 6536 +Clearing BreakPoint at 004F088B +De-Activate DECCiphers.pas line 6536 BreakPoint at:004F088B +Adding coverage:DECCiphers.pas (DECCiphers) 6537 +Clearing BreakPoint at 004F08B2 +De-Activate DECCiphers.pas line 6537 BreakPoint at:004F08B2 +Adding coverage:DECCiphers.pas (DECCiphers) 6538 +Clearing BreakPoint at 004F08B8 +De-Activate DECCiphers.pas line 6538 BreakPoint at:004F08B8 +Adding coverage:DECCiphers.pas (DECCiphers) 6539 +Clearing BreakPoint at 004F08BB +De-Activate DECCiphers.pas line 6539 BreakPoint at:004F08BB +Adding coverage:DECCiphers.pas (DECCiphers) 6542 +Clearing BreakPoint at 004F08C5 +De-Activate DECCiphers.pas line 6542 BreakPoint at:004F08C5 +Adding coverage:DECCiphers.pas (DECCiphers) 6543 +Clearing BreakPoint at 004F08CB +De-Activate DECCiphers.pas line 6543 BreakPoint at:004F08CB +Adding coverage:DECCiphers.pas (DECCiphers) 6544 +Clearing BreakPoint at 004F08ED +De-Activate DECCiphers.pas line 6544 BreakPoint at:004F08ED +Adding coverage:DECCiphers.pas (DECCiphers) 6545 +Clearing BreakPoint at 004F0914 +De-Activate DECCiphers.pas line 6545 BreakPoint at:004F0914 +Adding coverage:DECCiphers.pas (DECCiphers) 6546 +Clearing BreakPoint at 004F0936 +De-Activate DECCiphers.pas line 6546 BreakPoint at:004F0936 +Adding coverage:DECCiphers.pas (DECCiphers) 6547 +Clearing BreakPoint at 004F095D +De-Activate DECCiphers.pas line 6547 BreakPoint at:004F095D +Adding coverage:DECCiphers.pas (DECCiphers) 6548 +Clearing BreakPoint at 004F0969 +De-Activate DECCiphers.pas line 6548 BreakPoint at:004F0969 +Adding coverage:DECCiphers.pas (DECCiphers) 6549 +Clearing BreakPoint at 004F096F +De-Activate DECCiphers.pas line 6549 BreakPoint at:004F096F +Adding coverage:DECCiphers.pas (DECCiphers) 6550 +Clearing BreakPoint at 004F0975 +De-Activate DECCiphers.pas line 6550 BreakPoint at:004F0975 +Adding coverage:DECCiphers.pas (DECCiphers) 6551 +Clearing BreakPoint at 004F097B +De-Activate DECCiphers.pas line 6551 BreakPoint at:004F097B +Adding coverage:DECCiphers.pas (DECCiphers) 6552 +Clearing BreakPoint at 004F097E +De-Activate DECCiphers.pas line 6552 BreakPoint at:004F097E +Adding coverage:DECCiphers.pas (DECCiphers) 6555 +Clearing BreakPoint at 004F0988 +De-Activate DECCiphers.pas line 6555 BreakPoint at:004F0988 +Adding coverage:DECCiphers.pas (DECCiphers) 6556 +Clearing BreakPoint at 004F098E +De-Activate DECCiphers.pas line 6556 BreakPoint at:004F098E +Adding coverage:DECCiphers.pas (DECCiphers) 6557 +Clearing BreakPoint at 004F0994 +De-Activate DECCiphers.pas line 6557 BreakPoint at:004F0994 +Adding coverage:DECCiphers.pas (DECCiphers) 6558 +Clearing BreakPoint at 004F099A +De-Activate DECCiphers.pas line 6558 BreakPoint at:004F099A +Adding coverage:DECCiphers.pas (DECCiphers) 6559 +Clearing BreakPoint at 004F09A6 +De-Activate DECCiphers.pas line 6559 BreakPoint at:004F09A6 +Adding coverage:DECCiphers.pas (DECCiphers) 6560 +Clearing BreakPoint at 004F09C8 +De-Activate DECCiphers.pas line 6560 BreakPoint at:004F09C8 +Adding coverage:DECCiphers.pas (DECCiphers) 6561 +Clearing BreakPoint at 004F09EF +De-Activate DECCiphers.pas line 6561 BreakPoint at:004F09EF +Adding coverage:DECCiphers.pas (DECCiphers) 6562 +Clearing BreakPoint at 004F0A11 +De-Activate DECCiphers.pas line 6562 BreakPoint at:004F0A11 +Adding coverage:DECCiphers.pas (DECCiphers) 6563 +Clearing BreakPoint at 004F0A38 +De-Activate DECCiphers.pas line 6563 BreakPoint at:004F0A38 +Adding coverage:DECCiphers.pas (DECCiphers) 6564 +Clearing BreakPoint at 004F0A3E +De-Activate DECCiphers.pas line 6564 BreakPoint at:004F0A3E +Adding coverage:DECCiphers.pas (DECCiphers) 6565 +Clearing BreakPoint at 004F0A41 +De-Activate DECCiphers.pas line 6565 BreakPoint at:004F0A41 +Adding coverage:DECCiphers.pas (DECCiphers) 6567 +Clearing BreakPoint at 004F0A4B +De-Activate DECCiphers.pas line 6567 BreakPoint at:004F0A4B +Adding coverage:DECCiphers.pas (DECCiphers) 6568 +Clearing BreakPoint at 004F0A56 +De-Activate DECCiphers.pas line 6568 BreakPoint at:004F0A56 +Adding coverage:DECCiphers.pas (DECCiphers) 6569 +Clearing BreakPoint at 004F0A62 +De-Activate DECCiphers.pas line 6569 BreakPoint at:004F0A62 +Adding coverage:DECCiphers.pas (DECCiphers) 6570 +Clearing BreakPoint at 004F0A6E +De-Activate DECCiphers.pas line 6570 BreakPoint at:004F0A6E +Adding coverage:DECCiphers.pas (DECCiphers) 6571 +Clearing BreakPoint at 004F0A7A +De-Activate DECCiphers.pas line 6571 BreakPoint at:004F0A7A +Adding coverage:DECCiphers.pas (DECCiphers) 6591 +Clearing BreakPoint at 004F0B5C +De-Activate DECCiphers.pas line 6591 BreakPoint at:004F0B5C +Adding coverage:DECCiphers.pas (DECCiphers) 6592 +Clearing BreakPoint at 004F0B68 +De-Activate DECCiphers.pas line 6592 BreakPoint at:004F0B68 +Adding coverage:DECCiphers.pas (DECCiphers) 6593 +Clearing BreakPoint at 004F0B71 +De-Activate DECCiphers.pas line 6593 BreakPoint at:004F0B71 +Adding coverage:DECCiphers.pas (DECCiphers) 6594 +Clearing BreakPoint at 004F0B7B +De-Activate DECCiphers.pas line 6594 BreakPoint at:004F0B7B +Adding coverage:DECCiphers.pas (DECCiphers) 6595 +Clearing BreakPoint at 004F0B85 +De-Activate DECCiphers.pas line 6595 BreakPoint at:004F0B85 +Adding coverage:DECCiphers.pas (DECCiphers) 6596 +Clearing BreakPoint at 004F0B8F +De-Activate DECCiphers.pas line 6596 BreakPoint at:004F0B8F +Adding coverage:DECCiphers.pas (DECCiphers) 6597 +Clearing BreakPoint at 004F0B96 +De-Activate DECCiphers.pas line 6597 BreakPoint at:004F0B96 +Adding coverage:DECCiphers.pas (DECCiphers) 6598 +Clearing BreakPoint at 004F0B9F +De-Activate DECCiphers.pas line 6598 BreakPoint at:004F0B9F +Adding coverage:DECCiphers.pas (DECCiphers) 6599 +Clearing BreakPoint at 004F0BA8 +De-Activate DECCiphers.pas line 6599 BreakPoint at:004F0BA8 +Adding coverage:DECCiphers.pas (DECCiphers) 6600 +Clearing BreakPoint at 004F0BB4 +De-Activate DECCiphers.pas line 6600 BreakPoint at:004F0BB4 +Adding coverage:DECCiphers.pas (DECCiphers) 6615 +Clearing BreakPoint at 004F0C3C +De-Activate DECCiphers.pas line 6615 BreakPoint at:004F0C3C +Adding coverage:DECCiphers.pas (DECCiphers) 6616 +Clearing BreakPoint at 004F0C4B +De-Activate DECCiphers.pas line 6616 BreakPoint at:004F0C4B +Adding coverage:DECCiphers.pas (DECCiphers) 6617 +Clearing BreakPoint at 004F0C5C +De-Activate DECCiphers.pas line 6617 BreakPoint at:004F0C5C +Adding coverage:DECCiphers.pas (DECCiphers) 6603 +Clearing BreakPoint at 004F0BBC +De-Activate DECCiphers.pas line 6603 BreakPoint at:004F0BBC +Adding coverage:DECCiphers.pas (DECCiphers) 6604 +Clearing BreakPoint at 004F0BC8 +De-Activate DECCiphers.pas line 6604 BreakPoint at:004F0BC8 +Adding coverage:DECCiphers.pas (DECCiphers) 6606 +Clearing BreakPoint at 004F0BDE +De-Activate DECCiphers.pas line 6606 BreakPoint at:004F0BDE +Adding coverage:DECCiphers.pas (DECCiphers) 6607 +Clearing BreakPoint at 004F0BF2 +De-Activate DECCiphers.pas line 6607 BreakPoint at:004F0BF2 +Adding coverage:DECCiphers.pas (DECCiphers) 6611 +Clearing BreakPoint at 004F0C2C +De-Activate DECCiphers.pas line 6611 BreakPoint at:004F0C2C +Adding coverage:DECCiphers.pas (DECCiphers) 6612 +Clearing BreakPoint at 004F0C35 +De-Activate DECCiphers.pas line 6612 BreakPoint at:004F0C35 +Adding coverage:DECCiphers.pas (DECCiphers) 6620 +Clearing BreakPoint at 004F0C6A +De-Activate DECCiphers.pas line 6620 BreakPoint at:004F0C6A +Adding coverage:DECCiphers.pas (DECCiphers) 6627 +Clearing BreakPoint at 004F0C70 +De-Activate DECCiphers.pas line 6627 BreakPoint at:004F0C70 +Adding coverage:DECCiphers.pas (DECCiphers) 6628 +Clearing BreakPoint at 004F0C7F +De-Activate DECCiphers.pas line 6628 BreakPoint at:004F0C7F +Adding coverage:DECCiphers.pas (DECCiphers) 6630 +Clearing BreakPoint at 004F0CA6 +De-Activate DECCiphers.pas line 6630 BreakPoint at:004F0CA6 +Adding coverage:DECCiphers.pas (DECCiphers) 6632 +Clearing BreakPoint at 004F0CAB +De-Activate DECCiphers.pas line 6632 BreakPoint at:004F0CAB +Adding coverage:DECCiphers.pas (DECCiphers) 6633 +Clearing BreakPoint at 004F0CB6 +De-Activate DECCiphers.pas line 6633 BreakPoint at:004F0CB6 +Adding coverage:DECCiphers.pas (DECCiphers) 6634 +Clearing BreakPoint at 004F0CC2 +De-Activate DECCiphers.pas line 6634 BreakPoint at:004F0CC2 +Adding coverage:DECCiphers.pas (DECCiphers) 6635 +Clearing BreakPoint at 004F0CCE +De-Activate DECCiphers.pas line 6635 BreakPoint at:004F0CCE +Adding coverage:DECCiphers.pas (DECCiphers) 6636 +Clearing BreakPoint at 004F0CDA +De-Activate DECCiphers.pas line 6636 BreakPoint at:004F0CDA +Adding coverage:DECCiphers.pas (DECCiphers) 6637 +Clearing BreakPoint at 004F0CE2 +De-Activate DECCiphers.pas line 6637 BreakPoint at:004F0CE2 +Adding coverage:DECCiphers.pas (DECCiphers) 6639 +Clearing BreakPoint at 004F0CEB +De-Activate DECCiphers.pas line 6639 BreakPoint at:004F0CEB +Adding coverage:DECCiphers.pas (DECCiphers) 6641 +Clearing BreakPoint at 004F0D01 +De-Activate DECCiphers.pas line 6641 BreakPoint at:004F0D01 +Adding coverage:DECCiphers.pas (DECCiphers) 6642 +Clearing BreakPoint at 004F0D08 +De-Activate DECCiphers.pas line 6642 BreakPoint at:004F0D08 +Adding coverage:DECCiphers.pas (DECCiphers) 6643 +Clearing BreakPoint at 004F0D25 +De-Activate DECCiphers.pas line 6643 BreakPoint at:004F0D25 +Adding coverage:DECCiphers.pas (DECCiphers) 6644 +Clearing BreakPoint at 004F0D42 +De-Activate DECCiphers.pas line 6644 BreakPoint at:004F0D42 +Adding coverage:DECCiphers.pas (DECCiphers) 6639 +Clearing BreakPoint at 004F0D45 +De-Activate DECCiphers.pas line 6639 BreakPoint at:004F0D45 +Adding coverage:DECCiphers.pas (DECCiphers) 6646 +Clearing BreakPoint at 004F0D4A +De-Activate DECCiphers.pas line 6646 BreakPoint at:004F0D4A +Adding coverage:DECCiphers.pas (DECCiphers) 6647 +Clearing BreakPoint at 004F0D52 +De-Activate DECCiphers.pas line 6647 BreakPoint at:004F0D52 +Adding coverage:DECCiphers.pas (DECCiphers) 6648 +Clearing BreakPoint at 004F0D5B +De-Activate DECCiphers.pas line 6648 BreakPoint at:004F0D5B +Adding coverage:DECCiphers.pas (DECCiphers) 6655 +Clearing BreakPoint at 004F0E10 +De-Activate DECCiphers.pas line 6655 BreakPoint at:004F0E10 +Adding coverage:DECCiphers.pas (DECCiphers) 6656 +Clearing BreakPoint at 004F0E1F +De-Activate DECCiphers.pas line 6656 BreakPoint at:004F0E1F +Adding coverage:DECCiphers.pas (DECCiphers) 6658 +Clearing BreakPoint at 004F0E46 +De-Activate DECCiphers.pas line 6658 BreakPoint at:004F0E46 +Adding coverage:DECCiphers.pas (DECCiphers) 6660 +Clearing BreakPoint at 004F0E53 +De-Activate DECCiphers.pas line 6660 BreakPoint at:004F0E53 +Adding coverage:DECCiphers.pas (DECCiphers) 6661 +Clearing BreakPoint at 004F0E5E +De-Activate DECCiphers.pas line 6661 BreakPoint at:004F0E5E +Adding coverage:DECCiphers.pas (DECCiphers) 6662 +Clearing BreakPoint at 004F0E6A +De-Activate DECCiphers.pas line 6662 BreakPoint at:004F0E6A +Adding coverage:DECCiphers.pas (DECCiphers) 6663 +Clearing BreakPoint at 004F0E76 +De-Activate DECCiphers.pas line 6663 BreakPoint at:004F0E76 +Adding coverage:DECCiphers.pas (DECCiphers) 6664 +Clearing BreakPoint at 004F0E82 +De-Activate DECCiphers.pas line 6664 BreakPoint at:004F0E82 +Adding coverage:DECCiphers.pas (DECCiphers) 6665 +Clearing BreakPoint at 004F0E8A +De-Activate DECCiphers.pas line 6665 BreakPoint at:004F0E8A +Adding coverage:DECCiphers.pas (DECCiphers) 6667 +Clearing BreakPoint at 004F0E93 +De-Activate DECCiphers.pas line 6667 BreakPoint at:004F0E93 +Adding coverage:DECCiphers.pas (DECCiphers) 6669 +Clearing BreakPoint at 004F0EA9 +De-Activate DECCiphers.pas line 6669 BreakPoint at:004F0EA9 +Adding coverage:DECCiphers.pas (DECCiphers) 6670 +Clearing BreakPoint at 004F0EC6 +De-Activate DECCiphers.pas line 6670 BreakPoint at:004F0EC6 +Adding coverage:DECCiphers.pas (DECCiphers) 6671 +Clearing BreakPoint at 004F0EE3 +De-Activate DECCiphers.pas line 6671 BreakPoint at:004F0EE3 +Adding coverage:DECCiphers.pas (DECCiphers) 6672 +Clearing BreakPoint at 004F0EEA +De-Activate DECCiphers.pas line 6672 BreakPoint at:004F0EEA +Adding coverage:DECCiphers.pas (DECCiphers) 6667 +Clearing BreakPoint at 004F0EED +De-Activate DECCiphers.pas line 6667 BreakPoint at:004F0EED +Adding coverage:DECCiphers.pas (DECCiphers) 6674 +Clearing BreakPoint at 004F0EF2 +De-Activate DECCiphers.pas line 6674 BreakPoint at:004F0EF2 +Adding coverage:DECCiphers.pas (DECCiphers) 6675 +Clearing BreakPoint at 004F0EFA +De-Activate DECCiphers.pas line 6675 BreakPoint at:004F0EFA +Adding coverage:DECCiphers.pas (DECCiphers) 6676 +Clearing BreakPoint at 004F0F03 +De-Activate DECCiphers.pas line 6676 BreakPoint at:004F0F03 +Adding coverage:DECCiphers.pas (DECCiphers) 6609 +Clearing BreakPoint at 004F0C06 +De-Activate DECCiphers.pas line 6609 BreakPoint at:004F0C06 +Adding coverage:DECCiphers.pas (DECCiphers) 6610 +Clearing BreakPoint at 004F0C1A +De-Activate DECCiphers.pas line 6610 BreakPoint at:004F0C1A +Adding coverage:DECCiphers.pas (DECCiphers) 6685 +Clearing BreakPoint at 004F0FB8 +De-Activate DECCiphers.pas line 6685 BreakPoint at:004F0FB8 +Adding coverage:DECCiphers.pas (DECCiphers) 6686 +Clearing BreakPoint at 004F0FC7 +De-Activate DECCiphers.pas line 6686 BreakPoint at:004F0FC7 +Adding coverage:DECCiphers.pas (DECCiphers) 6688 +Clearing BreakPoint at 004F0FEE +De-Activate DECCiphers.pas line 6688 BreakPoint at:004F0FEE +Adding coverage:DECCiphers.pas (DECCiphers) 6690 +Clearing BreakPoint at 004F0FF3 +De-Activate DECCiphers.pas line 6690 BreakPoint at:004F0FF3 +Adding coverage:DECCiphers.pas (DECCiphers) 6691 +Clearing BreakPoint at 004F0FFB +De-Activate DECCiphers.pas line 6691 BreakPoint at:004F0FFB +Adding coverage:DECCiphers.pas (DECCiphers) 6692 +Clearing BreakPoint at 004F1004 +De-Activate DECCiphers.pas line 6692 BreakPoint at:004F1004 +Adding coverage:DECCiphers.pas (DECCiphers) 6694 +Clearing BreakPoint at 004F100D +De-Activate DECCiphers.pas line 6694 BreakPoint at:004F100D +Adding coverage:DECCiphers.pas (DECCiphers) 6696 +Clearing BreakPoint at 004F1023 +De-Activate DECCiphers.pas line 6696 BreakPoint at:004F1023 +Adding coverage:DECCiphers.pas (DECCiphers) 6697 +Clearing BreakPoint at 004F1048 +De-Activate DECCiphers.pas line 6697 BreakPoint at:004F1048 +Adding coverage:DECCiphers.pas (DECCiphers) 6698 +Clearing BreakPoint at 004F104F +De-Activate DECCiphers.pas line 6698 BreakPoint at:004F104F +Adding coverage:DECCiphers.pas (DECCiphers) 6699 +Clearing BreakPoint at 004F1077 +De-Activate DECCiphers.pas line 6699 BreakPoint at:004F1077 +Adding coverage:DECCiphers.pas (DECCiphers) 6694 +Clearing BreakPoint at 004F107A +De-Activate DECCiphers.pas line 6694 BreakPoint at:004F107A +Adding coverage:DECCiphers.pas (DECCiphers) 6701 +Clearing BreakPoint at 004F107F +De-Activate DECCiphers.pas line 6701 BreakPoint at:004F107F +Adding coverage:DECCiphers.pas (DECCiphers) 6702 +Clearing BreakPoint at 004F1087 +De-Activate DECCiphers.pas line 6702 BreakPoint at:004F1087 +Adding coverage:DECCiphers.pas (DECCiphers) 6703 +Clearing BreakPoint at 004F1090 +De-Activate DECCiphers.pas line 6703 BreakPoint at:004F1090 +Adding coverage:DECCiphers.pas (DECCiphers) 6711 +Clearing BreakPoint at 004F1144 +De-Activate DECCiphers.pas line 6711 BreakPoint at:004F1144 +Adding coverage:DECCiphers.pas (DECCiphers) 6712 +Clearing BreakPoint at 004F1153 +De-Activate DECCiphers.pas line 6712 BreakPoint at:004F1153 +Adding coverage:DECCiphers.pas (DECCiphers) 6714 +Clearing BreakPoint at 004F117A +De-Activate DECCiphers.pas line 6714 BreakPoint at:004F117A +Adding coverage:DECCiphers.pas (DECCiphers) 6716 +Clearing BreakPoint at 004F1187 +De-Activate DECCiphers.pas line 6716 BreakPoint at:004F1187 +Adding coverage:DECCiphers.pas (DECCiphers) 6717 +Clearing BreakPoint at 004F118F +De-Activate DECCiphers.pas line 6717 BreakPoint at:004F118F +Adding coverage:DECCiphers.pas (DECCiphers) 6718 +Clearing BreakPoint at 004F1198 +De-Activate DECCiphers.pas line 6718 BreakPoint at:004F1198 +Adding coverage:DECCiphers.pas (DECCiphers) 6720 +Clearing BreakPoint at 004F11A1 +De-Activate DECCiphers.pas line 6720 BreakPoint at:004F11A1 +Adding coverage:DECCiphers.pas (DECCiphers) 6722 +Clearing BreakPoint at 004F11B7 +De-Activate DECCiphers.pas line 6722 BreakPoint at:004F11B7 +Adding coverage:DECCiphers.pas (DECCiphers) 6723 +Clearing BreakPoint at 004F11DF +De-Activate DECCiphers.pas line 6723 BreakPoint at:004F11DF +Adding coverage:DECCiphers.pas (DECCiphers) 6724 +Clearing BreakPoint at 004F11E6 +De-Activate DECCiphers.pas line 6724 BreakPoint at:004F11E6 +Adding coverage:DECCiphers.pas (DECCiphers) 6725 +Clearing BreakPoint at 004F120B +De-Activate DECCiphers.pas line 6725 BreakPoint at:004F120B +Adding coverage:DECCiphers.pas (DECCiphers) 6720 +Clearing BreakPoint at 004F120E +De-Activate DECCiphers.pas line 6720 BreakPoint at:004F120E +Adding coverage:DECCiphers.pas (DECCiphers) 6727 +Clearing BreakPoint at 004F1213 +De-Activate DECCiphers.pas line 6727 BreakPoint at:004F1213 +Adding coverage:DECCiphers.pas (DECCiphers) 6728 +Clearing BreakPoint at 004F121B +De-Activate DECCiphers.pas line 6728 BreakPoint at:004F121B +Adding coverage:DECCiphers.pas (DECCiphers) 6729 +Clearing BreakPoint at 004F1224 +De-Activate DECCiphers.pas line 6729 BreakPoint at:004F1224 +Adding coverage:DECCiphers.pas (DECCiphers) 6738 +Clearing BreakPoint at 004F12D8 +De-Activate DECCiphers.pas line 6738 BreakPoint at:004F12D8 +Adding coverage:DECCiphers.pas (DECCiphers) 6739 +Clearing BreakPoint at 004F12E7 +De-Activate DECCiphers.pas line 6739 BreakPoint at:004F12E7 +Adding coverage:DECCiphers.pas (DECCiphers) 6741 +Clearing BreakPoint at 004F130E +De-Activate DECCiphers.pas line 6741 BreakPoint at:004F130E +Adding coverage:DECCiphers.pas (DECCiphers) 6743 +Clearing BreakPoint at 004F1313 +De-Activate DECCiphers.pas line 6743 BreakPoint at:004F1313 +Adding coverage:DECCiphers.pas (DECCiphers) 6744 +Clearing BreakPoint at 004F131B +De-Activate DECCiphers.pas line 6744 BreakPoint at:004F131B +Adding coverage:DECCiphers.pas (DECCiphers) 6745 +Clearing BreakPoint at 004F1324 +De-Activate DECCiphers.pas line 6745 BreakPoint at:004F1324 +Adding coverage:DECCiphers.pas (DECCiphers) 6747 +Clearing BreakPoint at 004F132D +De-Activate DECCiphers.pas line 6747 BreakPoint at:004F132D +Adding coverage:DECCiphers.pas (DECCiphers) 6749 +Clearing BreakPoint at 004F1343 +De-Activate DECCiphers.pas line 6749 BreakPoint at:004F1343 +Adding coverage:DECCiphers.pas (DECCiphers) 6750 +Clearing BreakPoint at 004F1368 +De-Activate DECCiphers.pas line 6750 BreakPoint at:004F1368 +Adding coverage:DECCiphers.pas (DECCiphers) 6751 +Clearing BreakPoint at 004F136F +De-Activate DECCiphers.pas line 6751 BreakPoint at:004F136F +Adding coverage:DECCiphers.pas (DECCiphers) 6752 +Clearing BreakPoint at 004F1397 +De-Activate DECCiphers.pas line 6752 BreakPoint at:004F1397 +Adding coverage:DECCiphers.pas (DECCiphers) 6747 +Clearing BreakPoint at 004F139A +De-Activate DECCiphers.pas line 6747 BreakPoint at:004F139A +Adding coverage:DECCiphers.pas (DECCiphers) 6754 +Clearing BreakPoint at 004F139F +De-Activate DECCiphers.pas line 6754 BreakPoint at:004F139F +Adding coverage:DECCiphers.pas (DECCiphers) 6755 +Clearing BreakPoint at 004F13A7 +De-Activate DECCiphers.pas line 6755 BreakPoint at:004F13A7 +Adding coverage:DECCiphers.pas (DECCiphers) 6756 +Clearing BreakPoint at 004F13B0 +De-Activate DECCiphers.pas line 6756 BreakPoint at:004F13B0 +Adding coverage:DECCiphers.pas (DECCiphers) 6764 +Clearing BreakPoint at 004F1464 +De-Activate DECCiphers.pas line 6764 BreakPoint at:004F1464 +Adding coverage:DECCiphers.pas (DECCiphers) 6765 +Clearing BreakPoint at 004F1473 +De-Activate DECCiphers.pas line 6765 BreakPoint at:004F1473 +Adding coverage:DECCiphers.pas (DECCiphers) 6767 +Clearing BreakPoint at 004F149A +De-Activate DECCiphers.pas line 6767 BreakPoint at:004F149A +Adding coverage:DECCiphers.pas (DECCiphers) 6769 +Clearing BreakPoint at 004F14A7 +De-Activate DECCiphers.pas line 6769 BreakPoint at:004F14A7 +Adding coverage:DECCiphers.pas (DECCiphers) 6770 +Clearing BreakPoint at 004F14AF +De-Activate DECCiphers.pas line 6770 BreakPoint at:004F14AF +Adding coverage:DECCiphers.pas (DECCiphers) 6771 +Clearing BreakPoint at 004F14B8 +De-Activate DECCiphers.pas line 6771 BreakPoint at:004F14B8 +Adding coverage:DECCiphers.pas (DECCiphers) 6773 +Clearing BreakPoint at 004F14C1 +De-Activate DECCiphers.pas line 6773 BreakPoint at:004F14C1 +Adding coverage:DECCiphers.pas (DECCiphers) 6775 +Clearing BreakPoint at 004F14D7 +De-Activate DECCiphers.pas line 6775 BreakPoint at:004F14D7 +Adding coverage:DECCiphers.pas (DECCiphers) 6776 +Clearing BreakPoint at 004F14FF +De-Activate DECCiphers.pas line 6776 BreakPoint at:004F14FF +Adding coverage:DECCiphers.pas (DECCiphers) 6777 +Clearing BreakPoint at 004F1506 +De-Activate DECCiphers.pas line 6777 BreakPoint at:004F1506 +Adding coverage:DECCiphers.pas (DECCiphers) 6778 +Clearing BreakPoint at 004F152B +De-Activate DECCiphers.pas line 6778 BreakPoint at:004F152B +Adding coverage:DECCiphers.pas (DECCiphers) 6773 +Clearing BreakPoint at 004F152E +De-Activate DECCiphers.pas line 6773 BreakPoint at:004F152E +Adding coverage:DECCiphers.pas (DECCiphers) 6780 +Clearing BreakPoint at 004F1533 +De-Activate DECCiphers.pas line 6780 BreakPoint at:004F1533 +Adding coverage:DECCiphers.pas (DECCiphers) 6781 +Clearing BreakPoint at 004F153B +De-Activate DECCiphers.pas line 6781 BreakPoint at:004F153B +Adding coverage:DECCiphers.pas (DECCiphers) 6782 +Clearing BreakPoint at 004F1544 +De-Activate DECCiphers.pas line 6782 BreakPoint at:004F1544 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00454AF1 +Exact line:DECBaseClass line 364 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4D31 +After line:DECCipherBase line 931 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00508EEC +After line:TestDECCipher line 3995 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00509304 +Exact line:TestDECCipher line 4042 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECRandom.pas (DECRandom) 322 +Clearing BreakPoint at 0050D108 +De-Activate DECRandom.pas line 322 BreakPoint at:0050D108 +Adding coverage:DECRandom.pas (DECRandom) 323 +Clearing BreakPoint at 0050D10C +De-Activate DECRandom.pas line 323 BreakPoint at:0050D10C +Adding coverage:DECRandom.pas (DECRandom) 298 +Clearing BreakPoint at 0050D094 +De-Activate DECRandom.pas line 298 BreakPoint at:0050D094 +Adding coverage:DECRandom.pas (DECRandom) 299 +Clearing BreakPoint at 0050D0A0 +De-Activate DECRandom.pas line 299 BreakPoint at:0050D0A0 +Adding coverage:DECRandom.pas (DECRandom) 300 +Clearing BreakPoint at 0050D0A9 +De-Activate DECRandom.pas line 300 BreakPoint at:0050D0A9 +Adding coverage:DECRandom.pas (DECRandom) 373 +Clearing BreakPoint at 0050D294 +De-Activate DECRandom.pas line 373 BreakPoint at:0050D294 +Adding coverage:DECRandom.pas (DECRandom) 374 +Clearing BreakPoint at 0050D2A0 +De-Activate DECRandom.pas line 374 BreakPoint at:0050D2A0 +Adding coverage:DECRandom.pas (DECRandom) 375 +Clearing BreakPoint at 0050D2B3 +De-Activate DECRandom.pas line 375 BreakPoint at:0050D2B3 +Adding coverage:DECRandom.pas (DECRandom) 374 +Clearing BreakPoint at 0050D2C4 +De-Activate DECRandom.pas line 374 BreakPoint at:0050D2C4 +Adding coverage:DECRandom.pas (DECRandom) 376 +Clearing BreakPoint at 0050D2C9 +De-Activate DECRandom.pas line 376 BreakPoint at:0050D2C9 +Adding coverage:DECRandom.pas (DECRandom) 303 +Clearing BreakPoint at 0050D0CC +De-Activate DECRandom.pas line 303 BreakPoint at:0050D0CC +Adding coverage:DECRandom.pas (DECRandom) 324 +Clearing BreakPoint at 0050D119 +De-Activate DECRandom.pas line 324 BreakPoint at:0050D119 +Adding coverage:DECRandom.pas (DECRandom) 306 +Clearing BreakPoint at 0050D0D0 +De-Activate DECRandom.pas line 306 BreakPoint at:0050D0D0 +Adding coverage:DECRandom.pas (DECRandom) 307 +Clearing BreakPoint at 0050D0DC +De-Activate DECRandom.pas line 307 BreakPoint at:0050D0DC +Adding coverage:DECRandom.pas (DECRandom) 308 +Clearing BreakPoint at 0050D0F6 +De-Activate DECRandom.pas line 308 BreakPoint at:0050D0F6 +Adding coverage:DECRandom.pas (DECRandom) 309 +Clearing BreakPoint at 0050D103 +De-Activate DECRandom.pas line 309 BreakPoint at:0050D103 +Adding coverage:DECRandom.pas (DECRandom) 332 +Clearing BreakPoint at 0050D143 +De-Activate DECRandom.pas line 332 BreakPoint at:0050D143 +Adding coverage:DECRandom.pas (DECRandom) 334 +Clearing BreakPoint at 0050D149 +De-Activate DECRandom.pas line 334 BreakPoint at:0050D149 +Adding coverage:DECRandom.pas (DECRandom) 335 +Clearing BreakPoint at 0050D150 +De-Activate DECRandom.pas line 335 BreakPoint at:0050D150 +Adding coverage:DECRandom.pas (DECRandom) 302 +Clearing BreakPoint at 0050D0B7 +De-Activate DECRandom.pas line 302 BreakPoint at:0050D0B7 +Adding coverage:DECRandom.pas (DECRandom) 282 +Clearing BreakPoint at 0050D044 +De-Activate DECRandom.pas line 282 BreakPoint at:0050D044 +Adding coverage:DECRandom.pas (DECRandom) 283 +Clearing BreakPoint at 0050D053 +De-Activate DECRandom.pas line 283 BreakPoint at:0050D053 +Adding coverage:DECRandom.pas (DECRandom) 284 +Clearing BreakPoint at 0050D059 +De-Activate DECRandom.pas line 284 BreakPoint at:0050D059 +Adding coverage:DECRandom.pas (DECRandom) 285 +Clearing BreakPoint at 0050D05F +De-Activate DECRandom.pas line 285 BreakPoint at:0050D05F +Adding coverage:DECRandom.pas (DECRandom) 287 +Clearing BreakPoint at 0050D065 +De-Activate DECRandom.pas line 287 BreakPoint at:0050D065 +Adding coverage:DECRandom.pas (DECRandom) 289 +Clearing BreakPoint at 0050D06B +De-Activate DECRandom.pas line 289 BreakPoint at:0050D06B +Adding coverage:DECRandom.pas (DECRandom) 290 +Clearing BreakPoint at 0050D076 +De-Activate DECRandom.pas line 290 BreakPoint at:0050D076 +Adding coverage:DECRandom.pas (DECRandom) 291 +Clearing BreakPoint at 0050D081 +De-Activate DECRandom.pas line 291 BreakPoint at:0050D081 +Adding coverage:DECRandom.pas (DECRandom) 292 +Clearing BreakPoint at 0050D084 +De-Activate DECRandom.pas line 292 BreakPoint at:0050D084 +Adding coverage:DECRandom.pas (DECRandom) 287 +Clearing BreakPoint at 0050D087 +De-Activate DECRandom.pas line 287 BreakPoint at:0050D087 +Adding coverage:DECRandom.pas (DECRandom) 295 +Clearing BreakPoint at 0050D08D +De-Activate DECRandom.pas line 295 BreakPoint at:0050D08D +Adding coverage:DECRandom.pas (DECRandom) 337 +Clearing BreakPoint at 0050D156 +De-Activate DECRandom.pas line 337 BreakPoint at:0050D156 +Adding coverage:DECRandom.pas (DECRandom) 338 +Clearing BreakPoint at 0050D159 +De-Activate DECRandom.pas line 338 BreakPoint at:0050D159 +Adding coverage:DECRandom.pas (DECRandom) 335 +Clearing BreakPoint at 0050D17D +De-Activate DECRandom.pas line 335 BreakPoint at:0050D17D +Adding coverage:DECCipherBase.pas (DECCipherBase) 1113 +Clearing BreakPoint at 004D543C +De-Activate DECCipherBase.pas line 1113 BreakPoint at:004D543C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1114 +Clearing BreakPoint at 004D5445 +De-Activate DECCipherBase.pas line 1114 BreakPoint at:004D5445 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1115 +Clearing BreakPoint at 004D544E +De-Activate DECCipherBase.pas line 1115 BreakPoint at:004D544E +Adding coverage:DECCiphers.pas (DECCiphers) 1045 +Clearing BreakPoint at 004DF4A4 +De-Activate DECCiphers.pas line 1045 BreakPoint at:004DF4A4 +Adding coverage:DECCiphers.pas (DECCiphers) 1047 +Clearing BreakPoint at 004DF4B3 +De-Activate DECCiphers.pas line 1047 BreakPoint at:004DF4B3 +Adding coverage:DECCiphers.pas (DECCiphers) 1050 +Clearing BreakPoint at 004DF4B8 +De-Activate DECCiphers.pas line 1050 BreakPoint at:004DF4B8 +Adding coverage:DECCiphers.pas (DECCiphers) 1051 +Clearing BreakPoint at 004DF4C7 +De-Activate DECCiphers.pas line 1051 BreakPoint at:004DF4C7 +Adding coverage:DECCiphers.pas (DECCiphers) 1053 +Clearing BreakPoint at 004DF4DD +De-Activate DECCiphers.pas line 1053 BreakPoint at:004DF4DD +Adding coverage:DECCipherModes.pas (DECCipherModes) 530 +Clearing BreakPoint at 004D7A45 +De-Activate DECCipherModes.pas line 530 BreakPoint at:004D7A45 +Adding coverage:DECCiphers.pas (DECCiphers) 1052 +Clearing BreakPoint at 004DF4CF +De-Activate DECCiphers.pas line 1052 BreakPoint at:004DF4CF +Adding coverage:DECCipherModes.pas (DECCipherModes) 531 +Clearing BreakPoint at 004D7A57 +De-Activate DECCipherModes.pas line 531 BreakPoint at:004D7A57 +Adding coverage:DECCipherModes.pas (DECCipherModes) 516 +Clearing BreakPoint at 004D79B6 +De-Activate DECCipherModes.pas line 516 BreakPoint at:004D79B6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 562 +Clearing BreakPoint at 004D7B60 +De-Activate DECCipherModes.pas line 562 BreakPoint at:004D7B60 +Adding coverage:DECCipherModes.pas (DECCipherModes) 563 +Clearing BreakPoint at 004D7B70 +De-Activate DECCipherModes.pas line 563 BreakPoint at:004D7B70 +Adding coverage:DECCipherModes.pas (DECCipherModes) 564 +Clearing BreakPoint at 004D7B75 +De-Activate DECCipherModes.pas line 564 BreakPoint at:004D7B75 +Adding coverage:DECCipherModes.pas (DECCipherModes) 566 +Clearing BreakPoint at 004D7B81 +De-Activate DECCipherModes.pas line 566 BreakPoint at:004D7B81 +Adding coverage:DECCipherModes.pas (DECCipherModes) 567 +Clearing BreakPoint at 004D7B9C +De-Activate DECCipherModes.pas line 567 BreakPoint at:004D7B9C +Adding coverage:DECCipherModes.pas (DECCipherModes) 568 +Clearing BreakPoint at 004D7BBE +De-Activate DECCipherModes.pas line 568 BreakPoint at:004D7BBE +Adding coverage:DECCipherModes.pas (DECCipherModes) 569 +Clearing BreakPoint at 004D7BEB +De-Activate DECCipherModes.pas line 569 BreakPoint at:004D7BEB +Adding coverage:DECCipherModes.pas (DECCipherModes) 570 +Clearing BreakPoint at 004D7C1E +De-Activate DECCipherModes.pas line 570 BreakPoint at:004D7C1E +Adding coverage:DECCipherModes.pas (DECCipherModes) 564 +Clearing BreakPoint at 004D7C29 +De-Activate DECCipherModes.pas line 564 BreakPoint at:004D7C29 +Adding coverage:DECCipherModes.pas (DECCipherModes) 572 +Clearing BreakPoint at 004D7C35 +De-Activate DECCipherModes.pas line 572 BreakPoint at:004D7C35 +Adding coverage:DECCipherModes.pas (DECCipherModes) 573 +Clearing BreakPoint at 004D7C3C +De-Activate DECCipherModes.pas line 573 BreakPoint at:004D7C3C +Adding coverage:DECCipherModes.pas (DECCipherModes) 514 +Clearing BreakPoint at 004D798E +De-Activate DECCipherModes.pas line 514 BreakPoint at:004D798E +Adding coverage:DECCipherModes.pas (DECCipherModes) 579 +Clearing BreakPoint at 004D7C44 +De-Activate DECCipherModes.pas line 579 BreakPoint at:004D7C44 +Adding coverage:DECCipherModes.pas (DECCipherModes) 580 +Clearing BreakPoint at 004D7C54 +De-Activate DECCipherModes.pas line 580 BreakPoint at:004D7C54 +Adding coverage:DECCipherModes.pas (DECCipherModes) 581 +Clearing BreakPoint at 004D7C59 +De-Activate DECCipherModes.pas line 581 BreakPoint at:004D7C59 +Adding coverage:DECCipherModes.pas (DECCipherModes) 583 +Clearing BreakPoint at 004D7C65 +De-Activate DECCipherModes.pas line 583 BreakPoint at:004D7C65 +Adding coverage:DECCipherModes.pas (DECCipherModes) 584 +Clearing BreakPoint at 004D7C80 +De-Activate DECCipherModes.pas line 584 BreakPoint at:004D7C80 +Adding coverage:DECCipherModes.pas (DECCipherModes) 585 +Clearing BreakPoint at 004D7CA2 +De-Activate DECCipherModes.pas line 585 BreakPoint at:004D7CA2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 586 +Clearing BreakPoint at 004D7CD5 +De-Activate DECCipherModes.pas line 586 BreakPoint at:004D7CD5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 587 +Clearing BreakPoint at 004D7D10 +De-Activate DECCipherModes.pas line 587 BreakPoint at:004D7D10 +Adding coverage:DECCipherModes.pas (DECCipherModes) 581 +Clearing BreakPoint at 004D7D1B +De-Activate DECCipherModes.pas line 581 BreakPoint at:004D7D1B +Adding coverage:DECCipherModes.pas (DECCipherModes) 589 +Clearing BreakPoint at 004D7D27 +De-Activate DECCipherModes.pas line 589 BreakPoint at:004D7D27 +Adding coverage:DECCipherModes.pas (DECCipherModes) 590 +Clearing BreakPoint at 004D7D2E +De-Activate DECCipherModes.pas line 590 BreakPoint at:004D7D2E +Adding coverage:DECCipherModes.pas (DECCipherModes) 518 +Clearing BreakPoint at 004D79DE +De-Activate DECCipherModes.pas line 518 BreakPoint at:004D79DE +Adding coverage:DECCipherModes.pas (DECCipherModes) 515 +Clearing BreakPoint at 004D79A2 +De-Activate DECCipherModes.pas line 515 BreakPoint at:004D79A2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 614 +Clearing BreakPoint at 004D7E2C +De-Activate DECCipherModes.pas line 614 BreakPoint at:004D7E2C +Adding coverage:DECCipherModes.pas (DECCipherModes) 615 +Clearing BreakPoint at 004D7E3C +De-Activate DECCipherModes.pas line 615 BreakPoint at:004D7E3C +Adding coverage:DECCipherModes.pas (DECCipherModes) 616 +Clearing BreakPoint at 004D7E43 +De-Activate DECCipherModes.pas line 616 BreakPoint at:004D7E43 +Adding coverage:DECCipherModes.pas (DECCipherModes) 631 +Clearing BreakPoint at 004D7F29 +De-Activate DECCipherModes.pas line 631 BreakPoint at:004D7F29 +Adding coverage:DECCipherModes.pas (DECCipherModes) 632 +Clearing BreakPoint at 004D7F39 +De-Activate DECCipherModes.pas line 632 BreakPoint at:004D7F39 +Adding coverage:DECCipherModes.pas (DECCipherModes) 633 +Clearing BreakPoint at 004D7F42 +De-Activate DECCipherModes.pas line 633 BreakPoint at:004D7F42 +Adding coverage:DECCipherModes.pas (DECCipherModes) 634 +Clearing BreakPoint at 004D7F47 +De-Activate DECCipherModes.pas line 634 BreakPoint at:004D7F47 +Adding coverage:DECCipherModes.pas (DECCipherModes) 636 +Clearing BreakPoint at 004D7F53 +De-Activate DECCipherModes.pas line 636 BreakPoint at:004D7F53 +Adding coverage:DECCipherModes.pas (DECCipherModes) 637 +Clearing BreakPoint at 004D7F6B +De-Activate DECCipherModes.pas line 637 BreakPoint at:004D7F6B +Adding coverage:DECCipherModes.pas (DECCipherModes) 638 +Clearing BreakPoint at 004D7FA7 +De-Activate DECCipherModes.pas line 638 BreakPoint at:004D7FA7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 639 +Clearing BreakPoint at 004D7FBF +De-Activate DECCipherModes.pas line 639 BreakPoint at:004D7FBF +Adding coverage:DECCipherModes.pas (DECCipherModes) 634 +Clearing BreakPoint at 004D7FCF +De-Activate DECCipherModes.pas line 634 BreakPoint at:004D7FCF +Adding coverage:DECCipherModes.pas (DECCipherModes) 641 +Clearing BreakPoint at 004D7FDB +De-Activate DECCipherModes.pas line 641 BreakPoint at:004D7FDB +Adding coverage:DECCipherModes.pas (DECCipherModes) 642 +Clearing BreakPoint at 004D7FE6 +De-Activate DECCipherModes.pas line 642 BreakPoint at:004D7FE6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 643 +Clearing BreakPoint at 004D7FFA +De-Activate DECCipherModes.pas line 643 BreakPoint at:004D7FFA +Adding coverage:DECCipherModes.pas (DECCipherModes) 644 +Clearing BreakPoint at 004D8014 +De-Activate DECCipherModes.pas line 644 BreakPoint at:004D8014 +Adding coverage:DECCipherModes.pas (DECCipherModes) 646 +Clearing BreakPoint at 004D801E +De-Activate DECCipherModes.pas line 646 BreakPoint at:004D801E +Adding coverage:DECCipherModes.pas (DECCipherModes) 647 +Clearing BreakPoint at 004D8039 +De-Activate DECCipherModes.pas line 647 BreakPoint at:004D8039 +Adding coverage:DECCipherModes.pas (DECCipherModes) 648 +Clearing BreakPoint at 004D8072 +De-Activate DECCipherModes.pas line 648 BreakPoint at:004D8072 +Adding coverage:DECCipherModes.pas (DECCipherModes) 649 +Clearing BreakPoint at 004D8095 +De-Activate DECCipherModes.pas line 649 BreakPoint at:004D8095 +Adding coverage:DECCipherModes.pas (DECCipherModes) 651 +Clearing BreakPoint at 004D809E +De-Activate DECCipherModes.pas line 651 BreakPoint at:004D809E +Adding coverage:DECCipherModes.pas (DECCipherModes) 517 +Clearing BreakPoint at 004D79CA +De-Activate DECCipherModes.pas line 517 BreakPoint at:004D79CA +Adding coverage:DECCipherModes.pas (DECCipherModes) 657 +Clearing BreakPoint at 004D80A8 +De-Activate DECCipherModes.pas line 657 BreakPoint at:004D80A8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 658 +Clearing BreakPoint at 004D80B8 +De-Activate DECCipherModes.pas line 658 BreakPoint at:004D80B8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 659 +Clearing BreakPoint at 004D80BF +De-Activate DECCipherModes.pas line 659 BreakPoint at:004D80BF +Adding coverage:DECCipherModes.pas (DECCipherModes) 673 +Clearing BreakPoint at 004D8180 +De-Activate DECCipherModes.pas line 673 BreakPoint at:004D8180 +Adding coverage:DECCipherModes.pas (DECCipherModes) 674 +Clearing BreakPoint at 004D8190 +De-Activate DECCipherModes.pas line 674 BreakPoint at:004D8190 +Adding coverage:DECCipherModes.pas (DECCipherModes) 675 +Clearing BreakPoint at 004D8195 +De-Activate DECCipherModes.pas line 675 BreakPoint at:004D8195 +Adding coverage:DECCipherModes.pas (DECCipherModes) 677 +Clearing BreakPoint at 004D819D +De-Activate DECCipherModes.pas line 677 BreakPoint at:004D819D +Adding coverage:DECCipherModes.pas (DECCipherModes) 678 +Clearing BreakPoint at 004D81B8 +De-Activate DECCipherModes.pas line 678 BreakPoint at:004D81B8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 679 +Clearing BreakPoint at 004D81F4 +De-Activate DECCipherModes.pas line 679 BreakPoint at:004D81F4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 675 +Clearing BreakPoint at 004D8204 +De-Activate DECCipherModes.pas line 675 BreakPoint at:004D8204 +Adding coverage:DECCipherModes.pas (DECCipherModes) 681 +Clearing BreakPoint at 004D820C +De-Activate DECCipherModes.pas line 681 BreakPoint at:004D820C +Adding coverage:DECCipherModes.pas (DECCipherModes) 682 +Clearing BreakPoint at 004D8226 +De-Activate DECCipherModes.pas line 682 BreakPoint at:004D8226 +Adding coverage:DECCipherModes.pas (DECCipherModes) 684 +Clearing BreakPoint at 004D822C +De-Activate DECCipherModes.pas line 684 BreakPoint at:004D822C +Adding coverage:DECCipherModes.pas (DECCipherModes) 685 +Clearing BreakPoint at 004D8247 +De-Activate DECCipherModes.pas line 685 BreakPoint at:004D8247 +Adding coverage:DECCipherModes.pas (DECCipherModes) 686 +Clearing BreakPoint at 004D8280 +De-Activate DECCipherModes.pas line 686 BreakPoint at:004D8280 +Adding coverage:DECCipherModes.pas (DECCipherModes) 688 +Clearing BreakPoint at 004D8289 +De-Activate DECCipherModes.pas line 688 BreakPoint at:004D8289 +Adding coverage:DECCipherModes.pas (DECCipherModes) 519 +Clearing BreakPoint at 004D79F2 +De-Activate DECCipherModes.pas line 519 BreakPoint at:004D79F2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 755 +Clearing BreakPoint at 004D85AC +De-Activate DECCipherModes.pas line 755 BreakPoint at:004D85AC +Adding coverage:DECCipherModes.pas (DECCipherModes) 756 +Clearing BreakPoint at 004D85BC +De-Activate DECCipherModes.pas line 756 BreakPoint at:004D85BC +Adding coverage:DECCipherModes.pas (DECCipherModes) 757 +Clearing BreakPoint at 004D85C3 +De-Activate DECCipherModes.pas line 757 BreakPoint at:004D85C3 +Adding coverage:DECCipherModes.pas (DECCipherModes) 772 +Clearing BreakPoint at 004D86C5 +De-Activate DECCipherModes.pas line 772 BreakPoint at:004D86C5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 773 +Clearing BreakPoint at 004D86D5 +De-Activate DECCipherModes.pas line 773 BreakPoint at:004D86D5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 774 +Clearing BreakPoint at 004D86DA +De-Activate DECCipherModes.pas line 774 BreakPoint at:004D86DA +Adding coverage:DECCipherModes.pas (DECCipherModes) 776 +Clearing BreakPoint at 004D86E6 +De-Activate DECCipherModes.pas line 776 BreakPoint at:004D86E6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 777 +Clearing BreakPoint at 004D8701 +De-Activate DECCipherModes.pas line 777 BreakPoint at:004D8701 +Adding coverage:DECCipherModes.pas (DECCipherModes) 778 +Clearing BreakPoint at 004D873D +De-Activate DECCipherModes.pas line 778 BreakPoint at:004D873D +Adding coverage:DECCipherModes.pas (DECCipherModes) 779 +Clearing BreakPoint at 004D876A +De-Activate DECCipherModes.pas line 779 BreakPoint at:004D876A +Adding coverage:DECCipherModes.pas (DECCipherModes) 774 +Clearing BreakPoint at 004D877A +De-Activate DECCipherModes.pas line 774 BreakPoint at:004D877A +Adding coverage:DECCipherModes.pas (DECCipherModes) 781 +Clearing BreakPoint at 004D8786 +De-Activate DECCipherModes.pas line 781 BreakPoint at:004D8786 +Adding coverage:DECCipherModes.pas (DECCipherModes) 782 +Clearing BreakPoint at 004D87A0 +De-Activate DECCipherModes.pas line 782 BreakPoint at:004D87A0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 784 +Clearing BreakPoint at 004D87AA +De-Activate DECCipherModes.pas line 784 BreakPoint at:004D87AA +Adding coverage:DECCipherModes.pas (DECCipherModes) 785 +Clearing BreakPoint at 004D87C5 +De-Activate DECCipherModes.pas line 785 BreakPoint at:004D87C5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 786 +Clearing BreakPoint at 004D87FE +De-Activate DECCipherModes.pas line 786 BreakPoint at:004D87FE +Adding coverage:DECCipherModes.pas (DECCipherModes) 787 +Clearing BreakPoint at 004D8828 +De-Activate DECCipherModes.pas line 787 BreakPoint at:004D8828 +Adding coverage:DECCipherModes.pas (DECCipherModes) 789 +Clearing BreakPoint at 004D8831 +De-Activate DECCipherModes.pas line 789 BreakPoint at:004D8831 +Adding coverage:DECCipherModes.pas (DECCipherModes) 912 +Clearing BreakPoint at 004D8CE1 +De-Activate DECCipherModes.pas line 912 BreakPoint at:004D8CE1 +Adding coverage:DECCiphers.pas (DECCiphers) 1056 +Clearing BreakPoint at 004DF4E4 +De-Activate DECCiphers.pas line 1056 BreakPoint at:004DF4E4 +Adding coverage:DECCiphers.pas (DECCiphers) 1057 +Clearing BreakPoint at 004DF4F3 +De-Activate DECCiphers.pas line 1057 BreakPoint at:004DF4F3 +Adding coverage:DECCiphers.pas (DECCiphers) 1058 +Clearing BreakPoint at 004DF4FB +De-Activate DECCiphers.pas line 1058 BreakPoint at:004DF4FB +Adding coverage:DECCiphers.pas (DECCiphers) 1059 +Clearing BreakPoint at 004DF509 +De-Activate DECCiphers.pas line 1059 BreakPoint at:004DF509 +Adding coverage:DECCipherModes.pas (DECCipherModes) 913 +Clearing BreakPoint at 004D8CF3 +De-Activate DECCipherModes.pas line 913 BreakPoint at:004D8CF3 +Adding coverage:DECCipherModes.pas (DECCipherModes) 898 +Clearing BreakPoint at 004D8C52 +De-Activate DECCipherModes.pas line 898 BreakPoint at:004D8C52 +Adding coverage:DECCipherModes.pas (DECCipherModes) 981 +Clearing BreakPoint at 004D8FA4 +De-Activate DECCipherModes.pas line 981 BreakPoint at:004D8FA4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 982 +Clearing BreakPoint at 004D8FB4 +De-Activate DECCipherModes.pas line 982 BreakPoint at:004D8FB4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 983 +Clearing BreakPoint at 004D8FB9 +De-Activate DECCipherModes.pas line 983 BreakPoint at:004D8FB9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 985 +Clearing BreakPoint at 004D8FC5 +De-Activate DECCipherModes.pas line 985 BreakPoint at:004D8FC5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 986 +Clearing BreakPoint at 004D8FE0 +De-Activate DECCipherModes.pas line 986 BreakPoint at:004D8FE0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 987 +Clearing BreakPoint at 004D9002 +De-Activate DECCipherModes.pas line 987 BreakPoint at:004D9002 +Adding coverage:DECCipherModes.pas (DECCipherModes) 988 +Clearing BreakPoint at 004D902F +De-Activate DECCipherModes.pas line 988 BreakPoint at:004D902F +Adding coverage:DECCipherModes.pas (DECCipherModes) 989 +Clearing BreakPoint at 004D9062 +De-Activate DECCipherModes.pas line 989 BreakPoint at:004D9062 +Adding coverage:DECCipherModes.pas (DECCipherModes) 983 +Clearing BreakPoint at 004D906D +De-Activate DECCipherModes.pas line 983 BreakPoint at:004D906D +Adding coverage:DECCipherModes.pas (DECCipherModes) 991 +Clearing BreakPoint at 004D9079 +De-Activate DECCipherModes.pas line 991 BreakPoint at:004D9079 +Adding coverage:DECCipherModes.pas (DECCipherModes) 992 +Clearing BreakPoint at 004D9080 +De-Activate DECCipherModes.pas line 992 BreakPoint at:004D9080 +Adding coverage:DECCipherModes.pas (DECCipherModes) 896 +Clearing BreakPoint at 004D8C2A +De-Activate DECCipherModes.pas line 896 BreakPoint at:004D8C2A +Adding coverage:DECCipherModes.pas (DECCipherModes) 964 +Clearing BreakPoint at 004D8EB0 +De-Activate DECCipherModes.pas line 964 BreakPoint at:004D8EB0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 965 +Clearing BreakPoint at 004D8EC0 +De-Activate DECCipherModes.pas line 965 BreakPoint at:004D8EC0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 966 +Clearing BreakPoint at 004D8EC5 +De-Activate DECCipherModes.pas line 966 BreakPoint at:004D8EC5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 968 +Clearing BreakPoint at 004D8ED1 +De-Activate DECCipherModes.pas line 968 BreakPoint at:004D8ED1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 969 +Clearing BreakPoint at 004D8EEC +De-Activate DECCipherModes.pas line 969 BreakPoint at:004D8EEC +Adding coverage:DECCipherModes.pas (DECCipherModes) 970 +Clearing BreakPoint at 004D8F0E +De-Activate DECCipherModes.pas line 970 BreakPoint at:004D8F0E +Adding coverage:DECCipherModes.pas (DECCipherModes) 971 +Clearing BreakPoint at 004D8F49 +De-Activate DECCipherModes.pas line 971 BreakPoint at:004D8F49 +Adding coverage:DECCipherModes.pas (DECCipherModes) 972 +Clearing BreakPoint at 004D8F7C +De-Activate DECCipherModes.pas line 972 BreakPoint at:004D8F7C +Adding coverage:DECCipherModes.pas (DECCipherModes) 966 +Clearing BreakPoint at 004D8F87 +De-Activate DECCipherModes.pas line 966 BreakPoint at:004D8F87 +Adding coverage:DECCipherModes.pas (DECCipherModes) 974 +Clearing BreakPoint at 004D8F93 +De-Activate DECCipherModes.pas line 974 BreakPoint at:004D8F93 +Adding coverage:DECCipherModes.pas (DECCipherModes) 975 +Clearing BreakPoint at 004D8F9A +De-Activate DECCipherModes.pas line 975 BreakPoint at:004D8F9A +Adding coverage:DECCipherModes.pas (DECCipherModes) 900 +Clearing BreakPoint at 004D8C7A +De-Activate DECCipherModes.pas line 900 BreakPoint at:004D8C7A +Adding coverage:DECCipherModes.pas (DECCipherModes) 897 +Clearing BreakPoint at 004D8C3E +De-Activate DECCipherModes.pas line 897 BreakPoint at:004D8C3E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1015 +Clearing BreakPoint at 004D917C +De-Activate DECCipherModes.pas line 1015 BreakPoint at:004D917C +Adding coverage:DECCipherModes.pas (DECCipherModes) 1016 +Clearing BreakPoint at 004D918C +De-Activate DECCipherModes.pas line 1016 BreakPoint at:004D918C +Adding coverage:DECCipherModes.pas (DECCipherModes) 1017 +Clearing BreakPoint at 004D9193 +De-Activate DECCipherModes.pas line 1017 BreakPoint at:004D9193 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1033 +Clearing BreakPoint at 004D9279 +De-Activate DECCipherModes.pas line 1033 BreakPoint at:004D9279 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1034 +Clearing BreakPoint at 004D9289 +De-Activate DECCipherModes.pas line 1034 BreakPoint at:004D9289 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1035 +Clearing BreakPoint at 004D928E +De-Activate DECCipherModes.pas line 1035 BreakPoint at:004D928E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1037 +Clearing BreakPoint at 004D929A +De-Activate DECCipherModes.pas line 1037 BreakPoint at:004D929A +Adding coverage:DECCipherModes.pas (DECCipherModes) 1038 +Clearing BreakPoint at 004D92A3 +De-Activate DECCipherModes.pas line 1038 BreakPoint at:004D92A3 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1040 +Clearing BreakPoint at 004D92AF +De-Activate DECCipherModes.pas line 1040 BreakPoint at:004D92AF +Adding coverage:DECCipherModes.pas (DECCipherModes) 1041 +Clearing BreakPoint at 004D92C7 +De-Activate DECCipherModes.pas line 1041 BreakPoint at:004D92C7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1042 +Clearing BreakPoint at 004D9303 +De-Activate DECCipherModes.pas line 1042 BreakPoint at:004D9303 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1043 +Clearing BreakPoint at 004D931B +De-Activate DECCipherModes.pas line 1043 BreakPoint at:004D931B +Adding coverage:DECCipherModes.pas (DECCipherModes) 1038 +Clearing BreakPoint at 004D932B +De-Activate DECCipherModes.pas line 1038 BreakPoint at:004D932B +Adding coverage:DECCipherModes.pas (DECCipherModes) 1045 +Clearing BreakPoint at 004D9337 +De-Activate DECCipherModes.pas line 1045 BreakPoint at:004D9337 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1046 +Clearing BreakPoint at 004D9346 +De-Activate DECCipherModes.pas line 1046 BreakPoint at:004D9346 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1056 +Clearing BreakPoint at 004D9404 +De-Activate DECCipherModes.pas line 1056 BreakPoint at:004D9404 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1057 +Clearing BreakPoint at 004D941E +De-Activate DECCipherModes.pas line 1057 BreakPoint at:004D941E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1059 +Clearing BreakPoint at 004D9428 +De-Activate DECCipherModes.pas line 1059 BreakPoint at:004D9428 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1060 +Clearing BreakPoint at 004D9443 +De-Activate DECCipherModes.pas line 1060 BreakPoint at:004D9443 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1061 +Clearing BreakPoint at 004D9466 +De-Activate DECCipherModes.pas line 1061 BreakPoint at:004D9466 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1062 +Clearing BreakPoint at 004D949F +De-Activate DECCipherModes.pas line 1062 BreakPoint at:004D949F +Adding coverage:DECCipherModes.pas (DECCipherModes) 1064 +Clearing BreakPoint at 004D94A8 +De-Activate DECCipherModes.pas line 1064 BreakPoint at:004D94A8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 899 +Clearing BreakPoint at 004D8C66 +De-Activate DECCipherModes.pas line 899 BreakPoint at:004D8C66 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1070 +Clearing BreakPoint at 004D94B0 +De-Activate DECCipherModes.pas line 1070 BreakPoint at:004D94B0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1071 +Clearing BreakPoint at 004D94C0 +De-Activate DECCipherModes.pas line 1071 BreakPoint at:004D94C0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1072 +Clearing BreakPoint at 004D94C7 +De-Activate DECCipherModes.pas line 1072 BreakPoint at:004D94C7 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1086 +Clearing BreakPoint at 004D9588 +De-Activate DECCipherModes.pas line 1086 BreakPoint at:004D9588 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1087 +Clearing BreakPoint at 004D9598 +De-Activate DECCipherModes.pas line 1087 BreakPoint at:004D9598 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1088 +Clearing BreakPoint at 004D959D +De-Activate DECCipherModes.pas line 1088 BreakPoint at:004D959D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1090 +Clearing BreakPoint at 004D95A5 +De-Activate DECCipherModes.pas line 1090 BreakPoint at:004D95A5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1091 +Clearing BreakPoint at 004D95C0 +De-Activate DECCipherModes.pas line 1091 BreakPoint at:004D95C0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1092 +Clearing BreakPoint at 004D95FC +De-Activate DECCipherModes.pas line 1092 BreakPoint at:004D95FC +Adding coverage:DECCipherModes.pas (DECCipherModes) 1088 +Clearing BreakPoint at 004D960C +De-Activate DECCipherModes.pas line 1088 BreakPoint at:004D960C +Adding coverage:DECCipherModes.pas (DECCipherModes) 1094 +Clearing BreakPoint at 004D9614 +De-Activate DECCipherModes.pas line 1094 BreakPoint at:004D9614 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1095 +Clearing BreakPoint at 004D962E +De-Activate DECCipherModes.pas line 1095 BreakPoint at:004D962E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1097 +Clearing BreakPoint at 004D9634 +De-Activate DECCipherModes.pas line 1097 BreakPoint at:004D9634 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1098 +Clearing BreakPoint at 004D964F +De-Activate DECCipherModes.pas line 1098 BreakPoint at:004D964F +Adding coverage:DECCipherModes.pas (DECCipherModes) 1099 +Clearing BreakPoint at 004D9688 +De-Activate DECCipherModes.pas line 1099 BreakPoint at:004D9688 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1101 +Clearing BreakPoint at 004D9691 +De-Activate DECCipherModes.pas line 1101 BreakPoint at:004D9691 +Adding coverage:DECCipherModes.pas (DECCipherModes) 901 +Clearing BreakPoint at 004D8C8E +De-Activate DECCipherModes.pas line 901 BreakPoint at:004D8C8E +Adding coverage:DECCipherModes.pas (DECCipherModes) 1134 +Clearing BreakPoint at 004D97C8 +De-Activate DECCipherModes.pas line 1134 BreakPoint at:004D97C8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1135 +Clearing BreakPoint at 004D97D8 +De-Activate DECCipherModes.pas line 1135 BreakPoint at:004D97D8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1136 +Clearing BreakPoint at 004D97DF +De-Activate DECCipherModes.pas line 1136 BreakPoint at:004D97DF +Adding coverage:DECCipherModes.pas (DECCipherModes) 1152 +Clearing BreakPoint at 004D98E1 +De-Activate DECCipherModes.pas line 1152 BreakPoint at:004D98E1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1153 +Clearing BreakPoint at 004D98F1 +De-Activate DECCipherModes.pas line 1153 BreakPoint at:004D98F1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1154 +Clearing BreakPoint at 004D98F6 +De-Activate DECCipherModes.pas line 1154 BreakPoint at:004D98F6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1156 +Clearing BreakPoint at 004D9902 +De-Activate DECCipherModes.pas line 1156 BreakPoint at:004D9902 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1157 +Clearing BreakPoint at 004D991D +De-Activate DECCipherModes.pas line 1157 BreakPoint at:004D991D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1158 +Clearing BreakPoint at 004D994A +De-Activate DECCipherModes.pas line 1158 BreakPoint at:004D994A +Adding coverage:DECCipherModes.pas (DECCipherModes) 1159 +Clearing BreakPoint at 004D9986 +De-Activate DECCipherModes.pas line 1159 BreakPoint at:004D9986 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1154 +Clearing BreakPoint at 004D9996 +De-Activate DECCipherModes.pas line 1154 BreakPoint at:004D9996 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1161 +Clearing BreakPoint at 004D99A2 +De-Activate DECCipherModes.pas line 1161 BreakPoint at:004D99A2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1162 +Clearing BreakPoint at 004D99BC +De-Activate DECCipherModes.pas line 1162 BreakPoint at:004D99BC +Adding coverage:DECCipherModes.pas (DECCipherModes) 1164 +Clearing BreakPoint at 004D99C6 +De-Activate DECCipherModes.pas line 1164 BreakPoint at:004D99C6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1165 +Clearing BreakPoint at 004D99E1 +De-Activate DECCipherModes.pas line 1165 BreakPoint at:004D99E1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1166 +Clearing BreakPoint at 004D9A0B +De-Activate DECCipherModes.pas line 1166 BreakPoint at:004D9A0B +Adding coverage:DECCipherModes.pas (DECCipherModes) 1167 +Clearing BreakPoint at 004D9A44 +De-Activate DECCipherModes.pas line 1167 BreakPoint at:004D9A44 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1169 +Clearing BreakPoint at 004D9A4D +De-Activate DECCipherModes.pas line 1169 BreakPoint at:004D9A4D +Adding coverage:DECCipherModes.pas (DECCipherModes) 1195 +Clearing BreakPoint at 004D9B6A +De-Activate DECCipherModes.pas line 1195 BreakPoint at:004D9B6A +Adding coverage:DECCipherModes.pas (DECCipherModes) 1197 +Clearing BreakPoint at 004D9B76 +De-Activate DECCipherModes.pas line 1197 BreakPoint at:004D9B76 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1198 +Clearing BreakPoint at 004D9BAE +De-Activate DECCipherModes.pas line 1198 BreakPoint at:004D9BAE +Adding coverage:DECCipherModes.pas (DECCipherModes) 1199 +Clearing BreakPoint at 004D9BE6 +De-Activate DECCipherModes.pas line 1199 BreakPoint at:004D9BE6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1200 +Clearing BreakPoint at 004D9BFE +De-Activate DECCipherModes.pas line 1200 BreakPoint at:004D9BFE +Adding coverage:DECCipherModes.pas (DECCipherModes) 1195 +Clearing BreakPoint at 004D9C0E +De-Activate DECCipherModes.pas line 1195 BreakPoint at:004D9C0E +Adding coverage:DECCipherBase.pas (DECCipherBase) 1072 +Clearing BreakPoint at 004D527C +De-Activate DECCipherBase.pas line 1072 BreakPoint at:004D527C +Adding coverage:DECCipherBase.pas (DECCipherBase) 1073 +Clearing BreakPoint at 004D5285 +De-Activate DECCipherBase.pas line 1073 BreakPoint at:004D5285 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1074 +Clearing BreakPoint at 004D5293 +De-Activate DECCipherBase.pas line 1074 BreakPoint at:004D5293 +Adding coverage:DECCipherModes.pas (DECCipherModes) 707 +Clearing BreakPoint at 004D8380 +De-Activate DECCipherModes.pas line 707 BreakPoint at:004D8380 +Adding coverage:DECCipherModes.pas (DECCipherModes) 708 +Clearing BreakPoint at 004D838C +De-Activate DECCipherModes.pas line 708 BreakPoint at:004D838C +Adding coverage:DECCipherModes.pas (DECCipherModes) 712 +Clearing BreakPoint at 004D83A6 +De-Activate DECCipherModes.pas line 712 BreakPoint at:004D83A6 +Adding coverage:DECCipherModes.pas (DECCipherModes) 713 +Clearing BreakPoint at 004D83BE +De-Activate DECCipherModes.pas line 713 BreakPoint at:004D83BE +Adding coverage:DECCipherModes.pas (DECCipherModes) 716 +Clearing BreakPoint at 004D83D9 +De-Activate DECCipherModes.pas line 716 BreakPoint at:004D83D9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 479 +Clearing BreakPoint at 004D7790 +De-Activate DECCipherModes.pas line 479 BreakPoint at:004D7790 +Adding coverage:DECCipherModes.pas (DECCipherModes) 480 +Clearing BreakPoint at 004D779C +De-Activate DECCipherModes.pas line 480 BreakPoint at:004D779C +Adding coverage:DECCipherModes.pas (DECCipherModes) 483 +Clearing BreakPoint at 004D77C0 +De-Activate DECCipherModes.pas line 483 BreakPoint at:004D77C0 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D77E8 +Exact line:DECCipherModes line 484 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005120E2 +Exact line:TestDECCipherModes line 699 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511E91 +After line:TestDECCipherModes line 656 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 691 +Clearing BreakPoint at 004D8290 +De-Activate DECCipherModes.pas line 691 BreakPoint at:004D8290 +Adding coverage:DECCipherModes.pas (DECCipherModes) 692 +Clearing BreakPoint at 004D829C +De-Activate DECCipherModes.pas line 692 BreakPoint at:004D829C +Adding coverage:DECCipherModes.pas (DECCipherModes) 695 +Clearing BreakPoint at 004D82C1 +De-Activate DECCipherModes.pas line 695 BreakPoint at:004D82C1 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D82E9 +Exact line:DECCipherModes line 696 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005127B6 +Exact line:TestDECCipherModes line 762 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511F05 +After line:TestDECCipherModes line 668 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 496 +Clearing BreakPoint at 004D7878 +De-Activate DECCipherModes.pas line 496 BreakPoint at:004D7878 +Adding coverage:DECCipherModes.pas (DECCipherModes) 497 +Clearing BreakPoint at 004D7884 +De-Activate DECCipherModes.pas line 497 BreakPoint at:004D7884 +Adding coverage:DECCipherModes.pas (DECCipherModes) 500 +Clearing BreakPoint at 004D78A6 +De-Activate DECCipherModes.pas line 500 BreakPoint at:004D78A6 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D78CE +Exact line:DECCipherModes line 501 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511F97 +Exact line:TestDECCipherModes line 682 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511DA9 +After line:TestDECCipherModes line 632 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 719 +Clearing BreakPoint at 004D83E0 +De-Activate DECCipherModes.pas line 719 BreakPoint at:004D83E0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 720 +Clearing BreakPoint at 004D83E9 +De-Activate DECCipherModes.pas line 720 BreakPoint at:004D83E9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 723 +Clearing BreakPoint at 004D840B +De-Activate DECCipherModes.pas line 723 BreakPoint at:004D840B +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8433 +Exact line:DECCipherModes line 724 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511FB1 +After line:TestDECCipherModes line 689 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511E1D +After line:TestDECCipherModes line 644 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 727 +Clearing BreakPoint at 004D8454 +De-Activate DECCipherModes.pas line 727 BreakPoint at:004D8454 +Adding coverage:DECCipherModes.pas (DECCipherModes) 728 +Clearing BreakPoint at 004D8460 +De-Activate DECCipherModes.pas line 728 BreakPoint at:004D8460 +Adding coverage:DECCipherModes.pas (DECCipherModes) 731 +Clearing BreakPoint at 004D8485 +De-Activate DECCipherModes.pas line 731 BreakPoint at:004D8485 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D84AD +Exact line:DECCipherModes line 732 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511F56 +Exact line:TestDECCipherModes line 677 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511D35 +After line:TestDECCipherModes line 620 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 487 +Clearing BreakPoint at 004D7804 +De-Activate DECCipherModes.pas line 487 BreakPoint at:004D7804 +Adding coverage:DECCipherModes.pas (DECCipherModes) 488 +Clearing BreakPoint at 004D7810 +De-Activate DECCipherModes.pas line 488 BreakPoint at:004D7810 +Adding coverage:DECCipherModes.pas (DECCipherModes) 491 +Clearing BreakPoint at 004D7834 +De-Activate DECCipherModes.pas line 491 BreakPoint at:004D7834 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D785C +Exact line:DECCipherModes line 492 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00511458 +Exact line:TestDECCipherModes line 522 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005128FD +After line:TestDECCipherModes line 791 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 699 +Clearing BreakPoint at 004D8308 +De-Activate DECCipherModes.pas line 699 BreakPoint at:004D8308 +Adding coverage:DECCipherModes.pas (DECCipherModes) 700 +Clearing BreakPoint at 004D8314 +De-Activate DECCipherModes.pas line 700 BreakPoint at:004D8314 +Adding coverage:DECCipherModes.pas (DECCipherModes) 703 +Clearing BreakPoint at 004D8339 +De-Activate DECCipherModes.pas line 703 BreakPoint at:004D8339 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8361 +Exact line:DECCipherModes line 704 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0051131A +Exact line:TestDECCipherModes line 510 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512971 +After line:TestDECCipherModes line 802 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 738 +Clearing BreakPoint at 004D84F1 +De-Activate DECCipherModes.pas line 738 BreakPoint at:004D84F1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 742 +Clearing BreakPoint at 004D8516 +De-Activate DECCipherModes.pas line 742 BreakPoint at:004D8516 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D855C +After line:DECCipherModes line 747 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4C8A +Exact line:DECCipherBase line 910 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005129AC +Exact line:TestDECCipherModes line 809 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512820 +After line:TestDECCipherModes line 770 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D855C +After line:DECCipherModes line 747 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D4C8A +Exact line:DECCipherBase line 910 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005129AC +Exact line:TestDECCipherModes line 809 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512888 +After line:TestDECCipherModes line 780 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 552 +Clearing BreakPoint at 004D7B44 +De-Activate DECCipherModes.pas line 552 BreakPoint at:004D7B44 +Adding coverage:DECCipherModes.pas (DECCipherModes) 553 +Clearing BreakPoint at 004D7B4B +De-Activate DECCipherModes.pas line 553 BreakPoint at:004D7B4B +Adding coverage:DECCipherModes.pas (DECCipherModes) 471 +Clearing BreakPoint at 004D76F8 +De-Activate DECCipherModes.pas line 471 BreakPoint at:004D76F8 +Adding coverage:DECCipherModes.pas (DECCipherModes) 472 +Clearing BreakPoint at 004D7717 +De-Activate DECCipherModes.pas line 472 BreakPoint at:004D7717 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D776B +Exact line:DECCipherModes line 476 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D7B56 +Exact line:DECCipherModes line 557 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D795B +After line:DECCipherModes line 509 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512562 +Exact line:TestDECCipherModes line 741 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00513210 +After line:TestDECCipherModes line 957 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D776B +Exact line:DECCipherModes line 476 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D7B56 +Exact line:DECCipherModes line 557 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D795B +After line:DECCipherModes line 509 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512702 +Exact line:TestDECCipherModes line 755 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005131A8 +After line:TestDECCipherModes line 947 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECCipherModes.pas (DECCipherModes) 934 +Clearing BreakPoint at 004D8DE0 +De-Activate DECCipherModes.pas line 934 BreakPoint at:004D8DE0 +Adding coverage:DECCipherModes.pas (DECCipherModes) 935 +Clearing BreakPoint at 004D8DE7 +De-Activate DECCipherModes.pas line 935 BreakPoint at:004D8DE7 +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D776B +Exact line:DECCipherModes line 476 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8DF2 +Exact line:DECCipherModes line 939 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8BF7 +After line:DECCipherModes line 891 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:005123C2 +Exact line:TestDECCipherModes line 727 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00513020 +After line:TestDECCipherModes line 892 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D776B +Exact line:DECCipherModes line 476 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8DF2 +Exact line:DECCipherModes line 939 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D8BF7 +After line:DECCipherModes line 891 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512222 +Exact line:TestDECCipherModes line 713 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00512FB8 +After line:TestDECCipherModes line 882 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Adding coverage:DECBaseClass.pas (DECBaseClass) 349 +Clearing BreakPoint at 00454A6B +De-Activate DECBaseClass.pas line 349 BreakPoint at:00454A6B +Adding coverage:DECBaseClass.pas (DECBaseClass) 350 +Clearing BreakPoint at 00454A71 +De-Activate DECBaseClass.pas line 350 BreakPoint at:00454A71 +Adding coverage:DECBaseClass.pas (DECBaseClass) 369 +Clearing BreakPoint at 00454B18 +De-Activate DECBaseClass.pas line 369 BreakPoint at:00454B18 +Adding coverage:DECBaseClass.pas (DECBaseClass) 370 +Clearing BreakPoint at 00454B38 +De-Activate DECBaseClass.pas line 370 BreakPoint at:00454B38 +Adding coverage:DECBaseClass.pas (DECBaseClass) 371 +Clearing BreakPoint at 00454B42 +De-Activate DECBaseClass.pas line 371 BreakPoint at:00454B42 +Adding coverage:DECBaseClass.pas (DECBaseClass) 372 +Clearing BreakPoint at 00454B50 +De-Activate DECBaseClass.pas line 372 BreakPoint at:00454B50 +Adding coverage:DECBaseClass.pas (DECBaseClass) 373 +Clearing BreakPoint at 00454B58 +De-Activate DECBaseClass.pas line 373 BreakPoint at:00454B58 +Adding coverage:DECBaseClass.pas (DECBaseClass) 375 +Clearing BreakPoint at 00454B60 +De-Activate DECBaseClass.pas line 375 BreakPoint at:00454B60 +Adding coverage:DECBaseClass.pas (DECBaseClass) 375 +Clearing BreakPoint at 00454BA4 +De-Activate DECBaseClass.pas line 375 BreakPoint at:00454BA4 +Adding coverage:DECBaseClass.pas (DECBaseClass) 376 +Clearing BreakPoint at 00454B8B +De-Activate DECBaseClass.pas line 376 BreakPoint at:00454B8B +Adding coverage:DECBaseClass.pas (DECBaseClass) 376 +Clearing BreakPoint at 00454BBD +De-Activate DECBaseClass.pas line 376 BreakPoint at:00454BBD +Adding coverage:DECBaseClass.pas (DECBaseClass) 379 +Clearing BreakPoint at 00454BE9 +De-Activate DECBaseClass.pas line 379 BreakPoint at:00454BE9 +Adding coverage:DECBaseClass.pas (DECBaseClass) 381 +Clearing BreakPoint at 00454BFB +De-Activate DECBaseClass.pas line 381 BreakPoint at:00454BFB +Adding coverage:DECBaseClass.pas (DECBaseClass) 287 +Clearing BreakPoint at 00454738 +De-Activate DECBaseClass.pas line 287 BreakPoint at:00454738 +Adding coverage:DECBaseClass.pas (DECBaseClass) 288 +Clearing BreakPoint at 00454744 +De-Activate DECBaseClass.pas line 288 BreakPoint at:00454744 +Adding coverage:DECBaseClass.pas (DECBaseClass) 289 +Clearing BreakPoint at 00454756 +De-Activate DECBaseClass.pas line 289 BreakPoint at:00454756 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 698 +Clearing BreakPoint at 004DA810 +De-Activate DECCipherFormats.pas line 698 BreakPoint at:004DA810 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 699 +Clearing BreakPoint at 004DA820 +De-Activate DECCipherFormats.pas line 699 BreakPoint at:004DA820 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 700 +Clearing BreakPoint at 004DA851 +De-Activate DECCipherFormats.pas line 700 BreakPoint at:004DA851 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 701 +Clearing BreakPoint at 004DA870 +De-Activate DECCipherFormats.pas line 701 BreakPoint at:004DA870 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 705 +Clearing BreakPoint at 004DA8DB +De-Activate DECCipherFormats.pas line 705 BreakPoint at:004DA8DB +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 703 +Clearing BreakPoint at 004DA8C2 +De-Activate DECCipherFormats.pas line 703 BreakPoint at:004DA8C2 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 708 +Clearing BreakPoint at 004DA8E0 +De-Activate DECCipherFormats.pas line 708 BreakPoint at:004DA8E0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 709 +Clearing BreakPoint at 004DA8F0 +De-Activate DECCipherFormats.pas line 709 BreakPoint at:004DA8F0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 711 +Clearing BreakPoint at 004DA901 +De-Activate DECCipherFormats.pas line 711 BreakPoint at:004DA901 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 713 +Clearing BreakPoint at 004DA924 +De-Activate DECCipherFormats.pas line 713 BreakPoint at:004DA924 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 716 +Clearing BreakPoint at 004DA95E +De-Activate DECCipherFormats.pas line 716 BreakPoint at:004DA95E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 721 +Clearing BreakPoint at 004DA9C9 +De-Activate DECCipherFormats.pas line 721 BreakPoint at:004DA9C9 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 719 +Clearing BreakPoint at 004DA9B0 +De-Activate DECCipherFormats.pas line 719 BreakPoint at:004DA9B0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 796 +Clearing BreakPoint at 004DAD44 +De-Activate DECCipherFormats.pas line 796 BreakPoint at:004DAD44 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 797 +Clearing BreakPoint at 004DAD53 +De-Activate DECCipherFormats.pas line 797 BreakPoint at:004DAD53 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 732 +Clearing BreakPoint at 004DA9D0 +De-Activate DECCipherFormats.pas line 732 BreakPoint at:004DA9D0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 733 +Clearing BreakPoint at 004DA9F6 +De-Activate DECCipherFormats.pas line 733 BreakPoint at:004DA9F6 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 734 +Clearing BreakPoint at 004DAA04 +De-Activate DECCipherFormats.pas line 734 BreakPoint at:004DAA04 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 737 +Clearing BreakPoint at 004DAA2E +De-Activate DECCipherFormats.pas line 737 BreakPoint at:004DAA2E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 738 +Clearing BreakPoint at 004DAA47 +De-Activate DECCipherFormats.pas line 738 BreakPoint at:004DAA47 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 740 +Clearing BreakPoint at 004DAA53 +De-Activate DECCipherFormats.pas line 740 BreakPoint at:004DAA53 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 742 +Clearing BreakPoint at 004DAA6B +De-Activate DECCipherFormats.pas line 742 BreakPoint at:004DAA6B +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 743 +Clearing BreakPoint at 004DAA79 +De-Activate DECCipherFormats.pas line 743 BreakPoint at:004DAA79 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 744 +Clearing BreakPoint at 004DAA7F +De-Activate DECCipherFormats.pas line 744 BreakPoint at:004DAA7F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 746 +Clearing BreakPoint at 004DAA93 +De-Activate DECCipherFormats.pas line 746 BreakPoint at:004DAA93 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 748 +Clearing BreakPoint at 004DAAA8 +De-Activate DECCipherFormats.pas line 748 BreakPoint at:004DAAA8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 749 +Clearing BreakPoint at 004DAAC1 +De-Activate DECCipherFormats.pas line 749 BreakPoint at:004DAAC1 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 750 +Clearing BreakPoint at 004DAAC7 +De-Activate DECCipherFormats.pas line 750 BreakPoint at:004DAAC7 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 753 +Clearing BreakPoint at 004DAAFD +De-Activate DECCipherFormats.pas line 753 BreakPoint at:004DAAFD +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 756 +Clearing BreakPoint at 004DAB2B +De-Activate DECCipherFormats.pas line 756 BreakPoint at:004DAB2B +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 758 +Clearing BreakPoint at 004DAB45 +De-Activate DECCipherFormats.pas line 758 BreakPoint at:004DAB45 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 759 +Clearing BreakPoint at 004DAB56 +De-Activate DECCipherFormats.pas line 759 BreakPoint at:004DAB56 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 762 +Clearing BreakPoint at 004DAC8A +De-Activate DECCipherFormats.pas line 762 BreakPoint at:004DAC8A +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 764 +Clearing BreakPoint at 004DAB99 +De-Activate DECCipherFormats.pas line 764 BreakPoint at:004DAB99 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 765 +Clearing BreakPoint at 004DAB9F +De-Activate DECCipherFormats.pas line 765 BreakPoint at:004DAB9F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 766 +Clearing BreakPoint at 004DABB1 +De-Activate DECCipherFormats.pas line 766 BreakPoint at:004DABB1 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 767 +Clearing BreakPoint at 004DABC8 +De-Activate DECCipherFormats.pas line 767 BreakPoint at:004DABC8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 770 +Clearing BreakPoint at 004DABE8 +De-Activate DECCipherFormats.pas line 770 BreakPoint at:004DABE8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 771 +Clearing BreakPoint at 004DAC1D +De-Activate DECCipherFormats.pas line 771 BreakPoint at:004DAC1D +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 772 +Clearing BreakPoint at 004DAC3D +De-Activate DECCipherFormats.pas line 772 BreakPoint at:004DAC3D +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 773 +Clearing BreakPoint at 004DAC4E +De-Activate DECCipherFormats.pas line 773 BreakPoint at:004DAC4E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 775 +Clearing BreakPoint at 004DAC5F +De-Activate DECCipherFormats.pas line 775 BreakPoint at:004DAC5F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 776 +Clearing BreakPoint at 004DAC65 +De-Activate DECCipherFormats.pas line 776 BreakPoint at:004DAC65 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 779 +Clearing BreakPoint at 004DACAF +De-Activate DECCipherFormats.pas line 779 BreakPoint at:004DACAF +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 780 +Clearing BreakPoint at 004DACB7 +De-Activate DECCipherFormats.pas line 780 BreakPoint at:004DACB7 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 782 +Clearing BreakPoint at 004DACC8 +De-Activate DECCipherFormats.pas line 782 BreakPoint at:004DACC8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 783 +Clearing BreakPoint at 004DACCE +De-Activate DECCipherFormats.pas line 783 BreakPoint at:004DACCE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 792 +Clearing BreakPoint at 004DAD13 +De-Activate DECCipherFormats.pas line 792 BreakPoint at:004DAD13 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 799 +Clearing BreakPoint at 004DAD74 +De-Activate DECCipherFormats.pas line 799 BreakPoint at:004DAD74 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 787 +Clearing BreakPoint at 004DACEE +De-Activate DECCipherFormats.pas line 787 BreakPoint at:004DACEE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 803 +Clearing BreakPoint at 004DAD7C +De-Activate DECCipherFormats.pas line 803 BreakPoint at:004DAD7C +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 804 +Clearing BreakPoint at 004DAD8B +De-Activate DECCipherFormats.pas line 804 BreakPoint at:004DAD8B +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 806 +Clearing BreakPoint at 004DADAC +De-Activate DECCipherFormats.pas line 806 BreakPoint at:004DADAC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 845 +Clearing BreakPoint at 004DAFCC +De-Activate DECCipherFormats.pas line 845 BreakPoint at:004DAFCC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 846 +Clearing BreakPoint at 004DAFEF +De-Activate DECCipherFormats.pas line 846 BreakPoint at:004DAFEF +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 849 +Clearing BreakPoint at 004DB010 +De-Activate DECCipherFormats.pas line 849 BreakPoint at:004DB010 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 850 +Clearing BreakPoint at 004DB035 +De-Activate DECCipherFormats.pas line 850 BreakPoint at:004DB035 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 851 +Clearing BreakPoint at 004DB04F +De-Activate DECCipherFormats.pas line 851 BreakPoint at:004DB04F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 858 +Clearing BreakPoint at 004DB08F +De-Activate DECCipherFormats.pas line 858 BreakPoint at:004DB08F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 862 +Clearing BreakPoint at 004DB0C5 +De-Activate DECCipherFormats.pas line 862 BreakPoint at:004DB0C5 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 861 +Clearing BreakPoint at 004DB0B7 +De-Activate DECCipherFormats.pas line 861 BreakPoint at:004DB0B7 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 883 +Clearing BreakPoint at 004DB1DF +De-Activate DECCipherFormats.pas line 883 BreakPoint at:004DB1DF +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1009 +Clearing BreakPoint at 004DB600 +De-Activate DECCipherFormats.pas line 1009 BreakPoint at:004DB600 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1010 +Clearing BreakPoint at 004DB626 +De-Activate DECCipherFormats.pas line 1010 BreakPoint at:004DB626 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1013 +Clearing BreakPoint at 004DB647 +De-Activate DECCipherFormats.pas line 1013 BreakPoint at:004DB647 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1014 +Clearing BreakPoint at 004DB66C +De-Activate DECCipherFormats.pas line 1014 BreakPoint at:004DB66C +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1015 +Clearing BreakPoint at 004DB686 +De-Activate DECCipherFormats.pas line 1015 BreakPoint at:004DB686 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1022 +Clearing BreakPoint at 004DB6C4 +De-Activate DECCipherFormats.pas line 1022 BreakPoint at:004DB6C4 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1026 +Clearing BreakPoint at 004DB6EC +De-Activate DECCipherFormats.pas line 1026 BreakPoint at:004DB6EC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1025 +Clearing BreakPoint at 004DB6E4 +De-Activate DECCipherFormats.pas line 1025 BreakPoint at:004DB6E4 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1034 +Clearing BreakPoint at 004DB728 +De-Activate DECCipherFormats.pas line 1034 BreakPoint at:004DB728 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1035 +Clearing BreakPoint at 004DB74E +De-Activate DECCipherFormats.pas line 1035 BreakPoint at:004DB74E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1038 +Clearing BreakPoint at 004DB76F +De-Activate DECCipherFormats.pas line 1038 BreakPoint at:004DB76F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1039 +Clearing BreakPoint at 004DB794 +De-Activate DECCipherFormats.pas line 1039 BreakPoint at:004DB794 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1040 +Clearing BreakPoint at 004DB7AE +De-Activate DECCipherFormats.pas line 1040 BreakPoint at:004DB7AE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1047 +Clearing BreakPoint at 004DB7EC +De-Activate DECCipherFormats.pas line 1047 BreakPoint at:004DB7EC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1048 +Clearing BreakPoint at 004DB7FF +De-Activate DECCipherFormats.pas line 1048 BreakPoint at:004DB7FF +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1050 +Clearing BreakPoint at 004DB823 +De-Activate DECCipherFormats.pas line 1050 BreakPoint at:004DB823 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1057 +Clearing BreakPoint at 004DB889 +De-Activate DECCipherFormats.pas line 1057 BreakPoint at:004DB889 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1056 +Clearing BreakPoint at 004DB881 +De-Activate DECCipherFormats.pas line 1056 BreakPoint at:004DB881 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 890 +Clearing BreakPoint at 004DB21C +De-Activate DECCipherFormats.pas line 890 BreakPoint at:004DB21C +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 891 +Clearing BreakPoint at 004DB242 +De-Activate DECCipherFormats.pas line 891 BreakPoint at:004DB242 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 893 +Clearing BreakPoint at 004DB263 +De-Activate DECCipherFormats.pas line 893 BreakPoint at:004DB263 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 895 +Clearing BreakPoint at 004DB283 +De-Activate DECCipherFormats.pas line 895 BreakPoint at:004DB283 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 896 +Clearing BreakPoint at 004DB2A0 +De-Activate DECCipherFormats.pas line 896 BreakPoint at:004DB2A0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 897 +Clearing BreakPoint at 004DB2B1 +De-Activate DECCipherFormats.pas line 897 BreakPoint at:004DB2B1 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 901 +Clearing BreakPoint at 004DB2FC +De-Activate DECCipherFormats.pas line 901 BreakPoint at:004DB2FC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 900 +Clearing BreakPoint at 004DB2EE +De-Activate DECCipherFormats.pas line 900 BreakPoint at:004DB2EE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 917 +Clearing BreakPoint at 004DB40A +De-Activate DECCipherFormats.pas line 917 BreakPoint at:004DB40A +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1148 +Clearing BreakPoint at 004DBC18 +De-Activate DECCipherFormats.pas line 1148 BreakPoint at:004DBC18 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1149 +Clearing BreakPoint at 004DBC41 +De-Activate DECCipherFormats.pas line 1149 BreakPoint at:004DBC41 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1151 +Clearing BreakPoint at 004DBC62 +De-Activate DECCipherFormats.pas line 1151 BreakPoint at:004DBC62 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1153 +Clearing BreakPoint at 004DBC82 +De-Activate DECCipherFormats.pas line 1153 BreakPoint at:004DBC82 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1154 +Clearing BreakPoint at 004DBC9F +De-Activate DECCipherFormats.pas line 1154 BreakPoint at:004DBC9F +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1155 +Clearing BreakPoint at 004DBCB9 +De-Activate DECCipherFormats.pas line 1155 BreakPoint at:004DBCB9 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1156 +Clearing BreakPoint at 004DBCF0 +De-Activate DECCipherFormats.pas line 1156 BreakPoint at:004DBCF0 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1160 +Clearing BreakPoint at 004DBD05 +De-Activate DECCipherFormats.pas line 1160 BreakPoint at:004DBD05 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1159 +Clearing BreakPoint at 004DBCFD +De-Activate DECCipherFormats.pas line 1159 BreakPoint at:004DBCFD +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1121 +Clearing BreakPoint at 004DBA74 +De-Activate DECCipherFormats.pas line 1121 BreakPoint at:004DBA74 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1122 +Clearing BreakPoint at 004DBA9D +De-Activate DECCipherFormats.pas line 1122 BreakPoint at:004DBA9D +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1124 +Clearing BreakPoint at 004DBABE +De-Activate DECCipherFormats.pas line 1124 BreakPoint at:004DBABE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1126 +Clearing BreakPoint at 004DBADE +De-Activate DECCipherFormats.pas line 1126 BreakPoint at:004DBADE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1127 +Clearing BreakPoint at 004DBAFB +De-Activate DECCipherFormats.pas line 1127 BreakPoint at:004DBAFB +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1128 +Clearing BreakPoint at 004DBB15 +De-Activate DECCipherFormats.pas line 1128 BreakPoint at:004DBB15 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1130 +Clearing BreakPoint at 004DBB4C +De-Activate DECCipherFormats.pas line 1130 BreakPoint at:004DBB4C +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1133 +Clearing BreakPoint at 004DBB70 +De-Activate DECCipherFormats.pas line 1133 BreakPoint at:004DBB70 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1140 +Clearing BreakPoint at 004DBBD6 +De-Activate DECCipherFormats.pas line 1140 BreakPoint at:004DBBD6 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1139 +Clearing BreakPoint at 004DBBCE +De-Activate DECCipherFormats.pas line 1139 BreakPoint at:004DBBCE +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 961 +Clearing BreakPoint at 004DB454 +De-Activate DECCipherFormats.pas line 961 BreakPoint at:004DB454 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 962 +Clearing BreakPoint at 004DB477 +De-Activate DECCipherFormats.pas line 962 BreakPoint at:004DB477 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 964 +Clearing BreakPoint at 004DB49A +De-Activate DECCipherFormats.pas line 964 BreakPoint at:004DB49A +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 965 +Clearing BreakPoint at 004DB4C1 +De-Activate DECCipherFormats.pas line 965 BreakPoint at:004DB4C1 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 966 +Clearing BreakPoint at 004DB4DB +De-Activate DECCipherFormats.pas line 966 BreakPoint at:004DB4DB +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 968 +Clearing BreakPoint at 004DB521 +De-Activate DECCipherFormats.pas line 968 BreakPoint at:004DB521 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 972 +Clearing BreakPoint at 004DB557 +De-Activate DECCipherFormats.pas line 972 BreakPoint at:004DB557 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 971 +Clearing BreakPoint at 004DB549 +De-Activate DECCipherFormats.pas line 971 BreakPoint at:004DB549 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 976 +Clearing BreakPoint at 004DB584 +De-Activate DECCipherFormats.pas line 976 BreakPoint at:004DB584 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 977 +Clearing BreakPoint at 004DB5AA +De-Activate DECCipherFormats.pas line 977 BreakPoint at:004DB5AA +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 978 +Clearing BreakPoint at 004DB5D2 +De-Activate DECCipherFormats.pas line 978 BreakPoint at:004DB5D2 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1064 +Clearing BreakPoint at 004DB8BC +De-Activate DECCipherFormats.pas line 1064 BreakPoint at:004DB8BC +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1065 +Clearing BreakPoint at 004DB8E5 +De-Activate DECCipherFormats.pas line 1065 BreakPoint at:004DB8E5 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1067 +Clearing BreakPoint at 004DB908 +De-Activate DECCipherFormats.pas line 1067 BreakPoint at:004DB908 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1069 +Clearing BreakPoint at 004DB933 +De-Activate DECCipherFormats.pas line 1069 BreakPoint at:004DB933 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1070 +Clearing BreakPoint at 004DB950 +De-Activate DECCipherFormats.pas line 1070 BreakPoint at:004DB950 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1071 +Clearing BreakPoint at 004DB96A +De-Activate DECCipherFormats.pas line 1071 BreakPoint at:004DB96A +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1075 +Clearing BreakPoint at 004DB9B3 +De-Activate DECCipherFormats.pas line 1075 BreakPoint at:004DB9B3 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1074 +Clearing BreakPoint at 004DB9A5 +De-Activate DECCipherFormats.pas line 1074 BreakPoint at:004DB9A5 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1110 +Clearing BreakPoint at 004DB9F8 +De-Activate DECCipherFormats.pas line 1110 BreakPoint at:004DB9F8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1111 +Clearing BreakPoint at 004DBA1E +De-Activate DECCipherFormats.pas line 1111 BreakPoint at:004DBA1E +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 1112 +Clearing BreakPoint at 004DBA46 +De-Activate DECCipherFormats.pas line 1112 BreakPoint at:004DBA46 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1156 +Clearing BreakPoint at 00479498 +De-Activate DECHashAuthentication.pas line 1156 BreakPoint at:00479498 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1157 +Clearing BreakPoint at 004794BE +De-Activate DECHashAuthentication.pas line 1157 BreakPoint at:004794BE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1158 +Clearing BreakPoint at 004794C8 +De-Activate DECHashAuthentication.pas line 1158 BreakPoint at:004794C8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1159 +Clearing BreakPoint at 004794D6 +De-Activate DECHashAuthentication.pas line 1159 BreakPoint at:004794D6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1160 +Clearing BreakPoint at 004794EA +De-Activate DECHashAuthentication.pas line 1160 BreakPoint at:004794EA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1161 +Clearing BreakPoint at 004794FE +De-Activate DECHashAuthentication.pas line 1161 BreakPoint at:004794FE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1163 +Clearing BreakPoint at 0047951B +De-Activate DECHashAuthentication.pas line 1163 BreakPoint at:0047951B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1164 +Clearing BreakPoint at 00479535 +De-Activate DECHashAuthentication.pas line 1164 BreakPoint at:00479535 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1166 +Clearing BreakPoint at 0047954F +De-Activate DECHashAuthentication.pas line 1166 BreakPoint at:0047954F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1168 +Clearing BreakPoint at 00479554 +De-Activate DECHashAuthentication.pas line 1168 BreakPoint at:00479554 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1174 +Clearing BreakPoint at 00479575 +De-Activate DECHashAuthentication.pas line 1174 BreakPoint at:00479575 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1176 +Clearing BreakPoint at 004795FD +De-Activate DECHashAuthentication.pas line 1176 BreakPoint at:004795FD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1183 +Clearing BreakPoint at 00479613 +De-Activate DECHashAuthentication.pas line 1183 BreakPoint at:00479613 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1185 +Clearing BreakPoint at 0047961F +De-Activate DECHashAuthentication.pas line 1185 BreakPoint at:0047961F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1186 +Clearing BreakPoint at 00479651 +De-Activate DECHashAuthentication.pas line 1186 BreakPoint at:00479651 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1187 +Clearing BreakPoint at 00479683 +De-Activate DECHashAuthentication.pas line 1187 BreakPoint at:00479683 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1183 +Clearing BreakPoint at 0047968E +De-Activate DECHashAuthentication.pas line 1183 BreakPoint at:0047968E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1190 +Clearing BreakPoint at 004796D9 +De-Activate DECHashAuthentication.pas line 1190 BreakPoint at:004796D9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1192 +Clearing BreakPoint at 00479698 +De-Activate DECHashAuthentication.pas line 1192 BreakPoint at:00479698 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1193 +Clearing BreakPoint at 004796B3 +De-Activate DECHashAuthentication.pas line 1193 BreakPoint at:004796B3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1194 +Clearing BreakPoint at 004796CE +De-Activate DECHashAuthentication.pas line 1194 BreakPoint at:004796CE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1197 +Clearing BreakPoint at 004796EB +De-Activate DECHashAuthentication.pas line 1197 BreakPoint at:004796EB +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1199 +Clearing BreakPoint at 004796F3 +De-Activate DECHashAuthentication.pas line 1199 BreakPoint at:004796F3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1200 +Clearing BreakPoint at 0047970B +De-Activate DECHashAuthentication.pas line 1200 BreakPoint at:0047970B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1201 +Clearing BreakPoint at 00479723 +De-Activate DECHashAuthentication.pas line 1201 BreakPoint at:00479723 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1197 +Clearing BreakPoint at 0047972E +De-Activate DECHashAuthentication.pas line 1197 BreakPoint at:0047972E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1204 +Clearing BreakPoint at 00479736 +De-Activate DECHashAuthentication.pas line 1204 BreakPoint at:00479736 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1205 +Clearing BreakPoint at 0047973E +De-Activate DECHashAuthentication.pas line 1205 BreakPoint at:0047973E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1206 +Clearing BreakPoint at 0047975E +De-Activate DECHashAuthentication.pas line 1206 BreakPoint at:0047975E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1207 +Clearing BreakPoint at 0047977B +De-Activate DECHashAuthentication.pas line 1207 BreakPoint at:0047977B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1208 +Clearing BreakPoint at 004797B2 +De-Activate DECHashAuthentication.pas line 1208 BreakPoint at:004797B2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1209 +Clearing BreakPoint at 004797BA +De-Activate DECHashAuthentication.pas line 1209 BreakPoint at:004797BA +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1211 +Clearing BreakPoint at 004797C5 +De-Activate DECHashAuthentication.pas line 1211 BreakPoint at:004797C5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1212 +Clearing BreakPoint at 004797CD +De-Activate DECHashAuthentication.pas line 1212 BreakPoint at:004797CD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1213 +Clearing BreakPoint at 004797ED +De-Activate DECHashAuthentication.pas line 1213 BreakPoint at:004797ED +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1214 +Clearing BreakPoint at 0047980F +De-Activate DECHashAuthentication.pas line 1214 BreakPoint at:0047980F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1216 +Clearing BreakPoint at 00479817 +De-Activate DECHashAuthentication.pas line 1216 BreakPoint at:00479817 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1218 +Clearing BreakPoint at 0047982F +De-Activate DECHashAuthentication.pas line 1218 BreakPoint at:0047982F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1220 +Clearing BreakPoint at 00479841 +De-Activate DECHashAuthentication.pas line 1220 BreakPoint at:00479841 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1144 +Clearing BreakPoint at 004793C8 +De-Activate DECHashAuthentication.pas line 1144 BreakPoint at:004793C8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1145 +Clearing BreakPoint at 004793EE +De-Activate DECHashAuthentication.pas line 1145 BreakPoint at:004793EE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1146 +Clearing BreakPoint at 00479418 +De-Activate DECHashAuthentication.pas line 1146 BreakPoint at:00479418 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1170 +Clearing BreakPoint at 0047955C +De-Activate DECHashAuthentication.pas line 1170 BreakPoint at:0047955C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1171 +Clearing BreakPoint at 0047956A +De-Activate DECHashAuthentication.pas line 1171 BreakPoint at:0047956A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1178 +Clearing BreakPoint at 00479588 +De-Activate DECHashAuthentication.pas line 1178 BreakPoint at:00479588 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1179 +Clearing BreakPoint at 004795BD +De-Activate DECHashAuthentication.pas line 1179 BreakPoint at:004795BD +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1180 +Clearing BreakPoint at 004795F2 +De-Activate DECHashAuthentication.pas line 1180 BreakPoint at:004795F2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1233 +Clearing BreakPoint at 00479874 +De-Activate DECHashAuthentication.pas line 1233 BreakPoint at:00479874 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1234 +Clearing BreakPoint at 004798A6 +De-Activate DECHashAuthentication.pas line 1234 BreakPoint at:004798A6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1235 +Clearing BreakPoint at 004798B0 +De-Activate DECHashAuthentication.pas line 1235 BreakPoint at:004798B0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1237 +Clearing BreakPoint at 004798BE +De-Activate DECHashAuthentication.pas line 1237 BreakPoint at:004798BE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1238 +Clearing BreakPoint at 004798D2 +De-Activate DECHashAuthentication.pas line 1238 BreakPoint at:004798D2 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1239 +Clearing BreakPoint at 004798EC +De-Activate DECHashAuthentication.pas line 1239 BreakPoint at:004798EC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1240 +Clearing BreakPoint at 00479924 +De-Activate DECHashAuthentication.pas line 1240 BreakPoint at:00479924 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1241 +Clearing BreakPoint at 00479938 +De-Activate DECHashAuthentication.pas line 1241 BreakPoint at:00479938 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1242 +Clearing BreakPoint at 00479955 +De-Activate DECHashAuthentication.pas line 1242 BreakPoint at:00479955 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1243 +Clearing BreakPoint at 00479972 +De-Activate DECHashAuthentication.pas line 1243 BreakPoint at:00479972 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1244 +Clearing BreakPoint at 00479983 +De-Activate DECHashAuthentication.pas line 1244 BreakPoint at:00479983 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1245 +Clearing BreakPoint at 004799A7 +De-Activate DECHashAuthentication.pas line 1245 BreakPoint at:004799A7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1249 +Clearing BreakPoint at 004799C1 +De-Activate DECHashAuthentication.pas line 1249 BreakPoint at:004799C1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1250 +Clearing BreakPoint at 004799C6 +De-Activate DECHashAuthentication.pas line 1250 BreakPoint at:004799C6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1256 +Clearing BreakPoint at 004799E4 +De-Activate DECHashAuthentication.pas line 1256 BreakPoint at:004799E4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1258 +Clearing BreakPoint at 004799F5 +De-Activate DECHashAuthentication.pas line 1258 BreakPoint at:004799F5 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1259 +Clearing BreakPoint at 00479A0F +De-Activate DECHashAuthentication.pas line 1259 BreakPoint at:00479A0F +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1260 +Clearing BreakPoint at 00479A29 +De-Activate DECHashAuthentication.pas line 1260 BreakPoint at:00479A29 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1262 +Clearing BreakPoint at 00479A31 +De-Activate DECHashAuthentication.pas line 1262 BreakPoint at:00479A31 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1263 +Clearing BreakPoint at 00479A61 +De-Activate DECHashAuthentication.pas line 1263 BreakPoint at:00479A61 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1264 +Clearing BreakPoint at 00479A91 +De-Activate DECHashAuthentication.pas line 1264 BreakPoint at:00479A91 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1260 +Clearing BreakPoint at 00479A9C +De-Activate DECHashAuthentication.pas line 1260 BreakPoint at:00479A9C +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1266 +Clearing BreakPoint at 00479AA4 +De-Activate DECHashAuthentication.pas line 1266 BreakPoint at:00479AA4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1268 +Clearing BreakPoint at 00479AAC +De-Activate DECHashAuthentication.pas line 1268 BreakPoint at:00479AAC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1269 +Clearing BreakPoint at 00479AC4 +De-Activate DECHashAuthentication.pas line 1269 BreakPoint at:00479AC4 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1270 +Clearing BreakPoint at 00479ADC +De-Activate DECHashAuthentication.pas line 1270 BreakPoint at:00479ADC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1266 +Clearing BreakPoint at 00479AE7 +De-Activate DECHashAuthentication.pas line 1266 BreakPoint at:00479AE7 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1274 +Clearing BreakPoint at 00479AEF +De-Activate DECHashAuthentication.pas line 1274 BreakPoint at:00479AEF +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1276 +Clearing BreakPoint at 00479B04 +De-Activate DECHashAuthentication.pas line 1276 BreakPoint at:00479B04 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1277 +Clearing BreakPoint at 00479B2B +De-Activate DECHashAuthentication.pas line 1277 BreakPoint at:00479B2B +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1278 +Clearing BreakPoint at 00479B52 +De-Activate DECHashAuthentication.pas line 1278 BreakPoint at:00479B52 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1279 +Clearing BreakPoint at 00479B79 +De-Activate DECHashAuthentication.pas line 1279 BreakPoint at:00479B79 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1280 +Clearing BreakPoint at 00479BA0 +De-Activate DECHashAuthentication.pas line 1280 BreakPoint at:00479BA0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1281 +Clearing BreakPoint at 00479BC0 +De-Activate DECHashAuthentication.pas line 1281 BreakPoint at:00479BC0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1283 +Clearing BreakPoint at 00479BD1 +De-Activate DECHashAuthentication.pas line 1283 BreakPoint at:00479BD1 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1285 +Clearing BreakPoint at 00479BE6 +De-Activate DECHashAuthentication.pas line 1285 BreakPoint at:00479BE6 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1286 +Clearing BreakPoint at 00479BEE +De-Activate DECHashAuthentication.pas line 1286 BreakPoint at:00479BEE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1287 +Clearing BreakPoint at 00479C0E +De-Activate DECHashAuthentication.pas line 1287 BreakPoint at:00479C0E +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1288 +Clearing BreakPoint at 00479C45 +De-Activate DECHashAuthentication.pas line 1288 BreakPoint at:00479C45 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1289 +Clearing BreakPoint at 00479C4D +De-Activate DECHashAuthentication.pas line 1289 BreakPoint at:00479C4D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1291 +Clearing BreakPoint at 00479C58 +De-Activate DECHashAuthentication.pas line 1291 BreakPoint at:00479C58 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1292 +Clearing BreakPoint at 00479C60 +De-Activate DECHashAuthentication.pas line 1292 BreakPoint at:00479C60 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1293 +Clearing BreakPoint at 00479C80 +De-Activate DECHashAuthentication.pas line 1293 BreakPoint at:00479C80 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1294 +Clearing BreakPoint at 00479CA0 +De-Activate DECHashAuthentication.pas line 1294 BreakPoint at:00479CA0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1295 +Clearing BreakPoint at 00479CA8 +De-Activate DECHashAuthentication.pas line 1295 BreakPoint at:00479CA8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1297 +Clearing BreakPoint at 00479CB3 +De-Activate DECHashAuthentication.pas line 1297 BreakPoint at:00479CB3 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1298 +Clearing BreakPoint at 00479CB8 +De-Activate DECHashAuthentication.pas line 1298 BreakPoint at:00479CB8 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1300 +Clearing BreakPoint at 00479CC0 +De-Activate DECHashAuthentication.pas line 1300 BreakPoint at:00479CC0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1301 +Clearing BreakPoint at 00479CEE +De-Activate DECHashAuthentication.pas line 1301 BreakPoint at:00479CEE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1298 +Clearing BreakPoint at 00479CF9 +De-Activate DECHashAuthentication.pas line 1298 BreakPoint at:00479CF9 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1303 +Clearing BreakPoint at 00479D01 +De-Activate DECHashAuthentication.pas line 1303 BreakPoint at:00479D01 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1308 +Clearing BreakPoint at 00479D4A +De-Activate DECHashAuthentication.pas line 1308 BreakPoint at:00479D4A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1283 +Clearing BreakPoint at 00479D4D +De-Activate DECHashAuthentication.pas line 1283 BreakPoint at:00479D4D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1311 +Clearing BreakPoint at 00479D56 +De-Activate DECHashAuthentication.pas line 1311 BreakPoint at:00479D56 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1315 +Clearing BreakPoint at 00479D6A +De-Activate DECHashAuthentication.pas line 1315 BreakPoint at:00479D6A +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1274 +Clearing BreakPoint at 00479D6D +De-Activate DECHashAuthentication.pas line 1274 BreakPoint at:00479D6D +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1317 +Clearing BreakPoint at 00479D83 +De-Activate DECHashAuthentication.pas line 1317 BreakPoint at:00479D83 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1321 +Clearing BreakPoint at 00479D95 +De-Activate DECHashAuthentication.pas line 1321 BreakPoint at:00479D95 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1322 +Clearing BreakPoint at 00479DAF +De-Activate DECHashAuthentication.pas line 1322 BreakPoint at:00479DAF +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1252 +Clearing BreakPoint at 004799CE +De-Activate DECHashAuthentication.pas line 1252 BreakPoint at:004799CE +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1253 +Clearing BreakPoint at 004799DC +De-Activate DECHashAuthentication.pas line 1253 BreakPoint at:004799DC +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1325 +Clearing BreakPoint at 00479DE0 +De-Activate DECHashAuthentication.pas line 1325 BreakPoint at:00479DE0 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1326 +Clearing BreakPoint at 00479E06 +De-Activate DECHashAuthentication.pas line 1326 BreakPoint at:00479E06 +Adding coverage:DECHashAuthentication.pas (DECHashAuthentication) 1327 +Clearing BreakPoint at 00479E38 +De-Activate DECHashAuthentication.pas line 1327 BreakPoint at:00479E38 +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Adding coverage:DECCipherModes.pas (DECCipherModes) 739 +Clearing BreakPoint at 004D8502 +De-Activate DECCipherModes.pas line 739 BreakPoint at:004D8502 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1127 +Clearing BreakPoint at 004D97A9 +De-Activate DECCipherModes.pas line 1127 BreakPoint at:004D97A9 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 493 +Clearing BreakPoint at 004D60A4 +De-Activate DECCipherModesGCM.pas line 493 BreakPoint at:004D60A4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 494 +Clearing BreakPoint at 004D60C9 +De-Activate DECCipherModesGCM.pas line 494 BreakPoint at:004D60C9 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 497 +Clearing BreakPoint at 004D60E4 +De-Activate DECCipherModesGCM.pas line 497 BreakPoint at:004D60E4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 500 +Clearing BreakPoint at 004D6156 +De-Activate DECCipherModesGCM.pas line 500 BreakPoint at:004D6156 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 502 +Clearing BreakPoint at 004D616B +De-Activate DECCipherModesGCM.pas line 502 BreakPoint at:004D616B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 503 +Clearing BreakPoint at 004D617C +De-Activate DECCipherModesGCM.pas line 503 BreakPoint at:004D617C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 505 +Clearing BreakPoint at 004D618D +De-Activate DECCipherModesGCM.pas line 505 BreakPoint at:004D618D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 506 +Clearing BreakPoint at 004D619D +De-Activate DECCipherModesGCM.pas line 506 BreakPoint at:004D619D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 509 +Clearing BreakPoint at 004D61B4 +De-Activate DECCipherModesGCM.pas line 509 BreakPoint at:004D61B4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 510 +Clearing BreakPoint at 004D61E6 +De-Activate DECCipherModesGCM.pas line 510 BreakPoint at:004D61E6 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 411 +Clearing BreakPoint at 004D5CF4 +De-Activate DECCipherModesGCM.pas line 411 BreakPoint at:004D5CF4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 412 +Clearing BreakPoint at 004D5D03 +De-Activate DECCipherModesGCM.pas line 412 BreakPoint at:004D5D03 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 413 +Clearing BreakPoint at 004D5D0D +De-Activate DECCipherModesGCM.pas line 413 BreakPoint at:004D5D0D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 415 +Clearing BreakPoint at 004D5D12 +De-Activate DECCipherModesGCM.pas line 415 BreakPoint at:004D5D12 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 416 +Clearing BreakPoint at 004D5D16 +De-Activate DECCipherModesGCM.pas line 416 BreakPoint at:004D5D16 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 418 +Clearing BreakPoint at 004D5D1B +De-Activate DECCipherModesGCM.pas line 418 BreakPoint at:004D5D1B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 420 +Clearing BreakPoint at 004D5D55 +De-Activate DECCipherModesGCM.pas line 420 BreakPoint at:004D5D55 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 421 +Clearing BreakPoint at 004D5D5B +De-Activate DECCipherModesGCM.pas line 421 BreakPoint at:004D5D5B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 452 +Clearing BreakPoint at 004D5F80 +De-Activate DECCipherModesGCM.pas line 452 BreakPoint at:004D5F80 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 453 +Clearing BreakPoint at 004D5F8C +De-Activate DECCipherModesGCM.pas line 453 BreakPoint at:004D5F8C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 454 +Clearing BreakPoint at 004D5F93 +De-Activate DECCipherModesGCM.pas line 454 BreakPoint at:004D5F93 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 453 +Clearing BreakPoint at 004D5FF6 +De-Activate DECCipherModesGCM.pas line 453 BreakPoint at:004D5FF6 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 456 +Clearing BreakPoint at 004D5FFC +De-Activate DECCipherModesGCM.pas line 456 BreakPoint at:004D5FFC +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 457 +Clearing BreakPoint at 004D6015 +De-Activate DECCipherModesGCM.pas line 457 BreakPoint at:004D6015 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 428 +Clearing BreakPoint at 004D5D77 +De-Activate DECCipherModesGCM.pas line 428 BreakPoint at:004D5D77 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 429 +Clearing BreakPoint at 004D5D8D +De-Activate DECCipherModesGCM.pas line 429 BreakPoint at:004D5D8D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 416 +Clearing BreakPoint at 004D5D90 +De-Activate DECCipherModesGCM.pas line 416 BreakPoint at:004D5D90 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 424 +Clearing BreakPoint at 004D5D68 +De-Activate DECCipherModesGCM.pas line 424 BreakPoint at:004D5D68 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 425 +Clearing BreakPoint at 004D5D73 +De-Activate DECCipherModesGCM.pas line 425 BreakPoint at:004D5D73 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 430 +Clearing BreakPoint at 004D5D96 +De-Activate DECCipherModesGCM.pas line 430 BreakPoint at:004D5D96 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 413 +Clearing BreakPoint at 004D5D99 +De-Activate DECCipherModesGCM.pas line 413 BreakPoint at:004D5D99 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 432 +Clearing BreakPoint at 004D5DA3 +De-Activate DECCipherModesGCM.pas line 432 BreakPoint at:004D5DA3 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 434 +Clearing BreakPoint at 004D5DA8 +De-Activate DECCipherModesGCM.pas line 434 BreakPoint at:004D5DA8 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 436 +Clearing BreakPoint at 004D5DAF +De-Activate DECCipherModesGCM.pas line 436 BreakPoint at:004D5DAF +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 438 +Clearing BreakPoint at 004D5DBC +De-Activate DECCipherModesGCM.pas line 438 BreakPoint at:004D5DBC +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 439 +Clearing BreakPoint at 004D5DDB +De-Activate DECCipherModesGCM.pas line 439 BreakPoint at:004D5DDB +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 438 +Clearing BreakPoint at 004D5F1B +De-Activate DECCipherModesGCM.pas line 438 BreakPoint at:004D5F1B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 440 +Clearing BreakPoint at 004D5F24 +De-Activate DECCipherModesGCM.pas line 440 BreakPoint at:004D5F24 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 436 +Clearing BreakPoint at 004D5F32 +De-Activate DECCipherModesGCM.pas line 436 BreakPoint at:004D5F32 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 443 +Clearing BreakPoint at 004D5F3F +De-Activate DECCipherModesGCM.pas line 443 BreakPoint at:004D5F3F +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 444 +Clearing BreakPoint at 004D5F6A +De-Activate DECCipherModesGCM.pas line 444 BreakPoint at:004D5F6A +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 432 +Clearing BreakPoint at 004D5F6D +De-Activate DECCipherModesGCM.pas line 432 BreakPoint at:004D5F6D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 445 +Clearing BreakPoint at 004D5F77 +De-Activate DECCipherModesGCM.pas line 445 BreakPoint at:004D5F77 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 512 +Clearing BreakPoint at 004D61F7 +De-Activate DECCipherModesGCM.pas line 512 BreakPoint at:004D61F7 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 514 +Clearing BreakPoint at 004D6214 +De-Activate DECCipherModesGCM.pas line 514 BreakPoint at:004D6214 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 515 +Clearing BreakPoint at 004D622B +De-Activate DECCipherModesGCM.pas line 515 BreakPoint at:004D622B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 516 +Clearing BreakPoint at 004D6254 +De-Activate DECCipherModesGCM.pas line 516 BreakPoint at:004D6254 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 517 +Clearing BreakPoint at 004D625F +De-Activate DECCipherModesGCM.pas line 517 BreakPoint at:004D625F +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 518 +Clearing BreakPoint at 004D6263 +De-Activate DECCipherModesGCM.pas line 518 BreakPoint at:004D6263 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 523 +Clearing BreakPoint at 004D628C +De-Activate DECCipherModesGCM.pas line 523 BreakPoint at:004D628C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 524 +Clearing BreakPoint at 004D62AF +De-Activate DECCipherModesGCM.pas line 524 BreakPoint at:004D62AF +Adding coverage:DECCipherModes.pas (DECCipherModes) 498 +Clearing BreakPoint at 004D788D +De-Activate DECCipherModes.pas line 498 BreakPoint at:004D788D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 460 +Clearing BreakPoint at 004D601C +De-Activate DECCipherModesGCM.pas line 460 BreakPoint at:004D601C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 461 +Clearing BreakPoint at 004D6028 +De-Activate DECCipherModesGCM.pas line 461 BreakPoint at:004D6028 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 462 +Clearing BreakPoint at 004D6037 +De-Activate DECCipherModesGCM.pas line 462 BreakPoint at:004D6037 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 463 +Clearing BreakPoint at 004D605C +De-Activate DECCipherModesGCM.pas line 463 BreakPoint at:004D605C +Adding coverage:DECCipherModes.pas (DECCipherModes) 501 +Clearing BreakPoint at 004D78CE +De-Activate DECCipherModes.pas line 501 BreakPoint at:004D78CE +Adding coverage:DECCipherModes.pas (DECCipherModes) 481 +Clearing BreakPoint at 004D77A5 +De-Activate DECCipherModes.pas line 481 BreakPoint at:004D77A5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 484 +Clearing BreakPoint at 004D77E8 +De-Activate DECCipherModes.pas line 484 BreakPoint at:004D77E8 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 704 +Clearing BreakPoint at 004DA8CB +De-Activate DECCipherFormats.pas line 704 BreakPoint at:004DA8CB +Adding coverage:DECCipherModes.pas (DECCipherModes) 845 +Clearing BreakPoint at 004D8AD4 +De-Activate DECCipherModes.pas line 845 BreakPoint at:004D8AD4 +Adding coverage:DECCipherModes.pas (DECCipherModes) 846 +Clearing BreakPoint at 004D8AFA +De-Activate DECCipherModes.pas line 846 BreakPoint at:004D8AFA +Adding coverage:DECCipherModes.pas (DECCipherModes) 853 +Clearing BreakPoint at 004D8B24 +De-Activate DECCipherModes.pas line 853 BreakPoint at:004D8B24 +Adding coverage:DECCipherModes.pas (DECCipherModes) 854 +Clearing BreakPoint at 004D8B32 +De-Activate DECCipherModes.pas line 854 BreakPoint at:004D8B32 +Adding coverage:DECCipherModes.pas (DECCipherModes) 857 +Clearing BreakPoint at 004D8B40 +De-Activate DECCipherModes.pas line 857 BreakPoint at:004D8B40 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 616 +Clearing BreakPoint at 004D6E14 +De-Activate DECCipherModesGCM.pas line 616 BreakPoint at:004D6E14 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 617 +Clearing BreakPoint at 004D6E46 +De-Activate DECCipherModesGCM.pas line 617 BreakPoint at:004D6E46 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 618 +Clearing BreakPoint at 004D6E54 +De-Activate DECCipherModesGCM.pas line 618 BreakPoint at:004D6E54 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 622 +Clearing BreakPoint at 004D6E7A +De-Activate DECCipherModesGCM.pas line 622 BreakPoint at:004D6E7A +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 623 +Clearing BreakPoint at 004D6F49 +De-Activate DECCipherModesGCM.pas line 623 BreakPoint at:004D6F49 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 634 +Clearing BreakPoint at 004D6F5D +De-Activate DECCipherModesGCM.pas line 634 BreakPoint at:004D6F5D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 640 +Clearing BreakPoint at 004D7060 +De-Activate DECCipherModesGCM.pas line 640 BreakPoint at:004D7060 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 566 +Clearing BreakPoint at 004D67EC +De-Activate DECCipherModesGCM.pas line 566 BreakPoint at:004D67EC +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 567 +Clearing BreakPoint at 004D681B +De-Activate DECCipherModesGCM.pas line 567 BreakPoint at:004D681B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 568 +Clearing BreakPoint at 004D6828 +De-Activate DECCipherModesGCM.pas line 568 BreakPoint at:004D6828 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 536 +Clearing BreakPoint at 004D63A4 +De-Activate DECCipherModesGCM.pas line 536 BreakPoint at:004D63A4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 537 +Clearing BreakPoint at 004D63C8 +De-Activate DECCipherModesGCM.pas line 537 BreakPoint at:004D63C8 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 538 +Clearing BreakPoint at 004D63FB +De-Activate DECCipherModesGCM.pas line 538 BreakPoint at:004D63FB +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 564 +Clearing BreakPoint at 004D67BF +De-Activate DECCipherModesGCM.pas line 564 BreakPoint at:004D67BF +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 569 +Clearing BreakPoint at 004D6832 +De-Activate DECCipherModesGCM.pas line 569 BreakPoint at:004D6832 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 570 +Clearing BreakPoint at 004D683C +De-Activate DECCipherModesGCM.pas line 570 BreakPoint at:004D683C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 572 +Clearing BreakPoint at 004D698B +De-Activate DECCipherModesGCM.pas line 572 BreakPoint at:004D698B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 573 +Clearing BreakPoint at 004D6A8C +De-Activate DECCipherModesGCM.pas line 573 BreakPoint at:004D6A8C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 641 +Clearing BreakPoint at 004D70BB +De-Activate DECCipherModesGCM.pas line 641 BreakPoint at:004D70BB +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 642 +Clearing BreakPoint at 004D70E0 +De-Activate DECCipherModesGCM.pas line 642 BreakPoint at:004D70E0 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 643 +Clearing BreakPoint at 004D7115 +De-Activate DECCipherModesGCM.pas line 643 BreakPoint at:004D7115 +Adding coverage:DECCipherModes.pas (DECCipherModes) 858 +Clearing BreakPoint at 004D8B55 +De-Activate DECCipherModes.pas line 858 BreakPoint at:004D8B55 +Adding coverage:DECCipherModes.pas (DECCipherModes) 1116 +Clearing BreakPoint at 004D9701 +De-Activate DECCipherModes.pas line 1116 BreakPoint at:004D9701 +Adding coverage:DECCipherModes.pas (DECCipherModes) 693 +Clearing BreakPoint at 004D82A5 +De-Activate DECCipherModes.pas line 693 BreakPoint at:004D82A5 +Adding coverage:DECCipherModes.pas (DECCipherModes) 696 +Clearing BreakPoint at 004D82E9 +De-Activate DECCipherModes.pas line 696 BreakPoint at:004D82E9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 729 +Clearing BreakPoint at 004D8469 +De-Activate DECCipherModes.pas line 729 BreakPoint at:004D8469 +Adding coverage:DECCipherModes.pas (DECCipherModes) 732 +Clearing BreakPoint at 004D84AD +De-Activate DECCipherModes.pas line 732 BreakPoint at:004D84AD +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 498 +Clearing BreakPoint at 004D610D +De-Activate DECCipherModesGCM.pas line 498 BreakPoint at:004D610D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 540 +Clearing BreakPoint at 004D640B +De-Activate DECCipherModesGCM.pas line 540 BreakPoint at:004D640B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 541 +Clearing BreakPoint at 004D641C +De-Activate DECCipherModesGCM.pas line 541 BreakPoint at:004D641C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 542 +Clearing BreakPoint at 004D6431 +De-Activate DECCipherModesGCM.pas line 542 BreakPoint at:004D6431 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 546 +Clearing BreakPoint at 004D6441 +De-Activate DECCipherModesGCM.pas line 546 BreakPoint at:004D6441 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 547 +Clearing BreakPoint at 004D65D2 +De-Activate DECCipherModesGCM.pas line 547 BreakPoint at:004D65D2 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 549 +Clearing BreakPoint at 004D6454 +De-Activate DECCipherModesGCM.pas line 549 BreakPoint at:004D6454 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 550 +Clearing BreakPoint at 004D65B1 +De-Activate DECCipherModesGCM.pas line 550 BreakPoint at:004D65B1 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 552 +Clearing BreakPoint at 004D65C3 +De-Activate DECCipherModesGCM.pas line 552 BreakPoint at:004D65C3 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 556 +Clearing BreakPoint at 004D65F3 +De-Activate DECCipherModesGCM.pas line 556 BreakPoint at:004D65F3 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 557 +Clearing BreakPoint at 004D6608 +De-Activate DECCipherModesGCM.pas line 557 BreakPoint at:004D6608 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 559 +Clearing BreakPoint at 004D6618 +De-Activate DECCipherModesGCM.pas line 559 BreakPoint at:004D6618 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 560 +Clearing BreakPoint at 004D6628 +De-Activate DECCipherModesGCM.pas line 560 BreakPoint at:004D6628 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 561 +Clearing BreakPoint at 004D666E +De-Activate DECCipherModesGCM.pas line 561 BreakPoint at:004D666E +Adding coverage:DECCipherModes.pas (DECCipherModes) 520 +Clearing BreakPoint at 004D7A06 +De-Activate DECCipherModes.pas line 520 BreakPoint at:004D7A06 +Adding coverage:DECCipherModes.pas (DECCipherModes) 848 +Clearing BreakPoint at 004D8B00 +De-Activate DECCipherModes.pas line 848 BreakPoint at:004D8B00 +Adding coverage:DECCipherModes.pas (DECCipherModes) 849 +Clearing BreakPoint at 004D8B11 +De-Activate DECCipherModes.pas line 849 BreakPoint at:004D8B11 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 625 +Clearing BreakPoint at 004D6E8D +De-Activate DECCipherModesGCM.pas line 625 BreakPoint at:004D6E8D +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 469 +Clearing BreakPoint at 004D6060 +De-Activate DECCipherModesGCM.pas line 469 BreakPoint at:004D6060 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 472 +Clearing BreakPoint at 004D606C +De-Activate DECCipherModesGCM.pas line 472 BreakPoint at:004D606C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 473 +Clearing BreakPoint at 004D6072 +De-Activate DECCipherModesGCM.pas line 473 BreakPoint at:004D6072 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 486 +Clearing BreakPoint at 004D609F +De-Activate DECCipherModesGCM.pas line 486 BreakPoint at:004D609F +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 627 +Clearing BreakPoint at 004D6E9E +De-Activate DECCipherModesGCM.pas line 627 BreakPoint at:004D6E9E +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 646 +Clearing BreakPoint at 004D7148 +De-Activate DECCipherModesGCM.pas line 646 BreakPoint at:004D7148 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 647 +Clearing BreakPoint at 004D7160 +De-Activate DECCipherModesGCM.pas line 647 BreakPoint at:004D7160 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 648 +Clearing BreakPoint at 004D7177 +De-Activate DECCipherModesGCM.pas line 648 BreakPoint at:004D7177 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 629 +Clearing BreakPoint at 004D6F2B +De-Activate DECCipherModesGCM.pas line 629 BreakPoint at:004D6F2B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 631 +Clearing BreakPoint at 004D6F3A +De-Activate DECCipherModesGCM.pas line 631 BreakPoint at:004D6F3A +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 636 +Clearing BreakPoint at 004D6F74 +De-Activate DECCipherModesGCM.pas line 636 BreakPoint at:004D6F74 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 637 +Clearing BreakPoint at 004D6F85 +De-Activate DECCipherModesGCM.pas line 637 BreakPoint at:004D6F85 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 521 +Clearing BreakPoint at 004D626B +De-Activate DECCipherModesGCM.pas line 521 BreakPoint at:004D626B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 475 +Clearing BreakPoint at 004D607B +De-Activate DECCipherModesGCM.pas line 475 BreakPoint at:004D607B +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 477 +Clearing BreakPoint at 004D6081 +De-Activate DECCipherModesGCM.pas line 477 BreakPoint at:004D6081 +Wait For Debug Event timed-out +Adding coverage:DECCipherModes.pas (DECCipherModes) 489 +Clearing BreakPoint at 004D7819 +De-Activate DECCipherModes.pas line 489 BreakPoint at:004D7819 +Adding coverage:DECCipherModes.pas (DECCipherModes) 492 +Clearing BreakPoint at 004D785C +De-Activate DECCipherModes.pas line 492 BreakPoint at:004D785C +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 720 +Clearing BreakPoint at 004DA9B9 +De-Activate DECCipherFormats.pas line 720 BreakPoint at:004DA9B9 +Adding coverage:DECCipherModes.pas (DECCipherModes) 945 +Clearing BreakPoint at 004D8DFC +De-Activate DECCipherModes.pas line 945 BreakPoint at:004D8DFC +Adding coverage:DECCipherModes.pas (DECCipherModes) 946 +Clearing BreakPoint at 004D8E22 +De-Activate DECCipherModes.pas line 946 BreakPoint at:004D8E22 +Adding coverage:DECCipherModes.pas (DECCipherModes) 953 +Clearing BreakPoint at 004D8E4C +De-Activate DECCipherModes.pas line 953 BreakPoint at:004D8E4C +Adding coverage:DECCipherModes.pas (DECCipherModes) 954 +Clearing BreakPoint at 004D8E5A +De-Activate DECCipherModes.pas line 954 BreakPoint at:004D8E5A +Adding coverage:DECCipherModes.pas (DECCipherModes) 957 +Clearing BreakPoint at 004D8E68 +De-Activate DECCipherModes.pas line 957 BreakPoint at:004D8E68 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 579 +Clearing BreakPoint at 004D6AC0 +De-Activate DECCipherModesGCM.pas line 579 BreakPoint at:004D6AC0 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 580 +Clearing BreakPoint at 004D6AF2 +De-Activate DECCipherModesGCM.pas line 580 BreakPoint at:004D6AF2 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 581 +Clearing BreakPoint at 004D6B00 +De-Activate DECCipherModesGCM.pas line 581 BreakPoint at:004D6B00 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 583 +Clearing BreakPoint at 004D6B26 +De-Activate DECCipherModesGCM.pas line 583 BreakPoint at:004D6B26 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 590 +Clearing BreakPoint at 004D6C29 +De-Activate DECCipherModesGCM.pas line 590 BreakPoint at:004D6C29 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 596 +Clearing BreakPoint at 004D6D2C +De-Activate DECCipherModesGCM.pas line 596 BreakPoint at:004D6D2C +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 598 +Clearing BreakPoint at 004D6D87 +De-Activate DECCipherModesGCM.pas line 598 BreakPoint at:004D6D87 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 599 +Clearing BreakPoint at 004D6DAC +De-Activate DECCipherModesGCM.pas line 599 BreakPoint at:004D6DAC +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 610 +Clearing BreakPoint at 004D6DE1 +De-Activate DECCipherModesGCM.pas line 610 BreakPoint at:004D6DE1 +Adding coverage:DECCipherModes.pas (DECCipherModes) 958 +Clearing BreakPoint at 004D8E7D +De-Activate DECCipherModes.pas line 958 BreakPoint at:004D8E7D +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 714 +Clearing BreakPoint at 004DA92D +De-Activate DECCipherFormats.pas line 714 BreakPoint at:004DA92D +Adding coverage:DECCipherModes.pas (DECCipherModes) 902 +Clearing BreakPoint at 004D8CA2 +De-Activate DECCipherModes.pas line 902 BreakPoint at:004D8CA2 +Adding coverage:DECCipherModes.pas (DECCipherModes) 948 +Clearing BreakPoint at 004D8E28 +De-Activate DECCipherModes.pas line 948 BreakPoint at:004D8E28 +Adding coverage:DECCipherModes.pas (DECCipherModes) 949 +Clearing BreakPoint at 004D8E39 +De-Activate DECCipherModes.pas line 949 BreakPoint at:004D8E39 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 585 +Clearing BreakPoint at 004D6B53 +De-Activate DECCipherModesGCM.pas line 585 BreakPoint at:004D6B53 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 586 +Clearing BreakPoint at 004D6B64 +De-Activate DECCipherModesGCM.pas line 586 BreakPoint at:004D6B64 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 587 +Clearing BreakPoint at 004D6BFA +De-Activate DECCipherModesGCM.pas line 587 BreakPoint at:004D6BFA +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 588 +Clearing BreakPoint at 004D6C09 +De-Activate DECCipherModesGCM.pas line 588 BreakPoint at:004D6C09 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 583 +Clearing BreakPoint at 004D6C11 +De-Activate DECCipherModesGCM.pas line 583 BreakPoint at:004D6C11 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 592 +Clearing BreakPoint at 004D6C40 +De-Activate DECCipherModesGCM.pas line 592 BreakPoint at:004D6C40 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 593 +Clearing BreakPoint at 004D6C51 +De-Activate DECCipherModesGCM.pas line 593 BreakPoint at:004D6C51 +Wait For Debug Event timed-out +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 789 +Clearing BreakPoint at 004DACF7 +De-Activate DECCipherFormats.pas line 789 BreakPoint at:004DACF7 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 790 +Clearing BreakPoint at 004DAD05 +De-Activate DECCipherFormats.pas line 790 BreakPoint at:004DAD05 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 760 +Clearing BreakPoint at 004DAB63 +De-Activate DECCipherFormats.pas line 760 BreakPoint at:004DAB63 +Adding coverage:DECCipherFormats.pas (DECCipherFormats) 781 +Clearing BreakPoint at 004DACC0 +De-Activate DECCipherFormats.pas line 781 BreakPoint at:004DACC0 +Wait For Debug Event timed-out +Adding coverage:DECCipherModes.pas (DECCipherModes) 1118 +Clearing BreakPoint at 004D974E +De-Activate DECCipherModes.pas line 1118 BreakPoint at:004D974E +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +EXCEPTION CODE:0EEDFADE +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004D976F +Exact line:DECCipherModes line 1120 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0052ACDA +Exact line:TestDECCipherModesGCM line 627 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043FB74 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00529BB3 +Exact line:TestDECCipherModesGCM line 538 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004403D5 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044049C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0044041A +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00440F4D +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043BFDF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C25F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043D2F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043C7D1 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0043CC3E +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00449726 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004497F4 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00354FAF +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003546A3 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00359466 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:003A65F7 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0035913F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:002D6382 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C5137B +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4833A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C4609A +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\user32.dll Stack frame:76C45E60 +Module : \\?\C:\Windows\SysWOW64\user32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B4C +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00427B8F +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00422D13 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00446490 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:004464F7 +After line:DECUtilRawByteStringHelper line 59 +No module found for exception address:000000000053A5B2 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Wait For Debug Event timed-out +Adding coverage:DECCipherModes.pas (DECCipherModes) 721 +Clearing BreakPoint at 004D83F2 +De-Activate DECCipherModes.pas line 721 BreakPoint at:004D83F2 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 651 +Clearing BreakPoint at 004D7180 +De-Activate DECCipherModesGCM.pas line 651 BreakPoint at:004D7180 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 652 +Clearing BreakPoint at 004D7189 +De-Activate DECCipherModesGCM.pas line 652 BreakPoint at:004D7189 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 653 +Clearing BreakPoint at 004D7198 +De-Activate DECCipherModesGCM.pas line 653 BreakPoint at:004D7198 +Adding coverage:DECCipherModes.pas (DECCipherModes) 724 +Clearing BreakPoint at 004D8433 +De-Activate DECCipherModes.pas line 724 BreakPoint at:004D8433 +Adding coverage:DECCipherModes.pas (DECCipherModes) 709 +Clearing BreakPoint at 004D8396 +De-Activate DECCipherModes.pas line 709 BreakPoint at:004D8396 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 660 +Clearing BreakPoint at 004D71A0 +De-Activate DECCipherModesGCM.pas line 660 BreakPoint at:004D71A0 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 661 +Clearing BreakPoint at 004D71AC +De-Activate DECCipherModesGCM.pas line 661 BreakPoint at:004D71AC +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 664 +Clearing BreakPoint at 004D71C4 +De-Activate DECCipherModesGCM.pas line 664 BreakPoint at:004D71C4 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 665 +Clearing BreakPoint at 004D71C9 +De-Activate DECCipherModesGCM.pas line 665 BreakPoint at:004D71C9 +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 664 +Clearing BreakPoint at 004D71FB +De-Activate DECCipherModesGCM.pas line 664 BreakPoint at:004D71FB +Adding coverage:DECCipherModesGCM.pas (DECCipherModesGCM) 666 +Clearing BreakPoint at 004D7201 +De-Activate DECCipherModesGCM.pas line 666 BreakPoint at:004D7201 +Adding coverage:DECCipherModes.pas (DECCipherModes) 701 +Clearing BreakPoint at 004D831D +De-Activate DECCipherModes.pas line 701 BreakPoint at:004D831D +Adding coverage:DECCipherModes.pas (DECCipherModes) 704 +Clearing BreakPoint at 004D8361 +De-Activate DECCipherModes.pas line 704 BreakPoint at:004D8361 +Create thread:10044 +Wait For Debug Event timed-out +Thread exit:10044 +Wait For Debug Event timed-out +Wait For Debug Event timed-out +Adding coverage:DECRandom.pas (DECRandom) 456 +Clearing BreakPoint at 0050D438 +De-Activate DECRandom.pas line 456 BreakPoint at:0050D438 +Adding coverage:DECRandom.pas (DECRandom) 430 +Clearing BreakPoint at 0050D3B0 +De-Activate DECRandom.pas line 430 BreakPoint at:0050D3B0 +Adding coverage:DECRandom.pas (DECRandom) 431 +Clearing BreakPoint at 0050D3B7 +De-Activate DECRandom.pas line 431 BreakPoint at:0050D3B7 +Adding coverage:DECRandom.pas (DECRandom) 432 +Clearing BreakPoint at 0050D3C5 +De-Activate DECRandom.pas line 432 BreakPoint at:0050D3C5 +Adding coverage:DECRandom.pas (DECRandom) 433 +Clearing BreakPoint at 0050D3CE +De-Activate DECRandom.pas line 433 BreakPoint at:0050D3CE +Adding coverage:DECRandom.pas (DECRandom) 436 +Clearing BreakPoint at 0050D3EC +De-Activate DECRandom.pas line 436 BreakPoint at:0050D3EC +Adding coverage:DECRandom.pas (DECRandom) 438 +Clearing BreakPoint at 0050D3F3 +De-Activate DECRandom.pas line 438 BreakPoint at:0050D3F3 +Adding coverage:DECRandom.pas (DECRandom) 439 +Clearing BreakPoint at 0050D40A +De-Activate DECRandom.pas line 439 BreakPoint at:0050D40A +Adding coverage:DECRandom.pas (DECRandom) 440 +Clearing BreakPoint at 0050D41B +De-Activate DECRandom.pas line 440 BreakPoint at:0050D41B +Adding coverage:DECRandom.pas (DECRandom) 441 +Clearing BreakPoint at 0050D422 +De-Activate DECRandom.pas line 441 BreakPoint at:0050D422 +Adding coverage:DECRandom.pas (DECRandom) 458 +Clearing BreakPoint at 0050D448 +De-Activate DECRandom.pas line 458 BreakPoint at:0050D448 +Adding coverage:DECCiphers.pas (DECCiphers) 6843 +Clearing BreakPoint at 004F15F8 +De-Activate DECCiphers.pas line 6843 BreakPoint at:004F15F8 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1219 +Clearing BreakPoint at 004D5814 +De-Activate DECCipherBase.pas line 1219 BreakPoint at:004D5814 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1222 +Clearing BreakPoint at 004D5829 +De-Activate DECCipherBase.pas line 1222 BreakPoint at:004D5829 +Adding coverage:DECCipherBase.pas (DECCipherBase) 1223 +Clearing BreakPoint at 004D5833 +De-Activate DECCipherBase.pas line 1223 BreakPoint at:004D5833 +Adding coverage:DECHash.pas (DECHash) 5701 +Clearing BreakPoint at 00493424 +De-Activate DECHash.pas line 5701 BreakPoint at:00493424 +Adding coverage:DECHashBase.pas (DECHashBase) 791 +Clearing BreakPoint at 004760D4 +De-Activate DECHashBase.pas line 791 BreakPoint at:004760D4 +Adding coverage:DECHashBase.pas (DECHashBase) 794 +Clearing BreakPoint at 004760E9 +De-Activate DECHashBase.pas line 794 BreakPoint at:004760E9 +Adding coverage:DECHashBase.pas (DECHashBase) 795 +Clearing BreakPoint at 004760F3 +De-Activate DECHashBase.pas line 795 BreakPoint at:004760F3 +Adding coverage:DECFormat.pas (DECFormat) 2126 +Clearing BreakPoint at 0045EBC8 +De-Activate DECFormat.pas line 2126 BreakPoint at:0045EBC8 +Adding coverage:DECFormatBase.pas (DECFormatBase) 652 +Clearing BreakPoint at 00457B88 +De-Activate DECFormatBase.pas line 652 BreakPoint at:00457B88 +Adding coverage:DECFormatBase.pas (DECFormatBase) 656 +Clearing BreakPoint at 00457B9D +De-Activate DECFormatBase.pas line 656 BreakPoint at:00457B9D +Adding coverage:DECFormatBase.pas (DECFormatBase) 657 +Clearing BreakPoint at 00457BA7 +De-Activate DECFormatBase.pas line 657 BreakPoint at:00457BA7 +Adding coverage:DECBaseClass.pas (DECBaseClass) 387 +Clearing BreakPoint at 00454C20 +De-Activate DECBaseClass.pas line 387 BreakPoint at:00454C20 +Adding coverage:DECCRC.pas (DECCRC) 903 +Clearing BreakPoint at 00452140 +De-Activate DECCRC.pas line 903 BreakPoint at:00452140 +Adding coverage:DECCRC.pas (DECCRC) 904 +Clearing BreakPoint at 00452154 +De-Activate DECCRC.pas line 904 BreakPoint at:00452154 +Adding coverage:DECCRC.pas (DECCRC) 906 +Clearing BreakPoint at 0045215E +De-Activate DECCRC.pas line 906 BreakPoint at:0045215E +Adding coverage:DECCRC.pas (DECCRC) 907 +Clearing BreakPoint at 00452167 +De-Activate DECCRC.pas line 907 BreakPoint at:00452167 +Adding coverage:DECCRC.pas (DECCRC) 908 +Clearing BreakPoint at 00452171 +De-Activate DECCRC.pas line 908 BreakPoint at:00452171 +UnLoading DLL:00000000 +EXCEPTION CODE:0000071A +Address:753EE062 +EXCEPTION flags:00000001 +---------------Stack trace -------------- +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll Stack frame:753EE062 +Module : \\?\C:\Windows\SysWOW64\KernelBase.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:750229AE +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75022961 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75016CDA +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75016D43 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:750166DC +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\winsta.dll Stack frame:740A1B32 +Module : \\?\C:\Windows\SysWOW64\winsta.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\winsta.dll Stack frame:740A146A +Module : \\?\C:\Windows\SysWOW64\winsta.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:7503B6A5 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:7503B63D +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75022019 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75021F6D +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75021EDA +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75021DE8 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75021D21 +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll Stack frame:75021C5B +Module : \\?\C:\Windows\SysWOW64\rpcrt4.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\winsta.dll Stack frame:740A7F71 +Module : \\?\C:\Windows\SysWOW64\winsta.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\winsta.dll Stack frame:740A7EB7 +Module : \\?\C:\Windows\SysWOW64\winsta.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\winsta.dll Stack frame:740A7C95 +Module : \\?\C:\Windows\SysWOW64\winsta.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\wtsapi32.dll Stack frame:74352A4A +Module : \\?\C:\Windows\SysWOW64\wtsapi32.dll - no MAP information exists +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:00425E72 +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0021A9FC +After line:DECUtilRawByteStringHelper line 59 +Module : ..\..\Compiled\BIN_IDE22.0_Win32_Debug\DECDUnitTestSuite.exe Stack frame:0021AE11 +After line:DECUtilRawByteStringHelper line 59 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll Stack frame:761DFEF9 +Module : \\?\C:\Windows\SysWOW64\kernel32.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7BBE +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +Module : \\?\C:\Windows\SysWOW64\ntdll.dll Stack frame:771B7B8E +Module : \\?\C:\Windows\SysWOW64\ntdll.dll - no MAP information exists +---------------End of Stack trace -------------- +Create thread:8720 +Thread exit:10268 +Create thread:8604 +Loading DLL at addr:5BD00000 (\\?\C:\Windows\SysWOW64\DXCore.dll) size :133120 +Done adding BreakPoints +Loading DLL at addr:76B30000 (\\?\C:\Windows\SysWOW64\cfgmgr32.dll) size :206336 +Done adding BreakPoints +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +UnLoading DLL:76B30000 +Thread exit:8720 +Thread exit:8604 +Thread exit:1156 +Thread exit:8228 +Thread exit:3408 +Thread exit:5228 +Process 3820 exiting. Exit code :0 +Finished processing debug events +ProcedureReport +Generating reports +Generating coverage report +Source dir: ..\..\Source\ +Output dir: Output +Finished generating reports + +Summary: + ++-----------+-----------+-----------+ +| Lines | Covered | Covered % | ++-----------+-----------+-----------+ +| 8661 | 8299 | 95 % | ++-----------+-----------+-----------+ diff --git a/Unit Tests/CodeCoverage/Output/DECFormat(DECFormat.pas).html b/Unit Tests/CodeCoverage/Output/DECFormat(DECFormat.pas).html new file mode 100644 index 00000000..d07a31e3 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECFormat(DECFormat.pas).html @@ -0,0 +1,2229 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECFormat (..\..\Source\DECFormat.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECFormat.pas

+
Number of lines covered727
Number of lines with code gen740
Line coverage98.2 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// This unit provides a standardisized way for applying format conversions +
20/// to data +
21/// </summary> +
22unit DECFormat; +
23 +
24interface +
25 +
26{$INCLUDE DECOptions.inc} +
27 +
28uses +
29 {$IFDEF FPC} +
30 SysUtils, Classes, +
31 {$ELSE} +
32 System.SysUtils, System.Classes, +
33 {$ENDIF} +
34 DECBaseClass, DECFormatBase, DECUtil; +
35 +
36type +
37 /// <summary> +
38 /// wrapper (allows omitting DECFormatBase in user code) +
39 /// </summary> +
40 TDECFormat = DECFormatBase.TDECFormat; +
41 /// <summary> +
42 /// wrapper (allows omitting DECFormatBase in user code) +
43 /// </summary> +
44 TDECFormatClass = DECFormatBase.TDECFormatClass; +
45 /// <summary> +
46 /// wrapper (allows omitting DECFormatBase in user code) +
47 /// </summary> +
48 TFormat_Copy = DECFormatBase.TFormat_Copy; +
49 +
50 TFormat_HEX = class; +
51 TFormat_HEXL = class; +
52 +
53 TFormat_Base16 = class; +
54 TFormat_Base16L = class; +
55 +
56 TFormat_DECMIME32 = class; +
57 +
58 TFormat_Base32 = class; +
59 +
60 TFormat_Base64 = class; +
61 TFormat_MIME64 = class; +
62 +
63 TFormat_Radix64 = class; +
64 TFormat_PGP = class; +
65 TFormat_BCryptBSD = class; +
66 +
67 TFormat_UU = class; +
68 TFormat_XX = class; +
69 TFormat_ESCAPE = class; +
70 +
71 TFormat_BigEndian16 = class; +
72 TFormat_BigEndian32 = class; +
73 +
74 /// <summary> +
75 /// Hexadecimal in Uppercase, Base16, see http://tools.ietf.org/html/rfc4648 +
76 /// </summary> +
77 TFormat_HEX = class(TDECFormat) +
78 protected +
79 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
80 /// <exception cref="EDECFormatException"> +
81 /// Exception raised if there is a failure in the data format. +
82 /// </exception> +
83 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
84 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
85 public +
86 class function CharTableBinary: TBytes; virtual; +
87 end; +
88 +
89 /// <summary> +
90 /// Hexadecimal in lowercase, Base16, see http://tools.ietf.org/html/rfc4648 +
91 /// </summary> +
92 TFormat_HEXL = class(TFormat_HEX) +
93 public +
94 class function CharTableBinary: TBytes; override; +
95 end; +
96 +
97 /// <summary> +
98 /// Same as TFormat_HEX, use TFormat_HEX instead +
99 /// </summary> +
100 TFormat_Base16 = class(TFormat_HEX) +
101 end deprecated 'Use TFormat_HEX instead'; +
102 +
103 /// <summary> +
104 /// Same as TFormat_HEXL, use TFormat_HEXL instead +
105 /// </summary> +
106 TFormat_Base16L = class(TFormat_HEXL) +
107 end deprecated 'Use TFormat_HEXL instead'; +
108 +
109 /// <summary> +
110 /// Proprietary variant of MINE32, kept for backwards compatibility with old +
111 /// DEC versions +
112 /// </summary> +
113 /// <remarks> +
114 /// This formatting should only be used for supporting legacy projects which +
115 /// already use this format. It is being considered to be more or less deprecated. +
116 /// </remarks> +
117 TFormat_DECMIME32 = class(TFormat_HEX) +
118 protected +
119 /// <summary> +
120 /// Encodes data passed to this method in the proprietary DECMIME32 format. +
121 /// </summary> +
122 /// <remarks> +
123 /// This formatting should only be used for supporting legacy projects which +
124 /// already use this format. It is being considered to be more or less deprecated. +
125 /// </remarks> +
126 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
127 /// <summary> +
128 /// Decodes data passed to this method in the proprietary DECMIME32 format +
129 /// into an array of normal bytes. +
130 /// </summary> +
131 /// <remarks> +
132 /// This formatting should only be used for supporting legacy projects which +
133 /// already use this format. It is being considered to be more or less deprecated. +
134 /// </remarks> +
135 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
136 /// <summary> +
137 /// Checks if certain data adheres to the rules for this formatting. +
138 /// </summary> +
139 /// <remarks> +
140 /// This formatting should only be used for supporting legacy projects which +
141 /// already use this format. It is being considered to be more or less deprecated. +
142 /// </remarks> +
143 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
144 +
145 public +
146 class function CharTableBinary: TBytes; override; +
147 end; +
148 +
149 /// <summary> +
150 /// Same as DECMIME32, which itsself should only be used for legacy projects +
151 /// </summary> +
152 TFormat_MIME32 = class(TFormat_DECMIME32) +
153 end deprecated 'Use TFormat_DECMIME32 instead'; +
154 +
155 /// <summary> +
156 /// Base32, see http://tools.ietf.org/html/rfc4648 +
157 /// </summary> +
158 TFormat_Base32 = class(TFormat_HEX) +
159 private const +
160 /// <summary> +
161 /// The data will be encoded using only these chars +
162 /// </summary> +
163 cBase32 : RawByteString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; +
164 /// <summary> +
165 /// Char used to fill up the output when performing encoding +
166 /// </summary> +
167 cPaddingChar = '='; +
168 private +
169 /// <summary> +
170 /// Table used for decoding, initialized on first use +
171 /// </summary> +
172 class var FBase32DecodeTable : array [#0..'z'] of Byte; +
173 +
174 /// <summary> +
175 /// Initializes the contents of FBase32DecodeTable, which is only required +
176 /// when DoDecode is called for the very first time. +
177 /// </summary> +
178 class procedure PrepareTable; +
179 protected +
180 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
181 /// <exception cref="EDECFormatException"> +
182 /// Exception raised if the format of <c>Source</c> contains invalid data. +
183 /// </exception> +
184 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
185 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
186 public +
187 end; +
188 +
189 /// <summary> +
190 /// Base64 (without soft wraps), see http://tools.ietf.org/html/rfc4648 +
191 /// </summary> +
192 TFormat_Base64 = class(TFormat_HEX) +
193 protected +
194 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
195 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
196 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
197 public +
198 class function CharTableBinary: TBytes; override; +
199 end; +
200 +
201 /// <summary> +
202 /// Same as TFormat_Base64, use TFormat_Base64 instead, kept for backwards +
203 /// compatibility only +
204 /// </summary> +
205 TFormat_MIME64 = class(TFormat_Base64) +
206 end deprecated 'Use TFormat_Base64 instead'; +
207 +
208 /// <summary> +
209 /// OpenPGP/PGP Base64 with 24-bit Checksums, see http://tools.ietf.org/html/rfc4880 +
210 /// </summary> +
211 TFormat_Radix64 = class(TFormat_Base64) +
212 /// <summary> +
213 /// Here the section needs to be private so that the variable can be accessed +
214 /// for initialization in the initialization section, which is needed since +
215 /// all functionality of the class is implemented as class methods +
216 /// </summary> +
217 private +
218 /// <summary> +
219 /// Maximum number of chars for one line of message text +
220 /// </summary> +
221 class var FCharsPerLine : UInt32; +
222 protected +
223 /// <summary> +
224 /// Extracts the CRC24 checksum from Radix64 encoded data +
225 /// </summary> +
226 /// <param name="Data"> +
227 /// Data to extract the checksum from +
228 /// </param> +
229 /// <param name="Size"> +
230 /// Size of the data in byte +
231 /// </param> +
232 /// <returns> +
233 /// CRC24 checksum if present, otherwise $FFFFFFFF +
234 /// </returns> +
235 class function DoExtractCRC(const Data; var Size: Integer): UInt32; +
236 /// <summary> +
237 /// If the data given exceeds FCharsPerLine, means the maximum allowed +
238 /// line lenth, a CR/LF pair needs to be inserted at that position. +
239 /// </summary> +
240 /// <param name="Source"> +
241 /// Data to insert a CR/LF into if necessary +
242 /// </param> +
243 /// <param name="Dest"> +
244 /// In this byte array the processed data will be returned +
245 /// </param> +
246 /// <param name="LineLength"> +
247 /// Maximum length of a line in byte. At this position the CR/LF will be +
248 /// inserted if the source passed in exceeds this length. +
249 /// </param> +
250 class procedure InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer); +
251 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
252 /// <exception cref="EDECFormatException"> +
253 /// Exception raised if the calculated CRC value does not match the one +
254 /// given in <c>Source</c>. +
255 /// </exception> +
256 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
257 +
258 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
259 public +
260 /// <summary> +
261 /// Changes the number of chars after which a line break is being added +
262 /// </summary> +
263 /// <param name="Value"> +
264 /// Maximum number of chars for a single line. Values < 1 result in an +
265 /// EArgumentOutOfRangeException being raised +
266 /// </param> +
267 /// <exception cref="EArgumentOutOfRangeException"> +
268 /// Exception raised if <c>Value</c> is < 1. +
269 /// </exception> +
270 class procedure SetCharsPerLine(const Value: UInt32); +
271 /// <summary> +
272 /// Returns the number of chars after which a line break will be introduced +
273 /// </summary> +
274 /// <returns> +
275 /// Maximum number of chars per line +
276 /// </returns> +
277 /// <remarks> +
278 /// Cannot be a property, as properties cannot access class vars +
279 /// </remarks> +
280 class function GetCharsPerLine: UInt32; +
281 end; +
282 +
283 /// <summary> +
284 /// Same as TFormat_Radix64, use TFormat_Radix64 instead, kept for backwards +
285 /// compatibility only +
286 /// </summary> +
287 TFormat_PGP = class(TFormat_Radix64) +
288 end deprecated 'Use TFormat_Radix64 instead'; +
289 +
290 /// <summary> +
291 /// BCrypt's Radix64 variant +
292 /// </summary> +
293 TFormat_BCryptBSD = class(TFormat_Base64) +
294 protected +
295 /// <summary> +
296 /// Internal method for the actual format conversion. This method needs to +
297 /// be overridden in all the child classes. Converts into the format. +
298 /// </summary> +
299 /// <param name="Source"> +
300 /// Data to be converted +
301 /// </param> +
302 /// <param name="Dest"> +
303 /// Into this parameter the converted data will be written into. +
304 /// </param> +
305 /// <param name="Size"> +
306 /// Number of bytes from source which will get converted. +
307 /// </param> +
308 class procedure DoEncode(const Source; var Dest: TBytes; +
309 Size: Integer); override; +
310 /// <summary> +
311 /// Internal method for the actual format conversion. This method needs to +
312 /// be overridden in all the child classes. Converts from the format into +
313 /// the format the data had before encoding it. +
314 /// </summary> +
315 /// <param name="Source"> +
316 /// Data to be converted +
317 /// </param> +
318 /// <param name="Dest"> +
319 /// Into this parameter the converted data will be written into. +
320 /// </param> +
321 /// <param name="Size"> +
322 /// Number of bytes from source which will get converted. +
323 /// </param> +
324 class procedure DoDecode(const Source; var Dest: TBytes; +
325 Size: Integer); override; +
326 /// <summary> +
327 /// Internal method for checking whether all bytes of the data to be +
328 /// processed are valid for this particular formatting. This method needs +
329 /// to be overridden in all the child classes. +
330 /// </summary> +
331 /// <param name="Data"> +
332 /// Data to be checked +
333 /// </param> +
334 /// <param name="Size"> +
335 /// Number of bytes from data which will get checked. +
336 /// </param> +
337 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
338 public +
339 class function CharTableBinary: TBytes; override; +
340 end; +
341 +
342 /// <summary> +
343 /// Unix UU format +
344 /// </summary> +
345 TFormat_UU = class(TDECFormat) +
346 protected +
347 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
348 /// <exception cref="EDECFormatException"> +
349 /// Exception raised if the format of <c>Source</c> contains invalid data. +
350 /// </exception> +
351 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
352 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
353 public +
354 class function CharTableBinary: TBytes; virtual; +
355 end; +
356 +
357 /// <summary> +
358 /// Unix XX format +
359 /// </summary> +
360 TFormat_XX = class(TFormat_UU) +
361 public +
362 class function CharTableBinary: TBytes; override; +
363 end; +
364 +
365 /// <summary> +
366 /// Escaped format +
367 /// </summary> +
368 TFormat_ESCAPE = class(TDECFormat) +
369 protected +
370 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
371 /// <exception cref="EDECFormatException"> +
372 /// Exception raised if the format of <c>Source</c> contains invalid data. +
373 /// </exception> +
374 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
375 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
376 public +
377 class function CharTableBinary: TBytes; virtual; +
378 end; +
379 +
380 /// <summary> +
381 /// Conversion from/to 16 bit big endian +
382 /// </summary> +
383 TFormat_BigEndian16 = class(TDECFormat) +
384 private +
385 class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline; +
386 protected +
387 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
388 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
389 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
390 public +
391 end; +
392 +
393 /// <summary> +
394 /// Conversion from/to 32 bit big endian +
395 /// </summary> +
396 TFormat_BigEndian32 = class(TDECFormat) +
397 private +
398 class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline; +
399 protected +
400 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
401 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
402 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
403 public +
404 end; +
405 +
406 /// <summary> +
407 /// Conversion from/to 64 bit big endian +
408 /// </summary> +
409 TFormat_BigEndian64 = class(TDECFormat) +
410 private +
411 class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline; +
412 protected +
413 class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override; +
414 class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override; +
415 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
416 public +
417 end; +
418 +
419implementation +
420 +
421uses +
422 DECTypes, DECCRC; // needed by TFormat_Radix64 +
423 +
424resourcestring +
425 sInvalidStringFormat = 'Input is not an valid %s format'; +
426 sInvalidInputCharacter = 'Invalid character (#%d) in input'; +
427 +
428class function TFormat_HEX.CharTableBinary: TBytes; +
429begin +
430 SetLength(result, 48); +
431 // special and skipped chars +
432 // '0123456789ABCDEFX$ abcdefhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13); +
433 +
434 {$IF CompilerVersion >= 28.0} +
435 result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, $43, +
436 $44, $45, $46, $58, $24, $20, $61, $62, $63, $64, $65, $66, $68, +
437 $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F, +
438 $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D]; +
439 {$ELSE} +
440 // Remove this initialisation variant as soon as XE7+ is the new minimum +
441 // supported Delphi version +
442 result[ 0]:=$30; +
443 result[ 1]:=$31; +
444 result[ 2]:=$32; +
445 result[ 3]:=$33; +
446 result[ 4]:=$34; +
447 result[ 5]:=$35; +
448 result[ 6]:=$36; +
449 result[ 7]:=$37; +
450 result[ 8]:=$38; +
451 result[ 9]:=$39; +
452 result[10]:=$41; +
453 result[11]:=$42; +
454 result[12]:=$43; +
455 result[13]:=$44; +
456 result[14]:=$45; +
457 result[15]:=$46; +
458 result[16]:=$58; +
459 result[17]:=$24; +
460 result[18]:=$20; +
461 result[19]:=$61; +
462 result[20]:=$62; +
463 result[21]:=$63; +
464 result[22]:=$64; +
465 result[23]:=$65; +
466 result[24]:=$66; +
467 result[25]:=$68; +
468 result[26]:=$48; +
469 result[27]:=$78; +
470 result[28]:=$28; +
471 result[29]:=$29; +
472 result[30]:=$5B; +
473 result[31]:=$5D; +
474 result[32]:=$7B; +
475 result[33]:=$7D; +
476 result[34]:=$2C; +
477 result[35]:=$3B; +
478 result[36]:=$3A; +
479 result[37]:=$2D; +
480 result[38]:=$5F; +
481 result[39]:=$2F; +
482 result[40]:=$5C; +
483 result[41]:=$2A; +
484 result[42]:=$2B; +
485 result[43]:=$22; +
486 result[44]:=$27; +
487 result[45]:=$09; +
488 result[46]:=$0A; +
489 result[47]:=$0D; +
490 {$IFEND} +
491end; +
492 +
493class procedure TFormat_HEX.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
494var +
495 S : PByte; +
496 Table : TBytes; +
497 i : Integer; +
498begin +
499 if Size <= 0 then Exit; +
500 SetLength(Dest, Size * 2); +
501 +
502 Table := CharTableBinary; +
503 +
504 S := PByte(@Source); +
505 i := 0; +
506 +
507 while Size > 0 do +
508 begin +
509 Dest[i] := Table[S^ shr 4]; +
510 Dest[i + 1] := Table[S^ and $F]; +
511 +
512 Inc(S); +
513 Dec(Size); +
514 Inc(i, 2); +
515 end; +
516end; +
517 +
518class procedure TFormat_HEX.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
519var +
520 S: PByte; +
521 D: PByte; +
522 T: TBytes; +
523 I,P: Integer; +
524 +
525 HasIdent: Boolean; +
526begin +
527 SetLength(Dest, 0); +
528 if Size <= 0 then Exit; +
529 SetLength(Dest, Size div 2); // + 1); +
530 +
531 T := CharTableBinary; +
532 +
533 D := PByte(Dest); +
534 S := PByte(@Source); +
535 I := 0; +
536 HasIdent := False; +
537 while Size > 0 do +
538 begin +
539 P := TableFindBinary(S^, T, 18); +
540 if P < 0 then P := TableFindBinary(UpCaseBinary(S^), T, 16); +
541 if P < 0 then +
542 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
543 Inc(S); +
544 if P >= 0 then +
545 if P > 16 then +
546 begin +
547 if not HasIdent then +
548 begin +
549 HasIdent := True; +
550 I := 0; +
551 D := PByte(Dest); +
552 end; +
553 end +
554 else +
555 begin +
556 if Odd(I) then +
557 begin +
558 D^ := D^ or P; +
559 Inc(D); +
560 end +
561 else +
562 D^ := P shl 4; +
563 Inc(I); +
564 end; +
565 Dec(Size); +
566 end; +
567end; +
568 +
569class function TFormat_HEX.DoIsValid(const Data; Size: Integer): Boolean; +
570var +
571 T: TBytes; +
572 S: PByte; +
573begin +
574 if not odd(Size) then +
575 begin +
576 Result := True; +
577 T := CharTableBinary; +
578 S := @Data; +
579 while Result and (Size > 0) do +
580 begin +
581 if TableFindBinary(S^, T, length(T)) >= 0 then +
582 begin +
583 Inc(S); +
584 Dec(Size); +
585 end +
586 else +
587 Result := False; +
588 end; +
589 end +
590 else +
591 result := false; +
592end; +
593 +
594class function TFormat_HEXL.CharTableBinary: TBytes; +
595begin +
596 SetLength(result, 48); +
597 // special and skipped chars +
598 // '0123456789abcdefX$ ABCDEFhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13); +
599 +
600 {$IF CompilerVersion >= 28.0} +
601 result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $61, $62, $63, +
602 $64, $65, $66, $68, $58, $24, $20, $41, $42, $43, $44, $45, $46, +
603 $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F, +
604 $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D]; +
605 {$ELSE} +
606 // Remove this initialisation variant as soon as XE7+ is the new minimum +
607 // supported Delphi version +
608 result[ 0]:=$30; +
609 result[ 1]:=$31; +
610 result[ 2]:=$32; +
611 result[ 3]:=$33; +
612 result[ 4]:=$34; +
613 result[ 5]:=$35; +
614 result[ 6]:=$36; +
615 result[ 7]:=$37; +
616 result[ 8]:=$38; +
617 result[ 9]:=$39; +
618 result[10]:=$61; +
619 result[11]:=$62; +
620 result[12]:=$63; +
621 result[13]:=$64; +
622 result[14]:=$65; +
623 result[15]:=$66; +
624 result[16]:=$68; +
625 result[17]:=$58; +
626 result[18]:=$24; +
627 result[19]:=$20; +
628 result[20]:=$41; +
629 result[21]:=$42; +
630 result[22]:=$43; +
631 result[23]:=$44; +
632 result[24]:=$45; +
633 result[25]:=$46; +
634 result[26]:=$48; +
635 result[27]:=$78; +
636 result[28]:=$28; +
637 result[29]:=$29; +
638 result[30]:=$5B; +
639 result[31]:=$5D; +
640 result[32]:=$7B; +
641 result[33]:=$7D; +
642 result[34]:=$2C; +
643 result[35]:=$3B; +
644 result[36]:=$3A; +
645 result[37]:=$2D; +
646 result[38]:=$5F; +
647 result[39]:=$2F; +
648 result[40]:=$5C; +
649 result[41]:=$2A; +
650 result[42]:=$2B; +
651 result[43]:=$22; +
652 result[44]:=$27; +
653 result[45]:=$09; +
654 result[46]:=$0A; +
655 result[47]:=$0D; +
656 {$IFEND} +
657end; +
658 +
659class function TFormat_DECMIME32.CharTableBinary: TBytes; +
660begin +
661 // special and skipped chars +
662 // 'abcdefghijklnpqrstuwxyz123456789 =$()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13); +
663 SetLength(result, 53); +
664 result := [$61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6E, $70, +
665 $71, $72, $73, $74, $75, $77, $78, $79, $7A, $31, $32, $33, $34, $35, +
666 $36, $37, $38, $39, $20, $3D, $24, $28, $29, $5B, $5D, $7B, $7D, $2C, +
667 $3B, $3A, $2D, $5F, $5C, $2A, $22, $27, $09, $0A, $0D]; +
668end; +
669 +
670class procedure TFormat_DECMIME32.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
671var +
672 T : TBytes; +
673 Src : TBytes; +
674 S, D: PByte; +
675 i, n: Integer; +
676begin +
677 SetLength(Dest, 0); +
678 if Size <= 0 then +
679 Exit; +
680 +
681 // The passed in source parameter has to be converted into an array with +
682 // added additional 0 value. This is because in the original form a string was +
683 // being passed in as source parameter, which automatically contained a #00 at +
684 // the end and depending on length of the data passed in, the @S[i shr 3] index +
685 // calculation can result in an index which represents the last byte of the +
686 // source parameter. That one is accessed as PWord then which results in +
687 // reading the first byte behind that source parameter as well! This led to +
688 // wrong data errors in the unit tests. +
689 SetLength(Src, Size + 1); +
690 Move(Source, Src[0], Size); +
691 Src[length(Src)-1] := 0; +
692 +
693 Size := Size * 8; +
694 SetLength(Dest, Size div 5 + 5); +
695 +
696 D := @Dest[0]; +
697 T := CharTableBinary; +
698 S := @Src[0]; +
699 +
700 i := 0; n := 0; +
701 while i < Size do +
702 begin +
703 D^ := T[PWord(@S[i shr 3])^ shr (i and $7) and $1F]; +
704 +
705 Inc(D); +
706 Inc(i, 5); +
707 +
708 Inc(n); +
709 end; +
710 +
711 SetLength(Dest, n); +
712 SetLength(Src, 0); +
713end; +
714 +
715class function TFormat_DECMIME32.DoIsValid(const Data; Size: Integer): Boolean; +
716var +
717 T: TBytes; +
718 S: PByte; +
719begin +
720 Result := True; +
721 T := CharTableBinary; +
722 S := @Data; +
723 while Result and (Size > 0) do +
724 begin +
725 if TableFindBinary(S^, T, length(T)) >= 0 then +
726 begin +
727 Inc(S); +
728 Dec(Size); +
729 end +
730 else +
731 Result := False; +
732 end; +
733end; +
734 +
735class procedure TFormat_DECMIME32.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
736var +
737 T: TBytes; +
738 S: PByte; +
739 D: PByte; +
740 i, V: Integer; +
741begin +
742 SetLength(Dest, 0); +
743 if Size <= 0 then +
744 Exit; +
745 +
746 Size := Size * 5; +
747 SetLength(Dest, Size div 8); +
748 +
749 T := CharTableBinary; +
750 S := @Source; +
751 D := @Dest[0]; +
752 +
753 FillChar(D^, Length(Dest), 0); +
754 i := 0; +
755 +
756 while i < Size do +
757 begin +
758 V := TableFindBinary(S^, T, 32); +
759 if V < 0 then +
760 V := TableFindBinary(UpCaseBinary(S^), T, 32); +
761 if V >= 0 then +
762 begin +
763 PWord(@D[i shr 3])^ := PWord(@D[i shr 3])^ or (V shl (i and $7)); +
764 Inc(i, 5); +
765 end +
766 else +
767 Dec(Size, 5); +
768 Inc(S); +
769 end; +
770 +
771 SetLength(Dest, Size div 8); +
772end; +
773 +
774class function TFormat_Base64.CharTableBinary: TBytes; +
775begin +
776 // 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + +
777 // ' $()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13); // special and skipped chars +
778 SetLength(result, 85); +
779 +
780 result := [$41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, +
781 $4E, $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, +
782 $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, +
783 $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A, +
784 $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $2B, $2F, $3D, +
785 $20, $24, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F, +
786 $5C, $2A, $22, $27, $09, $0A, $0D]; +
787end; +
788 +
789class procedure TFormat_Base64.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
790var +
791 T: TBytes; +
792 S: PByte; +
793 D: PByte; +
794 B: UInt32; +
795 i: Integer; +
796 n: Integer; +
797begin +
798 SetLength(Dest, 0); +
799 if Size <= 0 then +
800 Exit; +
801 +
802 SetLength(Dest, Size * 4 div 3 + 4); +
803 +
804 T := CharTableBinary; +
805 S := @Source; +
806 D := @Dest[0]; +
807 +
808 n := 0; +
809 while Size >= 3 do +
810 begin +
811 Dec(Size, 3); +
812 B := Byte(S[0]) shl 16 or Byte(S[1]) shl 8 or Byte(S[2]); +
813 D[0] := T[B shr 18 and $3F]; +
814 D[1] := T[B shr 12 and $3F]; +
815 D[2] := T[B shr 6 and $3F]; +
816 D[3] := T[B and $3F]; +
817 Inc(D, 4); +
818 S := @S[3]; +
819 Inc(n, 4); +
820 end; +
821 +
822 while Size > 0 do +
823 begin +
824 B := 0; +
825 for i := 0 to 2 do +
826 begin +
827 B := B shl 8; +
828 if Size > 0 then +
829 begin +
830 B := B or Byte(S[0]); +
831 S := @S[1]; +
832 end; +
833 Dec(Size); +
834 end; +
835 for i := 3 downto 0 do +
836 begin +
837 if Size < 0 then +
838 begin +
839 D[i] := T[64]; +
840 Inc(Size); +
841 end +
842 else +
843 D[i] := T[B and $3F]; +
844 B := B shr 6; +
845 end; +
846 Inc(D, 4); +
847 Inc(n, 4); +
848 end; +
849 +
850 // original calculation was substract dest ptr d - start of dest +
851 SetLength(Dest, n); +
852end; +
853 +
854class procedure TFormat_Base64.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
855var +
856 T: TBytes; +
857 S: PByte; +
858 D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
859 B: UInt32; +
860 i, j, n: Integer; +
861begin +
862 SetLength(Dest, 0); +
863 if Size <= 0 then +
864 Exit; +
865 +
866 SetLength(Dest, Size); +
867 +
868 T := CharTableBinary; +
869 S := @Source; +
870 D := @Dest[0]; +
871 +
872 Move(Source, Dest[0], Size); +
873 +
874 L := S + Size; +
875 j := 0; +
876 n := 0; +
877 while S < L do +
878 begin +
879 B := 0; +
880 j := 4; +
881 while (j > 0) and (S < L) do +
882 begin +
883 i := TableFindBinary(S^, T, 65); +
884 Inc(S); +
885 if i >= 0 then +
886 begin +
887 if i < 64 then +
888 begin +
889 B := B shl 6 or Byte(i); +
890 Dec(j); +
891 end +
892 else +
893 L := S; +
894 end; +
895 end; +
896 if j > 0 then +
897 begin +
898 if j >= 4 then +
899 begin +
900 j := 0; +
901 Break; +
902 end +
903 else +
904 B := B shl (6 * j); +
905 end; +
906 i := 2; +
907 while i >= 0 do +
908 begin +
909 D[i] := Byte(B); +
910 B := B shr 8; +
911 Dec(i); +
912 end; +
913 Inc(D, 3); +
914 Inc(n, 3); +
915 end; +
916 +
917 SetLength(Dest, n-j); +
918end; +
919 +
920class function TFormat_Base64.DoIsValid(const Data; Size: Integer): Boolean; +
921var +
922 S: PByte; +
923begin +
924 Result := True; +
925 S := @Data; +
926 while Result and (Size > 0) do +
927 begin +
928 // A-Z, a-z, 0-9, +, = and / and CR/LF +
929 if S^ in [$41..$5A, $61..$7A, $2B, $2F..$39, $3D, $0D, $0A] then +
930 begin +
931 Inc(S); +
932 Dec(Size); +
933 end +
934 else +
935 Result := False; +
936 end; +
937end; +
938 +
939class function TFormat_Radix64.DoExtractCRC(const Data; var Size: Integer): UInt32; +
940var +
941 L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
942 C: Byte; +
943 R: TBytes; +
944begin +
945 Result := $FFFFFFFF; +
946 C := CharTableBinary[64]; // get padding char, per default '=' +
947 L := PByte(@Data) + Size; +
948 while L <> @Data do +
949 begin +
950 if L^ = C then +
951 Break +
952 else +
953 Dec(L); // scan reverse for padding char +
954 end; +
955 if L - PByte(@Data) >= Size - 5 then // remaining chars must be > 4, e.g. '=XQRT' +
956 try +
957 Inc(L); +
958 inherited DoDecode(L^, R, Size - (L - PByte(@Data))); +
959 if Length(R) >= 3 then +
960 begin +
961 Result := 0; +
962 Move(R[0], Result, 3); +
963 Size := L - PByte(@Data); +
964 end; +
965 except +
966 end; +
967end; +
968 +
969class function TFormat_Radix64.DoIsValid(const Data; Size: Integer): Boolean; +
970var +
971 crc24 : UInt32; +
972 Dest : TBytes; +
973begin +
974 // Radix64 is like Base64 but with additional CRC24 checksum +
975 result := TFormat_Base64.IsValid(Data, Size); +
976 +
977 // Check contained checksum as well +
978 if result then +
979 begin +
980 crc24 := DoExtractCRC(Data, Size); +
981 // we need to decode, because it removes the CR/LF linebreaks which would +
982 // invalidate the checksum +
983 inherited DoDecode(Data, Dest, Size); +
984 +
985 if crc24 <> $FFFFFFFF then +
986 begin +
987 // recalc CRC and compare +
988 SwapBytes(crc24, 3); +
989 result := crc24 = CRCCalc(CRC_24, Dest[0], Length(Dest)); +
990 end +
991 else +
992 result := false; +
993 end; +
994end; +
995 +
996class function TFormat_Radix64.GetCharsPerLine: UInt32; +
997begin +
998 result := FCharsPerLine; +
999end; +
1000 +
1001class procedure TFormat_Radix64.InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer); +
1002var +
1003 S, D: PByte; +
1004 i: Integer; +
1005begin +
1006 i := Length(Source); +
1007 if (LineLength <= 0) or (i <= LineLength) then +
1008 begin +
1009 SetLength(Dest, i); +
1010 Move(Source[0], Dest[0], i); +
1011 Exit; +
1012 end; +
1013 +
1014 SetLength(Dest, i + i * 2 div LineLength + 2); +
1015 +
1016 S := @Source[0]; +
1017 D := @Dest[0]; +
1018 +
1019 repeat +
1020 Move(S^, D^, LineLength); +
1021 Inc(S, LineLength); +
1022 Inc(D, LineLength); +
1023 D^ := Ord(#13); +
1024 Inc(D); +
1025 D^ := Ord(#10); +
1026 Inc(D); +
1027 Dec(i, LineLength); +
1028 until i < LineLength; +
1029 +
1030 Move(S^, D^, i); +
1031 Inc(D, i); +
1032 +
1033 SetLength(Dest, PByte(D) - PByte(Dest)); +
1034end; +
1035 +
1036class procedure TFormat_Radix64.SetCharsPerLine(const Value: UInt32); +
1037begin +
1038 if (Value > 0) then +
1039 FCharsPerLine := Value +
1040 else +
1041 raise EArgumentOutOfRangeException.Create('Invalid number of chars per line: ' + +
1042 IntToStr(Value)); +
1043end; +
1044 +
1045class procedure TFormat_Radix64.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
1046var +
1047 TempData : TBytes; +
1048 CRC : UInt32; +
1049 CRCData : TBytes; +
1050 Position : Integer; +
1051begin +
1052 SetLength(Dest, 0); +
1053 if Size <= 0 then +
1054 Exit; +
1055 +
1056 // use Base64 +
1057 inherited DoEncode(Source, TempData, Size); +
1058 +
1059 // split lines +
1060 InsertCRLF(TempData, Dest, FCharsPerLine); +
1061 SetLength(TempData, 0); +
1062 +
1063 CRC := CRCCalc(CRC_24, Source, Size); // calculate 24-bit Checksum +
1064 SwapBytes(CRC, 3); // PGP use Big Endian +
1065 +
1066 // check and insert LF if needed +
1067 Position := Length(Dest) - 1; // last char +
1068 if Dest[Position] <> $0A then +
1069 begin +
1070 // insert CR needed, CRC must be in the next line +
1071 Position := Length(Dest); +
1072 SetLength(Dest, Position + 2); +
1073 Dest[Position] := $0D; // append CR +
1074 Dest[Position+1] := $0A; // append LF +
1075 end; +
1076 +
1077 // encode CRC with Base64 too +
1078 inherited DoEncode(CRC, CRCData, 3); +
1079 +
1080 // if CRC is too long insert CRLF. -1 to compensate the later added = char +
1081 InsertCRLF(CRCData, TempData, FCharsPerLine - 1); +
1082 CRCData := TempData; +
1083 +
1084 // append encoded CRC +
1085 Position := Length(Dest); +
1086 SetLength(Dest, Position + 1 + Length(CRCData)); +
1087 Dest[Position] := Ord('='); +
1088 Move(CRCData[0], Dest[Position + 1], Length(CRCData)); +
1089end; +
1090 +
1091class procedure TFormat_Radix64.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
1092var +
1093 CRC: UInt32; +
1094begin +
1095 SetLength(Dest, 0); +
1096 if Size <= 0 then +
1097 Exit; +
1098 +
1099 CRC := DoExtractCRC(Source, Size); +
1100 inherited DoDecode(Source, Dest, Size); +
1101 +
1102 if CRC <> $FFFFFFFF then // check CRC if found +
1103 begin +
1104 SwapBytes(CRC, 3); +
1105 if CRC <> CRCCalc(CRC_24, Dest[0], Length(Dest)) then +
1106 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
1107 end; +
1108end; +
1109 +
1110class function TFormat_UU.CharTableBinary: TBytes; +
1111begin +
1112 // '`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_' + +
1113 // ' '+CHR(9)+CHR(10)+CHR(13); +
1114 +
1115 SetLength(result, 68); +
1116 {$IF CompilerVersion >= 28.0} +
1117 result := [$60, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2A, $2B, $2C, +
1118 $2D, $2E, $2F, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, +
1119 $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43, $44, $45, $46, +
1120 $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53, +
1121 $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $20, +
1122 $09, $0A, $0D]; +
1123 {$ELSE} +
1124 // Remove this initialisation variant as soon as XE7+ is the new minimum +
1125 // supported Delphi version +
1126 result[ 0]:=$60; +
1127 result[ 1]:=$21; +
1128 result[ 2]:=$22; +
1129 result[ 3]:=$23; +
1130 result[ 4]:=$24; +
1131 result[ 5]:=$25; +
1132 result[ 6]:=$26; +
1133 result[ 7]:=$27; +
1134 result[ 8]:=$28; +
1135 result[ 9]:=$29; +
1136 result[10]:=$2A; +
1137 result[11]:=$2B; +
1138 result[12]:=$2C; +
1139 +
1140 result[13]:=$2D; +
1141 result[14]:=$2E; +
1142 result[15]:=$2F; +
1143 result[16]:=$30; +
1144 result[17]:=$31; +
1145 result[18]:=$32; +
1146 result[19]:=$33; +
1147 result[20]:=$34; +
1148 result[21]:=$35; +
1149 result[22]:=$36; +
1150 result[23]:=$37; +
1151 result[24]:=$38; +
1152 result[25]:=$39; +
1153 +
1154 result[26]:=$3A; +
1155 result[27]:=$3B; +
1156 result[28]:=$3C; +
1157 result[29]:=$3D; +
1158 result[30]:=$3E; +
1159 result[31]:=$3F; +
1160 result[32]:=$40; +
1161 result[33]:=$41; +
1162 result[34]:=$42; +
1163 result[35]:=$43; +
1164 result[36]:=$44; +
1165 result[37]:=$45; +
1166 result[38]:=$46; +
1167 +
1168 result[39]:=$47; +
1169 result[40]:=$48; +
1170 result[41]:=$49; +
1171 result[42]:=$4A; +
1172 result[43]:=$4B; +
1173 result[44]:=$4C; +
1174 result[45]:=$4D; +
1175 result[46]:=$4E; +
1176 result[47]:=$4F; +
1177 result[48]:=$50; +
1178 result[49]:=$51; +
1179 result[50]:=$52; +
1180 result[51]:=$53; +
1181 +
1182 result[52]:=$54; +
1183 result[53]:=$55; +
1184 result[54]:=$56; +
1185 result[55]:=$57; +
1186 result[56]:=$58; +
1187 result[57]:=$59; +
1188 result[58]:=$5A; +
1189 result[59]:=$5B; +
1190 result[60]:=$5C; +
1191 result[61]:=$5D; +
1192 result[62]:=$5E; +
1193 result[63]:=$5F; +
1194 result[64]:=$20; +
1195 +
1196 result[65]:=$09; +
1197 result[66]:=$0A; +
1198 result[67]:=$0D; +
1199 {$IFEND} +
1200end; +
1201 +
1202class procedure TFormat_UU.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
1203var +
1204 T: TBytes; +
1205 S: PByte; +
1206 D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
1207 L, i: Integer; +
1208 B: Cardinal; +
1209begin +
1210 SetLength(Dest, 0); +
1211 if Size <= 0 then +
1212 Exit; +
1213 +
1214 SetLength(Dest, Size * 4 div 3 + Size div 45 + 10); +
1215 +
1216 T := CharTableBinary; +
1217 S := @Source; +
1218 D := @Dest[0]; +
1219 +
1220 while Size > 0 do +
1221 begin +
1222 L := Size; +
1223 if L > 45 then +
1224 L := 45; +
1225 Dec(Size, L); +
1226 D^ := T[L]; +
1227 while L > 0 do +
1228 begin +
1229 B := 0; +
1230 for i := 0 to 2 do +
1231 begin +
1232 B := B shl 8; +
1233 if L > 0 then +
1234 begin +
1235 B := B or S^; +
1236 Inc(S); +
1237 end; +
1238 Dec(L); +
1239 end; +
1240 for i := 4 downto 1 do +
1241 begin +
1242 D[i] := T[B and $3F]; +
1243 B := B shr 6; +
1244 end; +
1245 Inc(D, 4); +
1246 end; +
1247 Inc(D); +
1248 end; +
1249 +
1250 SetLength(Dest, PByte(D) - PByte(Dest)); +
1251end; +
1252 +
1253class procedure TFormat_UU.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
1254var +
1255 T: TBytes; +
1256 S: PByte; +
1257 D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
1258 i, E: Integer; +
1259 B: UInt32; +
1260begin +
1261 SetLength(Dest, 0); +
1262 if Size <= 0 then +
1263 Exit; +
1264 +
1265 SetLength(Dest, Size); +
1266 +
1267 T := CharTableBinary; +
1268 S := @Source; +
1269 D := @Dest[0]; +
1270 +
1271 L := PByte(S) + Size; +
1272 +
1273 repeat +
1274 Size := TableFindBinary(S^, T, 64); +
1275 if (Size < 0) or (Size > 45) then +
1276 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
1277 Inc(S); +
1278 while Size > 0 do +
1279 begin +
1280 B := 0; +
1281 i := 4; +
1282 while (i > 0) and (S <= L) do +
1283 begin +
1284 E := TableFindBinary(S^, T, 64); +
1285 if E >= 0 then +
1286 begin +
1287 B := B shl 6 or Byte(E); +
1288 Dec(i); +
1289 end; +
1290 Inc(S); +
1291 end; +
1292 i := 2; +
1293 repeat +
1294 D[i] := Byte(B); +
1295 B := B shr 8; +
1296 Dec(i); +
1297 until i < 0; +
1298 if Size > 3 then +
1299 Inc(D, 3) +
1300 else +
1301 Inc(D, Size); +
1302 Dec(Size, 3); +
1303 end; +
1304 until S >= L; +
1305 +
1306 SetLength(Dest, PByte(D) - PByte(Dest)); +
1307end; +
1308 +
1309class function TFormat_UU.DoIsValid(const Data; Size: Integer): Boolean; +
1310var +
1311 T: TBytes; +
1312 S: PByte; +
1313 Len, P, i: Integer; +
1314begin +
1315 Result := False; +
1316 T := CharTableBinary; +
1317 Len := Length(T); +
1318 S := @Data; +
1319 P := 0; +
1320 +
1321 while Size > 0 do +
1322 begin +
1323 i := TableFindBinary(S^, T, Len); +
1324 if i >= 0 then +
1325 begin +
1326 Dec(Size); +
1327 Inc(S); +
1328 if P = 0 then +
1329 begin +
1330 if i > 45 then +
1331 Exit; +
1332 P := (i * 4 + 2) div 3; +
1333 end +
1334 else +
1335 if i < 64 then +
1336 Dec(P); +
1337 end +
1338 else +
1339 Exit; +
1340 end; +
1341 +
1342 if P <> 0 then +
1343 Exit; +
1344 +
1345 Result := True; +
1346end; +
1347 +
1348class function TFormat_XX.CharTableBinary: TBytes; +
1349begin +
1350 // '+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + +
1351 // ' "()[]'''+CHR(9)+CHR(10)+CHR(13); +
1352 SetLength(result, 74); +
1353 {$IF CompilerVersion >= 28.0} +
1354 result := [$2B, $2D, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, +
1355 $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E, +
1356 $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, $61, +
1357 $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, $6E, +
1358 $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A, $20, +
1359 $22, $28, $29, $5B, $5D, $27, $09, $0A, $0D]; +
1360 {$ELSE} +
1361 // Remove this initialisation variant as soon as XE7+ is the new minimum +
1362 // supported Delphi version +
1363 result[ 0]:=$2B; +
1364 result[ 1]:=$2D; +
1365 result[ 2]:=$30; +
1366 result[ 3]:=$31; +
1367 result[ 4]:=$32; +
1368 result[ 5]:=$33; +
1369 result[ 6]:=$34; +
1370 result[ 7]:=$35; +
1371 result[ 8]:=$36; +
1372 result[ 9]:=$37; +
1373 result[10]:=$38; +
1374 result[11]:=$39; +
1375 result[12]:=$41; +
1376 +
1377 result[13]:=$42; +
1378 result[14]:=$43; +
1379 result[15]:=$44; +
1380 result[16]:=$45; +
1381 result[17]:=$46; +
1382 result[18]:=$47; +
1383 result[19]:=$48; +
1384 result[20]:=$49; +
1385 result[21]:=$4A; +
1386 result[22]:=$4B; +
1387 result[23]:=$4C; +
1388 result[24]:=$4D; +
1389 result[25]:=$4E; +
1390 +
1391 result[26]:=$4F; +
1392 result[27]:=$50; +
1393 result[28]:=$51; +
1394 result[29]:=$52; +
1395 result[30]:=$53; +
1396 result[31]:=$54; +
1397 result[32]:=$55; +
1398 result[33]:=$56; +
1399 result[34]:=$57; +
1400 result[35]:=$58; +
1401 result[36]:=$59; +
1402 result[37]:=$5A; +
1403 result[38]:=$61; +
1404 +
1405 result[39]:=$62; +
1406 result[40]:=$63; +
1407 result[41]:=$64; +
1408 result[42]:=$65; +
1409 result[43]:=$66; +
1410 result[44]:=$67; +
1411 result[45]:=$68; +
1412 result[46]:=$69; +
1413 result[47]:=$6A; +
1414 result[48]:=$6B; +
1415 result[49]:=$6C; +
1416 result[50]:=$6D; +
1417 result[51]:=$6E; +
1418 +
1419 result[52]:=$6F; +
1420 result[53]:=$70; +
1421 result[54]:=$71; +
1422 result[55]:=$72; +
1423 result[56]:=$73; +
1424 result[57]:=$74; +
1425 result[58]:=$75; +
1426 result[59]:=$76; +
1427 result[60]:=$77; +
1428 result[61]:=$78; +
1429 result[62]:=$79; +
1430 result[63]:=$7A; +
1431 result[64]:=$20; +
1432 +
1433 result[65]:=$22; +
1434 result[66]:=$28; +
1435 result[67]:=$29; +
1436 result[68]:=$5B; +
1437 result[69]:=$5D; +
1438 result[70]:=$27; +
1439 result[71]:=$09; +
1440 result[72]:=$0A; +
1441 result[73]:=$0D; +
1442 {$IFEND} +
1443end; +
1444 +
1445var +
1446 // Initlialized in initialization section, cannot be const because of the +
1447 // TBytes requirement +
1448 ESCAPE_CodesL: TBytes; //array[0..6] of Byte = ($61, $62, $74, $6E, $76, $66, $72); +
1449 ESCAPE_CodesU: TBytes; //array[0..6] of Byte = ($41, $42, $54, $4E, $56, $46, $52); +
1450 +
1451class function TFormat_ESCAPE.CharTableBinary: TBytes; +
1452begin +
1453 Result := TFormat_HEX.CharTableBinary; +
1454end; +
1455 +
1456class procedure TFormat_ESCAPE.DoEncode(const Source; var Dest: TBytes; Size: Integer); +
1457var +
1458 T: TBytes; +
1459 S: PByte; +
1460 D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
1461 i: Integer; +
1462begin +
1463 SetLength(Dest, 0); +
1464 if Size <= 0 then +
1465 Exit; +
1466 +
1467 SetLength(Dest, Size + 8); +
1468 +
1469 T := CharTableBinary; +
1470 S := @Source; +
1471 D := @Dest[0]; +
1472 +
1473 i := Size; +
1474 +
1475 while Size > 0 do +
1476 begin +
1477 if i <= 0 then +
1478 begin +
1479 i := D - PByte(Dest); +
1480 SetLength(Dest, i + Size + 8); +
1481 D := PByte(Dest) + i; +
1482 i := Size; +
1483 end; +
1484 if (S^ < 32) or (S^ > $7F) then +
1485 begin +
1486 if (S^ >= 7) and (S^ <= 13) then +
1487 begin +
1488 D^ := $5C; // \ char +
1489 Inc(D); +
1490 D^ := ESCAPE_CodesL[S^ - 7]; +
1491 Inc(D); +
1492 Dec(i, 2); +
1493 end +
1494 else +
1495 begin +
1496 D^ := $5C; // \ char +
1497 Inc(D); +
1498 D^ := $78; // x +
1499 Inc(D); +
1500 D^ := T[S^ shr 4]; +
1501 Inc(D); +
1502 D^ := T[S^ and $F]; +
1503 Inc(D); +
1504 Dec(i, 4); +
1505 end +
1506 end +
1507 else +
1508 begin +
1509 // S^is \ char? +
1510 if S^ = $5C then +
1511 begin +
1512 D^ := $5C; // \ char +
1513 Inc(D); +
1514 D^ := $5C; // \ char +
1515 Inc(D); +
1516 Dec(i, 2); +
1517 end +
1518 else +
1519 // S^ is " char? +
1520 if S^ = $22 then +
1521 begin +
1522 D^ := $5C; // \ char +
1523 Inc(D); +
1524 D^ := $22; // " char +
1525 Inc(D); +
1526 Dec(i, 2); +
1527 end +
1528 else +
1529 begin +
1530 D^ := S^; +
1531 Inc(D); +
1532 Dec(i); +
1533 end; +
1534 end; +
1535 Dec(Size); +
1536 Inc(S); +
1537 end; +
1538 +
1539 SetLength(Dest, PByte(D) - PByte(Dest)); +
1540end; +
1541 +
1542class function TFormat_ESCAPE.DoIsValid(const Data; Size: Integer): Boolean; +
1543var +
1544 T: TBytes; +
1545 S: PByte; +
1546begin +
1547 Result := False; +
1548 T := CharTableBinary; +
1549 S := @Data; +
1550 +
1551 while Size > 0 do +
1552 begin +
1553 if (S^ > $7F) or (S^ < 32) then +
1554 Exit; +
1555 +
1556 // start of an escape sequence +
1557 if S^ = $5C then +
1558 begin +
1559 Dec(Size); +
1560 Inc(S); +
1561 +
1562 // \ at the end +
1563 if Size <= 0 then +
1564 Exit; +
1565 +
1566 // X for hex notation +
1567 if UpCaseBinary(S^) = $58 then +
1568 begin +
1569 Inc(S); +
1570 Dec(Size); +
1571 +
1572 // incomplete hex notation follows? +
1573 if (Size < 2) or (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then +
1574 Exit; +
1575 +
1576 Inc(S); +
1577 Dec(Size); +
1578 +
1579 if (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then +
1580 Exit; +
1581 +
1582 Inc(S); +
1583 Dec(Size); +
1584 end +
1585 else +
1586 begin +
1587 // \ with invalid following char? +
1588 if TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7) < 0 then +
1589 Exit; +
1590 +
1591 Dec(Size); +
1592 Inc(S); +
1593 end; +
1594 end +
1595 else +
1596 begin +
1597 Dec(Size); +
1598 Inc(S); +
1599 end; +
1600 end; +
1601 +
1602 Result := True; +
1603end; +
1604 +
1605class procedure TFormat_ESCAPE.DoDecode(const Source; var Dest: TBytes; Size: Integer); +
1606var +
1607 T: TBytes; +
1608 S: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
1609 D: PByte; +
1610 L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes +
1611 i: Integer; +
1612begin +
1613 if Size <= 0 then +
1614 Exit; +
1615 SetLength(Dest, Size); +
1616 +
1617 T := CharTableBinary; +
1618 S := @Source; +
1619 D := @Dest[0]; +
1620 +
1621 L := S + Size; +
1622 +
1623 while S < L do +
1624 begin +
1625 // S^ is \ char? +
1626 if S^ = $5C then +
1627 begin +
1628 Inc(S); +
1629 if S > L then Break; +
1630 // S^ is X char? +
1631 if UpCaseBinary(S^) = $58 then +
1632 begin +
1633 if S + 2 > L then +
1634 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
1635 Inc(S); +
1636 i := TableFindBinary(UpCaseBinary(S^), T, 16); +
1637 if i < 0 then +
1638 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
1639 D^ := i shl 4; +
1640 Inc(S); +
1641 i := TableFindBinary(UpCaseBinary(S^), T, 16); +
1642 if i < 0 then +
1643 raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]); +
1644 D^ := D^ or i; +
1645 end +
1646 else +
1647 begin +
1648 i := TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7); +
1649 if i >= 0 then +
1650 D^ := i + 7 +
1651 else +
1652 D^ := S^; +
1653 end; +
1654 end +
1655 else +
1656 D^ := S^; +
1657 Inc(D); +
1658 Inc(S); +
1659 end; +
1660 +
1661 SetLength(Dest, PByte(D) - PByte(Dest)); +
1662end; +
1663 +
1664{ TFormat_BigEndian16 } +
1665 +
1666class procedure TFormat_BigEndian16.DoDecode(const Source; var Dest: TBytes; +
1667 Size: Integer); +
1668begin +
1669 DoSawp(Source, Dest, Size); +
1670end; +
1671 +
1672class procedure TFormat_BigEndian16.DoEncode(const Source; var Dest: TBytes; +
1673 Size: Integer); +
1674begin +
1675 DoSawp(Source, Dest, Size); +
1676end; +
1677 +
1678class function TFormat_BigEndian16.DoIsValid(const Data; +
1679 Size: Integer): Boolean; +
1680begin +
1681 // swapping bytes in 16 bit mode requires even number of bytes +
1682 result := not Odd(Size); +
1683end; +
1684 +
1685class procedure TFormat_BigEndian16.DoSawp(const Source; var Dest: TBytes; +
1686 Size: Integer); +
1687var +
1688 i : Integer; +
1689begin +
1690 if (Size < 0) or Odd(Size) then +
1691 Exit; +
1692 SetLength(Dest, Size); +
1693 +
1694 if (Size > 0) then +
1695 begin +
1696 Move(Source, Dest[0], Size); +
1697 +
1698 i := 0; +
1699 while (i < length(Dest)) do +
1700 begin +
1701 DECUtil.SwapBytes(Dest[i], 2); +
1702 inc(i, 2); +
1703 end; +
1704 end; +
1705end; +
1706 +
1707{ TFormat_BigEndian32 } +
1708 +
1709class procedure TFormat_BigEndian32.DoDecode(const Source; +
1710 var Dest: TBytes; +
1711 Size: Integer); +
1712begin +
1713 DoSawp(Source, Dest, Size); +
1714end; +
1715 +
1716class procedure TFormat_BigEndian32.DoEncode(const Source; +
1717 var Dest: TBytes; +
1718 Size: Integer); +
1719begin +
1720 DoSawp(Source, Dest, Size); +
1721end; +
1722 +
1723class function TFormat_BigEndian32.DoIsValid(const Data; +
1724 Size: Integer): Boolean; +
1725begin +
1726 result := (Size mod 4) = 0; +
1727end; +
1728 +
1729class procedure TFormat_BigEndian32.DoSawp(const Source; +
1730 var Dest: TBytes; +
1731 Size: Integer); +
1732var +
1733 i : Integer; +
1734 SwapRes : UInt32; +
1735begin +
1736 if (Size < 0) or ((Size mod 4) <> 0) then +
1737 Exit; +
1738 SetLength(Dest, Size); +
1739 +
1740 if (Size > 0) then +
1741 begin +
1742 Move(Source, Dest[0], Size); +
1743 +
1744 i := 0; +
1745 while (i < length(Dest)) do +
1746 begin +
1747 Move(Dest[i], SwapRes, 4); +
1748 SwapRes := DECUtil.SwapUInt32(SwapRes); +
1749 Move(SwapRes, Dest[i], 4); +
1750 inc(i, 4); +
1751 end; +
1752 end; +
1753end; +
1754 +
1755{ TFormat_BigEndian64 } +
1756 +
1757class procedure TFormat_BigEndian64.DoDecode(const Source; var Dest: TBytes; +
1758 Size: Integer); +
1759begin +
1760 DoSawp(Source, Dest, Size); +
1761end; +
1762 +
1763class procedure TFormat_BigEndian64.DoEncode(const Source; var Dest: TBytes; +
1764 Size: Integer); +
1765begin +
1766 DoSawp(Source, Dest, Size); +
1767end; +
1768 +
1769class function TFormat_BigEndian64.DoIsValid(const Data; +
1770 Size: Integer): Boolean; +
1771begin +
1772 result := (Size mod 8) = 0; +
1773end; +
1774 +
1775class procedure TFormat_BigEndian64.DoSawp(const Source; var Dest: TBytes; +
1776 Size: Integer); +
1777var +
1778 i : Integer; +
1779 SwapRes : Int64; +
1780begin +
1781 if (Size < 0) or ((Size mod 8) <> 0) then +
1782 Exit; +
1783 SetLength(Dest, Size); +
1784 +
1785 if (Size > 0) then +
1786 begin +
1787 Move(Source, Dest[0], Size); +
1788 +
1789 i := 0; +
1790 while (i < length(Dest)) do +
1791 begin +
1792 Move(Dest[i], SwapRes, 8); +
1793 SwapRes := DECUtil.SwapInt64(SwapRes); +
1794 Move(SwapRes, Dest[i], 8); +
1795 inc(i, 8); +
1796 end; +
1797 end; +
1798end; +
1799 +
1800{ TFormat_Base32 } +
1801 +
1802class procedure TFormat_Base32.PrepareTable; +
1803var +
1804 c : Char; +
1805begin +
1806 for c := #0 to High(FBase32DecodeTable) do begin +
1807 case c of +
1808 'A'..'Z' : FBase32DecodeTable[c] := Ord(c)-Ord('A'); +
1809 'a'..'z' : FBase32DecodeTable[c] := Ord(c)-Ord('a'); +
1810 '2'..'7' : FBase32DecodeTable[c] := Ord(c)+(26-Ord('2')); +
1811 '0' : FBase32DecodeTable[c] := Ord('O')-Ord('A'); +
1812 else +
1813 FBase32DecodeTable[c] := 255; +
1814 end; +
1815 end; +
1816end; +
1817 +
1818class procedure TFormat_Base32.DoDecode(const Source; +
1819 var Dest: TBytes; +
1820 Size: Integer); +
1821var +
1822 c, b, i, n, d : Integer; +
1823 pIn : PByte; +
1824 pOut : PByte; +
1825begin +
1826 if (Pointer(Source) = nil) then +
1827 begin +
1828 SetLength(Dest, 0); +
1829 Exit; +
1830 end; +
1831 +
1832 if (FBase32DecodeTable['z'] = 0) then +
1833 PrepareTable; +
1834 +
1835 n := Size; +
1836 SetLength(Dest, ((n div 8)+1)*5); +
1837 pIn := @Source; +
1838 pOut := @Dest[0]; +
1839 c := 0; +
1840 b := 0; +
1841 for i := 0 to n-1 do +
1842 begin +
1843 d := FBase32DecodeTable[Chr(pIn^)]; +
1844 if d = 255 then +
1845 begin +
1846 if (Chr(pIn^) = '=') then break; +
1847 raise EDECFormatException.CreateFmt(sInvalidInputCharacter, [pIn^]); +
1848 end; +
1849 +
1850 c := (c shl 5) or d; +
1851 Inc(b, 5); +
1852 if b >= 8 then +
1853 begin +
1854 Dec(b, 8); +
1855 pOut^ := Lo(c shr b); +
1856 Inc(pOut); +
1857 end; +
1858 +
1859 Inc(pIn); +
1860 end; +
1861 n := NativeUInt(pOut)-NativeUInt(@Dest[0]); +
1862 SetLength(Dest, n); +
1863end; +
1864 +
1865class procedure TFormat_Base32.DoEncode(const Source; +
1866 var Dest: TBytes; +
1867 Size: Integer); +
1868var +
1869 i, n, c, b : Integer; +
1870 pIn : PByteArray; +
1871 pOut : PByte; +
1872 PadChars : UInt8; +
1873begin +
1874 if (Size = 0) or (Pointer(Source) = nil) then +
1875 begin +
1876 SetLength(Dest, 0); +
1877 Exit; +
1878 end; +
1879 +
1880 SetLength(Dest, ((Size div 5)+1)*8); +
1881 c := 0; +
1882 b := 0; +
1883 pIn := @Source; +
1884 pOut := @Dest[0]; +
1885 for i := 0 to Size-1 do +
1886 begin +
1887 c := (c shl 8) or pIn[i]; +
1888 Inc(b, 8); +
1889 while b >= 5 do +
1890 begin +
1891 Dec(b, 5); +
1892 pOut^ := Byte(cBase32[((c shr b) and $1F)+Low(string)]); +
1893 Inc(pOut); +
1894 end; +
1895 end; +
1896 +
1897 if b > 0 then +
1898 begin +
1899 pOut^ := Byte(cBase32[((c shl (5-b)) and $1F)+Low(string)]); +
1900 Inc(pOut); +
1901 end; +
1902 +
1903 // Calculate the length of chars needed to encode the data +
1904 n := (NativeUInt(pOut) - NativeUInt(@Dest[0])); +
1905 +
1906 case Size mod 5 of +
1907 1: PadChars := 6; +
1908 2: PadChars := 4; +
1909 3: PadChars := 3; +
1910 4: PadChars := 1; +
1911 else +
1912 PadChars := 0; +
1913 end; +
1914 +
1915 FillChar(Dest[n], PadChars, cPaddingChar); +
1916 SetLength(Dest, n+PadChars); +
1917end; +
1918 +
1919class function TFormat_Base32.DoIsValid(const Data; Size: Integer): Boolean; +
1920var +
1921 S: PByte; +
1922begin +
1923 Result := True; +
1924 S := @Data; +
1925 while Result and (Size > 0) do +
1926 begin +
1927 // A-Z, 2-7 +
1928 if S^ in [$41..$5A, $32..$37, $3D] then +
1929 begin +
1930 Inc(S); +
1931 Dec(Size); +
1932 end +
1933 else +
1934 Result := False; +
1935 end; +
1936end; +
1937 +
1938{ TFormat_Radix64BCrypt } +
1939 +
1940class function TFormat_BCryptBSD.CharTableBinary: TBytes; +
1941begin +
1942 // ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 +
1943 SetLength(result, 64); +
1944 +
1945 result := [$2E, $2F, +
1946 $41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, +
1947 $4E, $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, +
1948 $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, +
1949 $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A, +
1950 $30, $31, $32, $33, $34, $35, $36, $37, $38, $39]; +
1951end; +
1952 +
1953class procedure TFormat_BCryptBSD.DoDecode(const Source; +
1954 var Dest: TBytes; +
1955 Size: Integer); +
1956const +
1957 BT: array[0..127] of shortint = ( +
1958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +
1959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +
1960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, +
1961 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, +
1962 -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, +
1963 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, +
1964 -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, +
1965 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1); +
1966 +
1967var +
1968 Src : PByte; +
1969 c1, c2, c3, c4: Integer; +
1970 +
1971 function GetNextByte: integer; +
1972 var +
1973 b: UInt8; +
1974 begin +
1975 Result := -1; +
1976 if (Size > 0) then +
1977 begin +
1978 b := Src^; +
1979 Inc(Src); +
1980 Dec(Size); +
1981 if (b < 128) then +
1982 Result := BT[b]; +
1983 end; +
1984 end; +
1985 +
1986 procedure SetNextByte(b: Integer); +
1987 begin +
1988 // Put next byte into pdest if LA<ldest, inc LA and pdest +
1989 Dest := Dest + [byte(b and $ff)]; +
1990 end; +
1991 +
1992begin +
1993 Src := @Source; +
1994 +
1995 if (Src = nil) or (Size < 1) then +
1996 exit; +
1997 +
1998 while Size > 0 do +
1999 begin +
2000 c1 := GetNextByte; +
2001 if (c1 < 0) then exit; +
2002 c2 := GetNextByte; +
2003 if (c2 < 0) then exit; +
2004 SetNextByte(((c1 and $3f) shl 2) or (c2 shr 4)); +
2005 +
2006 c3 := GetNextByte; +
2007 if (c3 < 0) then exit; +
2008 SetNextByte(((c2 and $0f) shl 4) or (c3 shr 2)); +
2009 +
2010 c4 := GetNextByte; +
2011 if (c4 < 0) then exit; +
2012 SetNextByte(((c3 and $03) shl 6) or c4); +
2013 end; +
2014end; +
2015 +
2016class procedure TFormat_BCryptBSD.DoEncode(const Source; +
2017 var Dest: TBytes; +
2018 Size: Integer); +
2019var +
2020 CT64 : TBytes; +
2021 c1,c2 : UInt16; +
2022 Src : PByte; +
2023begin +
2024 CT64 := CharTableBinary; +
2025 Src := @Source; +
2026 if (@Src <> nil) then +
2027 begin +
2028 while (Size > 0) do +
2029 begin +
2030 c1 := Src^; +
2031 inc(Src); +
2032 dec(Size); +
2033 +
2034 Dest := Dest + [CT64[(c1 shr 2) and $3f]]; +
2035 c1 := (c1 and $03) shl 4; +
2036 if (Size <= 0) then +
2037 Dest := Dest + [CT64[c1 and $3f]] +
2038 else +
2039 begin +
2040 c2 := Src^; +
2041 inc(Src); +
2042 dec(Size); +
2043 +
2044 c1 := c1 or ((c2 shr 4) and $0f); +
2045 Dest := Dest + [CT64[c1 and $3f]]; +
2046 c1 := (c2 and $0f) shl 2; +
2047 +
2048 if (Size <= 0) then +
2049 Dest := Dest + [CT64[c1 and $3f]] +
2050 else +
2051 begin +
2052 c2 := Src^; +
2053 inc(Src); +
2054 dec(Size); +
2055 +
2056 c1 := c1 or ((c2 shr 6) and $03); +
2057 Dest := Dest + [CT64[c1 and $3f]] + [CT64[c2 and $3f]]; +
2058 end; +
2059 end; +
2060 end; +
2061 end; +
2062end; +
2063 +
2064class function TFormat_BCryptBSD.DoIsValid(const Data; +
2065 Size: Integer): Boolean; +
2066var +
2067 S: PByte; +
2068begin +
2069 Result := True; +
2070 S := @Data; +
2071 while Result and (Size > 0) do +
2072 begin +
2073 // ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 +
2074 if S^ in [$41..$5A, $61..$7A, $2E..$39] then +
2075 begin +
2076 Inc(S); +
2077 Dec(Size); +
2078 end +
2079 else +
2080 Result := False; +
2081 end; +
2082end; +
2083 +
2084initialization +
2085 SetLength(ESCAPE_CodesL, 7); +
2086 ESCAPE_CodesL[0] := $61; +
2087 ESCAPE_CodesL[1] := $62; +
2088 ESCAPE_CodesL[2] := $74; +
2089 ESCAPE_CodesL[3] := $6E; +
2090 ESCAPE_CodesL[4] := $76; +
2091 ESCAPE_CodesL[5] := $66; +
2092 ESCAPE_CodesL[6] := $72; +
2093 +
2094 SetLength(ESCAPE_CodesU, 7); +
2095 ESCAPE_CodesU[0] := $41; +
2096 ESCAPE_CodesU[1] := $42; +
2097 ESCAPE_CodesU[2] := $54; +
2098 ESCAPE_CodesU[3] := $4E; +
2099 ESCAPE_CodesU[4] := $56; +
2100 ESCAPE_CodesU[5] := $46; +
2101 ESCAPE_CodesU[6] := $52; +
2102 +
2103 {$IFNDEF BCB} +
2104 {$IFNDEF ManualRegisterFormatClasses} +
2105 TFormat_HEX.RegisterClass(TDECFormat.ClassList); +
2106 TFormat_HEXL.RegisterClass(TDECFormat.ClassList); +
2107 TFormat_DECMIME32.RegisterClass(TDECFormat.ClassList); +
2108 TFormat_Base32.RegisterClass(TDECFormat.ClassList); +
2109 TFormat_Base64.RegisterClass(TDECFormat.ClassList); +
2110 TFormat_Radix64.RegisterClass(TDECFormat.ClassList); +
2111 TFormat_BCryptBSD.RegisterClass(TDECFormat.ClassList); +
2112 TFormat_UU.RegisterClass(TDECFormat.ClassList); +
2113 TFormat_XX.RegisterClass(TDECFormat.ClassList); +
2114 TFormat_ESCAPE.RegisterClass(TDECFormat.ClassList); +
2115 TFormat_BigEndian16.RegisterClass(TDECFormat.ClassList); +
2116 TFormat_BigEndian32.RegisterClass(TDECFormat.ClassList); +
2117 TFormat_BigEndian64.RegisterClass(TDECFormat.ClassList); +
2118 {$ENDIF} +
2119 {$ENDIF} +
2120 +
2121 // Init the number of chars per line as per RFC 4880 to 76 chars +
2122 TFormat_Radix64.FCharsPerLine := 76; +
2123 +
2124finalization +
2125 +
2126end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECFormatBase(DECFormatBase.pas).html b/Unit Tests/CodeCoverage/Output/DECFormatBase(DECFormatBase.pas).html new file mode 100644 index 00000000..ecb5ff37 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECFormatBase(DECFormatBase.pas).html @@ -0,0 +1,760 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECFormatBase (..\..\Source\DECFormatBase.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECFormatBase.pas

+
Number of lines covered97
Number of lines with code gen114
Line coverage85.1 %
+

+ + +
1{ ***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16 ***************************************************************************** } +
17 +
18/// <summary> +
19/// Contains the base class for all the formatting classes +
20/// </summary> +
21unit DECFormatBase; +
22 +
23interface +
24 +
25{$INCLUDE DECOptions.inc} +
26 +
27uses +
28{$IFDEF FPC} +
29 SysUtils, Classes, +
30{$ELSE} +
31 System.SysUtils, System.Classes, Generics.Collections, +
32{$ENDIF} +
33 DECBaseClass, DECUtil; +
34 +
35type +
36 /// <summary> +
37 /// Class reference type of the TDECFormat base class. This is used for +
38 /// passing formatting classes as parameters or returning those. This is +
39 /// especially useful for the formatting classes, as they only contain +
40 /// class functions. +
41 /// </summary> +
42 TDECFormatClass = class of TDECFormat; +
43 +
44 /// <summary> +
45 /// copy input to output (default format) +
46 /// </summary> +
47 TFormat_Copy = class; +
48 +
49 /// <summary> +
50 /// Basis for all formatting classes. Not to be instantiated directly. +
51 /// </summary> +
52 TDECFormat = class(TDECObject) +
53 protected +
54 /// <summary> +
55 /// Internal method for the actual format conversion. This method needs to +
56 /// be overridden in all the child classes. Converts into the format. +
57 /// </summary> +
58 /// <param name="Source"> +
59 /// Data to be converted +
60 /// </param> +
61 /// <param name="Dest"> +
62 /// Into this parameter the converted data will be written into. +
63 /// </param> +
64 /// <param name="Size"> +
65 /// Number of bytes from source which will get converted. +
66 /// </param> +
67 class procedure DoEncode(const Source; var Dest: TBytes; +
68 Size: Integer); virtual; +
69 /// <summary> +
70 /// Internal method for the actual format conversion. This method needs to +
71 /// be overridden in all the child classes. Converts from the format into +
72 /// the format the data had before encoding it. +
73 /// </summary> +
74 /// <param name="Source"> +
75 /// Data to be converted +
76 /// </param> +
77 /// <param name="Dest"> +
78 /// Into this parameter the converted data will be written into. +
79 /// </param> +
80 /// <param name="Size"> +
81 /// Number of bytes from source which will get converted. +
82 /// </param> +
83 class procedure DoDecode(const Source; var Dest: TBytes; +
84 Size: Integer); virtual; +
85 /// <summary> +
86 /// Internal method for checking whether all bytes of the data to be +
87 /// processed are valid for this particular formatting. This method needs +
88 /// to be overridden in all the child classes. +
89 /// </summary> +
90 /// <param name="Data"> +
91 /// Data to be checked +
92 /// </param> +
93 /// <param name="Size"> +
94 /// Number of bytes from data which will get checked. +
95 /// </param> +
96 class function DoIsValid(const Data; Size: Integer): Boolean; virtual; +
97 public +
98 /// <summary> +
99 /// List of registered DEC classes. Key is the Identity of the class. +
100 /// </summary> +
101 class var ClassList: TDECClassList; +
102 +
103 /// <summary> +
104 /// Tries to find a class type by its name in the list of registered +
105 /// formatting classes +
106 /// </summary> +
107 /// <param name="Name"> +
108 /// Name to look for in the list +
109 /// </param> +
110 /// <returns> +
111 /// Returns the class type if found. if it could not be found a +
112 /// EDECClassNotRegisteredException will be thrown +
113 /// </returns> +
114 /// <exception cref="EDECClassNotRegisteredException"> +
115 /// Exception raised if the class specified by <c>Name</c> is not found +
116 /// </exception> +
117 class function ClassByName(const Name: string): TDECFormatClass; +
118 +
119 /// <summary> +
120 /// Tries to find a class type by its numeric identity DEC assigned to it. +
121 /// Useful for file headers, so they can easily encode numerically which +
122 /// cipher class was being used. +
123 /// </summary> +
124 /// <param name="Identity"> +
125 /// Identity to look for +
126 /// </param> +
127 /// <returns> +
128 /// Returns the class type of the class with the specified identity value +
129 /// or throws an EDECClassNotRegisteredException exception if no class +
130 /// with the given identity has been found +
131 /// </returns> +
132 /// <exception cref="EDECClassNotRegisteredException"> +
133 /// Exception raised if the class specified by <c>Identity</c> is not found +
134 /// </exception> +
135 class function ClassByIdentity(Identity: Int64): TDECFormatClass; +
136 +
137 /// <summary> +
138 /// Calls the internal method which actually does the format conversion. +
139 /// </summary> +
140 /// <param name="Data"> +
141 /// Source data to be converted into the format of this class as +
142 /// RawByteString. Empty strings are allowed. They will simply lead to +
143 // empty return arrays as well. +
144 /// </param> +
145 /// <returns> +
146 /// Data in the format of this formatting algorithm as RawByteString +
147 /// </returns> +
148 class function Encode(const Data: RawByteString): RawByteString; overload; +
149 +
150 /// <summary> +
151 /// Calls the internal method which actually does the format conversion. +
152 /// </summary> +
153 /// <param name="Data"> +
154 /// Source data to be converted into the format of this class as untyped +
155 /// parameter. Empty data is allowed. It will simply lead to empty return +
156 // values as well. +
157 /// </param> +
158 /// <param name="Size"> +
159 /// Size of the data passed via data in bytes. +
160 /// </param> +
161 /// <returns> +
162 /// Data in the format of this formatting algorithm as RawByteString +
163 /// </returns> +
164 class function Encode(const Data; Size: Integer): RawByteString; overload; +
165 +
166 /// <summary> +
167 /// Calls the internal method which actually does the format conversion. +
168 /// </summary> +
169 /// <param name="Data"> +
170 /// Source data to be converted into the format of this class as Byte Array. +
171 /// Empty arrays of size 0 are allowed. They will simply lead to empty return +
172 // arrays as well. +
173 /// </param> +
174 /// <returns> +
175 /// Data in the format of this formatting algorithm as byte array. +
176 /// </returns> +
177 class function Encode(const Data: TBytes): TBytes; overload; +
178 +
179 /// <summary> +
180 /// Calls the internal method which actually does the format conversion. +
181 /// </summary> +
182 /// <param name="Data"> +
183 /// Source data to be converted from the format of this class as byte array +
184 /// into the original byte representation. Empty arrays of size 0 are allowed. +
185 // They will simply lead to empty return arrays as well. +
186 /// </param> +
187 /// <returns> +
188 /// Data in the original byte format it had before getting encoded with +
189 /// this formatting. +
190 /// </returns> +
191 class function Decode(const Data: TBytes): TBytes; overload; +
192 +
193 /// <summary> +
194 /// Calls the internal method which actually does the format conversion. +
195 /// </summary> +
196 /// <param name="Data"> +
197 /// Source data to be converted from the format of this class as +
198 /// RawByteString into the original representation. Empty strings are allowed. +
199 /// They will simply lead to empty return arrays as well. +
200 /// </param> +
201 /// <returns> +
202 /// Data in the format of this formatting algorithm as RawByteString +
203 /// </returns> +
204 class function Decode(const Data: RawByteString): RawByteString; overload; +
205 +
206 /// <summary> +
207 /// Calls the internal method which actually does the format conversion. +
208 /// </summary> +
209 /// <param name="Data"> +
210 /// Source data to be converted from the format of this class as untyped +
211 /// parameter into the original representation. Empty data is allowed. +
212 /// It will simply lead to empty return values as well. +
213 /// </param> +
214 /// <param name="Size"> +
215 /// Size of the data passed via data in bytes. +
216 /// </param> +
217 /// <returns> +
218 /// Data in the format of this formatting algorithm as RawByteString +
219 /// </returns> +
220 class function Decode(const Data; Size: Integer): RawByteString; overload; +
221 +
222 /// <summary> +
223 /// Checks whether the data passed to this method only contains chars +
224 /// valid for this specific formatting. +
225 /// </summary> +
226 /// <param name="Data"> +
227 /// Untyped parameter with the data to be checked +
228 /// </param> +
229 /// <param name="Size"> +
230 /// Size of the data to be checked in bytes +
231 /// </param> +
232 /// <returns> +
233 /// true, if the input data contains only characters valid for this format +
234 /// </returns> +
235 class function IsValid(const Data; Size: Integer): Boolean; overload; +
236 +
237 /// <summary> +
238 /// Checks whether the data passed to this method only contains chars +
239 /// valid for this specific formatting. +
240 /// </summary> +
241 /// <param name="Data"> +
242 /// Byte array with the data to be checked +
243 /// </param> +
244 /// <returns> +
245 /// true, if the input data contains only characters valid for this format +
246 /// </returns> +
247 class function IsValid(const Data: TBytes): Boolean; overload; +
248 +
249 /// <summary> +
250 /// Checks whether the data passed to this method only contains chars +
251 /// valid for this specific formatting. +
252 /// </summary> +
253 /// <param name="Text"> +
254 /// RawByteString with the data to be checked +
255 /// </param> +
256 /// <returns> +
257 /// true, if the input data contains only characters valid for this format +
258 /// </returns> +
259 class function IsValid(const Text: RawByteString): Boolean; overload; +
260 +
261 /// <summary> +
262 /// Converts the ordinal number of an ASCII char given as byte into the +
263 /// ordinal number of the corresponding upper case ASCII char. Works only +
264 /// on a-z and works like the System.Pas variant just on bytes instead of chars +
265 /// </summary> +
266 /// <param name="b"> +
267 /// Ordinal ASCII char value to be converted to upper case +
268 /// </param> +
269 /// <returns> +
270 /// Uppercase ordinal number if the number passed in as parameter belongs to +
271 /// a char in the a-z range. Otherwise the number passed in will be returned. +
272 /// </returns> +
273 class function UpCaseBinary(b: Byte): Byte; +
274 +
275 /// <summary> +
276 /// Looks for the index of a given byte in a byte-array. +
277 /// </summary> +
278 /// <param name="Value"> +
279 /// Byte value to be searched in the array +
280 /// </param> +
281 /// <param name="Table"> +
282 /// Byte-array where the value is searched in +
283 /// </param> +
284 /// <param name="Len"> +
285 /// Maximum index until which the search will be performed. If Len is higher +
286 /// than length(Table) the latter will be used as maximum +
287 /// </param> +
288 /// <returns> +
289 /// Index of the first appearance of the searched value. If it cannot be found +
290 /// the result will be -1. The index is 0 based. +
291 /// </returns> +
292 class function TableFindBinary(Value: Byte; Table: TBytes; +
293 Len: Integer): Integer; +
294 end; +
295 +
296 /// <summary> +
297 /// Formatting class which doesn't apply any transformation to the data +
298 /// passed in. It simply copies it from Source to Dest. +
299 /// </summary> +
300 TFormat_Copy = class(TDECFormat) +
301 protected +
302 /// <summary> +
303 /// Copies the data contained in Source into Dest without any conversion +
304 /// </summary> +
305 /// <param name="Source"> +
306 /// Variable from which Size bytes will be copied to Dest +
307 /// </param> +
308 /// <param name="Dest"> +
309 /// Byte-array where Source will be copied into. It will be dimensioned +
310 /// to a length of Size internally. +
311 /// </param> +
312 /// <param name="Size"> +
313 /// Number of bytes to copy from Soruce to Dest +
314 /// </param> +
315 class procedure DoEncode(const Source; var Dest: TBytes; +
316 Size: Integer); override; +
317 /// <summary> +
318 /// Copies the data contained in Source into Dest without any conversion +
319 /// </summary> +
320 /// <param name="Source"> +
321 /// Variable from which Size bytes will be copied to Dest +
322 /// </param> +
323 /// <param name="Dest"> +
324 /// Byte-array where Source will be copied into. It will be dimensioned +
325 /// to a length of Size internally. +
326 /// </param> +
327 /// <param name="Size"> +
328 /// Number of bytes to copy from Soruce to Dest +
329 /// </param> +
330 class procedure DoDecode(const Source; var Dest: TBytes; +
331 Size: Integer); override; +
332 /// <summary> +
333 /// Dummy function to check if Source is valid for this particular format +
334 /// </summary> +
335 /// <param name="Data"> +
336 /// Data to be checked for validity. In this dummy case it will only be +
337 /// checked for Size >= 0 +
338 /// </param> +
339 /// <param name="Size"> +
340 /// Number of bytes the Source to be checked contains +
341 /// </param> +
342 /// <returns> +
343 /// true if Size >= 0 +
344 /// </returns> +
345 class function DoIsValid(const Data; Size: Integer): Boolean; override; +
346 public +
347 end; +
348 +
349 /// <summary> +
350 /// Returns the passed class type if it is not nil. Otherwise the class type +
351 /// of the TFormat_Copy class is being returned. +
352 /// </summary> +
353 /// <param name="FormatClass"> +
354 /// Class type of a formatting class like TFormat_HEX or nil, if no formatting +
355 /// is desired. +
356 /// </param> +
357 /// <returns> +
358 /// Passed class type or TFormat_Copy class type, depending on FormatClass +
359 /// parameter value. +
360 /// </returns> +
361function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass; +
362 +
363/// <summary> +
364/// Searches a registered formatting class by name. +
365/// </summary> +
366/// <param name="Name"> +
367/// Unique long (TFormat_HEXL) or short (HEXL) name of the class to be searched. +
368/// </param> +
369/// <returns> +
370/// Class type, which can be used to create an object isntance from. Raises an +
371/// EDECClassNotRegisteredException exception if the class cannot be found in +
372/// the list of registered format classes. +
373/// </returns> +
374/// <exception cref="EDECClassNotRegisteredException"> +
375/// Exception raised if the class specified by <c>Name</c> is not found +
376/// </exception> +
377function FormatByName(const Name: string): TDECFormatClass; +
378 +
379/// <summary> +
380/// Searches a registered formatting class by identity. The identity is some +
381/// integer value calculated on the basis of the class name, the length of the +
382/// name and a fixed prefix and by calculating a CRC32 checksum of this. +
383/// </summary> +
384/// <param name="Identity"> +
385/// Unique identity of the class to be searched. +
386/// </param> +
387/// <returns> +
388/// Class type, which can be used to create an object isntance from. Raises an +
389/// EDECClassNotRegisteredException exception if the class cannot be found in +
390/// the list of registered format classes. +
391/// </returns> +
392/// <exception cref="EDECClassNotRegisteredException"> +
393/// Exception raised if the class specified by <c>Identity</c> is not found +
394/// </exception> +
395function FormatByIdentity(Identity: Int64): TDECFormatClass; +
396 +
397implementation +
398 +
399uses +
400 DECTypes; +
401 +
402function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass; +
403begin +
404 if FormatClass <> nil then +
405 Result := FormatClass +
406 else +
407 Result := TFormat_Copy; +
408end; +
409 +
410function FormatByName(const Name: string): TDECFormatClass; +
411begin +
412 Result := TDECFormatClass(TDECFormat.ClassList.ClassByName(Name)); +
413end; +
414 +
415function FormatByIdentity(Identity: Int64): TDECFormatClass; +
416begin +
417 Result := TDECFormatClass(TDECFormat.ClassList.ClassByIdentity(Identity)); +
418end; +
419 +
420{ TDECFormat } +
421 +
422class procedure TDECFormat.DoEncode(const Source; var Dest: TBytes; +
423 Size: Integer); +
424begin +
425 // C++ does not support virtual static functions thus the base cannot be +
426 // marked 'abstract'. This is our workaround: +
427 raise EDECAbstractError.Create(GetShortClassName); +
428end; +
429 +
430class procedure TDECFormat.DoDecode(const Source; var Dest: TBytes; +
431 Size: Integer); +
432begin +
433 // C++ does not support virtual static functions thus the base cannot be +
434 // marked 'abstract'. This is our workaround: +
435 raise EDECAbstractError.Create(GetShortClassName); +
436end; +
437 +
438class function TDECFormat.DoIsValid(const Data; Size: Integer): Boolean; +
439begin +
440{$IFDEF FPC} +
441 Result := False; // suppress FPC compiler warning +
442{$ENDIF FPC} +
443 // C++ does not support virtual static functions thus the base cannot be +
444 // marked 'abstract'. This is our workaround: +
445 raise EDECAbstractError.Create(GetShortClassName); +
446end; +
447 +
448class function TDECFormat.Encode(const Data: RawByteString): RawByteString; +
449var +
450 b: TBytes; +
451begin +
452 if Length(Data) > 0 then +
453 begin +
454 {$IF CompilerVersion >= 24.0} +
455 DoEncode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)])); +
456 {$ELSE} +
457 DoEncode(Data[1], b, Length(Data) * SizeOf(Data[1])); +
458 {$IFEND} +
459 Result := BytesToRawString(b); +
460 end +
461 else +
462 SetLength(Result, 0); +
463end; +
464 +
465class function TDECFormat.Encode(const Data: TBytes): TBytes; +
466var +
467 b: TBytes; +
468begin +
469 if Length(Data) > 0 then +
470 begin +
471 DoEncode(Data[0], b, Length(Data)); +
472 Result := b; +
473 end +
474 else +
475 SetLength(Result, 0); +
476end; +
477 +
478class function TDECFormat.ClassByIdentity(Identity: Int64): TDECFormatClass; +
479begin +
480 Result := TDECFormatClass(ClassList.ClassByIdentity(Identity)); +
481end; +
482 +
483class function TDECFormat.ClassByName(const Name: string): TDECFormatClass; +
484begin +
485 Result := TDECFormatClass(ClassList.ClassByName(Name)); +
486end; +
487 +
488class function TDECFormat.Decode(const Data: TBytes): TBytes; +
489var +
490 b: TBytes; +
491begin +
492 if Length(Data) > 0 then +
493 begin +
494 DoDecode(Data[0], b, Length(Data)); +
495 Result := b; +
496 end +
497 else +
498 SetLength(Result, 0); +
499end; +
500 +
501class function TDECFormat.Decode(const Data: RawByteString): RawByteString; +
502var +
503 b: TBytes; +
504begin +
505 if Length(Data) > 0 then +
506 begin +
507 {$IF CompilerVersion >= 24.0} +
508 DoDecode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)])); +
509 {$ELSE} +
510 DoDecode(Data[1], b, Length(Data) * SizeOf(Data[1])); +
511 {$IFEND} +
512 Result := BytesToRawString(b); +
513 end +
514 else +
515 SetLength(Result, 0); +
516end; +
517 +
518class function TDECFormat.Decode(const Data; Size: Integer): RawByteString; +
519var +
520 b: TBytes; +
521begin +
522 if Size > 0 then +
523 begin +
524 DoDecode(Data, b, Size); +
525 Result := BytesToRawString(b); +
526 end +
527 else +
528 SetLength(Result, 0); +
529end; +
530 +
531class function TDECFormat.Encode(const Data; Size: Integer): RawByteString; +
532var +
533 b: TBytes; +
534begin +
535 if Size > 0 then +
536 begin +
537 DoEncode(Data, b, Size); +
538 Result := BytesToRawString(b); +
539 end +
540 else +
541 SetLength(Result, 0); +
542end; +
543 +
544class function TDECFormat.IsValid(const Data; Size: Integer): Boolean; +
545begin +
546 Result := DoIsValid(Data, Size); +
547end; +
548 +
549class function TDECFormat.IsValid(const Data: TBytes): Boolean; +
550begin +
551 Result := (Length(Data) = 0) or (DoIsValid(Data[0], Length(Data))); +
552end; +
553 +
554class function TDECFormat.IsValid(const Text: RawByteString): Boolean; +
555begin +
556 {$IF CompilerVersion >= 24.0} +
557 Result := (Length(Text) = 0) or +
558 (DoIsValid(Text[Low(Text)], Length(Text) * SizeOf(Text[Low(Text)]))); +
559 {$ELSE} +
560 Result := (Length(Text) = 0) or +
561 (DoIsValid(Text[1], Length(Text) * SizeOf(Text[1]))); +
562 {$IFEND} +
563end; +
564 +
565class function TDECFormat.UpCaseBinary(b: Byte): Byte; +
566begin +
567 Result := b; +
568 if Result in [$61 .. $7A] then +
569 Dec(Result, $61 - $41); +
570end; +
571 +
572class function TDECFormat.TableFindBinary(Value: Byte; Table: TBytes; +
573 Len: Integer): Integer; +
574var +
575 i: Integer; +
576begin +
577 Result := -1; +
578 i := 0; +
579 while (i <= Len) and (i < Length(Table)) do +
580 begin +
581 if (Table[i] = Value) then +
582 begin +
583 Result := i; +
584 break; +
585 end; +
586 +
587 inc(i); +
588 end; +
589end; +
590 +
591{ TFormat_Copy } +
592 +
593class procedure TFormat_Copy.DoEncode(const Source; var Dest: TBytes; +
594 Size: Integer); +
595begin +
596 SetLength(Dest, Size); +
597 if Size <> 0 then +
598 Move(Source, Dest[0], Size); +
599end; +
600 +
601class procedure TFormat_Copy.DoDecode(const Source; var Dest: TBytes; +
602 Size: Integer); +
603begin +
604 SetLength(Dest, Size); +
605 if Size <> 0 then +
606 Move(Source, Dest[0], Size); +
607end; +
608 +
609class function TFormat_Copy.DoIsValid(const Data; Size: Integer): Boolean; +
610begin +
611 Result := Size >= 0; +
612end; +
613 +
614{$IFDEF DELPHIORBCB} +
615procedure ModuleUnload(Instance: NativeUInt); +
616var // automaticaly deregistration/releasing +
617 i: Integer; +
618 Items: TArray<TPair<Int64, TDECCLass>>; +
619begin +
620 // C++Builder calls this function for our own module, but we destroy the ClassList +
621 // in that case in the finalization section anyway. +
622 if (Instance <> HInstance) and +
623 (TDECFormat.ClassList <> nil) and (TDECFormat.ClassList.Count > 0) then +
624 begin +
625 Items := TDECFormat.ClassList.ToArray; +
626 for i := Length(Items) - 1 downto 0 do +
627 begin +
628 if FindClassHInstance(Items[i].Value) = HINST(HInstance) then +
629 TDECFormat.ClassList.Remove(Items[i].Key); +
630 end; +
631 end; +
632end; +
633{$ENDIF DELPHIORBCB} +
634 +
635initialization +
636 +
637 // Code for packages and dynamic extension of the class registration list +
638 {$IFDEF DELPHIORBCB} +
639 AddModuleUnloadProc(ModuleUnload); +
640 {$ENDIF DELPHIORBCB} +
641 TDECFormat.ClassList := TDECClassList.Create; +
642 +
643 TFormat_Copy.RegisterClass(TDECFormat.ClassList); +
644 +
645finalization +
646 +
647{$IFNDEF BCB} +
648 // Ensure no further instances of classes registered in the registration list +
649 // are possible through the list after this unit has been unloaded by unloding +
650 // the package this unit is in +
651 {$IFDEF DELPHIORBCB} +
652 RemoveModuleUnloadProc(ModuleUnload); +
653 {$ENDIF DELPHIORBCB} +
654{$ENDIF} +
655 +
656 TDECFormat.ClassList.Free; +
657end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECHash(DECHash.pas).html b/Unit Tests/CodeCoverage/Output/DECHash(DECHash.pas).html new file mode 100644 index 00000000..5d4c2154 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECHash(DECHash.pas).html @@ -0,0 +1,5804 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHash (..\..\Source\DECHash.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECHash.pas

+
Number of lines covered2619
Number of lines with code gen2639
Line coverage99.2 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Hash functions. Be aware that the x86 ASM implementations, if activated +
20/// by the define, are provided by DECHash.asm86.inc! +
21/// </summary> +
22unit DECHash; +
23 +
24interface +
25 +
26{$INCLUDE DECOptions.inc} +
27 +
28uses +
29 {$IFDEF FPC} +
30 SysUtils, Classes, +
31 {$ELSE} +
32 System.SysUtils, System.Classes, +
33 {$ENDIF} +
34 DECBaseClass, DECFormatBase, DECUtil, DECHashBase, DECHashAuthentication, +
35 DECHashBitBase, DECHashInterface, DECTypes; +
36 +
37type +
38 // Hash Classes +
39 THash_MD2 = class; +
40 THash_MD4 = class; +
41 THash_MD5 = class; +
42 THash_RipeMD128 = class; +
43 THash_RipeMD160 = class; +
44 THash_RipeMD256 = class; +
45 THash_RipeMD320 = class; +
46 THash_SHA0 = class; // SHA-0 +
47 THash_SHA1 = class; // SHA-1 +
48 THash_SHA224 = class; // SHA-2, SHA-224 +
49 THash_SHA256 = class; // SHA-2, SHA-256 +
50 THash_SHA384 = class; // SHA-2, SHA-384 +
51 THash_SHA512 = class; // SHA-2, SHA-512 +
52 THash_Keccak_224 = class; // version of THash_SHA3_224 before that became the final standard +
53 THash_Keccak_256 = class; // version of THash_SHA3_256 before that became the final standard +
54 THash_Keccak_384 = class; // version of THash_SHA3_384 before that became the final standard +
55 THash_Keccak_512 = class; // version of THash_SHA3_512 before that became the final standard +
56 THash_SHA3_224 = class; +
57 THash_SHA3_256 = class; +
58 THash_SHA3_384 = class; +
59 THash_SHA3_512 = class; +
60 THash_Shake128 = class; +
61 THash_Shake256 = class; +
62 THash_Haval128 = class; +
63 THash_Haval160 = class; // Haval 160, 3 Rounds +
64 THash_Haval192 = class; // Haval 192, 4 Rounds +
65 THash_Haval224 = class; // Haval 224, 4 Rounds +
66 THash_Haval256 = class; // Haval 256, 5 Rounds +
67 THash_Tiger = class; +
68 THash_Panama = class; +
69 {$IFDEF OLD_WHIRLPOOL_NAMES} +
70 THash_Whirlpool = class; +
71 THash_Whirlpool1New = class; +
72 {$ENDIF} +
73 +
74 THash_Whirlpool0 = class; +
75 THash_Whirlpool1 = class; // differs, depending on OLD_WHIRLPOOL_NAMES define +
76 THash_WhirlpoolT = class; +
77 +
78 THash_Square = class; +
79 THash_Snefru128 = class; // derived from the Xerox Secure Hash Function +
80 THash_Snefru256 = class; // " - " +
81 THash_Sapphire = class; +
82 +
83 /// <summary> +
84 /// Implementation of the MD2 hash algorithm. Considered to be broken, +
85 /// at least on paper. +
86 /// </summary> +
87 THash_MD2 = class(TDECHashExtended) +
88 private +
89 FDigest: array[0..63] of Byte; +
90 protected +
91 procedure DoInit; override; +
92 procedure DoTransform(Buffer: PUInt32Array); override; +
93 procedure DoDone; override; +
94 public +
95 function Digest: PByteArray; override; +
96 class function DigestSize: UInt32; override; +
97 class function BlockSize: UInt32; override; +
98 end; +
99 +
100 /// <summary> +
101 /// Base class for the MD4 hash alrogithm and for other hash-algorithms which +
102 /// are close relatives to the MD4 algorithm like the RipeMD ones. +
103 /// </summary> +
104 THashBaseMD4 = class(TDECHashExtended) +
105 private +
106 FDigest: array[0..9] of UInt32; +
107 protected +
108 procedure DoInit; override; +
109 procedure DoDone; override; +
110 public +
111 function Digest: PByteArray; override; +
112 class function DigestSize: UInt32; override; +
113 class function BlockSize: UInt32; override; +
114 end; +
115 +
116 /// <summary> +
117 /// The MD4 algorithm is considered to be broken, at least on paper. +
118 /// </summary> +
119 THash_MD4 = class(THashBaseMD4) +
120 protected +
121 procedure DoTransform(Buffer: PUInt32Array); override; +
122 end; +
123 +
124 /// <summary> +
125 /// The MD5 algorithm is considered to be broken. Using it in HMAC algorithms +
126 /// is still ok. +
127 /// </summary> +
128 THash_MD5 = class(THashBaseMD4) +
129 protected +
130 procedure DoTransform(Buffer: PUInt32Array); override; +
131 end; +
132 +
133 /// <summary> +
134 /// Do not confuse with the original RipeMD algorithm which ís being +
135 /// considered to be unsafe anyway. Considered to be broken due to the only +
136 /// 128 Bit long message digest result. +
137 /// </summary> +
138 THash_RipeMD128 = class(THashBaseMD4) +
139 protected +
140 procedure DoTransform(Buffer: PUInt32Array); override; +
141 end; +
142 +
143 THash_RipeMD160 = class(THashBaseMD4) +
144 protected +
145 procedure DoTransform(Buffer: PUInt32Array); override; +
146 public +
147 class function DigestSize: UInt32; override; +
148 end; +
149 +
150 THash_RipeMD256 = class(THashBaseMD4) +
151 protected +
152 procedure DoInit; override; +
153 procedure DoTransform(Buffer: PUInt32Array); override; +
154 public +
155 class function DigestSize: UInt32; override; +
156 end; +
157 +
158 THash_RipeMD320 = class(THashBaseMD4) +
159 protected +
160 procedure DoTransform(Buffer: PUInt32Array); override; +
161 public +
162 class function DigestSize: UInt32; override; +
163 end; +
164 +
165 /// <summary> +
166 /// Implementation of the SHA0 hash algorithm. This is the original version +
167 /// of the SHA algorithm released in 1993. In 1995 some security issues have +
168 /// been identified in this algorithm so he got replaced by the slightly +
169 /// modified SHA1 algorithm. The recommendation is to not use this SHA0 +
170 /// algorithm at all. It is only being provided for scenarios where +
171 /// compatibility with this algorithm is required. +
172 /// </summary> +
173 THash_SHA0 = class(THashBaseMD4) +
174 protected +
175 procedure DoTransform(Buffer: PUInt32Array); override; +
176 procedure DoDone; override; +
177 public +
178 class function DigestSize: UInt32; override; +
179 end; +
180 +
181 {$IFDEF OLD_SHA_NAME} +
182 /// <summary> +
183 /// Implementation of the SHA0 hash algorithm. This is the original version +
184 /// of the SHA algorithm released in 1993. In 1995 some security issues have +
185 /// been identified in this algorithm so he got replaced by the slightly +
186 /// modified SHA1 algorithm. The recommendation is to not use this SHA0 +
187 /// algorithm at all. It is only being provided for scenarios where +
188 /// compatibility with this algorithm is required. +
189 /// </summary> +
190 THash_SHA = class(THash_SHA0) +
191 {$IFDEF X86ASM} +
192 protected +
193 procedure DoTransform(Buffer: PUInt32Array); override; +
194 end +
195 {$ENDIF}; +
196 +
197 {$ENDIF} +
198 +
199 /// <summary> +
200 /// Implementation of the SHA1 hash algorithm. At least since February 2017 +
201 /// collisions have been found for this algorithm so it's now completely +
202 /// clear that it should not be used if possible! Use SHA256 or SHA512 +
203 /// instead! +
204 /// </summary> +
205 THash_SHA1 = class(THash_SHA0); +
206 +
207 /// <summary> +
208 /// This algorithm is part of the SHA2 series of hash algorithms. +
209 /// </summary> +
210 THash_SHA256 = class(THash_SHA0) +
211 protected +
212 procedure DoInit; override; +
213 procedure DoTransform(Buffer: PUInt32Array); override; +
214 public +
215 class function DigestSize: UInt32; override; +
216 end; +
217 +
218 /// <summary> +
219 /// This algorithm is part of the SHA2 series of hash algorithms. +
220 /// German BSI recommends not to use this algorithm, they recommend SHA256 +
221 /// or higher instead. +
222 /// </summary> +
223 THash_SHA224 = class(THash_SHA256) +
224 protected +
225 procedure DoInit; override; +
226 public +
227 class function DigestSize: UInt32; override; +
228 class function BlockSize: UInt32; override; +
229 end; +
230 +
231 /// <summary> +
232 /// This algorithm is part of the SHA2 series of hash algorithms. +
233 /// </summary> +
234 THash_SHA384 = class(TDECHashExtended) +
235 private +
236 FDigest: array[0..7] of Int64; +
237 protected +
238 procedure DoInit; override; +
239 procedure DoTransform(Buffer: PUInt32Array); override; +
240 procedure DoDone; override; +
241 public +
242 function Digest: PByteArray; override; +
243 class function DigestSize: UInt32; override; +
244 class function BlockSize: UInt32; override; +
245 end; +
246 +
247 /// <summary> +
248 /// This algorithm is part of the SHA2 series of hash algorithms. +
249 /// </summary> +
250 THash_SHA512 = class(THash_SHA384) +
251 protected +
252 procedure DoInit; override; +
253 public +
254 class function DigestSize: UInt32; override; +
255 end; +
256 +
257 /// <summary> +
258 /// Base class for tall SHA3 implementations +
259 /// </summary> +
260 THash_SHA3Base = class(TDECHashBit) +
261 strict private +
262 // Declarations for SHA3. Must be declared here to allow private methods +
263 // to use these types as well. +
264 const +
265 KeccakPermutationSize = 1600; +
266 /// <summary> +
267 /// Maximum bitrate? If yes this would be higher than any value listed here: +
268 /// https://keccak.team/keccak.html +
269 /// </summary> +
270 KeccakMaximumRate = 1536; +
271 /// <summary> +
272 /// KeccakPermutationSize converted into bytes instead of bits +
273 /// </summary> +
274 KeccakPermutationSizeInBytes = KeccakPermutationSize div 8; +
275 /// <summary> +
276 /// KeccakMaximumRate converted into bytes instead of bits +
277 /// </summary> +
278 KeccakMaximumRateInBytes = KeccakMaximumRate div 8; +
279 +
280 /// <summary> +
281 /// Precalculated values for the 24 rounds of the algorithm +
282 /// </summary> +
283 cRoundConstants : array[0..23] of UInt64 = ( +
284 UInt64($0000000000000001), UInt64($0000000000008082), +
285 UInt64($800000000000808A), UInt64($8000000080008000), +
286 UInt64($000000000000808B), UInt64($0000000080000001), +
287 UInt64($8000000080008081), UInt64($8000000000008009), +
288 UInt64($000000000000008A), UInt64($0000000000000088), +
289 UInt64($0000000080008009), UInt64($000000008000000A), +
290 UInt64($000000008000808B), UInt64($800000000000008B), +
291 UInt64($8000000000008089), UInt64($8000000000008003), +
292 UInt64($8000000000008002), UInt64($8000000000000080), +
293 UInt64($000000000000800A), UInt64($800000008000000A), +
294 UInt64($8000000080008081), UInt64($8000000000008080), +
295 UInt64($0000000080000001), UInt64($8000000080008008) +
296 ); +
297 type +
298 TState_B = packed array[0..KeccakPermutationSizeInBytes-1] of UInt8; +
299 TState_L = packed array[0..(KeccakPermutationSizeInBytes) div 4 - 1] of Int32; +
300 TKDQueue = packed array[0..KeccakMaximumRateInBytes-1] of UInt8; +
301 +
302 /// <summary> +
303 /// Calculation status of the algorithm +
304 /// </summary> +
305 TSpongeState = packed record +
306 State : TState_B; +
307 /// <summary> +
308 /// Data of the queue to be processed +
309 /// </summary> +
310 DataQueue : TKDQueue; +
311 /// <summary> +
312 /// Bitrate r of Keccak +
313 /// </summary> +
314 Rate : UInt16; +
315 /// <summary> +
316 /// Capacity c of Keccak +
317 /// </summary> +
318 Capacity : UInt16; +
319 /// <summary> +
320 /// How many bits are in the queue +
321 /// </summary> +
322 BitsInQueue : UInt16; +
323 /// <summary> +
324 /// Length of the hash value to generate in bit +
325 /// </summary> +
326 FixedOutputLength : UInt16; +
327 /// <summary> +
328 /// Number of bits which can be squeezed +
329 /// </summary> +
330 bitsAvailableForSqueezing : UInt16; +
331 /// <summary> +
332 /// Flag which is set to true when entering the +
333 /// squeezing state. Suppresses further absorb calls. +
334 /// </summary> +
335 SqueezeActive : Boolean; +
336 /// <summary> +
337 /// If an operation fails it sets this error code +
338 /// </summary> +
339 // Fill3: packed array[405..HASHCTXSIZE] of byte; +
340 end; +
341 +
342 /// <summary> +
343 /// Buffer type +
344 /// </summary> +
345 TBABytes = array[0..65535] of UInt8; +
346 /// <summary> +
347 /// Pointer to a buffer +
348 /// </summary> +
349 PBABytes = ^TBABytes; +
350 +
351 /// <summary> +
352 /// Type for the generated hash value +
353 /// </summary> +
354 TSHA3Digest = array of UInt8; +
355 +
356 /// <summary> +
357 /// Function to give input data for the sponge function to absorb +
358 /// </summary> +
359 /// <param name="Data"> +
360 /// Pointer to the data to work on +
361 /// </param> +
362 /// <param name="DatabitLen"> +
363 /// Length of the data passed via the pointer in bit +
364 /// </param> +
365 /// <remarks> +
366 /// Raises an EDECHashEception when DataBit len not divideable by 8 without +
367 /// reminder or when already in squeezin state. +
368 /// </remarks> +
369 /// <exception cref="EDECHashException"> +
370 /// Exception raised if DataBit len not divideable by 8 without +
371 /// reminder or when already in squeezin state. +
372 /// </exception> +
373 procedure Absorb(Data: PBABytes; DatabitLen: Int32); +
374 +
375 /// <summary> +
376 /// Absorb remaining bits from queue +
377 /// </summary> +
378 procedure AbsorbQueue; +
379 +
380 {$IFDEF PUREPASCAL} +
381 /// <summary> +
382 /// Circular left shift +
383 /// </summary> +
384 /// <param name="x"> +
385 /// Value to be shifted +
386 /// </param> +
387 /// <param name="c"> +
388 /// Number of bits the value will be shifted +
389 /// </param> +
390 /// <returns> +
391 /// Shifted value +
392 /// </returns> +
393 function RotL(const x: UInt64; c: Integer): UInt64; inline; +
394 +
395 /// <summary> +
396 /// Circular left shift by 1 +
397 /// </summary> +
398 /// <param name="x"> +
399 /// Value to be shifted +
400 /// </param> +
401 /// <returns> +
402 /// Shifted value +
403 /// </returns> +
404 function RotL1(var x: UInt64): UInt64; inline; +
405 {$ENDIF} +
406 /// <summary> +
407 /// Permutates the values in the passed state +
408 /// </summary> +
409 /// <param name="State"> +
410 /// State to permutate +
411 /// </param> +
412 procedure KeccakPermutation(var State: TState_L); +
413 +
414 /// <summary> +
415 /// Carries out the XorIntoState and the permutation +
416 /// </summary> +
417 /// <param name="State"> +
418 /// State of the algorithm which gets modified by the permutation in this method +
419 /// </param> +
420 /// <param name="Data"> +
421 /// Pointer to the data to operate on +
422 /// </param> +
423 /// <param name="LaneCount"> +
424 /// Number of times the loop in this algorithm has tpo be carried out +
425 /// </param> +
426 procedure KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer); +
427 +
428 /// <summary> +
429 /// Include input message data bits into the sponge state +
430 /// </summary> +
431 procedure XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer); +
432 +
433 /// <summary> +
434 /// Update state with DataBitLen bits from data. May be called multiple +
435 /// times, only the last DataBitLen may be a non-multiple of 8 +
436 /// (the corresponding byte) must be MSB aligned, i.e. in the +
437 /// (databitlen and 7) most significant bits. +
438 /// </summary> +
439 /// <param name="data"> +
440 /// Data to work on +
441 /// </param> +
442 /// <param name="DataBitLen"> +
443 /// Length of the data in bits +
444 /// </param> +
445 procedure DoUpdate(Data: Pointer; DataBitLen: Int32); +
446 +
447 /// <summary> +
448 /// Squeeze output data from the sponge function. If the sponge function +
449 /// was in the absorbing phase, this function switches it to the squeezing +
450 /// phase. +
451 /// </summary> +
452 /// <param name="Output"> +
453 /// pointer to the buffer where to store the output data +
454 /// </param> +
455 /// <param name="OutputLength"> +
456 /// number of output bits desired, must be a multiple of 8. +
457 /// </param> +
458 /// <returns> +
459 /// 0 if successful, 1 otherwise. +
460 /// </returns> +
461 /// <exception cref="EDECHashException"> +
462 /// Exception raised if <c>OutputLength</c> is not a multiple of 8 +
463 /// </exception> +
464 procedure Squeeze(var Output: TSHA3Digest; OutputLength: Int32); +
465 +
466 /// <summary> +
467 /// Update final bits in LSB format, pad them, and compute the hash value +
468 /// </summary> +
469 /// <param name="Bits"> +
470 /// Value used for padding if the length of the message to be hashed +
471 /// is not a multiple of 8 bit bytes. +
472 /// </param> +
473 /// <param name="BitLen"> +
474 /// Number of needed padding bits? +
475 /// </param> +
476 /// <param name="HashValue"> +
477 /// The hash value which shall be updated by this method +
478 /// </param> +
479 procedure FinalBit_LSB(Bits: Byte; Bitlen: UInt16; +
480 var HashValue: TSHA3Digest); +
481 +
482 /// <summary> +
483 /// The algorithm starts in the absorb phase (one puts data into the sponge) +
484 /// and ends with the squeze phase (one squeezes the sponge) and this method +
485 /// does everything needed at the transition point between these two phases +
486 /// </summary> +
487 procedure PadAndSwitchToSqueezingPhase; +
488 +
489 /// <summary> +
490 /// ??? +
491 /// </summary> +
492 /// <param name="Outp"> +
493 /// Pointer where the output will be stored in +
494 /// </param> +
495 /// <param name="State"> +
496 /// State to work on +
497 /// </param> +
498 /// <param name="LaneCount"> +
499 /// Number of iterations +
500 /// </param> +
501 procedure ExtractFromState(Outp: Pointer; const State: TState_L; LaneCount: Integer); +
502 strict protected +
503 /// <summary> +
504 /// Contains the current state of the algorithms sponge part +
505 /// </summary> +
506 FSpongeState : TSpongeState; +
507 +
508 /// <summary> +
509 /// The generated hash value is stored here +
510 /// </summary> +
511 FDigest : TSHA3Digest; +
512 +
513 /// <summary> +
514 /// When true, the output length has been set (applicable for the expandable +
515 /// output length algorithm variants named Shake) and needs to be preserved +
516 /// in InitSponge +
517 /// </summary> +
518 FOutpLengSet : Boolean; +
519 +
520 /// <summary> +
521 /// If true the implementation is Keccack instead of SHA3. This changes +
522 /// how the padding at the end is handled. +
523 /// </summary> +
524 FIsKeccack : Boolean; +
525 +
526 /// <summary> +
527 /// Initializes the state of the Keccak/SHA3 sponge function. It is set to +
528 /// the absorbing phase by this. If invalid parameter values are specified +
529 /// a EDECHashException will be raised +
530 /// </summary> +
531 /// <param name="rate"> +
532 /// Block length of the message to be processed, depends directly on the +
533 /// SHA3 variant (224, 256...) to be used +
534 /// </param> +
535 /// <param name="capacity"> +
536 /// Capacity c (it could directly be calculated from the rate as +
537 /// c = 1600 - r but the original author Wolfgang Erhardt decided against +
538 /// this. +
539 /// The capacity is the size of that part of the state vector which, when +
540 /// xored with the message blocks and when extracting the resulting hash, +
541 /// stays untouched. +
542 /// </param> +
543 /// <exception cref="EDECHashException"> +
544 /// Exception raised if invalid parameter values are specified. +
545 /// </exception> +
546 procedure InitSponge(Rate, Capacity: UInt16); +
547 +
548 /// <summary> +
549 /// Init internal data +
550 /// </summary> +
551 procedure DoInit; override; +
552 /// <summary> +
553 /// Dummy method to avoid the compiler warning about a class with abstract method +
554 /// </summary> +
555 procedure DoTransform(Buffer: PUInt32Array); override; +
556 /// <summary> +
557 /// Final step of the calculation +
558 /// </summary> +
559 procedure DoDone; override; +
560 +
561 /// <summary> +
562 /// Returns the calculated hash value +
563 /// </summary> +
564 /// <returns> +
565 /// Hash value calculated +
566 /// </returns> +
567 function Digest: PByteArray; override; +
568 public +
569 /// <summary> +
570 /// Dimension hash result buffer +
571 /// </summary> +
572 constructor Create; override; +
573 /// <summary> +
574 /// Processes one chunk of data to be hashed. +
575 /// </summary> +
576 /// <param name="Data"> +
577 /// Data on which the hash value shall be calculated on +
578 /// </param> +
579 /// <param name="DataSize"> +
580 /// Size of the data in bytes +
581 /// </param> +
582 procedure Calc(const Data; DataSize: Integer); override; +
583 end; +
584 +
585 /// <summary> +
586 /// 224 bit SHA3 variant +
587 /// </summary> +
588 THash_SHA3_224 = class(THash_SHA3Base) +
589 protected +
590 procedure DoInit; override; +
591 public +
592 class function BlockSize: UInt32; override; +
593 class function DigestSize: UInt32; override; +
594 end; +
595 +
596 /// <summary> +
597 /// 256 bit SHA3 variant +
598 /// </summary> +
599 THash_SHA3_256 = class(THash_SHA3Base) +
600 protected +
601 procedure DoInit; override; +
602 public +
603 class function BlockSize: UInt32; override; +
604 class function DigestSize: UInt32; override; +
605 end; +
606 +
607 /// <summary> +
608 /// 384 bit SHA3 variant +
609 /// </summary> +
610 THash_SHA3_384 = class(THash_SHA3Base) +
611 protected +
612 procedure DoInit; override; +
613 public +
614 class function BlockSize: UInt32; override; +
615 class function DigestSize: UInt32; override; +
616 end; +
617 +
618 /// <summary> +
619 /// 512 bit SHA3 variant +
620 /// </summary> +
621 THash_SHA3_512 = class(THash_SHA3Base) +
622 protected +
623 procedure DoInit; override; +
624 public +
625 class function BlockSize: UInt32; override; +
626 class function DigestSize: UInt32; override; +
627 end; +
628 +
629 /// <summary> +
630 /// 224 bit Keccack variant, the predecessor of SHA3_224 +
631 /// </summary> +
632 THash_Keccak_224 = class(THash_SHA3_224) +
633 protected +
634 procedure DoInit; override; +
635 public +
636 class function BlockSize: UInt32; override; +
637 class function DigestSize: UInt32; override; +
638 end; +
639 +
640 /// <summary> +
641 /// 256 bit Keccack variant, the predecessor of SHA3_256 +
642 /// </summary> +
643 THash_Keccak_256 = class(THash_SHA3_256) +
644 protected +
645 procedure DoInit; override; +
646 public +
647 class function BlockSize: UInt32; override; +
648 class function DigestSize: UInt32; override; +
649 end; +
650 +
651 /// <summary> +
652 /// 384 bit Keccack variant, the predecessor of SHA3_384 +
653 /// </summary> +
654 THash_Keccak_384 = class(THash_SHA3_384) +
655 protected +
656 procedure DoInit; override; +
657 public +
658 class function BlockSize: UInt32; override; +
659 class function DigestSize: UInt32; override; +
660 end; +
661 +
662 /// <summary> +
663 /// 512 bit Keccack variant, the predecessor of SHA3_512 +
664 /// </summary> +
665 THash_Keccak_512 = class(THash_SHA3_512) +
666 protected +
667 procedure DoInit; override; +
668 public +
669 class function BlockSize: UInt32; override; +
670 class function DigestSize: UInt32; override; +
671 end; +
672 +
673 /// <summary> +
674 /// Base class for the Shake implementations +
675 /// </summary> +
676 THash_ShakeBase = class(THash_SHA3Base, IDECHashExtensibleOutput) +
677 private +
678 /// <summary> +
679 /// Returns the length of the calculated hash value in byte +
680 /// </summary> +
681 function GetHashSize: UInt16; +
682 /// <summary> +
683 /// Defines the length of the calculated hash value +
684 /// </summary> +
685 /// <param name="Value"> +
686 /// Length of the hash value to be returned in byte +
687 /// </param> +
688 /// <exception cref="EDECHashException"> +
689 /// Exception raised if <c>Value</c> is 0. +
690 /// </exception> +
691 procedure SetHashSize(const Value: UInt16); +
692 public +
693 /// <summary> +
694 /// Returns the calculated hash value as byte array. Needs to be overriden +
695 /// here as the length of the output needs to be determined differently due +
696 /// to Shake being extensible output length. +
697 /// </summary> +
698 function DigestAsBytes: TBytes; override; +
699 /// <summary> +
700 /// Define the lenght of the resulting hash value in byte as these functions +
701 /// are extendable output functions +
702 /// </summary> +
703 property HashSize : UInt16 +
704 read GetHashSize +
705 write SetHashSize; +
706 end; +
707 +
708 /// <summary> +
709 /// Shake128 veriant of SHA3 +
710 /// </summary> +
711 THash_Shake128 = class(THash_ShakeBase) +
712 protected +
713 procedure DoInit; override; +
714 public +
715 class function BlockSize: UInt32; override; +
716 class function DigestSize: UInt32; override; +
717 end; +
718 +
719 /// <summary> +
720 /// Shake128 veriant of SHA3 +
721 /// </summary> +
722 THash_Shake256 = class(THash_ShakeBase) +
723 protected +
724 procedure DoInit; override; +
725 public +
726 class function BlockSize: UInt32; override; +
727 class function DigestSize: UInt32; override; +
728 end; +
729 +
730 THavalBaseTransformMethod = procedure(Buffer: PUInt32Array) of object; +
731 +
732 /// <summary> +
733 /// Base class for all Haval implementations +
734 /// </summary> +
735 THashBaseHaval = class(TDECHashExtended, IDECHashRounds) +
736 private +
737 FDigest: array[0..7] of UInt32; +
738 /// <summary> +
739 /// UInt32 for compatibility with 32 bit ASM implementation +
740 /// </summary> +
741 FRounds: UInt32; +
742 FTransform: THavalBaseTransformMethod; +
743 /// <summary> +
744 /// Defines the number of calculation rounds and if a value outside the +
745 /// allowed range is given it sets rounds to a value based on digest size. +
746 /// </summary> +
747 procedure SetRounds(Value: UInt32); +
748 function GetRounds: UInt32; +
749 protected +
750 procedure DoInit; override; +
751 procedure DoTransform(Buffer: PUInt32Array); override; +
752 procedure DoTransform3(Buffer: PUInt32Array); +
753 procedure DoTransform4(Buffer: PUInt32Array); +
754 procedure DoTransform5(Buffer: PUInt32Array); +
755 procedure DoDone; override; +
756 public +
757 function Digest: PByteArray; override; +
758 class function BlockSize: UInt32; override; +
759 /// <summary> +
760 /// Returns the minimum possible number for the rounds parameter. +
761 /// Value depends on Digest size which depends on concrete implementation +
762 /// </summary> +
763 function GetMinRounds: UInt32; +
764 /// <summary> +
765 /// Returns the maximum possible number for the rounds parameter. +
766 /// Value depends on Digest size which depends on concrete implementation +
767 /// </summary> +
768 function GetMaxRounds: UInt32; +
769 +
770 /// <summary> +
771 /// Defines the number of rounds the algorithm performs on the input data. +
772 /// The range for this parameter is 3-5 rounds. If a value outside this +
773 /// range is assigned, the value used depends on the DigestSize. For +
774 /// DigestSizes <= 20 it will be set to 3, for values <= 28 to 4 and for +
775 /// bigger values to 5. For 3 rounds the algorithm is considered unsafe, +
776 /// as in 2003 collisions could be found with a setting of 3 rounds only. +
777 /// </summary> +
778 property Rounds: UInt32 read GetRounds write SetRounds default 3; +
779 end; +
780 +
781 /// <summary> +
782 /// In 2004 collisions for this one were found, so this one should be +
783 /// considered to be unsafe. +
784 /// </summary> +
785 THash_Haval128 = class(THashBaseHaval) +
786 public +
787 class function DigestSize: UInt32; override; +
788 end; +
789 +
790 THash_Haval160 = class(THashBaseHaval) +
791 public +
792 class function DigestSize: UInt32; override; +
793 end; +
794 +
795 THash_Haval192 = class(THashBaseHaval) +
796 public +
797 class function DigestSize: UInt32; override; +
798 end; +
799 +
800 THash_Haval224 = class(THashBaseHaval) +
801 public +
802 class function DigestSize: UInt32; override; +
803 end; +
804 +
805 THash_Haval256 = class(THashBaseHaval) +
806 public +
807 class function DigestSize: UInt32; override; +
808 end; +
809 +
810 /// <summary> +
811 /// This is actually an implementation of the 192 bit variant of the Tiger +
812 /// hash algorithm with 3 rounds, unless a different value is assigned +
813 /// to the rounds property. It is considered to be unsafe at least in the +
814 /// 192 Bit variant! +
815 /// </summary> +
816 THash_Tiger = class(THashBaseMD4, IDECHashRounds) +
817 private +
818 const +
819 /// <summary> +
820 /// Minimum number of rounds for the Tigher hash function. Trying to set a +
821 /// lower one sets the rounds to this value. +
822 /// </summary> +
823 cTigerMinRounds = 3; +
824 /// <summary> +
825 /// Maximum number of rounds for the Tigher hash function. Trying to set a +
826 /// higher one sets the rounds to this value. +
827 /// </summary> +
828 cTigerMaxRounds = 32; +
829 var +
830 /// <summary> +
831 /// UInt32 for compatibility with 32 bit ASM implementation +
832 /// </summary> +
833 FRounds: UInt32; +
834 function GetRounds: UInt32; +
835 procedure SetRounds(Value: UInt32); +
836 protected +
837 procedure DoInit; override; +
838 procedure DoTransform(Buffer: PUInt32Array); override; +
839 public +
840 class function DigestSize: UInt32; override; +
841 /// <summary> +
842 /// Returns the minimum possible number for the rounds parameter +
843 /// </summary> +
844 function GetMinRounds: UInt32; +
845 /// <summary> +
846 /// Returns the maximum possible number for the rounds parameter +
847 /// </summary> +
848 function GetMaxRounds: UInt32; +
849 +
850 /// <summary> +
851 /// Defines the number of rounds the algorithm will perform on the data +
852 /// passed. Valid values are in the range from 3-32 rounds and values +
853 /// outside this range will lead to a rounds value of 3 or 32 to be used, +
854 /// depending on whether a lower or higher value has been given. +
855 /// </summary> +
856 property Rounds: UInt32 read GetRounds write SetRounds default 3; +
857 end; +
858 +
859 /// <summary> +
860 /// As there seem to exist 128 and 160 bit variants of Tiger, which seem to +
861 /// be truncated variants of Tiger 192, but we want to keep compatibility +
862 /// with old code we introduce an alias for the time being. +
863 /// It is considered to be unsafe at least in the 192 Bit variant! +
864 /// </summary> +
865 THash_Tiger192 = THash_Tiger; +
866 +
867 /// <summary> +
868 /// The Panama algorithm is being considered to be unsafe. Support is only +
869 /// being provided for backward compatibility. +
870 /// </summary> +
871 THash_Panama = class(TDECHashExtended) +
872 private +
873 FLFSRBuffer: array[0..31, 0..7] of UInt32; +
874 FDigest: array[0..16] of UInt32; +
875 FTap: UInt32; +
876 protected +
877 procedure DoInit; override; +
878 procedure DoTransform(Buffer: PUInt32Array); override; +
879 procedure DoDone; override; +
880 procedure DoPull; +
881 public +
882 function Digest: PByteArray; override; +
883 class function DigestSize: UInt32; override; +
884 class function BlockSize: UInt32; override; // 32 +
885 end; +
886 +
887 THashBaseWhirlpool = class(TDECHashExtended) +
888 private +
889 FDigest: array[0..15] of UInt32; +
890 FTableC: Pointer; +
891 FTableR: Pointer; +
892 protected +
893 procedure DoTransform(Buffer: PUInt32Array); override; +
894 procedure DoDone; override; +
895 public +
896 function Digest: PByteArray; override; +
897 class function DigestSize: UInt32; override; +
898 class function BlockSize: UInt32; override; +
899 end; +
900 +
901 /// <summary> +
902 /// This is the original variant of the algorithmus. Do not use it as some +
903 /// security flaw has been detected early on by its inventors. DEC contains +
904 /// it for backwards compatibility and completeness. +
905 /// </summary> +
906 THash_Whirlpool0 = class(THashBaseWhirlpool) +
907 protected +
908 procedure DoInit; override; +
909 end; +
910 +
911 /// <summary> +
912 /// This is variant of the algorithmus fixing the security flaw of the +
913 /// original version Whirlpool0. Do not use it in new code as it has been +
914 /// superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC) +
915 /// variant which is additionally more safe as well! It is there for +
916 /// backwards compatibility and completeness only. +
917 /// </summary> +
918 THash_WhirlpoolT = class(THashBaseWhirlpool) +
919 protected +
920 procedure DoInit; override; +
921 end; +
922 +
923 /// <summary> +
924 /// The current version of Whirlpool but not the one used in code developed +
925 /// against the older DEC 5.x versions. The name of the one used in your +
926 /// code differs, depending whether you opt tu use the old DEC 5.2 compatible +
927 /// class names where the name Whirlpool1 was already taken by the variant +
928 /// nowadays known as Whirlpool-T. +
929 /// </summary> +
930 THash_Whirlpool1_ = class(THashBaseWhirlpool) +
931 protected +
932 procedure DoInit; override; +
933 end; +
934 +
935 {$IFDEF OLD_WHIRLPOOL_NAMES} +
936 /// <summary> +
937 /// This is the original variant of the algorithmus. Do not use it as some +
938 /// security flaw has been detected early on by its inventors. DEC contains +
939 /// it for backwards compatibility and completeness. +
940 /// </summary> +
941 THash_Whirlpool = class(THash_Whirlpool0); +
942 /// <summary> +
943 /// This is variant of the algorithmus fixing the security flaw of the +
944 /// original version Whirlpool0. Do not use it in new code as it has been +
945 /// superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC) +
946 /// variant which is additionally more safe as well! It is there for +
947 /// backwards compatibility and completeness only. +
948 /// </summary> +
949 THash_Whirlpool1 = class(THash_WhirlpoolT); +
950 /// <summary> +
951 /// The current version of Whirlpool but not the one used in code developed +
952 /// against the older DEC 5.x versions. The name of the one used in your +
953 /// code differs, depending whether you opt tu use the old DEC 5.2 compatible +
954 /// class names where the name Whirlpool1 was already taken by the variant +
955 /// nowadays known as Whirlpool-T. +
956 /// </summary> +
957 THash_Whirlpool1New = class(THash_Whirlpool1_); +
958 {$ELSE} +
959 /// <summary> +
960 /// The current version of Whirlpool but not the one used in code developed +
961 /// against the older DEC 5.x versions. The name of the one used in your +
962 /// code differs, depending whether you opt tu use the old DEC 5.2 compatible +
963 /// class names where the name Whirlpool1 was already taken by the variant +
964 /// nowadays known as Whirlpool-T. +
965 /// </summary> +
966 THash_Whirlpool1 = class(THash_Whirlpool1_); +
967 {$ENDIF} +
968 +
969 THash_Square = class(TDECHashExtended) +
970 private +
971 FDigest: array[0..3] of UInt32; +
972 protected +
973 procedure DoInit; override; +
974 procedure DoTransform(Buffer: PUInt32Array); override; +
975 procedure DoDone; override; +
976 public +
977 function Digest: PByteArray; override; +
978 class function DigestSize: UInt32; override; +
979 class function BlockSize: UInt32; override; +
980 end; +
981 +
982 /// <summary> +
983 /// This 1990 developed hash function was named after the Egyptian Pharaoh +
984 /// Sneferu. Be sure to set SecurityLevel to at least 8. See remark there. +
985 /// </summary> +
986 THashBaseSnefru = class(TDECHashExtended, IDECHashRounds) +
987 private +
988 FDigest: array[0..23] of UInt32; +
989 /// <summary> +
990 /// Number of rounds the loop will do on the data. +
991 /// UInt32 for compatibility with 32 bit ASM implementation +
992 /// </summary> +
993 FRounds: UInt32; +
994 /// <summary> +
995 /// Sets the number of rounds for the looping over the data +
996 /// </summary> +
997 procedure SetRounds(Value: UInt32); +
998 function GetRounds: UInt32; +
999 protected +
1000 procedure DoInit; override; +
1001 procedure DoDone; override; +
1002 public +
1003 function Digest: PByteArray; override; +
1004 /// Returns the minimum possible number for the rounds parameter. +
1005 /// Value depends on Digest size which depends on concrete implementation +
1006 /// </summary> +
1007 function GetMinRounds: UInt32; +
1008 /// Returns the maximum possible number for the rounds parameter. +
1009 /// Value depends on Digest size which depends on concrete implementation +
1010 /// </summary> +
1011 function GetMaxRounds: UInt32; +
1012 +
1013 /// <summary> +
1014 /// Can be set from 2 to 8, default is 8. This is the number of rounds the +
1015 /// algorithm will use. With the default of 8 rounds it is being considered +
1016 /// as safe as of spring 2016, with less rounds this algorithm is considered +
1017 /// to be unsafe and even with 8 rounds it is not really strong. +
1018 /// </summary> +
1019 property Rounds: UInt32 +
1020 read GetRounds +
1021 write SetRounds; +
1022 end; +
1023 +
1024 /// <summary> +
1025 /// This 1990 developed hash function was named after the Egyptian Pharaoh +
1026 /// Sneferu. Be sure to set SecurityLevel to at least 8. See remark for +
1027 /// THashBaseSnefru.SecurityLevel. +
1028 /// </summary> +
1029 THash_Snefru128 = class(THashBaseSnefru) +
1030 protected +
1031 procedure DoTransform(Buffer: PUInt32Array); override; +
1032 public +
1033 class function DigestSize: UInt32; override; +
1034 class function BlockSize: UInt32; override; // 48 +
1035 end; +
1036 +
1037 /// <summary> +
1038 /// This 1990 developed hash function was named after the Egyptian Pharaoh +
1039 /// Sneferu. Be sure to set SecurityLevel to at least 8. See remark +
1040 /// THashBaseSnefru.SecurityLevel. +
1041 /// </summary> +
1042 THash_Snefru256 = class(THashBaseSnefru) +
1043 protected +
1044 procedure DoTransform(Buffer: PUInt32Array); override; +
1045 public +
1046 class function DigestSize: UInt32; override; +
1047 class function BlockSize: UInt32; override; // 32 +
1048 end; +
1049 +
1050 THash_Sapphire = class(TDECHashExtended) +
1051 private +
1052 FCards: array[0..255] of UInt32; +
1053 FDigest: array[0..15] of UInt32; +
1054 FRotor: UInt32; +
1055 FRatchet: UInt32; +
1056 FAvalanche: UInt32; +
1057 FPlain: UInt32; +
1058 FCipher: UInt32; +
1059 FDigestSize: UInt8; +
1060 +
1061 /// <summary> +
1062 /// Set the length of the output hash value in byte. +
1063 /// </summary> +
1064 /// <param name="Value"> +
1065 /// Minimum value is 1 byte, maximum value is 64 byte = 512 bit. +
1066 /// Sets the size to the default size returned by DigestSize otherwise. +
1067 /// is specified. +
1068 /// </param> +
1069 procedure SetDigestSize(Value: UInt8); +
1070 protected +
1071 procedure DoInit; override; +
1072 procedure DoDone; override; +
1073 procedure DoTransform(Buffer: PUInt32Array); override; +
1074 public +
1075 function Digest: PByteArray; override; +
1076 function DigestAsBytes: TBytes; override; +
1077 /// <summary> +
1078 /// Returns the default digest/hash size in bit. If RequestedDigestSize is +
1079 /// not set, the defauilt size returned here is being used. +
1080 /// </summary> +
1081 class function DigestSize: UInt32; override; +
1082 /// <summary> +
1083 /// Returns on which block size this algorithm operates. Since the Sapphire +
1084 /// hash originates from a Sapphire stream cipher algorithm this is always 1. +
1085 /// </summary> +
1086 class function BlockSize: UInt32; override; +
1087 procedure Calc(const Data; DataSize: Integer); override; +
1088 +
1089 /// <summary> +
1090 /// This property defines the length of the output from the hash calculation +
1091 /// in byte. The maximum value is 64 byte = 512 bit. Values bigger 64 byte +
1092 /// and a value of 0 lead to the default size returned by DigestSize otherwise. +
1093 /// This setting is only respected by the DigestAsBytes method and all other +
1094 /// convenience methods using that one like CalcStream, CalcString, +
1095 /// DigestAsString or DigestAsRawString. +
1096 /// </summary> +
1097 property RequestedDigestSize: UInt8 +
1098 read FDigestSize +
1099 write SetDigestSize; +
1100 end; +
1101 +
1102 /// <summary> +
1103 /// Implementation of the bcrypt password hash algorithm. Maximum password +
1104 /// length is 72 byte. When encoding typed in passwords in UTF8 that can mean +
1105 /// 18 chars in worst case of all typed chars being encoded in 4 byte each +
1106 /// </summary> +
1107 THash_BCrypt = class(TDECPasswordHash) +
1108 private +
1109 type +
1110 TBFBlock = packed array[0..7] of UInt8; +
1111 PBFBlock = ^TBFBlock; +
1112 +
1113 TBCDigest = packed array[0..23] of byte; +
1114 +
1115 TBF2Long = packed record +
1116 L,R: UInt32; +
1117 end; +
1118 +
1119 /// <summary> +
1120 /// user supplied IncCTR proc +
1121 /// </summary> +
1122 TBFIncProc = procedure(var CTR: TBFBlock); +
1123 +
1124 TBFContext = packed record +
1125 /// <summary> +
1126 /// key dependend SBox: 0..3, 0..255 +
1127 /// </summary> +
1128 SBox : TBlowfishMatrix; +
1129 /// <summary> +
1130 /// key dependend PArray +
1131 /// </summary> +
1132 PArray : TBlowfishKey; +
1133 /// <summary> +
1134 /// InitVector or CTR +
1135 /// </summary> +
1136 IV : TBFBlock; +
1137 /// <summary> +
1138 /// Working buffer +
1139 /// </summary> +
1140 buf : TBFBlock; +
1141 /// <summary> +
1142 /// Bytes used in buf +
1143 /// </summary> +
1144 bLen : UInt16; +
1145 /// <summary> +
1146 /// Bit 1: Short block +
1147 /// </summary> +
1148 Flag : UInt16; +
1149 /// <summary> +
1150 /// Increment proc CTR-Mode +
1151 /// </summary> +
1152 IncProc : TBFIncProc; +
1153 end; +
1154 +
1155 /// <summary> +
1156 /// Parts of the BSD/Crypt style password storage for BCrypt +
1157 /// </summary> +
1158 TBCryptBSDData = record +
1159 /// <summary> +
1160 /// Algorithm ID +
1161 /// </summary> +
1162 ID : string; +
1163 /// <summary> +
1164 /// Salt in Crypt encoding +
1165 /// </summary> +
1166 Salt : string; +
1167 /// <summary> +
1168 /// Cost factor +
1169 /// </summary> +
1170 Cost : string; +
1171 end; +
1172 +
1173 var +
1174 /// <summary> +
1175 /// The calculated hash value +
1176 /// Should have been 192 bit = 24 byte, but original author's +
1177 /// imnplementation had a flaw not returning the last byte, which has +
1178 /// been kept instead of fixing it. Thus DigestSize returns 23 instead +
1179 /// of 24! +
1180 /// </summary> +
1181 FDigest : array[0..23] of Byte; +
1182 /// <summary> +
1183 /// Context with the working data used by all the initialization and +
1184 /// calculation methods +
1185 /// </summary> +
1186 FContext : TBFContext; +
1187 /// <summary> +
1188 /// Cost factor which might be used to adapt the algorithm to increased +
1189 /// processing power. +
1190 /// </summary> +
1191 FCost : UInt8; +
1192 /// <summary> +
1193 /// Sets the cost factor. Throws an EDECHashException when a value of 0 +
1194 /// is to be set. +
1195 /// </summary> +
1196 /// <exception cref="EDECHashException"> +
1197 /// Exception raised if <c>Value</c> is lower than <c>MinCost</c> or +
1198 /// higher than <c>MaxCost</c>. +
1199 /// </exception> +
1200 procedure SetCost(const Value: UInt8); +
1201 /// <summary> +
1202 /// Special setup for the bcrypt variant of the blowfish implementation. +
1203 /// Designed to be unavoidably slow. +
1204 /// </summary> +
1205 /// <param name="Password"> +
1206 /// Password from which the salt shall be calculated +
1207 /// </param> +
1208 /// <param name="PasswordSize"> +
1209 /// Length of the password in byte +
1210 /// </param> +
1211 procedure EksBlowfishSetup(var Password: TBytes; +
1212 PasswordSize: Integer); +
1213 /// <summary> +
1214 /// Expensive key setup for Blowfish +
1215 /// </summary> +
1216 /// <param name="Salt"> +
1217 /// Needed as parameter here as something else than FSalt has to be +
1218 /// passed sometimes. +
1219 /// </param> +
1220 /// <param name="Password"> +
1221 /// Password from which the salt shall be calculated +
1222 /// </param> +
1223 /// <param name="PasswordSize"> +
1224 /// Length of the password in byte +
1225 /// </param> +
1226 procedure Expandkey(Salt : TBytes; +
1227 var Password : TBytes; +
1228 PasswordSize : Integer); +
1229 /// <summary> +
1230 /// Encrypt one block (in ECB mode) +
1231 /// </summary> +
1232 procedure BF_Encrypt(const BI: TBFBlock; var BO: TBFBlock); +
1233 /// <summary> +
1234 /// xors two blocks and returns the result in a 3rd one result in third +
1235 /// </summary> +
1236 /// <param name="B1"> +
1237 /// 1st block to xor +
1238 /// </param> +
1239 /// <param name="B2"> +
1240 /// 2nd block to xor +
1241 /// </param> +
1242 /// <param name="B3"> +
1243 /// Block to store the result in +
1244 /// </param> +
1245 procedure BF_XorBlock(const B1, B2: TBFBlock; var B3: TBFBlock); +
1246 +
1247 /// <summary> +
1248 /// Splits a given Crypt/BSD style password record into its parts +
1249 /// </summary> +
1250 /// <param name="Vector"> +
1251 /// Data to split +
1252 /// </param> +
1253 /// <param name="SplittedData"> +
1254 /// Data splitted in ID, Cost and Salt +
1255 /// </param> +
1256 /// <returns> +
1257 /// true if splitting resulted in the right number of parts, +
1258 /// otherwise false +
1259 /// </returns> +
1260 function SplitTestVector(const Vector : string; +
1261 var SplittedData : TBCryptBSDData):Boolean; +
1262 strict protected +
1263 procedure DoInit; override; +
1264 procedure DoTransform(Buffer: PUInt32Array); override; +
1265 procedure DoDone; override; +
1266 +
1267 {$Region CryptFormat} +
1268 /// <summary> +
1269 /// Returns the ID code for Crypt/BSD like storing of passwords. +
1270 /// </summary> +
1271 /// <returns> +
1272 /// A Crypt/BSD ID +
1273 /// </returns> +
1274 class function GetCryptID:string; override; +
1275 +
1276 /// <summary> +
1277 /// Returns the parameters required for the crypt-like password storing +
1278 /// in that format. +
1279 /// </summary> +
1280 /// <param name="Params"> +
1281 /// In case of BCrypt this has to be the numeric integer value of "Cost". +
1282 /// This method will ensure it is prefixed with 0 when having too few chars +
1283 /// </param> +
1284 /// <param name="Format"> +
1285 /// Format class for formatting the output +
1286 /// </param> +
1287 function GetCryptParams(const Params : string; +
1288 Format : TDECFormatClass):string; override; +
1289 /// <summary> +
1290 /// Returns the hash required for the crypt-like password storing +
1291 /// in that format. If a salt etc. is needed that needs to be specified +
1292 /// before calling this method. +
1293 /// </summary> +
1294 /// <param name="Password"> +
1295 /// Password entered which shall be hashed. +
1296 /// </param> +
1297 /// <param name="Params"> +
1298 /// In case of BCrypt this has to be the numeric integer value of "Cost" +
1299 /// </param> +
1300 /// <param name="Salt"> +
1301 /// Salt value used by the password hash calculation in binary raw format, +
1302 /// means not Radix64 encoded or so. +
1303 /// </param> +
1304 /// <param name="Format"> +
1305 /// Format class for formatting the output +
1306 /// </param> +
1307 /// <returns> +
1308 /// Calculated hash value +
1309 /// </returns> +
1310 function GetCryptHash(Password : TBytes; +
1311 const Params : string; +
1312 const Salt : TBytes; +
1313 Format : TDECFormatClass):string; override; +
1314 {$EndRegion} +
1315 public +
1316 /// <summary> +
1317 /// Initialize internal fields +
1318 /// </summary> +
1319 constructor Create; override; +
1320 /// <summary> +
1321 /// Returns the maximum supported length of the salt value in byte +
1322 /// </summary> +
1323 function MaxSaltLength:UInt8; override; +
1324 /// <summary> +
1325 /// Returns the minimum supported length of the salt value in byte +
1326 /// </summary> +
1327 function MinSaltLength:UInt8; override; +
1328 /// <summary> +
1329 /// Returns the maximum length of a user supplied password given for the +
1330 /// algorithm in byte +
1331 /// </summary> +
1332 /// <remarks> +
1333 /// For BCrypt version "2a" it is specified that the password ends with a +
1334 /// null-terminator, which will be added internally in our implementation +
1335 /// </remarks> +
1336 class function MaxPasswordLength:UInt8; override; +
1337 /// <summary> +
1338 /// Returns the minimum allowed value for the Cost property +
1339 /// </summary> +
1340 function MinCost:UInt8; +
1341 /// <summary> +
1342 /// Returns the maximum allowed value for the Cost property +
1343 /// </summary> +
1344 function MaxCost:UInt8; +
1345 +
1346// /// <summary> +
1347// /// Checks whether a given password is the correct one for a password +
1348// /// storage "record"/entry in Crypt/BSD format. +
1349// /// </summary> +
1350// /// <param name="Password"> +
1351// /// Password to check for validity +
1352// /// </param> +
1353// /// <param name="CryptData"> +
1354// /// The data needed to "compare" the password against in Crypt/BSD like +
1355// /// format: $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]] +
1356// /// </param> +
1357// /// <param name="Format"> +
1358// /// Must be the right type for the Crypt/BSD encoding used by the +
1359// /// algorithm used. This was implemented this way to avoid making the +
1360// /// DECHashAuthentication unit dependant on the DECFormat unit not needed +
1361// /// otherwise. +
1362// /// </param> +
1363// /// <returns> +
1364// /// True if the password given is correct. +
1365// /// </returns> +
1366// function IsValidPassword(const Password : string; +
1367// const CryptData : string; +
1368// Format : TDECFormatClass): Boolean; override; +
1369 +
1370 /// <summary> +
1371 /// Checks whether a given password is the correct one for a password +
1372 /// storage "record"/entry in Crypt/BSD format. +
1373 /// </summary> +
1374 /// <param name="Password"> +
1375 /// Password to check for validity +
1376 /// </param> +
1377 /// <param name="CryptData"> +
1378 /// The data needed to "compare" the password against in Crypt/BSD like +
1379 /// format: $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]] +
1380 /// </param> +
1381 /// <param name="Format"> +
1382 /// Must be the right type for the Crypt/BSD encoding used by the +
1383 /// algorithm used. This was implemented this way to avoid making the +
1384 /// DECHashAuthentication unit dependant on the DECFormat unit not needed +
1385 /// otherwise. +
1386 /// </param> +
1387 /// <returns> +
1388 /// True if the password given is correct. +
1389 /// </returns> +
1390 function IsValidPassword(Password : TBytes; +
1391 const CryptData : string; +
1392 Format : TDECFormatClass): Boolean; override; +
1393 +
1394 /// <summary> +
1395 /// Processes one chunk of data to be hashed. +
1396 /// </summary> +
1397 /// <param name="Data"> +
1398 /// Data on which the hash value shall be calculated on +
1399 /// </param> +
1400 /// <param name="DataSize"> +
1401 /// Size of the data in bytes +
1402 /// </param> +
1403 /// <exception cref="EDECHashException"> +
1404 /// Exception raised if <c>DataSize</c> is higher than +
1405 /// <c>MaxPasswordLength</c> or if a salt with a different length than +
1406 /// 128 bit has been specified. +
1407 /// </exception> +
1408 procedure Calc(const Data; DataSize: Integer); override; +
1409 +
1410 function Digest: PByteArray; override; +
1411 class function DigestSize: UInt32; override; +
1412 class function BlockSize: UInt32; override; +
1413 +
1414 /// <summary> +
1415 /// Defines the cost factor of the calculation. Real factor will be 2^Cost. +
1416 /// This is used to adapt to increasing CPU power and must be stored along +
1417 /// with the hash value and salt to be able to verify a password against it. +
1418 /// Value must be between 4 and 31, other values will raise a +
1419 /// EDECHashException +
1420 /// </summary> +
1421 /// <exception cref="EDECHashException"> +
1422 /// Exception raised if a value outside of the range 4..31 is given. +
1423 /// </exception> +
1424 property Cost: UInt8 +
1425 read FCost +
1426 write SetCost; +
1427 end; +
1428 +
1429implementation +
1430 +
1431{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
1432{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF} +
1433 +
1434uses +
1435 DECData, DECDataHash; +
1436 +
1437{$IFDEF X86ASM} +
1438 {$DEFINE INCLUDED} // allows having the DECHash.inc in the IDE's project manager +
1439 {$INCLUDE DECHash.asm86.inc} +
1440{$ENDIF !X86ASM} +
1441 +
1442{ Speed comparison of ASM vs. PurePascal Implementation. Valid only for Win32 compiler +
1443 and this was for DEC 5.1 and thus compiler versions < D2009! +
1444 +
1445 assembler pascal +
1446 +
1447 THash_SHA512 : 85.1 cycles/byte 17.62 Mb/sec 220.9 cycles/byte 6.79 Mb/sec 159% +
1448 THash_SHA384 : 85.2 cycles/byte 17.61 Mb/sec 220.0 cycles/byte 6.82 Mb/sec 158% +
1449 THash_Tiger : 24.6 cycles/byte 60.98 Mb/sec 60.7 cycles/byte 24.69 Mb/sec 147% +
1450 THash_Haval128 : 13.3 cycles/byte 112.55 Mb/sec 26.0 cycles/byte 57.77 Mb/sec 95% +
1451 THash_SHA1 : 20.1 cycles/byte 74.80 Mb/sec 36.1 cycles/byte 41.51 Mb/sec 80% +
1452 THash_SHA : 20.0 cycles/byte 75.03 Mb/sec 35.5 cycles/byte 42.21 Mb/sec 78% +
1453 THash_Haval160 : 13.2 cycles/byte 113.30 Mb/sec 22.7 cycles/byte 66.12 Mb/sec 71% +
1454 THash_Haval256 : 25.9 cycles/byte 57.84 Mb/sec 40.5 cycles/byte 37.07 Mb/sec 56% +
1455 THash_Snefru128 : 159.7 cycles/byte 9.39 Mb/sec 248.2 cycles/byte 6.04 Mb/sec 55% +
1456 THash_Snefru256 : 239.3 cycles/byte 6.27 Mb/sec 367.9 cycles/byte 4.08 Mb/sec 54% +
1457 THash_RipeMD256 : 14.5 cycles/byte 103.16 Mb/sec 21.4 cycles/byte 70.08 Mb/sec 47% +
1458 THash_MD4 : 5.8 cycles/byte 256.73 Mb/sec 8.5 cycles/byte 176.92 Mb/sec 45% +
1459 +
1460 THash_MD2 : 251.6 cycles/byte 5.96 Mb/sec 366.1 cycles/byte 4.10 Mb/sec 45% +
1461 THash_RipeMD128 : 15.2 cycles/byte 98.89 Mb/sec 21.2 cycles/byte 70.61 Mb/sec 40% +
1462 THash_RipeMD320 : 25.5 cycles/byte 58.73 Mb/sec 35.8 cycles/byte 41.87 Mb/sec 40% +
1463 THash_MD5 : 8.9 cycles/byte 169.43 Mb/sec 11.4 cycles/byte 131.01 Mb/sec 29% +
1464 THash_RipeMD160 : 26.5 cycles/byte 56.66 Mb/sec 31.4 cycles/byte 47.79 Mb/sec 19% +
1465 THash_Square : 44.7 cycles/byte 33.58 Mb/sec 53.1 cycles/byte 28.23 Mb/sec 19% +
1466 THash_Haval192 : 32.5 cycles/byte 46.17 Mb/sec 37.6 cycles/byte 39.87 Mb/sec 18% +
1467 THash_WhirlpoolT: 104.9 cycles/byte 14.30 Mb/sec 122.8 cycles/byte 12.22 Mb/sec 17% +
1468 THash_Whirlpool0: 104.7 cycles/byte 14.33 Mb/sec 119.9 cycles/byte 12.51 Mb/sec 15% +
1469 THash_Sapphire : 52.9 cycles/byte 28.35 Mb/sec 53.8 cycles/byte 27.86 Mb/sec 2% +
1470 THash_Haval224 : 32.0 cycles/byte 46.82 Mb/sec 32.3 cycles/byte 46.46 Mb/sec 1% +
1471 THash_SHA256 : 47.8 cycles/byte 31.35 Mb/sec 47.8 cycles/byte 31.39 Mb/sec 0% +
1472 THash_Panama : 8.9 cycles/byte 169.01 Mb/sec 7.3 cycles/byte 206.55 Mb/sec -18% +
1473} +
1474 +
1475resourcestring +
1476 /// <summary> +
1477 /// Failure message when a hash algorithm is initialized with wrong parameters +
1478 /// </summary> +
1479 sHashInitFailure = 'Invalid %0:s algorithm initialization parameters '+ +
1480 'specified: %1:s'; +
1481 /// <summary> +
1482 /// Failure message when absorb is callt with a bitlength not divideable by 8 +
1483 /// without reminder or when it is called while already in squeezing state +
1484 /// </summary> +
1485 sSHA3AbsorbFailure = 'Absorb: number of bits mod 8 <> 0 or squeezing active. '+ +
1486 'Bits: %0:d, Squeezing: %1:s'; +
1487 /// <summary> +
1488 /// Part of the failure message shown when setting HashSize of Shake +
1489 /// algorithms to 0. +
1490 /// </summary> +
1491 sHashOutputLength0 = 'HashSize must not be 0'; +
1492 /// <summary> +
1493 /// Some password hash algorithms have a cost factor to be able to adopt +
1494 /// them to increasing CPU power. This text is the exception message when +
1495 /// the user specifies 0 for this. +
1496 /// </summary> +
1497 sCostFactorInvalid = 'Specified cost factor must be in the range of %0:d-%1:d'; +
1498 /// <summary> +
1499 /// Exception message for password hashes when a too long password is specified +
1500 /// </summary> +
1501 sPasswordTooLong = 'Password to be hashed is too long. Max. length: %0:d bytes'; +
1502 /// <summary> +
1503 /// Exception message for password hashes requiring a salt when a salt value +
1504 /// which is either too short or too long has been specified +
1505 /// </summary> +
1506 sWrongSaltLength = 'Length of specified salt value must be between %0:d '+ +
1507 'and %1:d bytes'; +
1508 +
1509{ THash_MD2 } +
1510 +
1511{$IFNDEF THash_MD2_asm} +
1512procedure THash_MD2.DoTransform(Buffer: PUInt32Array); +
1513var +
1514 I, J, T: UInt32; +
1515begin +
1516 for I := 0 to 3 do +
1517 begin +
1518 PUInt32Array(@FDigest[16])[I] := Buffer[I]; +
1519 PUInt32Array(@FDigest[32])[I] := PUInt32Array(@FDigest[0])[I] xor PUInt32Array(@FDigest[16])[I]; +
1520 end; +
1521 T := FDigest[63]; +
1522 for I := 0 to 15 do +
1523 begin +
1524 T := FDigest[I + 48] xor MD2_PISubst[FDigest[I + 16] xor Byte(T)]; +
1525 FDigest[I + 48] := Byte(T); +
1526 end; +
1527 T := 0; +
1528 for I := 0 to 17 do +
1529 begin +
1530 for J := 0 to 47 do +
1531 begin +
1532 T := FDigest[J] xor MD2_PISubst[T]; +
1533 FDigest[J] := Byte(T); +
1534 end; +
1535 T := (T + I) and $FF; +
1536 end; +
1537end; +
1538{$ENDIF !THash_MD2_asm} +
1539 +
1540procedure THash_MD2.DoInit; +
1541begin +
1542 FillChar(FDigest, SizeOf(FDigest), 0); +
1543end; +
1544 +
1545procedure THash_MD2.DoDone; +
1546var +
1547 Remain: Integer; +
1548begin +
1549 Remain := FBufferSize - FBufferIndex; +
1550 FillChar(FBuffer[FBufferIndex], Remain, Remain); +
1551 DoTransform(Pointer(FBuffer)); +
1552 Move(FDigest[48], FBuffer^, FBufferSize); +
1553 DoTransform(Pointer(FBuffer)); +
1554end; +
1555 +
1556function THash_MD2.Digest: PByteArray; +
1557begin +
1558 Result := @FDigest; +
1559end; +
1560 +
1561class function THash_MD2.DigestSize: UInt32; +
1562begin +
1563 Result := 16; +
1564end; +
1565 +
1566class function THash_MD2.BlockSize: UInt32; +
1567begin +
1568 Result := 16; +
1569end; +
1570 +
1571{ THashBaseMD4 } +
1572 +
1573procedure THashBaseMD4.DoInit; +
1574begin +
1575 FDigest[0] := $67452301; +
1576 FDigest[1] := $EFCDAB89; +
1577 FDigest[2] := $98BADCFE; +
1578 FDigest[3] := $10325476; +
1579 FDigest[4] := $C3D2E1F0; +
1580 FDigest[5] := $76543210; +
1581 FDigest[6] := $FEDCBA98; +
1582 FDigest[7] := $89ABCDEF; +
1583 FDigest[8] := $01234567; +
1584 FDigest[9] := $3C2D1E0F; +
1585end; +
1586 +
1587procedure THashBaseMD4.DoDone; +
1588begin +
1589 if FCount[2] or FCount[3] <> 0 then +
1590 RaiseHashOverflowError; +
1591 if FPaddingByte = 0 then +
1592 FPaddingByte := $80; +
1593 FBuffer[FBufferIndex] := FPaddingByte; +
1594 Inc(FBufferIndex); +
1595 if FBufferIndex > FBufferSize - 8 then +
1596 begin +
1597 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
1598 DoTransform(Pointer(FBuffer)); +
1599 FBufferIndex := 0; +
1600 end; +
1601 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
1602 Move(FCount, FBuffer[FBufferSize - 8], 8); +
1603 DoTransform(Pointer(FBuffer)); +
1604end; +
1605 +
1606function THashBaseMD4.Digest: PByteArray; +
1607begin +
1608 Result := @FDigest; +
1609end; +
1610 +
1611class function THashBaseMD4.DigestSize: UInt32; +
1612begin +
1613 Result := 16; +
1614end; +
1615 +
1616class function THashBaseMD4.BlockSize: UInt32; +
1617begin +
1618 Result := 64; +
1619end; +
1620 +
1621{ THash_MD4 } +
1622 +
1623{$IFNDEF THash_MD4_asm} +
1624procedure THash_MD4.DoTransform(Buffer: PUInt32Array); +
1625const +
1626 S1 = $5A827999; +
1627 S2 = $6ED9EBA1; +
1628var +
1629 A, B, C, D: UInt32; +
1630begin +
1631 A := FDigest[0]; +
1632 B := FDigest[1]; +
1633 C := FDigest[2]; +
1634 D := FDigest[3]; +
1635 +
1636 Inc(A, B and C or not B and D + Buffer[ 0]); A := A shl 3 or A shr 29; +
1637 Inc(D, A and B or not A and C + Buffer[ 1]); D := D shl 7 or D shr 25; +
1638 Inc(C, D and A or not D and B + Buffer[ 2]); C := C shl 11 or C shr 21; +
1639 Inc(B, C and D or not C and A + Buffer[ 3]); B := B shl 19 or B shr 13; +
1640 Inc(A, B and C or not B and D + Buffer[ 4]); A := A shl 3 or A shr 29; +
1641 Inc(D, A and B or not A and C + Buffer[ 5]); D := D shl 7 or D shr 25; +
1642 Inc(C, D and A or not D and B + Buffer[ 6]); C := C shl 11 or C shr 21; +
1643 Inc(B, C and D or not C and A + Buffer[ 7]); B := B shl 19 or B shr 13; +
1644 Inc(A, B and C or not B and D + Buffer[ 8]); A := A shl 3 or A shr 29; +
1645 Inc(D, A and B or not A and C + Buffer[ 9]); D := D shl 7 or D shr 25; +
1646 Inc(C, D and A or not D and B + Buffer[10]); C := C shl 11 or C shr 21; +
1647 Inc(B, C and D or not C and A + Buffer[11]); B := B shl 19 or B shr 13; +
1648 Inc(A, B and C or not B and D + Buffer[12]); A := A shl 3 or A shr 29; +
1649 Inc(D, A and B or not A and C + Buffer[13]); D := D shl 7 or D shr 25; +
1650 Inc(C, D and A or not D and B + Buffer[14]); C := C shl 11 or C shr 21; +
1651 Inc(B, C and D or not C and A + Buffer[15]); B := B shl 19 or B shr 13; +
1652 +
1653 Inc(A, B and C or B and D or C and D + Buffer[ 0] + S1); A := A shl 3 or A shr 29; +
1654 Inc(D, A and B or A and C or B and C + Buffer[ 4] + S1); D := D shl 5 or D shr 27; +
1655 Inc(C, D and A or D and B or A and B + Buffer[ 8] + S1); C := C shl 9 or C shr 23; +
1656 Inc(B, C and D or C and A or D and A + Buffer[12] + S1); B := B shl 13 or B shr 19; +
1657 Inc(A, B and C or B and D or C and D + Buffer[ 1] + S1); A := A shl 3 or A shr 29; +
1658 Inc(D, A and B or A and C or B and C + Buffer[ 5] + S1); D := D shl 5 or D shr 27; +
1659 Inc(C, D and A or D and B or A and B + Buffer[ 9] + S1); C := C shl 9 or C shr 23; +
1660 Inc(B, C and D or C and A or D and A + Buffer[13] + S1); B := B shl 13 or B shr 19; +
1661 Inc(A, B and C or B and D or C and D + Buffer[ 2] + S1); A := A shl 3 or A shr 29; +
1662 Inc(D, A and B or A and C or B and C + Buffer[ 6] + S1); D := D shl 5 or D shr 27; +
1663 Inc(C, D and A or D and B or A and B + Buffer[10] + S1); C := C shl 9 or C shr 23; +
1664 Inc(B, C and D or C and A or D and A + Buffer[14] + S1); B := B shl 13 or B shr 19; +
1665 Inc(A, B and C or B and D or C and D + Buffer[ 3] + S1); A := A shl 3 or A shr 29; +
1666 Inc(D, A and B or A and C or B and C + Buffer[ 7] + S1); D := D shl 5 or D shr 27; +
1667 Inc(C, D and A or D and B or A and B + Buffer[11] + S1); C := C shl 9 or C shr 23; +
1668 Inc(B, C and D or C and A or D and A + Buffer[15] + S1); B := B shl 13 or B shr 19; +
1669 +
1670 Inc(A, B xor C xor D + Buffer[ 0] + S2); A := A shl 3 or A shr 29; +
1671 Inc(D, A xor B xor C + Buffer[ 8] + S2); D := D shl 9 or D shr 23; +
1672 Inc(C, D xor A xor B + Buffer[ 4] + S2); C := C shl 11 or C shr 21; +
1673 Inc(B, C xor D xor A + Buffer[12] + S2); B := B shl 15 or B shr 17; +
1674 Inc(A, B xor C xor D + Buffer[ 2] + S2); A := A shl 3 or A shr 29; +
1675 Inc(D, A xor B xor C + Buffer[10] + S2); D := D shl 9 or D shr 23; +
1676 Inc(C, D xor A xor B + Buffer[ 6] + S2); C := C shl 11 or C shr 21; +
1677 Inc(B, C xor D xor A + Buffer[14] + S2); B := B shl 15 or B shr 17; +
1678 Inc(A, B xor C xor D + Buffer[ 1] + S2); A := A shl 3 or A shr 29; +
1679 Inc(D, A xor B xor C + Buffer[ 9] + S2); D := D shl 9 or D shr 23; +
1680 Inc(C, D xor A xor B + Buffer[ 5] + S2); C := C shl 11 or C shr 21; +
1681 Inc(B, C xor D xor A + Buffer[13] + S2); B := B shl 15 or B shr 17; +
1682 Inc(A, B xor C xor D + Buffer[ 3] + S2); A := A shl 3 or A shr 29; +
1683 Inc(D, A xor B xor C + Buffer[11] + S2); D := D shl 9 or D shr 23; +
1684 Inc(C, D xor A xor B + Buffer[ 7] + S2); C := C shl 11 or C shr 21; +
1685 Inc(B, C xor D xor A + Buffer[15] + S2); B := B shl 15 or B shr 17; +
1686 +
1687 Inc(FDigest[0], A); +
1688 Inc(FDigest[1], B); +
1689 Inc(FDigest[2], C); +
1690 Inc(FDigest[3], D); +
1691end; +
1692{$ENDIF} +
1693 +
1694{ THash_MD5 } +
1695 +
1696{$IFNDEF THash_MD5_asm} +
1697procedure THash_MD5.DoTransform(Buffer: PUInt32Array); +
1698var +
1699 A, B, C, D: UInt32; +
1700begin +
1701 A := FDigest[0]; +
1702 B := FDigest[1]; +
1703 C := FDigest[2]; +
1704 D := FDigest[3]; +
1705 +
1706 Inc(A, Buffer[ 0] + $D76AA478 + (D xor (B and (C xor D)))); A := A shl 7 or A shr 25 + B; +
1707 Inc(D, Buffer[ 1] + $E8C7B756 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A; +
1708 Inc(C, Buffer[ 2] + $242070DB + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D; +
1709 Inc(B, Buffer[ 3] + $C1BDCEEE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C; +
1710 Inc(A, Buffer[ 4] + $F57C0FAF + (D xor (B and (C xor D)))); A := A shl 7 or A shr 25 + B; +
1711 Inc(D, Buffer[ 5] + $4787C62A + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A; +
1712 Inc(C, Buffer[ 6] + $A8304613 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D; +
1713 Inc(B, Buffer[ 7] + $FD469501 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C; +
1714 Inc(A, Buffer[ 8] + $698098D8 + (D xor (B and (C xor D)))); A := A shl 7 or A shr 25 + B; +
1715 Inc(D, Buffer[ 9] + $8B44F7AF + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A; +
1716 Inc(C, Buffer[10] + $FFFF5BB1 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D; +
1717 Inc(B, Buffer[11] + $895CD7BE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C; +
1718 Inc(A, Buffer[12] + $6B901122 + (D xor (B and (C xor D)))); A := A shl 7 or A shr 25 + B; +
1719 Inc(D, Buffer[13] + $FD987193 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A; +
1720 Inc(C, Buffer[14] + $A679438E + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D; +
1721 Inc(B, Buffer[15] + $49B40821 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C; +
1722 +
1723 Inc(A, Buffer[ 1] + $F61E2562 + (C xor (D and (B xor C)))); A := A shl 5 or A shr 27 + B; +
1724 Inc(D, Buffer[ 6] + $C040B340 + (B xor (C and (A xor B)))); D := D shl 9 or D shr 23 + A; +
1725 Inc(C, Buffer[11] + $265E5A51 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D; +
1726 Inc(B, Buffer[ 0] + $E9B6C7AA + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C; +
1727 Inc(A, Buffer[ 5] + $D62F105D + (C xor (D and (B xor C)))); A := A shl 5 or A shr 27 + B; +
1728 Inc(D, Buffer[10] + $02441453 + (B xor (C and (A xor B)))); D := D shl 9 or D shr 23 + A; +
1729 Inc(C, Buffer[15] + $D8A1E681 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D; +
1730 Inc(B, Buffer[ 4] + $E7D3FBC8 + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C; +
1731 Inc(A, Buffer[ 9] + $21E1CDE6 + (C xor (D and (B xor C)))); A := A shl 5 or A shr 27 + B; +
1732 Inc(D, Buffer[14] + $C33707D6 + (B xor (C and (A xor B)))); D := D shl 9 or D shr 23 + A; +
1733 Inc(C, Buffer[ 3] + $F4D50D87 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D; +
1734 Inc(B, Buffer[ 8] + $455A14ED + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C; +
1735 Inc(A, Buffer[13] + $A9E3E905 + (C xor (D and (B xor C)))); A := A shl 5 or A shr 27 + B; +
1736 Inc(D, Buffer[ 2] + $FCEFA3F8 + (B xor (C and (A xor B)))); D := D shl 9 or D shr 23 + A; +
1737 Inc(C, Buffer[ 7] + $676F02D9 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D; +
1738 Inc(B, Buffer[12] + $8D2A4C8A + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C; +
1739 +
1740 Inc(A, Buffer[ 5] + $FFFA3942 + (B xor C xor D)); A := A shl 4 or A shr 28 + B; +
1741 Inc(D, Buffer[ 8] + $8771F681 + (A xor B xor C)); D := D shl 11 or D shr 21 + A; +
1742 Inc(C, Buffer[11] + $6D9D6122 + (D xor A xor B)); C := C shl 16 or C shr 16 + D; +
1743 Inc(B, Buffer[14] + $FDE5380C + (C xor D xor A)); B := B shl 23 or B shr 9 + C; +
1744 Inc(A, Buffer[ 1] + $A4BEEA44 + (B xor C xor D)); A := A shl 4 or A shr 28 + B; +
1745 Inc(D, Buffer[ 4] + $4BDECFA9 + (A xor B xor C)); D := D shl 11 or D shr 21 + A; +
1746 Inc(C, Buffer[ 7] + $F6BB4B60 + (D xor A xor B)); C := C shl 16 or C shr 16 + D; +
1747 Inc(B, Buffer[10] + $BEBFBC70 + (C xor D xor A)); B := B shl 23 or B shr 9 + C; +
1748 Inc(A, Buffer[13] + $289B7EC6 + (B xor C xor D)); A := A shl 4 or A shr 28 + B; +
1749 Inc(D, Buffer[ 0] + $EAA127FA + (A xor B xor C)); D := D shl 11 or D shr 21 + A; +
1750 Inc(C, Buffer[ 3] + $D4EF3085 + (D xor A xor B)); C := C shl 16 or C shr 16 + D; +
1751 Inc(B, Buffer[ 6] + $04881D05 + (C xor D xor A)); B := B shl 23 or B shr 9 + C; +
1752 Inc(A, Buffer[ 9] + $D9D4D039 + (B xor C xor D)); A := A shl 4 or A shr 28 + B; +
1753 Inc(D, Buffer[12] + $E6DB99E5 + (A xor B xor C)); D := D shl 11 or D shr 21 + A; +
1754 Inc(C, Buffer[15] + $1FA27CF8 + (D xor A xor B)); C := C shl 16 or C shr 16 + D; +
1755 Inc(B, Buffer[ 2] + $C4AC5665 + (C xor D xor A)); B := B shl 23 or B shr 9 + C; +
1756 +
1757 Inc(A, Buffer[ 0] + $F4292244 + (C xor (B or not D))); A := A shl 6 or A shr 26 + B; +
1758 Inc(D, Buffer[ 7] + $432AFF97 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A; +
1759 Inc(C, Buffer[14] + $AB9423A7 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D; +
1760 Inc(B, Buffer[ 5] + $FC93A039 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C; +
1761 Inc(A, Buffer[12] + $655B59C3 + (C xor (B or not D))); A := A shl 6 or A shr 26 + B; +
1762 Inc(D, Buffer[ 3] + $8F0CCC92 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A; +
1763 Inc(C, Buffer[10] + $FFEFF47D + (A xor (D or not B))); C := C shl 15 or C shr 17 + D; +
1764 Inc(B, Buffer[ 1] + $85845DD1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C; +
1765 Inc(A, Buffer[ 8] + $6FA87E4F + (C xor (B or not D))); A := A shl 6 or A shr 26 + B; +
1766 Inc(D, Buffer[15] + $FE2CE6E0 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A; +
1767 Inc(C, Buffer[ 6] + $A3014314 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D; +
1768 Inc(B, Buffer[13] + $4E0811A1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C; +
1769 Inc(A, Buffer[ 4] + $F7537E82 + (C xor (B or not D))); A := A shl 6 or A shr 26 + B; +
1770 Inc(D, Buffer[11] + $BD3AF235 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A; +
1771 Inc(C, Buffer[ 2] + $2AD7D2BB + (A xor (D or not B))); C := C shl 15 or C shr 17 + D; +
1772 Inc(B, Buffer[ 9] + $EB86D391 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C; +
1773 +
1774 Inc(FDigest[0], A); +
1775 Inc(FDigest[1], B); +
1776 Inc(FDigest[2], C); +
1777 Inc(FDigest[3], D); +
1778end; +
1779{$ENDIF} +
1780 +
1781{ THash_RipeMD128 } +
1782 +
1783{$IFNDEF X86ASM} +
1784const +
1785 RipeS1 = $5A827999; +
1786 RipeS2 = $6ED9EBA1; +
1787 RipeS3 = $8F1BBCDC; +
1788 RipeS4 = $A953FD4E; +
1789 RipeS5 = $50A28BE6; +
1790 RipeS6 = $5C4DD124; +
1791 RipeS7 = $6D703EF3; +
1792 RipeS8 = $7A6D76E9; +
1793{$ENDIF !X86ASM} +
1794 +
1795{$IFNDEF THash_RipeMD128_asm} +
1796procedure THash_RipeMD128.DoTransform(Buffer: PUInt32Array); +
1797var +
1798 A1, B1, C1, D1: UInt32; +
1799 A2, B2, C2, D2: UInt32; +
1800 T: UInt32; +
1801begin +
1802 A1 := FDigest[0]; +
1803 B1 := FDigest[1]; +
1804 C1 := FDigest[2]; +
1805 D1 := FDigest[3]; +
1806 A2 := FDigest[0]; +
1807 B2 := FDigest[1]; +
1808 C2 := FDigest[2]; +
1809 D2 := FDigest[3]; +
1810 +
1811 Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21; +
1812 Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18; +
1813 Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17; +
1814 Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20; +
1815 Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl 5 or A1 shr 27; +
1816 Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl 8 or D1 shr 24; +
1817 Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl 7 or C1 shr 25; +
1818 Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl 9 or B1 shr 23; +
1819 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21; +
1820 Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19; +
1821 Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18; +
1822 Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17; +
1823 Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl 6 or A1 shr 26; +
1824 Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl 7 or D1 shr 25; +
1825 Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl 9 or C1 shr 23; +
1826 Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl 8 or B1 shr 24; +
1827 +
1828 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl 7 or A1 shr 25; +
1829 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl 6 or D1 shr 26; +
1830 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl 8 or C1 shr 24; +
1831 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19; +
1832 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21; +
1833 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl 9 or D1 shr 23; +
1834 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl 7 or C1 shr 25; +
1835 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17; +
1836 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl 7 or A1 shr 25; +
1837 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20; +
1838 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17; +
1839 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl 9 or B1 shr 23; +
1840 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21; +
1841 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl 7 or D1 shr 25; +
1842 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19; +
1843 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20; +
1844 +
1845 Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21; +
1846 Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19; +
1847 Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl 6 or C1 shr 26; +
1848 Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl 7 or B1 shr 25; +
1849 Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18; +
1850 Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl 9 or D1 shr 23; +
1851 Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19; +
1852 Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17; +
1853 Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18; +
1854 Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl 8 or D1 shr 24; +
1855 Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19; +
1856 Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl 6 or B1 shr 26; +
1857 Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl 5 or A1 shr 27; +
1858 Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20; +
1859 Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl 7 or C1 shr 25; +
1860 Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl 5 or B1 shr 27; +
1861 +
1862 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21; +
1863 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20; +
1864 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18; +
1865 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17; +
1866 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18; +
1867 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17; +
1868 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl 9 or C1 shr 23; +
1869 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl 8 or B1 shr 24; +
1870 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl 9 or A1 shr 23; +
1871 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18; +
1872 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl 5 or C1 shr 27; +
1873 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl 6 or B1 shr 26; +
1874 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl 8 or A1 shr 24; +
1875 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl 6 or D1 shr 26; +
1876 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl 5 or C1 shr 27; +
1877 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20; +
1878 +
1879 T := A1; A1 := A2; A2 := T; +
1880 T := B1; B1 := B2; B2 := T; +
1881 T := C1; C1 := C2; C2 := T; +
1882 T := D1; D1 := D2; D2 := T; +
1883 +
1884 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl 8 or A1 shr 24; +
1885 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl 9 or D1 shr 23; +
1886 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl 9 or C1 shr 23; +
1887 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21; +
1888 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19; +
1889 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17; +
1890 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17; +
1891 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl 5 or B1 shr 27; +
1892 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl 7 or A1 shr 25; +
1893 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl 7 or D1 shr 25; +
1894 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl 8 or C1 shr 24; +
1895 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21; +
1896 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18; +
1897 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18; +
1898 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20; +
1899 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl 6 or B1 shr 26; +
1900 +
1901 Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl 9 or A1 shr 23; +
1902 Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19; +
1903 Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17; +
1904 Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl 7 or B1 shr 25; +
1905 Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20; +
1906 Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl 8 or D1 shr 24; +
1907 Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl 9 or C1 shr 23; +
1908 Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21; +
1909 Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl 7 or A1 shr 25; +
1910 Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl 7 or D1 shr 25; +
1911 Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20; +
1912 Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl 7 or B1 shr 25; +
1913 Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl 6 or A1 shr 26; +
1914 Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17; +
1915 Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19; +
1916 Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21; +
1917 +
1918 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl 9 or A1 shr 23; +
1919 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl 7 or D1 shr 25; +
1920 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17; +
1921 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21; +
1922 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl 8 or A1 shr 24; +
1923 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl 6 or D1 shr 26; +
1924 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl 6 or C1 shr 26; +
1925 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18; +
1926 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20; +
1927 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19; +
1928 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl 5 or C1 shr 27; +
1929 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18; +
1930 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19; +
1931 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19; +
1932 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl 7 or C1 shr 25; +
1933 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl 5 or B1 shr 27; +
1934 +
1935 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17; +
1936 Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl 5 or D1 shr 27; +
1937 Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl 8 or C1 shr 24; +
1938 Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21; +
1939 Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18; +
1940 Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18; +
1941 Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl 6 or C1 shr 26; +
1942 Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18; +
1943 Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl 6 or A1 shr 26; +
1944 Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl 9 or D1 shr 23; +
1945 Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20; +
1946 Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl 9 or B1 shr 23; +
1947 Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20; +
1948 Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl 5 or D1 shr 27; +
1949 Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17; +
1950 Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl 8 or B1 shr 24; +
1951 +
1952 Inc(D1, C2 + FDigest[1]); +
1953 FDigest[1] := FDigest[2] + D2 + A1; +
1954 FDigest[2] := FDigest[3] + A2 + B1; +
1955 FDigest[3] := FDIgest[0] + B2 + C1; +
1956 FDigest[0] := D1; +
1957end; +
1958{$ENDIF !THash_RipeMD128_asm} +
1959 +
1960{ THash_RipeMD160 } +
1961 +
1962{$IFNDEF THash_RipeMD160_asm} +
1963procedure THash_RipeMD160.DoTransform(Buffer: PUInt32Array); +
1964var +
1965 A1, B1, C1, D1, E1: UInt32; +
1966 A2, B2, C2, D2, E2: UInt32; +
1967 T: UInt32; +
1968begin +
1969 A1 := FDigest[0]; +
1970 B1 := FDigest[1]; +
1971 C1 := FDigest[2]; +
1972 D1 := FDigest[3]; +
1973 E1 := FDigest[4]; +
1974 +
1975 A2 := FDigest[0]; +
1976 B2 := FDigest[1]; +
1977 C2 := FDigest[2]; +
1978 D2 := FDigest[3]; +
1979 E2 := FDigest[4]; +
1980 +
1981 Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
1982 Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22; +
1983 Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22; +
1984 Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
1985 Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
1986 Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
1987 Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
1988 Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
1989 Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
1990 Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
1991 Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
1992 Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
1993 Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
1994 Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
1995 Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
1996 Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
1997 +
1998 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
1999 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
2000 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl 8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22; +
2001 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2002 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
2003 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2004 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl 7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22; +
2005 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2006 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2007 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2008 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2009 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2010 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2011 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2012 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2013 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2014 +
2015 Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22; +
2016 Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2017 Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2018 Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl 7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22; +
2019 Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22; +
2020 Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2021 Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2022 Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2023 Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2024 Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2025 Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2026 Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2027 Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2028 Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2029 Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2030 Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2031 +
2032 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2033 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22; +
2034 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2035 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2036 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2037 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2038 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2039 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2040 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2041 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2042 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl 5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22; +
2043 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2044 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2045 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2046 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2047 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2048 +
2049 Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2050 Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22; +
2051 Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl 5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22; +
2052 Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22; +
2053 Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2054 Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl 8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22; +
2055 Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2056 Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2057 Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2058 Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2059 Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2060 Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2061 Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2062 Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl 8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22; +
2063 Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl 5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22; +
2064 Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2065 +
2066 T := A1; A1 := A2; A2 := T; +
2067 T := B1; B1 := B2; B2 := T; +
2068 T := C1; C1 := C2; C2 := T; +
2069 T := D1; D1 := D2; D2 := T; +
2070 T := E1; E1 := E2; E2 := T; +
2071 +
2072 Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2073 Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2074 Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2075 Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2076 Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2077 Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22; +
2078 Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2079 Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2080 Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
2081 Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2082 Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2083 Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2084 Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2085 Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2086 Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22; +
2087 Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl 6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22; +
2088 +
2089 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2090 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2091 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2092 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2093 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2094 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2095 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2096 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2097 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2098 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl 7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22; +
2099 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2100 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl 7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22; +
2101 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2102 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2103 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2104 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2105 +
2106 Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2107 Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
2108 Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2109 Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
2110 Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2111 Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
2112 Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2113 Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22; +
2114 Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2115 Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22; +
2116 Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2117 Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2118 Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2119 Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2120 Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2121 Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2122 +
2123 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2124 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2125 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2126 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2127 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2128 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2129 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2130 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2131 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2132 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2133 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2134 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2135 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2136 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl 5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22; +
2137 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22; +
2138 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl 8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22; +
2139 +
2140 Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl 8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22; +
2141 Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl 5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22; +
2142 Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2143 Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2144 Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2145 Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2146 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2147 Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2148 Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl 8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22; +
2149 Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2150 Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2151 Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl 5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22; +
2152 Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2153 Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2154 Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2155 Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22; +
2156 +
2157 Inc(D1, C2 + FDigest[1]); +
2158 FDigest[1] := FDigest[2] + D2 + E1; +
2159 FDigest[2] := FDigest[3] + E2 + A1; +
2160 FDigest[3] := FDigest[4] + A2 + B1; +
2161 FDigest[4] := FDigest[0] + B2 + C1; +
2162 FDigest[0] := D1; +
2163end; +
2164{$ENDIF !THash_RipeMD160_asm} +
2165 +
2166class function THash_RipeMD160.DigestSize: UInt32; +
2167begin +
2168 Result := 20; +
2169end; +
2170 +
2171{ THash_RipeMD256 } +
2172 +
2173{$IFNDEF THash_RipeMD256_asm} +
2174procedure THash_RipeMD256.DoTransform(Buffer: PUInt32Array); +
2175var +
2176 A1, B1, C1, D1: UInt32; +
2177 A2, B2, C2, D2: UInt32; +
2178 T: UInt32; +
2179begin +
2180 A1 := FDigest[0]; +
2181 B1 := FDigest[1]; +
2182 C1 := FDigest[2]; +
2183 D1 := FDigest[3]; +
2184 +
2185 A2 := FDigest[4]; +
2186 B2 := FDigest[5]; +
2187 C2 := FDigest[6]; +
2188 D2 := FDigest[7]; +
2189 +
2190 Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21; +
2191 Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18; +
2192 Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17; +
2193 Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20; +
2194 Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl 5 or A1 shr 27; +
2195 Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl 8 or D1 shr 24; +
2196 Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl 7 or C1 shr 25; +
2197 Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl 9 or B1 shr 23; +
2198 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21; +
2199 Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19; +
2200 Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18; +
2201 Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17; +
2202 Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl 6 or A1 shr 26; +
2203 Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl 7 or D1 shr 25; +
2204 Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl 9 or C1 shr 23; +
2205 Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl 8 or B1 shr 24; +
2206 +
2207 T := A1; A1 := A2; A2 := T; +
2208 T := B1; B1 := B2; B2 := T; +
2209 T := C1; C1 := C2; C2 := T; +
2210 T := D1; D1 := D2; D2 := T; +
2211 +
2212 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl 8 or A1 shr 24; +
2213 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl 9 or D1 shr 23; +
2214 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl 9 or C1 shr 23; +
2215 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21; +
2216 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19; +
2217 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17; +
2218 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17; +
2219 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl 5 or B1 shr 27; +
2220 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl 7 or A1 shr 25; +
2221 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl 7 or D1 shr 25; +
2222 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl 8 or C1 shr 24; +
2223 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21; +
2224 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18; +
2225 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18; +
2226 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20; +
2227 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl 6 or B1 shr 26; +
2228 +
2229 T := B1; B1 := B2; B2 := T; +
2230 T := C1; C1 := C2; C2 := T; +
2231 T := D1; D1 := D2; D2 := T; +
2232 +
2233 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl 7 or A1 shr 25; +
2234 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl 6 or D1 shr 26; +
2235 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl 8 or C1 shr 24; +
2236 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19; +
2237 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21; +
2238 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl 9 or D1 shr 23; +
2239 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl 7 or C1 shr 25; +
2240 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17; +
2241 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl 7 or A1 shr 25; +
2242 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20; +
2243 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17; +
2244 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl 9 or B1 shr 23; +
2245 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21; +
2246 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl 7 or D1 shr 25; +
2247 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19; +
2248 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20; +
2249 +
2250 T := A1; A1 := A2; A2 := T; +
2251 T := B1; B1 := B2; B2 := T; +
2252 T := C1; C1 := C2; C2 := T; +
2253 T := D1; D1 := D2; D2 := T; +
2254 +
2255 Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl 9 or A1 shr 23; +
2256 Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19; +
2257 Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17; +
2258 Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl 7 or B1 shr 25; +
2259 Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20; +
2260 Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl 8 or D1 shr 24; +
2261 Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl 9 or C1 shr 23; +
2262 Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21; +
2263 Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl 7 or A1 shr 25; +
2264 Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl 7 or D1 shr 25; +
2265 Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20; +
2266 Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl 7 or B1 shr 25; +
2267 Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl 6 or A1 shr 26; +
2268 Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17; +
2269 Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19; +
2270 Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21; +
2271 +
2272 T := A1; A1 := A2; A2 := T; +
2273 T := C1; C1 := C2; C2 := T; +
2274 T := D1; D1 := D2; D2 := T; +
2275 +
2276 Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21; +
2277 Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19; +
2278 Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl 6 or C1 shr 26; +
2279 Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl 7 or B1 shr 25; +
2280 Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18; +
2281 Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl 9 or D1 shr 23; +
2282 Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19; +
2283 Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17; +
2284 Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18; +
2285 Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl 8 or D1 shr 24; +
2286 Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19; +
2287 Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl 6 or B1 shr 26; +
2288 Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl 5 or A1 shr 27; +
2289 Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20; +
2290 Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl 7 or C1 shr 25; +
2291 Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl 5 or B1 shr 27; +
2292 +
2293 T := A1; A1 := A2; A2 := T; +
2294 T := B1; B1 := B2; B2 := T; +
2295 T := C1; C1 := C2; C2 := T; +
2296 T := D1; D1 := D2; D2 := T; +
2297 +
2298 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl 9 or A1 shr 23; +
2299 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl 7 or D1 shr 25; +
2300 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17; +
2301 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21; +
2302 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl 8 or A1 shr 24; +
2303 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl 6 or D1 shr 26; +
2304 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl 6 or C1 shr 26; +
2305 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18; +
2306 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20; +
2307 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19; +
2308 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl 5 or C1 shr 27; +
2309 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18; +
2310 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19; +
2311 Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19; +
2312 Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl 7 or C1 shr 25; +
2313 Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl 5 or B1 shr 27; +
2314 +
2315 T := A1; A1 := A2; A2 := T; +
2316 T := B1; B1 := B2; B2 := T; +
2317 T := D1; D1 := D2; D2 := T; +
2318 +
2319 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21; +
2320 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20; +
2321 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18; +
2322 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17; +
2323 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18; +
2324 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17; +
2325 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl 9 or C1 shr 23; +
2326 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl 8 or B1 shr 24; +
2327 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl 9 or A1 shr 23; +
2328 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18; +
2329 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl 5 or C1 shr 27; +
2330 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl 6 or B1 shr 26; +
2331 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl 8 or A1 shr 24; +
2332 Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl 6 or D1 shr 26; +
2333 Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl 5 or C1 shr 27; +
2334 Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20; +
2335 +
2336 T := A1; A1 := A2; A2 := T; +
2337 T := B1; B1 := B2; B2 := T; +
2338 T := C1; C1 := C2; C2 := T; +
2339 T := D1; D1 := D2; D2 := T; +
2340 +
2341 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17; +
2342 Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl 5 or D1 shr 27; +
2343 Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl 8 or C1 shr 24; +
2344 Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21; +
2345 Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18; +
2346 Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18; +
2347 Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl 6 or C1 shr 26; +
2348 Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18; +
2349 Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl 6 or A1 shr 26; +
2350 Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl 9 or D1 shr 23; +
2351 Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20; +
2352 Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl 9 or B1 shr 23; +
2353 Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20; +
2354 Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl 5 or D1 shr 27; +
2355 Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17; +
2356 Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl 8 or B1 shr 24; +
2357 +
2358 Inc(FDigest[0], A2); +
2359 Inc(FDigest[1], B2); +
2360 Inc(FDigest[2], C2); +
2361 Inc(FDigest[3], D1); +
2362 +
2363 Inc(FDigest[4], A1); +
2364 Inc(FDigest[5], B1); +
2365 Inc(FDigest[6], C1); +
2366 Inc(FDigest[7], D2); +
2367end; +
2368{$ENDIF !THash_RipeMD256_asm} +
2369 +
2370procedure THash_RipeMD256.DoInit; +
2371begin +
2372 FDigest[0] := $67452301; +
2373 FDigest[1] := $EFCDAB89; +
2374 FDigest[2] := $98BADCFE; +
2375 FDigest[3] := $10325476; +
2376 FDigest[4] := $76543210; +
2377 FDigest[5] := $FEDCBA98; +
2378 FDigest[6] := $89ABCDEF; +
2379 FDigest[7] := $01234567; +
2380 FDigest[8] := $01234567; +
2381 FDigest[9] := $3C2D1E0F; +
2382end; +
2383 +
2384class function THash_RipeMD256.DigestSize: UInt32; +
2385begin +
2386 Result := 32; +
2387end; +
2388 +
2389{ THash_RipeMD320 } +
2390 +
2391{$IFNDEF THash_RipeMD320_asm} +
2392procedure THash_RipeMD320.DoTransform(Buffer: PUInt32Array); +
2393var +
2394 A1, B1, C1, D1, E1: UInt32; +
2395 A2, B2, C2, D2, E2: UInt32; +
2396 T: UInt32; +
2397begin +
2398 A1 := FDigest[0]; +
2399 B1 := FDigest[1]; +
2400 C1 := FDigest[2]; +
2401 D1 := FDigest[3]; +
2402 E1 := FDigest[4]; +
2403 A2 := FDigest[5]; +
2404 B2 := FDigest[6]; +
2405 C2 := FDigest[7]; +
2406 D2 := FDigest[8]; +
2407 E2 := FDigest[9]; +
2408 +
2409 Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
2410 Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22; +
2411 Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22; +
2412 Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2413 Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2414 Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2415 Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2416 Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2417 Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2418 Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2419 Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2420 Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2421 Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
2422 Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
2423 Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2424 Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2425 +
2426 T := A1; A1 := A2; A2 := T; +
2427 T := B1; B1 := B2; B2 := T; +
2428 T := C1; C1 := C2; C2 := T; +
2429 T := D1; D1 := D2; D2 := T; +
2430 T := E1; E1 := E2; E2 := T; +
2431 +
2432 Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2433 Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2434 Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2435 Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2436 Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2437 Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22; +
2438 Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2439 Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2440 Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
2441 Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2442 Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2443 Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2444 Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2445 Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2446 Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22; +
2447 Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl 6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22; +
2448 +
2449 T := B1; B1 := B2; B2 := T; +
2450 T := C1; C1 := C2; C2 := T; +
2451 T := D1; D1 := D2; D2 := T; +
2452 T := E1; E1 := E2; E2 := T; +
2453 +
2454 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2455 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
2456 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl 8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22; +
2457 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2458 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
2459 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2460 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl 7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22; +
2461 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2462 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2463 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2464 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2465 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2466 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2467 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2468 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2469 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2470 +
2471 T := A1; A1 := A2; A2 := T; +
2472 T := B1; B1 := B2; B2 := T; +
2473 T := C1; C1 := C2; C2 := T; +
2474 T := D1; D1 := D2; D2 := T; +
2475 T := E1; E1 := E2; E2 := T; +
2476 +
2477 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2478 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2479 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2480 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2481 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2482 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2483 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2484 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2485 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl 7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22; +
2486 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl 7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22; +
2487 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2488 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl 7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22; +
2489 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2490 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2491 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2492 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2493 +
2494 T := A1; A1 := A2; A2 := T; +
2495 T := C1; C1 := C2; C2 := T; +
2496 T := D1; D1 := D2; D2 := T; +
2497 T := E1; E1 := E2; E2 := T; +
2498 +
2499 Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22; +
2500 Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2501 Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2502 Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl 7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22; +
2503 Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22; +
2504 Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2505 Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2506 Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2507 Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2508 Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2509 Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2510 Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2511 Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2512 Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2513 Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2514 Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2515 +
2516 T := A1; A1 := A2; A2 := T; +
2517 T := B1; B1 := B2; B2 := T; +
2518 T := C1; C1 := C2; C2 := T; +
2519 T := D1; D1 := D2; D2 := T; +
2520 T := E1; E1 := E2; E2 := T; +
2521 +
2522 Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2523 Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl 7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22; +
2524 Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22; +
2525 Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22; +
2526 Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl 8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22; +
2527 Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl 6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22; +
2528 Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2529 Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22; +
2530 Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2531 Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22; +
2532 Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2533 Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2534 Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2535 Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2536 Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl 7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22; +
2537 Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2538 +
2539 T := A1; A1 := A2; A2 := T; +
2540 T := B1; B1 := B2; B2 := T; +
2541 T := D1; D1 := D2; D2 := T; +
2542 T := E1; E1 := E2; E2 := T; +
2543 +
2544 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2545 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22; +
2546 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2547 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2548 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2549 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2550 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2551 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2552 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl 9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22; +
2553 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2554 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl 5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22; +
2555 Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2556 Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2557 Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2558 Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2559 Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2560 +
2561 T := A1; A1 := A2; A2 := T; +
2562 T := B1; B1 := B2; B2 := T; +
2563 T := C1; C1 := C2; C2 := T; +
2564 T := D1; D1 := D2; D2 := T; +
2565 T := E1; E1 := E2; E2 := T; +
2566 +
2567 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22; +
2568 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2569 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl 8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22; +
2570 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2571 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22; +
2572 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22; +
2573 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2574 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2575 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2576 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2577 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2578 Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2579 Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22; +
2580 Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl 5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22; +
2581 Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22; +
2582 Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl 8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22; +
2583 +
2584 T := A1; A1 := A2; A2 := T; +
2585 T := B1; B1 := B2; B2 := T; +
2586 T := C1; C1 := C2; C2 := T; +
2587 T := E1; E1 := E2; E2 := T; +
2588 +
2589 Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl 9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22; +
2590 Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22; +
2591 Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl 5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22; +
2592 Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22; +
2593 Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl 6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22; +
2594 Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl 8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22; +
2595 Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22; +
2596 Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2597 Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl 5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22; +
2598 Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2599 Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22; +
2600 Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2601 Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22; +
2602 Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl 8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22; +
2603 Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl 5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22; +
2604 Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2605 +
2606 T := A1; A1 := A2; A2 := T; +
2607 T := B1; B1 := B2; B2 := T; +
2608 T := C1; C1 := C2; C2 := T; +
2609 T := D1; D1 := D2; D2 := T; +
2610 T := E1; E1 := E2; E2 := T; +
2611 +
2612 Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl 8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22; +
2613 Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl 5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22; +
2614 Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22; +
2615 Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl 9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22; +
2616 Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22; +
2617 Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl 5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22; +
2618 Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22; +
2619 Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl 6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22; +
2620 Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl 8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22; +
2621 Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22; +
2622 Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl 6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22; +
2623 Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl 5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22; +
2624 Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22; +
2625 Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22; +
2626 Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22; +
2627 Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22; +
2628 +
2629 Inc(FDigest[0], A2); +
2630 Inc(FDigest[1], B2); +
2631 Inc(FDigest[2], C2); +
2632 Inc(FDigest[3], D2); +
2633 Inc(FDigest[4], E1); +
2634 Inc(FDigest[5], A1); +
2635 Inc(FDigest[6], B1); +
2636 Inc(FDigest[7], C1); +
2637 Inc(FDigest[8], D1); +
2638 Inc(FDigest[9], E2); +
2639end; +
2640{$ENDIF !THash_RipeMD320_asm} +
2641 +
2642class function THash_RipeMD320.DigestSize: UInt32; +
2643begin +
2644 Result := 40; +
2645end; +
2646 +
2647{ THash_SHA } +
2648 +
2649{$IFNDEF THash_SHA_asm} +
2650procedure THash_SHA0.DoTransform(Buffer: PUInt32Array); +
2651var +
2652 A, B, C, D, E, T: UInt32; +
2653 W: array[0..79] of UInt32; +
2654 I: Integer; +
2655begin +
2656 SwapUInt32Buffer(Buffer[0], W, 16); +
2657 if ClassType <> THash_SHA1 then +
2658 begin +
2659 for I := 16 to 79 do +
2660 begin +
2661 T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16]; +
2662 W[I] := T; +
2663 end; +
2664 end +
2665 else +
2666 begin +
2667 for I := 16 to 79 do +
2668 begin +
2669 T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16]; +
2670 W[I] := T shl 1 or T shr 31; +
2671 end; +
2672 end; +
2673 +
2674 A := FDigest[0]; +
2675 B := FDigest[1]; +
2676 C := FDigest[2]; +
2677 D := FDigest[3]; +
2678 E := FDigest[4]; +
2679 +
2680 Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 0] + $5A827999); B := B shr 2 or B shl 30; +
2681 Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 1] + $5A827999); A := A shr 2 or A shl 30; +
2682 Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 2] + $5A827999); E := E shr 2 or E shl 30; +
2683 Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 3] + $5A827999); D := D shr 2 or D shl 30; +
2684 Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 4] + $5A827999); C := C shr 2 or C shl 30; +
2685 Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 5] + $5A827999); B := B shr 2 or B shl 30; +
2686 Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 6] + $5A827999); A := A shr 2 or A shl 30; +
2687 Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 7] + $5A827999); E := E shr 2 or E shl 30; +
2688 Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 8] + $5A827999); D := D shr 2 or D shl 30; +
2689 Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 9] + $5A827999); C := C shr 2 or C shl 30; +
2690 Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[10] + $5A827999); B := B shr 2 or B shl 30; +
2691 Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[11] + $5A827999); A := A shr 2 or A shl 30; +
2692 Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[12] + $5A827999); E := E shr 2 or E shl 30; +
2693 Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[13] + $5A827999); D := D shr 2 or D shl 30; +
2694 Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[14] + $5A827999); C := C shr 2 or C shl 30; +
2695 Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[15] + $5A827999); B := B shr 2 or B shl 30; +
2696 Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[16] + $5A827999); A := A shr 2 or A shl 30; +
2697 Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[17] + $5A827999); E := E shr 2 or E shl 30; +
2698 Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[18] + $5A827999); D := D shr 2 or D shl 30; +
2699 Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[19] + $5A827999); C := C shr 2 or C shl 30; +
2700 +
2701 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[20] + $6ED9EBA1); B := B shr 2 or B shl 30; +
2702 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[21] + $6ED9EBA1); A := A shr 2 or A shl 30; +
2703 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[22] + $6ED9EBA1); E := E shr 2 or E shl 30; +
2704 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[23] + $6ED9EBA1); D := D shr 2 or D shl 30; +
2705 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[24] + $6ED9EBA1); C := C shr 2 or C shl 30; +
2706 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[25] + $6ED9EBA1); B := B shr 2 or B shl 30; +
2707 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[26] + $6ED9EBA1); A := A shr 2 or A shl 30; +
2708 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[27] + $6ED9EBA1); E := E shr 2 or E shl 30; +
2709 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[28] + $6ED9EBA1); D := D shr 2 or D shl 30; +
2710 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[29] + $6ED9EBA1); C := C shr 2 or C shl 30; +
2711 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[30] + $6ED9EBA1); B := B shr 2 or B shl 30; +
2712 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[31] + $6ED9EBA1); A := A shr 2 or A shl 30; +
2713 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[32] + $6ED9EBA1); E := E shr 2 or E shl 30; +
2714 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[33] + $6ED9EBA1); D := D shr 2 or D shl 30; +
2715 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[34] + $6ED9EBA1); C := C shr 2 or C shl 30; +
2716 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[35] + $6ED9EBA1); B := B shr 2 or B shl 30; +
2717 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[36] + $6ED9EBA1); A := A shr 2 or A shl 30; +
2718 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[37] + $6ED9EBA1); E := E shr 2 or E shl 30; +
2719 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[38] + $6ED9EBA1); D := D shr 2 or D shl 30; +
2720 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[39] + $6ED9EBA1); C := C shr 2 or C shl 30; +
2721 +
2722 Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[40] + $8F1BBCDC); B := B shr 2 or B shl 30; +
2723 Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[41] + $8F1BBCDC); A := A shr 2 or A shl 30; +
2724 Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[42] + $8F1BBCDC); E := E shr 2 or E shl 30; +
2725 Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[43] + $8F1BBCDC); D := D shr 2 or D shl 30; +
2726 Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[44] + $8F1BBCDC); C := C shr 2 or C shl 30; +
2727 Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[45] + $8F1BBCDC); B := B shr 2 or B shl 30; +
2728 Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[46] + $8F1BBCDC); A := A shr 2 or A shl 30; +
2729 Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[47] + $8F1BBCDC); E := E shr 2 or E shl 30; +
2730 Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[48] + $8F1BBCDC); D := D shr 2 or D shl 30; +
2731 Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[49] + $8F1BBCDC); C := C shr 2 or C shl 30; +
2732 Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[50] + $8F1BBCDC); B := B shr 2 or B shl 30; +
2733 Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[51] + $8F1BBCDC); A := A shr 2 or A shl 30; +
2734 Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[52] + $8F1BBCDC); E := E shr 2 or E shl 30; +
2735 Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[53] + $8F1BBCDC); D := D shr 2 or D shl 30; +
2736 Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[54] + $8F1BBCDC); C := C shr 2 or C shl 30; +
2737 Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[55] + $8F1BBCDC); B := B shr 2 or B shl 30; +
2738 Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[56] + $8F1BBCDC); A := A shr 2 or A shl 30; +
2739 Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[57] + $8F1BBCDC); E := E shr 2 or E shl 30; +
2740 Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[58] + $8F1BBCDC); D := D shr 2 or D shl 30; +
2741 Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[59] + $8F1BBCDC); C := C shr 2 or C shl 30; +
2742 +
2743 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[60] + $CA62C1D6); B := B shr 2 or B shl 30; +
2744 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[61] + $CA62C1D6); A := A shr 2 or A shl 30; +
2745 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[62] + $CA62C1D6); E := E shr 2 or E shl 30; +
2746 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[63] + $CA62C1D6); D := D shr 2 or D shl 30; +
2747 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[64] + $CA62C1D6); C := C shr 2 or C shl 30; +
2748 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[65] + $CA62C1D6); B := B shr 2 or B shl 30; +
2749 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[66] + $CA62C1D6); A := A shr 2 or A shl 30; +
2750 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[67] + $CA62C1D6); E := E shr 2 or E shl 30; +
2751 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[68] + $CA62C1D6); D := D shr 2 or D shl 30; +
2752 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[69] + $CA62C1D6); C := C shr 2 or C shl 30; +
2753 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[70] + $CA62C1D6); B := B shr 2 or B shl 30; +
2754 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[71] + $CA62C1D6); A := A shr 2 or A shl 30; +
2755 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[72] + $CA62C1D6); E := E shr 2 or E shl 30; +
2756 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[73] + $CA62C1D6); D := D shr 2 or D shl 30; +
2757 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[74] + $CA62C1D6); C := C shr 2 or C shl 30; +
2758 Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[75] + $CA62C1D6); B := B shr 2 or B shl 30; +
2759 Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[76] + $CA62C1D6); A := A shr 2 or A shl 30; +
2760 Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[77] + $CA62C1D6); E := E shr 2 or E shl 30; +
2761 Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[78] + $CA62C1D6); D := D shr 2 or D shl 30; +
2762 Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[79] + $CA62C1D6); C := C shr 2 or C shl 30; +
2763 +
2764 Inc(FDigest[0], A); +
2765 Inc(FDigest[1], B); +
2766 Inc(FDigest[2], C); +
2767 Inc(FDigest[3], D); +
2768 Inc(FDigest[4], E); +
2769end; +
2770{$ENDIF !THash_SHA_asm} +
2771 +
2772procedure THash_SHA0.DoDone; +
2773begin +
2774 if FCount[2] or FCount[3] <> 0 then +
2775 RaiseHashOverflowError; +
2776 if FPaddingByte = 0 then +
2777 FPaddingByte := $80; +
2778 FBuffer[FBufferIndex] := FPaddingByte; +
2779 Inc(FBufferIndex); +
2780 if FBufferIndex > FBufferSize - 8 then +
2781 begin +
2782 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
2783 DoTransform(Pointer(FBuffer)); +
2784 FBufferIndex := 0; +
2785 end; +
2786 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
2787 PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]); +
2788 PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]); +
2789 DoTransform(Pointer(FBuffer)); +
2790 SwapUInt32Buffer(FDigest, FDigest, SizeOf(FDigest) div 4); +
2791end; +
2792 +
2793class function THash_SHA0.DigestSize: UInt32; +
2794begin +
2795 Result := 20; +
2796end; +
2797 +
2798{ THash_SHA256 } +
2799 +
2800procedure THash_SHA256.DoInit; +
2801begin +
2802 FDigest[0]:= $6A09E667; +
2803 FDigest[1]:= $BB67AE85; +
2804 FDigest[2]:= $3C6EF372; +
2805 FDigest[3]:= $A54FF53A; +
2806 FDigest[4]:= $510E527F; +
2807 FDigest[5]:= $9B05688C; +
2808 FDigest[6]:= $1F83D9AB; +
2809 FDigest[7]:= $5BE0CD19; +
2810end; +
2811 +
2812{$IFNDEF THash_SHA256_asm} +
2813procedure THash_SHA256.DoTransform(Buffer: PUInt32Array); +
2814var +
2815 I: Integer; +
2816 A, B, C, D, E, F, G, H: UInt32; +
2817 T1, T2: UInt32; +
2818 W: array[0..63] of UInt32; +
2819begin +
2820 SwapUInt32Buffer(Buffer[0], W, 16); +
2821 +
2822 for I := 16 to 63 do +
2823 begin +
2824 T1 := W[I - 15]; +
2825 T2 := W[I - 2]; +
2826 W[I] := W[I - 16] + W[I - 7] + +
2827 ((T1 shr 7 or T1 shl 25) xor (T1 shr 18 or T1 shl 14) xor (T1 shr 3)) + +
2828 ((T2 shr 17 or T2 shl 15) xor (T2 shr 19 or T2 shl 13) xor (T2 shr 10)); +
2829 end; +
2830 +
2831 // calculate new hash values +
2832 A := FDigest[0]; +
2833 B := FDigest[1]; +
2834 C := FDigest[2]; +
2835 D := FDigest[3]; +
2836 E := FDigest[4]; +
2837 F := FDigest[5]; +
2838 G := FDigest[6]; +
2839 H := FDigest[7]; +
2840 +
2841 for I := 0 to 63 do +
2842 begin +
2843 T1 := ((E shr 6 or E shl 26) xor (E shr 11 or E shl 21) xor +
2844 (E shr 25 or E shl 7)) + H + (((F xor G) and E) xor G) + SHA_256K[I] + W[I]; +
2845 T2 := ((A shr 2 or A shl 30) xor (A shr 13 or A shl 19) xor +
2846 (A shr 22 or A shl 10)) + (((B or C) and A) or (B and C)); +
2847 H := G; G := F; F := E; E := D + T1; D := C; C := B; B := A; A := T1 + T2; +
2848 end; +
2849 +
2850 Inc(FDigest[0], A); +
2851 Inc(FDigest[1], B); +
2852 Inc(FDigest[2], C); +
2853 Inc(FDigest[3], D); +
2854 Inc(FDigest[4], E); +
2855 Inc(FDigest[5], F); +
2856 Inc(FDigest[6], G); +
2857 Inc(FDigest[7], H); +
2858end; +
2859{$ENDIF !THash_SHA256_asm} +
2860 +
2861class function THash_SHA256.DigestSize: UInt32; +
2862begin +
2863 Result := 32; +
2864end; +
2865 +
2866{ THash_SHA224 } +
2867 +
2868class function THash_SHA224.BlockSize: UInt32; +
2869begin +
2870 Result := 64; +
2871end; +
2872 +
2873class function THash_SHA224.DigestSize: UInt32; +
2874begin +
2875 Result := 28; +
2876end; +
2877 +
2878procedure THash_SHA224.DoInit; +
2879begin +
2880 FDigest[0]:= $C1059ED8; +
2881 FDigest[1]:= $367CD507; +
2882 FDigest[2]:= $3070DD17; +
2883 FDigest[3]:= $F70E5939; +
2884 FDigest[4]:= $FFC00B31; +
2885 FDigest[5]:= $68581511; +
2886 FDigest[6]:= $64F98FA7; +
2887 FDigest[7]:= $BEFA4FA4; +
2888end; +
2889 +
2890{ THash_SHA384 } +
2891 +
2892procedure THash_SHA384.DoInit; +
2893begin +
2894 FDigest[0] := Int64($CBBB9D5DC1059ED8); +
2895 FDigest[1] := Int64($629A292A367CD507); +
2896 FDigest[2] := Int64($9159015A3070DD17); +
2897 FDigest[3] := Int64($152FECD8F70E5939); +
2898 FDigest[4] := Int64($67332667FFC00B31); +
2899 FDigest[5] := Int64($8EB44A8768581511); +
2900 FDigest[6] := Int64($DB0C2E0D64F98FA7); +
2901 FDigest[7] := Int64($47B5481DBEFA4FA4); +
2902end; +
2903 +
2904{$IFNDEF THash_SHA384_asm} +
2905procedure THash_SHA384.DoTransform(Buffer: PUInt32Array); +
2906var +
2907 A, B, C, D, E, F, G, H: UInt64; +
2908 T1, T2: UInt64; +
2909 I: Integer; +
2910 W: array [0..79] of UInt64; +
2911begin +
2912{ TODO : The array passed is a UInt32 array, which doesn't fit with the name of this method!} +
2913 SwapInt64Buffer(Buffer[0], W, 16); +
2914 +
2915 // calculate other 64 uint64 +
2916 for I := 16 to 79 do +
2917 begin +
2918 T1 := W[I - 15]; +
2919 T2 := W[I - 2]; +
2920 W[I] := W[I - 16] + W[I - 7] + +
2921 ((T1 shr 1 or T1 shl 63) xor (T1 shr 8 or T1 shl 56) xor (T1 shr 7)) + +
2922 ((T2 shr 19 or T2 shl 45) xor (T2 shr 61 or T2 shl 3) xor (T2 shr 6)); +
2923 end; +
2924 +
2925 // calculate new hash values +
2926 A := FDigest[0]; +
2927 B := FDigest[1]; +
2928 C := FDigest[2]; +
2929 D := FDigest[3]; +
2930 E := FDigest[4]; +
2931 F := FDigest[5]; +
2932 G := FDigest[6]; +
2933 H := FDigest[7]; +
2934 +
2935 for I := 0 to 79 do +
2936 begin +
2937 T1 := ((E shr 14 or E shl 50) xor (E shr 18 or E shl 46) xor +
2938 (E shr 41 or E shl 23)) + H + (((F xor G) and E) xor G) + SHA_512K[I] + W[I]; +
2939 T2 := ((A shr 28 or A shl 36) xor (A shr 34 or A shl 30) xor +
2940 (A shr 39 or A shl 25)) + (((B or C) and A) or (B and C)); +
2941 H := G; +
2942 G := F; +
2943 F := E; +
2944 E := D + T1; +
2945 D := C; +
2946 C := B; +
2947 B := A; +
2948 A := T1 + T2; +
2949 end; +
2950 +
2951 Inc(FDigest[0], A); +
2952 Inc(FDigest[1], B); +
2953 Inc(FDigest[2], C); +
2954 Inc(FDigest[3], D); +
2955 Inc(FDigest[4], E); +
2956 Inc(FDigest[5], F); +
2957 Inc(FDigest[6], G); +
2958 Inc(FDigest[7], H); +
2959end; +
2960{$ENDIF !THash_SHA384_asm} +
2961 +
2962procedure THash_SHA384.DoDone; +
2963begin +
2964 if FPaddingByte = 0 then +
2965 FPaddingByte := $80; +
2966 FBuffer[FBufferIndex] := FPaddingByte; +
2967 Inc(FBufferIndex); +
2968 if FBufferIndex > FBufferSize - 16 then +
2969 begin +
2970 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
2971 DoTransform(Pointer(FBuffer)); +
2972 FBufferIndex := 0; +
2973 end; +
2974 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
2975 SwapUInt32Buffer(FCount, FCount, 4); +
2976 PUInt32(@FBuffer[FBufferSize - 16])^ := FCount[3]; +
2977 PUInt32(@FBuffer[FBufferSize - 12])^ := FCount[2]; +
2978 PUInt32(@FBuffer[FBufferSize - 8])^ := FCount[1]; +
2979 PUInt32(@FBuffer[FBufferSize - 4])^ := FCount[0]; +
2980 DoTransform(Pointer(FBuffer)); +
2981 SwapInt64Buffer(FDigest, FDigest, SizeOf(FDigest) div 8); +
2982end; +
2983 +
2984function THash_SHA384.Digest: PByteArray; +
2985begin +
2986 Result := @FDigest; +
2987end; +
2988 +
2989class function THash_SHA384.DigestSize: UInt32; +
2990begin +
2991 Result := 48; +
2992end; +
2993 +
2994class function THash_SHA384.BlockSize: UInt32; +
2995begin +
2996 Result := 128; +
2997end; +
2998 +
2999{ THash_SHA512 } +
3000 +
3001procedure THash_SHA512.DoInit; +
3002begin +
3003 FDigest[0] := Int64($6A09E667F3BCC908); +
3004 FDigest[1] := Int64($BB67AE8584CAA73B); +
3005 FDigest[2] := Int64($3C6EF372FE94F82B); +
3006 FDigest[3] := Int64($A54FF53A5F1D36F1); +
3007 FDigest[4] := Int64($510E527FADE682D1); +
3008 FDigest[5] := Int64($9B05688C2B3E6C1F); +
3009 FDigest[6] := Int64($1F83D9ABFB41BD6B); +
3010 FDigest[7] := Int64($5BE0CD19137E2179); +
3011end; +
3012 +
3013class function THash_SHA512.DigestSize: UInt32; +
3014begin +
3015 Result := 64; +
3016end; +
3017 +
3018{ THashBaseHaval } +
3019 +
3020procedure THashBaseHaval.SetRounds(Value: UInt32); +
3021begin +
3022 if (Value < GetMinRounds) or (Value > 5) then +
3023 begin +
3024 if DigestSize <= 20 then +
3025 Value := 3 +
3026 else +
3027 begin +
3028 if DigestSize <= 28 then +
3029 Value := 4 +
3030 else +
3031 Value := 5; +
3032 end; +
3033 end; +
3034 FRounds := Value; +
3035 case FRounds of +
3036 3: FTransform := DoTransform3; +
3037 4: FTransform := DoTransform4; +
3038 5: FTransform := DoTransform5; +
3039 end; +
3040end; +
3041 +
3042procedure THashBaseHaval.DoInit; +
3043begin +
3044 SetRounds(FRounds); +
3045 FDigest[0] := $243F6A88; +
3046 FDigest[1] := $85A308D3; +
3047 FDigest[2] := $13198A2E; +
3048 FDigest[3] := $03707344; +
3049 FDigest[4] := $A4093822; +
3050 FDigest[5] := $299F31D0; +
3051 FDigest[6] := $082EFA98; +
3052 FDigest[7] := $EC4E6C89; +
3053end; +
3054 +
3055procedure THashBaseHaval.DoTransform(Buffer: PUInt32Array); +
3056begin +
3057 FTransform(Buffer); +
3058end; +
3059 +
3060function THashBaseHaval.GetMaxRounds: UInt32; +
3061begin +
3062 Result := 5; +
3063end; +
3064 +
3065function THashBaseHaval.GetMinRounds: UInt32; +
3066begin +
3067 if DigestSize <= 20 then +
3068 Result := 3 +
3069 else +
3070 begin +
3071 if DigestSize <= 28 then +
3072 Result := 4 +
3073 else +
3074 Result := 5; +
3075 end; +
3076end; +
3077 +
3078function THashBaseHaval.GetRounds: UInt32; +
3079begin +
3080 Result := FRounds; +
3081end; +
3082 +
3083{$IFNDEF THashBaseHaval_asm} +
3084procedure THashBaseHaval.DoTransform3(Buffer: PUInt32Array); +
3085var +
3086 A, B, C, D, E, F, G, H, I, T: UInt32; +
3087 Data: PUInt32; +
3088 Offset: PByte; +
3089begin +
3090 Offset := @Haval_Offset; +
3091 Data := @Haval_Data; +
3092 +
3093 A := FDigest[0]; +
3094 B := FDigest[1]; +
3095 C := FDigest[2]; +
3096 D := FDigest[3]; +
3097 E := FDigest[4]; +
3098 F := FDigest[5]; +
3099 G := FDigest[6]; +
3100 H := FDigest[7]; +
3101 +
3102 for I := 0 to 31 do +
3103 begin +
3104 T := C and (E xor D) xor G and A xor F and B xor E; +
3105 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I]; +
3106 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3107 end; +
3108 +
3109 for I := 0 to 31 do +
3110 begin +
3111 T := F and (D and not A xor B and C xor E xor G) xor B and (D xor C) xor A and C xor G; +
3112 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3113 Inc(Offset); +
3114 Inc(Data); +
3115 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3116 end; +
3117 +
3118 for I := 0 to 31 do +
3119 begin +
3120 T := D and (F and E xor G xor A) xor F and C xor E and B xor A; +
3121 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3122 Inc(Offset); +
3123 Inc(Data); +
3124 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3125 end; +
3126 +
3127 Inc(FDigest[0], A); +
3128 Inc(FDigest[1], B); +
3129 Inc(FDigest[2], C); +
3130 Inc(FDigest[3], D); +
3131 Inc(FDigest[4], E); +
3132 Inc(FDigest[5], F); +
3133 Inc(FDigest[6], G); +
3134 Inc(FDigest[7], H); +
3135end; +
3136 +
3137procedure THashBaseHaval.DoTransform4(Buffer: PUInt32Array); +
3138var +
3139 A, B, C, D, E, F, G, H, I, T: UInt32; +
3140 Data: PUInt32; +
3141 Offset: PByte; +
3142begin +
3143 Offset := @Haval_Offset; +
3144 Data := @Haval_Data; +
3145 +
3146 A := FDigest[0]; +
3147 B := FDigest[1]; +
3148 C := FDigest[2]; +
3149 D := FDigest[3]; +
3150 E := FDigest[4]; +
3151 F := FDigest[5]; +
3152 G := FDigest[6]; +
3153 H := FDigest[7]; +
3154 +
3155 for I := 0 to 31 do +
3156 begin +
3157 T := D and (A xor B) xor F and G xor E and C xor A; +
3158 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I]; +
3159 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3160 end; +
3161 +
3162 for I := 0 to 31 do +
3163 begin +
3164 T := B and (G and not A xor C and F xor D xor E) xor C and (G xor F) xor A and F xor E; +
3165 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3166 Inc(Offset); +
3167 Inc(Data); +
3168 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3169 end; +
3170 +
3171 for I := 0 to 31 do +
3172 begin +
3173 T := G and (C and A xor B xor F) xor C and D xor A and E xor F; +
3174 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3175 Inc(Offset); +
3176 Inc(Data); +
3177 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3178 end; +
3179 +
3180 for I := 0 to 31 do +
3181 begin +
3182 T := A and (E and not C xor F and not G xor B xor G xor D) xor F and +
3183 (B and C xor E xor G) xor C and G xor D; +
3184 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3185 Inc(Offset); +
3186 Inc(Data); +
3187 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3188 end; +
3189 +
3190 Inc(FDigest[0], A); +
3191 Inc(FDigest[1], B); +
3192 Inc(FDigest[2], C); +
3193 Inc(FDigest[3], D); +
3194 Inc(FDigest[4], E); +
3195 Inc(FDigest[5], F); +
3196 Inc(FDigest[6], G); +
3197 Inc(FDigest[7], H); +
3198end; +
3199 +
3200procedure THashBaseHaval.DoTransform5(Buffer: PUInt32Array); +
3201var +
3202 A, B, C, D, E, F, G, H, I, T: UInt32; +
3203 Data: PUInt32; +
3204 Offset: PByte; +
3205begin +
3206 Offset := @Haval_Offset; +
3207 Data := @Haval_Data; +
3208 +
3209 A := FDigest[0]; +
3210 B := FDigest[1]; +
3211 C := FDigest[2]; +
3212 D := FDigest[3]; +
3213 E := FDigest[4]; +
3214 F := FDigest[5]; +
3215 G := FDigest[6]; +
3216 H := FDigest[7]; +
3217 +
3218 for I := 0 to 31 do +
3219 begin +
3220 T := C and (G xor B) xor F and E xor A and D xor G; +
3221 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I]; +
3222 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3223 end; +
3224 +
3225 for I := 0 to 31 do +
3226 begin +
3227 T := D and (E and not A xor B and C xor G xor F) xor B and (E xor C) xor A and C xor F; +
3228 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3229 Inc(Offset); +
3230 Inc(Data); +
3231 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3232 end; +
3233 +
3234 for I := 0 to 31 do +
3235 begin +
3236 T := E and (B and D xor C xor F) xor B and A xor D and G xor F; +
3237 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3238 Inc(Offset); +
3239 Inc(Data); +
3240 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3241 end; +
3242 +
3243 for I := 0 to 31 do +
3244 begin +
3245 T := D and (F and not A xor C and not B xor E xor B xor G) xor C and +
3246 (E and A xor F xor B) xor A and B xor G; +
3247 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3248 Inc(Offset); +
3249 Inc(Data); +
3250 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3251 end; +
3252 +
3253 for I := 0 to 31 do +
3254 begin +
3255 T := B and (D and E and G xor not F) xor D and A xor E and F xor G and C; +
3256 T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^; +
3257 Inc(Offset); Inc(Data); +
3258 H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T; +
3259 end; +
3260 +
3261 Inc(FDigest[0], A); +
3262 Inc(FDigest[1], B); +
3263 Inc(FDigest[2], C); +
3264 Inc(FDigest[3], D); +
3265 Inc(FDigest[4], E); +
3266 Inc(FDigest[5], F); +
3267 Inc(FDigest[6], G); +
3268 Inc(FDigest[7], H); +
3269end; +
3270 +
3271{$ENDIF !THashBaseHaval_asm} +
3272 +
3273procedure THashBaseHaval.DoDone; +
3274 +
3275 function ROR(Value, Count: UInt32): UInt32; +
3276 {$IFDEF X86ASM} +
3277 asm +
3278 MOV ECX,EDX +
3279 ROR EAX,CL +
3280 end; +
3281 {$ELSE !X86ASM} +
3282 begin +
3283 Result := (Value shr Count) or (Value shl (32 - Count)); +
3284 end; +
3285 {$ENDIF !X86ASM} +
3286 +
3287var +
3288 T: Word; +
3289begin +
3290 if FCount[2] or FCount[3] <> 0 then +
3291 RaiseHashOverflowError; +
3292 if FPaddingByte = 0 then +
3293 FPaddingByte := $01; +
3294 FBuffer[FBufferIndex] := FPaddingByte; +
3295 Inc(FBufferIndex); +
3296 if FBufferIndex > FBufferSize - 10 then +
3297 begin +
3298 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0); +
3299 DoTransform(Pointer(FBuffer)); +
3300 FBufferIndex := 0; +
3301 end; +
3302 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0); +
3303 T := (DigestSize shl 9) or (UInt32(FRounds) shl 3) or 1; +
3304 Move(T, FBuffer[FBufferSize - 10], SizeOf(T)); +
3305 Move(FCount, FBuffer[FBufferSize - 8], 8); +
3306 DoTransform(Pointer(FBuffer)); +
3307 +
3308 case DigestSize of +
3309 16: begin +
3310 Inc(FDigest[0], ROR(FDigest[7] and $000000FF or +
3311 FDigest[6] and $FF000000 or +
3312 FDigest[5] and $00FF0000 or +
3313 FDigest[4] and $0000FF00, 8)); +
3314 Inc(FDigest[1], ROR(FDigest[7] and $0000FF00 or +
3315 FDigest[6] and $000000FF or +
3316 FDigest[5] and $FF000000 or +
3317 FDigest[4] and $00FF0000, 16)); +
3318 Inc(FDigest[2], ROR(FDigest[7] and $00FF0000 or +
3319 FDigest[6] and $0000FF00 or +
3320 FDigest[5] and $000000FF or +
3321 FDigest[4] and $FF000000, 24)); +
3322 Inc(FDigest[3], FDigest[7] and $FF000000 or +
3323 FDigest[6] and $00FF0000 or +
3324 FDigest[5] and $0000FF00 or +
3325 FDigest[4] and $000000FF); +
3326 end; +
3327 20: begin +
3328 Inc(FDigest[0], ROR(FDigest[7] and ($3F) or +
3329 FDigest[6] and ($7F shl 25) or +
3330 FDigest[5] and ($3F shl 19), 19)); +
3331 Inc(FDigest[1], ROR(FDigest[7] and ($3F shl 6) or +
3332 FDigest[6] and ($3F) or +
3333 FDigest[5] and ($7F shl 25), 25)); +
3334 Inc(FDigest[2], FDigest[7] and ($7F shl 12) or +
3335 FDigest[6] and ($3F shl 6) or +
3336 FDigest[5] and ($3F)); +
3337 Inc(FDigest[3], (FDigest[7] and ($3F shl 19) or +
3338 FDigest[6] and ($7F shl 12) or +
3339 FDigest[5] and ($3F shl 6)) shr 6); +
3340 Inc(FDigest[4], (FDigest[7] and ($7F shl 25) or +
3341 FDigest[6] and ($3F shl 19) or +
3342 FDigest[5] and ($7F shl 12)) shr 12); +
3343 end; +
3344 24: begin +
3345 Inc(FDigest[0], ROR(FDigest[7] and ($1F) or +
3346 FDigest[6] and ($3F shl 26), 26)); +
3347 Inc(FDigest[1], FDigest[7] and ($1F shl 5) or +
3348 FDigest[6] and ($1F)); +
3349 Inc(FDigest[2], (FDigest[7] and ($3F shl 10) or +
3350 FDigest[6] and ($1F shl 5)) shr 5); +
3351 Inc(FDigest[3], (FDigest[7] and ($1F shl 16) or +
3352 FDigest[6] and ($3F shl 10)) shr 10); +
3353 Inc(FDigest[4], (FDigest[7] and ($1F shl 21) or +
3354 FDigest[6] and ($1F shl 16)) shr 16); +
3355 Inc(FDigest[5], (FDigest[7] and ($3F shl 26) or +
3356 FDigest[6] and ($1F shl 21)) shr 21); +
3357 end; +
3358 28: begin +
3359 Inc(FDigest[0], FDigest[7] shr 27 and $1F); +
3360 Inc(FDigest[1], FDigest[7] shr 22 and $1F); +
3361 Inc(FDigest[2], FDigest[7] shr 18 and $0F); +
3362 Inc(FDigest[3], FDigest[7] shr 13 and $1F); +
3363 Inc(FDigest[4], FDigest[7] shr 9 and $0F); +
3364 Inc(FDigest[5], FDigest[7] shr 4 and $1F); +
3365 Inc(FDigest[6], FDigest[7] and $0F); +
3366 end; +
3367 end; +
3368end; +
3369 +
3370function THashBaseHaval.Digest: PByteArray; +
3371begin +
3372 Result := @FDigest; +
3373end; +
3374 +
3375class function THashBaseHaval.BlockSize: UInt32; +
3376begin +
3377 Result := 128; +
3378end; +
3379 +
3380{ THash_Haval128 } +
3381 +
3382class function THash_Haval128.DigestSize: UInt32; +
3383begin +
3384 Result := 16; +
3385end; +
3386 +
3387{ THash_Haval160 } +
3388 +
3389class function THash_Haval160.DigestSize: UInt32; +
3390begin +
3391 Result := 20; +
3392end; +
3393 +
3394{ THash_Haval192 } +
3395 +
3396class function THash_Haval192.DigestSize: UInt32; +
3397begin +
3398 Result := 24; +
3399end; +
3400 +
3401{ THash_Haval224 } +
3402 +
3403class function THash_Haval224.DigestSize: UInt32; +
3404begin +
3405 Result := 28; +
3406end; +
3407 +
3408{ THash_Haval256 } +
3409 +
3410class function THash_Haval256.DigestSize: UInt32; +
3411begin +
3412 Result := 32; +
3413end; +
3414 +
3415{ THash_Tiger } +
3416 +
3417procedure THash_Tiger.SetRounds(Value: UInt32); +
3418begin +
3419 if (Value < cTigerMinRounds) then +
3420 Value := cTigerMinRounds; +
3421 +
3422 if (Value > cTigerMaxRounds) then +
3423 Value := cTigerMaxRounds; +
3424 +
3425 FRounds := Value; +
3426end; +
3427 +
3428procedure THash_Tiger.DoInit; +
3429begin +
3430 SetRounds(FRounds); +
3431 if FPaddingByte = 0 then +
3432 FPaddingByte := $01; +
3433 FDigest[0] := $89ABCDEF; +
3434 FDigest[1] := $01234567; +
3435 FDigest[2] := $76543210; +
3436 FDigest[3] := $FEDCBA98; +
3437 FDigest[4] := $C3B2E187; +
3438 FDigest[5] := $F096A5B4; +
3439end; +
3440 +
3441{$IFNDEF THash_Tiger_asm} +
3442procedure THash_Tiger.DoTransform(Buffer: PUInt32Array); +
3443type +
3444 PTiger_Data = ^TTiger_Data; +
3445 TTiger_Data = array[0..3, 0..255] of Int64; +
3446 +
3447 PInt64Array = ^TInt64Array; +
3448 TInt64Array = array[0..7] of Int64; +
3449 +
3450var +
3451 A, B, C, T: Int64; +
3452 x0, x1, x2, x3, x4, x5, x6, x7: UInt64; +
3453 I: Integer; +
3454begin +
3455 A := PInt64Array(@FDigest)[0]; +
3456 B := PInt64Array(@FDigest)[1]; +
3457 C := PInt64Array(@FDigest)[2]; +
3458 x0 := PInt64Array(Buffer)[0]; +
3459 x1 := PInt64Array(Buffer)[1]; +
3460 x2 := PInt64Array(Buffer)[2]; +
3461 x3 := PInt64Array(Buffer)[3]; +
3462 x4 := PInt64Array(Buffer)[4]; +
3463 x5 := PInt64Array(Buffer)[5]; +
3464 x6 := PInt64Array(Buffer)[6]; +
3465 x7 := PInt64Array(Buffer)[7]; +
3466 +
3467 for I := 1 to FRounds do // a Loop is faster for PC with small Cache +
3468 begin +
3469 if I > 1 then // Key Schedule +
3470 begin +
3471 Dec(x0, x7 xor $A5A5A5A5A5A5A5A5); +
3472 x1 := x1 xor x0; +
3473 Inc(x2, x1); +
3474 Dec(x3, x2 xor (not x1 shl 19)); +
3475 x4 := x4 xor x3; +
3476 Inc(x5, x4); +
3477 Dec(x6, x5 xor (not x4 shr 23)); +
3478 x7 := x7 xor x6; +
3479 Inc(x0, x7); +
3480 Dec(x1, x0 xor (not x7 shl 19)); +
3481 x2 := x2 xor x1; +
3482 Inc(x3, x2); +
3483 Dec(x4, x3 xor (not x2 shr 23)); +
3484 x5 := x5 xor x4; +
3485 Inc(x6, x5); +
3486 Dec(x7, x6 xor $0123456789ABCDEF); +
3487 end; +
3488 +
3489 C := C xor x0; +
3490 Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C) and $FF] xor +
3491 TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor +
3492 TTiger_Data(Tiger_Data)[2, C shr 32 and $FF] xor +
3493 TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]); +
3494 Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr 8 and $FF] xor +
3495 TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor +
3496 TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor +
3497 TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]); +
3498 +
3499 if I = 1 then +
3500 B := B shl 2 + B +
3501 else +
3502 begin +
3503 if I = 2 then +
3504 B := B shl 3 - B +
3505 else +
3506 B := B shl 3 + B; +
3507 end; +
3508 +
3509 A := A xor x1; +
3510 Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A) and $FF] xor +
3511 TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor +
3512 TTiger_Data(Tiger_Data)[2, A shr 32 and $FF] xor +
3513 TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]); +
3514 Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr 8 and $FF] xor +
3515 TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor +
3516 TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor +
3517 TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]); +
3518 +
3519 if I = 1 then +
3520 C := C shl 2 + C +
3521 else +
3522 begin +
3523 if I = 2 then +
3524 C := C shl 3 - C +
3525 else +
3526 C := C shl 3 + C; +
3527 end; +
3528 +
3529 B := B xor x2; +
3530 Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B) and $FF] xor +
3531 TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor +
3532 TTiger_Data(Tiger_Data)[2, B shr 32 and $FF] xor +
3533 TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]); +
3534 Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr 8 and $FF] xor +
3535 TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor +
3536 TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor +
3537 TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]); +
3538 +
3539 if I = 1 then +
3540 A := A shl 2 + A +
3541 else +
3542 begin +
3543 if I = 2 then +
3544 A := A shl 3 - A +
3545 else +
3546 A := A shl 3 + A; +
3547 end; +
3548 +
3549 C := C xor x3; +
3550 Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C) and $FF] xor +
3551 TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor +
3552 TTiger_Data(Tiger_Data)[2, C shr 32 and $FF] xor +
3553 TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]); +
3554 Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr 8 and $FF] xor +
3555 TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor +
3556 TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor +
3557 TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]); +
3558 +
3559 if I = 1 then +
3560 B := B shl 2 + B +
3561 else +
3562 begin +
3563 if I = 2 then +
3564 B := B shl 3 - B +
3565 else +
3566 B := B shl 3 + B; +
3567 end; +
3568 +
3569 A := A xor x4; +
3570 Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A) and $FF] xor +
3571 TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor +
3572 TTiger_Data(Tiger_Data)[2, A shr 32 and $FF] xor +
3573 TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]); +
3574 Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr 8 and $FF] xor +
3575 TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor +
3576 TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor +
3577 TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]); +
3578 +
3579 if I = 1 then +
3580 C := C shl 2 + C +
3581 else +
3582 begin +
3583 if I = 2 then +
3584 C := C shl 3 - C +
3585 else +
3586 C := C shl 3 + C; +
3587 end; +
3588 +
3589 B := B xor x5; +
3590 Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B) and $FF] xor +
3591 TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor +
3592 TTiger_Data(Tiger_Data)[2, B shr 32 and $FF] xor +
3593 TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]); +
3594 Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr 8 and $FF] xor +
3595 TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor +
3596 TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor +
3597 TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]); +
3598 +
3599 if I = 1 then +
3600 A := A shl 2 + A +
3601 else +
3602 begin +
3603 if I = 2 then +
3604 A := A shl 3 - A +
3605 else +
3606 A := A shl 3 + A; +
3607 end; +
3608 +
3609 C := C xor x6; +
3610 Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C) and $FF] xor +
3611 TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor +
3612 TTiger_Data(Tiger_Data)[2, C shr 32 and $FF] xor +
3613 TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]); +
3614 Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr 8 and $FF] xor +
3615 TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor +
3616 TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor +
3617 TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]); +
3618 +
3619 if I = 1 then +
3620 B := B shl 2 + B +
3621 else +
3622 begin +
3623 if I = 2 then +
3624 B := B shl 3 - B +
3625 else +
3626 B := B shl 3 + B; +
3627 end; +
3628 +
3629 A := A xor x7; +
3630 Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A) and $FF] xor +
3631 TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor +
3632 TTiger_Data(Tiger_Data)[2, A shr 32 and $FF] xor +
3633 TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]); +
3634 Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr 8 and $FF] xor +
3635 TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor +
3636 TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor +
3637 TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]); +
3638 +
3639 if I = 1 then +
3640 C := C shl 2 + C +
3641 else +
3642 begin +
3643 if I = 2 then +
3644 C := C shl 3 - C +
3645 else +
3646 C := C shl 3 + C; +
3647 end; +
3648 +
3649 T := A; A := C; C := B; B := T; +
3650 end; +
3651 +
3652 PInt64Array(@FDigest)[0] := A xor PInt64Array(@FDigest)[0]; +
3653 PInt64Array(@FDigest)[1] := B - PInt64Array(@FDigest)[1]; +
3654 PInt64Array(@FDigest)[2] := C + PInt64Array(@FDigest)[2]; +
3655end; +
3656{$ENDIF} +
3657 +
3658function THash_Tiger.GetMaxRounds: UInt32; +
3659begin +
3660 Result := cTigerMaxRounds; +
3661end; +
3662 +
3663function THash_Tiger.GetMinRounds: UInt32; +
3664begin +
3665 Result := cTigerMinRounds; +
3666end; +
3667 +
3668function THash_Tiger.GetRounds: UInt32; +
3669begin +
3670 Result := FRounds; +
3671end; +
3672 +
3673class function THash_Tiger.DigestSize: UInt32; +
3674begin +
3675 Result := 24; +
3676end; +
3677 +
3678{ THash_Panama } +
3679 +
3680procedure THash_Panama.DoInit; +
3681begin +
3682 FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0); +
3683 FillChar(FDigest, SizeOf(FDigest), 0); +
3684 FTap := 0; +
3685end; +
3686 +
3687{$IFNDEF THash_Panama_asm} +
3688procedure THash_Panama.DoTransform(Buffer: PUInt32Array); +
3689var +
3690 T0, T1, T2, T3: UInt32; +
3691 PBufB, PTap0, PTap25: PUInt32Array; +
3692begin +
3693 // perform non-linearity stage (GAMMA) +
3694 T0 := FDigest[ 0]; +
3695 T1 := FDigest[ 1]; +
3696 FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]); +
3697 FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]); +
3698 FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]); +
3699 FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]); +
3700 FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]); +
3701 FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]); +
3702 FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]); +
3703 FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]); +
3704 FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]); +
3705 FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]); +
3706 FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]); +
3707 FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]); +
3708 FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]); +
3709 FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]); +
3710 FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]); +
3711 FDigest[15] := FDigest[15] xor (FDigest[16] or not T0); +
3712 FDigest[16] := FDigest[16] xor (T0 or not T1); +
3713 +
3714 // perform bit-dispersion stage (PI) +
3715 T0 := FDigest[ 1]; +
3716 T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl 1) or (T1 shr 31); +
3717 T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17); +
3718 T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl 4) or (T1 shr 28); +
3719 T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11); +
3720 T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr 5); +
3721 T1 := FDigest[14]; FDigest[14] := (T0 shl 9) or (T0 shr 23); +
3722 T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl 3) or (T1 shr 29); +
3723 T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr 9); +
3724 T0 := FDigest[16]; FDigest[16] := (T1 shl 8) or (T1 shr 24); +
3725 T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18); +
3726 T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19); +
3727 T1 := FDigest[11]; FDigest[11] := (T0 shl 2) or (T0 shr 30); +
3728 T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22); +
3729 T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl 6) or (T0 shr 26); +
3730 T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr 8); +
3731 FDigest[ 7] := (T0 shl 28) or (T0 shr 4); +
3732 +
3733 // LFSR emulation +
3734 PBufB := @FLFSRBuffer[(FTap + 16) and 31]; +
3735 FTap := (FTap - 1) and 31; +
3736 PTap0 := @FLFSRBuffer[FTap]; +
3737 PTap25 := @FLFSRBuffer[(FTap + 25) and 31]; +
3738 +
3739 // update the LFSR buffer (LAMBDA_PUSH) +
3740 PTap25[ 0] := PTap25[ 0] xor PTap0[ 2]; +
3741 PTap25[ 1] := PTap25[ 1] xor PTap0[ 3]; +
3742 PTap25[ 2] := PTap25[ 2] xor PTap0[ 4]; +
3743 PTap25[ 3] := PTap25[ 3] xor PTap0[ 5]; +
3744 PTap25[ 4] := PTap25[ 4] xor PTap0[ 6]; +
3745 PTap25[ 5] := PTap25[ 5] xor PTap0[ 7]; +
3746 PTap25[ 6] := PTap25[ 6] xor PTap0[ 0]; +
3747 PTap25[ 7] := PTap25[ 7] xor PTap0[ 1]; +
3748 PTap0[ 0] := PTap0[ 0] xor Buffer[ 0]; +
3749 PTap0[ 1] := PTap0[ 1] xor Buffer[ 1]; +
3750 PTap0[ 2] := PTap0[ 2] xor Buffer[ 2]; +
3751 PTap0[ 3] := PTap0[ 3] xor Buffer[ 3]; +
3752 PTap0[ 4] := PTap0[ 4] xor Buffer[ 4]; +
3753 PTap0[ 5] := PTap0[ 5] xor Buffer[ 5]; +
3754 PTap0[ 6] := PTap0[ 6] xor Buffer[ 6]; +
3755 PTap0[ 7] := PTap0[ 7] xor Buffer[ 7]; +
3756 +
3757 // perform diffusion stage (THETA) + buffer injection stage (SIGMA) +
3758 T0 := FDigest[ 0]; +
3759 T1 := FDigest[ 1]; +
3760 T2 := FDigest[ 2]; +
3761 T3 := FDigest[ 3]; +
3762 +
3763 FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1; +
3764 FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor Buffer[ 0]; +
3765 FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor Buffer[ 1]; +
3766 FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor Buffer[ 2]; +
3767 FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor Buffer[ 3]; +
3768 FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor Buffer[ 4]; +
3769 FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor Buffer[ 5]; +
3770 FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor Buffer[ 6]; +
3771 FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor Buffer[ 7]; +
3772 +
3773 FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0]; +
3774 FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1]; +
3775 FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2]; +
3776 FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3]; +
3777 FDigest[13] := FDigest[13] xor FDigest[14] xor T0 xor PBufB[ 4]; +
3778 FDigest[14] := FDigest[14] xor FDigest[15] xor T1 xor PBufB[ 5]; +
3779 FDigest[15] := FDigest[15] xor FDigest[16] xor T2 xor PBufB[ 6]; +
3780 FDigest[16] := FDigest[16] xor T0 xor T3 xor PBufB[ 7]; +
3781end; +
3782{$ENDIF !THash_Panama_asm} +
3783 +
3784procedure THash_Panama.DoDone; +
3785begin +
3786 if FPaddingByte = 0 then +
3787 FPaddingByte := $01; +
3788 FBuffer[FBufferIndex] := FPaddingByte; +
3789 Inc(FBufferIndex); +
3790 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
3791 DoTransform(Pointer(FBuffer)); +
3792 DoPull; +
3793 FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0); +
3794 FTap := 0; +
3795end; +
3796 +
3797{$IFNDEF THash_Panama_asm} +
3798procedure THash_Panama.DoPull; +
3799var +
3800 PBufL, PBufB, PTap0, PTap25: PUInt32Array; +
3801 T0, T1, T2, T3: UInt32; +
3802 I: Integer; +
3803begin +
3804 for I := 0 to 31 do +
3805 begin +
3806 // LFSR emulation +
3807 PBufL := @FLFSRBuffer[(FTap + 4) and 31]; +
3808 PBufB := @FLFSRBuffer[(FTap + 16) and 31]; +
3809 FTap := (FTap - 1) and 31; +
3810 PTap0 := @FLFSRBuffer[FTap]; +
3811 PTap25 := @FLFSRBuffer[(FTap + 25) and 31]; +
3812 +
3813 // update the LFSR buffer (LAMBDA_PULL) +
3814 PTap25[ 0] := PTap25[ 0] xor PTap0[ 2]; +
3815 PTap25[ 1] := PTap25[ 1] xor PTap0[ 3]; +
3816 PTap25[ 2] := PTap25[ 2] xor PTap0[ 4]; +
3817 PTap25[ 3] := PTap25[ 3] xor PTap0[ 5]; +
3818 PTap25[ 4] := PTap25[ 4] xor PTap0[ 6]; +
3819 PTap25[ 5] := PTap25[ 5] xor PTap0[ 7]; +
3820 PTap25[ 6] := PTap25[ 6] xor PTap0[ 0]; +
3821 PTap25[ 7] := PTap25[ 7] xor PTap0[ 1]; +
3822 PTap0[ 0] := PTap0[ 0] xor FDigest[ 1]; +
3823 PTap0[ 1] := PTap0[ 1] xor FDigest[ 2]; +
3824 PTap0[ 2] := PTap0[ 2] xor FDigest[ 3]; +
3825 PTap0[ 3] := PTap0[ 3] xor FDigest[ 4]; +
3826 PTap0[ 4] := PTap0[ 4] xor FDigest[ 5]; +
3827 PTap0[ 5] := PTap0[ 5] xor FDigest[ 6]; +
3828 PTap0[ 6] := PTap0[ 6] xor FDigest[ 7]; +
3829 PTap0[ 7] := PTap0[ 7] xor FDigest[ 8]; +
3830 +
3831 // perform non-linearity stage (GAMMA) +
3832 T0 := FDigest[ 0]; +
3833 T1 := FDigest[ 1]; +
3834 FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]); +
3835 FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]); +
3836 FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]); +
3837 FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]); +
3838 FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]); +
3839 FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]); +
3840 FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]); +
3841 FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]); +
3842 FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]); +
3843 FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]); +
3844 FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]); +
3845 FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]); +
3846 FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]); +
3847 FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]); +
3848 FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]); +
3849 FDigest[15] := FDigest[15] xor (FDigest[16] or not T0); +
3850 FDigest[16] := FDigest[16] xor (T0 or not T1); +
3851 +
3852 // perform bit-dispersion stage (PI) +
3853 T0 := FDigest[ 1]; +
3854 T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl 1) or (T1 shr 31); +
3855 T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17); +
3856 T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl 4) or (T1 shr 28); +
3857 T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11); +
3858 T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr 5); +
3859 T1 := FDigest[14]; FDigest[14] := (T0 shl 9) or (T0 shr 23); +
3860 T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl 3) or (T1 shr 29); +
3861 T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr 9); +
3862 T0 := FDigest[16]; FDigest[16] := (T1 shl 8) or (T1 shr 24); +
3863 T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18); +
3864 T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19); +
3865 T1 := FDigest[11]; FDigest[11] := (T0 shl 2) or (T0 shr 30); +
3866 T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22); +
3867 T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl 6) or (T0 shr 26); +
3868 T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr 8); +
3869 FDigest[ 7] := (T0 shl 28) or (T0 shr 4); +
3870 +
3871 // perform diffusion stage (THETA) + buffer injection stage (SIGMA) +
3872 T0 := FDigest[ 0]; +
3873 T1 := FDigest[ 1]; +
3874 T2 := FDigest[ 2]; +
3875 T3 := FDigest[ 3]; +
3876 FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1; +
3877 FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor PBufL[ 0]; +
3878 FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor PBufL[ 1]; +
3879 FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor PBufL[ 2]; +
3880 FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor PBufL[ 3]; +
3881 FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor PBufL[ 4]; +
3882 FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor PBufL[ 5]; +
3883 FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor PBufL[ 6]; +
3884 FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor PBufL[ 7]; +
3885 FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0]; +
3886 FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1]; +
3887 FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2]; +
3888 FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3]; +
3889 FDigest[13] := FDigest[13] xor FDigest[14] xor T0 xor PBufB[ 4]; +
3890 FDigest[14] := FDigest[14] xor FDigest[15] xor T1 xor PBufB[ 5]; +
3891 FDigest[15] := FDigest[15] xor FDigest[16] xor T2 xor PBufB[ 6]; +
3892 FDigest[16] := FDigest[16] xor T0 xor T3 xor PBufB[ 7]; +
3893 end; +
3894 +
3895 // move state to Digest buffer +
3896 FDigest[0] := FDigest[ 9]; +
3897 FDigest[1] := FDigest[10]; +
3898 FDigest[2] := FDigest[11]; +
3899 FDigest[3] := FDigest[12]; +
3900 FDigest[4] := FDigest[13]; +
3901 FDigest[5] := FDigest[14]; +
3902 FDigest[6] := FDigest[15]; +
3903 FDigest[7] := FDigest[16]; +
3904end; +
3905{$ENDIF !THash_Panama_asm} +
3906 +
3907function THash_Panama.Digest: PByteArray; +
3908begin +
3909 Result := @FDigest; +
3910end; +
3911 +
3912class function THash_Panama.DigestSize: UInt32; +
3913begin +
3914 Result := 32; +
3915end; +
3916 +
3917class function THash_Panama.BlockSize: UInt32; +
3918begin +
3919 Result := 32 +
3920end; +
3921 +
3922{ THashBaseWhirlpool } +
3923 +
3924{$IFNDEF THashBaseWhirlpool_asm} +
3925procedure THashBaseWhirlpool.DoTransform(Buffer: PUInt32Array); +
3926type +
3927 PWhirlData = ^TWhirlData; +
3928 TWhirlData = array[0..15] of UInt32; +
3929 PWhirlTable = ^TWhirlTable; +
3930 TWhirlTable = array[0..7, 0..511] of UInt32; +
3931 +
3932 procedure Whirl(var L: TWhirlData; const K: TWhirlData; const T: PWhirlTable); +
3933 begin +
3934 L[0*2+0] := T[0, ((K[ 0] shl 1) and $1fe)] xor +
3935 T[1, ((K[14] shr 7) and $1fe)] xor +
3936 T[2, ((K[12] shr 15) and $1fe)] xor +
3937 T[3, ((K[10] shr 23) and $1fe)] xor +
3938 T[4, ((K[ 9] shl 1) and $1fe)] xor +
3939 T[5, ((K[ 7] shr 7) and $1fe)] xor +
3940 T[6, ((K[ 5] shr 15) and $1fe)] xor +
3941 T[7, ((K[ 3] shr 23) and $1fe)]; +
3942 L[0*2+1] := T[0, ((K[ 0] shl 1) and $1fe)+1] xor +
3943 T[1, ((K[14] shr 7) and $1fe)+1] xor +
3944 T[2, ((K[12] shr 15) and $1fe)+1] xor +
3945 T[3, ((K[10] shr 23) and $1fe)+1] xor +
3946 T[4, ((K[ 9] shl 1) and $1fe)+1] xor +
3947 T[5, ((K[ 7] shr 7) and $1fe)+1] xor +
3948 T[6, ((K[ 5] shr 15) and $1fe)+1] xor +
3949 T[7, ((K[ 3] shr 23) and $1fe)+1]; +
3950 L[1*2+0] := T[0, ((K[ 2] shl 1) and $1fe)] xor +
3951 T[1, ((K[ 0] shr 7) and $1fe)] xor +
3952 T[2, ((K[14] shr 15) and $1fe)] xor +
3953 T[3, ((K[12] shr 23) and $1fe)] xor +
3954 T[4, ((K[11] shl 1) and $1fe)] xor +
3955 T[5, ((K[ 9] shr 7) and $1fe)] xor +
3956 T[6, ((K[ 7] shr 15) and $1fe)] xor +
3957 T[7, ((K[ 5] shr 23) and $1fe)]; +
3958 L[1*2+1] := T[0, ((K[ 2] shl 1) and $1fe)+1] xor +
3959 T[1, ((K[ 0] shr 7) and $1fe)+1] xor +
3960 T[2, ((K[14] shr 15) and $1fe)+1] xor +
3961 T[3, ((K[12] shr 23) and $1fe)+1] xor +
3962 T[4, ((K[11] shl 1) and $1fe)+1] xor +
3963 T[5, ((K[ 9] shr 7) and $1fe)+1] xor +
3964 T[6, ((K[ 7] shr 15) and $1fe)+1] xor +
3965 T[7, ((K[ 5] shr 23) and $1fe)+1]; +
3966 L[2*2+0] := T[0, ((K[ 4] shl 1) and $1fe)] xor +
3967 T[1, ((K[ 2] shr 7) and $1fe)] xor +
3968 T[2, ((K[ 0] shr 15) and $1fe)] xor +
3969 T[3, ((K[14] shr 23) and $1fe)] xor +
3970 T[4, ((K[13] shl 1) and $1fe)] xor +
3971 T[5, ((K[11] shr 7) and $1fe)] xor +
3972 T[6, ((K[ 9] shr 15) and $1fe)] xor +
3973 T[7, ((K[ 7] shr 23) and $1fe)]; +
3974 L[2*2+1] := T[0, ((K[ 4] shl 1) and $1fe)+1] xor +
3975 T[1, ((K[ 2] shr 7) and $1fe)+1] xor +
3976 T[2, ((K[ 0] shr 15) and $1fe)+1] xor +
3977 T[3, ((K[14] shr 23) and $1fe)+1] xor +
3978 T[4, ((K[13] shl 1) and $1fe)+1] xor +
3979 T[5, ((K[11] shr 7) and $1fe)+1] xor +
3980 T[6, ((K[ 9] shr 15) and $1fe)+1] xor +
3981 T[7, ((K[ 7] shr 23) and $1fe)+1]; +
3982 L[3*2+0] := T[0, ((K[ 6] shl 1) and $1fe)] xor +
3983 T[1, ((K[ 4] shr 7) and $1fe)] xor +
3984 T[2, ((K[ 2] shr 15) and $1fe)] xor +
3985 T[3, ((K[ 0] shr 23) and $1fe)] xor +
3986 T[4, ((K[15] shl 1) and $1fe)] xor +
3987 T[5, ((K[13] shr 7) and $1fe)] xor +
3988 T[6, ((K[11] shr 15) and $1fe)] xor +
3989 T[7, ((K[ 9] shr 23) and $1fe)]; +
3990 L[3*2+1] := T[0, ((K[ 6] shl 1) and $1fe)+1] xor +
3991 T[1, ((K[ 4] shr 7) and $1fe)+1] xor +
3992 T[2, ((K[ 2] shr 15) and $1fe)+1] xor +
3993 T[3, ((K[ 0] shr 23) and $1fe)+1] xor +
3994 T[4, ((K[15] shl 1) and $1fe)+1] xor +
3995 T[5, ((K[13] shr 7) and $1fe)+1] xor +
3996 T[6, ((K[11] shr 15) and $1fe)+1] xor +
3997 T[7, ((K[ 9] shr 23) and $1fe)+1]; +
3998 L[4*2+0] := T[0, ((K[ 8] shl 1) and $1fe)] xor +
3999 T[1, ((K[ 6] shr 7) and $1fe)] xor +
4000 T[2, ((K[ 4] shr 15) and $1fe)] xor +
4001 T[3, ((K[ 2] shr 23) and $1fe)] xor +
4002 T[4, ((K[ 1] shl 1) and $1fe)] xor +
4003 T[5, ((K[15] shr 7) and $1fe)] xor +
4004 T[6, ((K[13] shr 15) and $1fe)] xor +
4005 T[7, ((K[11] shr 23) and $1fe)]; +
4006 L[4*2+1] := T[0, ((K[ 8] shl 1) and $1fe)+1] xor +
4007 T[1, ((K[ 6] shr 7) and $1fe)+1] xor +
4008 T[2, ((K[ 4] shr 15) and $1fe)+1] xor +
4009 T[3, ((K[ 2] shr 23) and $1fe)+1] xor +
4010 T[4, ((K[ 1] shl 1) and $1fe)+1] xor +
4011 T[5, ((K[15] shr 7) and $1fe)+1] xor +
4012 T[6, ((K[13] shr 15) and $1fe)+1] xor +
4013 T[7, ((K[11] shr 23) and $1fe)+1]; +
4014 L[5*2+0] := T[0, ((K[10] shl 1) and $1fe)] xor +
4015 T[1, ((K[ 8] shr 7) and $1fe)] xor +
4016 T[2, ((K[ 6] shr 15) and $1fe)] xor +
4017 T[3, ((K[ 4] shr 23) and $1fe)] xor +
4018 T[4, ((K[ 3] shl 1) and $1fe)] xor +
4019 T[5, ((K[ 1] shr 7) and $1fe)] xor +
4020 T[6, ((K[15] shr 15) and $1fe)] xor +
4021 T[7, ((K[13] shr 23) and $1fe)]; +
4022 L[5*2+1] := T[0, ((K[10] shl 1) and $1fe)+1] xor +
4023 T[1, ((K[ 8] shr 7) and $1fe)+1] xor +
4024 T[2, ((K[ 6] shr 15) and $1fe)+1] xor +
4025 T[3, ((K[ 4] shr 23) and $1fe)+1] xor +
4026 T[4, ((K[ 3] shl 1) and $1fe)+1] xor +
4027 T[5, ((K[ 1] shr 7) and $1fe)+1] xor +
4028 T[6, ((K[15] shr 15) and $1fe)+1] xor +
4029 T[7, ((K[13] shr 23) and $1fe)+1]; +
4030 L[6*2+0] := T[0, ((K[12] shl 1) and $1fe)] xor +
4031 T[1, ((K[10] shr 7) and $1fe)] xor +
4032 T[2, ((K[ 8] shr 15) and $1fe)] xor +
4033 T[3, ((K[ 6] shr 23) and $1fe)] xor +
4034 T[4, ((K[ 5] shl 1) and $1fe)] xor +
4035 T[5, ((K[ 3] shr 7) and $1fe)] xor +
4036 T[6, ((K[ 1] shr 15) and $1fe)] xor +
4037 T[7, ((K[15] shr 23) and $1fe)]; +
4038 L[6*2+1] := T[0, ((K[12] shl 1) and $1fe)+1] xor +
4039 T[1, ((K[10] shr 7) and $1fe)+1] xor +
4040 T[2, ((K[ 8] shr 15) and $1fe)+1] xor +
4041 T[3, ((K[ 6] shr 23) and $1fe)+1] xor +
4042 T[4, ((K[ 5] shl 1) and $1fe)+1] xor +
4043 T[5, ((K[ 3] shr 7) and $1fe)+1] xor +
4044 T[6, ((K[ 1] shr 15) and $1fe)+1] xor +
4045 T[7, ((K[15] shr 23) and $1fe)+1]; +
4046 L[7*2+0] := T[0, ((K[14] shl 1) and $1fe)] xor +
4047 T[1, ((K[12] shr 7) and $1fe)] xor +
4048 T[2, ((K[10] shr 15) and $1fe)] xor +
4049 T[3, ((K[ 8] shr 23) and $1fe)] xor +
4050 T[4, ((K[ 7] shl 1) and $1fe)] xor +
4051 T[5, ((K[ 5] shr 7) and $1fe)] xor +
4052 T[6, ((K[ 3] shr 15) and $1fe)] xor +
4053 T[7, ((K[ 1] shr 23) and $1fe)]; +
4054 L[7*2+1] := T[0, ((K[14] shl 1) and $1fe)+1] xor +
4055 T[1, ((K[12] shr 7) and $1fe)+1] xor +
4056 T[2, ((K[10] shr 15) and $1fe)+1] xor +
4057 T[3, ((K[ 8] shr 23) and $1fe)+1] xor +
4058 T[4, ((K[ 7] shl 1) and $1fe)+1] xor +
4059 T[5, ((K[ 5] shr 7) and $1fe)+1] xor +
4060 T[6, ((K[ 3] shr 15) and $1fe)+1] xor +
4061 T[7, ((K[ 1] shr 23) and $1fe)+1]; +
4062 end; +
4063 +
4064var +
4065 S, L, K: TWhirlData; +
4066 I: Integer; +
4067begin +
4068 Assert(not Odd(Whirlpool_Rounds)); +
4069 +
4070 Move(FDigest, K, SizeOf(FDigest)); +
4071 XORBuffers(FDigest, Buffer[0], SizeOf(FDigest), S); +
4072 +
4073 // iterate over all rounds +
4074 for I := 0 to Whirlpool_Rounds div 2 - 1 do +
4075 begin +
4076 Whirl(L, K, FTableC); +
4077 L[0] := L[0] xor PUInt32Array(FTableR)[I*4+0]; +
4078 L[1] := L[1] xor PUInt32Array(FTableR)[I*4+1]; +
4079 Whirl(K, S, FTableC); +
4080 XORBuffers(L, K, SizeOf(S), S); +
4081 +
4082 Whirl(K, L, FTableC); +
4083 K[0] := K[0] xor PUInt32Array(FTableR)[I*4+2]; +
4084 K[1] := K[1] xor PUInt32Array(FTableR)[I*4+3]; +
4085 Whirl(L, S, FTableC); +
4086 XORBuffers(K, L, SizeOf(S), S); +
4087 end; +
4088 +
4089 XORBuffers(S, Buffer[0], SizeOf(FDigest), S); +
4090 XORBuffers(S, FDigest, SizeOf(FDigest), FDigest); +
4091end; +
4092{$ENDIF !THashBaseWhirlpool_asm} +
4093 +
4094procedure THashBaseWhirlpool.DoDone; +
4095var +
4096 I: Integer; +
4097begin +
4098 if FPaddingByte = 0 then +
4099 FPaddingByte := $80; +
4100 FBuffer[FBufferIndex] := FPaddingByte; +
4101 Inc(FBufferIndex); +
4102 if FBufferIndex > FBufferSize - 32 then +
4103 begin +
4104 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4105 DoTransform(Pointer(FBuffer)); +
4106 FBufferIndex := 0; +
4107 end; +
4108 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4109 for I := 31 downto 0 do +
4110 FBuffer[63 - I] := PByteArray(@FCount)[I]; +
4111 DoTransform(Pointer(FBuffer)); +
4112end; +
4113 +
4114function THashBaseWhirlpool.Digest: PByteArray; +
4115begin +
4116 Result := @FDigest; +
4117end; +
4118 +
4119class function THashBaseWhirlpool.DigestSize: UInt32; +
4120begin +
4121 Result := 64; +
4122end; +
4123 +
4124class function THashBaseWhirlpool.BlockSize: UInt32; +
4125begin +
4126 Result := 64; +
4127end; +
4128 +
4129{ THash_Whirlpool0 } +
4130 +
4131procedure THash_Whirlpool0.DoInit; +
4132begin +
4133 FillChar(FDigest, SizeOf(FDigest), 0); +
4134 FTableC := @Whirlpool_C_U; +
4135 FTableR := @Whirlpool_RC_U +
4136end; +
4137 +
4138{ THash_WhirlpoolT } +
4139 +
4140procedure THash_WhirlpoolT.DoInit; +
4141begin +
4142 FillChar(FDigest, SizeOf(FDigest), 0); +
4143 FTableC := @Whirlpool_C_T; +
4144 FTableR := @Whirlpool_RC_T; +
4145end; +
4146 +
4147{ THash_Whirlpool1_ } +
4148 +
4149procedure THash_Whirlpool1_.DoInit; +
4150begin +
4151 FillChar(FDigest, SizeOf(FDigest), 0); +
4152 FTableC := @Whirlpool_C_1; +
4153 FTableR := @Whirlpool_RC_1; +
4154end; +
4155 +
4156{ THash_Square } +
4157 +
4158procedure THash_Square.DoInit; +
4159begin +
4160 FillChar(FDigest, SizeOf(FDigest), 0); +
4161end; +
4162 +
4163{$IFNDEF THash_Square_asm} +
4164procedure THash_Square.DoTransform(Buffer: PUInt32Array); +
4165var +
4166 Key: array[0..8, 0..3] of UInt32; +
4167 A, B, C, D: UInt32; +
4168 AA, BB, CC, DD: UInt32; +
4169 I: Integer; +
4170begin +
4171 // Build and expand the Key, Digest include the Key +
4172 Key[0, 0] := FDigest[0]; +
4173 Key[0, 1] := FDigest[1]; +
4174 Key[0, 2] := FDigest[2]; +
4175 Key[0, 3] := FDigest[3]; +
4176 +
4177 for I := 1 to 8 do +
4178 begin +
4179 Key[I, 0] := Key[I - 1, 0] xor Key[I - 1, 3] shr 8 xor Key[I - 1, 3] shl 24 xor 1 shl (I - 1); +
4180 Key[I, 1] := Key[I - 1, 1] xor Key[I, 0]; +
4181 Key[I, 2] := Key[I - 1, 2] xor Key[I, 1]; +
4182 Key[I, 3] := Key[I - 1, 3] xor Key[I, 2]; +
4183 +
4184 Key[I - 1, 0] := Square_PHIr[0, Key[I - 1, 0] and $FF] xor +
4185 Square_PHIr[1, Key[I - 1, 0] shr 8 and $FF] xor +
4186 Square_PHIr[2, Key[I - 1, 0] shr 16 and $FF] xor +
4187 Square_PHIr[3, Key[I - 1, 0] shr 24 ]; +
4188 Key[I - 1, 1] := Square_PHIr[0, Key[I - 1, 1] and $FF] xor +
4189 Square_PHIr[1, Key[I - 1, 1] shr 8 and $FF] xor +
4190 Square_PHIr[2, Key[I - 1, 1] shr 16 and $FF] xor +
4191 Square_PHIr[3, Key[I - 1, 1] shr 24 ]; +
4192 Key[I - 1, 2] := Square_PHIr[0, Key[I - 1, 2] and $FF] xor +
4193 Square_PHIr[1, Key[I - 1, 2] shr 8 and $FF] xor +
4194 Square_PHIr[2, Key[I - 1, 2] shr 16 and $FF] xor +
4195 Square_PHIr[3, Key[I - 1, 2] shr 24 ]; +
4196 Key[I - 1, 3] := Square_PHIr[0, Key[I - 1, 3] and $FF] xor +
4197 Square_PHIr[1, Key[I - 1, 3] shr 8 and $FF] xor +
4198 Square_PHIr[2, Key[I - 1, 3] shr 16 and $FF] xor +
4199 Square_PHIr[3, Key[I - 1, 3] shr 24 ]; +
4200 end; +
4201 +
4202 // Encrypt begin here, same TCipher_Square.Encode +
4203 A := Buffer[0] xor Key[0, 0]; +
4204 B := Buffer[1] xor Key[0, 1]; +
4205 C := Buffer[2] xor Key[0, 2]; +
4206 D := Buffer[3] xor Key[0, 3]; +
4207 +
4208 for I := 0 to 6 do +
4209 begin +
4210 AA := Square_TE[0, A and $FF] xor +
4211 Square_TE[1, B and $FF] xor +
4212 Square_TE[2, C and $FF] xor +
4213 Square_TE[3, D and $FF] xor Key[I + 1, 0]; +
4214 BB := Square_TE[0, A shr 8 and $FF] xor +
4215 Square_TE[1, B shr 8 and $FF] xor +
4216 Square_TE[2, C shr 8 and $FF] xor +
4217 Square_TE[3, D shr 8 and $FF] xor Key[I + 1, 1]; +
4218 CC := Square_TE[0, A shr 16 and $FF] xor +
4219 Square_TE[1, B shr 16 and $FF] xor +
4220 Square_TE[2, C shr 16 and $FF] xor +
4221 Square_TE[3, D shr 16 and $FF] xor Key[I + 1, 2]; +
4222 DD := Square_TE[0, A shr 24 ] xor +
4223 Square_TE[1, B shr 24 ] xor +
4224 Square_TE[2, C shr 24 ] xor +
4225 Square_TE[3, D shr 24 ] xor Key[I + 1, 3]; +
4226 +
4227 A := AA; B := BB; C := CC; D := DD; +
4228 end; +
4229 +
4230 FDigest[0] := Buffer[0] xor +
4231 Square_SEint[A and $FF] xor +
4232 Square_SEint[B and $FF] shl 8 xor +
4233 Square_SEint[C and $FF] shl 16 xor +
4234 Square_SEint[D and $FF] shl 24 xor Key[8, 0]; +
4235 FDigest[1] := Buffer[1] xor +
4236 Square_SEint[A shr 8 and $FF] xor +
4237 Square_SEint[B shr 8 and $FF] shl 8 xor +
4238 Square_SEint[C shr 8 and $FF] shl 16 xor +
4239 Square_SEint[D shr 8 and $FF] shl 24 xor Key[8, 1]; +
4240 FDigest[2] := Buffer[2] xor +
4241 Square_SEint[A shr 16 and $FF] xor +
4242 Square_SEint[B shr 16 and $FF] shl 8 xor +
4243 Square_SEint[C shr 16 and $FF] shl 16 xor +
4244 Square_SEint[D shr 16 and $FF] shl 24 xor Key[8, 2]; +
4245 FDigest[3] := Buffer[3] xor +
4246 Square_SEint[A shr 24 ] xor +
4247 Square_SEint[B shr 24 ] shl 8 xor +
4248 Square_SEint[C shr 24 ] shl 16 xor +
4249 Square_SEint[D shr 24 ] shl 24 xor Key[8, 3]; +
4250end; +
4251{$ENDIF !THash_Square_asm} +
4252 +
4253procedure THash_Square.DoDone; +
4254var +
4255 I: Integer; +
4256begin +
4257 if FPaddingByte = 0 then +
4258 FPaddingByte := $80; +
4259 FBuffer[FBufferIndex] := FPaddingByte; +
4260 Inc(FBufferIndex); +
4261 if FBufferIndex > FBufferSize - 8 then +
4262 begin +
4263 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4264 DoTransform(Pointer(FBuffer)); +
4265 FBufferIndex := 0; +
4266 end; +
4267 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4268 for I := 7 downto 0 do +
4269 FBuffer[15 - I] := PByteArray(@FCount[0])[I]; +
4270 DoTransform(Pointer(FBuffer)); +
4271end; +
4272 +
4273function THash_Square.Digest: PByteArray; +
4274begin +
4275 Result := @FDigest; +
4276end; +
4277 +
4278class function THash_Square.DigestSize: UInt32; +
4279begin +
4280 Result := 16; +
4281end; +
4282 +
4283class function THash_Square.BlockSize: UInt32; +
4284begin +
4285 Result := 16; +
4286end; +
4287 +
4288{ THashBaseSnefru } +
4289 +
4290procedure THashBaseSnefru.SetRounds(Value: UInt32); +
4291begin +
4292 if (Value < 2) or (Value > 8) then +
4293 Value := 8; +
4294 FRounds := Value; +
4295end; +
4296 +
4297procedure THashBaseSnefru.DoInit; +
4298begin +
4299 FillChar(FDigest, SizeOf(FDigest), 0); +
4300 SetRounds(FRounds); +
4301end; +
4302 +
4303function THashBaseSnefru.GetMaxRounds: UInt32; +
4304begin +
4305 Result := 8; +
4306end; +
4307 +
4308function THashBaseSnefru.GetMinRounds: UInt32; +
4309begin +
4310 Result := 2; +
4311end; +
4312 +
4313function THashBaseSnefru.GetRounds: UInt32; +
4314begin +
4315 Result := FRounds; +
4316end; +
4317 +
4318procedure THashBaseSnefru.DoDone; +
4319begin +
4320 if FBufferIndex > 0 then +
4321 begin +
4322 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4323 DoTransform(Pointer(FBuffer)); +
4324 FBufferIndex := 0; +
4325 end; +
4326 FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0); +
4327 PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]); +
4328 PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]); +
4329 DoTransform(Pointer(FBuffer)); +
4330 SwapUInt32Buffer(FDigest, FDigest, 8); +
4331end; +
4332 +
4333function THashBaseSnefru.Digest: PByteArray; +
4334begin +
4335 Result := @FDigest; +
4336end; +
4337 +
4338{ THash_Snefru128 } +
4339 +
4340{$IFNDEF THash_Snefru128_asm} +
4341procedure THash_Snefru128.DoTransform(Buffer: PUInt32Array); +
4342const +
4343 ShiftTable: array[0..3] of Integer = (16, 8, 16, 24); +
4344var +
4345 I, Index, ByteInWord, T, N, S, S0, S1: UInt32; +
4346 D, Box0, Box1: PUInt32Array; +
4347begin +
4348 D := @FDigest; +
4349 SwapUInt32Buffer(Buffer[0], D[4], 12); +
4350 Move(D[0], D[16], 16); +
4351 Box0 := @Snefru_Data[0]; +
4352 Box1 := @Snefru_Data[1]; +
4353 for Index := 0 to FRounds - 1 do +
4354 begin +
4355 for ByteInWord := 0 to 3 do +
4356 begin +
4357 I := 0; +
4358 N := D[0]; +
4359 while I < 16 do +
4360 begin +
4361 S0 := Box0[N and $FF]; +
4362 T := (I + 1) and 15; N := D[T] xor S0; D[T] := N; +
4363 T := (I + 15) and 15; D[T] := D[T] xor S0; +
4364 S1 := Box0[N and $FF]; +
4365 T := (I + 2) and 15; N := D[T] xor S1; D[T] := N; +
4366 T := (I + 16) and 15; D[T] := D[T] xor S1; +
4367 S0 := Box1[N and $FF]; +
4368 T := (I + 3) and 15; N := D[T] xor S0; D[T] := N; +
4369 T := (I + 17) and 15; D[T] := D[T] xor S0; +
4370 S1 := Box1[N and $FF]; +
4371 T := (I + 4) and 15; N := D[T] xor S1; D[T] := N; +
4372 T := (I + 18) and 15; D[T] := D[T] xor S1; +
4373 Inc(I, 4); +
4374 end; +
4375 T := ShiftTable[ByteInWord]; +
4376 S := 32 - T; +
4377 for I := 0 to 15 do +
4378 D[I] := D[I] shr T or D[I] shl S; +
4379 end; +
4380 Box0 := @Box0[512]; +
4381 Box1 := @Box1[512]; +
4382 end; +
4383 for I := 0 to 3 do +
4384 D[I] := D[I + 16] xor D[15 - I]; +
4385end; +
4386{$ENDIF !THash_Snefru128_asm} +
4387 +
4388class function THash_Snefru128.DigestSize: UInt32; +
4389begin +
4390 Result := 16; +
4391end; +
4392 +
4393class function THash_Snefru128.BlockSize: UInt32; +
4394begin +
4395 Result := 48 +
4396end; +
4397 +
4398{ THash_Snefru256 } +
4399 +
4400{$IFNDEF THash_Snefru256_asm} +
4401procedure THash_Snefru256.DoTransform(Buffer: PUInt32Array); +
4402const +
4403 ShiftTable: array[0..3] of Integer = (16, 8, 16, 24); +
4404var +
4405 I, Index, ByteInWord, T, N, S, S0, S1: UInt32; +
4406 D, Box0, Box1: PUInt32Array; +
4407begin +
4408 D := @FDigest; +
4409 SwapUInt32Buffer(Buffer[0], D[8], 8); +
4410 Move(D[0], D[16], 32); +
4411 Box0 := @Snefru_Data[0]; +
4412 Box1 := @Snefru_Data[1]; +
4413 for Index := 0 to FRounds - 1 do +
4414 begin +
4415 for ByteInWord := 0 to 3 do +
4416 begin +
4417 I := 0; +
4418 N := D[0]; +
4419 while I < 16 do +
4420 begin +
4421 S0 := Box0[N and $FF]; +
4422 T := (I + 1) and 15; N := D[T] xor S0; D[T] := N; +
4423 T := (I + 15) and 15; D[T] := D[T] xor S0; +
4424 S1 := Box0[N and $FF]; +
4425 T := (I + 2) and 15; N := D[T] xor S1; D[T] := N; +
4426 T := (I + 16) and 15; D[T] := D[T] xor S1; +
4427 S0 := Box1[N and $FF]; +
4428 T := (I + 3) and 15; N := D[T] xor S0; D[T] := N; +
4429 T := (I + 17) and 15; D[T] := D[T] xor S0; +
4430 S1 := Box1[N and $FF]; +
4431 T := (I + 4) and 15; N := D[T] xor S1; D[T] := N; +
4432 T := (I + 18) and 15; D[T] := D[T] xor S1; +
4433 Inc(I, 4); +
4434 end; +
4435 T := ShiftTable[ByteInWord]; +
4436 S := 32 - T; +
4437 for I := 0 to 15 do +
4438 D[I] := D[I] shr T or D[I] shl S; +
4439 end; +
4440 Box0 := @Box0[512]; +
4441 Box1 := @Box1[512]; +
4442 end; +
4443 for I := 0 to 7 do +
4444 D[I] := D[I + 16] xor D[15 - I]; +
4445end; +
4446{$ENDIF !THash_Snefru256_asm} +
4447 +
4448class function THash_Snefru256.DigestSize: UInt32; +
4449begin +
4450 Result := 32; +
4451end; +
4452 +
4453class function THash_Snefru256.BlockSize: UInt32; +
4454begin +
4455 Result := 32 +
4456end; +
4457 +
4458{ THash_Sapphire } +
4459 +
4460procedure THash_Sapphire.DoInit; +
4461var +
4462 I: Integer; +
4463begin +
4464 FillChar(FDigest, SizeOf(FDigest), 0); +
4465 FRotor := 1; +
4466 FRatchet := 3; +
4467 FAvalanche := 5; +
4468 FPlain := 7; +
4469 FCipher := 11; +
4470 for I := 0 to 255 do +
4471 FCards[I] := 255 - I; +
4472end; +
4473 +
4474procedure THash_Sapphire.DoTransform(Buffer: PUInt32Array); +
4475begin +
4476 // Empty on purpose: the base class for the hashes declares an abstract +
4477 // DoTransform method and not providing an override for it would cause a +
4478 // compiler warning +
4479end; +
4480 +
4481procedure THash_Sapphire.SetDigestSize(Value: UInt8); +
4482begin +
4483 if (Value >= 1) and (Value <= 64) then +
4484 FDigestSize := Value +
4485 else +
4486 FDigestSize := DigestSize; +
4487end; +
4488 +
4489procedure THash_Sapphire.DoDone; +
4490var +
4491 I: Integer; +
4492begin +
4493 for I := 255 downto 0 do +
4494 Calc(I, 1); +
4495 for I := 0 to DigestSize - 1 do +
4496 begin +
4497 Calc(#0#0, 1); +
4498 PByteArray(@FDigest)[I] := FCipher; +
4499 end; +
4500end; +
4501 +
4502{$IFNDEF THash_Sapphire_asm} +
4503procedure THash_Sapphire.Calc(const Data; DataSize: Integer); +
4504var +
4505 Cipher, Ratchet, Rotor, Plain, Avalanche, T: UInt32; +
4506 D: PByte; +
4507begin +
4508 D := @Data; +
4509 Cipher := FCipher; +
4510 Ratchet := FRatchet; +
4511 Rotor := FRotor; +
4512 Plain := FPlain; +
4513 Avalanche := FAvalanche; +
4514 +
4515 while DataSize > 0 do +
4516 begin +
4517 Dec(DataSize); +
4518 Ratchet := (Ratchet + FCards[Rotor]) and $FF; +
4519 Rotor := (Rotor + 1) and $FF; +
4520 T := FCards[Cipher]; +
4521 FCards[Cipher] := FCards[Ratchet]; +
4522 FCards[Ratchet] := FCards[Plain]; +
4523 FCards[Plain] := FCards[Rotor]; +
4524 FCards[Rotor] := T; +
4525 Avalanche := (Avalanche + FCards[T]) and $FF; +
4526 T := (FCards[Plain] + FCards[Cipher] + FCards[Avalanche]) and $FF; +
4527 Plain := D^; Inc(D); +
4528 Cipher := Plain xor FCards[FCards[T]] xor FCards[(FCards[Ratchet] + FCards[Rotor]) and $FF]; +
4529 end; +
4530 +
4531 FCipher := Cipher; +
4532 FRatchet := Ratchet; +
4533 FRotor := Rotor; +
4534 FPlain := Plain; +
4535 FAvalanche := Avalanche; +
4536end; +
4537{$ENDIF !THash_Sapphire_asm} +
4538 +
4539function THash_Sapphire.Digest: PByteArray; +
4540begin +
4541 Result := @FDigest; +
4542end; +
4543 +
4544function THash_Sapphire.DigestAsBytes: TBytes; +
4545var +
4546 Size: Integer; +
4547begin +
4548 if FDigestSize > 0 then +
4549 Size := FDigestSize +
4550 else +
4551 Size := DigestSize; +
4552 +
4553 SetLength(Result, Size); +
4554 if Size <> 0 then +
4555 Move(FDigest, Result[0], Size); +
4556end; +
4557 +
4558class function THash_Sapphire.DigestSize: UInt32; +
4559begin +
4560 Result := 64; +
4561end; +
4562 +
4563class function THash_Sapphire.BlockSize: UInt32; +
4564begin +
4565 Result := 1; +
4566end; +
4567 +
4568{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
4569{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
4570 +
4571{ THash_Keccak_224 } +
4572 +
4573class function THash_Keccak_224.BlockSize: UInt32; +
4574begin +
4575 Result := 144; +
4576end; +
4577 +
4578class function THash_Keccak_224.DigestSize: UInt32; +
4579begin +
4580 Result := 28; +
4581end; +
4582 +
4583procedure THash_Keccak_224.DoInit; +
4584begin +
4585 inherited; +
4586 +
4587 FIsKeccack := true; +
4588end; +
4589 +
4590{ THash_Keccak_256 } +
4591 +
4592class function THash_Keccak_256.BlockSize: UInt32; +
4593begin +
4594 Result := 136; +
4595end; +
4596 +
4597class function THash_Keccak_256.DigestSize: UInt32; +
4598begin +
4599 Result := 32; +
4600end; +
4601 +
4602procedure THash_Keccak_256.DoInit; +
4603begin +
4604 inherited; +
4605 +
4606 FIsKeccack := true; +
4607end; +
4608 +
4609{ THash_Keccak_384 } +
4610 +
4611class function THash_Keccak_384.BlockSize: UInt32; +
4612begin +
4613 Result := 104; +
4614end; +
4615 +
4616class function THash_Keccak_384.DigestSize: UInt32; +
4617begin +
4618 Result := 48; +
4619end; +
4620 +
4621procedure THash_Keccak_384.DoInit; +
4622begin +
4623 inherited; +
4624 +
4625 FIsKeccack := true; +
4626end; +
4627 +
4628{ THash_Keccak_512 } +
4629 +
4630class function THash_Keccak_512.BlockSize: UInt32; +
4631begin +
4632 Result := 72; +
4633end; +
4634 +
4635class function THash_Keccak_512.DigestSize: UInt32; +
4636begin +
4637 Result := 64; +
4638end; +
4639 +
4640procedure THash_Keccak_512.DoInit; +
4641begin +
4642 inherited; +
4643 +
4644 FIsKeccack := true; +
4645end; +
4646 +
4647{ THash_SHA3_224 } +
4648 +
4649class function THash_SHA3_224.BlockSize: UInt32; +
4650begin +
4651 Result := 144; +
4652end; +
4653 +
4654class function THash_SHA3_224.DigestSize: UInt32; +
4655begin +
4656 Result := 28; +
4657end; +
4658 +
4659procedure THash_SHA3_224.DoInit; +
4660begin +
4661 inherited; +
4662 +
4663 InitSponge(1152, 448); +
4664 FSpongeState.FixedOutputLength := 224; +
4665end; +
4666 +
4667{ THash_SHA3_256 } +
4668 +
4669class function THash_SHA3_256.BlockSize: UInt32; +
4670begin +
4671 Result := 136; +
4672end; +
4673 +
4674class function THash_SHA3_256.DigestSize: UInt32; +
4675begin +
4676 Result := 32; +
4677end; +
4678 +
4679procedure THash_SHA3_256.DoInit; +
4680begin +
4681 inherited; +
4682 +
4683 InitSponge(1088, 512); +
4684 FSpongeState.fixedOutputLength := 256; +
4685end; +
4686 +
4687{ THash_SHA3_384 } +
4688 +
4689class function THash_SHA3_384.BlockSize: UInt32; +
4690begin +
4691 Result := 104; +
4692end; +
4693 +
4694class function THash_SHA3_384.DigestSize: UInt32; +
4695begin +
4696 Result := 48; +
4697end; +
4698 +
4699procedure THash_SHA3_384.DoInit; +
4700begin +
4701 inherited; +
4702 +
4703 InitSponge(832, 768); +
4704 FSpongeState.fixedOutputLength := 384; +
4705end; +
4706 +
4707{ THash_SHA3_512 } +
4708 +
4709class function THash_SHA3_512.BlockSize: UInt32; +
4710begin +
4711 Result := 72; +
4712end; +
4713 +
4714class function THash_SHA3_512.DigestSize: UInt32; +
4715begin +
4716 Result := 64; +
4717end; +
4718 +
4719procedure THash_SHA3_512.DoInit; +
4720begin +
4721 inherited; +
4722 +
4723 InitSponge(576, 1024); +
4724 FSpongeState.fixedOutputLength := 512; +
4725end; +
4726 +
4727{ THash_Shake128 } +
4728 +
4729class function THash_Shake128.BlockSize: UInt32; +
4730begin +
4731 Result := 168; +
4732end; +
4733 +
4734class function THash_Shake128.DigestSize: UInt32; +
4735begin +
4736 // 0 because the hash output length is defined via HashSize property at runtime +
4737 Result := 0; +
4738end; +
4739 +
4740procedure THash_Shake128.DoInit; +
4741begin +
4742 inherited; +
4743 +
4744 InitSponge(1344, 256); +
4745end; +
4746 +
4747{ THash_Shake256 } +
4748 +
4749class function THash_Shake256.BlockSize: UInt32; +
4750begin +
4751 Result := 136; +
4752end; +
4753 +
4754class function THash_Shake256.DigestSize: UInt32; +
4755begin +
4756 // 0 because the hash output length is defined via HashSize property at runtime +
4757 Result := 0; +
4758end; +
4759 +
4760procedure THash_Shake256.DoInit; +
4761begin +
4762 inherited; +
4763 +
4764 InitSponge(1088, 512); +
4765end; +
4766 +
4767{ THash_SHA3Base } +
4768 +
4769procedure THash_SHA3Base.InitSponge(Rate, Capacity: UInt16); +
4770var +
4771 OutputLengthBackup : UInt16; +
4772begin +
4773 if FOutpLengSet then +
4774 OutputLengthBackup := FSpongeState.FixedOutputLength +
4775 else +
4776 // Suppress compiler warning about potentially uninitialized variable +
4777 OutputLengthBackup := 0; +
4778 +
4779 FillChar(FSpongeState, SizeOf(FSpongeState), 0); +
4780 +
4781 if (Rate + Capacity <> 1600) or (Rate = 0) or (Rate >= 1600) or +
4782 ((Rate and 63) <> 0) then +
4783 raise EDECHashException.CreateFmt(sHashInitFailure, ['SHA3', +
4784 'rate: ' + IntToStr(Rate) + +
4785 ' capacity: ' + IntToStr(Capacity)]); +
4786 +
4787 FSpongeState.Rate := Rate; +
4788 FSpongeState.Capacity := Capacity; +
4789 +
4790 if FOutpLengSet then +
4791 FSpongeState.FixedOutputLength := OutputLengthBackup; +
4792end; +
4793 +
4794procedure THash_SHA3Base.KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer); +
4795begin +
4796 XORIntoState(TState_L(state), data, laneCount); +
4797 KeccakPermutation(TState_L(state)); +
4798end; +
4799 +
4800{$IFDEF PUREPASCAL} +
4801function THash_SHA3Base.RotL(const x: UInt64; c: Integer): UInt64; +
4802begin +
4803 Result := (x shl c) or (x shr (64-c)); +
4804end; +
4805 +
4806function THash_SHA3Base.RotL1(var x: UInt64): UInt64; +
4807begin +
4808 Result := (x shl 1) or (x shr (64-1)); +
4809end; +
4810 +
4811procedure THash_SHA3Base.KeccakPermutation(var state: TState_L); +
4812var +
4813 A : PUInt64Array; +
4814 B : array[0..24] of UInt64; +
4815 C0, C1, C2, C3, C4, D0, D1, D2, D3, D4: UInt64; +
4816 i : Integer; +
4817 +
4818begin +
4819 A := PUInt64Array(@state); +
4820 for i := 0 to 23 do +
4821 begin +
4822 C0 := A[00] xor A[05] xor A[10] xor A[15] xor A[20]; +
4823 C1 := A[01] xor A[06] xor A[11] xor A[16] xor A[21]; +
4824 C2 := A[02] xor A[07] xor A[12] xor A[17] xor A[22]; +
4825 C3 := A[03] xor A[08] xor A[13] xor A[18] xor A[23]; +
4826 C4 := A[04] xor A[09] xor A[14] xor A[19] xor A[24]; +
4827 +
4828 D0 := RotL1(C0) xor C3; +
4829 D1 := RotL1(C1) xor C4; +
4830 D2 := RotL1(C2) xor C0; +
4831 D3 := RotL1(C3) xor C1; +
4832 D4 := RotL1(C4) xor C2; +
4833 +
4834 B[00] := A[00] xor D1; +
4835 B[01] := RotL(A[06] xor D2, 44); +
4836 B[02] := RotL(A[12] xor D3, 43); +
4837 B[03] := RotL(A[18] xor D4, 21); +
4838 B[04] := RotL(A[24] xor D0, 14); +
4839 B[05] := RotL(A[03] xor D4, 28); +
4840 B[06] := RotL(A[09] xor D0, 20); +
4841 B[07] := RotL(A[10] xor D1, 3); +
4842 B[08] := RotL(A[16] xor D2, 45); +
4843 B[09] := RotL(A[22] xor D3, 61); +
4844 B[10] := RotL(A[01] xor D2, 1); +
4845 B[11] := RotL(A[07] xor D3, 6); +
4846 B[12] := RotL(A[13] xor D4, 25); +
4847 B[13] := RotL(A[19] xor D0, 8); +
4848 B[14] := RotL(A[20] xor D1, 18); +
4849 B[15] := RotL(A[04] xor D0, 27); +
4850 B[16] := RotL(A[05] xor D1, 36); +
4851 B[17] := RotL(A[11] xor D2, 10); +
4852 B[18] := RotL(A[17] xor D3, 15); +
4853 B[19] := RotL(A[23] xor D4, 56); +
4854 B[20] := RotL(A[02] xor D3, 62); +
4855 B[21] := RotL(A[08] xor D4, 55); +
4856 B[22] := RotL(A[14] xor D0, 39); +
4857 B[23] := RotL(A[15] xor D1, 41); +
4858 B[24] := RotL(A[21] xor D2, 2); +
4859 +
4860 A[00] := B[00] xor ((not B[01]) and B[02]); +
4861 A[01] := B[01] xor ((not B[02]) and B[03]); +
4862 A[02] := B[02] xor ((not B[03]) and B[04]); +
4863 A[03] := B[03] xor ((not B[04]) and B[00]); +
4864 A[04] := B[04] xor ((not B[00]) and B[01]); +
4865 A[05] := B[05] xor ((not B[06]) and B[07]); +
4866 A[06] := B[06] xor ((not B[07]) and B[08]); +
4867 A[07] := B[07] xor ((not B[08]) and B[09]); +
4868 A[08] := B[08] xor ((not B[09]) and B[05]); +
4869 A[09] := B[09] xor ((not B[05]) and B[06]); +
4870 A[10] := B[10] xor ((not B[11]) and B[12]); +
4871 A[11] := B[11] xor ((not B[12]) and B[13]); +
4872 A[12] := B[12] xor ((not B[13]) and B[14]); +
4873 A[13] := B[13] xor ((not B[14]) and B[10]); +
4874 A[14] := B[14] xor ((not B[10]) and B[11]); +
4875 A[15] := B[15] xor ((not B[16]) and B[17]); +
4876 A[16] := B[16] xor ((not B[17]) and B[18]); +
4877 A[17] := B[17] xor ((not B[18]) and B[19]); +
4878 A[18] := B[18] xor ((not B[19]) and B[15]); +
4879 A[19] := B[19] xor ((not B[15]) and B[16]); +
4880 A[20] := B[20] xor ((not B[21]) and B[22]); +
4881 A[21] := B[21] xor ((not B[22]) and B[23]); +
4882 A[22] := B[22] xor ((not B[23]) and B[24]); +
4883 A[23] := B[23] xor ((not B[24]) and B[20]); +
4884 A[24] := B[24] xor ((not B[20]) and B[21]); +
4885 +
4886 A[00] := A[00] xor cRoundConstants[i]; +
4887 end; +
4888end; +
4889{$ELSE} +
4890// Must be procedural as otherwise the parameters get passed in different +
4891// CPU registers and the complete ASM code would have needed to be rewritten. +
4892procedure KeccakPermutationKernel(B, A, C : Pointer); +
4893asm +
4894 {$IFDEF X86ASM} +
4895 {$INCLUDE DECHash.sha3_mmx.inc} +
4896 {$ELSE} +
4897 {$INCLUDE DECHash.sha3_x64.inc} +
4898 {$ENDIF} +
4899end; +
4900 +
4901procedure THash_SHA3Base.KeccakPermutation(var state: TState_L); +
4902var +
4903 A : PUInt64Array; +
4904 B : array [0..24] of UInt64; +
4905 C : array [0..4] of UInt64; +
4906 i : Integer; +
4907 +
4908 {$IFDEF X86ASM} +
4909 procedure EMMS; +
4910 asm +
4911 // This operation marks the x87 FPU data registers (which are aliased to the +
4912 // MMX technology registers) as available for use by x87 FPU floating-point +
4913 // instructions. +
4914 emms +
4915 end; +
4916 {$ENDIF} +
4917 +
4918begin +
4919 A := PUInt64Array(@state); +
4920 for i:=0 to 23 do +
4921 begin +
4922 KeccakPermutationKernel(@B, A, @C); +
4923 A[00] := A[00] xor cRoundConstants[i]; +
4924 end; +
4925 +
4926 {$IFDEF X86ASM} +
4927 EMMS; +
4928 {$ENDIF} +
4929end; +
4930{$ENDIF} +
4931 +
4932procedure THash_SHA3Base.PadAndSwitchToSqueezingPhase; +
4933var +
4934 i: integer; +
4935begin +
4936 // Note: the bits are numbered from 0 = LSB to 7 = MSB +
4937 if (FSpongeState.BitsInQueue + 1 = FSpongeState.Rate) then +
4938 begin +
4939 i := FSpongeState.BitsInQueue div 8; +
4940 FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or +
4941 (1 shl (FSpongeState.BitsInQueue and 7)); +
4942 AbsorbQueue; +
4943 FillChar(FSpongeState.DataQueue, FSpongeState.Rate div 8, 0); +
4944 end +
4945 else +
4946 begin +
4947 i := FSpongeState.BitsInQueue div 8; +
4948 FillChar(FSpongeState.DataQueue[(FSpongeState.BitsInQueue+7) div 8], +
4949 FSpongeState.Rate div 8 - (FSpongeState.BitsInQueue+7) div 8, 0); +
4950 FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or +
4951 (1 shl (FSpongeState.BitsInQueue and 7)); +
4952 end; +
4953 +
4954 i := (FSpongeState.Rate-1) div 8; +
4955 FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or +
4956 (1 shl ((FSpongeState.Rate-1) and 7)); +
4957 AbsorbQueue; +
4958 ExtractFromState(@FSpongeState.DataQueue, +
4959 TState_L(FSpongeState.State), +
4960 FSpongeState.Rate div 64); +
4961 FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate; +
4962 FSpongeState.SqueezeActive := true; +
4963end; +
4964 +
4965procedure THash_SHA3Base.Squeeze(var Output: TSHA3Digest; OutputLength: Int32); +
4966var +
4967 i : Int32; +
4968 PartialBlock : Int16; +
4969begin +
4970 if not FSpongeState.SqueezeActive then +
4971 PadAndSwitchToSqueezingPhase; +
4972 +
4973 // Only multiple of 8 bits are allowed, truncation must be done at user level +
4974 if OutputLength and 7 <> 0 then +
4975 raise EDECHashException.CreateFmt(sSHA3AbsorbFailure, +
4976 [OutputLength, 'true']); +
4977 +
4978 i := 0; +
4979 while i < OutputLength do +
4980 begin +
4981 if FSpongeState.bitsAvailableForSqueezing = 0 then +
4982 begin +
4983 KeccakPermutation(TState_L(FSpongeState.State)); +
4984 ExtractFromState(@FSpongeState.DataQueue, TState_L(FSpongeState.State), +
4985 FSpongeState.Rate div 64); +
4986 FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate; +
4987 end; +
4988 +
4989 PartialBlock := FSpongeState.bitsAvailableForSqueezing; +
4990 if PartialBlock > OutputLength - i then +
4991 PartialBlock := OutputLength - i; +
4992 +
4993 move(FSpongeState.DataQueue[(FSpongeState.Rate - FSpongeState.bitsAvailableForSqueezing) div 8], +
4994 output[i div 8], PartialBlock div 8); +
4995 dec(FSpongeState.bitsAvailableForSqueezing, PartialBlock); +
4996 inc(i, PartialBlock); +
4997 end; +
4998end; +
4999 +
5000procedure THash_SHA3Base.XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer); +
5001var +
5002 pS: PUInt64; +
5003 i: Integer; +
5004begin +
5005 pS := @state[0]; +
5006 for i:=laneCount-1 downto 0 do begin +
5007 pS^ := pS^ xor pI^; +
5008 Inc(pI); +
5009 Inc(pS); +
5010 end; +
5011end; +
5012 +
5013 +
5014procedure THash_SHA3Base.Absorb(Data: PBABytes; DatabitLen: Int32); +
5015var +
5016 i, j, wholeBlocks, partialBlock: Integer; +
5017 partialByte: Integer; +
5018 curData: PUInt64; +
5019begin +
5020 // if a number of bits which cannot be divided by 8 without reminder is in the +
5021 // queue or algorithm is already in squeezing state +
5022 if (FSpongeState.BitsInQueue and 7 <> 0) or FSpongeState.SqueezeActive then +
5023 begin +
5024 raise EDECHashException.CreateFmt(sSHA3AbsorbFailure, +
5025 [FSpongeState.BitsInQueue, +
5026 BoolToStr(FSpongeState.SqueezeActive, true)]); +
5027 end; +
5028 +
5029 i := 0; +
5030 +
5031 while i < databitlen do +
5032 begin +
5033 if ((FSpongeState.BitsInQueue = 0) and (databitlen >= FSpongeState.Rate) and +
5034 (i <= (databitlen - FSpongeState.Rate))) then +
5035 begin +
5036 wholeBlocks := (databitlen-i) div FSpongeState.Rate; +
5037 curData := @data^[i div 8]; +
5038 j := 0; +
5039 while j < wholeBlocks do +
5040 begin +
5041 KeccakAbsorb(FSpongeState.State, curData, FSpongeState.Rate div 64); +
5042 Inc(j); +
5043 Inc(PByte(curData), FSpongeState.Rate div 8); +
5044 end; +
5045 Inc(i, wholeBlocks * FSpongeState.Rate); +
5046 end +
5047 else +
5048 begin +
5049 partialBlock := databitlen - i; +
5050 if partialBlock + FSpongeState.BitsInQueue > FSpongeState.Rate then +
5051 partialBlock := FSpongeState.Rate - FSpongeState.BitsInQueue; +
5052 +
5053 partialByte := partialBlock and 7; +
5054 Dec(partialBlock, partialByte); +
5055 Move(data^[i div 8], FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8], partialBlock div 8); +
5056 Inc(FSpongeState.BitsInQueue, partialBlock); +
5057 Inc(i, partialBlock); +
5058 if FSpongeState.BitsInQueue=FSpongeState.Rate then +
5059 AbsorbQueue; +
5060 +
5061 if partialByte > 0 then +
5062 begin +
5063 FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8] := +
5064 data^[i div 8] and ((1 shl partialByte)-1); +
5065 +
5066 Inc(FSpongeState.BitsInQueue, partialByte); +
5067 Inc(i, partialByte); +
5068 end; +
5069 end; +
5070 end; +
5071end; +
5072 +
5073procedure THash_SHA3Base.AbsorbQueue; +
5074begin +
5075 // state.bitsInQueue is assumed to be equal to state.rat +
5076 KeccakAbsorb(FSpongeState.State, @FSpongeState.DataQueue, FSpongeState.Rate div 64); +
5077 FSpongeState.BitsInQueue := 0; +
5078end; +
5079 +
5080procedure THash_SHA3Base.Calc(const Data; DataSize: Integer); +
5081var +
5082 DataPtr : PBABytes; +
5083 RoundSize : UInt32; +
5084const +
5085 // Maximum number of bytes one can process in one round +
5086 MaxRoundSize = MaxInt div 8; +
5087begin +
5088 // due to the way the inherited calc is constructed it must not be called here! +
5089 if (DataSize > 0) then +
5090 begin +
5091 DataPtr := PBABytes(@Data); +
5092 +
5093 while (UInt32(DataSize) > 0) do +
5094 begin +
5095 RoundSize := DataSize; +
5096 if (RoundSize > MaxRoundSize) then +
5097 RoundSize := MaxRoundSize; +
5098 +
5099 Absorb(DataPtr, RoundSize * 8); +
5100 Dec(DataSize, RoundSize); +
5101 Inc(DataPtr, RoundSize); +
5102 end; +
5103 +
5104 end; +
5105end; +
5106 +
5107constructor THash_SHA3Base.Create; +
5108begin +
5109 inherited; +
5110 +
5111 FOutpLengSet := false; +
5112 SetLength(FDigest, 64); +
5113end; +
5114 +
5115function THash_SHA3Base.Digest: PByteArray; +
5116begin +
5117 Result := @FDigest[0]; +
5118end; +
5119 +
5120procedure THash_SHA3Base.DoDone; +
5121begin +
5122 if not FSpongeState.SqueezeActive then +
5123 FinalBit_LSB(FPaddingByte, FFinalByteLength, FDigest); +
5124end; +
5125 +
5126procedure THash_SHA3Base.DoInit; +
5127begin +
5128 inherited; +
5129 +
5130 FIsKeccack := false; +
5131 FillChar(FDIgest[0], Length(FDigest), 0); +
5132end; +
5133 +
5134procedure THash_SHA3Base.DoUpdate(Data: Pointer; DataBitLen: Int32); +
5135var +
5136 LastByte: Byte; +
5137begin +
5138 // No partial byte +
5139 if DataBitLen and 7 = 0 then +
5140 Absorb(Data, DataBitLen) +
5141 else +
5142 begin +
5143 // Data contains a partial byte. Calculate the whole bytes first then the +
5144 // partial one. +
5145 Absorb(Data, DataBitLen - (DataBitLen and 7)); +
5146 +
5147 // Align the last partial byte to the least significant bits +
5148 LastByte := PBABytes(Data)^[DatabitLen div 8] shr (8 - (DataBitLen and 7)); +
5149 Absorb(@LastByte, DataBitLen and 7); +
5150 end; +
5151end; +
5152 +
5153procedure THash_SHA3Base.ExtractFromState(outp: Pointer; const state: TState_L; laneCount: Integer); +
5154var +
5155 pI, pS: PUInt64; +
5156 i: Integer; +
5157begin +
5158 pI := outp; +
5159 pS := @state[0]; +
5160 for i := laneCount - 1 downto 0 do +
5161 begin +
5162 pI^ := pS^; +
5163 Inc(pI); +
5164 Inc(pS); +
5165 end; +
5166end; +
5167 +
5168procedure THash_SHA3Base.FinalBit_LSB(Bits: Byte; Bitlen: UInt16; +
5169 var Hashvalue: TSHA3Digest); +
5170var +
5171 WorkingBitLen : Int16; +
5172 lw : UInt16; +
5173begin +
5174 // normalize Bitlen and Bits (zero high bits) +
5175 Bitlen := Bitlen and 7; +
5176 if Bitlen = 0 then +
5177 lw := 0 +
5178 else +
5179 lw := Bits and pred(word(1) shl Bitlen); +
5180 +
5181 // 'append' (in LSB language) the domain separation bits +
5182 //if (FSpongeState.FixedOutputLength = 0) then +
5183 if self.ClassParent = THash_ShakeBase then +
5184 begin +
5185 lw := lw or (word($F) shl Bitlen); +
5186 WorkingBitLen := Bitlen + 4; +
5187 end +
5188 else +
5189 begin +
5190 if not FIsKeccack then +
5191 begin +
5192 // SHA3: append two bits 01 +
5193 lw := lw or (word($2) shl Bitlen); +
5194 +
5195 WorkingBitLen := Bitlen + 2; +
5196 end +
5197 else +
5198 WorkingBitLen := Bitlen; +
5199 end; +
5200 +
5201 // update state with final bits +
5202 if WorkingBitLen < 9 then +
5203 begin +
5204 // 0..8 bits, one call to update +
5205 lw := lw shl (8-WorkingBitLen); +
5206 DoUpdate(@lw, WorkingBitLen); +
5207 // squeeze the digits from the sponge +
5208 Squeeze(Hashvalue, FSpongeState.FixedOutputLength); +
5209 end +
5210 else +
5211 begin +
5212 // More than 8 bits, first a regular update with low byte +
5213 DoUpdate(@lw, 8); +
5214 +
5215 // Finally update remaining last bits +
5216 dec(WorkingBitLen,8); +
5217 lw := lw shr WorkingBitLen; +
5218 DoUpdate(@lw, WorkingBitLen); +
5219 +
5220 Squeeze(Hashvalue, FSpongeState.FixedOutputLength); +
5221 end; +
5222end; +
5223 +
5224procedure THash_SHA3Base.DoTransform(Buffer: PUInt32Array); +
5225begin +
5226// Empty on purpose as calculation is implemented differently for SHA3. Needed +
5227// to suppress the compiler warning that a class with an abstract method is created +
5228end; +
5229 +
5230{ THash_ShakeBase } +
5231 +
5232function THash_ShakeBase.GetHashSize: UInt16; +
5233begin +
5234 // divided by 8 since this field is in bits +
5235 Result := FSpongeState.FixedOutputLength shr 3; +
5236end; +
5237 +
5238procedure THash_ShakeBase.SetHashSize(const Value: UInt16); +
5239begin +
5240 if (Value = 0) then +
5241 raise EDECHashException.CreateResFmt(@sHashInitFailure, +
5242 [GetShortClassName, sHashOutputLength0]); +
5243 +
5244 // multiplied with 8 since this field is in bits +
5245 FSpongeState.FixedOutputLength := Value * 8; +
5246 // This flag tells the initialization of the algorithm that +
5247 // FixedOutputLength needs to be preserved +
5248 FOutpLengSet := true; +
5249 +
5250 SetLength(FDigest, Value); +
5251 FillChar(FDigest[0], Length(FDigest), #0); +
5252end; +
5253 +
5254function THash_ShakeBase.DigestAsBytes: TBytes; +
5255begin +
5256 SetLength(Result, FSpongeState.FixedOutputLength shr 3); +
5257 if FSpongeState.FixedOutputLength > 0 then +
5258 Move(Digest^, Result[0], Length(Result)); +
5259end; +
5260 +
5261{ THash_BCrypt } +
5262 +
5263class function THash_BCrypt.BlockSize: UInt32; +
5264begin +
5265 Result := 8; +
5266end; +
5267 +
5268procedure THash_BCrypt.Calc(const Data; DataSize: Integer); +
5269const +
5270 ctext: TBCDigest = ($4F,$72,$70,$68,$65,$61,$6E,$42, {'OrpheanBeholderScryDoubt'} +
5271 $65,$68,$6F,$6C,$64,$65,$72,$53, +
5272 $63,$72,$79,$44,$6F,$75,$62,$74); +
5273var +
5274 PwdData : TBytes; +
5275 i : Integer; +
5276begin +
5277 if (DataSize > MaxPasswordLength) then +
5278 raise EDECHashException.CreateFmt(sPasswordTooLong, [MaxPasswordLength]); +
5279 +
5280 // While this should normally be caught on setting salt already it is there +
5281 // especially to catch cases where no salt has been specified yet. +
5282 if (Length(FSalt) < MinSaltLength) or (Length(FSalt) > MaxSaltLength) then +
5283 raise EDECHashException.CreateFmt(sWrongSaltLength, +
5284 [MinSaltLength, MaxSaltLength]); +
5285 +
5286 // This automatically "adds" the required #0 terminator at the end of the password +
5287 SetLength(PwdData, DataSize + 1); +
5288 Move(Data, PwdData[0], DataSize); +
5289 +
5290 EksBlowfishSetup(PwdData, DataSize + 1); +
5291 +
5292 Move(ctext, FDigest[0], Length(ctext)); +
5293 +
5294 // Encrypt the magic initialisation text 64 times using ECB mode +
5295 for i := 1 to 64 do +
5296 begin +
5297 BF_Encrypt(PBFBlock(@FDigest[ 0])^, PBFBlock(@FDigest[ 0])^); +
5298 BF_Encrypt(PBFBlock(@FDigest[ 8])^, PBFBlock(@FDigest[ 8])^); +
5299 BF_Encrypt(PBFBlock(@FDigest[16])^, PBFBlock(@FDigest[16])^); +
5300 end; +
5301 +
5302end; +
5303 +
5304procedure THash_BCrypt.EksBlowfishSetup(var Password : TBytes; +
5305 PasswordSize : Integer); +
5306var +
5307 i, rounds: UInt32; +
5308const +
5309 zero: TBytes = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; +
5310begin +
5311 // number of rounds = 2^cost, loop includes 0 +
5312 if (FCost = 31) then +
5313 rounds := MaxLongint +
5314 else +
5315 rounds := (Int32(1) shl FCost) - 1; +
5316 +
5317 // Just copy the boxes into the context +
5318 ExpandKey(FSalt, Password, PasswordSize); +
5319 +
5320 // This is the time consuming part +
5321 for i := rounds downto 0 do +
5322 begin +
5323 ExpandKey(zero, Password, PasswordSize); +
5324 ExpandKey(zero, FSalt, 16); +
5325 end; +
5326end; +
5327 +
5328procedure THash_BCrypt.Expandkey(Salt : TBytes; +
5329 var Password : TBytes; +
5330 PasswordSize : Integer); +
5331type +
5332 TByteArray72 = packed array[0..71] of UInt8; +
5333 +
5334var +
5335 i,j,k,h : Integer; +
5336 KL : UInt32; +
5337 tmp : TBFBlock; +
5338 KBP : ^TByteArray72; +
5339begin +
5340 KBP := @Password[0]; +
5341 +
5342 // Text explanations and comments are from the N.Provos & D.Mazieres paper. +
5343 +
5344 // ExpandKey(state,salt,key) modifies the P-Array and S-boxes based on the +
5345 // value of the 128-bit salt and the variable length key. First XOR all the +
5346 // subkeys in the P-array with the encryption key. The first 32 bits of the +
5347 // key are XORed with P1, the next 32 bits with P2, and so on. The key is +
5348 // viewed as being cyclic; when the process reaches the end of the key, it +
5349 // starts reusing bits from the beginning to XOR with subkeys. +
5350 +
5351 // WE: Same as standard key part except that PArray[i] is used for _bf_p[i] +
5352 k := 0; +
5353 for i := 0 to 17 do +
5354 begin +
5355 KL := 0; +
5356 for j:=0 to 3 do +
5357 begin +
5358 KL := (KL shl 8) or KBP^[k]; +
5359 inc(k); +
5360 +
5361 if (k = PasswordSize) then +
5362 k := 0; +
5363 end; +
5364 +
5365 FContext.PArray[i] := FContext.PArray[i] xor KL; +
5366 end; +
5367 +
5368 // Subsequently, ExpandKey blowfish-encrypts the first 64 bits of +
5369 // its salt argument using the current state of the key schedule. +
5370 BF_Encrypt(PBFBlock(@salt[0])^, tmp); +
5371 +
5372 // The resulting ciphertext replaces subkeys P_1 and P_2. +
5373 FContext.PArray[0] := SwapUInt32(TBF2Long(tmp).L); +
5374 FContext.PArray[1] := SwapUInt32(TBF2Long(tmp).R); +
5375 +
5376 // That same ciphertext is also XORed with the second 64-bits of +
5377 // salt, and the result encrypted with the new state of the key +
5378 // schedule. The output of the second encryption replaces subkeys +
5379 // P_3 and P_4. It is also XORed with the first 64-bits of salt +
5380 // and encrypted to replace P_5 and P_6. The process continues, +
5381 // alternating between the first and second 64 bits salt. +
5382 h := 8; +
5383 for i := 1 to 8 do +
5384 begin +
5385 BF_XorBlock(tmp, PBFBlock(@Salt[h])^, tmp); +
5386 h := h xor 8; +
5387 BF_Encrypt(tmp, tmp); +
5388 FContext.PArray[2*i] := SwapUInt32(TBF2Long(tmp).L); +
5389 FContext.PArray[2*i+1] := SwapUInt32(TBF2Long(tmp).R); +
5390 end; +
5391 +
5392 // When ExpandKey finishes replacing entries in the P-Array, it continues +
5393 // on replacing S-box entries two at a time. After replacing the last two +
5394 // entries of the last S-box, ExpandKey returns the new key schedule. +
5395 for j := 0 to 3 do +
5396 begin +
5397 for i := 0 to 127 do +
5398 begin +
5399 BF_XorBlock(tmp, PBFBlock(@Salt[h])^, tmp); +
5400 h := h xor 8; +
5401 BF_Encrypt(tmp, tmp); +
5402 FContext.SBox[j, 2*i] := SwapUInt32(TBF2Long(tmp).L); +
5403 FContext.SBox[j, 2*i+1] := SwapUInt32(TBF2Long(tmp).R); +
5404 end; +
5405 end; +
5406end; +
5407 +
5408function THash_BCrypt.GetCryptHash(Password : TBytes; +
5409 const Params : string; +
5410 const Salt : TBytes; +
5411 Format : TDECFormatClass): string; +
5412var +
5413 Hash : THash_BCrypt; +
5414begin +
5415 Hash := THash_BCrypt.Create; +
5416 try +
5417 Hash.Cost := StrToInt(string(Params)); +
5418 Hash.Salt := Salt; +
5419 +
5420 // BCrypt leaves off the $ in front of the actual password hash value +
5421 Result := TEncoding.ASCII.GetString(Format.Encode(Hash.CalcBytes(Password))); +
5422 finally +
5423 Hash.Free; +
5424 end; +
5425end; +
5426 +
5427class function THash_BCrypt.GetCryptID: string; +
5428begin +
5429 Result := '$2a'; +
5430end; +
5431 +
5432function THash_BCrypt.GetCryptParams(const Params : string; +
5433 Format : TDECFormatClass): string; +
5434begin +
5435 Result := Params; +
5436 if (Length(Result) < 2) then +
5437 Result := '0' + Result; +
5438 +
5439 Result := '$' + Result; +
5440end; +
5441 +
5442function THash_BCrypt.IsValidPassword(Password : TBytes; +
5443 const CryptData : string; +
5444 Format: TDECFormatClass): Boolean; +
5445var +
5446 SplittedCryptData : TBCryptBSDData; +
5447 Hash : string; +
5448begin +
5449 Result := false; +
5450 +
5451 if (Length(CryptData) = 60) then +
5452 begin +
5453 if SplitTestVector(CryptData, SplittedCryptData) then +
5454 begin +
5455 // Is the CryptData for this algorithm? +
5456 if '$' + SplittedCryptData.ID <> GetCryptID then +
5457 exit; +
5458 +
5459 Hash := GetDigestInCryptFormat(Password, +
5460 SplittedCryptData.Cost, +
5461 SplittedCryptData.Salt, +
5462 False, +
5463 Format); +
5464 +
5465 Result := Hash = CryptData; +
5466 end; +
5467 end; +
5468end; +
5469 +
5470//function THash_BCrypt.IsValidPassword(const Password : string; +
5471// const CryptData : string; +
5472// Format : TDECFormatClass): Boolean; +
5473//var +
5474// SplittedCryptData : TBCryptBSDData; +
5475// Hash : string; +
5476//begin +
5477// Result := false; +
5478// +
5479// if (Length(CryptData) = 60) then +
5480// begin +
5481// if SplitTestVector(CryptData, SplittedCryptData) then +
5482// begin +
5483// // Is the CryptData for this algorithm? +
5484// if '$' + SplittedCryptData.ID <> GetCryptID then +
5485// exit; +
5486// +
5487// Hash := GetDigestInCryptFormat(Password, +
5488// SplittedCryptData.Cost, +
5489// SplittedCryptData.Salt, +
5490// False, +
5491// Format); +
5492// +
5493// Result := Hash = CryptData; +
5494// end; +
5495// end; +
5496//end; +
5497 +
5498procedure THash_BCrypt.BF_Encrypt(const BI: TBFBlock; var BO: TBFBlock); +
5499var +
5500 xl, xr : UInt32; +
5501 pp : ^UInt32; +
5502 i : integer; +
5503begin +
5504 xl := SwapUInt32(TBF2Long(BI).L) xor FContext.PArray[0]; +
5505 xr := SwapUInt32(TBF2Long(BI).R); +
5506 pp := @FContext.PArray[1]; +
5507 +
5508 {$Q-} +
5509 // 16 rounds = 8 double rounds without swapping +
5510 for i := 1 to 8 do +
5511 begin +
5512 {$IFOPT Q+}The following code requires overflow checks being off! +
5513 If the compiler complains do a clean on the main source project +
5514 and recompile it!{$ENDIF} +
5515 +
5516 xr := xr xor pp^ xor (FContext.SBox[0][xl shr 24 ] + +
5517 FContext.SBox[1][xl shr 16 and $ff] xor +
5518 FContext.SBox[2][xl shr 8 and $ff] + +
5519 FContext.SBox[3][xl and $ff]); +
5520 inc(pp); +
5521 xl := xl xor pp^ xor (FContext.SBox[0][xr shr 24 ] + +
5522 FContext.SBox[1][xr shr 16 and $ff] xor +
5523 FContext.SBox[2][xr shr 8 and $ff] + +
5524 FContext.SBox[3][xr and $ff]); +
5525 inc(pp); +
5526 end; +
5527 +
5528 {$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
5529 TBF2Long(BO).R := SwapUInt32(xl); +
5530 TBF2Long(BO).L := SwapUInt32(xr xor pp^); +
5531end; +
5532 +
5533procedure THash_BCrypt.BF_XorBlock(const B1, B2: TBFBlock; var B3: TBFBlock); +
5534begin +
5535 TBF2Long(B3).L := TBF2Long(B1).L xor TBF2Long(B2).L; +
5536 TBF2Long(B3).R := TBF2Long(B1).R xor TBF2Long(B2).R; +
5537end; +
5538 +
5539constructor THash_BCrypt.Create; +
5540begin +
5541 inherited; +
5542 +
5543 FCost := 10; // must be specified by the user, but better init with a +
5544 // fixed value instead of no initialization at all. +
5545end; +
5546 +
5547function THash_BCrypt.Digest: PByteArray; +
5548begin +
5549 Result := @FDigest; +
5550end; +
5551 +
5552class function THash_BCrypt.DigestSize: UInt32; +
5553begin +
5554 // Should have been 192 bit = 24 byte, but original imnplementation had a flaw +
5555 // not returning the last byte which has been kept instead of fixing it. +
5556 Result := 23; +
5557end; +
5558 +
5559procedure THash_BCrypt.DoDone; +
5560begin +
5561 ProtectBuffer(FContext.PArray, SizeOf(FContext.PArray)); +
5562 ProtectBuffer(FContext.IV, SizeOf(FContext.IV)); +
5563 ProtectBuffer(FContext.buf, SizeOf(FContext.buf)); +
5564 +
5565 inherited; +
5566end; +
5567 +
5568procedure THash_BCrypt.DoInit; +
5569begin +
5570 FillChar(FDigest, SizeOf(FDigest), 0); +
5571 FillChar(FContext, SizeOf(FContext), 0); +
5572 +
5573 FContext.SBox := Blowfish_Data; +
5574 FContext.PArray := Blowfish_Key; +
5575end; +
5576 +
5577procedure THash_BCrypt.DoTransform(Buffer: PUInt32Array); +
5578begin +
5579 // Empty on purpose, as bcrypt needs to know the input length. Thus calculation +
5580 // is done directly in method Calc. +
5581end; +
5582 +
5583function THash_BCrypt.MaxCost: UInt8; +
5584begin +
5585 Result := 31; +
5586end; +
5587 +
5588class function THash_BCrypt.MaxPasswordLength: UInt8; +
5589begin +
5590 Result := 72; +
5591end; +
5592 +
5593function THash_BCrypt.MaxSaltLength: UInt8; +
5594begin +
5595 Result := 16; +
5596end; +
5597 +
5598function THash_BCrypt.MinCost: UInt8; +
5599begin +
5600 Result := 4; +
5601end; +
5602 +
5603function THash_BCrypt.MinSaltLength: UInt8; +
5604begin +
5605 Result := 16; +
5606end; +
5607 +
5608procedure THash_BCrypt.SetCost(const Value: UInt8); +
5609begin +
5610 if (Value in [MinCost..MaxCost]) then +
5611 FCost := Value +
5612 else +
5613 raise EDECHashException.CreateFmt(sCostFactorInvalid, [MinCost, MaxCost]); +
5614end; +
5615 +
5616function THash_BCrypt.SplitTestVector(const Vector : string; +
5617 var SplittedData : TBCryptBSDData): Boolean; +
5618var +
5619 Parts : TArray<string>; +
5620begin +
5621 Result := false; +
5622 +
5623 Parts := Vector.Split(['$'], TStringSplitOptions.ExcludeEmpty); +
5624 +
5625 if (Length(Parts) = 3) then +
5626 begin +
5627 SplittedData.ID := Parts[0]; +
5628 SplittedData.Cost := Copy(Parts[1], Low(Parts[1]), Length(Parts[1])); +
5629 SplittedData.Salt := Copy(Parts[2], Low(Parts[2]), 22); +
5630 Result := true; +
5631 end; +
5632end; +
5633 +
5634{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
5635{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
5636 +
5637initialization +
5638 // Define the has returned by ValidHash if passing nil as parameter +
5639 SetDefaultHashClass(THash_SHA256); +
5640 +
5641 {$IFNDEF ManualRegisterHashClasses} +
5642 THash_MD2.RegisterClass(TDECHash.ClassList); +
5643 THash_MD4.RegisterClass(TDECHash.ClassList); +
5644 THash_MD5.RegisterClass(TDECHash.ClassList); +
5645 THash_RipeMD128.RegisterClass(TDECHash.ClassList); +
5646 THash_RipeMD160.RegisterClass(TDECHash.ClassList); +
5647 THash_RipeMD256.RegisterClass(TDECHash.ClassList); +
5648 THash_RipeMD320.RegisterClass(TDECHash.ClassList); +
5649 THash_SHA0.RegisterClass(TDECHash.ClassList); +
5650 THash_SHA1.RegisterClass(TDECHash.ClassList); +
5651 THash_SHA224.RegisterClass(TDECHash.ClassList); +
5652 THash_SHA256.RegisterClass(TDECHash.ClassList); +
5653 THash_SHA384.RegisterClass(TDECHash.ClassList); +
5654 THash_SHA512.RegisterClass(TDECHash.ClassList); +
5655 THash_SHA3_224.RegisterClass(TDECHash.ClassList); +
5656 THash_SHA3_256.RegisterClass(TDECHash.ClassList); +
5657 THash_SHA3_384.RegisterClass(TDECHash.ClassList); +
5658 THash_SHA3_512.RegisterClass(TDECHash.ClassList); +
5659 THash_Keccak_224.RegisterClass(TDECHash.ClassList); +
5660 THash_Keccak_256.RegisterClass(TDECHash.ClassList); +
5661 THash_Keccak_384.RegisterClass(TDECHash.ClassList); +
5662 THash_Keccak_512.RegisterClass(TDECHash.ClassList); +
5663 THash_Shake128.RegisterClass(TDECHash.ClassList); +
5664 THash_Shake256.RegisterClass(TDECHash.ClassList); +
5665 THash_Haval128.RegisterClass(TDECHash.ClassList); +
5666 THash_Haval160.RegisterClass(TDECHash.ClassList); +
5667 THash_Haval192.RegisterClass(TDECHash.ClassList); +
5668 THash_Haval224.RegisterClass(TDECHash.ClassList); +
5669 THash_Haval256.RegisterClass(TDECHash.ClassList); +
5670 THash_Tiger.RegisterClass(TDECHash.ClassList); +
5671 THash_Panama.RegisterClass(TDECHash.ClassList); +
5672 +
5673 {$IFDEF OLD_WHIRLPOOL_NAMES} +
5674 THash_Whirlpool.RegisterClass(TDECHash.ClassList); +
5675 THash_Whirlpool1.RegisterClass(TDECHash.ClassList); +
5676 THash_Whirlpool1New.RegisterClass(TDECHash.ClassList); +
5677 {$ELSE} +
5678 THash_Whirlpool1.RegisterClass(TDECHash.ClassList); +
5679 {$ENDIF} +
5680 +
5681 THash_Whirlpool0.RegisterClass(TDECHash.ClassList); +
5682 THash_WhirlpoolT.RegisterClass(TDECHash.ClassList); +
5683 +
5684 THash_Square.RegisterClass(TDECHash.ClassList); +
5685 THash_Snefru128.RegisterClass(TDECHash.ClassList); +
5686 THash_Snefru256.RegisterClass(TDECHash.ClassList); +
5687 THash_Sapphire.RegisterClass(TDECHash.ClassList); +
5688 +
5689 THash_BCrypt.RegisterClass(TDECHash.ClassList); +
5690 +
5691 {$IFDEF OLD_SHA_NAME} +
5692 THash_SHA.RegisterClass(TDECHash.ClassList); +
5693 {$ENDIF} +
5694 +
5695 {$ENDIF} +
5696 +
5697finalization +
5698 // No need to unregister the hash classes, as the list is being freed +
5699 // in finalization of DECHashBase unit +
5700 +
5701end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECHashAuthentication(DECHashAuthentication.pas).html b/Unit Tests/CodeCoverage/Output/DECHashAuthentication(DECHashAuthentication.pas).html new file mode 100644 index 00000000..0026b437 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECHashAuthentication(DECHashAuthentication.pas).html @@ -0,0 +1,1756 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashAuthentication (..\..\Source\DECHashAuthentication.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECHashAuthentication.pas

+
Number of lines covered304
Number of lines with code gen333
Line coverage91.3 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Unit containing all the KDF, MGF, HMAC and PBKDF2 algorithms +
20/// </summary> +
21unit DECHashAuthentication; +
22 +
23interface +
24 +
25uses +
26 {$IFDEF FPC} +
27 SysUtils, Classes, +
28 {$ELSE} +
29 System.SysUtils, System.Classes, Generics.Collections, +
30 {$ENDIF} +
31 DECBaseClass, DECHashBase, DECHashInterface, DECTypes , DECFormatBase; +
32 +
33{$INCLUDE DECOptions.inc} +
34 +
35type +
36 /// <summary> +
37 /// Type of the KDF variant +
38 /// </summary> +
39 TKDFType = (ktKDF1, ktKDF2, ktKDF3); +
40 +
41 /// <summary> +
42 /// Meta class for the class containing the password hash specific properties +
43 /// </summary> +
44 TDECPasswordHashClass = class of TDECPasswordHash; +
45 +
46 /// <summary> +
47 /// Class containing all the KDF, MGF, HMAC and PBKDF2 algorithms +
48 /// </summary> +
49 TDECHashAuthentication = class(TDECHash) +
50 strict private +
51 /// <summary> +
52 /// Key deviation algorithm to derrive keys from other keys. +
53 /// IEEE P1363 Working Group, ISO 18033-2:2004 +
54 /// This is either KDF1 or KDF2 depending on KDFType +
55 /// </summary> +
56 /// <param name="Data"> +
57 /// Source data from which the new key shall be derrived. +
58 /// </param> +
59 /// <param name="DataSize"> +
60 /// Size in bytes of the source data passed. +
61 /// </param> +
62 /// <param name="Seed"> +
63 /// Start value for pseudo random number generator +
64 /// </param> +
65 /// <param name="SeedSize"> +
66 /// Size of the seed in byte. +
67 /// </param> +
68 /// <param name="MaskSize"> +
69 /// Size of the generated output in byte +
70 /// </param> +
71 /// <param name="KDFType"> +
72 /// Type of the algorithm: 1 = KDF1, 2 = KDF2 and 3 = KDF 3 +
73 /// </param> +
74 /// <returns> +
75 /// Returns the new derrived key. +
76 /// </returns> +
77 class function KDFInternal(const Data; DataSize: Integer; const Seed; +
78 SeedSize, MaskSize: Integer; +
79 KDFType: TKDFType): TBytes; inline; +
80 public +
81 /// <summary> +
82 /// Detects whether the given hash class is one particularily suited +
83 /// for storing hashes of passwords +
84 /// </summary> +
85 /// <returns> +
86 /// true if it's a hash class specifically designed to store password +
87 /// hashes, false for ordinary hash algorithms. +
88 /// </returns> +
89 class function IsPasswordHash: Boolean; override; +
90 +
91 // mask generation +
92 +
93 /// <summary> +
94 /// Mask generation: generates an output based on the data given which is +
95 /// similar to a hash function but in contrast does not have a fixed output +
96 /// length. Use of a MGF is desirable in cases where a fixed-size hash +
97 /// would be inadequate. Examples include generating padding, producing +
98 /// one time pads or keystreams in symmetric key encryption, and yielding +
99 /// outputs for pseudorandom number generators. +
100 /// Indexed Mask generation function, IEEE P1363 working group +
101 /// equal to KDF1 except without seed. RFC 2437 PKCS #1 +
102 /// </summary> +
103 /// <param name="Data"> +
104 /// Data from which to generate a mask from +
105 /// </param> +
106 /// <param name="DataSize"> +
107 /// Size of the input data in bytes +
108 /// </param> +
109 /// <param name="MaskSize"> +
110 /// Size of the returned mask in bytes +
111 /// </param> +
112 /// <returns> +
113 /// Mask such that one cannot determine the data which had been given to +
114 /// generate this mask from. +
115 /// </returns> +
116 class function MGF1(const Data; DataSize, MaskSize: Integer): TBytes; overload; +
117 /// <summary> +
118 /// Mask generation: generates an output based on the data given which is +
119 /// similar to a hash function but incontrast does not have a fixed output +
120 /// length. Use of a MGF is desirable in cases where a fixed-size hash +
121 /// would be inadequate. Examples include generating padding, producing +
122 /// one time pads or keystreams in symmetric key encryption, and yielding +
123 /// outputs for pseudorandom number generators +
124 /// </summary> +
125 /// <param name="Data"> +
126 /// Data from which to generate a mask from +
127 /// </param> +
128 /// <param name="MaskSize"> +
129 /// Size of the returned mask in bytes +
130 /// </param> +
131 /// <returns> +
132 /// Mask such that one cannot determine the data which had been given to +
133 /// generate this mask from. +
134 /// </returns> +
135 class function MGF1(const Data: TBytes; MaskSize: Integer): TBytes; overload; +
136 +
137 /// <summary> +
138 /// Key deviation algorithm to derrive keys from other keys. +
139 /// IEEE P1363 Working Group, ISO 18033-2:2004 +
140 /// </summary> +
141 /// <param name="Data"> +
142 /// Source data from which the new key shall be derrived. +
143 /// </param> +
144 /// <param name="DataSize"> +
145 /// Size in bytes of the source data passed. +
146 /// </param> +
147 /// <param name="Seed"> +
148 /// Salt value +
149 /// </param> +
150 /// <param name="SeedSize"> +
151 /// Size of the seed/salt in byte. +
152 /// </param> +
153 /// <param name="MaskSize"> +
154 /// Size of the generated output in byte +
155 /// </param> +
156 /// <returns> +
157 /// Returns the new derrived key with the length specified in MaskSize. +
158 /// </returns> +
159 /// <remarks> +
160 /// In earlier versions there was an optional format parameter. This has +
161 /// been removed as this is a base class. The method might not have +
162 /// returned a result with the MaskSize specified, as the formatting might +
163 /// have had to alter this. This would have been illogical. +
164 /// </remarks> +
165 class function KDF1(const Data; DataSize: Integer; const Seed; +
166 SeedSize, MaskSize: Integer): TBytes; overload; +
167 +
168 /// <summary> +
169 /// Key deviation algorithm to derrive keys from other keys. +
170 /// IEEE P1363 Working Group, ISO 18033-2:2004 +
171 /// </summary> +
172 /// <param name="Data"> +
173 /// Source data from which the new key shall be derrived. +
174 /// </param> +
175 /// <param name="Seed"> +
176 /// Salt value +
177 /// </param> +
178 /// <param name="MaskSize"> +
179 /// Size of the generated output in byte +
180 /// </param> +
181 /// <returns> +
182 /// Returns the new derrived key with the length specified in MaskSize. +
183 /// </returns> +
184 class function KDF1(const Data, Seed: TBytes; +
185 MaskSize: Integer): TBytes; overload; +
186 +
187 /// <summary> +
188 /// Key deviation algorithm to derrive keys from other keys. +
189 /// IEEE P1363 Working Group, ISO 18033-2:2004 +
190 /// </summary> +
191 /// <param name="Data"> +
192 /// Source data from which the new key shall be derrived. +
193 /// </param> +
194 /// <param name="DataSize"> +
195 /// Size in bytes of the source data passed. +
196 /// </param> +
197 /// <param name="Seed"> +
198 /// Salt value +
199 /// </param> +
200 /// <param name="SeedSize"> +
201 /// Size of the seed/salt in byte. +
202 /// </param> +
203 /// <param name="MaskSize"> +
204 /// Size of the generated output in byte +
205 /// </param> +
206 /// <returns> +
207 /// Returns the new derrived key with the length specified in MaskSize. +
208 /// </returns> +
209 /// <remarks> +
210 /// In earlier versions there was an optional format parameter. This has +
211 /// been removed as this is a base class. The method might not have +
212 /// returned a result with the MaskSize specified, as the formatting might +
213 /// have had to alter this. This would have been illogical. +
214 /// </remarks> +
215 class function KDF2(const Data; DataSize: Integer; const Seed; +
216 SeedSize, MaskSize: Integer): TBytes; overload; +
217 +
218 /// <summary> +
219 /// Key deviation algorithm to derrive keys from other keys. +
220 /// IEEE P1363 Working Group, ISO 18033-2:2004 +
221 /// </summary> +
222 /// <param name="Data"> +
223 /// Source data from which the new key shall be derrived. +
224 /// </param> +
225 /// <param name="Seed"> +
226 /// Start value for pseudo random number generator +
227 /// </param> +
228 /// <param name="MaskSize"> +
229 /// Size of the generated output in byte +
230 /// </param> +
231 /// <returns> +
232 /// Returns the new derrived key with the length specified in MaskSize. +
233 /// </returns> +
234 class function KDF2(const Data, Seed: TBytes; +
235 MaskSize: Integer): TBytes; overload; +
236 +
237 /// <summary> +
238 /// Key deviation algorithm to derrive keys from other keys. +
239 /// </summary> +
240 /// <param name="Data"> +
241 /// Source data from which the new key shall be derrived. +
242 /// </param> +
243 /// <param name="DataSize"> +
244 /// Size in bytes of the source data passed. +
245 /// </param> +
246 /// <param name="Seed"> +
247 /// Salt value +
248 /// </param> +
249 /// <param name="SeedSize"> +
250 /// Size of the seed/salt in byte. +
251 /// </param> +
252 /// <param name="MaskSize"> +
253 /// Size of the generated output in byte +
254 /// </param> +
255 /// <returns> +
256 /// Returns the new derrived key with the length specified in MaskSize. +
257 /// </returns> +
258 /// <remarks> +
259 /// In earlier versions there was an optional format parameter. This has +
260 /// been removed as this is a base class. The method might not have +
261 /// returned a result with the MaskSize specified, as the formatting might +
262 /// have had to alter this. This would have been illogical. +
263 /// </remarks> +
264 class function KDF3(const Data; DataSize: Integer; const Seed; +
265 SeedSize, MaskSize: Integer): TBytes; overload; +
266 +
267 /// <summary> +
268 /// Key deviation algorithm to derrive keys from other keys. +
269 /// </summary> +
270 /// <param name="Data"> +
271 /// Source data from which the new key shall be derrived. +
272 /// </param> +
273 /// <param name="Seed"> +
274 /// Salt value +
275 /// </param> +
276 /// <param name="MaskSize"> +
277 /// Size of the generated output in byte +
278 /// </param> +
279 /// <returns> +
280 /// Returns the new derrived key with the length specified in MaskSize. +
281 /// </returns> +
282 class function KDF3(const Data, Seed: TBytes; +
283 MaskSize: Integer): TBytes; overload; +
284 +
285 // DEC's own KDF + MGF +
286 +
287 /// <summary> +
288 /// Key deviation algorithm to derrive keys from other keys. The alrorithm +
289 /// implemented by this method does not follow any official standard. +
290 /// </summary> +
291 /// <param name="Data"> +
292 /// Source data from which the new key shall be derrived. +
293 /// </param> +
294 /// <param name="DataSize"> +
295 /// Size in bytes of the source data passed. +
296 /// </param> +
297 /// <param name="Seed"> +
298 /// Salt value +
299 /// </param> +
300 /// <param name="SeedSize"> +
301 /// Size of the seed/salt in byte. +
302 /// </param> +
303 /// <param name="MaskSize"> +
304 /// Size of the generated output in byte +
305 /// </param> +
306 /// <param name="Index"> +
307 /// Optional parameter: can be used to specify a different default value +
308 /// for the index variable used in the algorithm. +
309 /// </param> +
310 /// <returns> +
311 /// Returns the new derrived key with the length specified in MaskSize. +
312 /// </returns> +
313 class function KDFx(const Data; DataSize: Integer; const Seed; +
314 SeedSize, MaskSize: Integer; +
315 Index: UInt32 = 1): TBytes; overload; +
316 /// <summary> +
317 /// Key deviation algorithm to derrive keys from other keys. +
318 /// </summary> +
319 /// <remarks> +
320 /// This variant of the algorithm does not follow an official standard. +
321 /// It has been created by the original author of DEC. +
322 /// </remarks> +
323 /// <param name="Data"> +
324 /// Source data from which the new key shall be derrived. +
325 /// </param> +
326 /// <param name="Seed"> +
327 /// Salt value +
328 /// </param> +
329 /// <param name="MaskSize"> +
330 /// Size of the generated output in byte +
331 /// </param> +
332 /// <param name="Index"> +
333 /// Optional parameter: can be used to specify a different default value +
334 /// for the index variable used in the algorithm. +
335 /// </param> +
336 /// <returns> +
337 /// Returns the new derrived key with the length specified in MaskSize. +
338 /// </returns> +
339 class function KDFx(const Data, Seed: TBytes; MaskSize: Integer; +
340 Index: UInt32 = 1): TBytes; overload; +
341 +
342 /// <summary> +
343 /// Mask generation: generates an output based on the data given which is +
344 /// similar to a hash function but incontrast does not have a fixed output +
345 /// length. Use of a MGF is desirable in cases where a fixed-size hash +
346 /// would be inadequate. Examples include generating padding, producing +
347 /// one time pads or keystreams in symmetric key encryption, and yielding +
348 /// outputs for pseudorandom number generators. +
349 /// </summary> +
350 /// <remarks> +
351 /// This variant of the algorithm does not follow an official standard. +
352 /// It has been created by the original author of DEC. +
353 /// </remarks> +
354 /// <param name="Data"> +
355 /// Data from which to generate a mask from +
356 /// </param> +
357 /// <param name="DataSize"> +
358 /// Size of the passed data in bytes +
359 /// </param> +
360 /// <param name="MaskSize"> +
361 /// Size of the returned mask in bytes +
362 /// </param> +
363 /// <param name="Index"> +
364 /// Looks like this is a salt applied to each byte of output data? +
365{ TODO : Clarify this parameter } +
366 /// </param> +
367 /// <returns> +
368 /// Mask such that one cannot determine the data which had been given to +
369 /// generate this mask from. +
370 /// </returns> +
371 class function MGFx(const Data; DataSize, MaskSize: Integer; +
372 Index: UInt32 = 1): TBytes; overload; +
373 /// <summary> +
374 /// Mask generation: generates an output based on the data given which is +
375 /// similar to a hash function but incontrast does not have a fixed output +
376 /// length. Use of a MGF is desirable in cases where a fixed-size hash +
377 /// would be inadequate. Examples include generating padding, producing +
378 /// one time pads or keystreams in symmetric key encryption, and yielding +
379 /// outputs for pseudorandom number generators. +
380 /// </summary> +
381 /// <remarks> +
382 /// This variant of the algorithm does not follow an official standard. +
383 /// It has been created by the original author of DEC. +
384 /// </remarks> +
385 /// <param name="Data"> +
386 /// Data from which to generate a mask from +
387 /// </param> +
388 /// <param name="MaskSize"> +
389 /// Size of the returned mask in bytes +
390 /// </param> +
391 /// <param name="Index"> +
392 /// Looks like this is a salt applied to each byte of output data? +
393{ TODO : Clarify this parameter } +
394 /// </param> +
395 /// <returns> +
396 /// Mask such that one cannot determine the data which had been given to +
397 /// generate this mask from. +
398 /// </returns> +
399 class function MGFx(const Data: TBytes; MaskSize: Integer; +
400 Index: UInt32 = 1): TBytes; overload; +
401 +
402 /// <summary> +
403 /// HMAC according to rfc2202: hash message authentication code allow to +
404 /// verify both the data integrity and the authenticity of a message. +
405 /// </summary> +
406 /// <param name="Key"> +
407 /// This is the secret key which shall not be transmitted over the line. +
408 /// The sender uses this key to create the resulting HMAC, transmits the +
409 /// text and the HMAC over the line and the receiver recalculates the HMAC +
410 /// based on his copy of the secret key. If his calculated HMAC equals the +
411 /// transfered HMAC value the message has not been tampered. +
412 /// </param> +
413 /// <param name="Text"> +
414 /// Text over which to calculate the HMAC +
415 /// </param> +
416 /// <returns> +
417 /// Calculated HMAC +
418 /// </returns> +
419 class function HMAC(const Key, Text: TBytes): TBytes; overload; +
420 +
421 /// <summary> +
422 /// HMAC according to rfc2202: hash message authentication code allow to +
423 /// verify both the data integrity and the authenticity of a message. +
424 /// </summary> +
425 /// <param name="Key"> +
426 /// This is the secret key which shall not be transmitted over the line. +
427 /// The sender uses this key to create the resulting HMAC, transmits the +
428 /// text and the HMAC over the line and the receiver recalculates the HMAC +
429 /// based on his copy of the secret key. If his calculated HMAC equals the +
430 /// transfered HMAC value the message has not been tampered. +
431 /// </param> +
432 /// <param name="Text"> +
433 /// Text over which to calculate the HMAC +
434 /// </param> +
435 /// <returns> +
436 /// Calculated HMAC +
437 /// </returns> +
438 class function HMAC(const Key, Text: RawByteString): TBytes; overload; +
439 +
440 /// <summary> +
441 /// Password based key deviation function 2 +
442 /// RFC 2898, PKCS #5. +
443 /// This can be used to create a login sheme by storing the output, +
444 /// number of iterations and the salt. When the user enters a password +
445 /// this calculation is done using the same parameters as stored for his +
446 /// user account and comparing the output. +
447 /// </summary> +
448 /// <param name="Password"> +
449 /// Password to create the deviation from +
450 /// </param> +
451 /// <param name="Salt"> +
452 /// Salt used to modify the password +
453 /// </param> +
454 /// <param name="Iterations"> +
455 /// Number of iterations to perform +
456 /// </param> +
457 /// <param name="KeyLength"> +
458 /// Length of the resulting key in byte +
459 /// </param> +
460 class function PBKDF2(const Password, Salt: TBytes; Iterations: Integer; +
461 KeyLength: Integer): TBytes; overload; +
462 +
463 /// <summary> +
464 /// Password based key deviation function 2 +
465 /// RFC 2898, PKCS #5. +
466 /// This can be used to create a login sheme by storing the output, +
467 /// number of iterations and the salt. When the user enters a password +
468 /// this calculation is done using the same parameters as stored for his +
469 /// user account and comparing the output. +
470 /// </summary> +
471 /// <param name="Password"> +
472 /// Password to create the deviation from +
473 /// </param> +
474 /// <param name="Salt"> +
475 /// Salt used to modify the password +
476 /// </param> +
477 /// <param name="Iterations"> +
478 /// Number of iterations to perform +
479 /// </param> +
480 /// <param name="KeyLength"> +
481 /// Length of the resulting key in byte +
482 /// </param> +
483 class function PBKDF2(const Password, Salt: RawByteString; +
484 Iterations: Integer; +
485 KeyLength: Integer): TBytes; overload; +
486 end; +
487 +
488 /// <summary> +
489 /// Adds methods which shall not be found in the specialized password hash +
490 /// classes. Mainly the CalcStreamXXX and CalcFileXXX ones. They shall not +
491 /// be contained there as those password hashes usually restrict the maximum +
492 /// length of the data which can be hashed. +
493 /// </summary> +
494 TDECHashExtended = class(TDECHashAuthentication, IDECHashExtended) +
495 /// <summary> +
496 /// Calculates the hash value over a given stream of bytes +
497 /// </summary> +
498 /// <param name="Stream"> +
499 /// Memory or file stream over which the hash value shall be calculated. +
500 /// The stream must be assigned. The hash value will always be calculated +
501 /// from the current position of the stream. +
502 /// </param> +
503 /// <param name="Size"> +
504 /// Number of bytes within the stream over which to calculate the hash value +
505 /// </param> +
506 /// <param name="HashResult"> +
507 /// In this byte array the calculated hash value will be returned +
508 /// </param> +
509 /// <param name="OnProgress"> +
510 /// Optional callback routine. It can be used to display the progress of +
511 /// the operation. +
512 /// </param> +
513 procedure CalcStream(const Stream: TStream; Size: Int64; var HashResult: TBytes; +
514 const OnProgress:TDECProgressEvent = nil); overload; +
515 /// <summary> +
516 /// Calculates the hash value over a givens stream of bytes +
517 /// </summary> +
518 /// <param name="Stream"> +
519 /// Memory or file stream over which the hash value shall be calculated. +
520 /// The stream must be assigned. The hash value will always be calculated +
521 /// from the current position of the stream. +
522 /// </param> +
523 /// <param name="Size"> +
524 /// Number of bytes within the stream over which to calculate the hash value +
525 /// </param> +
526 /// <param name="Format"> +
527 /// Optional formatting class. The formatting of that will be applied to +
528 /// the returned hash value. +
529 /// </param> +
530 /// <param name="OnProgress"> +
531 /// Optional callback routine. It can be used to display the progress of +
532 /// the operation. +
533 /// </param> +
534 /// <returns> +
535 /// Hash value over the bytes in the stream, formatted with the formatting +
536 /// passed as format parameter, if used. +
537 /// </returns> +
538 function CalcStream(const Stream: TStream; Size: Int64; Format: TDECFormatClass = nil; +
539 const OnProgress:TDECProgressEvent = nil): RawByteString; overload; +
540 +
541 /// <summary> +
542 /// Calculates the hash value over a given stream of bytes. The calculated +
543 /// hash value can be retrieved with one of the DigestAsXXX methods. +
544 /// </summary> +
545 /// <param name="Stream"> +
546 /// Memory or file stream over which the hash value shall be calculated. +
547 /// The stream must be assigned. The hash value will always be calculated +
548 /// from the current position of the stream. +
549 /// </param> +
550 /// <param name="Size"> +
551 /// Number of bytes within the stream over which to calculate the hash value +
552 /// </param> +
553 /// <param name="OnProgress"> +
554 /// Optional callback routine. It can be used to display the progress of +
555 /// the operation. +
556 /// </param> +
557 /// <param name="DoFinalize"> +
558 /// Optinal parameter: if true this call is the last one and the +
559 /// finalization of the hash calculation, including calling done, will be +
560 /// carried out in this method call as well. +
561 /// </param> +
562 /// <remarks> +
563 /// Before calling this method for the first time after creation of the +
564 /// hash instance or after calling Done Init needs to be called. +
565 /// After calling this method Done needs to be called and in case of +
566 /// algorithms (like SHA3) with a message size in bits and not whole bytes +
567 /// the contents of the last byte needs to be assigned to PaddingByte before +
568 /// calling Done! +
569 /// </remarks> +
570 procedure CalcStream(const Stream: TStream; Size: Int64; +
571 const OnProgress:TDECProgressEvent = nil; +
572 DoFinalize: Boolean = false); overload; +
573 +
574 /// <summary> +
575 /// Calculates the hash value over the contents of a given file +
576 /// </summary> +
577 /// <param name="FileName"> +
578 /// Path and name of the file to be processed +
579 /// </param> +
580 /// <param name="HashResult"> +
581 /// Here the resulting hash value is being returned as byte array +
582 /// </param> +
583 /// <param name="OnProgress"> +
584 /// Optional callback. If being used the hash calculation will call it from +
585 /// time to time to return the current progress of the operation +
586 /// </param> +
587 procedure CalcFile(const FileName: string; var HashResult: TBytes; +
588 const OnProgress:TDECProgressEvent = nil); overload; +
589 /// <summary> +
590 /// Calculates the hash value over the contents of a given file +
591 /// </summary> +
592 /// <param name="FileName"> +
593 /// Path and name of the file to be processed +
594 /// </param> +
595 /// <param name="Format"> +
596 /// Optional parameter: Formatting class. If being used the formatting is +
597 /// being applied to the returned string with the calculated hash value +
598 /// </param> +
599 /// <param name="OnProgress"> +
600 /// Optional callback. If being used the hash calculation will call it from +
601 /// time to time to return the current progress of the operation +
602 /// </param> +
603 /// <returns> +
604 /// Calculated hash value as RawByteString. +
605 /// </returns> +
606 /// <remarks> +
607 /// We recommend to use a formatting which results in 7 bit ASCII chars +
608 /// being returned, otherwise the conversion into the RawByteString might +
609 /// result in strange characters in the returned result. +
610 /// </remarks> +
611 function CalcFile(const FileName: string; Format: TDECFormatClass = nil; +
612 const OnProgress:TDECProgressEvent = nil): RawByteString; overload; +
613 end; +
614 +
615 /// <summary> +
616 /// All hash classes with hash algorithms specially developed for password +
617 /// hashing should inherit from this class in order to be able to distinguish +
618 /// those from normal hash algorithms not really meant to be used for password +
619 /// hashing. +
620 /// </summary> +
621 TDECPasswordHash = class(TDECHashAuthentication, IDECHashPassword) +
622 strict private +
623 /// <summary> +
624 /// Sets the salt value given. Throws an EDECHashException if a salt is +
625 /// passed which is longer than MaxSaltLength. +
626 /// </summary> +
627 /// <exception cref="EDECHashException"> +
628 /// Exception raised if length of <c>Value</c> is not in the range of +
629 /// <c>MinSaltLength</c> and <c>MaxSaltLength</c> +
630 /// </exception> +
631 procedure SetSalt(const Value: TBytes); +
632 /// <summary> +
633 /// Returns the defined salt value +
634 /// </summary> +
635 function GetSalt: TBytes; +
636 strict protected +
637 /// <summary> +
638 /// Most, if not all password hashing algorithms (like bcrypt) have a salt +
639 /// parameter to modify the entered password value. +
640 /// </summary> +
641 FSalt : TBytes; +
642 +
643 /// <summary> +
644 /// Overwrite the salt value +
645 /// </summary> +
646 procedure DoDone; override; +
647 +
648 {$Region CryptFormatHandling} +
649 /// <summary> +
650 /// Returns the ID code for Crypt/BSD like storing of passwords. The ID +
651 /// has to start with the $ at the beginning and does not contain a +
652 /// trailing $. +
653 /// </summary> +
654 /// <returns> +
655 /// If the algorithm on which this is being used is a Crypt/BSD compatible +
656 /// password hash algorithm the ID is returned otherwise an empty string. +
657 /// </returns> +
658 class function GetCryptID:string; virtual; +
659 +
660 /// <summary> +
661 /// Returns the parameters required for the crypt-like password storing +
662 /// in that format. +
663 /// </summary> +
664 /// <param name="Params"> +
665 /// Algorithm specific parameters used for initialization. For details see +
666 /// documentation of the concrete implementation in the algorithm. +
667 /// </param> +
668 /// <param name="Format"> +
669 /// Format class for formatting the output +
670 /// </param> +
671 /// <returns> +
672 /// Returns an empty string if the the algorithm on which this is being +
673 /// used is not a Crypt/BSD compatible password hash algorithm +
674 /// </returns> +
675 function GetCryptParams(const Params : string; +
676 Format : TDECFormatClass):string; virtual; +
677 /// <summary> +
678 /// Returns the salt required for the crypt-like password storing +
679 /// in that format. +
680 /// </summary> +
681 /// <param name="Salt"> +
682 /// The raw salt value +
683 /// </param> +
684 /// <param name="Format"> +
685 /// Format class for formatting the output +
686 /// </param> +
687 function GetCryptSalt(const Salt : TBytes; +
688 Format : TDECFormatClass):string; virtual; +
689 /// <summary> +
690 /// Returns the hash required for the crypt-like password storing +
691 /// in that format. If a salt etc. is needed that needs to be scepcified +
692 /// before calling this method. +
693 /// </summary> +
694 /// <param name="Password"> +
695 /// Password entered which shall be hashed. +
696 /// </param> +
697 /// <param name="Params"> +
698 /// Algorithm specific parameters used for initialization. For details see +
699 /// documentation of the concrete implementation in the algorithm. +
700 /// </param> +
701 /// <param name="Salt"> +
702 /// Salt value used by the password hash calculation. Depending on the +
703 /// value of SaltIsRaw, the salt needs to specified in raw encoding or +
704 /// in the encoding used in the Crypt/BSD password storage string. +
705 /// </param> +
706 /// <param name="Salt"> +
707 /// Salt value used by the password hash calculation in binary raw format, +
708 /// means not Radix64 encoded or so. +
709 /// </param> +
710 /// <param name="Format"> +
711 /// Format class for formatting the output +
712 /// </param> +
713 /// <returns> +
714 /// Returns an empty string if the the algorithm on which this is being +
715 /// used is not a Crypt/BSD compatible password hash algorithm. +
716 /// </returns> +
717 function GetCryptHash(Password : TBytes; +
718 const Params : string; +
719 const Salt : TBytes; +
720 Format : TDECFormatClass):string; virtual; +
721 {$EndRegion} +
722 public +
723 /// <summary> +
724 /// Returns the maximum length of a salt value given for the algorithm +
725 /// in byte +
726 /// </summary> +
727 function MaxSaltLength:UInt8; virtual; abstract; +
728 /// <summary> +
729 /// Returns the minimum length of a salt value given for the algorithm +
730 /// in byte +
731 /// </summary> +
732 function MinSaltLength:UInt8; virtual; abstract; +
733 /// <summary> +
734 /// Returns the maximum length of a user supplied password given for the +
735 /// algorithm in byte +
736 /// </summary> +
737 class function MaxPasswordLength:UInt8; virtual; abstract; +
738 +
739 {$Region CryptBSDFormatHandlingPublic} +
740 /// <summary> +
741 /// Tries to find a class type by its Crypt identification +
742 /// (e.g. 2a is Bcrypt). +
743 /// </summary> +
744 /// <param name="Identity"> +
745 /// Identity to look for, with or without the starting $ delimiter sign. +
746 /// </param> +
747 /// <returns> +
748 /// Returns the class type of the class with the specified identity value +
749 /// or throws an EDECClassNotRegisteredException exception if no class +
750 /// with the given Crypt identity has been found +
751 /// </returns> +
752 /// <exception cref="EDECClassNotRegisteredException"> +
753 /// Exception raised if the class specified by <c>Identity</c> is not found +
754 /// </exception> +
755 class function ClassByCryptIdentity(Identity: string): TDECPasswordHashClass; +
756 +
757 /// <summary> +
758 /// Calculates a passwort hash for the given password and returns it in +
759 /// a BSDCrypt compatible format. This method only works for those hash +
760 /// algorithms implementing the necessary GetBSDCryptID method. +
761 /// </summary> +
762 /// <param name="Password"> +
763 /// Entered password for which to calculate the hash. The caller is +
764 /// responsible to ensure the maximum password length is adhered to. +
765 /// Any exceptions raised due to too long passwords are not caught here! +
766 /// </param> +
767 /// <param name="Params"> +
768 /// Algorithm specific parameters used for initialization. For details see +
769 /// documentation of the concrete implementation in the algorithm. +
770 /// </param> +
771 /// <param name="Salt"> +
772 /// Salt value used by the password hash calculation. Depending on the +
773 /// value of SaltIsRaw, the salt needs to specified in raw encoding or +
774 /// in the encoding used in the Crypt/BSD password storage string. +
775 /// </param> +
776 /// <param name="SaltIsRaw"> +
777 /// If true the passed salt value is a raw value. If false it is encoded +
778 /// like in the Crypt/BSD password storage string. +
779 /// </param> +
780 /// <param name="Format"> +
781 /// Formatting class used to format the calculated password. Different +
782 /// algorithms in BSDCrypt use different algorithms so one needs to know +
783 /// which one to pass. See description of the hash class used. +
784 /// </param> +
785 /// <returns> +
786 /// Calculated hash value in BSD crypt style format. Returns an empty +
787 /// string if the algorithm is not a Crypt/BSD style password hash algorithm. +
788 /// </returns> +
789 /// <exception cref="EDECHashException"> +
790 /// Exception raised if length of <c>Password</c> is higher than +
791 /// <c>MaxPasswordLength</c> or if a salt with a different length than +
792 /// 128 bit has been specified. +
793 /// </exception> +
794 function GetDigestInCryptFormat(const Password : string; +
795 const Params : string; +
796 const Salt : string; +
797 SaltIsRaw : Boolean; +
798 Format : TDECFormatClass):string; overload; +
799 +
800 /// <summary> +
801 /// Calculates a passwort hash for the given password and returns it in +
802 /// a BSDCrypt compatible format. This method only works for those hash +
803 /// algorithms implementing the necessary GetBSDCryptID method. +
804 /// </summary> +
805 /// <param name="Password"> +
806 /// Entered password for which to calculate the hash. The caller is +
807 /// responsible to ensure the maximum password length is adhered to. +
808 /// Any exceptions raised due to too long passwords are not caught here! +
809 /// </param> +
810 /// <param name="Params"> +
811 /// Algorithm specific parameters used for initialization. For details see +
812 /// documentation of the concrete implementation in the algorithm. +
813 /// </param> +
814 /// <param name="Salt"> +
815 /// Salt value used by the password hash calculation. Depending on the +
816 /// value of SaltIsRaw, the salt needs to specified in raw encoding or +
817 /// in the encoding used in the Crypt/BSD password storage string. +
818 /// </param> +
819 /// <param name="SaltIsRaw"> +
820 /// If true the passed salt value is a raw value. If false it is encoded +
821 /// like in the Crypt/BSD password storage string. +
822 /// </param> +
823 /// <param name="Format"> +
824 /// Formatting class used to format the calculated password. Different +
825 /// algorithms in BSDCrypt use different algorithms so one needs to know +
826 /// which one to pass. See description of the hash class used. +
827 /// </param> +
828 /// <returns> +
829 /// Calculated hash value in BSD crypt style format. Returns an empty +
830 /// string if the algorithm is not a Crypt/BSD style password hash algorithm. +
831 /// </returns> +
832 /// <exception cref="EDECHashException"> +
833 /// Exception raised if length of <c>Password</c> is higher than +
834 /// <c>MaxPasswordLength</c> or if a salt with a different length than +
835 /// 128 bit has been specified. +
836 /// </exception> +
837 function GetDigestInCryptFormat(Password : TBytes; +
838 const Params : string; +
839 const Salt : string; +
840 SaltIsRaw : Boolean; +
841 Format : TDECFormatClass):string; overload; virtual; +
842 +
843 /// <summary> +
844 /// Checks whether a given password is the correct one for a password +
845 /// storage "record"/entry in Crypt/BSD format. +
846 /// </summary> +
847 /// <param name="Password"> +
848 /// Password to check for validity +
849 /// </param> +
850 /// <param name="CryptData"> +
851 /// The data needed to "compare" the password against in Crypt/BSD like +
852 /// format: $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]] +
853 /// The exact format depends on the algorithm used. +
854 /// </param> +
855 /// <param name="Format"> +
856 /// Must be the right type for the Crypt/BSD encoding used by the +
857 /// algorithm used. This was implemented this way to avoid making the +
858 /// DECHashAuthentication unit dependant on the DECFormat unit not needed +
859 /// otherwise. +
860 /// </param> +
861 /// <returns> +
862 /// True if the password given is correct. +
863 /// </returns> +
864 function IsValidPassword(const Password : string; +
865 const CryptData : string; +
866 Format : TDECFormatClass): Boolean; overload; +
867 +
868 /// <summary> +
869 /// Checks whether a given password is the correct one for a password +
870 /// storage "record"/entry in Crypt/BSD format. +
871 /// </summary> +
872 /// <param name="Password"> +
873 /// Password to check for validity +
874 /// </param> +
875 /// <param name="CryptData"> +
876 /// The data needed to "compare" the password against in Crypt/BSD like +
877 /// format: $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]] +
878 /// The exact format depends on the algorithm used. +
879 /// </param> +
880 /// <param name="Format"> +
881 /// Must be the right type for the Crypt/BSD encoding used by the +
882 /// algorithm used. This was implemented this way to avoid making the +
883 /// DECHashAuthentication unit dependant on the DECFormat unit not needed +
884 /// otherwise. +
885 /// </param> +
886 /// <returns> +
887 /// True if the password given is correct. +
888 /// </returns> +
889 function IsValidPassword(Password : TBytes; +
890 const CryptData : string; +
891 Format : TDECFormatClass): Boolean; overload; virtual; +
892 {$EndRegion} +
893 +
894 /// <summary> +
895 /// Defines the salt value used. Throws an EDECHashException if a salt is +
896 /// passed which is longer than MaxSaltLength. The salt has to be passed +
897 /// in binary form. Any Base64 encoded salt needs to be decoded before +
898 /// passing. +
899 /// </summary> +
900 /// <exception cref="EDECHashException"> +
901 /// Exception raised if the length of the value assigned is not in the +
902 /// range of <c>MinSaltLength</c> and <c>MaxSaltLength</c> +
903 /// </exception> +
904 property Salt: TBytes +
905 read GetSalt +
906 write SetSalt; +
907 end; +
908 +
909 {$IF CompilerVersion < 28.0} +
910 /// <summary> +
911 /// Class helper for implementing array concatenation which is not available +
912 /// in Delphi XE6 or lower. +
913 /// </summary> +
914 /// <remarks> +
915 /// Shall be removed as soon as the minimum supported version is XE7 or higher. +
916 /// </remarks> +
917 TArrHelper = class +
918 class procedure AppendArrays<T>(var A: TArray<T>; const B: TArray<T>); +
919 end; +
920 {$IFEND} +
921 +
922 /// <summary> +
923 /// Meta class for the class containing the authentication methods +
924 /// </summary> +
925 TDECHashAuthenticationClass = class of TDECHashAuthentication; +
926 /// <summary> +
927 /// Meta class for the class containing the additional calculation methods +
928 /// </summary> +
929 TDECHashExtendedClass = class of TDECHashExtended; +
930 +
931implementation +
932 +
933uses +
934 DECUtil; +
935 +
936resourcestring +
937 /// <summary> +
938 /// Exception message when specifying a salt value longer than allowed +
939 /// </summary> +
940 sSaltValueTooLong = 'Maximum allowed salt length (%0:d byte) exceeded'; +
941 /// <summary> +
942 /// Exception message when specifying a salt value shorter than allowed +
943 /// </summary> +
944 sSaltValueTooShort = 'Minumum allowed salt length (%0:d byte) exceeded'; +
945 /// <summary> +
946 /// No class for the given crypt ID has been registered, so that ID is +
947 /// not supported. +
948 /// </summary> +
949 sCryptIDNotRegistered = 'No class for crypt ID %s registered'; +
950 +
951class function TDECHashAuthentication.IsPasswordHash: Boolean; +
952begin +
953 Result := self.InheritsFrom(TDECPasswordHash); +
954end; +
955 +
956class function TDECHashAuthentication.KDFInternal(const Data; DataSize: Integer; const Seed; +
957 SeedSize, MaskSize: Integer; KDFType: TKDFType): TBytes; +
958var +
959 I, n, +
960 Rounds, DigestBytes : Integer; +
961 Dest : PByteArray; +
962 Count : UInt32; +
963 HashInstance : TDECHashAuthentication; +
964begin +
965 SetLength(Result, 0); +
966 DigestBytes := DigestSize; +
967 Assert(MaskSize >= 0); +
968 Assert(DataSize >= 0); +
969 Assert(SeedSize >= 0); +
970 Assert(DigestBytes >= 0); +
971 +
972 HashInstance := TDECHashAuthenticationClass(self).Create; +
973 try +
974 Rounds := (MaskSize + DigestBytes - 1) div DigestBytes; +
975 SetLength(Result, Rounds * DigestBytes); +
976 Dest := @Result[0]; +
977 +
978 +
979 if (KDFType = ktKDF2) then +
980 n := 1 +
981 else +
982 n := 0; +
983 +
984 for I := 0 to Rounds-1 do +
985 begin +
986 Count := SwapUInt32(n); +
987 HashInstance.Init; +
988 +
989 if (KDFType = ktKDF3) then +
990 begin +
991 HashInstance.Calc(Count, SizeOf(Count)); +
992 HashInstance.Calc(Data, DataSize); +
993 end +
994 else +
995 begin +
996 HashInstance.Calc(Data, DataSize); +
997 HashInstance.Calc(Count, SizeOf(Count)); +
998 end; +
999 +
1000 HashInstance.Calc(Seed, SeedSize); +
1001 HashInstance.Done; +
1002 Move(HashInstance.Digest[0], Dest[(I) * DigestBytes], DigestBytes); +
1003 +
1004 inc(n); +
1005 end; +
1006 +
1007 SetLength(Result, MaskSize); +
1008 finally +
1009 HashInstance.Free; +
1010 end; +
1011end; +
1012 +
1013class function TDECHashAuthentication.MGF1(const Data; DataSize, MaskSize: Integer): TBytes; +
1014begin +
1015 Result := KDF1(Data, DataSize, NullStr, 0, MaskSize); +
1016end; +
1017 +
1018class function TDECHashAuthentication.MGF1(const Data: TBytes; MaskSize: Integer): TBytes; +
1019begin +
1020 Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF1); +
1021end; +
1022 +
1023class function TDECHashAuthentication.KDF1(const Data; DataSize: Integer; const Seed; +
1024 SeedSize, MaskSize: Integer): TBytes; +
1025begin +
1026 Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF1); +
1027end; +
1028 +
1029class function TDECHashAuthentication.KDF1(const Data, Seed: TBytes; +
1030 MaskSize: Integer): TBytes; +
1031begin +
1032 if (length(Seed) > 0) then +
1033 Result := KDFInternal(Data[0], length(Data), Seed[0], length(Seed), MaskSize, ktKDF1) +
1034 else +
1035 Result := KDFInternal(Data[0], length(Data), NullStr, 0, MaskSize, ktKDF1); +
1036end; +
1037 +
1038class function TDECHashAuthentication.KDF2(const Data; DataSize: Integer; const Seed; +
1039 SeedSize, MaskSize: Integer): TBytes; +
1040begin +
1041 Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF2); +
1042end; +
1043 +
1044class function TDECHashAuthentication.KDF2(const Data, Seed: TBytes; +
1045 MaskSize: Integer): TBytes; +
1046begin +
1047 if (length(Seed) > 0) then +
1048 Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF2) +
1049 else +
1050 Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF2); +
1051end; +
1052 +
1053class function TDECHashAuthentication.KDF3(const Data; DataSize: Integer; +
1054 const Seed; SeedSize, MaskSize: Integer): TBytes; +
1055begin +
1056 Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF3); +
1057end; +
1058 +
1059class function TDECHashAuthentication.KDF3(const Data, Seed: TBytes; +
1060 MaskSize: Integer): TBytes; +
1061begin +
1062 if (length(Seed) > 0) then +
1063 Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF3) +
1064 else +
1065 Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF3); +
1066end; +
1067 +
1068class function TDECHashAuthentication.KDFx(const Data; DataSize: Integer; +
1069 const Seed; SeedSize, MaskSize: Integer; +
1070 Index: UInt32 = 1): TBytes; +
1071// DEC's own KDF, even stronger +
1072var +
1073 I, J : Integer; +
1074 Count : UInt32; +
1075 R : Byte; +
1076 HashInstance : TDECHashAuthentication; +
1077begin +
1078 Assert(MaskSize >= 0); +
1079 Assert(DataSize >= 0); +
1080 Assert(SeedSize >= 0); +
1081 Assert(DigestSize > 0); +
1082 +
1083 SetLength(Result, MaskSize); +
1084 Index := SwapUInt32(Index); +
1085 +
1086 HashInstance := TDECHashAuthenticationClass(self).Create; +
1087 try +
1088 for I := 0 to MaskSize - 1 do +
1089 begin +
1090 HashInstance.Init; +
1091 +
1092 Count := SwapUInt32(I); +
1093 HashInstance.Calc(Count, SizeOf(Count)); +
1094 HashInstance.Calc(Result[0], I); +
1095 +
1096 HashInstance.Calc(Index, SizeOf(Index)); +
1097 +
1098 Count := SwapUInt32(SeedSize); +
1099 HashInstance.Calc(Count, SizeOf(Count)); +
1100 HashInstance.Calc(Seed, SeedSize); +
1101 +
1102 Count := SwapUInt32(DataSize); +
1103 HashInstance.Calc(Count, SizeOf(Count)); +
1104 HashInstance.Calc(Data, DataSize); +
1105 +
1106 HashInstance.Done; +
1107 +
1108 R := 0; +
1109 +
1110 for J := 0 to DigestSize - 1 do +
1111 R := R xor HashInstance.Digest[J]; +
1112 +
1113 Result[I] := R; +
1114 end; +
1115 finally +
1116 HashInstance.Free; +
1117 end; +
1118end; +
1119 +
1120class function TDECHashAuthentication.KDFx(const Data, Seed: TBytes; +
1121 MaskSize: Integer; +
1122 Index: UInt32 = 1): TBytes; +
1123begin +
1124 if (length(Seed) > 0) then +
1125 Result := KDFx(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, Index) +
1126 else +
1127 Result := KDFx(Data[0], Length(Data), NullStr, Length(Seed), MaskSize, Index) +
1128end; +
1129 +
1130class function TDECHashAuthentication.MGFx(const Data; DataSize, MaskSize: Integer; +
1131 Index: UInt32 = 1): TBytes; +
1132begin +
1133 Result := KDFx(Data, DataSize, NullStr, 0, MaskSize, Index); +
1134end; +
1135 +
1136class function TDECHashAuthentication.MGFx(const Data: TBytes; +
1137 MaskSize: Integer; +
1138 Index: UInt32 = 1): TBytes; +
1139begin +
1140 Result := KDFx(Data[0], Length(Data), NullStr, 0, MaskSize, Index); +
1141end; +
1142 +
1143class function TDECHashAuthentication.HMAC(const Key, Text: RawByteString): TBytes; +
1144begin +
1145 result := HMAC(BytesOf(Key), BytesOf(Text)); +
1146end; +
1147 +
1148class function TDECHashAuthentication.HMAC(const Key, Text: TBytes): TBytes; +
1149const +
1150 CONST_UINT_OF_0x36 = $3636363636363636; +
1151 CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C; +
1152var +
1153 HashInstance: TDECHashAuthentication; +
1154 InnerKeyPad, OuterKeyPad: array of Byte; +
1155 I, KeyLength, BlockSize, DigestLength: Integer; +
1156begin +
1157 HashInstance := TDECHashAuthenticationClass(self).Create; +
1158 try +
1159 BlockSize := HashInstance.BlockSize; // 64 for sha1, ... +
1160 DigestLength := HashInstance.DigestSize; +
1161 KeyLength := Length(Key); +
1162 +
1163 SetLength(InnerKeyPad, BlockSize); +
1164 SetLength(OuterKeyPad, BlockSize); +
1165 +
1166 I := 0; +
1167 +
1168 if KeyLength > BlockSize then +
1169 begin +
1170 Result := HashInstance.CalcBytes(Key); +
1171 KeyLength := DigestLength; +
1172 end +
1173 else +
1174 Result := Key; +
1175 +
1176 while I <= KeyLength - SizeOf(NativeUInt) do +
1177 begin +
1178 PNativeUInt(@InnerKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x36); +
1179 PNativeUInt(@OuterKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x5C); +
1180 Inc(I, SizeOf(NativeUInt)); +
1181 end; +
1182 +
1183 while I < KeyLength do +
1184 begin +
1185 InnerKeyPad[I] := Result[I] xor $36; +
1186 OuterKeyPad[I] := Result[I] xor $5C; +
1187 Inc(I); +
1188 end; +
1189 +
1190 while I <= BlockSize - SizeOf(NativeUInt) do +
1191 begin +
1192 PNativeUInt(@InnerKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x36); +
1193 PNativeUInt(@OuterKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x5C); +
1194 Inc(I, SizeOf(NativeUInt)); +
1195 end; +
1196 +
1197 while I < BlockSize do +
1198 begin +
1199 InnerKeyPad[I] := $36; +
1200 OuterKeyPad[I] := $5C; +
1201 Inc(I); +
1202 end; +
1203 +
1204 HashInstance.Init; +
1205 HashInstance.Calc(InnerKeyPad[0], BlockSize); +
1206 if Length(Text) > 0 then +
1207 HashInstance.Calc(Text[0], Length(Text)); +
1208 HashInstance.Done; +
1209 Result := HashInstance.DigestAsBytes; +
1210 +
1211 HashInstance.Init; +
1212 HashInstance.Calc(OuterKeyPad[0], BlockSize); +
1213 HashInstance.Calc(Result[0], DigestLength); +
1214 HashInstance.Done; +
1215 +
1216 Result := HashInstance.DigestAsBytes; +
1217 finally +
1218 HashInstance.Free; +
1219 end; +
1220end; +
1221 +
1222class function TDECHashAuthentication.PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes; +
1223const +
1224 CONST_UINT_OF_0x36 = $3636363636363636; +
1225 CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C; +
1226var +
1227 Hash: TDECHashAuthentication; +
1228 I, J, C: Integer; +
1229 BlockCount, HashLengthRounded, SaltLength: Integer; +
1230 PassLength, DigestLength, BlockSize: Integer; +
1231 InnerKeyPad, OuterKeyPad: TBytes; +
1232 SaltEx, T, U, TrimmedKey: TBytes; +
1233begin +
1234 Hash := TDECHashAuthenticationClass(self).Create; +
1235 try +
1236 // Setup needed parameters +
1237 DigestLength := Hash.DigestSize; +
1238 HashLengthRounded := DigestLength - SizeOf(NativeUInt) + 1; +
1239 BlockCount := Trunc((KeyLength + DigestLength - 1) / DigestLength); +
1240 BlockSize := Hash.BlockSize; +
1241 PassLength := Length(Password); +
1242 SaltLength := Length(Salt); +
1243 SaltEx := Salt; +
1244 SetLength(SaltEx, SaltLength + 4); // reserve 4 bytes for INT_32_BE(i) +
1245 SetLength(T, DigestLength); +
1246 +
1247 // Prepare Key for HMAC calculation +
1248 // PrepareKeyForHMAC; +
1249 I := 0; +
1250 if PassLength > BlockSize then +
1251 begin +
1252 TrimmedKey := Hash.CalcBytes(Password); +
1253 PassLength := DigestLength; +
1254 end +
1255 else +
1256 TrimmedKey := Password; +
1257 +
1258 SetLength(InnerKeyPad, BlockSize); +
1259 SetLength(OuterKeyPad, BlockSize); +
1260 while I < PassLength do +
1261 begin +
1262 InnerKeyPad[I] := TrimmedKey[I] xor $36; +
1263 OuterKeyPad[I] := TrimmedKey[I] xor $5C; +
1264 Inc(I); +
1265 end; +
1266 while I < BlockSize do +
1267 begin +
1268 InnerKeyPad[I] := $36; +
1269 OuterKeyPad[I] := $5C; +
1270 Inc(I); +
1271 end; +
1272 +
1273 // Calculate DK +
1274 for I := 1 to BlockCount do +
1275 begin +
1276 SaltEx[SaltLength + 0] := Byte(I shr 24); // INT_32_BE(i) +
1277 SaltEx[SaltLength + 1] := Byte(I shr 16); +
1278 SaltEx[SaltLength + 2] := Byte(I shr 8); +
1279 SaltEx[SaltLength + 3] := Byte(I shr 0); +
1280 FillChar(T[0], DigestLength, 0); // reset Ti / F +
1281 U := SaltEx; // initialize U to U1 = Salt + INT_32_BE(i) +
1282 // Calculate F(Password, Salt, c, i) = U1 ^ U2 ^ ... ^ Uc +
1283 for C := 1 to Iterations do +
1284 begin +
1285 Hash.Init; +
1286 Hash.Calc(InnerKeyPad[0], BlockSize); +
1287 Hash.Calc(U[0], Length(U)); +
1288 Hash.Done; +
1289 U := Hash.DigestAsBytes; +
1290 +
1291 Hash.Init; +
1292 Hash.Calc(OuterKeyPad[0], BlockSize); +
1293 Hash.Calc(U[0], DigestLength); +
1294 Hash.Done; +
1295 U := Hash.DigestAsBytes; // Ui +
1296 // F = U1 ^ U2 ^ ... ^ Uc +
1297 J := 0; +
1298 while J < HashLengthRounded do +
1299 begin +
1300 PNativeUInt(@T[J])^ := PNativeUInt(@T[J])^ xor PNativeUInt(@U[J])^; +
1301 Inc(J, SizeOf(NativeUInt)); +
1302 end; +
1303 while J < DigestLength do +
1304 begin +
1305 T[J] := T[J] xor U[J]; +
1306 Inc(J); +
1307 end; +
1308 end; +
1309 +
1310 {$IF CompilerVersion >= 28.0} +
1311 Result := Result + T; // DK += F , DK = DK || Ti +
1312 {$ELSE} +
1313 TArrHelper.AppendArrays<Byte>(Result, T); +
1314 {$IFEND} +
1315 end; +
1316 finally +
1317 Hash.Free; +
1318 end; +
1319 +
1320 // Trim to the needed key length +
1321 SetLength(Result, KeyLength); +
1322end; +
1323 +
1324class function TDECHashAuthentication.PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes; +
1325begin +
1326 result := PBKDF2(BytesOf(Password), BytesOf(Salt), Iterations, KeyLength); +
1327end; +
1328 +
1329{ TDECHashExtended } +
1330 +
1331procedure TDECHashExtended.CalcStream(const Stream: TStream; Size: Int64; +
1332 var HashResult: TBytes; const OnProgress:TDECProgressEvent); +
1333var +
1334 Buffer: TBytes; +
1335 Bytes: Integer; +
1336 Max, Pos: Int64; +
1337begin +
1338 Assert(Assigned(Stream), 'Stream to calculate hash on is not assigned'); +
1339 +
1340 Max := 0; +
1341 SetLength(HashResult, 0); +
1342 try +
1343 Init; +
1344 +
1345 if StreamBufferSize <= 0 then +
1346 StreamBufferSize := 8192; +
1347 +
1348 Pos := Stream.Position; +
1349 +
1350 if Size < 0 then +
1351 Size := Stream.Size - Pos; +
1352 +
1353 // Last byte is incomplete so it mustn't be processed +
1354 if (FFinalByteLength > 0) then +
1355 Dec(Size); +
1356 +
1357 Max := Pos + Size; +
1358 +
1359 if Assigned(OnProgress) then +
1360 OnProgress(Max, 0, Started); +
1361 +
1362 Bytes := StreamBufferSize mod FBufferSize; +
1363 +
1364 if Bytes = 0 then +
1365 Bytes := StreamBufferSize +
1366 else +
1367 Bytes := StreamBufferSize + FBufferSize - Bytes; +
1368 +
1369 if Bytes > Size then +
1370 SetLength(Buffer, Size) +
1371 else +
1372 SetLength(Buffer, Bytes); +
1373 +
1374 while Size > 0 do +
1375 begin +
1376 Bytes := Length(Buffer); +
1377 if Bytes > Size then +
1378 Bytes := Size; +
1379 Stream.ReadBuffer(Buffer[0], Bytes); +
1380 Calc(Buffer[0], Bytes); +
1381 Dec(Size, Bytes); +
1382 Inc(Pos, Bytes); +
1383 +
1384 if Assigned(OnProgress) then +
1385 OnProgress(Max, Pos, Processing); +
1386 end; +
1387 +
1388 // Last byte is incomplete but algorithm may need its value for padding +
1389 if (FFinalByteLength > 0) then +
1390 Stream.ReadBuffer(FPaddingByte, 1); +
1391 +
1392 Done; +
1393 HashResult := DigestAsBytes; +
1394 finally +
1395 ProtectBytes(Buffer); +
1396 if Assigned(OnProgress) then +
1397 OnProgress(Max, Max, Finished); +
1398 end; +
1399end; +
1400 +
1401function TDECHashExtended.CalcStream(const Stream: TStream; Size: Int64; +
1402 Format: TDECFormatClass; const OnProgress:TDECProgressEvent): RawByteString; +
1403var +
1404 Hash: TBytes; +
1405begin +
1406 CalcStream(Stream, Size, Hash, OnProgress); +
1407 Result := BytesToRawString(ValidFormat(Format).Encode(Hash)); +
1408end; +
1409 +
1410procedure TDECHashExtended.CalcStream(const Stream: TStream; Size: Int64; +
1411 const OnProgress:TDECProgressEvent; +
1412 DoFinalize: Boolean); +
1413var +
1414 Buffer: TBytes; +
1415 Bytes: Integer; +
1416 Max, Pos: Int64; +
1417begin +
1418 Assert(Assigned(Stream), 'Stream to calculate hash on is not assigned'); +
1419 +
1420 Max := 0; +
1421 try +
1422 if StreamBufferSize <= 0 then +
1423 StreamBufferSize := 8192; +
1424 +
1425 Pos := Stream.Position; +
1426 +
1427 if Size < 0 then +
1428 Size := Stream.Size - Pos; +
1429 +
1430 // Last byte is incomplete so it mustn't be processed +
1431 if DoFinalize and (FFinalByteLength > 0) then +
1432 Dec(Size); +
1433 +
1434 Max := Pos + Size; +
1435 +
1436 if Assigned(OnProgress) then +
1437 OnProgress(Max, 0, Started); +
1438 +
1439 Bytes := StreamBufferSize mod FBufferSize; +
1440 +
1441 if Bytes = 0 then +
1442 Bytes := StreamBufferSize +
1443 else +
1444 Bytes := StreamBufferSize + FBufferSize - Bytes; +
1445 +
1446 if Bytes > Size then +
1447 SetLength(Buffer, Size) +
1448 else +
1449 SetLength(Buffer, Bytes); +
1450 +
1451 while Size > 0 do +
1452 begin +
1453 Bytes := Length(Buffer); +
1454 if Bytes > Size then +
1455 Bytes := Size; +
1456 Stream.ReadBuffer(Buffer[0], Bytes); +
1457 Calc(Buffer[0], Bytes); +
1458 Dec(Size, Bytes); +
1459 Inc(Pos, Bytes); +
1460 +
1461 if Assigned(OnProgress) then +
1462 OnProgress(Max, Pos, Processing); +
1463 end; +
1464 +
1465 // Last byte is incomplete but algorithm may need its value for padding +
1466 if DoFinalize then +
1467 begin +
1468 if (FFinalByteLength > 0) then +
1469 Stream.ReadBuffer(FPaddingByte, 1); +
1470 Done; +
1471 end; +
1472 finally +
1473 ProtectBytes(Buffer); +
1474 if Assigned(OnProgress) then +
1475 OnProgress(Max, Max, Finished); +
1476 end; +
1477end; +
1478 +
1479procedure TDECHashExtended.CalcFile(const FileName: string; var HashResult: TBytes; +
1480 const OnProgress:TDECProgressEvent); +
1481var +
1482 S: TFileStream; +
1483begin +
1484 SetLength(HashResult, 0); +
1485 S := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone); +
1486 try +
1487 CalcStream(S, S.Size, HashResult, OnProgress); +
1488 finally +
1489 S.Free; +
1490 end; +
1491end; +
1492 +
1493function TDECHashExtended.CalcFile(const FileName: string; Format: TDECFormatClass; +
1494 const OnProgress:TDECProgressEvent): RawByteString; +
1495var +
1496 Hash: TBytes; +
1497begin +
1498 CalcFile(FileName, Hash, OnProgress); +
1499 Result := BytesToRawString(ValidFormat(Format).Encode(Hash)); +
1500end; +
1501 +
1502{ TArrHelper } +
1503 +
1504{$IF CompilerVersion < 28.0} +
1505class procedure TArrHelper.AppendArrays<T>(var A: TArray<T>; const B: TArray<T>); +
1506var +
1507 i, L: Integer; +
1508begin +
1509 L := Length(A); +
1510 SetLength(A, L + Length(B)); +
1511 for i := 0 to High(B) do +
1512 A[L + i] := B[i]; +
1513end; +
1514{$IFEND} +
1515 +
1516{ TDECPasswordHash } +
1517 +
1518function TDECPasswordHash.GetSalt: TBytes; +
1519begin +
1520 Result := FSalt; +
1521end; +
1522 +
1523procedure TDECPasswordHash.SetSalt(const Value: TBytes); +
1524begin +
1525 if (Length(Value) > MaxSaltLength) then +
1526 raise EDECHashException.CreateFmt(sSaltValueTooLong, [MaxSaltLength]); +
1527 +
1528 if (Length(Value) < MinSaltLength) then +
1529 raise EDECHashException.CreateFmt(sSaltValueTooShort, [MinSaltLength]); +
1530 +
1531 FSalt := Value; +
1532end; +
1533 +
1534class function TDECPasswordHash.GetCryptID: string; +
1535begin +
1536 Result := ''; +
1537end; +
1538 +
1539function TDECPasswordHash.GetCryptParams(const Params : string; +
1540 Format : TDECFormatClass): string; +
1541begin +
1542 Result := ''; +
1543end; +
1544 +
1545function TDECPasswordHash.GetCryptSalt(const Salt : TBytes; +
1546 Format : TDECFormatCLass): string; +
1547var +
1548 FormattedSalt : TBytes; +
1549begin +
1550 FormattedSalt := Format.Encode(Salt); +
1551 +
1552 Result := '$' + TEncoding.ASCII.GetString(FormattedSalt); +
1553end; +
1554 +
1555class function TDECPasswordHash.ClassByCryptIdentity( +
1556 Identity: string): TDECPasswordHashClass; +
1557var +
1558 ClassEntry : TClassListEntry; +
1559 IDLower : string; +
1560begin +
1561 IDLower := Identity.ToLower; +
1562 if not IDLower.StartsWith('$') then +
1563 IDLower := '$' + IDLower; +
1564 +
1565 for ClassEntry in ClassList do +
1566 begin +
1567 if TDECHashClass(ClassEntry.Value).IsPasswordHash and +
1568 (string(TDECPasswordHashClass(ClassEntry.Value).GetCryptID).ToLower = IDLower) then +
1569 begin +
1570 Result := TDECPasswordHashClass(ClassEntry.Value); +
1571 Exit; +
1572 end; +
1573 end; +
1574 +
1575 // If we got this far, we have not found any mathich class +
1576 raise EDECClassNotRegisteredException.CreateResFmt(@sCryptIDNotRegistered, +
1577 [Identity]); +
1578end; +
1579 +
1580procedure TDECPasswordHash.DoDone; +
1581begin +
1582 inherited; +
1583 +
1584 ProtectBuffer(FSalt[0], SizeOf(FSalt)); +
1585 SetLength(FSalt, 0); +
1586end; +
1587 +
1588function TDECPasswordHash.GetCryptHash(Password : TBytes; +
1589 const Params : string; +
1590 const Salt : TBytes; +
1591 Format : TDECFormatClass): string; +
1592begin +
1593 Result := ''; +
1594end; +
1595 +
1596function TDECPasswordHash.GetDigestInCryptFormat( +
1597 const Password : string; +
1598 const Params : string; +
1599 const Salt : string; +
1600 SaltIsRaw : Boolean; +
1601 Format : TDECFormatClass): string; +
1602begin +
1603 Result := GetDigestInCryptFormat(TEncoding.UTF8.GetBytes(Password), +
1604 Params, +
1605 Salt, +
1606 SaltIsRaw, +
1607 Format); +
1608end; +
1609 +
1610function TDECPasswordHash.GetDigestInCryptFormat( +
1611 Password : TBytes; +
1612 const Params : string; +
1613 const Salt : string; +
1614 SaltIsRaw : Boolean; +
1615 Format : TDECFormatClass): string; +
1616var +
1617 SaltBytes : TBytes; +
1618begin +
1619 // generic format used by Crypt, but not every algorithm sticks 100% to it +
1620 // $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]] +
1621 +
1622 // if no ID is delivered the algorithm is none of the Crypt/BSD algorithms +
1623 Result := GetCryptID; +
1624 if (Result <> '') then +
1625 begin +
1626 if SaltIsRaw then +
1627 SaltBytes := TEncoding.UTF8.GetBytes(Salt) +
1628 else +
1629 SaltBytes := Format.Decode(TEncoding.UTF8.GetBytes(Salt)); +
1630 +
1631 Result := Result + GetCryptParams(Params, Format) + +
1632 GetCryptSalt(SaltBytes, Format) + +
1633 GetCryptHash(Password, Params, SaltBytes, Format); +
1634 end; +
1635end; +
1636 +
1637function TDECPasswordHash.IsValidPassword(const Password : string; +
1638 const CryptData : string; +
1639 Format : TDECFormatClass): Boolean; +
1640begin +
1641 Result := IsValidPassword(TEncoding.UTF8.GetBytes(Password), +
1642 CryptData, +
1643 Format); +
1644end; +
1645 +
1646function TDECPasswordHash.IsValidPassword(Password : TBytes; +
1647 const CryptData : string; +
1648 Format : TDECFormatClass): Boolean; +
1649begin +
1650 Result := false; +
1651end; +
1652 +
1653end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECHashBase(DECHashBase.pas).html b/Unit Tests/CodeCoverage/Output/DECHashBase(DECHashBase.pas).html new file mode 100644 index 00000000..6634acb6 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECHashBase(DECHashBase.pas).html @@ -0,0 +1,898 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashBase (..\..\Source\DECHashBase.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECHashBase.pas

+
Number of lines covered152
Number of lines with code gen171
Line coverage88.9 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Base unit for all the hash algorithms. The key deviation algorithms are +
20/// in the DECHashAUthentication unit and hash algorithms which can process +
21/// messages with a length specified in bits instead of whole bytes have +
22/// to inherit from TDECHashBit +
23/// </summary> +
24unit DECHashBase; +
25 +
26interface +
27 +
28{$INCLUDE DECOptions.inc} +
29 +
30uses +
31 {$IFDEF FPC} +
32 SysUtils, Classes, +
33 {$ELSE} +
34 System.SysUtils, System.Classes, Generics.Collections, +
35 {$ENDIF} +
36 DECBaseClass, DECFormatBase, DECUtil, DECTypes, DECHashInterface; +
37 +
38type +
39 /// <summary> +
40 /// Meta class for all the hashing classes in order to support the +
41 /// registration mechanism +
42 /// </summary> +
43 TDECHashClass = class of TDECHash; +
44 +
45 /// <summary> +
46 /// Base class for all hash algorithm implementation classes +
47 /// </summary> +
48 {$IFDEF FPC} +
49 TDECHash = class(TDECObject) // does not find methods of the interface as it +
50 // searches for AnsiString instead of RawByteString +
51 // and thus does not find that +
52 {$ELSE} +
53 TDECHash = class(TDECObject, IDECHash) +
54 {$ENDIF} +
55 strict private +
56 /// <summary> +
57 /// Raises an EDECHashException hash algorithm not initialized exception +
58 /// </summary> +
59 /// <exception cref="EDECHashException"> +
60 /// Exception raised unconditionally. +
61 /// </exception> +
62 procedure RaiseHashNotInitialized; +
63 +
64 /// <summary> +
65 /// Returns the current value of the padding byte used to fill up data +
66 /// if necessary +
67 /// </summary> +
68 function GetPaddingByte: Byte; +
69 /// <summary> +
70 /// Changes the value of the padding byte used to fill up data +
71 /// if necessary +
72 /// </summary> +
73 /// <param name="Value"> +
74 /// New value for the padding byte +
75 /// </param> +
76 procedure SetPaddingByte(Value: Byte); +
77 strict protected +
78 /// <summary> +
79 /// This array holds some state, espscially for Merkle-Darmgard based +
80 /// hash algorithms like MD4, SHA1 or HAVAL. +
81 /// </summary> +
82 FCount : array[0..7] of UInt32; +
83 /// <summary> +
84 /// Internal processing buffer +
85 /// </summary> +
86 FBuffer : PByteArray; +
87 /// <summary> +
88 /// Size of the internal processing buffer in byte +
89 /// </summary> +
90 FBufferSize : Integer; +
91 /// <summary> +
92 /// Position the algorithm is currently at in the processing buffer +
93 /// </summary> +
94 FBufferIndex : Integer; +
95 /// <summary> +
96 /// Value used to fill up data +
97 /// </summary> +
98 FPaddingByte : UInt8; +
99 /// <summary> +
100 /// Setting this to a number of bits allows to process messages which have +
101 /// a length which is not a exact multiple of bytes. +
102 /// </summary> +
103 FFinalByteLength : UInt8; +
104 /// <summary> +
105 /// This abstract method has to be overridden by each concrete hash algorithm +
106 /// to initialize the necessary data structures. +
107 /// </summary> +
108 procedure DoInit; virtual; abstract; +
109 /// <summary> +
110 /// The concrete calculation. Needs to be overridden by each concrete hash +
111 /// implementation. +
112 /// </summary> +
113 /// <param name="Buffer"> +
114 /// Data to operate on +
115 /// </param> +
116 procedure DoTransform(Buffer: PUInt32Array); virtual; abstract; +
117 /// <summary> +
118 /// This abstract method has to be overridden by each concrete hash algorithm +
119 /// to finalize the calculation of a hash value over the data passed. +
120 /// </summary> +
121 procedure DoDone; virtual; abstract; +
122 /// <summary> +
123 /// Adds the value of 8*Add to the value (which is interpreted as an +
124 /// 8*32 bit unsigned integer array. The carry is taken care of. +
125 /// </summary> +
126 /// <param name="Value"> +
127 /// Value which is incremented +
128 /// </param> +
129 /// <param name="Add"> +
130 /// Value (which is being multiplied by 8) by which to increment Value +
131 /// </param> +
132 /// <remarks> +
133 /// Raises an EDECHashException overflow error if the last operation has +
134 /// set the carry flag +
135 /// </remarks> +
136 /// <exception cref="EDECHashException"> +
137 /// Exception raised if the last operation has set the carry flag. +
138 /// </exception> +
139 procedure Increment8(var Value; Add: UInt32); +
140 /// <summary> +
141 /// Raises an EDECHashException overflow error +
142 /// </summary> +
143 /// <exception cref="EDECHashException"> +
144 /// Exception raised unconditionally. +
145 /// </exception> +
146 procedure RaiseHashOverflowError; +
147 +
148 /// <summary> +
149 /// Overwrite internally used processing buffers to make it harder to steal +
150 /// any data from memory. +
151 /// </summary> +
152 procedure SecureErase; virtual; +
153 +
154 /// <summary> +
155 /// Returns the calculated hash value +
156 /// </summary> +
157 function Digest: PByteArray; virtual; abstract; +
158 public +
159 /// <summary> +
160 /// Initialize internal fields +
161 /// </summary> +
162 constructor Create; override; +
163 /// <summary> +
164 /// Fees internal resources +
165 /// </summary> +
166 destructor Destroy; override; +
167 /// <summary> +
168 /// Generic initialization of internal data structures. Additionally the +
169 /// internal algorithm specific (because of being overridden by each +
170 /// hash algorithm) DoInit method is called. Needs to be called before +
171 /// each hash calculation. +
172 /// </summary> +
173 procedure Init; +
174 /// <summary> +
175 /// Processes one chunk of data to be hashed. +
176 /// </summary> +
177 /// <param name="Data"> +
178 /// Data on which the hash value shall be calculated on +
179 /// </param> +
180 /// <param name="DataSize"> +
181 /// Size of the data in bytes +
182 /// </param> +
183 procedure Calc(const Data; DataSize: Integer); virtual; +
184 +
185 /// <summary> +
186 /// Frees dynamically allocated buffers in a way which safeguards agains +
187 /// data stealing by other methods which afterwards might allocate this memory. +
188 /// Additionaly calls the algorithm spercific DoDone method. +
189 /// </summary> +
190 procedure Done; +
191 +
192 /// <summary> +
193 /// Returns the calculated hash value as byte array +
194 /// </summary> +
195 function DigestAsBytes: TBytes; virtual; +
196 +
197 /// <summary> +
198 /// Returns the calculated hash value as formatted Unicode string +
199 /// </summary> +
200 /// <param name="Format"> +
201 /// Optional parameter. If a formatting class is being passed the formatting +
202 /// will be applied to the returned string. Otherwise no formatting is +
203 /// being used. +
204 /// </param> +
205 /// <returns> +
206 /// Hash value of the last performed hash calculation +
207 /// </returns> +
208 /// <remarks> +
209 /// We recommend to use a formatting which results in 7 bit ASCII chars +
210 /// being returned, otherwise the conversion into the Unicode string might +
211 /// result in strange characters in the returned result. +
212 /// </remarks> +
213 function DigestAsString(Format: TDECFormatClass = nil): string; +
214 /// <summary> +
215 /// Returns the calculated hash value as formatted RawByteString +
216 /// </summary> +
217 /// <param name="Format"> +
218 /// Optional parameter. If a formatting class is being passed the formatting +
219 /// will be applied to the returned string. Otherwise no formatting is +
220 /// being used. +
221 /// </param> +
222 /// <returns> +
223 /// Hash value of the last performed hash calculation +
224 /// </returns> +
225 /// <remarks> +
226 /// We recommend to use a formatting which results in 7 bit ASCII chars +
227 /// being returned, otherwise the conversion into the RawByteString might +
228 /// result in strange characters in the returned result. +
229 /// </remarks> +
230 function DigestAsRawByteString(Format: TDECFormatClass = nil): RawByteString; +
231 +
232 /// <summary> +
233 /// Gives the length of the calculated hash value in byte. Needs to be +
234 /// overridden in concrete hash implementations. +
235 /// </summary> +
236 class function DigestSize: UInt32; virtual; +
237 /// <summary> +
238 /// Gives the length of the blocks the hash value is being calculated +
239 /// on in byte. Needs to be overridden in concrete hash implementations. +
240 /// </summary> +
241 class function BlockSize: UInt32; virtual; +
242 +
243 /// <summary> +
244 /// List of registered DEC classes. Key is the Identity of the class. +
245 /// </summary> +
246 class var ClassList : TDECClassList; +
247 +
248 /// <summary> +
249 /// Tries to find a class type by its name +
250 /// </summary> +
251 /// <param name="Name"> +
252 /// Name to look for in the list +
253 /// </param> +
254 /// <returns> +
255 /// Returns the class type if found. if it could not be found a +
256 /// EDECClassNotRegisteredException will be thrown +
257 /// </returns> +
258 /// <exception cref="EDECClassNotRegisteredException"> +
259 /// Exception raised if the class specified by <c>Name</c> is not found +
260 /// </exception> +
261 class function ClassByName(const Name: string): TDECHashClass; +
262 +
263 /// <summary> +
264 /// Tries to find a class type by its numeric identity DEC assigned to it. +
265 /// Useful for file headers, so they can easily encode numerically which +
266 /// cipher class was being used. +
267 /// </summary> +
268 /// <param name="Identity"> +
269 /// Identity to look for +
270 /// </param> +
271 /// <returns> +
272 /// Returns the class type of the class with the specified identity value +
273 /// or throws an EDECClassNotRegisteredException exception if no class +
274 /// with the given identity has been found +
275 /// </returns> +
276 /// <exception cref="EDECClassNotRegisteredException"> +
277 /// Exception raised if the class specified by <c>Identity</c> is not found +
278 /// </exception> +
279 class function ClassByIdentity(Identity: Int64): TDECHashClass; +
280 +
281 /// <summary> +
282 /// Detects whether the given hash class is one particularily suited +
283 /// for storing hashes of passwords +
284 /// </summary> +
285 /// <returns> +
286 /// true if it's a hash class specifically designed to store password +
287 /// hashes, false for ordinary hash algorithms. +
288 /// </returns> +
289 class function IsPasswordHash: Boolean; virtual; +
290 +
291 // hash calculation wrappers +
292 +
293 /// <summary> +
294 /// Calculates the hash value (digest) for a given buffer. All other +
295 /// CalcXXX methods do call this one for the actual calculation. So for +
296 /// algorithms where overwriting of DoTransform and getting is called the +
297 /// way it is implemented here, the inheriting class should overwrite +
298 /// CalcBuffer and do calculation in that as desired. If DoTransform is +
299 /// not really needed in such a case the inheriting class should overwrite +
300 /// it anyway but leave it empty and comment the reason. +
301 /// </summary> +
302 /// <param name="Buffer"> +
303 /// Untyped buffer the hash shall be calculated for +
304 /// </param> +
305 /// <param name="BufferSize"> +
306 /// Size of the buffer in byte +
307 /// </param> +
308 /// <returns> +
309 /// Byte array with the calculated hash value +
310 /// </returns> +
311 function CalcBuffer(const Buffer; BufferSize: Integer): TBytes; +
312 /// <summary> +
313 /// Calculates the hash value (digest) for a given buffer +
314 /// </summary> +
315 /// <param name="Data"> +
316 /// The TBytes array the hash shall be calculated on +
317 /// </param> +
318 /// <returns> +
319 /// Byte array with the calculated hash value +
320 /// </returns> +
321 function CalcBytes(const Data: TBytes): TBytes; +
322 +
323 /// <summary> +
324 /// Calculates the hash value (digest) for a given unicode string +
325 /// </summary> +
326 /// <param name="Value"> +
327 /// The string the hash shall be calculated on +
328 /// </param> +
329 /// <param name="Format"> +
330 /// Formatting class from DECFormat. The formatting will be applied to the +
331 /// returned digest value. This parameter is optional. +
332 /// </param> +
333 /// <returns> +
334 /// string with the calculated hash value +
335 /// </returns> +
336 function CalcString(const Value: string; Format: TDECFormatClass = nil): string; overload; +
337 /// <summary> +
338 /// Calculates the hash value (digest) for a given rawbytestring +
339 /// </summary> +
340 /// <param name="Value"> +
341 /// The string the hash shall be calculated on +
342 /// </param> +
343 /// <param name="Format"> +
344 /// Formatting class from DECFormat. The formatting will be applied to the +
345 /// returned digest value. This parameter is optional. +
346 /// </param> +
347 /// <returns> +
348 /// string with the calculated hash value +
349 /// </returns> +
350 function CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString; overload; +
351 +
352 /// <summary> +
353 /// Defines the byte used in some algorithms to padd the end of the data +
354 /// if the length of the data cannot be divided by required size for the +
355 /// hash algorithm without reminder. For algorithms which can handle message +
356 /// lengths which are not whole bytes (e.g. SHA3), it can be used to define +
357 /// the last bits. This should be done only for those methods not already +
358 /// returning the calculated hash value, as those manage handling of the +
359 /// last byte themselves. +
360 /// </summary> +
361 /// <remarks> +
362 /// If an algorithm is used which can operate on bit sized message lengths +
363 /// and a method for feeding the data is used which does not already return +
364 /// the calculated hash value one needs to set the contents of the last +
365 /// byte with this property! For a stream for instance the length specified +
366 /// when calling CalcStream needs to be 1 byte less and that last byte +
367 /// needs to be assigned to this property just before calling Done. +
368 /// </remarks> +
369 property PaddingByte: Byte read GetPaddingByte write SetPaddingByte; +
370 end; +
371 +
372/// <summary> +
373/// Returns the passed hash class type if it is not nil. Otherwise the +
374/// class type class set per SetDefaultHashClass is being returned. If using +
375/// the DECHash unit THash_SHA256 is registered in the initialization, otherwise +
376/// nil might be returned! +
377/// </summary> +
378/// <param name="HashClass"> +
379/// Class type of a hash class like THash_SHA256. If nil is passed the one set +
380/// as default is returned. +
381/// </param> +
382/// <returns> +
383/// Passed class type or defined default hash class type, depending on +
384/// HashClass parameter value. +
385/// </returns> +
386function ValidHash(HashClass: TDECHashClass = nil): TDECHashClass; +
387 +
388/// <summary> +
389/// Defines which cipher class to return by ValidCipher if passing nil to that +
390/// </summary> +
391/// <param name="HashClass"> +
392/// Class type of a hash class to return by ValidHash if passing nil to +
393/// that one. This parameter should not be nil! +
394/// </param> +
395procedure SetDefaultHashClass(HashClass: TDECHashClass); +
396 +
397implementation +
398 +
399resourcestring +
400 sHashNotInitialized = 'Hash must be initialized'; +
401 sRaiseHashOverflowError = 'Hash Overflow: Too many bits processed'; +
402 sHashNoDefault = 'No default hash has been registered'; +
403 +
404var +
405 /// <summary> +
406 /// Hash class returned by ValidHash if nil is passed as parameter to it +
407 /// </summary> +
408 FDefaultHashClass: TDECHashClass = nil; +
409 +
410function ValidHash(HashClass: TDECHashClass): TDECHashClass; +
411begin +
412 if Assigned(HashClass) then +
413 Result := HashClass +
414 else +
415 Result := FDefaultHashClass; +
416 +
417 if not Assigned(Result) then +
418 raise EDECHashException.CreateRes(@sHashNoDefault); +
419end; +
420 +
421procedure SetDefaultHashClass(HashClass: TDECHashClass); +
422begin +
423 Assert(Assigned(HashClass), 'Do not set a nil default hash class!'); +
424 +
425 FDefaultHashClass := HashClass; +
426end; +
427 +
428{ TDECHash } +
429 +
430constructor TDECHash.Create; +
431begin +
432 inherited; +
433 FBufferSize := 0; +
434 FBuffer := nil; +
435end; +
436 +
437destructor TDECHash.Destroy; +
438begin +
439 SecureErase; +
440 FreeMem(FBuffer, FBufferSize); +
441 +
442 inherited Destroy; +
443end; +
444 +
445procedure TDECHash.SecureErase; +
446begin +
447 ProtectBuffer(Digest^, DigestSize); +
448 if FBuffer <> nil then +
449 ProtectBuffer(FBuffer^, FBufferSize); +
450end; +
451 +
452procedure TDECHash.Init; +
453begin +
454 FBufferIndex := 0; +
455 +
456 if (FBuffer = nil) or (UInt32(FBufferSize) <> BlockSize) then +
457 begin +
458 FBufferSize := BlockSize; +
459 // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help +
460 // It is necessary to reallocate the buffer as FreeMem in destructor wouldn't +
461 // accept a nil pointer on some platforms. +
462 FBuffer := ReallocMemory(FBuffer, FBufferSize); +
463 end; +
464 +
465 FillChar(FBuffer^, FBufferSize, 0); +
466 FillChar(FCount, SizeOf(FCount), 0); +
467 DoInit; +
468end; +
469 +
470class function TDECHash.IsPasswordHash: Boolean; +
471begin +
472 // has to be overwritten by the base class for password hash algorithms +
473 result := false; +
474end; +
475 +
476procedure TDECHash.Done; +
477begin +
478 DoDone; +
479end; +
480 +
481function TDECHash.GetPaddingByte: Byte; +
482begin +
483 Result := FPaddingByte; +
484end; +
485 +
486procedure TDECHash.Increment8(var Value; Add: UInt32); +
487// Value := Value + 8 * Add +
488// Value is array[0..7] of UInt32 +
489{ TODO -oNormanNG -cCodeReview : !!Unbedingt noch einmal prüfen, ob das wirklich so alles stimmt!! +
490Mein Versuch der Umsetzung von Increment8 in ASM. +
491Die Implementierung zuvor hat immer Zugriffsverletzungen ausgelöst. +
492Vermutung: die alte Implementierung lag ursprünglich ausserhalb der Klasse und wurde später +
493in die Klasse verschoben. Dabei verändert sich aber die Nutzung der Register, da zusätzlich +
494der SELF-Parameter in EAX übergeben wird. Beim Schreiben nach auf Value wurde dann in die Instanz (Self) +
495geschrieben -> peng +
496} +
497{$IF defined(X86ASM) or defined(X64ASM)} +
498 {$IFDEF X86ASM} +
499 // type TData = packed array[0..7] of UInt32; 8x32bit +
500 // TypeOf Param "Value" = TData +
501 // +
502 // EAX = Self +
503 // EDX = Pointer to "Value" +
504 // ECX = Value of "ADD" +
505 register; // redundant but informative +
506 asm +
507 LEA EAX,[ECX*8] // EAX := ADD * 8 +
508 SHR ECX,29 // 29bit nach rechts schieben, 3bit beiben stehen +
509 ADD [EDX].DWord[00],EAX // add [edx], eax TData(Value)[00] := TData(Value)[00] + EAX +
510 ADC [EDX].DWord[04],ECX // adc [edx+$04], ecx TData(Value)[04] := TData(Value)[04] + ECX + Carry +
511 ADC [EDX].DWord[08],0 // adc [edx+$08], 0 TData(Value)[08] := TData(Value)[08] + 0 + Carry +
512 ADC [EDX].DWord[12],0 // adc [edx+$0c], 0 TData(Value)[12] := TData(Value)[12] + 0 + Carry +
513 ADC [EDX].DWord[16],0 // adc [edx+$10], 0 TData(Value)[16] := TData(Value)[16] + 0 + Carry +
514 ADC [EDX].DWord[20],0 // adc [edx+$14], 0 TData(Value)[20] := TData(Value)[20] + 0 + Carry +
515 ADC [EDX].DWord[24],0 // adc [edx+$18], 0 TData(Value)[24] := TData(Value)[24] + 0 + Carry +
516 ADC [EDX].DWord[28],0 // adc [edx+$1c], 0 TData(Value)[28] := TData(Value)[28] + 0 + Carry +
517 JC RaiseHashOverflowError +
518 end; +
519 {$ENDIF !X86ASM} +
520 {$IFDEF X64ASM} +
521 // type TData = packed array[0..3] of UInt64; 4x64bit +
522 // TypeOf Param "Value" = TData +
523 // +
524 // RCX = Self +
525 // RDX = Pointer to "Value" +
526 // R8D = Value of "ADD" +
527 register; // redundant but informative +
528 asm +
529 SHL R8, 3 // R8 := Add * 8 the caller writes to R8D what automatically clears the high DWORD of R8 +
530 ADD QWORD PTR [RDX ], R8 // add [rdx], r8 TData(Value)[00] := TData(Value)[00] + R8 +
531 ADD QWORD PTR [RDX + 8], 0 // add [rdx+$08], 0 TData(Value)[08] := TData(Value)[08] + 0 + Carry +
532 ADD QWORD PTR [RDX + 16], 0 // add [rdx+$10], 0 TData(Value)[16] := TData(Value)[16] + 0 + Carry +
533 ADD QWORD PTR [RDX + 24], 0 // add [rdx+$18], 0 TData(Value)[24] := TData(Value)[24] + 0 + Carry +
534 JC RaiseHashOverflowError; +
535 end; +
536 {$ENDIF !X64ASM} +
537{$ELSE PUREPASCAL} +
538type +
539 TData = packed array[0..7] of UInt32; +
540 +
541var +
542 HiBits: UInt32; +
543 Add8: UInt32; +
544 Carry: Boolean; +
545 +
546 procedure AddC(var Value: UInt32; const Add: UInt32; var Carry: Boolean); +
547 begin +
548 if Carry then +
549 begin +
550 Value := Value + 1; +
551 Carry := (Value = 0); // we might cause another overflow by adding the carry bit +
552 end +
553 else +
554 Carry := False; +
555 +
556 Value := Value + Add; +
557 Carry := Carry or (Value < Add); // set Carry Flag on overflow or keep it if already set +
558 end; +
559 +
560begin +
561 HiBits := Add shr 29; // Save most significant 3 bits in case an overflow occurs +
562 Add8 := Add * 8; +
563 Carry := False; +
564 +
565 AddC(TData(Value)[0], Add8, Carry); +
566 AddC(TData(Value)[1], HiBits, Carry); +
567 AddC(TData(Value)[2], 0, Carry); +
568 AddC(TData(Value)[3], 0, Carry); +
569 AddC(TData(Value)[4], 0, Carry); +
570 AddC(TData(Value)[5], 0, Carry); +
571 AddC(TData(Value)[6], 0, Carry); +
572 AddC(TData(Value)[7], 0, Carry); +
573 +
574 if Carry then +
575 RaiseHashOverflowError; +
576end; +
577{$IFEND PUREPASCAL} +
578 +
579procedure TDECHash.RaiseHashOverflowError; +
580begin +
581 raise EDECHashException.CreateRes(@sRaiseHashOverflowError); +
582end; +
583 +
584procedure TDECHash.SetPaddingByte(Value: Byte); +
585begin +
586 FPaddingByte := Value; +
587end; +
588 +
589procedure TDECHash.RaiseHashNotInitialized; +
590begin +
591 raise EDECHashException.CreateRes(@sHashNotInitialized); +
592end; +
593 +
594procedure TDECHash.Calc(const Data; DataSize: Integer); +
595var +
596 Remain: Integer; +
597 Value: PByte; +
598begin +
599 if DataSize <= 0 then +
600 Exit; +
601 +
602 if not Assigned(FBuffer) then +
603 RaiseHashNotInitialized; +
604 +
605 Increment8(FCount, DataSize); +
606 Value := @TByteArray(Data)[0]; +
607 +
608 if FBufferIndex > 0 then +
609 begin +
610 Remain := FBufferSize - FBufferIndex; +
611 if DataSize < Remain then +
612 begin +
613 Move(Value^, FBuffer[FBufferIndex], DataSize); +
614 Inc(FBufferIndex, DataSize); +
615 Exit; +
616 end; +
617 Move(Value^, FBuffer[FBufferIndex], Remain); +
618 DoTransform(Pointer(FBuffer)); +
619 Dec(DataSize, Remain); +
620 Inc(Value, Remain); +
621 end; +
622 +
623 while DataSize >= FBufferSize do +
624 begin +
625 DoTransform(Pointer(Value)); +
626 Inc(Value, FBufferSize); +
627 Dec(DataSize, FBufferSize); +
628 end; +
629 +
630 Move(Value^, FBuffer^, DataSize); +
631 FBufferIndex := DataSize; +
632end; +
633 +
634function TDECHash.DigestAsBytes: TBytes; +
635begin +
636 SetLength(Result, DigestSize); +
637 if DigestSize <> 0 then +
638 Move(Digest^, Result[0], DigestSize); +
639end; +
640 +
641function TDECHash.DigestAsRawByteString(Format: TDECFormatClass): RawByteString; +
642begin +
643 Result := BytesToRawString(ValidFormat(Format).Encode(DigestAsBytes)); +
644end; +
645 +
646function TDECHash.DigestAsString(Format: TDECFormatClass): string; +
647begin +
648 Result := StringOf(ValidFormat(Format).Encode(DigestAsBytes)); +
649end; +
650 +
651class function TDECHash.DigestSize: UInt32; +
652begin +
653 // C++ does not support virtual static functions thus the base cannot be +
654 // marked 'abstract'. This is our workaround: +
655 raise EDECAbstractError.Create(GetShortClassName); +
656end; +
657 +
658class function TDECHash.BlockSize: UInt32; +
659begin +
660 // C++ does not support virtual static functions thus the base cannot be +
661 // marked 'abstract'. This is our workaround: +
662 raise EDECAbstractError.Create(GetShortClassName); +
663end; +
664 +
665function TDECHash.CalcBuffer(const Buffer; BufferSize: Integer): TBytes; +
666var +
667 DataPtr: PByte; +
668begin +
669 Init; +
670 +
671 if (FFinalByteLength = 0) or (BufferSize = 0) then +
672 Calc(Buffer, BufferSize) +
673 else +
674 if (BufferSize > 0) then +
675 begin +
676 // Remember last byte as this might be required for padding for such +
677 // algorithms which have some automatic padding logic +
678 DataPtr := @Buffer; +
679 Inc(DataPtr, BufferSize - 1); +
680 FPaddingByte := DataPtr^; +
681 +
682 // Last byte is incomplete so do not process normally +
683 Calc(Buffer, BufferSize-1); +
684 end; +
685 +
686 Done; +
687 Result := DigestAsBytes; +
688end; +
689 +
690function TDECHash.CalcBytes(const Data: TBytes): TBytes; +
691begin +
692 SetLength(Result, 0); +
693 if Length(Data) > 0 then +
694 Result := CalcBuffer(Data[0], Length(Data)) +
695 else +
696 Result := CalcBuffer(Data, Length(Data)); +
697end; +
698 +
699function TDECHash.CalcString(const Value: string; Format: TDECFormatClass): string; +
700var +
701 Size : Integer; +
702 Data : TBytes; +
703begin +
704 Result := ''; +
705 if Length(Value) > 0 then +
706 begin +
707 {$IF CompilerVersion >= 24.0} +
708 Size := Length(Value) * SizeOf(Value[low(Value)]); +
709 Data := CalcBuffer(Value[low(Value)], Size); +
710 {$ELSE} +
711 Size := Length(Value) * SizeOf(Value[1]); +
712 Data := CalcBuffer(Value[1], Size); +
713 {$IFEND} +
714 Result := StringOf(ValidFormat(Format).Encode(Data)); +
715 end +
716 else +
717 begin +
718 SetLength(Data, 0); +
719 result := StringOf(ValidFormat(Format).Encode(CalcBuffer(Data, 0))); +
720 end; +
721end; +
722 +
723function TDECHash.CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString; +
724var +
725 Buf : TBytes; +
726begin +
727 Result := ''; +
728 if Length(Value) > 0 then +
729 {$IF CompilerVersion >= 24.0} +
730 result := BytesToRawString( +
731 ValidFormat(Format).Encode( +
732 CalcBuffer(Value[low(Value)], +
733 Length(Value) * SizeOf(Value[low(Value)])))) +
734 {$ELSE} +
735 result := BytesToRawString( +
736 ValidFormat(Format).Encode( +
737 CalcBuffer(Value[1], +
738 Length(Value) * SizeOf(Value[1])))) +
739 {$IFEND} +
740 else +
741 begin +
742 SetLength(Buf, 0); +
743 Result := BytesToRawString(ValidFormat(Format).Encode(CalcBuffer(Buf, 0))); +
744 end; +
745end; +
746 +
747class function TDECHash.ClassByIdentity(Identity: Int64): TDECHashClass; +
748begin +
749 Result := TDECHashClass(ClassList.ClassByIdentity(Identity)); +
750end; +
751 +
752class function TDECHash.ClassByName(const Name: string): TDECHashClass; +
753begin +
754 Result := TDECHashClass(ClassList.ClassByName(Name)); +
755end; +
756 +
757{$IFDEF DELPHIORBCB} +
758procedure ModuleUnload(Instance: NativeUInt); +
759var // automaticaly deregistration/releasing +
760 i: Integer; +
761 Items: TArray<TPair<Int64, TDECCLass>>; +
762begin +
763 // C++Builder calls this function for our own module, but we destroy the ClassList +
764 // in that case in the finalization section anyway. +
765 if (Instance <> HInstance) and +
766 (TDECHash.ClassList <> nil) and (TDECHash.ClassList.Count > 0) then +
767 begin +
768 Items := TDECHash.ClassList.ToArray; +
769 for i := Length(Items) - 1 downto 0 do +
770 begin +
771 if FindClassHInstance(Items[i].Value) = HINST(HInstance) then +
772 TDECHash.ClassList.Remove(Items[i].Key); +
773 end; +
774 end; +
775end; +
776{$ENDIF DELPHIORBCB} +
777 +
778initialization +
779 // Code for packages and dynamic extension of the class registration list +
780 {$IFDEF DELPHIORBCB} +
781 AddModuleUnloadProc(ModuleUnload); +
782 {$ENDIF DELPHIORBCB} +
783 +
784 TDECHash.ClassList := TDECClassList.Create; +
785 +
786finalization +
787 // Ensure no further instances of classes registered in the registration list +
788 // are possible through the list after this unit has been unloaded by unloding +
789 // the package this unit is in +
790 {$IFDEF DELPHIORBCB} +
791 RemoveModuleUnloadProc(ModuleUnload); +
792 {$ENDIF DELPHIORBCB} +
793 +
794 TDECHash.ClassList.Free; +
795end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECHashBitBase(DECHashBitBase.pas).html b/Unit Tests/CodeCoverage/Output/DECHashBitBase(DECHashBitBase.pas).html new file mode 100644 index 00000000..9538162e --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECHashBitBase(DECHashBitBase.pas).html @@ -0,0 +1,203 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashBitBase (..\..\Source\DECHashBitBase.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECHashBitBase.pas

+
Number of lines covered8
Number of lines with code gen8
Line coverage100.0 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Base unit for all the hash algorithms which can operate on bit sized +
20/// messsages as well. +
21/// </summary> +
22unit DECHashBitBase; +
23 +
24interface +
25 +
26{$INCLUDE DECOptions.inc} +
27 +
28uses +
29 {$IFDEF FPC} +
30 SysUtils, Classes, +
31 {$ELSE} +
32 System.SysUtils, System.Classes, +
33 {$ENDIF} +
34 DECHashAuthentication, DECHashInterface, DECTypes; +
35 +
36type +
37 /// <summary> +
38 /// Meta class for the class containing the additional property for hashes +
39 /// supporting a last byte with less than 8 bit size. +
40 /// </summary> +
41 TDECHashBitClass = class of TDECHashBit; +
42 +
43 /// <summary> +
44 /// Base class for all hash algorithms which can operate on bit sized +
45 /// messsages as well. +
46 /// </summary> +
47 TDECHashBit = class(TDECHashExtended, IDECHashBitsized) +
48 strict private +
49 /// <summary> +
50 /// Returns the number of bits the final byte of the message consists of +
51 /// </summary> +
52 function GetFinalByteLength: UInt8; +
53 /// <summary> +
54 /// Sets the number of bits the final byte of the message consists of +
55 /// </summary> +
56 /// <exception cref="EDECHashException"> +
57 /// Exception raised if <c>Value</c> is higher than 7. +
58 /// </exception> +
59 procedure SetFinalByteLength(const Value: UInt8); +
60 public +
61 /// <summary> +
62 /// Setting this to a number of bits allows to process messages which have +
63 /// a length which is not a exact multiple of bytes. +
64 /// </summary> +
65 /// <exception cref="EDECHashException"> +
66 /// Exception raised if <c>Value</c> is higher than 7. +
67 /// </exception> +
68 property FinalByteLength : UInt8 +
69 read GetFinalByteLength +
70 write SetFinalByteLength; +
71 end; +
72 +
73implementation +
74 +
75resourcestring +
76 /// <summary> +
77 /// Exception message for the exception raised when a to long final byte +
78 /// length is specified. +
79 /// </summary> +
80 rFinalByteLengthTooBig = 'Final byte length too big (%0:d) must be 0..7'; +
81 +
82{ TDECHashBit } +
83 +
84function TDECHashBit.GetFinalByteLength: UInt8; +
85begin +
86 Result := FFinalByteLength; +
87end; +
88 +
89procedure TDECHashBit.SetFinalByteLength(const Value: UInt8); +
90begin +
91 // if length of final byte is 8 this value shall be 0 as the normal specification +
92 // of message length is good enough then. +
93 +
94 if (Value > 7) then +
95 raise EDECHashException.CreateFmt(rFinalByteLengthTooBig, [Value]); +
96 +
97 FFinalByteLength := Value; +
98end; +
99 +
100end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECRandom(DECRandom.pas).html b/Unit Tests/CodeCoverage/Output/DECRandom(DECRandom.pas).html new file mode 100644 index 00000000..ed8c2133 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECRandom(DECRandom.pas).html @@ -0,0 +1,561 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECRandom (..\..\Source\DECRandom.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECRandom.pas

+
Number of lines covered91
Number of lines with code gen94
Line coverage96.8 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Secure Pseudo Random Number Generator based on Yarrow. If used without +
20/// doing anything special for initialization a repeatable generator will be +
21/// initialized always using the same start value. +
22/// </summary> +
23unit DECRandom; +
24 +
25interface +
26 +
27{$INCLUDE DECOptions.inc} +
28 +
29uses +
30 {$IFDEF FPC} +
31 SysUtils, +
32 {$ELSE} +
33 System.SysUtils, +
34 {$ENDIF} +
35 DECHashBase, DECHash; +
36 +
37/// <summary> +
38/// Create a seed for the random number generator from system time and +
39/// PerformanceCounter. +
40/// </summary> +
41/// <remarks> +
42/// Avoid initializing the seed using this fuction if you can as it is not +
43/// really secure. Use RandomBuffer instead and provide user generated input +
44/// as Buffer value but ensure that this is not uniform e.g. not a buffer only +
45/// containing $00 all over or something like this. +
46/// </remarks> +
47/// <returns> +
48/// Created seed value +
49/// </returns> +
50function RandomSystemTime: Int64; +
51 +
52/// <summary> +
53/// Fills the provided buffer with random values. If the DoRandomBuffer +
54/// variable is assigned (which is usually the case because DoBuffer is +
55/// assigned to it in initialization of this unit) the hash based algorithm +
56/// in DoBuffer will be used, otherwise the weaker one in DoRndBuffer. +
57/// </summary> +
58/// <param name="Buffer"> +
59/// Buffer to be filled with random values +
60/// </param> +
61/// <param name="Size"> +
62/// Size of the buffer in byte +
63/// </param> +
64procedure RandomBuffer(out Buffer; Size: Integer); +
65 +
66/// <summary> +
67/// Creates a buffer of the specified size filled with random bytes +
68/// </summary> +
69/// <param name="Size"> +
70/// Size of the buffer to be created in bytes +
71/// </param> +
72/// <returns> +
73/// Buffer of the specified size in bytes filled with random data +
74/// </returns> +
75function RandomBytes(Size: Integer): TBytes; +
76/// <summary> +
77/// Creates a RawByteString of the specified length filled with random bytes. +
78/// </summary> +
79/// <remarks> +
80/// This function is deprecated. Better use RandomBytes where ever possible! +
81/// </remarks> +
82/// <param name="Size"> +
83/// Length of the string to be created in bytes +
84/// </param> +
85/// <returns> +
86/// String of the specified length in bytes filled with random data +
87/// </returns> +
88function RandomRawByteString(Size: Integer): RawByteString; deprecated 'please use RandomBytes now'; +
89/// <summary> +
90/// Creates a random UInt32 value +
91/// </summary> +
92/// <returns> +
93/// Random value +
94/// </returns> +
95function RandomLong: UInt32; +
96 +
97/// <summary> +
98/// If the default value of the global DoRandomSeed variable is kept, this +
99/// procedure initializes a repeatable or a non repeatable seed, +
100/// depending on the parameters specified. Otherwise the alternative DoRandomSeed +
101/// implementation is called. The FRndSeed variable is initialized with the +
102/// seed value generated. +
103/// </summary> +
104/// <param name="Buffer"> +
105/// If a repeatable seed is to be initialized, the contents of this buffer is +
106/// a parameter to the seed generation and a buffer containing at least Size +
107/// bytes needs to be passed. +
108/// </param> +
109/// <param name="Size"> +
110/// If Size is > 0 a repeatable seed is initialized. If Size is 0 the +
111/// internal seed variable FRndSeed is initialized with 0. If Size is +
112/// less than 0 the internal FRndSeed variable is initialized with +
113/// a value derrived from current system time/performance counter using +
114/// RandomSystemTime. +
115/// </param> +
116procedure RandomSeed(const Buffer; Size: Integer); overload; +
117/// <summary> +
118/// Creates a seed (starting) value for the random number generator. If the +
119/// default value of the global DoRandomSeed variable is kept, a non repeatable +
120/// seed based on RandomSystemTime (based on system time and potentially +
121/// QueryPerformanceCounter) is created and assigned to the internal FRndSeed +
122/// variable. +
123/// </summary> +
124procedure RandomSeed; overload; +
125 +
126type +
127 /// <summary> +
128 /// Type for the random buffer generation +
129 /// </summary> +
130 /// <param name="Buffer"> +
131 /// Buffer in which the random bytes shall be written. The buffer needs to +
132 /// exist and must be of at least Size bytes length. +
133 /// </param> +
134 /// <param name="Size"> +
135 /// Length of the buffer to be filled in Byte. +
136 /// </param> +
137 TRandomBufferProc = procedure(out Buffer; Size: Integer) register; +
138 +
139 /// <summary> +
140 /// Type for an initialization procedure for a seed +
141 /// </summary> +
142 /// <param name="Buffer"> +
143 /// Buffer from which the random bytes shall be taken. The buffer needs to +
144 /// exist and must be of at least Size bytes length. +
145 /// </param> +
146 /// <param name="Size"> +
147 /// Length of the buffer in Byte. +
148 /// </param> +
149 TRandomSeedProc = procedure(const Buffer; Size: Integer); register; +
150 +
151var +
152 // secure PRNG initialized by this unit +
153 +
154 /// <summary> +
155 /// This variable allows overriding the random number generation procedure +
156 /// used for data buffers. By default it is initialized to point to DoBuffer, +
157 /// which is a DECRandom internal procedure. +
158 /// </summary> +
159 /// <param name="Buffer"> +
160 /// Buffer in which the random bytes shall be written. The buffer needs to +
161 /// exist and must be of at least Size bytes length. +
162 /// </param> +
163 /// <param name="Size"> +
164 /// Length of the buffer to be filled in Byte. +
165 /// </param> +
166 DoRandomBuffer: TRandomBufferProc = nil; +
167 +
168 /// <summary> +
169 /// This variable allows overriding the seed value generation procedure. +
170 /// By default it is initialized with the DECRandom internal procedure DoSeed. +
171 /// </summary> +
172 DoRandomSeed: TRandomSeedProc = nil; +
173 /// <summary> +
174 /// Defines the hash-algorithm used for generatin seed values or hashed buffers +
175 /// </summary> +
176 RandomClass: TDECHashClass = THash_SHA256; +
177 +
178implementation +
179 +
180uses +
181 {$IFDEF DELPHI_2010_UP} +
182 System.Diagnostics +
183 {$ELSE} +
184 {$IFDEF FPC} +
185 {$IFDEF MSWINDOWS} +
186 Windows +
187 {$ELSE} +
188 LclIntf +
189 {$ENDIF} +
190 {$ELSE} +
191 Winapi.Windows +
192 {$ENDIF} +
193 {$ENDIF} +
194 ; +
195 +
196{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF} +
197{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF} +
198 +
199var +
200 /// <summary> +
201 /// A sequence of values which over time will be random by replacing each +
202 /// value with a derived value generated by applying the hash algorithm. +
203 /// </summary> +
204 FRegister: array[0..127] of Byte; +
205 /// <summary> +
206 /// The hash used to generate derived values stored in FRegister is calculated +
207 /// using this counter as input and this counter additionaly defines the index +
208 /// in FRegister where the value will be stored. The counter can assume higher +
209 /// values than the lngth of FRegister. The index calculation takes this into +
210 /// account. +
211 /// </summary> +
212 FCounter: Cardinal; +
213 /// <summary> +
214 /// Object instance for the hash generation algorithm used. The object is +
215 /// created the first time it is needed and freed in finalization of this unit. +
216 /// </summary> +
217 FHash: TDECHash = nil; +
218 +
219 /// <summary> +
220 /// Seed value, stores the last generated random number as start value for +
221 /// the next randum number generation +
222 /// </summary> +
223 FRndSeed: Cardinal = 0; +
224 +
225function RandomSystemTime: Int64; +
226type +
227 TInt64Rec = packed record +
228 Lo, Hi: UInt32; +
229 end; +
230var +
231 {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)} +
232 SysTime: TSystemTime; +
233 {$ELSE} +
234 Hour, Minute, Second, Milliseconds: Word; +
235 {$IFEND} +
236 Counter: TInt64Rec; +
237 Time: Cardinal; +
238begin +
239 {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)} +
240 GetSystemTime(SysTime); +
241 Time := ((Cardinal(SysTime.wHour) * 60 + SysTime.wMinute) * 60 + SysTime.wSecond) * 1000 + SysTime.wMilliseconds; +
242 QueryPerformanceCounter(Int64(Counter)); +
243 {$ELSE} +
244 DecodeTime(Now, Hour, Minute, Second, Milliseconds); +
245 Time := ((Cardinal(Hour) * 60 + Minute) * 60 + Second) * 1000 + Milliseconds; +
246 {$IFDEF DELPHI_2010_UP} +
247 Int64(Counter) := TStopWatch.GetTimeStamp; // uses System.Diagnostics +
248 {$ELSE} +
249 {$IFDEF FPC} +
250 Int64(Counter) := LclIntf.GetTickCount * 10000 {TicksPerMillisecond}; // uses LclIntf +
251 {$ENDIF} +
252 {$ENDIF} +
253 {$IFEND} +
254 +
255 Result := Time + Counter.Hi; +
256 Inc(Result, Ord(Result < Time)); // add "carry flag" +
257 Inc(Result, Counter.Lo); +
258end; +
259 +
260/// <summary> +
261/// Simplistic algorithm for filling a buffer with random numbers. This +
262/// algorithm is directly dependant on the seed passed, which by internal use +
263/// will normally be FRndSeed. +
264/// </summary> +
265/// <param name="Seed"> +
266/// Seed value as starting value +
267/// </param> +
268/// <param name="Buffer"> +
269/// Buffer which shall be filled with random bytes +
270/// </param> +
271/// <param name="Size"> +
272/// Size of the buffer in byte +
273/// </param> +
274/// <returns> +
275/// New seed value after calculating the random number for the last byte in +
276/// the buffer. +
277/// </returns> +
278function DoRndBuffer(Seed: Cardinal; out Buffer; Size: Integer): Cardinal; +
279// comparable to Delphi Random() function +
280var +
281 P: PByte; +
282begin +
283 Result := Seed; +
284 P := @Buffer; +
285 if P <> nil then +
286 begin +
287 while Size > 0 do +
288 begin +
289 Result := Result * $08088405 + 1; +
290 P^ := Byte(Result shr 24); +
291 Inc(P); +
292 Dec(Size); +
293 end; +
294 end; +
295end; +
296 +
297procedure RandomBuffer(out Buffer; Size: Integer); +
298begin +
299 if Assigned(DoRandomBuffer) then +
300 DoRandomBuffer(Buffer, Size) +
301 else +
302 FRndSeed := DoRndBuffer(FRndSeed, Buffer, Size); +
303end; +
304 +
305function RandomBytes(Size: Integer): TBytes; +
306begin +
307 SetLength(Result, Size); +
308 RandomBuffer(Result[0], Size); +
309end; +
310 +
311function RandomRawByteString(Size: Integer): RawByteString; +
312begin +
313 SetLength(Result, Size); +
314 {$IF CompilerVersion >= 24.0} +
315 RandomBuffer(Result[Low(Result)], Size); +
316 {$ELSE} +
317 RandomBuffer(Result[1], Size); +
318 {$IFEND} +
319end; +
320 +
321function RandomLong: UInt32; +
322begin +
323 RandomBuffer(Result, SizeOf(Result)); +
324end; +
325 +
326procedure RandomSeed(const Buffer; Size: Integer); +
327begin +
328 if Assigned(DoRandomSeed) then +
329 DoRandomSeed(Buffer, Size) +
330 else +
331 begin +
332 if Size >= 0 then +
333 begin +
334 FRndSeed := 0; +
335 while Size > 0 do +
336 begin +
337 Dec(Size); +
338 FRndSeed := (FRndSeed shl 8 + FRndSeed shr 24) xor TByteArray(Buffer)[Size] +
339 end; +
340 end +
341 else +
342 FRndSeed := RandomSystemTime; +
343 end; +
344end; +
345 +
346procedure RandomSeed; +
347begin +
348 RandomSeed('', -1); +
349end; +
350 +
351/// <summary> +
352/// Generate one random byte and modify FCounter and FRegister +
353/// </summary> +
354function DoGenerateRandomByte: Byte; +
355begin +
356 if FHash = nil then +
357 FHash := RandomClass.Create; +
358 +
359 FHash.Init; +
360 FHash.Calc(FCounter, SizeOf(FCounter)); +
361 FHash.Calc(FRegister, SizeOf(FRegister)); +
362 FHash.Done; +
363 +
364 FRegister[FCounter mod SizeOf(FRegister)] := FRegister[FCounter mod SizeOf(FRegister)] xor FHash.DigestAsBytes[0]; +
365 Inc(FCounter); +
366 +
367 Result := FHash.DigestAsBytes[1]; // no real predictable dependency to above FHash.Digest[0] ! +
368end; +
369 +
370procedure DoBuffer(out Buffer; Size: Integer); +
371var +
372 i: Integer; +
373begin +
374 for i := 0 to Size - 1 do +
375 TByteArray(Buffer)[i] := DoGenerateRandomByte; +
376end; +
377 +
378/// <summary> +
379/// Initializes a repeatable or a non repeatable seed, depending on the +
380/// parameters specified +
381/// </summary> +
382/// <param name="Buffer"> +
383/// If a repeatable seed is to be initialized, the contents of this buffer is +
384/// a parameter to the seed generation and a buffer containing at least Size +
385/// bytes needs to be passed. +
386/// </param> +
387/// <param name="Size"> +
388/// If Size is >= 0 a repeatable seed is initialized, otherwise a non repeatable +
389/// based on system time +
390/// </param> +
391procedure DoSeed(const Buffer; Size: Integer); +
392var +
393 i: Integer; +
394 t: Cardinal; +
395begin +
396 if Size >= 0 then +
397 begin +
398 // initalize a repeatable Seed +
399 FillChar(FRegister, SizeOf(FRegister), 0); +
400 FCounter := 0; +
401 for i := 0 to Size - 1 do +
402 FRegister[i mod SizeOf(FRegister)] := FRegister[i mod SizeOf(FRegister)] xor TByteArray(Buffer)[i]; +
403 end +
404 else +
405 begin +
406 // ! ATTENTION ! +
407 // Initalizes a non-repeatable Seed based on Timers, which is not secure +
408 // and inpredictable. The user should call RandomSeed(Data, SizeOf(Data)) +
409 // instead, where Date contains i.e. user generated (Human) input. +
410 t := RandomSystemTime; +
411 for i := Low(FRegister) to High(FRegister) do +
412 begin +
413 FRegister[i] := FRegister[i] xor Byte(t); +
414 t := t shl 1 or t shr 31; +
415 end; +
416 end; +
417 for i := Low(FRegister) to High(FRegister) do +
418 DoGenerateRandomByte; +
419 FCounter := 0; +
420end; +
421 +
422procedure DoInit; +
423begin +
424 DoRandomBuffer := DoBuffer; +
425 DoRandomSeed := DoSeed; +
426 DoSeed('', 0); +
427end; +
428 +
429procedure DoDone; +
430begin +
431 try +
432 if FHash <> nil then +
433 FHash.Free; +
434 except +
435 end; +
436 FHash := nil; +
437 +
438 FreeAndNil(FHash); +
439 FillChar(FRegister, SizeOf(FRegister), 0); +
440 FCounter := 0; +
441end; +
442 +
443{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF} +
444{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF} +
445 +
446initialization +
447 {$DEFINE AUTO_PRNG} +
448 +
449 DoInit; +
450 +
451 {$IFDEF AUTO_PRNG} // see DECOptions.inc +
452 RandomSeed; +
453 {$ENDIF AUTO_PRNG} +
454 +
455finalization +
456 DoDone; +
457 +
458end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECTypes(DECTypes.pas).html b/Unit Tests/CodeCoverage/Output/DECTypes(DECTypes.pas).html new file mode 100644 index 00000000..dbc2493a --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECTypes(DECTypes.pas).html @@ -0,0 +1,301 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECTypes (..\..\Source\DECTypes.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECTypes.pas

+
Number of lines covered3
Number of lines with code gen3
Line coverage100.0 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Declarations of various datatypes, some of those have not been +
20/// declared for certain platforms but are used in DEC and some do change +
21/// meanings between platforms like PLongWord where LongWord is 32 bit on +
22/// Windows and Android but 64 bit on iOS for instance +
23/// </summary> +
24unit DECTypes; +
25 +
26interface +
27 +
28{$INCLUDE DECOptions.inc} +
29 +
30uses +
31 {$IFDEF FPC} +
32 SysUtils; +
33 {$ELSE} +
34 System.SysUtils; +
35 {$ENDIF} +
36 +
37type +
38 {$IFNDEF FPC} +
39 {$IF CompilerVersion <= 20} +
40 // In D2009 NativeInt was not properly treated by the compiler under certain +
41 // conditions. See: http://qc.embarcadero.com/wc/qcmain.aspx?d=71292 +
42 NativeInt = Integer; +
43 {$IFEND} +
44 {$ENDIF} +
45 +
46 PUInt32Array = ^TUInt32Array; +
47 TUInt32Array = array[0..1023] of UInt32; +
48 +
49 /// <summary> +
50 /// Replacement for PLongWord, as LongWord changes between platforms from +
51 /// 32 to 64 bit +
52 /// </summary> +
53 PUInt32 = ^UINT32; +
54 +
55 PUInt64Array = ^TUInt64Array; +
56 TUInt64Array = array[0..1023] of UInt64; +
57 +
58 /// <summary> +
59 /// Declared here because it is used by Blowfish cipher and BCrypt hash +
60 /// </summary> +
61 PBlowfish = ^TBlowfishMatrix; +
62 TBlowfishMatrix = array[0..3, 0..255] of UInt32; +
63 TBlowfishKey = array[0..17] of UInt32; +
64 +
65 /// <summary> +
66 /// List of standard bit lengths defined in the official standard for some +
67 /// algorithm property which allows a variable bit length. +
68 /// </summary> +
69 TStandardBitLengths = array of UInt16; +
70 +
71 /// <summary> +
72 /// Reason for calling the progress event +
73 /// </summary> +
74 TDECProgressState = (Started, Processing, Finished); +
75 +
76 /// <summary> +
77 /// Event type used by several hash- and cipher methods to display their +
78 /// progress. It can be implemented as regular method, procedure and as +
79 /// anonymous method, means: in place. +
80 /// </summary> +
81 /// <param name="Size"> +
82 /// Number of bytes to process. For files this is usually the file size. For +
83 /// streams this can be less than the stream size if the stream is not being +
84 /// processed from the beginning. +
85 /// </param> +
86 /// <param name="Pos"> +
87 /// Position within size in byte. For streams this may be a position +
88 /// relative to the starting position for processing. +
89 /// </param> +
90 TDECProgressEvent = reference to procedure(Size, Pos: Int64; State: TDECProgressState); +
91 +
92 // Exception Classes +
93 +
94 /// <summary> +
95 /// Base exception class for all DEC specific exceptions, +
96 /// </summary> +
97 EDECException = class(Exception) +
98 public +
99 {$IFDEF FMXTranslateableExceptions} +
100 /// <summary> +
101 /// Creates the exception instance and makes the exception message translateable +
102 /// via Firemonkey's TLang translation mechanism. Normal ressource strings +
103 /// are not translated in the same way on mobile platforms as they are on +
104 /// Win32/Win64. +
105 /// </summary> +
106 /// <param name="Msg"> +
107 /// String with a failure message to be output or logged +
108 /// </param> +
109 constructor Create(const Msg: string); reintroduce; overload; +
110 /// <summary> +
111 /// Creates the exception instance and makes the exception message translateable +
112 /// via Firemonkey's TLang translation mechanism. Normal ressource strings +
113 /// are not translated in the same way on mobile platforms as they are on +
114 /// Win32/Win64. +
115 /// </summary> +
116 /// <param name="Msg"> +
117 /// String with a failure message to be output or logged +
118 /// </param> +
119 /// <param name="Args"> +
120 /// Array with values for the parameters specified in the format string +
121 /// </param> +
122 constructor CreateFmt(const Msg: string; +
123 const Args: array of const); reintroduce; overload; +
124 {$ENDIF} +
125 end; +
126 +
127 /// <summary> +
128 /// Exception class used when reporting that a class searched in a list is +
129 /// not contained in that list, e.g. when searching for a non existant +
130 /// formatting class. +
131 /// </summary> +
132 EDECClassNotRegisteredException = class(EDECException); +
133 /// <summary> +
134 /// Exception class for reporting formatting related exceptions +
135 /// </summary> +
136 EDECFormatException = class(EDECException); +
137 /// <summary> +
138 /// Exception class for reporting exceptions related to hash functions +
139 /// </summary> +
140 EDECHashException = class(EDECException); +
141 /// <summary> +
142 /// Exception class for reporting encryption/decryption caused exceptions +
143 /// </summary> +
144 EDECCipherException = class(EDECException); +
145 /// <summary> +
146 /// Exception class for reporting calculation of a wrong authentication +
147 /// value when decrypting using a cipher supporting authentication +
148 /// </summary> +
149 EDECCipherAuthenticationException = class(EDECException); +
150 +
151 /// <summary> +
152 /// Exception class for reporting the use of abstract things which cannot +
153 /// be called directly +
154 /// </summary> +
155 EDECAbstractError = class(EDECException) +
156 /// <summary> +
157 /// Create the exception using a meaningfull error message +
158 /// </summary> +
159 constructor Create(ClassName: string); overload; +
160 end; +
161 +
162const +
163{ TODO : Check why this is a constant, which is immediately used by the +
164 resource string. Is this because of the lack of resource string support +
165 of FMX on some platforms?} +
166 cAbstractError = 'Abstract Error: %s is not implemented'; +
167 +
168resourcestring +
169 sAbstractError = cAbstractError; +
170 +
171implementation +
172 +
173{ EDECException } +
174 +
175{$IFDEF FMXTranslateableExceptions} +
176constructor EDECException.Create(const Msg: string); +
177begin +
178 inherited Create(Translate(msg)); +
179end; +
180 +
181constructor EDECException.CreateFmt(const Msg: string; +
182 const Args: array of const); +
183begin +
184 inherited Create(Format(Translate(Msg), Args)); +
185end; +
186 +
187constructor EDECAbstractError.Create(ClassName: string); +
188begin +
189 inherited Create(Format(Translate(sAbstractError), [ClassName])); +
190end; +
191{$ELSE} +
192constructor EDECAbstractError.Create(ClassName: string); +
193begin +
194 inherited CreateResFmt(@sAbstractError, [ClassName]); +
195end; +
196{$ENDIF} +
197 +
198end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECUtil(DECUtil.pas).html b/Unit Tests/CodeCoverage/Output/DECUtil(DECUtil.pas).html new file mode 100644 index 00000000..e69a98bc --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECUtil(DECUtil.pas).html @@ -0,0 +1,736 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECUtil (..\..\Source\DECUtil.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECUtil.pas

+
Number of lines covered116
Number of lines with code gen116
Line coverage100.0 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory +
6 of this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17 +
18/// <summary> +
19/// Utility functions +
20/// </summary> +
21unit DECUtil; +
22 +
23interface +
24 +
25{$INCLUDE DECOptions.inc} +
26 +
27uses +
28 {$IFDEF FPC} +
29 SysUtils, Classes; +
30 {$ELSE} +
31 System.SysUtils, System.Classes; +
32 {$ENDIF} +
33 +
34// Byte Ordering +
35 +
36/// <summary> +
37/// Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards +
38/// </summary> +
39/// <param name="Source"> +
40/// Value who's bits are to be reversed +
41/// </param> +
42/// <returns> +
43/// Representation of Source but with all bits reversed +
44/// </returns> +
45function ReverseBits(Source: UInt32): UInt32; overload; +
46 +
47/// <summary> +
48/// Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards +
49/// </summary> +
50/// <param name="Source"> +
51/// Value who's bits are to be reversed +
52/// </param> +
53/// <returns> +
54/// Representation of Source but with all bits reversed +
55/// </returns> +
56function ReverseBits(Source: UInt8): UInt8; overload; +
57 +
58/// <summary> +
59/// Reverses the order of the bytes contained in the buffer passed in. +
60/// e.g. 1 2 3 will be 3 2 1 afterwards +
61/// </summary> +
62/// <param name="Buffer"> +
63/// Buffer who's contents is to be reversed. +
64/// </param> +
65/// <param name="Size"> +
66/// Size of the passed buffer in byte +
67/// </param> +
68procedure SwapBytes(var Buffer; Size: Integer); +
69/// <summary> +
70/// Reverses the byte order of the passed variable +
71/// </summary> +
72/// <param name="Source"> +
73/// value who's byte order shall be reversed +
74/// </param> +
75/// <returns> +
76/// value of the passed vallue with reversed byte order +
77/// </returns> +
78function SwapUInt32(Source: UInt32): UInt32; +
79/// <summary> +
80/// Reverses the byte order for all entries of a passed array of UInt32 values +
81/// </summary> +
82/// <param name="Source"> +
83/// Data with a layout like an array of UInt32 values for which the byte order +
84/// of all entries shall be reversed +
85/// </param> +
86/// <param name="Dest"> +
87/// In this variable the reversed values will be stored. Layout is like an +
88/// array of UInt32 values +
89/// </param> +
90/// <param name="Count"> +
91/// Number of values to be reversed +
92/// </param> +
93procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer); +
94/// <summary> +
95/// Reverses the byte order of an Int64 value +
96/// </summary> +
97/// <param name="Source"> +
98/// Value who's byte order shall be reversed +
99/// </param> +
100/// <returns> +
101/// Representation of the passed value after reversing its byte order +
102/// </returns> +
103function SwapInt64(Source: Int64): Int64; +
104/// <summary> +
105/// Reverses the byte order for all entries of a passed array of Int64 values +
106/// </summary> +
107/// <param name="Source"> +
108/// Data with a layout like an array of Int64 values for which the byte order +
109/// of all entries shall be reversed +
110/// </param> +
111/// <param name="Dest"> +
112/// In this variable the reversed values will be stored. Layout is like an +
113/// array of Int64 values +
114/// </param> +
115/// <param name="Count"> +
116/// Number of values to be reversed +
117/// </param> +
118procedure SwapInt64Buffer(const Source; var Dest; Count: Integer); +
119 +
120/// <summary> +
121/// XORs the contents of two passed buffers and stores the result into a 3rd one +
122/// </summary> +
123/// <param name="Left"> +
124/// One source buffer of bytes to be XORed +
125/// </param> +
126/// <param name="Right"> +
127/// The other source buffer of bytes to be XORed. Buffer size must be equal +
128/// or bigger than Left +
129/// </param> +
130/// <param name="Size"> +
131/// Buffer size in byte. +
132/// </param> +
133/// <param name="Dest"> +
134/// Buffer where the result is to be stored in. Must be of equal or bigger +
135/// size than Left +
136/// </param> +
137procedure XORBuffers(const Left, Right; Size: Integer; var Dest); +
138 +
139// Buffer and Data Protection +
140 +
141/// <summary> +
142/// Fills a given buffer with zeros in a secure way +
143/// </summary> +
144/// <param name="Buffer"> +
145/// Buffer to be zeroed. In case of TBytes to be passed as Buf[0] +
146/// </param> +
147/// <param name="Size"> +
148/// Buffer size in byte +
149/// </param> +
150procedure ProtectBuffer(var Buffer; Size: NativeUInt); +
151/// <summary> +
152/// Fills a given stream with zeros in a secure way +
153/// </summary> +
154/// <param name="Stream"> +
155/// Stream to be zeroed. +
156/// </param> +
157/// <param name="SizeToProtect"> +
158/// Number of bytes of that stream to be zeroed. Starting point is Stream.Position +
159/// </param> +
160procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0); +
161/// <summary> +
162/// Fills a given byte array with zeros in a secure way and then empties the +
163/// buffer. +
164/// </summary> +
165/// <param name="Source"> +
166/// Byte array to be zeroed. The length of the passed buffer is 0 afterwards! +
167/// </param> +
168procedure ProtectBytes(var Source: TBytes); +
169 +
170/// <summary> +
171/// Overwrites the string's contents in a secure way and returns an empty string. +
172/// </summary> +
173/// <param name="Source"> +
174/// String to be safely overwritten +
175/// </param> +
176procedure ProtectString(var Source: string); overload; +
177 +
178/// <summary> +
179/// Overwrites the string's contents in a secure way and returns an empty string. +
180/// </summary> +
181/// <param name="Source"> +
182/// String to be safely overwritten +
183/// </param> +
184procedure ProtectString(var Source: RawByteString); overload; +
185 +
186{$IFDEF ANSISTRINGSUPPORTED} +
187/// <summary> +
188/// Overwrites the string's contents in a secure way and returns an empty string. +
189/// </summary> +
190/// <param name="Source"> +
191/// String to be safely overwritten +
192/// </param> +
193procedure ProtectString(var Source: AnsiString); overload; +
194{$ENDIF} +
195 +
196{$IFNDEF NEXTGEN} +
197/// <summary> +
198/// Overwrites the string's contents in a secure way and returns an empty string. +
199/// </summary> +
200/// <param name="Source"> +
201/// String to be safely overwritten +
202/// </param> +
203procedure ProtectString(var Source: WideString); overload; +
204{$ENDIF} +
205 +
206// Byte/String conversion +
207 +
208/// <summary> +
209/// Converts a byte array to a RawByteString +
210/// </summary> +
211/// <param name="Source"> +
212/// Byte array to be converted into a string. An empty byte array is allowed +
213/// and results in an empty string. +
214/// </param> +
215/// <returns> +
216/// RawByteString with the same length as Source and all bytes copied over. +
217/// No conversion of any sort is being applied to the bytes. +
218/// </returns> +
219/// <remarks> +
220/// Not easily replaced by some RTL function as none for TBytes to RawByteString +
221/// seems to exist +
222/// </remarks> +
223function BytesToRawString(const Source: TBytes): RawByteString; +
224 +
225// Buffer comparison +
226 +
227/// <summary> +
228/// Checks whether two TBytes values contain the same data +
229/// </summary> +
230/// <param name="a"> +
231/// First value for the comparison +
232/// </param> +
233/// <param name="b"> +
234/// Second value for the comparison +
235/// </param> +
236/// <returns> +
237/// true, if both contain exactly the same data +
238/// </returns> +
239function IsEqual(const a, b : TBytes ):Boolean; +
240 +
241implementation +
242 +
243uses +
244 DECUtilRawByteStringHelper, DECTypes; +
245 +
246const +
247 // Bit Lookup Table - see 'Bit Twiddling Hacks' by Sean Eron Anderson +
248 // http://graphics.stanford.edu/~seander/bithacks.html +
249 ReverseBitLookupTable256: array[0..255] of Byte = ($00, $80, $40, $C0, +
250 $20, $A0, $60, $E0, $10, $90, $50, $D0, $30, $B0, $70, $F0, $08, $88, +
251 $48, $C8, $28, $A8, $68, $E8, $18, $98, $58, $D8, $38, $B8, $78, $F8, +
252 $04, $84, $44, $C4, $24, $A4, $64, $E4, $14, $94, $54, $D4, $34, $B4, +
253 $74, $F4, $0C, $8C, $4C, $CC, $2C, $AC, $6C, $EC, $1C, $9C, $5C, $DC, +
254 $3C, $BC, $7C, $FC, $02, $82, $42, $C2, $22, $A2, $62, $E2, $12, $92, +
255 $52, $D2, $32, $B2, $72, $F2, $0A, $8A, $4A, $CA, $2A, $AA, $6A, $EA, +
256 $1A, $9A, $5A, $DA, $3A, $BA, $7A, $FA, $06, $86, $46, $C6, $26, $A6, +
257 $66, $E6, $16, $96, $56, $D6, $36, $B6, $76, $F6, $0E, $8E, $4E, $CE, +
258 $2E, $AE, $6E, $EE, $1E, $9E, $5E, $DE, $3E, $BE, $7E, $FE, $01, $81, +
259 $41, $C1, $21, $A1, $61, $E1, $11, $91, $51, $D1, $31, $B1, $71, $F1, +
260 $09, $89, $49, $C9, $29, $A9, $69, $E9, $19, $99, $59, $D9, $39, $B9, +
261 $79, $F9, $05, $85, $45, $C5, $25, $A5, $65, $E5, $15, $95, $55, $D5, +
262 $35, $B5, $75, $F5, $0D, $8D, $4D, $CD, $2D, $AD, $6D, $ED, $1D, $9D, +
263 $5D, $DD, $3D, $BD, $7D, $FD, $03, $83, $43, $C3, $23, $A3, $63, $E3, +
264 $13, $93, $53, $D3, $33, $B3, $73, $F3, $0B, $8B, $4B, $CB, $2B, $AB, +
265 $6B, $EB, $1B, $9B, $5B, $DB, $3B, $BB, $7B, $FB, $07, $87, $47, $C7, +
266 $27, $A7, $67, $E7, $17, $97, $57, $D7, $37, $B7, $77, $F7, $0F, $8F, +
267 $4F, $CF, $2F, $AF, $6F, $EF, $1F, $9F, $5F, $DF, $3F, $BF, $7F, $FF); +
268 +
269function ReverseBits(Source: UInt32): UInt32; +
270begin +
271 Result := (ReverseBitLookupTable256[Source and $FF] shl 24) or +
272 (ReverseBitLookupTable256[(Source shr 8) and $FF] shl 16) or +
273 (ReverseBitLookupTable256[(Source shr 16) and $FF] shl 8) or +
274 (ReverseBitLookupTable256[(Source shr 24) and $FF]); +
275end; +
276 +
277function ReverseBits(Source: UInt8): UInt8; +
278begin +
279 Result := ReverseBitLookupTable256[Source]; +
280end; +
281 +
282procedure SwapBytes(var Buffer; Size: Integer); +
283{$IFDEF X86ASM} +
284asm +
285 CMP EDX,1 +
286 JLE @@3 +
287 AND EAX,EAX +
288 JZ @@3 +
289 PUSH EBX +
290 MOV ECX,EDX +
291 LEA EDX,[EAX + ECX - 1] +
292 SHR ECX,1 +
293@@1: MOV BL,[EAX] +
294 XCHG BL,[EDX] +
295 DEC EDX +
296 MOV [EAX],BL +
297 INC EAX +
298 DEC ECX +
299 JNZ @@1 +
300@@2: POP EBX +
301@@3: +
302end; +
303{$ELSE !X86ASM} +
304var +
305 T: Byte; +
306 P, Q: PByte; +
307 i: Integer; +
308begin +
309 P := @Buffer; +
310 Inc(P, Size - 1); +
311 Q := @Buffer; +
312 for i := 0 to Size div 2 - 1 do // using P/Q comparison with 'while' breaks some compilers +
313 begin +
314 T := Q^; +
315 Q^ := P^; +
316 P^ := T; +
317 Dec(P); +
318 Inc(Q); +
319 end; +
320end; +
321{$ENDIF !X86ASM} +
322 +
323function SwapUInt32(Source: UInt32): UInt32; +
324{$IF defined(X86ASM) or defined(X64ASM)} +
325 asm +
326 {$IFDEF X64ASM} +
327 MOV EAX, ECX +
328 {$ENDIF X64ASM} +
329 BSWAP EAX +
330 end; +
331{$ELSE PUREPASCAL} +
332begin +
333 Result := Source shl 24 or +
334 Source shr 24 or +
335 Source shl 8 and $00FF0000 or +
336 Source shr 8 and $0000FF00; +
337end; +
338{$IFEND PUREPASCAL} +
339 +
340procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer); +
341{$IFDEF X86ASM} +
342asm +
343 TEST ECX,ECX +
344 JLE @Exit +
345 PUSH EDI +
346 SUB EAX,4 +
347 SUB EDX,4 +
348@@1: MOV EDI,[EAX + ECX * 4] +
349 BSWAP EDI +
350 MOV [EDX + ECX * 4],EDI +
351 DEC ECX +
352 JNZ @@1 +
353 POP EDI +
354@Exit: +
355end; +
356{$ELSE !X86ASM} +
357var +
358 i: Integer; +
359 T: UInt32; +
360begin +
361 for i := 0 to Count - 1 do +
362 begin +
363 T := TUInt32Array(Source)[i]; +
364 TUInt32Array(Dest)[i] := (T shl 24) or (T shr 24) or +
365 ((T shl 8) and $00FF0000) or ((T shr 8) and $0000FF00); +
366 end; +
367end; +
368{$ENDIF !X86ASM} +
369 +
370function SwapInt64(Source: Int64): Int64; +
371{$IFDEF X86ASM} +
372asm +
373 MOV EDX,Source.DWord[0] +
374 MOV EAX,Source.DWord[4] +
375 BSWAP EDX +
376 BSWAP EAX +
377end; +
378{$ELSE !X86ASM} +
379var +
380 L, H: Cardinal; +
381begin +
382 L := Int64Rec(Source).Lo; +
383 H := Int64Rec(Source).Hi; +
384 L := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00; +
385 H := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00; +
386 Int64Rec(Result).Hi := L; +
387 Int64Rec(Result).Lo := H; +
388end; +
389{$ENDIF !X86ASM} +
390 +
391procedure SwapInt64Buffer(const Source; var Dest; Count: Integer); +
392{$IFDEF X86ASM} +
393asm +
394 TEST ECX,ECX +
395 JLE @Exit +
396 PUSH ESI +
397 PUSH EDI +
398 LEA ESI,[EAX + ECX * 8] +
399 LEA EDI,[EDX + ECX * 8] +
400 NEG ECX +
401@@1: MOV EAX,[ESI + ECX * 8] +
402 MOV EDX,[ESI + ECX * 8 + 4] +
403 BSWAP EAX +
404 BSWAP EDX +
405 MOV [EDI + ECX * 8 + 4],EAX +
406 MOV [EDI + ECX * 8],EDX +
407 INC ECX +
408 JNZ @@1 +
409 POP EDI +
410 POP ESI +
411@Exit: +
412end; +
413{$ELSE !X86ASM} +
414var +
415 H, L: Cardinal; +
416 i: Integer; +
417begin +
418 for i := 0 to Count - 1 do +
419 begin +
420 H := TUInt32Array(Source)[i * 2 ]; +
421 L := TUInt32Array(Source)[i * 2 + 1]; +
422 TUInt32Array(Dest)[i * 2 ] := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00; +
423 TUInt32Array(Dest)[i * 2 + 1] := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00; +
424 end; +
425end; +
426{$ENDIF !X86ASM} +
427 +
428procedure XORBuffers(const Left, Right; Size: Integer; var Dest); +
429// Dest^ = Source1^ xor Source2^ +
430// Buffers must have the same size! +
431{$IFDEF X86ASM} +
432asm +
433 AND ECX,ECX +
434 JZ @@5 +
435 PUSH ESI +
436 PUSH EDI +
437 MOV ESI,EAX +
438 MOV EDI,Dest +
439@@1: TEST ECX,3 +
440 JNZ @@3 +
441@@2: SUB ECX,4 +
442 JL @@4 +
443 MOV EAX,[ESI + ECX] +
444 XOR EAX,[EDX + ECX] +
445 MOV [EDI + ECX],EAX +
446 JMP @@2 +
447@@3: DEC ECX +
448 MOV AL,[ESI + ECX] +
449 XOR AL,[EDX + ECX] +
450 MOV [EDI + ECX],AL +
451 JMP @@1 +
452@@4: POP EDI +
453 POP ESI +
454@@5: +
455end; +
456{$ELSE !X86ASM} +
457var +
458 P, Q, D: PByte; +
459 i: Integer; +
460begin +
461 P := @Left; +
462 Q := @Right; +
463 D := @Dest; +
464 for i := 0 to Size - 1 do +
465 begin +
466 D^ := P^ xor Q^; +
467 Inc(P); +
468 Inc(Q); +
469 Inc(D); +
470 end; +
471end; +
472{$ENDIF !X86ASM} +
473 +
474const +
475 WipeCount = 4; +
476 WipeBytes: array[0..WipeCount - 1] of Byte = ( +
477 $55, // 0101 0101 +
478 $AA, // 1010 1010 +
479 $FF, // 1111 1111 +
480 $00 // 0000 0000 +
481 ); +
482 +
483procedure ProtectBuffer(var Buffer; Size: NativeUInt); +
484var +
485 Count: Integer; +
486begin +
487 if Size > 0 then +
488 begin +
489 for Count := 0 to WipeCount - 1 do +
490 FillChar(Buffer, Size, WipeBytes[Count]); +
491 end; +
492end; +
493 +
494procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0); +
495const +
496 BufferSize = 512; +
497var +
498 Buffer: string; +
499 Count, Bytes, Size: Integer; +
500 Position: Integer; +
501begin +
502 Position := Stream.Position; +
503 Size := Stream.Size; +
504 if SizeToProtect <= 0 then +
505 begin +
506 SizeToProtect := Size; +
507 Position := 0; +
508 end else +
509 begin +
510 Dec(Size, Position); +
511 if SizeToProtect > Size then +
512 SizeToProtect := Size; +
513 end; +
514 SetLength(Buffer, BufferSize); +
515 for Count := 0 to WipeCount -1 do +
516 begin +
517 Stream.Position := Position; +
518 Size := SizeToProtect; +
519 {$IF CompilerVersion >= 24.0} +
520 FillChar(Buffer[Low(Buffer)], BufferSize, WipeBytes[Count]); +
521 {$ELSE} +
522 FillChar(Buffer[1], BufferSize, WipeBytes[Count]); +
523 {$IFEND} +
524 while Size > 0 do +
525 begin +
526 Bytes := Size; +
527 if Bytes > BufferSize then +
528 Bytes := BufferSize; +
529 {$IF CompilerVersion >= 24.0} +
530 Stream.Write(Buffer[Low(Buffer)], Bytes); +
531 {$ELSE} +
532 Stream.Write(Buffer[1], Bytes); +
533 {$IFEND} +
534 Dec(Size, Bytes); +
535 end; +
536 end; +
537end; +
538 +
539procedure ProtectBytes(var Source: TBytes); +
540begin +
541 if (Source <> nil) and (Length(Source) > 0) then +
542 begin +
543 ProtectBuffer(Source[0], Length(Source)); +
544 SetLength(Source, 0); +
545 end; +
546end; +
547 +
548procedure ProtectString(var Source: string); +
549begin +
550 if Length(Source) > 0 then +
551 begin +
552 System.UniqueString(Source); +
553 {$IF CompilerVersion >= 24.0} +
554 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)])); +
555 {$ELSE} +
556 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1])); +
557 {$IFEND} +
558 Source := ''; +
559 end; +
560end; +
561 +
562procedure ProtectString(var Source: RawByteString); +
563begin +
564 if Length(Source) > 0 then +
565 begin +
566 // UniqueString(Source); cannot be called with a RawByteString as there is +
567 // no overload for it, so we need to call our own one. +
568 DECUtilRawByteStringHelper.UniqueString(Source); +
569 {$IF CompilerVersion >= 24.0} +
570 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)])); +
571 {$ELSE} +
572 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1])); +
573 {$IFEND} +
574 Source := ''; +
575 end; +
576end; +
577 +
578{$IFNDEF NEXTGEN} +
579procedure ProtectString(var Source: AnsiString); overload; +
580begin +
581 if Length(Source) > 0 then +
582 begin +
583 System.UniqueString(Source); +
584 {$IF CompilerVersion >= 24.0} +
585 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)])); +
586 {$ELSE} +
587 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1])); +
588 {$IFEND} +
589 Source := ''; +
590 end; +
591end; +
592 +
593procedure ProtectString(var Source: WideString); overload; +
594begin +
595 if Length(Source) > 0 then +
596 begin +
597 System.UniqueString(Source); // for OS <> Win, WideString is not RefCounted on Win +
598 {$IF CompilerVersion >= 24.0} +
599 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)])); +
600 {$ELSE} +
601 ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1])); +
602 {$IFEND} +
603 Source := ''; +
604 end; +
605end; +
606{$ENDIF} +
607 +
608function BytesToRawString(const Source: TBytes): RawByteString; +
609begin +
610 SetLength(Result, Length(Source)); +
611 if Length(Source) > 0 then +
612 begin +
613 // determine lowest string index for handling of ZeroBasedStrings +
614 {$IF CompilerVersion >= 24.0} +
615 Move(Source[0], Result[Low(result)], Length(Source)); +
616 {$ELSE} +
617 Move(Source[0], Result[1], Length(Source)); +
618 {$IFEND} +
619 end; +
620end; +
621 +
622function IsEqual(const a, b : TBytes):Boolean; +
623begin +
624 if (length(a) <> length(b)) then +
625 Result := false +
626 else +
627 if (Length(a) > 0) then +
628 Result := CompareMem(@a[0], @b[0], length(a)) +
629 else +
630 Result := true; +
631end; +
632 +
633end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/Output/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html b/Unit Tests/CodeCoverage/Output/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html new file mode 100644 index 00000000..8dead438 --- /dev/null +++ b/Unit Tests/CodeCoverage/Output/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html @@ -0,0 +1,240 @@ + + + + +Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECUtilRawByteStringHelper (..\..\Source\DECUtilRawByteStringHelper.pas).

+

Generated at 30.11.2022 22:06:19 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for ..\..\Source\DECUtilRawByteStringHelper.pas

+
Number of lines covered34
Number of lines with code gen38
Line coverage89.5 %
+

+ + +
1{***************************************************************************** +
2 The DEC team (see file NOTICE.txt) licenses this file +
3 to you under the Apache License, Version 2.0 (the +
4 "License"); you may not use this file except in compliance +
5 with the License. A copy of this licence is found in the root directory of +
6 this project in the file LICENCE.txt or alternatively at +
7 +
8 http://www.apache.org/licenses/LICENSE-2.0 +
9 +
10 Unless required by applicable law or agreed to in writing, +
11 software distributed under the License is distributed on an +
12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +
13 KIND, either express or implied. See the License for the +
14 specific language governing permissions and limitations +
15 under the License. +
16*****************************************************************************} +
17unit DECUtilRawByteStringHelper; +
18 +
19interface +
20 +
21{$INCLUDE DECOptions.inc} +
22 +
23/// <summary> +
24/// System.pas does not contain a RawByteString compatible version of this +
25/// routine so we created our own, copying and adapting code from system.pas +
26/// for the NextGen compiler and using a solution from Remy Lebeau for the +
27/// Win32/Win64 compiler. +
28/// </summary> +
29/// <param name="str"> +
30/// String to be processed +
31/// </param> +
32procedure UniqueString(var Str: RawByteString); +
33 +
34implementation +
35 +
36uses +
37 {$IFDEF FPC} +
38 SysUtils; +
39 {$ELSE} +
40 System.SysUtils; +
41 {$ENDIF} +
42 +
43type +
44 // Duplicate of the System.pas internal declaration. Needs to be kept in sync. +
45 PStrRec = ^StrRec; +
46 StrRec = packed record +
47 {$IFDEF CPU64BITS} +
48 _Padding: Integer; // Make 16 byte align for payload.. +
49 {$ENDIF} +
50 codePage: Word; +
51 elemSize: Word; +
52 refCnt: Integer; +
53 length: Integer; +
54 end; +
55 +
56function _NewAnsiString(CharLength: Integer; CodePage: Word): Pointer; +
57var +
58 P: PStrRec; +
59begin +
60 Result := nil; +
61 if CharLength > 0 then +
62 begin +
63 // Alloc an extra null for strings with even length. This has no actual +
64 // cost since the allocator will round up the request to an even size +
65 // anyway. All _WideStr allocations have even length, and need a double +
66 // null terminator. +
67 if CharLength >= MaxInt - SizeOf(StrRec) then +
68 raise EIntOverflow.Create( +
69 'IntOverflow in _NewAnsiString. CharLength: ' + IntToStr(CharLength)); +
70 +
71 GetMem(P, CharLength + SizeOf(StrRec) + 1 + ((CharLength + 1) and 1)); +
72 Result := Pointer(PByte(P) + SizeOf(StrRec)); +
73 P.length := CharLength; +
74 P.refcnt := 1; +
75 if CodePage = 0 then +
76{$IFDEF NEXTGEN} +
77 CodePage := Word(CP_UTF8); +
78{$ELSE NEXTGEN} +
79 CodePage := Word(DefaultSystemCodePage); +
80{$ENDIF NEXTGEN} +
81 P.codePage := CodePage; +
82 P.elemSize := 1; +
83 PWideChar(Result)[CharLength div 2] := #0; // length guaranteed >= 2 +
84 end; +
85end; +
86 +
87function _LStrClr(var S): Pointer; +
88var +
89 P: PStrRec; +
90begin +
91 if Pointer(S) <> nil then +
92 begin +
93 P := Pointer(PByte(S) - SizeOf(StrRec)); +
94 Pointer(S) := nil; +
95 if P.refCnt > 0 then +
96 begin +
97 {$IFDEF FPC} +
98 if InterlockedDecrement(P.refCnt) = 0 then +
99 {$ELSE} +
100 {$IF CompilerVersion >= 24.0} +
101 if AtomicDecrement(P.refCnt) = 0 then +
102 {$ELSE} +
103 Dec(P.refCnt); +
104 if (P.refCnt = 0) then +
105 {$IFEND} +
106 {$ENDIF} +
107 FreeMem(P); +
108 end; +
109 end; +
110 Result := @S; +
111end; +
112 +
113function InternalUniqueStringA(var Str: RawByteString): Pointer; +
114var +
115 P: PStrRec; +
116begin +
117 Result := Pointer(Str); +
118 if Result <> nil then +
119 begin +
120 Result := Pointer(Str); +
121 P := Pointer(PByte(Str) - sizeof(StrRec)); +
122 if P.refCnt <> 1 then +
123 begin +
124 Result := _NewAnsiString(P.length, P.codePage); +
125 Move(Pointer(Str)^, Pointer(Result)^, P.length); +
126 _LStrClr(Str); +
127 Pointer(Str) := Result; +
128 end; +
129 end; +
130end; +
131 +
132procedure UniqueString(var Str: RawByteString); +
133begin +
134 InternalUniqueStringA(Str); +
135end; +
136 +
137end. +
+ + + + diff --git a/Unit Tests/CodeCoverage/CodeCoverage_Summary.xml b/Unit Tests/CodeCoverage/U/CodeCoverage_Summary.xml similarity index 98% rename from Unit Tests/CodeCoverage/CodeCoverage_Summary.xml rename to Unit Tests/CodeCoverage/U/CodeCoverage_Summary.xml index cf3bc614..43ade8c2 100644 --- a/Unit Tests/CodeCoverage/CodeCoverage_Summary.xml +++ b/Unit Tests/CodeCoverage/U/CodeCoverage_Summary.xml @@ -1,4338 +1,4338 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Unit Tests/CodeCoverage/CodeCoverage_summary.html b/Unit Tests/CodeCoverage/U/CodeCoverage_summary.html similarity index 98% rename from Unit Tests/CodeCoverage/CodeCoverage_summary.html rename to Unit Tests/CodeCoverage/U/CodeCoverage_summary.html index 9168c865..22b2d16c 100644 --- a/Unit Tests/CodeCoverage/CodeCoverage_summary.html +++ b/Unit Tests/CodeCoverage/U/CodeCoverage_summary.html @@ -1,59 +1,59 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Summary Coverage Report

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Aggregate statistics for all modules

- - - - - - - - - - - - - - - - - - - - -
Unit NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECBaseClass7878100%
DECCipherBase13317775%
DECCipherFormats14116187%
DECCipherModes37845782%
DECCipherModesGCM12012397%
DECCiphers3260337096%
DECCRC22524492%
DECFormat57859297%
DECFormatBase9711485%
DECHash293962941499%
DECHashAuthentication17717998%
DECHashBase18621686%
DECHashBitBase88100%
DECRandom919496%
DECTypes030%
DECUtil146146100%
DECUtilRawByteStringHelper343889%
Aggregated for all units350483541498%
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Summary Coverage Report

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Aggregate statistics for all modules

+ + + + + + + + + + + + + + + + + + + + +
Unit NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECBaseClass7878100%
DECCipherBase13317775%
DECCipherFormats14116187%
DECCipherModes37845782%
DECCipherModesGCM12012397%
DECCiphers3260337096%
DECCRC22524492%
DECFormat57859297%
DECFormatBase9711485%
DECHash293962941499%
DECHashAuthentication17717998%
DECHashBase18621686%
DECHashBitBase88100%
DECRandom919496%
DECTypes030%
DECUtil146146100%
DECUtilRawByteStringHelper343889%
Aggregated for all units350483541498%
+ + diff --git a/Unit Tests/CodeCoverage/DECBaseClass(DECBaseClass.pas).html b/Unit Tests/CodeCoverage/U/DECBaseClass(DECBaseClass.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECBaseClass(DECBaseClass.pas).html rename to Unit Tests/CodeCoverage/U/DECBaseClass(DECBaseClass.pas).html index e03d6b1d..73db95a1 100644 --- a/Unit Tests/CodeCoverage/DECBaseClass(DECBaseClass.pas).html +++ b/Unit Tests/CodeCoverage/U/DECBaseClass(DECBaseClass.pas).html @@ -1,418 +1,418 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECBaseClass (D:\Projekte\DECGitMaster\Source\DECBaseClass.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECBaseClass.pas

-
Number of lines covered77
Number of lines with code gen77
Line coverage100%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
The DEC team (see file NOTICE.txt) licenses this file
3
to you under the Apache License, Version 2.0 (the
4
"License"); you may not use this file except in compliance
5
with the License. A copy of this licence is found in the root directory
6
of this project in the file LICENCE.txt or alternatively at
7
8
  http://www.apache.org/licenses/LICENSE-2.0
9
10
Unless required by applicable law or agreed to in writing,
11
software distributed under the License is distributed on an
12
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
KIND, either express or implied.  See the License for the
14
specific language governing permissions and limitations
15
under the License.
16
*****************************************************************************}
17
18
unit DECBaseClass;
19
20
interface
21
22
{$INCLUDE DECOptions.inc}
23
24
uses
25
  {$IFDEF FPC}
26
  SysUtils, Classes,
27
  {$ELSE}
28
  System.SysUtils, System.Classes,
29
  {$ENDIF}
30
  Generics.Collections;
31
32
type
33
  /// <summary>
34
  ///   Class type for the base class from which all other DEC classes inherit
35
  ///   in order to be able to create lists of classes, pick an entry of such a
36
  ///   list and construct an object out of it
37
  /// </summary>
38
  TDECClass = class of TDECObject;
39
40
  /// <summary>
41
  ///   Generic list of DEC classes with the identity as key
42
  /// </summary>
43
  TDECClassList = class(TDictionary<Int64, TDECClass>)
44
  strict private
45
    /// <summary>
46
    ///   Checks if a given class type has the same short class name as given
47
    /// </summary>
48
    /// <param name="Name">
49
    ///   Short class name, e.g. HEXL
50
    /// </param>
51
    /// <param name="ClassType">
52
    ///   Class reference to check against
53
    /// </param>
54
    /// <returns>
55
    ///   true if the class reference is for the given short name
56
    /// </returns>
57
    function DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean;
58
    /// <summary>
59
    ///   Checks if a given class type has the same long class name as given
60
    /// </summary>
61
    /// <param name="Name">
62
    ///   Long class name, e.g. TFormat_HEXL
63
    /// </param>
64
    /// <param name="ClassType">
65
    ///   Class reference to check against
66
    /// </param>
67
    /// <returns>
68
    ///   true if the class reference is for the given long name
69
    /// </returns>
70
    function DoFindNameLong(const Name: string; const ClassType: TClass): Boolean;
71
  public
72
    /// <summary>
73
    ///   Tries to find a class type by its name
74
    /// </summary>
75
    /// <param name="Name">
76
    ///   Name to look for in the list
77
    /// </param>
78
    /// <returns>
79
    ///   Returns the class type if found. if it could not be found a
80
    ///   EDECClassNotRegisteredException will be thrown
81
    /// </returns>
82
    function ClassByName(const Name: string): TDECClass;
83
84
    /// <summary>
85
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
86
    ///   Useful for file headers, so they can easily encode numerically which
87
    ///   cipher class was being used.
88
    /// </summary>
89
    /// <param name="Identity">
90
    ///   Identity to look for
91
    /// </param>
92
    /// <returns>
93
    ///   Returns the class type of the class with the specified identity value
94
    ///   or throws an EDECClassNotRegisteredException exception if no class
95
    ///   with the given identity has been found
96
    /// </returns>
97
    function ClassByIdentity(Identity: Int64): TDECClass;
98
    /// <summary>
99
    ///   Returns a list of all classes registered in this list
100
    /// </summary>
101
    /// <param name="List">
102
    ///   List where the registered classes shall be added to. The string is the
103
    ///   long class name, the object the class reference. The list is being
104
    ///   cleared first and when an uncreated list is given nothing is being done
105
    /// </param>
106
    procedure GetClassList(List: TStrings);
107
  end;
108
109
  /// <summary>
110
  ///   Parent class of all cryptography and hash implementations
111
  /// </summary>
112
  TDECObject = class(TInterfacedObject)
113
  public
114
    /// <summary>
115
    ///   Overrideable but otherwise empty constructor (calls his parent
116
    ///   constructor or course)
117
    /// </summary>
118
    constructor Create; virtual;
119
    /// <summary>
120
    ///   This function creates a unique Signature for each class using the
121
    ///   following naming scheme:
122
    ///
123
    ///   'Z' repeated n times (to fill space of 256 chars) + DEC ClassName
124
    ///
125
    ///   The CRC32 of the generated Signature is used as our unique Identity
126
    ///
127
    ///   Important Note:
128
    ///   DEC 5.2 introduced a bug which breaks backward compatibility with
129
    ///   DEC 5.1 by using String instead of AnsiString. This leads to different
130
    ///   Identities when using Unicode capable Delphi Versions (Delphi 2009+).
131
    ///
132
    ///   To restore the *wrong* behavior of DEC 5.2 enable the DEC52_IDENTITY option
133
    ///   in the configuration file DECOptions.inc.
134
    ///
135
    ///   With this and all future versions we will keep backward compatibility.
136
    /// </summary>
137
    class function Identity: Int64;
138
    {$IFDEF X86ASM}
139
    /// <summary>
140
    ///   Override FreeInstance to fill allocated Object with zeros, that is
141
    ///   safer for any access to invalid Pointers of released Objects.
142
    /// </summary>
143
    procedure FreeInstance; override;
144
    {$ENDIF X86ASM}
145
146
    /// <summary>
147
    ///   Registers this class type in the list of DEC classes (ClassList).
148
    ///   Trying to register an already registered class will raise an exception.
149
    /// </summary>
150
    /// <param name="ClassList">
151
    ///   List to which the own class type shall be added. This allows subclasses
152
    ///   to have their own lists
153
    /// </param>
154
    class procedure RegisterClass(ClassList : TDECClassList);
155
    /// <summary>
156
    ///   Removes tthis class type from the list of registered DEC classes
157
    ///   (ClassList). Trying to unregister a non registered class is a do nothing
158
    ///   operation.
159
    /// </summary>
160
    /// <param name="ClassList">
161
    ///   List from which the own class type shall be removed. This allows
162
    ///   subclasses to have their own lists
163
    /// </param>
164
    class procedure UnregisterClass(ClassList : TDECClassList);
165
166
    /// <summary>
167
    ///   Returns short Classname of any DEC derrived class. This is the part
168
    ///   of the class name after the _ so for THash_RipeMD160 it will be RipeMD160.
169
    /// </summary>
170
    /// <param name="ClassName">
171
    ///   Complete class name
172
    /// </param>
173
    /// <returns>
174
    ///   Short class name
175
    /// </returns>
176
    class function GetShortClassNameFromName(const ClassName: string): string;
177
178
    /// <summary>
179
    ///   Returns short Classname of any DEC derrived class type. This is the part
180
    ///   of the class name after the _ so for THash_RipeMD160 it will be RipeMD160.
181
    /// </summary>
182
    /// <returns>
183
    ///   Short class name or empty string if ClassType is nil.
184
    /// </returns>
185
    class function GetShortClassName: string;
186
  end;
187
188
var
189
  /// <summary>
190
  ///   default used for generating class identities
191
  /// </summary>
192
  IdentityBase: Int64 = $25844852;
193
194
  /// <summary>
195
  ///   Size in bytes used for buffering data read from or written to a stream
196
  /// </summary>
197
  StreamBufferSize: Integer = 8192;
198
199
  {$IFDEF NEXTGEN}
200
  EmptyStr: string = '';
201
  /// <summary>
202
  ///   Pointer to an empty string. For non Nextgen platforms declared in SysUtils
203
  ///   for backwards compatibility only. Here declared for NextGen only and
204
  ///   should get replaced
205
  /// </summary>
206
  NullStr: PString = @EmptyStr;
207
  {$ENDIF}
208
209
implementation
210
211
uses
212
  DECTypes, DECCRC;
213
214
resourcestring
215
  sClassNotRegistered = 'Class %s is not registered';
216
  sWrongIdentity      = 'Another class "%s" with the same identity as "%s" has already been registered';
217
218
constructor TDECObject.Create;
219
begin
220
  inherited Create;
221
end;
222
223
class function TDECObject.Identity: Int64;
224
var
225
  Signature: {$IFDEF DEC52_IDENTITY}string{$ELSE !DEC52_IDENTITY}RawByteString{$ENDIF !DEC52_IDENTITY};
226
begin
227
  {$IFDEF DEC52_IDENTITY}
228
  Signature := StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName);
229
    {$IF CompilerVersion >= 24.0}
230
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
231
                                  Length(Signature) * SizeOf(Signature[Low(Signature)]));
232
    {$ELSE}
233
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
234
                                  Length(Signature) * SizeOf(Signature[1]));
235
    {$IFEND}
236
  {$ELSE !DEC52_IDENTITY}
237
  Signature := RawByteString(StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName));
238
    {$IF CompilerVersion >= 24.0}
239
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
240
                                  Length(Signature) * SizeOf(Signature[Low(Signature)]));
241
    {$ELSE}
242
    Result := CRC32(IdentityBase, Signature[1],
243
                                  Length(Signature) * SizeOf(Signature[1]));
244
    {$IFEND}
245
  {$ENDIF !DEC52_IDENTITY}
246
end;
247
248
class procedure TDECObject.RegisterClass(ClassList : TDECClassList);
249
begin
250
  ClassList.Add(Identity, self);
251
end;
252
253
{$IFDEF X86ASM}
254
procedure TDECObject.FreeInstance;
255
// Override FreeInstance to fill allocated Object with zeros, that is
256
// safer for any access to invalid Pointers of released Objects
257
asm
258
      PUSH    EBX
259
      PUSH    EDI
260
      MOV     EBX,EAX
261
      CALL    TObject.CleanupInstance
262
      MOV     EAX,[EBX]
263
      CALL    TObject.InstanceSize
264
      MOV     ECX,EAX
265
      MOV     EDI,EBX
266
      XOR     EAX,EAX
267
      REP     STOSB
268
      MOV     EAX,EBX
269
      CALL    System.@FreeMem
270
      POP     EDI
271
      POP     EBX
272
end;
273
{$ENDIF X86ASM}
274
275
class procedure TDECObject.UnregisterClass(ClassList : TDECClassList);
276
begin
277
  ClassList.Remove(Identity);
278
end;
279
280
class function TDECObject.GetShortClassName: string;
281
begin
282
  Result := GetShortClassNameFromName(self.ClassName);
283
end;
284
285
class function TDECObject.GetShortClassNameFromName(const ClassName: string): string;
286
var
287
  i: Integer;
288
begin
289
  Result := ClassName;
290
  i := Pos('_', Result);
291
  if i > 0 then
292
    Delete(Result, 1, i);
293
end;
294
295
{ TDECClassList }
296
297
function TDECClassList.DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean;
298
begin
299
  Result := CompareText(ClassType.GetShortClassName, Name) = 0;
300
end;
301
302
function TDECClassList.DoFindNameLong(const Name: string; const ClassType: TClass): Boolean;
303
var
304
  s: string;
305
begin
306
  s := Name;
307
  Result := CompareText(ClassType.ClassName, Name) = 0;
308
end;
309
310
function TDECClassList.ClassByIdentity(Identity: Int64): TDECClass;
311
begin
312
  try
313
    Result := Items[Identity];
314
  except
315
    On EListError do
316
      raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered,
317
                                                         [IntToHEX(Identity, 8)]);
318
  end;
319
end;
320
321
function TDECClassList.ClassByName(const Name: string): TDECClass;
322
var
323
  FindNameShort : Boolean;
324
  Pair          : TPair<Int64, TDECCLass>;
325
begin
326
  Result := nil;
327
328
  if Length(Name) > 0 then
329
  begin
330
    FindNameShort := TDECClass.GetShortClassNameFromName(Name) = Name;
331
332
    for Pair in self do
333
    begin
334
      if FindNameShort then
335
      begin
336
        if DoFindNameShort(Name, Pair.Value) then
337
        begin
338
          result := Pair.Value;
339
          break;
340
        end;
341
      end
342
      else
343
        if DoFindNameLong(Name, Pair.Value) then
344
        begin
345
          result := Pair.Value;
346
          break;
347
        end;
348
    end;
349
  end;
350
351
  if Result = nil then
352
    raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered, [Name]);
353
end;
354
355
procedure TDECClassList.GetClassList(List: TStrings);
356
var
357
  Pair : TPair<Int64, TDECCLass>;
358
begin
359
  if List <> nil then
360
  try
361
    List.BeginUpdate;
362
    List.Clear;
363
364
    for Pair in self do
365
      List.AddObject(Pair.Value.ClassName, TObject(Pair.Value));
366
367
  finally
368
    List.EndUpdate;
369
  end;
370
end;
371
372
initialization
373
374
finalization
375
376
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECBaseClass (D:\Projekte\DECGitMaster\Source\DECBaseClass.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECBaseClass.pas

+
Number of lines covered77
Number of lines with code gen77
Line coverage100%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
The DEC team (see file NOTICE.txt) licenses this file
3
to you under the Apache License, Version 2.0 (the
4
"License"); you may not use this file except in compliance
5
with the License. A copy of this licence is found in the root directory
6
of this project in the file LICENCE.txt or alternatively at
7
8
  http://www.apache.org/licenses/LICENSE-2.0
9
10
Unless required by applicable law or agreed to in writing,
11
software distributed under the License is distributed on an
12
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
KIND, either express or implied.  See the License for the
14
specific language governing permissions and limitations
15
under the License.
16
*****************************************************************************}
17
18
unit DECBaseClass;
19
20
interface
21
22
{$INCLUDE DECOptions.inc}
23
24
uses
25
  {$IFDEF FPC}
26
  SysUtils, Classes,
27
  {$ELSE}
28
  System.SysUtils, System.Classes,
29
  {$ENDIF}
30
  Generics.Collections;
31
32
type
33
  /// <summary>
34
  ///   Class type for the base class from which all other DEC classes inherit
35
  ///   in order to be able to create lists of classes, pick an entry of such a
36
  ///   list and construct an object out of it
37
  /// </summary>
38
  TDECClass = class of TDECObject;
39
40
  /// <summary>
41
  ///   Generic list of DEC classes with the identity as key
42
  /// </summary>
43
  TDECClassList = class(TDictionary<Int64, TDECClass>)
44
  strict private
45
    /// <summary>
46
    ///   Checks if a given class type has the same short class name as given
47
    /// </summary>
48
    /// <param name="Name">
49
    ///   Short class name, e.g. HEXL
50
    /// </param>
51
    /// <param name="ClassType">
52
    ///   Class reference to check against
53
    /// </param>
54
    /// <returns>
55
    ///   true if the class reference is for the given short name
56
    /// </returns>
57
    function DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean;
58
    /// <summary>
59
    ///   Checks if a given class type has the same long class name as given
60
    /// </summary>
61
    /// <param name="Name">
62
    ///   Long class name, e.g. TFormat_HEXL
63
    /// </param>
64
    /// <param name="ClassType">
65
    ///   Class reference to check against
66
    /// </param>
67
    /// <returns>
68
    ///   true if the class reference is for the given long name
69
    /// </returns>
70
    function DoFindNameLong(const Name: string; const ClassType: TClass): Boolean;
71
  public
72
    /// <summary>
73
    ///   Tries to find a class type by its name
74
    /// </summary>
75
    /// <param name="Name">
76
    ///   Name to look for in the list
77
    /// </param>
78
    /// <returns>
79
    ///   Returns the class type if found. if it could not be found a
80
    ///   EDECClassNotRegisteredException will be thrown
81
    /// </returns>
82
    function ClassByName(const Name: string): TDECClass;
83
84
    /// <summary>
85
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
86
    ///   Useful for file headers, so they can easily encode numerically which
87
    ///   cipher class was being used.
88
    /// </summary>
89
    /// <param name="Identity">
90
    ///   Identity to look for
91
    /// </param>
92
    /// <returns>
93
    ///   Returns the class type of the class with the specified identity value
94
    ///   or throws an EDECClassNotRegisteredException exception if no class
95
    ///   with the given identity has been found
96
    /// </returns>
97
    function ClassByIdentity(Identity: Int64): TDECClass;
98
    /// <summary>
99
    ///   Returns a list of all classes registered in this list
100
    /// </summary>
101
    /// <param name="List">
102
    ///   List where the registered classes shall be added to. The string is the
103
    ///   long class name, the object the class reference. The list is being
104
    ///   cleared first and when an uncreated list is given nothing is being done
105
    /// </param>
106
    procedure GetClassList(List: TStrings);
107
  end;
108
109
  /// <summary>
110
  ///   Parent class of all cryptography and hash implementations
111
  /// </summary>
112
  TDECObject = class(TInterfacedObject)
113
  public
114
    /// <summary>
115
    ///   Overrideable but otherwise empty constructor (calls his parent
116
    ///   constructor or course)
117
    /// </summary>
118
    constructor Create; virtual;
119
    /// <summary>
120
    ///   This function creates a unique Signature for each class using the
121
    ///   following naming scheme:
122
    ///
123
    ///   'Z' repeated n times (to fill space of 256 chars) + DEC ClassName
124
    ///
125
    ///   The CRC32 of the generated Signature is used as our unique Identity
126
    ///
127
    ///   Important Note:
128
    ///   DEC 5.2 introduced a bug which breaks backward compatibility with
129
    ///   DEC 5.1 by using String instead of AnsiString. This leads to different
130
    ///   Identities when using Unicode capable Delphi Versions (Delphi 2009+).
131
    ///
132
    ///   To restore the *wrong* behavior of DEC 5.2 enable the DEC52_IDENTITY option
133
    ///   in the configuration file DECOptions.inc.
134
    ///
135
    ///   With this and all future versions we will keep backward compatibility.
136
    /// </summary>
137
    class function Identity: Int64;
138
    {$IFDEF X86ASM}
139
    /// <summary>
140
    ///   Override FreeInstance to fill allocated Object with zeros, that is
141
    ///   safer for any access to invalid Pointers of released Objects.
142
    /// </summary>
143
    procedure FreeInstance; override;
144
    {$ENDIF X86ASM}
145
146
    /// <summary>
147
    ///   Registers this class type in the list of DEC classes (ClassList).
148
    ///   Trying to register an already registered class will raise an exception.
149
    /// </summary>
150
    /// <param name="ClassList">
151
    ///   List to which the own class type shall be added. This allows subclasses
152
    ///   to have their own lists
153
    /// </param>
154
    class procedure RegisterClass(ClassList : TDECClassList);
155
    /// <summary>
156
    ///   Removes tthis class type from the list of registered DEC classes
157
    ///   (ClassList). Trying to unregister a non registered class is a do nothing
158
    ///   operation.
159
    /// </summary>
160
    /// <param name="ClassList">
161
    ///   List from which the own class type shall be removed. This allows
162
    ///   subclasses to have their own lists
163
    /// </param>
164
    class procedure UnregisterClass(ClassList : TDECClassList);
165
166
    /// <summary>
167
    ///   Returns short Classname of any DEC derrived class. This is the part
168
    ///   of the class name after the _ so for THash_RipeMD160 it will be RipeMD160.
169
    /// </summary>
170
    /// <param name="ClassName">
171
    ///   Complete class name
172
    /// </param>
173
    /// <returns>
174
    ///   Short class name
175
    /// </returns>
176
    class function GetShortClassNameFromName(const ClassName: string): string;
177
178
    /// <summary>
179
    ///   Returns short Classname of any DEC derrived class type. This is the part
180
    ///   of the class name after the _ so for THash_RipeMD160 it will be RipeMD160.
181
    /// </summary>
182
    /// <returns>
183
    ///   Short class name or empty string if ClassType is nil.
184
    /// </returns>
185
    class function GetShortClassName: string;
186
  end;
187
188
var
189
  /// <summary>
190
  ///   default used for generating class identities
191
  /// </summary>
192
  IdentityBase: Int64 = $25844852;
193
194
  /// <summary>
195
  ///   Size in bytes used for buffering data read from or written to a stream
196
  /// </summary>
197
  StreamBufferSize: Integer = 8192;
198
199
  {$IFDEF NEXTGEN}
200
  EmptyStr: string = '';
201
  /// <summary>
202
  ///   Pointer to an empty string. For non Nextgen platforms declared in SysUtils
203
  ///   for backwards compatibility only. Here declared for NextGen only and
204
  ///   should get replaced
205
  /// </summary>
206
  NullStr: PString = @EmptyStr;
207
  {$ENDIF}
208
209
implementation
210
211
uses
212
  DECTypes, DECCRC;
213
214
resourcestring
215
  sClassNotRegistered = 'Class %s is not registered';
216
  sWrongIdentity      = 'Another class "%s" with the same identity as "%s" has already been registered';
217
218
constructor TDECObject.Create;
219
begin
220
  inherited Create;
221
end;
222
223
class function TDECObject.Identity: Int64;
224
var
225
  Signature: {$IFDEF DEC52_IDENTITY}string{$ELSE !DEC52_IDENTITY}RawByteString{$ENDIF !DEC52_IDENTITY};
226
begin
227
  {$IFDEF DEC52_IDENTITY}
228
  Signature := StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName);
229
    {$IF CompilerVersion >= 24.0}
230
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
231
                                  Length(Signature) * SizeOf(Signature[Low(Signature)]));
232
    {$ELSE}
233
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
234
                                  Length(Signature) * SizeOf(Signature[1]));
235
    {$IFEND}
236
  {$ELSE !DEC52_IDENTITY}
237
  Signature := RawByteString(StringOfChar(#$5A, 256 - Length(ClassName)) + UpperCase(ClassName));
238
    {$IF CompilerVersion >= 24.0}
239
    Result := CRC32(IdentityBase, Signature[Low(Signature)],
240
                                  Length(Signature) * SizeOf(Signature[Low(Signature)]));
241
    {$ELSE}
242
    Result := CRC32(IdentityBase, Signature[1],
243
                                  Length(Signature) * SizeOf(Signature[1]));
244
    {$IFEND}
245
  {$ENDIF !DEC52_IDENTITY}
246
end;
247
248
class procedure TDECObject.RegisterClass(ClassList : TDECClassList);
249
begin
250
  ClassList.Add(Identity, self);
251
end;
252
253
{$IFDEF X86ASM}
254
procedure TDECObject.FreeInstance;
255
// Override FreeInstance to fill allocated Object with zeros, that is
256
// safer for any access to invalid Pointers of released Objects
257
asm
258
      PUSH    EBX
259
      PUSH    EDI
260
      MOV     EBX,EAX
261
      CALL    TObject.CleanupInstance
262
      MOV     EAX,[EBX]
263
      CALL    TObject.InstanceSize
264
      MOV     ECX,EAX
265
      MOV     EDI,EBX
266
      XOR     EAX,EAX
267
      REP     STOSB
268
      MOV     EAX,EBX
269
      CALL    System.@FreeMem
270
      POP     EDI
271
      POP     EBX
272
end;
273
{$ENDIF X86ASM}
274
275
class procedure TDECObject.UnregisterClass(ClassList : TDECClassList);
276
begin
277
  ClassList.Remove(Identity);
278
end;
279
280
class function TDECObject.GetShortClassName: string;
281
begin
282
  Result := GetShortClassNameFromName(self.ClassName);
283
end;
284
285
class function TDECObject.GetShortClassNameFromName(const ClassName: string): string;
286
var
287
  i: Integer;
288
begin
289
  Result := ClassName;
290
  i := Pos('_', Result);
291
  if i > 0 then
292
    Delete(Result, 1, i);
293
end;
294
295
{ TDECClassList }
296
297
function TDECClassList.DoFindNameShort(const Name: string; const ClassType: TDECClass): Boolean;
298
begin
299
  Result := CompareText(ClassType.GetShortClassName, Name) = 0;
300
end;
301
302
function TDECClassList.DoFindNameLong(const Name: string; const ClassType: TClass): Boolean;
303
var
304
  s: string;
305
begin
306
  s := Name;
307
  Result := CompareText(ClassType.ClassName, Name) = 0;
308
end;
309
310
function TDECClassList.ClassByIdentity(Identity: Int64): TDECClass;
311
begin
312
  try
313
    Result := Items[Identity];
314
  except
315
    On EListError do
316
      raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered,
317
                                                         [IntToHEX(Identity, 8)]);
318
  end;
319
end;
320
321
function TDECClassList.ClassByName(const Name: string): TDECClass;
322
var
323
  FindNameShort : Boolean;
324
  Pair          : TPair<Int64, TDECCLass>;
325
begin
326
  Result := nil;
327
328
  if Length(Name) > 0 then
329
  begin
330
    FindNameShort := TDECClass.GetShortClassNameFromName(Name) = Name;
331
332
    for Pair in self do
333
    begin
334
      if FindNameShort then
335
      begin
336
        if DoFindNameShort(Name, Pair.Value) then
337
        begin
338
          result := Pair.Value;
339
          break;
340
        end;
341
      end
342
      else
343
        if DoFindNameLong(Name, Pair.Value) then
344
        begin
345
          result := Pair.Value;
346
          break;
347
        end;
348
    end;
349
  end;
350
351
  if Result = nil then
352
    raise EDECClassNotRegisteredException.CreateResFmt(@sClassNotRegistered, [Name]);
353
end;
354
355
procedure TDECClassList.GetClassList(List: TStrings);
356
var
357
  Pair : TPair<Int64, TDECCLass>;
358
begin
359
  if List <> nil then
360
  try
361
    List.BeginUpdate;
362
    List.Clear;
363
364
    for Pair in self do
365
      List.AddObject(Pair.Value.ClassName, TObject(Pair.Value));
366
367
  finally
368
    List.EndUpdate;
369
  end;
370
end;
371
372
initialization
373
374
finalization
375
376
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECBaseClass.html b/Unit Tests/CodeCoverage/U/DECBaseClass.html similarity index 97% rename from Unit Tests/CodeCoverage/DECBaseClass.html rename to Unit Tests/CodeCoverage/U/DECBaseClass.html index 5c9120dd..ffaf9fdb 100644 --- a/Unit Tests/CodeCoverage/DECBaseClass.html +++ b/Unit Tests/CodeCoverage/U/DECBaseClass.html @@ -1,44 +1,44 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECBaseClass.

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Aggregate statistics for all units

- - - - - -
Source File NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECBaseClass.pas7777100%
System.Generics.Defaults.pas11100%
Aggregated for all files7878100%
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECBaseClass.

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Aggregate statistics for all units

+ + + + + +
Source File NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECBaseClass.pas7777100%
System.Generics.Defaults.pas11100%
Aggregated for all files7878100%
+ + diff --git a/Unit Tests/CodeCoverage/DECCRC(DECCRC.pas).html b/Unit Tests/CodeCoverage/U/DECCRC(DECCRC.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCRC(DECCRC.pas).html rename to Unit Tests/CodeCoverage/U/DECCRC(DECCRC.pas).html index 768d1064..c6e0593f 100644 --- a/Unit Tests/CodeCoverage/DECCRC(DECCRC.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCRC(DECCRC.pas).html @@ -1,950 +1,950 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCRC (D:\Projekte\DECGitMaster\Source\DECCRC.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCRC.pas

-
Number of lines covered225
Number of lines with code gen244
Line coverage92%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{
19
  Implementation of threadsafe CRC checksum functions.
20
21
  The following standard CRCs are supported:
22
    CRC-8, CRC-10, CRC-12 (Mobil Telephone),
23
    CRC-16, CRC-16-CCITT, CRC-16-ZModem,
24
    CRC-24 (PGP's MIME64 Armor CRC),
25
    CRC-32, CRC-32-CCITT and CRC-32-ZModem.
26
27
  How to use:
28
29
  var
30
    CRC16: UInt16;
31
  begin
32
    CRC16 := CRCCalc(CRC_16, Data, SizeOf(Data)); // all in one
33
  end;
34
35
  or
36
37
  var
38
    CRC: TCRCDef;
39
    CRC32: UInt32;
40
  begin
41
    CRCInit(CRC, CRC_32);                         // setup CRC data structure
42
    CRCCode(CRC, Data, SizeOf(Data));             // calcs CRC for "Data"
43
    CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String
44
    CRC32 := CRCDone(CRC);                        // returns correct combined CRC for Data and String
45
    // after CRCDone we can start a new calculation
46
  end;
47
}
48
49
unit DECCRC;
50
51
interface
52
53
{$INCLUDE DECOptions.inc}
54
55
type
56
  /// <summary>
57
  ///   CRC Definition Structure
58
  /// </summary>
59
  PCRCDef = ^TCRCDef;
60
61
  /// <summary>
62
  ///   Record with meta data about a single CRC algorithm/polynom
63
  ///   Do *not* reorder or change this structure
64
  /// <para>
65
  ///   SizeOf(TCRCDef) = 1056 = 0420h
66
  /// </para>
67
  /// </summary>
68
  TCRCDef = packed record
69
    /// <summary>
70
    ///   Lookup Table, precomputed in CRCSetup
71
    /// </summary>
72
    Table       : array[0..255] of UInt32;
73
    /// <summary>
74
    ///   Intermediate CRC
75
    /// </summary>
76
    CRC         : UInt32;
77
    /// <summary>
78
    ///   Is this Polynomial an inverse function?
79
    /// </summary>
80
    Inverse     : LongBool;
81
    /// <summary>
82
    ///   Shift Value for CRCCode (for more speed)
83
    /// </summary>
84
    Shift       : UInt32;
85
    /// <summary>
86
    ///   Start Value of CRC cComputation
87
    /// </summary>
88
    InitVector  : UInt32;
89
    /// <summary>
90
    ///   Final XOR Vector of computed CRC
91
    /// </summary>
92
    FinalVector : UInt32;
93
    /// <summary>
94
    ///   Precomputed AND Mask of computed CRC
95
    /// </summary>
96
    Mask        : UInt32;
97
    /// <summary>
98
    ///   Bitsize of CRC
99
    /// </summary>
100
    Bits        : UInt32;
101
    /// <summary>
102
    ///   Used Polynomial
103
    /// </summary>
104
    Polynomial  : UInt32;
105
  end;
106
107
  /// <summary>
108
  ///   predefined standard CRC Types
109
  /// </summary>
110
  TCRCType = (
111
    CRC_8,
112
    CRC_10,
113
    CRC_12,
114
    CRC_16,
115
    CRC_16CCITT,
116
    CRC_16XModem,
117
    CRC_24,
118
    CRC_32,
119
    CRC_32CCITT,
120
    CRC_32ZModem,
121
    CRC_8ATMHEC,
122
    CRC_8SMBus,
123
    CRC_15CAN,
124
    CRC_16ZMODEM
125
  );
126
127
type
128
  /// <summary>
129
  ///   Callback method used by some CRC calculation routines to fetch the data
130
  ///   to be processed
131
  /// </summary>
132
  /// <param name="Buffer">
133
  ///   Buffer containing the data to be processed
134
  /// </param>
135
  /// <param name="Count">
136
  ///   Number of bytes of the buffer to be processed
137
  /// </param>
138
  /// <returns>
139
  ///
140
  /// </returns>
141
  TReadMethod = function(var Buffer; Count: Int64): Int64 of object;
142
143
// initialize CRC Definition with a custom Algorithm
144
145
/// <summary>
146
///   Fills the individual fields of a CRC meta data structure
147
/// </summary>
148
/// <param name="CRCDef">
149
///   Structure whose fields shall be filled
150
/// </param>
151
/// <param name="Polynomial">
152
///   CRC polynome, defining the algorithm
153
/// </param>
154
/// <param name="Bits">
155
///   Size of the CRC value to be computed in bits. Needs to be at least 8
156
/// </param>
157
/// <param name="InitVector">
158
///   Initial value for the vector going into each calculation cycle
159
/// </param>
160
/// <param name="FinalVector">
161
///   Final XOR Vector of computed CRC
162
/// </param>
163
/// <param name="Inverse">
164
///   true if this Polynomial is an inverse function
165
/// </param>
166
/// <returns>
167
///   true on success, false when a number smaller 8 is being passed as Bits parameter
168
/// </returns>
169
function CRCSetup(var CRCDef: TCRCDef;
170
                  Polynomial, Bits, InitVector, FinalVector: UInt32;
171
                  Inverse: LongBool): Boolean;
172
173
/// <summary>
174
///   Retrieves the necessary meta data and precomputed tables for a given CRC
175
///   algorithm.
176
/// </summary>
177
/// <param name="CRCDef">
178
///   Record in which the to be retrieved meta data will be returned
179
/// </param>
180
/// <param name="CRCType">
181
///   Specifies the exact CRC type which shall be initialized
182
/// </param>
183
/// <returns>
184
///   true on success
185
/// </returns>
186
function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean;
187
188
/// <summary>
189
///   Calculate the CRC of the contents of the passed in buffer.
190
/// </summary>
191
/// <param name="CRCDef">
192
///   Structure with the necessary metadata for the CRC algorithm to be used.
193
///   CRC processing state is being updated during calculation to enable this
194
///   structure to be fed in another call to CRCCode if a CRC over multiple
195
///   buffers has to be calculated.
196
/// </param>
197
/// <param name="Buffer">
198
///   Buffer with the data the CRC shall be calculated from
199
/// </param>
200
/// <param name="Size">
201
///   Number of bytes to calculate the CRC from, starting at the beginning of
202
///   the buffer
203
/// </param>
204
/// <returns>
205
///   Calculated CRC value, including any necessary correction (like CRCDone).
206
///   CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode
207
///   compute the total CRC of split buffers
208
/// </returns>
209
function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32; overload;
210
211
/// <summary>
212
///   Calculate the CRC of the contents provided by a given callback
213
/// </summary>
214
/// <param name="CRCDef">
215
///   Structure with the necessary metadata for the CRC algorithm to be used.
216
///   CRC processing state is being updated during calculation to enable this
217
///   structure to be fed in another call to CRCCode if a CRC over multiple
218
///   buffers has to be calculated.
219
/// </param>
220
/// <param name="ReadMethod">
221
///   Callback which is being called to get the data the CRC is processed over,
222
///   e.g. TStream.Read
223
/// </param>
224
/// <param name="Size">
225
///   Number of bytes over which the CRC will be calculated. The callback will
226
///   be called until that number of bytes have been processed.
227
/// </param>
228
/// <returns>
229
///   Calculated CRC value, including any necessary correction (like CRCDone).
230
///   CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode
231
///   compute the total CRC of split buffers
232
/// </returns>
233
function CRCCode(var CRCDef: TCRCDef;
234
                 ReadMethod: TReadMethod;
235
                 Size: UInt32 = $FFFFFFFF): UInt32; overload;
236
237
{ TODO :
238
DUnitTests für die Callback-Methoden Varianten von CRCCode und CRCCalc
239
schreiben }
240
//
241
//    CRCInit(CRC, CRC_32);                         // setup CRC data structure
242
//    CRCCode(CRC, Data, SizeOf(Data));             // calcs CRC for "Data"
243
//    CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String
244
//    CRC32 := CRCDone(CRC);
245
246
// returns corrected CRC as definied in CRCDef and resets CRCDef.CRC to InitVector
247
248
/// <summary>
249
///   Corrects the CRC via the final vector and resets the internal intermediate
250
///   CRC value to the init vector so the next CRC calculation can start.
251
/// </summary>
252
/// <param name="CRCDef">
253
///   Structure with the current CRC state
254
/// </param>
255
/// <returns>
256
///   Final CRC value
257
/// </returns>
258
function CRCDone(var CRCDef: TCRCDef): UInt32;
259
260
/// <summary>
261
///   Calculates a CRC over some Buffer with Size Bytes length. Processing is
262
///   being done in one single step
263
/// </summary>
264
/// <param name="CRCType">
265
///   Specifies the CRC algorithm to be used
266
/// </param>
267
/// <param name="Buffer">
268
///   Buffer with the data to calculate the CRC from
269
/// </param>
270
/// <param name="Size">
271
///   Number of bytes over which the CRC will be calculated from the beginning
272
///   of the buffer
273
/// </param>
274
function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32; overload;
275
276
/// <summary>
277
///   Calculates a CRC. Data is passed via callback, which is called repeatedly
278
///   if necessary
279
/// </summary>
280
/// <param name="CRCType">
281
///   Specifies the CRC algorithm to be used
282
/// </param>
283
/// <param name="ReadMethod">
284
///   Callback which is being called to get the data the CRC is processed over
285
///   e.g. TStream.Read
286
/// </param>
287
/// <param name="Size">
288
///   Number of bytes over which the CRC will be calculated. The callback will
289
///   be called until that number of bytes have been processed.
290
/// </param>
291
/// <returns>
292
///   Calculated CRC value.
293
/// </returns>
294
function CRCCalc(CRCType    : TCRCType;
295
                 ReadMethod : TReadMethod;
296
                 Size       : UInt32 = $FFFFFFFF): UInt32; overload;
297
298
/// <summary>
299
///   Calculates a CRC according a predefined CRC16-Standard over some Buffer
300
///   with Size Bytes length. Processing is being done in one single step
301
/// </summary>
302
/// <remarks>
303
///   call CRC := CRC16(0, Data, SizeOf(Data));
304
/// </remarks>
305
/// <param name="CRC">
306
///   Specifies the CRC algorithm to be used
307
/// </param>
308
/// <param name="Buffer">
309
///   Buffer with the data to calculate the CRC from
310
/// </param>
311
/// <param name="Size">
312
///   Number of bytes over which the CRC will be calculated from the beginning
313
///   of the buffer
314
/// </param>
315
/// <returns>
316
///   Calculated CRC16 value
317
/// </returns>
318
function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16;
319
320
/// <summary>
321
///   Calculates a CRC according the CRC32-CCITT standard over some Buffer
322
///   with Size Bytes length. Processing is being done in one single step
323
/// </summary>
324
/// <remarks>
325
///   call CRC := CRC32(0, Data, SizeOf(Data));
326
/// </remarks>
327
/// <param name="CRC">
328
///   Specifies the CRC algorithm to be used
329
/// </param>
330
/// <param name="Buffer">
331
///   Buffer with the data to calculate the CRC from
332
/// </param>
333
/// <param name="Size">
334
///   Number of bytes over which the CRC will be calculated from the beginning
335
///   of the buffer
336
/// </param>
337
/// <returns>
338
///   Calculated CRC32 value
339
/// </returns>
340
function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32;
341
342
implementation
343
344
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
345
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
346
347
type
348
  PCRCTab = ^TCRCTab;
349
  /// <summary>
350
  ///   Array type for the meta data definitions of the individual CRC algorithms
351
  /// </summary>
352
  TCRCTab = array[TCRCType] of packed record
353
    Poly, Bits, Init, FInit: UInt32;
354
    Inverse: LongBool;
355
  end;
356
357
const
358
  /// <summary>
359
  ///   Table containing meta data of various well known CRC algorithms/polynoms
360
  /// </summary>
361
  CRCTab : TCRCTab = (
362
    (Poly: $000000D1; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_8  GSM/ERR
363
    (Poly: $00000233; Bits: 10; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_10 ATM/OAM Cell
364
    (Poly: $0000080F; Bits: 12; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_12
365
    (Poly: $00008005; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_16 ARC;IBM;MODBUS RTU
366
     // Init value of 1D0F instead of FFFF because the code doesn't fill with zeros,
367
     // which would otherwise be required for the CCITT variant
368
    (Poly: $00001021; Bits: 16; Init: $00001D0F; FInit: $00000000; Inverse: False), // CRC_16 CCITT ITU
369
    (Poly: $00008408; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_16 XModem
370
    (Poly: $00864CFB; Bits: 24; Init: $00B704CE; FInit: $00000000; Inverse: False), // CRC_24
371
    (Poly: $9DB11213; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True),  // CRC_32
372
373
    (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True),  // CRC_32CCITT
374
    (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $00000000; Inverse: True),  // CRC_32ZModem
375
    (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_8ATMHEC
376
    (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: False), // CRC_8SMBus
377
    (Poly: $00004599; Bits: 15; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_15CAN
378
    (Poly: $00001021; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: False)  // CRC_16ZMODEM
379
  );
380
381
  // some other CRC's, not all yet verfied
382
  // DD    $00001021, 16, $0000FFFF, $00000000,  0   // CRC_16 CCITT British Aerospace
383
  // DD    $00004003, 16, $00000000, $00000000, -1   // CRC_16 reversed
384
  // DD    $00001005, 16, $00000000, $00000000, -1   // CRC_16 X25
385
386
  // https://fenix.tecnico.ulisboa.pt/downloadFile/3779571246541/BasicCrd.pdf enthält
387
  // eine beschreibung dieser BasicCard Smartcard incl. C-CRC Quellcode, aber die
388
  // Polynome konnte ich so noch nicht überprüfen
389
  // DD    $00000053, 16, $00000000, $00000000, -1   // BasicCard 16Bit CRC (sparse poly for Crypto MCU)
390
  // DD    $000000C5, 32, $00000000, $00000000, -1   // BasicCard 32Bit CRC
391
392
function CRCSetup(var CRCDef: TCRCDef; Polynomial, Bits, InitVector,
393
  FinalVector: UInt32; Inverse: LongBool): Boolean;
394
// initialize CRCDef according to the parameters, calculate the lookup table
395
{$IFDEF X86ASM}
396
asm
397
       CMP   ECX,8
398
       JB    @@8
399
       PUSH  EBX
400
       PUSH  EDI
401
       PUSH  ESI
402
       MOV   [EAX].TCRCDef.Polynomial,EDX
403
       MOV   [EAX].TCRCDef.Bits,ECX
404
       MOV   EBX,InitVector
405
       MOV   EDI,FinalVector
406
       MOV   ESI,Inverse
407
       MOV   [EAX].TCRCDef.CRC,EBX
408
       MOV   [EAX].TCRCDef.InitVector,EBX
409
       MOV   [EAX].TCRCDef.FinalVector,EDI
410
       MOV   [EAX].TCRCDef.Inverse,ESI
411
       XOR   EDI,EDI
412
       LEA   EBX,[ECX - 8]
413
       SUB   ECX,32
414
       DEC   EDI
415
       NEG   ECX
416
       SHR   EDI,CL
417
       MOV   [EAX].TCRCDef.Shift,EBX
418
       MOV   [EAX].TCRCDef.Mask,EDI
419
       TEST  ESI,ESI
420
       JZ    @@5
421
       XOR   EBX,EBX
422
       MOV   ECX,[EAX].TCRCDef.Bits
423
@@1:   SHR   EDX,1
424
       ADC   EBX,EBX
425
       DEC   ECX
426
       JNZ   @@1
427
       NOP
428
       MOV   ECX,255
429
       NOP
430
@@20:  MOV   EDX,ECX
431
       SHR   EDX,1
432
       JNC   @@21
433
       XOR   EDX,EBX
434
@@21:  SHR   EDX,1
435
       JNC   @@22
436
       XOR   EDX,EBX
437
@@22:  SHR   EDX,1
438
       JNC   @@23
439
       XOR   EDX,EBX
440
@@23:  SHR   EDX,1
441
       JNC   @@24
442
       XOR   EDX,EBX
443
@@24:  SHR   EDX,1
444
       JNC   @@25
445
       XOR   EDX,EBX
446
@@25:  SHR   EDX,1
447
       JNC   @@26
448
       XOR   EDX,EBX
449
@@26:  SHR   EDX,1
450
       JNC   @@27
451
       XOR   EDX,EBX
452
@@27:  SHR   EDX,1
453
       JNC   @@28
454
       XOR   EDX,EBX
455
@@28:  MOV   [EAX + ECX * 4],EDX
456
       DEC   ECX
457
       JNL   @@20
458
       JMP   @@7
459
@@5:   AND   EDX,EDI
460
       ROL   EDX,CL
461
       MOV   EBX,255
462
// can be coded branchfree
463
@@60:  MOV   ESI,EBX
464
       SHL   ESI,25
465
       JNC   @@61
466
       XOR   ESI,EDX
467
@@61:  ADD   ESI,ESI
468
       JNC   @@62
469
       XOR   ESI,EDX
470
@@62:  ADD   ESI,ESI
471
       JNC   @@63
472
       XOR   ESI,EDX
473
@@63:  ADD   ESI,ESI
474
       JNC   @@64
475
       XOR   ESI,EDX
476
@@64:  ADD   ESI,ESI
477
       JNC   @@65
478
       XOR   ESI,EDX
479
@@65:  ADD   ESI,ESI
480
       JNC   @@66
481
       XOR   ESI,EDX
482
@@66:  ADD   ESI,ESI
483
       JNC   @@67
484
       XOR   ESI,EDX
485
@@67:  ADD   ESI,ESI
486
       JNC   @@68
487
       XOR   ESI,EDX
488
@@68:  ROR   ESI,CL
489
       MOV   [EAX + EBX * 4],ESI
490
       DEC   EBX
491
       JNL   @@60
492
@@7:   POP   ESI
493
       POP   EDI
494
       POP   EBX
495
@@8:   CMC
496
       SBB   EAX,EAX
497
       NEG   EAX
498
end;
499
{$ELSE !X86ASM}
500
var
501
  Value, XorValue, OldValue: UInt32;
502
  Index: Integer;
503
  B: Boolean;
504
  One: Byte;
505
begin
506
  if Bits >= 8 then
507
  begin
508
    CRCDef.Polynomial := Polynomial;
509
    CRCDef.Bits := Bits;
510
    CRCDef.CRC := InitVector;
511
    CRCDef.InitVector := InitVector;
512
    CRCDef.FinalVector := FinalVector;
513
    CRCDef.Inverse := Inverse;
514
    CRCDef.Shift := Bits - 8;
515
    Bits := -(Bits - 32);
516
    CRCDef.Mask := -1 shr Byte(Bits);
517
518
    if Inverse then
519
    begin
520
      Bits := CRCDef.Bits;
521
      XorValue := 0;
522
      repeat
523
        Inc(XorValue, XorValue + Ord(Polynomial and $1));
524
        Polynomial := Polynomial shr 1;
525
        Dec(Bits);
526
      until Bits = 0;
527
528
      One := $1;
529
      for Index := 255 downto 0 do
530
      begin
531
        Value := Index;
532
533
        B := Boolean(Value and One); Value := Value shr 1;
534
        if B then Value := Value xor XorValue;
535
536
        B := Boolean(Value and One); Value := Value shr 1;
537
        if B then Value := Value xor XorValue;
538
539
        B := Boolean(Value and One); Value := Value shr 1;
540
        if B then Value := Value xor XorValue;
541
542
        B := Boolean(Value and One); Value := Value shr 1;
543
        if B then Value := Value xor XorValue;
544
545
        B := Boolean(Value and One); Value := Value shr 1;
546
        if B then Value := Value xor XorValue;
547
548
        B := Boolean(Value and One); Value := Value shr 1;
549
        if B then Value := Value xor XorValue;
550
551
        B := Boolean(Value and One); Value := Value shr 1;
552
        if B then Value := Value xor XorValue;
553
554
        B := Boolean(Value and One); Value := Value shr 1;
555
        if B then Value := Value xor XorValue;
556
557
        CRCDef.Table[Index] := Value;
558
      end;
559
    end
560
    else
561
    begin
562
      XorValue := Polynomial and CRCDef.Mask;
563
      XorValue := (XorValue shl Byte(Bits)) or (XorValue shr (32 - Byte(Bits)));
564
      for Index := 255 downto 0 do
565
      begin
566
        B := Boolean(Index and $000000080); Value := Index shl 25;
567
        if B then Value := Value xor XorValue;
568
569
        OldValue := Value; Inc(Value, Value);
570
        if Value < OldValue then Value := Value xor XorValue;
571
572
        OldValue := Value; Inc(Value, Value);
573
        if Value < OldValue then Value := Value xor XorValue;
574
575
        OldValue := Value; Inc(Value, Value);
576
        if Value < OldValue then Value := Value xor XorValue;
577
578
        OldValue := Value; Inc(Value, Value);
579
        if Value < OldValue then Value := Value xor XorValue;
580
581
        OldValue := Value; Inc(Value, Value);
582
        if Value < OldValue then Value := Value xor XorValue;
583
584
        OldValue := Value; Inc(Value, Value);
585
        if Value < OldValue then Value := Value xor XorValue;
586
587
        OldValue := Value; Inc(Value, Value);
588
        if Value < OldValue then Value := Value xor XorValue;
589
590
        Value := (Value shr Byte(Bits)) or (Value shl (32 - Byte(Bits)));
591
        CRCDef.Table[Index] := Value;
592
      end;
593
    end;
594
    Result := True;
595
  end
596
  else
597
    Result := False;
598
end;
599
{$ENDIF !X86ASM}
600
601
function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean;
602
begin
603
  Result := CRCSetup(CRCDef,
604
                     PCRCTab(@CRCTab)[CRCType].Poly,
605
                     PCRCTab(@CRCTab)[CRCType].Bits,
606
                     PCRCTab(@CRCTab)[CRCType].Init,
607
                     PCRCTab(@CRCTab)[CRCType].FInit,
608
                     PCRCTab(@CRCTab)[CRCType].Inverse);
609
end;
610
611
function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32;
612
// do the CRC computation
613
{$IFDEF X86ASM}
614
asm
615
       JECXZ @@5
616
       TEST  EDX,EDX
617
       JZ    @@5
618
       PUSH  ESI
619
       PUSH  EBX
620
       MOV   ESI,EAX
621
       CMP   [EAX].TCRCDef.Inverse,0
622
       MOV   EAX,[ESI].TCRCDef.CRC
623
       JZ    @@2
624
       XOR   EBX,EBX
625
@@1:   MOV   BL,[EDX]
626
       XOR   BL,AL
627
       SHR   EAX,8
628
       INC   EDX
629
       XOR   EAX,[ESI + EBX * 4]
630
       DEC   ECX
631
       JNZ   @@1
632
       JMP   @@4
633
@@2:   PUSH  EDI
634
       MOV   EBX,EAX
635
       MOV   EDI,ECX
636
       MOV   ECX,[ESI].TCRCDef.Shift
637
       MOV   EBX,EAX
638
@@3:   SHR   EBX,CL
639
       SHL   EAX,8
640
       XOR   BL,[EDX]
641
       INC   EDX
642
       MOVZX EBX,BL
643
       XOR   EAX,[ESI + EBX * 4]
644
       DEC   EDI
645
       MOV   EBX,EAX
646
       JNZ   @@3
647
       POP   EDI
648
@@4:   MOV   [ESI].TCRCDef.CRC,EAX
649
       XOR   EAX,[ESI].TCRCDef.FinalVector
650
       AND   EAX,[ESI].TCRCDef.Mask
651
       POP   EBX
652
       POP   ESI
653
       RET
654
@@5:   MOV   EAX,[EAX].TCRCDef.CRC
655
end;
656
{$ELSE !X86ASM}
657
var
658
  P: PByte;
659
  Value: Byte;
660
begin
661
  Result := CRCDef.CRC;
662
  P := @Buffer;
663
  if (Size <> 0) and (P <> nil) then
664
  begin
665
    if CRCDef.Inverse then
666
    begin
667
      repeat
668
        Value := P^ xor Byte(Result);
669
        Result := (Result shr 8) xor CRCDef.Table[Value];
670
        Inc(P);
671
        Dec(Size);
672
      until Size = 0;
673
    end
674
    else
675
    begin
676
      Value := Byte(CRCDef.Shift); // move to local variable => cpu register
677
      repeat
678
        Result := (Result shl 8) xor CRCDef.Table[Byte(Result shr Value) xor P^];
679
        Inc(P);
680
        Dec(Size);
681
      until Size = 0;
682
    end;
683
    CRCDef.CRC := Result;
684
    Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask;
685
  end;
686
end;
687
{$ENDIF !X86ASM}
688
689
function CRCCode(var CRCDef: TCRCDef; ReadMethod: TReadMethod; Size: UInt32 = $FFFFFFFF): UInt32;
690
var
691
  Buffer: array[0..1023] of Char;
692
  Count: Int64;
693
begin
694
  repeat
695
    if Size > SizeOf(Buffer) then
696
      Count := SizeOf(Buffer)
697
    else
698
      Count := Size;
699
    Count := ReadMethod(Buffer, Count);
700
    Result := CRCCode(CRCDef, Buffer, Count);
701
    Dec(Size, Count);
702
  until (Size = 0) or (Count = 0);
703
end;
704
705
function CRCDone(var CRCDef: TCRCDef): UInt32;
706
// finalize CRCDef after a computation
707
{$IFDEF X86ASM}
708
asm
709
       MOV   EDX,[EAX].TCRCDef.CRC
710
       MOV   ECX,[EAX].TCRCDef.InitVector
711
       XOR   EDX,[EAX].TCRCDef.FinalVector
712
       MOV   [EAX].TCRCDef.CRC,ECX
713
       AND   EDX,[EAX].TCRCDef.Mask
714
       MOV   EAX,EDX
715
end;
716
{$ELSE !X86ASM}
717
begin
718
  Result := CRCDef.CRC;
719
  CRCDef.CRC := CRCDef.InitVector;
720
  Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask;
721
end;
722
{$ENDIF !X86ASM}
723
724
function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32;
725
// inplace calculation
726
var
727
  CRC: TCRCDef;
728
begin
729
  CRCInit(CRC, CRCType);
730
  Result := CRCCode(CRC, Buffer, Size);
731
end;
732
733
function CRCCalc(CRCType: TCRCType; ReadMethod: TReadMethod; Size: UInt32): UInt32;
734
var
735
  CRC: TCRCDef;
736
begin
737
  CRCInit(CRC, CRCType);
738
  Result := CRCCode(CRC, ReadMethod, Size);
739
end;
740
741
// predefined CRC16/CRC32CCITT, avoid slower lookuptable computation by use of precomputation
742
var
743
  FCRC16: PCRCDef = nil;
744
  FCRC32: PCRCDef = nil;
745
746
function CRC16Init: Pointer;
747
begin
748
  // Replace GetMem by GetMemory due to C++ Builder compatibility
749
  // GetMem(FCRC16, SizeOf(TCRCDef));
750
  FCRC16 := GetMemory(SizeOf(TCRCDef));
751
  CRCInit(FCRC16^, CRC_16);
752
  Result := FCRC16;
753
end;
754
755
function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16;
756
{$IFDEF X86ASM}
757
asm
758
       JECXZ @@2
759
       PUSH  EDI
760
       PUSH  ESI
761
       MOV   EDI,ECX
762
{$IFDEF PIC}
763
       MOV   ESI,[EBX].FCRC16
764
{$ELSE !PIC}
765
       MOV   ESI,FCRC16
766
{$ENDIF !PIC}
767
       XOR   ECX,ECX
768
       TEST  ESI,ESI
769
       JZ    @@3
770
@@1:   MOV    CL,[EDX]
771
       XOR    CL,AL
772
       SHR   EAX,8
773
       INC   EDX
774
       XOR   EAX,[ESI + ECX * 4]
775
       DEC   EDI
776
       JNZ   @@1
777
       POP   ESI
778
       POP   EDI
779
@@2:   RET
780
@@3:   PUSH  EAX
781
       PUSH  EDX
782
       CALL  CRC16Init
783
       MOV   ESI,EAX
784
       XOR   ECX,ECX
785
       POP   EDX
786
       POP   EAX
787
       JMP   @@1
788
end;
789
{$ELSE !X86ASM}
790
var
791
  LCRC16: PCRCDef;
792
  P: PByte;
793
  CRC32: UInt32;
794
  Value: Byte;
795
begin
796
  if Size <> 0 then
797
  begin
798
    LCRC16 := FCRC16;
799
    if LCRC16 = nil then
800
      LCRC16 := CRC16Init;
801
802
    CRC32 := CRC;
803
    P := @Buffer;
804
    repeat
805
      Value := P^ xor Byte(CRC32);
806
      CRC32 := (CRC32 shr 8) xor LCRC16.Table[Value];
807
      Inc(P);
808
      Dec(Size);
809
    until Size = 0;
810
    Result := UInt16(CRC32);
811
  end
812
  else
813
    Result := CRC;
814
end;
815
{$ENDIF !X86ASM}
816
817
function CRC32Init: Pointer;
818
begin
819
  // Replaced for C++ Builder compatibility
820
  // GetMem(FCRC32, SizeOf(TCRCDef));
821
  FCRC32 := GetMemory(SizeOf(TCRCDef));
822
  CRCInit(FCRC32^, CRC_32CCITT);
823
  Result := FCRC32;
824
end;
825
826
function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32;
827
{$IFDEF X86ASM}
828
asm
829
       JECXZ @@2
830
       PUSH  EDI
831
       PUSH  ESI
832
       NOT   EAX                    // inverse Input CRC
833
       MOV   EDI,ECX
834
{$IFDEF PIC}
835
       MOV   ESI,[EBX].FCRC32
836
{$ELSE !PIC}
837
       MOV   ESI,FCRC32
838
{$ENDIF !PIC}
839
       XOR   ECX,ECX
840
       TEST  ESI,ESI
841
       JZ    @@3
842
@@1:   MOV    CL,[EDX]
843
       XOR    CL,AL
844
       SHR   EAX,8
845
       INC   EDX
846
       XOR   EAX,[ESI + ECX * 4]
847
       DEC   EDI
848
       JNZ   @@1
849
       NOT   EAX                    // inverse Output CRC
850
       POP   ESI
851
       POP   EDI
852
@@2:   RET
853
@@3:   PUSH  EAX
854
       PUSH  EDX
855
       CALL  CRC32Init
856
       MOV   ESI,EAX
857
       XOR   ECX,ECX
858
       POP   EDX
859
       POP   EAX
860
       JMP   @@1
861
end;
862
{$ELSE !X86ASM}
863
var
864
  LCRC32: PCRCDef;
865
  P: PByte;
866
  CRC32: UInt32;
867
  Value: Byte;
868
begin
869
  if Size <> 0 then
870
  begin
871
    LCRC32 := FCRC32;
872
    if LCRC32 = nil then
873
      LCRC32 := CRC32Init;
874
875
    CRC32 := not CRC; // inverse Input CRC
876
    P := @Buffer;
877
    repeat
878
      Value := P^ xor Byte(CRC32);
879
      CRC32 := (CRC32 shr 8) xor LCRC32.Table[Value];
880
      Inc(P);
881
      Dec(Size);
882
    until Size = 0;
883
    Result := not CRC32; // inverse Output CRC
884
  end
885
  else
886
    Result := CRC;
887
end;
888
{$ENDIF !X86ASM}
889
890
procedure CRCInitThreadSafe;
891
begin
892
  CRC16Init;
893
  CRC32Init;
894
end;
895
896
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
897
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
898
899
initialization
900
  CRCInitThreadSafe;
901
902
finalization
903
  if FCRC16 <> nil then
904
    FreeMem(FCRC16);
905
906
  if FCRC32 <> nil then
907
    FreeMem(FCRC32);
908
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCRC (D:\Projekte\DECGitMaster\Source\DECCRC.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCRC.pas

+
Number of lines covered225
Number of lines with code gen244
Line coverage92%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{
19
  Implementation of threadsafe CRC checksum functions.
20
21
  The following standard CRCs are supported:
22
    CRC-8, CRC-10, CRC-12 (Mobil Telephone),
23
    CRC-16, CRC-16-CCITT, CRC-16-ZModem,
24
    CRC-24 (PGP's MIME64 Armor CRC),
25
    CRC-32, CRC-32-CCITT and CRC-32-ZModem.
26
27
  How to use:
28
29
  var
30
    CRC16: UInt16;
31
  begin
32
    CRC16 := CRCCalc(CRC_16, Data, SizeOf(Data)); // all in one
33
  end;
34
35
  or
36
37
  var
38
    CRC: TCRCDef;
39
    CRC32: UInt32;
40
  begin
41
    CRCInit(CRC, CRC_32);                         // setup CRC data structure
42
    CRCCode(CRC, Data, SizeOf(Data));             // calcs CRC for "Data"
43
    CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String
44
    CRC32 := CRCDone(CRC);                        // returns correct combined CRC for Data and String
45
    // after CRCDone we can start a new calculation
46
  end;
47
}
48
49
unit DECCRC;
50
51
interface
52
53
{$INCLUDE DECOptions.inc}
54
55
type
56
  /// <summary>
57
  ///   CRC Definition Structure
58
  /// </summary>
59
  PCRCDef = ^TCRCDef;
60
61
  /// <summary>
62
  ///   Record with meta data about a single CRC algorithm/polynom
63
  ///   Do *not* reorder or change this structure
64
  /// <para>
65
  ///   SizeOf(TCRCDef) = 1056 = 0420h
66
  /// </para>
67
  /// </summary>
68
  TCRCDef = packed record
69
    /// <summary>
70
    ///   Lookup Table, precomputed in CRCSetup
71
    /// </summary>
72
    Table       : array[0..255] of UInt32;
73
    /// <summary>
74
    ///   Intermediate CRC
75
    /// </summary>
76
    CRC         : UInt32;
77
    /// <summary>
78
    ///   Is this Polynomial an inverse function?
79
    /// </summary>
80
    Inverse     : LongBool;
81
    /// <summary>
82
    ///   Shift Value for CRCCode (for more speed)
83
    /// </summary>
84
    Shift       : UInt32;
85
    /// <summary>
86
    ///   Start Value of CRC cComputation
87
    /// </summary>
88
    InitVector  : UInt32;
89
    /// <summary>
90
    ///   Final XOR Vector of computed CRC
91
    /// </summary>
92
    FinalVector : UInt32;
93
    /// <summary>
94
    ///   Precomputed AND Mask of computed CRC
95
    /// </summary>
96
    Mask        : UInt32;
97
    /// <summary>
98
    ///   Bitsize of CRC
99
    /// </summary>
100
    Bits        : UInt32;
101
    /// <summary>
102
    ///   Used Polynomial
103
    /// </summary>
104
    Polynomial  : UInt32;
105
  end;
106
107
  /// <summary>
108
  ///   predefined standard CRC Types
109
  /// </summary>
110
  TCRCType = (
111
    CRC_8,
112
    CRC_10,
113
    CRC_12,
114
    CRC_16,
115
    CRC_16CCITT,
116
    CRC_16XModem,
117
    CRC_24,
118
    CRC_32,
119
    CRC_32CCITT,
120
    CRC_32ZModem,
121
    CRC_8ATMHEC,
122
    CRC_8SMBus,
123
    CRC_15CAN,
124
    CRC_16ZMODEM
125
  );
126
127
type
128
  /// <summary>
129
  ///   Callback method used by some CRC calculation routines to fetch the data
130
  ///   to be processed
131
  /// </summary>
132
  /// <param name="Buffer">
133
  ///   Buffer containing the data to be processed
134
  /// </param>
135
  /// <param name="Count">
136
  ///   Number of bytes of the buffer to be processed
137
  /// </param>
138
  /// <returns>
139
  ///
140
  /// </returns>
141
  TReadMethod = function(var Buffer; Count: Int64): Int64 of object;
142
143
// initialize CRC Definition with a custom Algorithm
144
145
/// <summary>
146
///   Fills the individual fields of a CRC meta data structure
147
/// </summary>
148
/// <param name="CRCDef">
149
///   Structure whose fields shall be filled
150
/// </param>
151
/// <param name="Polynomial">
152
///   CRC polynome, defining the algorithm
153
/// </param>
154
/// <param name="Bits">
155
///   Size of the CRC value to be computed in bits. Needs to be at least 8
156
/// </param>
157
/// <param name="InitVector">
158
///   Initial value for the vector going into each calculation cycle
159
/// </param>
160
/// <param name="FinalVector">
161
///   Final XOR Vector of computed CRC
162
/// </param>
163
/// <param name="Inverse">
164
///   true if this Polynomial is an inverse function
165
/// </param>
166
/// <returns>
167
///   true on success, false when a number smaller 8 is being passed as Bits parameter
168
/// </returns>
169
function CRCSetup(var CRCDef: TCRCDef;
170
                  Polynomial, Bits, InitVector, FinalVector: UInt32;
171
                  Inverse: LongBool): Boolean;
172
173
/// <summary>
174
///   Retrieves the necessary meta data and precomputed tables for a given CRC
175
///   algorithm.
176
/// </summary>
177
/// <param name="CRCDef">
178
///   Record in which the to be retrieved meta data will be returned
179
/// </param>
180
/// <param name="CRCType">
181
///   Specifies the exact CRC type which shall be initialized
182
/// </param>
183
/// <returns>
184
///   true on success
185
/// </returns>
186
function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean;
187
188
/// <summary>
189
///   Calculate the CRC of the contents of the passed in buffer.
190
/// </summary>
191
/// <param name="CRCDef">
192
///   Structure with the necessary metadata for the CRC algorithm to be used.
193
///   CRC processing state is being updated during calculation to enable this
194
///   structure to be fed in another call to CRCCode if a CRC over multiple
195
///   buffers has to be calculated.
196
/// </param>
197
/// <param name="Buffer">
198
///   Buffer with the data the CRC shall be calculated from
199
/// </param>
200
/// <param name="Size">
201
///   Number of bytes to calculate the CRC from, starting at the beginning of
202
///   the buffer
203
/// </param>
204
/// <returns>
205
///   Calculated CRC value, including any necessary correction (like CRCDone).
206
///   CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode
207
///   compute the total CRC of split buffers
208
/// </returns>
209
function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32; overload;
210
211
/// <summary>
212
///   Calculate the CRC of the contents provided by a given callback
213
/// </summary>
214
/// <param name="CRCDef">
215
///   Structure with the necessary metadata for the CRC algorithm to be used.
216
///   CRC processing state is being updated during calculation to enable this
217
///   structure to be fed in another call to CRCCode if a CRC over multiple
218
///   buffers has to be calculated.
219
/// </param>
220
/// <param name="ReadMethod">
221
///   Callback which is being called to get the data the CRC is processed over,
222
///   e.g. TStream.Read
223
/// </param>
224
/// <param name="Size">
225
///   Number of bytes over which the CRC will be calculated. The callback will
226
///   be called until that number of bytes have been processed.
227
/// </param>
228
/// <returns>
229
///   Calculated CRC value, including any necessary correction (like CRCDone).
230
///   CRCDef.CRC holds the actual computed CRC, additional calls of CRCCode
231
///   compute the total CRC of split buffers
232
/// </returns>
233
function CRCCode(var CRCDef: TCRCDef;
234
                 ReadMethod: TReadMethod;
235
                 Size: UInt32 = $FFFFFFFF): UInt32; overload;
236
237
{ TODO :
238
DUnitTests für die Callback-Methoden Varianten von CRCCode und CRCCalc
239
schreiben }
240
//
241
//    CRCInit(CRC, CRC_32);                         // setup CRC data structure
242
//    CRCCode(CRC, Data, SizeOf(Data));             // calcs CRC for "Data"
243
//    CRCCode(CRC, PChar(string)^, Length(string) * SizeOf(string[1])); // calcs CRC for String
244
//    CRC32 := CRCDone(CRC);
245
246
// returns corrected CRC as definied in CRCDef and resets CRCDef.CRC to InitVector
247
248
/// <summary>
249
///   Corrects the CRC via the final vector and resets the internal intermediate
250
///   CRC value to the init vector so the next CRC calculation can start.
251
/// </summary>
252
/// <param name="CRCDef">
253
///   Structure with the current CRC state
254
/// </param>
255
/// <returns>
256
///   Final CRC value
257
/// </returns>
258
function CRCDone(var CRCDef: TCRCDef): UInt32;
259
260
/// <summary>
261
///   Calculates a CRC over some Buffer with Size Bytes length. Processing is
262
///   being done in one single step
263
/// </summary>
264
/// <param name="CRCType">
265
///   Specifies the CRC algorithm to be used
266
/// </param>
267
/// <param name="Buffer">
268
///   Buffer with the data to calculate the CRC from
269
/// </param>
270
/// <param name="Size">
271
///   Number of bytes over which the CRC will be calculated from the beginning
272
///   of the buffer
273
/// </param>
274
function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32; overload;
275
276
/// <summary>
277
///   Calculates a CRC. Data is passed via callback, which is called repeatedly
278
///   if necessary
279
/// </summary>
280
/// <param name="CRCType">
281
///   Specifies the CRC algorithm to be used
282
/// </param>
283
/// <param name="ReadMethod">
284
///   Callback which is being called to get the data the CRC is processed over
285
///   e.g. TStream.Read
286
/// </param>
287
/// <param name="Size">
288
///   Number of bytes over which the CRC will be calculated. The callback will
289
///   be called until that number of bytes have been processed.
290
/// </param>
291
/// <returns>
292
///   Calculated CRC value.
293
/// </returns>
294
function CRCCalc(CRCType    : TCRCType;
295
                 ReadMethod : TReadMethod;
296
                 Size       : UInt32 = $FFFFFFFF): UInt32; overload;
297
298
/// <summary>
299
///   Calculates a CRC according a predefined CRC16-Standard over some Buffer
300
///   with Size Bytes length. Processing is being done in one single step
301
/// </summary>
302
/// <remarks>
303
///   call CRC := CRC16(0, Data, SizeOf(Data));
304
/// </remarks>
305
/// <param name="CRC">
306
///   Specifies the CRC algorithm to be used
307
/// </param>
308
/// <param name="Buffer">
309
///   Buffer with the data to calculate the CRC from
310
/// </param>
311
/// <param name="Size">
312
///   Number of bytes over which the CRC will be calculated from the beginning
313
///   of the buffer
314
/// </param>
315
/// <returns>
316
///   Calculated CRC16 value
317
/// </returns>
318
function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16;
319
320
/// <summary>
321
///   Calculates a CRC according the CRC32-CCITT standard over some Buffer
322
///   with Size Bytes length. Processing is being done in one single step
323
/// </summary>
324
/// <remarks>
325
///   call CRC := CRC32(0, Data, SizeOf(Data));
326
/// </remarks>
327
/// <param name="CRC">
328
///   Specifies the CRC algorithm to be used
329
/// </param>
330
/// <param name="Buffer">
331
///   Buffer with the data to calculate the CRC from
332
/// </param>
333
/// <param name="Size">
334
///   Number of bytes over which the CRC will be calculated from the beginning
335
///   of the buffer
336
/// </param>
337
/// <returns>
338
///   Calculated CRC32 value
339
/// </returns>
340
function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32;
341
342
implementation
343
344
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
345
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
346
347
type
348
  PCRCTab = ^TCRCTab;
349
  /// <summary>
350
  ///   Array type for the meta data definitions of the individual CRC algorithms
351
  /// </summary>
352
  TCRCTab = array[TCRCType] of packed record
353
    Poly, Bits, Init, FInit: UInt32;
354
    Inverse: LongBool;
355
  end;
356
357
const
358
  /// <summary>
359
  ///   Table containing meta data of various well known CRC algorithms/polynoms
360
  /// </summary>
361
  CRCTab : TCRCTab = (
362
    (Poly: $000000D1; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_8  GSM/ERR
363
    (Poly: $00000233; Bits: 10; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_10 ATM/OAM Cell
364
    (Poly: $0000080F; Bits: 12; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_12
365
    (Poly: $00008005; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_16 ARC;IBM;MODBUS RTU
366
     // Init value of 1D0F instead of FFFF because the code doesn't fill with zeros,
367
     // which would otherwise be required for the CCITT variant
368
    (Poly: $00001021; Bits: 16; Init: $00001D0F; FInit: $00000000; Inverse: False), // CRC_16 CCITT ITU
369
    (Poly: $00008408; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_16 XModem
370
    (Poly: $00864CFB; Bits: 24; Init: $00B704CE; FInit: $00000000; Inverse: False), // CRC_24
371
    (Poly: $9DB11213; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True),  // CRC_32
372
373
    (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $FFFFFFFF; Inverse: True),  // CRC_32CCITT
374
    (Poly: $04C11DB7; Bits: 32; Init: $FFFFFFFF; FInit: $00000000; Inverse: True),  // CRC_32ZModem
375
    (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_8ATMHEC
376
    (Poly: $00000007; Bits: 08; Init: $00000000; FInit: $00000000; Inverse: False), // CRC_8SMBus
377
    (Poly: $00004599; Bits: 15; Init: $00000000; FInit: $00000000; Inverse: True),  // CRC_15CAN
378
    (Poly: $00001021; Bits: 16; Init: $00000000; FInit: $00000000; Inverse: False)  // CRC_16ZMODEM
379
  );
380
381
  // some other CRC's, not all yet verfied
382
  // DD    $00001021, 16, $0000FFFF, $00000000,  0   // CRC_16 CCITT British Aerospace
383
  // DD    $00004003, 16, $00000000, $00000000, -1   // CRC_16 reversed
384
  // DD    $00001005, 16, $00000000, $00000000, -1   // CRC_16 X25
385
386
  // https://fenix.tecnico.ulisboa.pt/downloadFile/3779571246541/BasicCrd.pdf enthält
387
  // eine beschreibung dieser BasicCard Smartcard incl. C-CRC Quellcode, aber die
388
  // Polynome konnte ich so noch nicht überprüfen
389
  // DD    $00000053, 16, $00000000, $00000000, -1   // BasicCard 16Bit CRC (sparse poly for Crypto MCU)
390
  // DD    $000000C5, 32, $00000000, $00000000, -1   // BasicCard 32Bit CRC
391
392
function CRCSetup(var CRCDef: TCRCDef; Polynomial, Bits, InitVector,
393
  FinalVector: UInt32; Inverse: LongBool): Boolean;
394
// initialize CRCDef according to the parameters, calculate the lookup table
395
{$IFDEF X86ASM}
396
asm
397
       CMP   ECX,8
398
       JB    @@8
399
       PUSH  EBX
400
       PUSH  EDI
401
       PUSH  ESI
402
       MOV   [EAX].TCRCDef.Polynomial,EDX
403
       MOV   [EAX].TCRCDef.Bits,ECX
404
       MOV   EBX,InitVector
405
       MOV   EDI,FinalVector
406
       MOV   ESI,Inverse
407
       MOV   [EAX].TCRCDef.CRC,EBX
408
       MOV   [EAX].TCRCDef.InitVector,EBX
409
       MOV   [EAX].TCRCDef.FinalVector,EDI
410
       MOV   [EAX].TCRCDef.Inverse,ESI
411
       XOR   EDI,EDI
412
       LEA   EBX,[ECX - 8]
413
       SUB   ECX,32
414
       DEC   EDI
415
       NEG   ECX
416
       SHR   EDI,CL
417
       MOV   [EAX].TCRCDef.Shift,EBX
418
       MOV   [EAX].TCRCDef.Mask,EDI
419
       TEST  ESI,ESI
420
       JZ    @@5
421
       XOR   EBX,EBX
422
       MOV   ECX,[EAX].TCRCDef.Bits
423
@@1:   SHR   EDX,1
424
       ADC   EBX,EBX
425
       DEC   ECX
426
       JNZ   @@1
427
       NOP
428
       MOV   ECX,255
429
       NOP
430
@@20:  MOV   EDX,ECX
431
       SHR   EDX,1
432
       JNC   @@21
433
       XOR   EDX,EBX
434
@@21:  SHR   EDX,1
435
       JNC   @@22
436
       XOR   EDX,EBX
437
@@22:  SHR   EDX,1
438
       JNC   @@23
439
       XOR   EDX,EBX
440
@@23:  SHR   EDX,1
441
       JNC   @@24
442
       XOR   EDX,EBX
443
@@24:  SHR   EDX,1
444
       JNC   @@25
445
       XOR   EDX,EBX
446
@@25:  SHR   EDX,1
447
       JNC   @@26
448
       XOR   EDX,EBX
449
@@26:  SHR   EDX,1
450
       JNC   @@27
451
       XOR   EDX,EBX
452
@@27:  SHR   EDX,1
453
       JNC   @@28
454
       XOR   EDX,EBX
455
@@28:  MOV   [EAX + ECX * 4],EDX
456
       DEC   ECX
457
       JNL   @@20
458
       JMP   @@7
459
@@5:   AND   EDX,EDI
460
       ROL   EDX,CL
461
       MOV   EBX,255
462
// can be coded branchfree
463
@@60:  MOV   ESI,EBX
464
       SHL   ESI,25
465
       JNC   @@61
466
       XOR   ESI,EDX
467
@@61:  ADD   ESI,ESI
468
       JNC   @@62
469
       XOR   ESI,EDX
470
@@62:  ADD   ESI,ESI
471
       JNC   @@63
472
       XOR   ESI,EDX
473
@@63:  ADD   ESI,ESI
474
       JNC   @@64
475
       XOR   ESI,EDX
476
@@64:  ADD   ESI,ESI
477
       JNC   @@65
478
       XOR   ESI,EDX
479
@@65:  ADD   ESI,ESI
480
       JNC   @@66
481
       XOR   ESI,EDX
482
@@66:  ADD   ESI,ESI
483
       JNC   @@67
484
       XOR   ESI,EDX
485
@@67:  ADD   ESI,ESI
486
       JNC   @@68
487
       XOR   ESI,EDX
488
@@68:  ROR   ESI,CL
489
       MOV   [EAX + EBX * 4],ESI
490
       DEC   EBX
491
       JNL   @@60
492
@@7:   POP   ESI
493
       POP   EDI
494
       POP   EBX
495
@@8:   CMC
496
       SBB   EAX,EAX
497
       NEG   EAX
498
end;
499
{$ELSE !X86ASM}
500
var
501
  Value, XorValue, OldValue: UInt32;
502
  Index: Integer;
503
  B: Boolean;
504
  One: Byte;
505
begin
506
  if Bits >= 8 then
507
  begin
508
    CRCDef.Polynomial := Polynomial;
509
    CRCDef.Bits := Bits;
510
    CRCDef.CRC := InitVector;
511
    CRCDef.InitVector := InitVector;
512
    CRCDef.FinalVector := FinalVector;
513
    CRCDef.Inverse := Inverse;
514
    CRCDef.Shift := Bits - 8;
515
    Bits := -(Bits - 32);
516
    CRCDef.Mask := -1 shr Byte(Bits);
517
518
    if Inverse then
519
    begin
520
      Bits := CRCDef.Bits;
521
      XorValue := 0;
522
      repeat
523
        Inc(XorValue, XorValue + Ord(Polynomial and $1));
524
        Polynomial := Polynomial shr 1;
525
        Dec(Bits);
526
      until Bits = 0;
527
528
      One := $1;
529
      for Index := 255 downto 0 do
530
      begin
531
        Value := Index;
532
533
        B := Boolean(Value and One); Value := Value shr 1;
534
        if B then Value := Value xor XorValue;
535
536
        B := Boolean(Value and One); Value := Value shr 1;
537
        if B then Value := Value xor XorValue;
538
539
        B := Boolean(Value and One); Value := Value shr 1;
540
        if B then Value := Value xor XorValue;
541
542
        B := Boolean(Value and One); Value := Value shr 1;
543
        if B then Value := Value xor XorValue;
544
545
        B := Boolean(Value and One); Value := Value shr 1;
546
        if B then Value := Value xor XorValue;
547
548
        B := Boolean(Value and One); Value := Value shr 1;
549
        if B then Value := Value xor XorValue;
550
551
        B := Boolean(Value and One); Value := Value shr 1;
552
        if B then Value := Value xor XorValue;
553
554
        B := Boolean(Value and One); Value := Value shr 1;
555
        if B then Value := Value xor XorValue;
556
557
        CRCDef.Table[Index] := Value;
558
      end;
559
    end
560
    else
561
    begin
562
      XorValue := Polynomial and CRCDef.Mask;
563
      XorValue := (XorValue shl Byte(Bits)) or (XorValue shr (32 - Byte(Bits)));
564
      for Index := 255 downto 0 do
565
      begin
566
        B := Boolean(Index and $000000080); Value := Index shl 25;
567
        if B then Value := Value xor XorValue;
568
569
        OldValue := Value; Inc(Value, Value);
570
        if Value < OldValue then Value := Value xor XorValue;
571
572
        OldValue := Value; Inc(Value, Value);
573
        if Value < OldValue then Value := Value xor XorValue;
574
575
        OldValue := Value; Inc(Value, Value);
576
        if Value < OldValue then Value := Value xor XorValue;
577
578
        OldValue := Value; Inc(Value, Value);
579
        if Value < OldValue then Value := Value xor XorValue;
580
581
        OldValue := Value; Inc(Value, Value);
582
        if Value < OldValue then Value := Value xor XorValue;
583
584
        OldValue := Value; Inc(Value, Value);
585
        if Value < OldValue then Value := Value xor XorValue;
586
587
        OldValue := Value; Inc(Value, Value);
588
        if Value < OldValue then Value := Value xor XorValue;
589
590
        Value := (Value shr Byte(Bits)) or (Value shl (32 - Byte(Bits)));
591
        CRCDef.Table[Index] := Value;
592
      end;
593
    end;
594
    Result := True;
595
  end
596
  else
597
    Result := False;
598
end;
599
{$ENDIF !X86ASM}
600
601
function CRCInit(var CRCDef: TCRCDef; CRCType: TCRCType): Boolean;
602
begin
603
  Result := CRCSetup(CRCDef,
604
                     PCRCTab(@CRCTab)[CRCType].Poly,
605
                     PCRCTab(@CRCTab)[CRCType].Bits,
606
                     PCRCTab(@CRCTab)[CRCType].Init,
607
                     PCRCTab(@CRCTab)[CRCType].FInit,
608
                     PCRCTab(@CRCTab)[CRCType].Inverse);
609
end;
610
611
function CRCCode(var CRCDef: TCRCDef; const Buffer; Size: UInt32): UInt32;
612
// do the CRC computation
613
{$IFDEF X86ASM}
614
asm
615
       JECXZ @@5
616
       TEST  EDX,EDX
617
       JZ    @@5
618
       PUSH  ESI
619
       PUSH  EBX
620
       MOV   ESI,EAX
621
       CMP   [EAX].TCRCDef.Inverse,0
622
       MOV   EAX,[ESI].TCRCDef.CRC
623
       JZ    @@2
624
       XOR   EBX,EBX
625
@@1:   MOV   BL,[EDX]
626
       XOR   BL,AL
627
       SHR   EAX,8
628
       INC   EDX
629
       XOR   EAX,[ESI + EBX * 4]
630
       DEC   ECX
631
       JNZ   @@1
632
       JMP   @@4
633
@@2:   PUSH  EDI
634
       MOV   EBX,EAX
635
       MOV   EDI,ECX
636
       MOV   ECX,[ESI].TCRCDef.Shift
637
       MOV   EBX,EAX
638
@@3:   SHR   EBX,CL
639
       SHL   EAX,8
640
       XOR   BL,[EDX]
641
       INC   EDX
642
       MOVZX EBX,BL
643
       XOR   EAX,[ESI + EBX * 4]
644
       DEC   EDI
645
       MOV   EBX,EAX
646
       JNZ   @@3
647
       POP   EDI
648
@@4:   MOV   [ESI].TCRCDef.CRC,EAX
649
       XOR   EAX,[ESI].TCRCDef.FinalVector
650
       AND   EAX,[ESI].TCRCDef.Mask
651
       POP   EBX
652
       POP   ESI
653
       RET
654
@@5:   MOV   EAX,[EAX].TCRCDef.CRC
655
end;
656
{$ELSE !X86ASM}
657
var
658
  P: PByte;
659
  Value: Byte;
660
begin
661
  Result := CRCDef.CRC;
662
  P := @Buffer;
663
  if (Size <> 0) and (P <> nil) then
664
  begin
665
    if CRCDef.Inverse then
666
    begin
667
      repeat
668
        Value := P^ xor Byte(Result);
669
        Result := (Result shr 8) xor CRCDef.Table[Value];
670
        Inc(P);
671
        Dec(Size);
672
      until Size = 0;
673
    end
674
    else
675
    begin
676
      Value := Byte(CRCDef.Shift); // move to local variable => cpu register
677
      repeat
678
        Result := (Result shl 8) xor CRCDef.Table[Byte(Result shr Value) xor P^];
679
        Inc(P);
680
        Dec(Size);
681
      until Size = 0;
682
    end;
683
    CRCDef.CRC := Result;
684
    Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask;
685
  end;
686
end;
687
{$ENDIF !X86ASM}
688
689
function CRCCode(var CRCDef: TCRCDef; ReadMethod: TReadMethod; Size: UInt32 = $FFFFFFFF): UInt32;
690
var
691
  Buffer: array[0..1023] of Char;
692
  Count: Int64;
693
begin
694
  repeat
695
    if Size > SizeOf(Buffer) then
696
      Count := SizeOf(Buffer)
697
    else
698
      Count := Size;
699
    Count := ReadMethod(Buffer, Count);
700
    Result := CRCCode(CRCDef, Buffer, Count);
701
    Dec(Size, Count);
702
  until (Size = 0) or (Count = 0);
703
end;
704
705
function CRCDone(var CRCDef: TCRCDef): UInt32;
706
// finalize CRCDef after a computation
707
{$IFDEF X86ASM}
708
asm
709
       MOV   EDX,[EAX].TCRCDef.CRC
710
       MOV   ECX,[EAX].TCRCDef.InitVector
711
       XOR   EDX,[EAX].TCRCDef.FinalVector
712
       MOV   [EAX].TCRCDef.CRC,ECX
713
       AND   EDX,[EAX].TCRCDef.Mask
714
       MOV   EAX,EDX
715
end;
716
{$ELSE !X86ASM}
717
begin
718
  Result := CRCDef.CRC;
719
  CRCDef.CRC := CRCDef.InitVector;
720
  Result := (Result xor CRCDef.FinalVector) and CRCDef.Mask;
721
end;
722
{$ENDIF !X86ASM}
723
724
function CRCCalc(CRCType: TCRCType; const Buffer; Size: UInt32): UInt32;
725
// inplace calculation
726
var
727
  CRC: TCRCDef;
728
begin
729
  CRCInit(CRC, CRCType);
730
  Result := CRCCode(CRC, Buffer, Size);
731
end;
732
733
function CRCCalc(CRCType: TCRCType; ReadMethod: TReadMethod; Size: UInt32): UInt32;
734
var
735
  CRC: TCRCDef;
736
begin
737
  CRCInit(CRC, CRCType);
738
  Result := CRCCode(CRC, ReadMethod, Size);
739
end;
740
741
// predefined CRC16/CRC32CCITT, avoid slower lookuptable computation by use of precomputation
742
var
743
  FCRC16: PCRCDef = nil;
744
  FCRC32: PCRCDef = nil;
745
746
function CRC16Init: Pointer;
747
begin
748
  // Replace GetMem by GetMemory due to C++ Builder compatibility
749
  // GetMem(FCRC16, SizeOf(TCRCDef));
750
  FCRC16 := GetMemory(SizeOf(TCRCDef));
751
  CRCInit(FCRC16^, CRC_16);
752
  Result := FCRC16;
753
end;
754
755
function CRC16(CRC: UInt16; const Buffer; Size: UInt32): UInt16;
756
{$IFDEF X86ASM}
757
asm
758
       JECXZ @@2
759
       PUSH  EDI
760
       PUSH  ESI
761
       MOV   EDI,ECX
762
{$IFDEF PIC}
763
       MOV   ESI,[EBX].FCRC16
764
{$ELSE !PIC}
765
       MOV   ESI,FCRC16
766
{$ENDIF !PIC}
767
       XOR   ECX,ECX
768
       TEST  ESI,ESI
769
       JZ    @@3
770
@@1:   MOV    CL,[EDX]
771
       XOR    CL,AL
772
       SHR   EAX,8
773
       INC   EDX
774
       XOR   EAX,[ESI + ECX * 4]
775
       DEC   EDI
776
       JNZ   @@1
777
       POP   ESI
778
       POP   EDI
779
@@2:   RET
780
@@3:   PUSH  EAX
781
       PUSH  EDX
782
       CALL  CRC16Init
783
       MOV   ESI,EAX
784
       XOR   ECX,ECX
785
       POP   EDX
786
       POP   EAX
787
       JMP   @@1
788
end;
789
{$ELSE !X86ASM}
790
var
791
  LCRC16: PCRCDef;
792
  P: PByte;
793
  CRC32: UInt32;
794
  Value: Byte;
795
begin
796
  if Size <> 0 then
797
  begin
798
    LCRC16 := FCRC16;
799
    if LCRC16 = nil then
800
      LCRC16 := CRC16Init;
801
802
    CRC32 := CRC;
803
    P := @Buffer;
804
    repeat
805
      Value := P^ xor Byte(CRC32);
806
      CRC32 := (CRC32 shr 8) xor LCRC16.Table[Value];
807
      Inc(P);
808
      Dec(Size);
809
    until Size = 0;
810
    Result := UInt16(CRC32);
811
  end
812
  else
813
    Result := CRC;
814
end;
815
{$ENDIF !X86ASM}
816
817
function CRC32Init: Pointer;
818
begin
819
  // Replaced for C++ Builder compatibility
820
  // GetMem(FCRC32, SizeOf(TCRCDef));
821
  FCRC32 := GetMemory(SizeOf(TCRCDef));
822
  CRCInit(FCRC32^, CRC_32CCITT);
823
  Result := FCRC32;
824
end;
825
826
function CRC32(CRC: UInt32; const Buffer; Size: UInt32): UInt32;
827
{$IFDEF X86ASM}
828
asm
829
       JECXZ @@2
830
       PUSH  EDI
831
       PUSH  ESI
832
       NOT   EAX                    // inverse Input CRC
833
       MOV   EDI,ECX
834
{$IFDEF PIC}
835
       MOV   ESI,[EBX].FCRC32
836
{$ELSE !PIC}
837
       MOV   ESI,FCRC32
838
{$ENDIF !PIC}
839
       XOR   ECX,ECX
840
       TEST  ESI,ESI
841
       JZ    @@3
842
@@1:   MOV    CL,[EDX]
843
       XOR    CL,AL
844
       SHR   EAX,8
845
       INC   EDX
846
       XOR   EAX,[ESI + ECX * 4]
847
       DEC   EDI
848
       JNZ   @@1
849
       NOT   EAX                    // inverse Output CRC
850
       POP   ESI
851
       POP   EDI
852
@@2:   RET
853
@@3:   PUSH  EAX
854
       PUSH  EDX
855
       CALL  CRC32Init
856
       MOV   ESI,EAX
857
       XOR   ECX,ECX
858
       POP   EDX
859
       POP   EAX
860
       JMP   @@1
861
end;
862
{$ELSE !X86ASM}
863
var
864
  LCRC32: PCRCDef;
865
  P: PByte;
866
  CRC32: UInt32;
867
  Value: Byte;
868
begin
869
  if Size <> 0 then
870
  begin
871
    LCRC32 := FCRC32;
872
    if LCRC32 = nil then
873
      LCRC32 := CRC32Init;
874
875
    CRC32 := not CRC; // inverse Input CRC
876
    P := @Buffer;
877
    repeat
878
      Value := P^ xor Byte(CRC32);
879
      CRC32 := (CRC32 shr 8) xor LCRC32.Table[Value];
880
      Inc(P);
881
      Dec(Size);
882
    until Size = 0;
883
    Result := not CRC32; // inverse Output CRC
884
  end
885
  else
886
    Result := CRC;
887
end;
888
{$ENDIF !X86ASM}
889
890
procedure CRCInitThreadSafe;
891
begin
892
  CRC16Init;
893
  CRC32Init;
894
end;
895
896
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
897
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
898
899
initialization
900
  CRCInitThreadSafe;
901
902
finalization
903
  if FCRC16 <> nil then
904
    FreeMem(FCRC16);
905
906
  if FCRC32 <> nil then
907
    FreeMem(FCRC32);
908
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECCipherBase(DECCipherBase.pas).html b/Unit Tests/CodeCoverage/U/DECCipherBase(DECCipherBase.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCipherBase(DECCipherBase.pas).html rename to Unit Tests/CodeCoverage/U/DECCipherBase(DECCipherBase.pas).html index 9af670b7..a83af33f 100644 --- a/Unit Tests/CodeCoverage/DECCipherBase(DECCipherBase.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCipherBase(DECCipherBase.pas).html @@ -1,1239 +1,1239 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCipherBase (D:\Projekte\DECGitMaster\Source\DECCipherBase.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherBase.pas

-
Number of lines covered133
Number of lines with code gen177
Line coverage75%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherBase;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils, Classes,
26
  {$ELSE}
27
  System.SysUtils, System.Classes, Generics.Collections,
28
  {$ENDIF}
29
  DECBaseClass, DECFormatBase;
30
31
type
32
  /// <summary>
33
  ///   Possible kindes of cipher algorithms independent of any block
34
  ///   concatenation mode etc.
35
  ///   <para>
36
  ///     ctNull = special "do nothing cipher"
37
  ///    </para>
38
  ///   <para>
39
  ///     ctStream = cipher operating on a stream of bytes instead of blocks
40
  ///    </para>
41
  ///   <para>
42
  ///     ctBlock = cipher operating on blocks of bytes with a fixed size
43
  ///    </para>
44
  ///   <para>
45
  ///     ctSymmetric = cipher where the same key encrypts and decrypts
46
  ///    </para>
47
  ///   <para>
48
  ///     ctAsymetric = cipher where encryption and decryption requires
49
  ///                   different keys
50
  ///    </para>
51
  /// </summary>
52
  TCipherTypes = (ctNull, ctStream, ctBlock, ctSymmetric, ctAsymmetric);
53
54
  /// <summary>
55
  ///   Actual kind of cipher algorithm
56
  /// </summary>
57
  TCipherType = set of TCipherTypes;
58
59
  /// <summary>
60
  ///   Padding used to fill the last incomplete block of a block encryption
61
  ///   algorithm. To be expanded in a future version
62
  /// </summary>
63
  TBlockFillMode = (fmByte);
64
65
  /// <summary>
66
  ///   Record containing meta data about a certain cipher
67
  /// </summary>
68
  TCipherContext = packed record
69
    /// <summary>
70
    ///   maximal key size in bytes
71
    /// </summary>
72
    KeySize    : Integer;
73
    /// <summary>
74
    ///   mininmal block size in bytes, e.g. 1 = Streamcipher
75
    /// </summary>
76
    BlockSize  : Integer;
77
    /// <summary>
78
    ///   internal buffersize in bytes
79
    /// </summary>
80
    BufferSize : Integer;
81
    /// <summary>
82
    ///   Size in bytes of the FAdditionalBuffer used by some of the cipher algorithms
83
    /// </summary>
84
    AdditionalBufferSize   : Integer;
85
    /// <summary>
86
    ///   When true the memory a certain internal pointer (FAdditionalBuffer)
87
    ///   points to needs to be backuped during key initialization if no init
88
    ///   vector is specified and restored at the end of that init method.
89
    ///   Same in Done method as well.
90
    /// </summary>
91
    NeedsAdditionalBufferBackup : Boolean;
92
    /// <summary>
93
    ///   Minimum number of rounds allowed for any block cipher having a rounds
94
    ///   property. In all other cases it will be set to 1.
95
    /// </summary>
96
    MinRounds : UInt16;
97
    /// <summary>
98
    ///   Maximum number of rounds allowed for any block cipher having a rounds
99
    ///   property. In all other cases it will be set to 1.
100
    /// </summary>
101
    MaxRounds : UInt16;
102
103
    /// <summary>
104
    ///   Specifies the kind of cipher
105
    /// </summary>
106
    CipherType : TCipherType;
107
  end;
108
109
  /// <summary>
110
  ///   TCipher.State represents the internal state of processing
111
  /// <para>
112
  ///   csNew : cipher isn't initialized, .Init() must be called before en/decode
113
  /// </para>
114
  /// <para>
115
  ///   csNew : cipher isn't initialized, .Init() must be called before en/decode
116
  /// </para>
117
  /// <para>
118
  ///   csInitialized : cipher is initialized by .Init(), i.e. Keysetup was processed
119
  /// </para>
120
  /// <para>
121
  ///   csEncode : Encoding was started, and more chunks can be encoded, but not decoded
122
  /// </para>
123
  /// <para>
124
  ///   csDecode : Decoding was started, and more chunks can be decoded, but not encoded
125
  /// </para>
126
  /// <para>
127
  ///   csPadded : trough En/Decoding the messagechunks are padded, no more chunks can
128
  ///                   be processed, the cipher is blocked
129
  /// </para>
130
  /// <para>
131
  ///   csDone : Processing is finished and Cipher.Done was called. Now new En/Decoding
132
  ///            can be started without calling .Init() before. csDone is basically
133
  ///            identical to csInitialized, except Cipher.Buffer holds the encrypted
134
  ///            last state of Cipher.Feedback, thus Cipher.Buffer can be used as C-MAC.
135
  /// </para>
136
  /// </summary>
137
  TCipherState = (csNew, csInitialized, csEncode, csDecode, csPadded, csDone);
138
  /// <summary>
139
  ///   Set of cipher states, representing the internal state of processing
140
  /// </summary>
141
  TCipherStates = set of TCipherState;
142
143
  /// <summary>
144
  ///   This defines how the individual blocks of the data to be processed are
145
  ///   linked with each other.
146
  ///
147
  ///   Modes cmCBCx, cmCTSx, cmCTSxx, cmCFBx, cmOFBx, cmCFSx, cmECBx are working
148
  ///   on Blocks of Cipher.BufferSize bytes, when using a Blockcipher that's equal
149
  ///   to Cipher.BlockSize.
150
  ///
151
  ///   Modes cmCFB8, cmOFB8, cmCFS8 work on 8 bit Feedback Shift Registers.
152
  ///
153
  ///   Modes cmCTSx, cmCFSx, cmCFS8 are proprietary modes developed by Hagen
154
  ///   Reddmann. These modes work like cmCBCx, cmCFBx, cmCFB8 but with double
155
  ///   XOR'ing of the inputstream into the feedback register.
156
  ///
157
  ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize and
158
  ///   should be used only in 1-byte Streamciphers.
159
  ///
160
  ///   Modes cmCFB8, cmCFBx, cmOFB8, cmOFBx, cmCFS8 and cmCFSx need no padding.
161
  ///
162
  ///   Modes cmCTSx, cmCBCx need no external padding, because internally the last
163
  ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
164
  ///   cannot be used to process any more data. If needed to process chunks of
165
  ///   data then each chunk must be algined to Cipher.BufferSize bytes.
166
  ///
167
  ///   Mode cmCTS3 is a proprietary mode developed by Frederik Winkelsdorf. It
168
  ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
169
  ///   Useful when converting projects that previously used the old DEC v3.0. It
170
  ///   has the same restrictions for external padding and chunk processing as
171
  ///   cmCTSx has.
172
  /// </summary>
173
  TCipherMode = (
174
    cmCTSx,   // double CBC, with CFS8 padding of truncated final block
175
    cmCBCx,   // Cipher Block Chaining, with CFB8 padding of truncated final block
176
    cmCFB8,   // 8bit Cipher Feedback mode
177
    cmCFBx,   // CFB on Blocksize of Cipher
178
    cmOFB8,   // 8bit Output Feedback mode
179
    cmOFBx,   // OFB on Blocksize bytes
180
    cmCFS8,   // 8Bit CFS, double CFB
181
    cmCFSx,   // CFS on Blocksize bytes
182
    cmECBx,   // Electronic Code Book
183
    cmGCM     // Galois Counter Mode
184
    {$IFDEF DEC3_CMCTS}
185
    ,cmCTS3   // double CBC, with less secure padding of truncated final block
186
              // for DEC 3.0 compatibility only (see DECOptions.inc)
187
    {$ENDIF DEC3_CMCTS}
188
  );
189
190
  /// <summary>
191
  ///   Each cipher algorithm has to implement a Encode and a Decode method which
192
  ///   has the same signature as this type. The CipherFormats get these
193
  ///   encode/decode methods passed to do their work.
194
  /// </summary>
195
  /// <param name="Source">
196
  ///   Contains the data to be encoded or decoded
197
  /// </param>
198
  /// <param name="Dest">
199
  ///   Contains the data after encoding or decoding
200
  /// </param>
201
  /// <param name="DataSize">
202
  ///   Number of bytes to encode or decode
203
  /// </param>
204
  TDECCipherCodeEvent = procedure(const Source; var Dest; DataSize: Integer) of object;
205
206
  /// <summary>
207
  ///   Class type of the cipher base class
208
  /// </summary>
209
  TDECCipherClass = class of TDECCipher;
210
211
  /// <summary>
212
  ///   Base class for all implemented cipher algorithms
213
  /// </summary>
214
  /// <remarks>
215
  ///   When adding new block ciphers do never directly inherit from this class!
216
  ///   Inherit from TDECCipherFormats.
217
  /// </remarks>
218
  TDECCipher = class(TDECObject)
219
  strict private
220
    /// <summary>
221
    ///   This is the complete memory block containing FInitializationVector,
222
    ///   FFeedback, FBuffer and FAdditionalBuffer
223
    /// </summary>
224
    FData     : PByteArray;
225
    /// <summary>
226
    ///   This is the size of FData in byte
227
    /// </summary>
228
    FDataSize : Integer;
229
  strict protected
230
    /// <summary>
231
    ///   Padding mode used to concatenate/connect blocks in a block cipher
232
    /// </summary>
233
    FMode     : TCipherMode;
234
    /// <summary>
235
    ///   Mode used for filling up an incomplete last block in a block cipher
236
    /// </summary>
237
    FFillMode : TBlockFillMode;
238
    /// <summary>
239
    ///   Current processing state
240
    /// </summary>
241
    FState: TCipherState;
242
    /// <summary>
243
    ///   Size of the internally used processing buffer in byte
244
    /// </summary>
245
    FBufferSize: Integer;
246
    /// <summary>
247
    ///   At which position of the buffer are we currently operating?
248
    /// </summary>
249
    FBufferIndex: Integer;
250
251
    /// <summary>
252
    ///   Some algorithms, mostly the cipher mode ones, need a temporary buffer
253
    ///   to work with. Some other methods like Done or Valid cipher need to pass
254
    ///   a buffer as parameter as that is ecpected by the called method.
255
    /// </summary>
256
    FBuffer: PByteArray;
257
258
    /// <summary>
259
    ///   Initialization vector. When using cipher modes to derive a stream
260
    ///   cipher from a block cipher algorithm some data from each encrypted block
261
    ///   is fed into the encryption of the next block. For the first block there
262
    ///   is no such encrypted data yet, so this initialization vector fills this
263
    ///   "gap".
264
    /// </summary>
265
    FInitializationVector: PByteArray;
266
267
    /// <summary>
268
    ///   Size of the initialization vector in byte. Required for algorithms
269
    ///   like GCM.
270
    /// </summary>
271
    FInitVectorSize: Integer;
272
273
    /// <summary>
274
    ///   Cipher modes are used to derive a stream cipher from block cipher
275
    ///   algorithms. For this something from the last entrypted block (or for
276
    ///   the first block from the vector) is used in the encryption of the next
277
    ///   block. It may be XORed with the next block cipher text for isntance.
278
    ///   That data "going into the next block encryption" is this feedback array
279
    /// </summary>
280
    FFeedback: PByteArray;
281
282
    /// <summary>
283
    ///   Size of FAdditionalBuffer in Byte
284
    /// </summary>
285
    FAdditionalBufferSize: Integer;
286
    /// <summary>
287
    ///   A buffer some of the cipher algorithms need to operate on. It is
288
    ///   some part of FBuffer like FInitializationVector and FFeedback as well.
289
    /// </summary>
290
    FAdditionalBuffer: Pointer;
291
292
    /// <summary>
293
    ///   If a user does not specify an init vector (IV) during key setup
294
    ///   (IV length = 0) the init method generates an IV by encrypting the
295
    ///   complete memory reserved for IV. Within this memory block is the memory
296
    ///   FAdditionalBuffer points to as well, and for some algorithms this part
297
    ///   of the memory may not be altered during initialization so it is
298
    ///   backupped to this memory location and restored after the IV got encrypted.
299
    ///   In DoDone it needs to be restored as well to prevent any unwanted
300
    ///   leftovers which might pose a security issue.
301
    /// </summary>
302
    FAdditionalBufferBackup: Pointer;
303
304
    /// <summary>
305
    ///   Checks whether the state machine is in one of the states specified as
306
    ///   parameter. If not a EDECCipherException will be raised.
307
    /// </summary>
308
    /// <param name="States">
309
    ///   List of states the state machine should be at currently
310
    /// </param>
311
    procedure CheckState(States: TCipherStates);
312
313
    /// <summary>
314
    ///   Initialize the key, based on the key passed in. This is called before
315
    ///   OnAfterInitVectorInitialization is called.
316
    /// </summary>
317
    /// <param name="Key">
318
    ///   Encryption/Decryption key to be used
319
    /// </param>
320
    /// <param name="Size">
321
    ///   Size of the key passed in bytes.
322
    /// </param>
323
    procedure DoInit(const Key; Size: Integer); virtual; abstract;
324
    /// <summary>
325
    ///   Allows to run code after the initialization vector has been initialized
326
    ///   inside the Init call, which is after DoInit has been called.
327
    /// </summary>
328
    /// <param name="OriginalInitVector">
329
    ///   Value of the init vector as originally passed to the Init call without
330
    ///   any initialization steps done to/on it
331
    /// </param>
332
    procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); virtual; abstract;
333
334
    /// <summary>
335
    ///   This abstract method needs to be overwritten by each concrete encryption
336
    ///   algorithm as this is the routine used internally to encrypt a single
337
    ///   block of data.
338
    /// </summary>
339
    /// <param name="Source">
340
    ///   Data to be encrypted
341
    /// </param>
342
    /// <param name="Dest">
343
    ///   In this memory the encrypted result will be written
344
    /// </param>
345
    /// <param name="Size">
346
    ///   Size of source in byte
347
    /// </param>
348
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); virtual; abstract;
349
    /// <summary>
350
    ///   This abstract method needs to be overwritten by each concrete encryption
351
    ///   algorithm as this is the routine used internally to decrypt a single
352
    ///   block of data.
353
    /// </summary>
354
    /// <param name="Source">
355
    ///   Data to be decrypted
356
    /// </param>
357
    /// <param name="Dest">
358
    ///   In this memory the decrypted result will be written
359
    /// </param>
360
    /// <param name="Size">
361
    ///   Size of source in byte
362
    /// </param>
363
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); virtual; abstract;
364
    /// <summary>
365
    ///   Securely fills the processing buffer with zeroes to make stealing data
366
    ///   from memory harder.
367
    /// </summary>
368
    procedure SecureErase; virtual;
369
370
    /// <summary>
371
    ///   Returns the currently set cipher block mode, means how blocks are
372
    ///   linked to each other in order to avoid certain attacks.
373
    /// </summary>
374
    function GetMode: TCipherMode;
375
376
    /// <summary>
377
    ///   Sets the cipher mode, means how each block is being linked with his
378
    ///   predecessor to avoid certain attacks
379
    /// </summary>
380
    procedure SetMode(Value: TCipherMode);
381
    /// <summary>
382
    ///   When setting a mode it might need to be initialized and that can
383
    ///   usually only be done in a child class.
384
    /// </summary>
385
    procedure InitMode; virtual; abstract;
386
  public
387
    /// <summary>
388
    ///   List of registered DEC classes. Key is the Identity of the class.
389
    /// </summary>
390
    class var ClassList : TDECClassList;
391
392
    /// <summary>
393
    ///   Tries to find a class type by its name
394
    /// </summary>
395
    /// <param name="Name">
396
    ///   Name to look for in the list
397
    /// </param>
398
    /// <returns>
399
    ///   Returns the class type if found. if it could not be found a
400
    ///   EDECClassNotRegisteredException will be thrown
401
    /// </returns>
402
    class function ClassByName(const Name: string): TDECCipherClass;
403
404
    /// <summary>
405
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
406
    ///   Useful for file headers, so they can easily encode numerically which
407
    ///   cipher class was being used.
408
    /// </summary>
409
    /// <param name="Identity">
410
    ///   Identity to look for
411
    /// </param>
412
    /// <returns>
413
    ///   Returns the class type of the class with the specified identity value
414
    ///   or throws an EDECClassNotRegisteredException exception if no class
415
    ///   with the given identity has been found
416
    /// </returns>
417
    class function ClassByIdentity(Identity: Int64): TDECCipherClass;
418
419
    /// <summary>
420
    ///   Provides meta data about the cipher algorithm used like key size.
421
    ///   To be overidden in the concrete cipher classes.
422
    /// </summary>
423
    /// <remarks>
424
    ///   C++ does not support virtual static functions thus the base cannot be
425
    ///   marked 'abstract'. Calling this version of the method will lead to an
426
    ///   EDECAbstractError
427
    /// </remarks>
428
    class function Context: TCipherContext; virtual;
429
430
    /// <summary>
431
    ///   Initializes the instance. Relies in parts on information given by the
432
    ///   Context class function.
433
    /// </summary>
434
    constructor Create; override;
435
    /// <summary>
436
    ///   Frees internal structures and where necessary does so in a save way so
437
    ///   that data in those structures cannot be "stolen".
438
    /// </summary>
439
    destructor Destroy; override;
440
441
    /// <summary>
442
    ///   Provides information whether the selected block concatenation mode
443
    ///   provides authentication functionality or not.
444
    /// </summary>
445
    /// <returns>
446
    ///   true if the selected block mode is one providing authentication features
447
    ///   as well
448
    /// </returns>
449
    function IsAuthenticated: Boolean;
450
451
    /// <summary>
452
    ///   Initializes the cipher with the necessary encryption/decryption key
453
    /// </summary>
454
    /// <param name="Key">
455
    ///   Encryption/decryption key. Recommended/required key length is dependant
456
    ///   on the concrete algorithm.
457
    /// </param>
458
    /// <param name="Size">
459
    ///   Size of the key in bytes
460
    /// </param>
461
    /// <param name="IVector">
462
    ///   Initialization vector. This contains the values the first block of
463
    ///   data to be processed is linked with. This is being done the same way
464
    ///   as the 2nd block of the data to be processed will be linked with the
465
    ///   first block and so on and this is dependant on the cypher mode set via
466
    ///   Mode property
467
    /// </param>
468
    /// <param name="IVectorSize">
469
    ///   Size of the initialization vector in bytes
470
    /// </param>
471
    /// <param name="IFiller">
472
    ///   optional parameter defining the value with which the last block will
473
    ///   be filled up if the size of the data to be processed cannot be divided
474
    ///   by block size without reminder. Means: if the last block is not
475
    ///   completely filled with data.
476
    /// </param>
477
    procedure Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte = $FF); overload;
478
    /// <summary>
479
    ///   Initializes the cipher with the necessary encryption/decryption key
480
    /// </summary>
481
    /// <param name="Key">
482
    ///   Encryption/decryption key. Recommended/required key length is dependant
483
    ///   on the concrete algorithm.
484
    /// </param>
485
    /// <param name="IVector">
486
    ///   Initialization vector. This contains the values the first block of
487
    ///   data to be processed is linked with. This is being done the same way
488
    ///   as the 2nd block of the data to be processed will be linked with the
489
    ///   first block and so on and this is dependant on the cypher mode set via
490
    ///   Mode property
491
    /// </param>
492
    /// <param name="IFiller">
493
    ///   optional parameter defining the value with which the last block will
494
    ///   be filled up if the size of the data to be processed cannot be divided
495
    ///   by block size without reminder. Means: if the last block is not
496
    ///   completely filled with data.
497
    /// </param>
498
    procedure Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF); overload;
499
    /// <summary>
500
    ///   Initializes the cipher with the necessary encryption/decryption key
501
    /// </summary>
502
    /// <param name="Key">
503
    ///   Encryption/decryption key. Recommended/required key length is dependant
504
    ///   on the concrete algorithm.
505
    /// </param>
506
    /// <param name="IVector">
507
    ///   Initialization vector. This contains the values the first block of
508
    ///   data to be processed is linked with. This is being done the same way
509
    ///   as the 2nd block of the data to be processed will be linked with the
510
    ///   first block and so on and this is dependant on the cypher mode set via
511
    ///   Mode property
512
    /// </param>
513
    /// <param name="IFiller">
514
    ///   optional parameter defining the value with which the last block will
515
    ///   be filled up if the size of the data to be processed cannot be divided
516
    ///   by block size without reminder. Means: if the last block is not
517
    ///   completely filled with data.
518
    /// </param>
519
    procedure Init(const Key: RawByteString; const IVector: RawByteString = ''; IFiller: Byte = $FF); overload;
520
    {$IFDEF ANSISTRINGSUPPORTED}
521
    /// <summary>
522
    ///   Initializes the cipher with the necessary encryption/decryption key.
523
    ///   Only for use with the classic desktop compilers.
524
    /// </summary>
525
    /// <param name="Key">
526
    ///   Encryption/decryption key. Recommended/required key length is dependant
527
    ///   on the concrete algorithm.
528
    /// </param>
529
    /// <param name="IVector">
530
    ///   Initialization vector. This contains the values the first block of
531
    ///   data to be processed is linked with. This is being done the same way
532
    ///   as the 2nd block of the data to be processed will be linked with the
533
    ///   first block and so on and this is dependant on the cypher mode set via
534
    ///   Mode property
535
    /// </param>
536
    /// <param name="IFiller">
537
    ///   optional parameter defining the value with which the last block will
538
    ///   be filled up if the size of the data to be processed cannot be divided
539
    ///   by block size without reminder. Means: if the last block is not
540
    ///   completely filled with data.
541
    /// </param>
542
    procedure Init(const Key: AnsiString; const IVector: AnsiString = ''; IFiller: Byte = $FF); overload;
543
    {$ENDIF}
544
    {$IFNDEF NEXTGEN}
545
    /// <summary>
546
    ///   Initializes the cipher with the necessary encryption/decryption key.
547
    ///   Only for use with the classic desktop compilers.
548
    /// </summary>
549
    /// <param name="Key">
550
    ///   Encryption/decryption key. Recommended/required key length is dependant
551
    ///   on the concrete algorithm.
552
    /// </param>
553
    /// <param name="IVector">
554
    ///   Initialization vector. This contains the values the first block of
555
    ///   data to be processed is linked with. This is being done the same way
556
    ///   as the 2nd block of the data to be processed will be linked with the
557
    ///   first block and so on and this is dependant on the cypher mode set via
558
    ///   Mode property
559
    /// </param>
560
    /// <param name="IFiller">
561
    ///   optional parameter defining the value with which the last block will
562
    ///   be filled up if the size of the data to be processed cannot be divided
563
    ///   by block size without reminder. Means: if the last block is not
564
    ///   completely filled with data.
565
    /// </param>
566
    procedure Init(const Key: WideString; const IVector: WideString = ''; IFiller: Byte = $FF); overload;
567
    {$ENDIF}
568
569
    /// <summary>
570
    ///   Properly finishes the cryptographic operation. It needs to be called
571
    ///   at the end of encrypting or decrypting data, otherwise the last block
572
    ///   or last byte of the data will not be properly processed.
573
    /// </summary>
574
    procedure Done; virtual;
575
576
    // Encoding / Decoding Routines
577
    // Do not add further methods of that kind here! If needed add them to
578
    // TDECFormattedCipher in DECCipherFormats or inherit from that one.
579
580
    /// <summary>
581
    ///   Encrypts the contents of a RawByteString. This method is deprecated
582
    ///   and should be replaced by a variant expecting TBytes as source in
583
    ///   order to not support mistreating strings as binary buffers.
584
    /// </summary>
585
    /// <remarks>
586
    ///   This is the direct successor of the EncodeBinary method from DEC 5.2.
587
    ///   When block chaining mode ECBx is used
588
    ///   (not recommended!), the size of the data passed via this parameter
589
    ///   needs to be a multiple of the block size of the algorithm used,
590
    ///   otherwise a EDECCipherException exception will be raised!
591
    /// </remarks>
592
    /// <param name="Source">
593
    ///   The data to be encrypted
594
    /// </param>
595
    /// <param name="Format">
596
    ///   Optional parameter. Here a formatting method can be passed. The
597
    ///   resulting encrypted data will be formatted with this function, if one
598
    ///   has been passed. Examples are hex or base 64 formatting.
599
    /// </param>
600
    /// <returns>
601
    ///   Encrypted data. Init must have been called previously.
602
    /// </returns>
603
    function EncodeRawByteString(const Source: RawByteString;
604
                                 Format: TDECFormatClass = nil): RawByteString;
605
                                 deprecated; // please use EncodeBytes functions now
606
                                             // or TCipherFormats.EncodeStringToString
607
    /// <summary>
608
    ///   Decrypts the contents of a RawByteString. This method is deprecated
609
    ///   and should be replaced by a variant expecting TBytes as source in
610
    ///   order to not support mistreating strings as binary buffers.
611
    /// </summary>
612
    /// <remarks>
613
    ///   This is the direct successor of the DecodeBinary method from DEC 5.2
614
    ///   When block chaining mode ECBx is used
615
    ///   (not recommended!), the size of the data passed via this parameter
616
    ///   needs to be a multiple of the block size of the algorithm used,
617
    ///   otherwise a EDECCipherException exception will be raised!
618
    /// </remarks>
619
    /// <param name="Source">
620
    ///   The data to be decrypted
621
    /// </param>
622
    /// <param name="Format">
623
    ///   Optional parameter. Here a formatting method can be passed. The
624
    ///   data to be decrypted will be formatted with this function, if one
625
    ///   has been passed. Examples are hex or base 64 formatting.
626
    ///   This is used for removing a formatting applied by the EncodeRawByteString
627
    ///   method.
628
    /// </param>
629
    /// <returns>
630
    ///   Decrypted data. Init must have been called previously.
631
    /// </returns>
632
    function DecodeRawByteString(const Source: RawByteString;
633
                                 Format: TDECFormatClass = nil): RawByteString; deprecated; // please use DecodeBytes functions now
634
635
    /// <summary>
636
    ///   Encrypts the contents of a ByteArray.
637
    /// </summary>
638
    /// <param name="Source">
639
    ///   The data to be encrypted. When block chaining mode ECBx is used
640
    ///   (not recommended!), the size of the data passed via this parameter
641
    ///   needs to be a multiple of the block size of the algorithm used,
642
    ///   otherwise a EDECCipherException exception will be raised!
643
    /// </param>
644
    /// <param name="Format">
645
    ///   Optional parameter. Here a formatting method can be passed. The
646
    ///   resulting encrypted data will be formatted with this function, if one
647
    ///   has been passed. Examples are hex or base 64 formatting.
648
    /// </param>
649
    /// <returns>
650
    ///   Encrypted data. Init must have been called previously.
651
    /// </returns>
652
    function EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes;
653
    /// <summary>
654
    ///   Decrypts the contents of a ByteArray.
655
    /// </summary>
656
    /// <param name="Source">
657
    ///   The data to be decrypted. When block chaining mode ECBx is used
658
    ///   (not recommended!), the size of the data passed via this parameter
659
    ///   needs to be a multiple of the block size of the algorithm used,
660
    ///   otherwise a EDECCipherException exception will be raised!
661
    /// </param>
662
    /// <param name="Format">
663
    ///   Optional parameter. Here a formatting method can be passed. The
664
    ///   data to be decrypted will be formatted with this function, if one
665
    ///   has been passed. Examples are hex or base 64 formatting.
666
    ///   This is used for removing a formatting applied by the EncodeRawByteString
667
    ///   method.
668
    /// </param>
669
    /// <returns>
670
    ///   Decrypted data. Init must have been called previously.
671
    /// </returns>
672
    function DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes;
673
674
    // CalcMACBytes deferred since the current implementation would neither be
675
    // performant (that would require another TFormatBase.Encode variant from
676
    // pointer to TBytes and that would require a new method name as overloads
677
    // may not differ in return values only and it would require a lot of unit
678
    // tests to get implemented. Deferred in particular also due to not yet
679
    // really understanding the purpose of CalcMAC
680
//    function CalcMACByte(Format: TDECFormatClass = nil): TBytes; overload;
681
682
    // Deprecated directive commented out, as replacement CalcMACByte has not
683
    // been implemented yet, see remark above. Use case for CalcMAC is not clear
684
    // yet either.
685
    function CalcMAC(Format: TDECFormatClass = nil): RawByteString; overload; //deprecated; // please use the TBytes based overload;
686
687
    // properties
688
689
    /// <summary>
690
    ///   Provides the size of the initialization vector in bytes.
691
    /// </summary>
692
    property InitVectorSize: Integer
693
      read   FBufferSize;
694
    /// <summary>
695
    ///   Provides access to the contents of the initialization vector
696
    /// </summary>
697
    property InitVector: PByteArray
698
      read   FInitializationVector;
699
700
    /// <summary>
701
    ///   Cipher modes are used to derive a stream cipher from block cipher
702
    ///   algorithms. For this something from the last entrypted block (or for
703
    ///   the first block from the vector) is used in the encryption of the next
704
    ///   block. It may be XORed with the next block cipher text for instance.
705
    ///   That data "going into the next block encryption" is stored in this
706
    ///   feedback array. The size usually depends on the block size of the
707
    ///   cipher algorithm.
708
    /// </summary>
709
    property Feedback: PByteArray
710
      read   FFeedback;
711
    /// <summary>
712
    ///   Allows to query the current internal processing state
713
    /// </summary>
714
    property State: TCipherState
715
      read   FState;
716
    /// <summary>
717
    ///   Mode used for padding data to be encrypted/decrypted. See TCipherMode.
718
    /// </summary>
719
    property Mode: TCipherMode
720
      read   GetMode
721
      write  SetMode;
722
723
    /// <summary>
724
    ///   Mode used for filling up an incomplete last block in a block cipher
725
    /// </summary>
726
    property FillMode: TBlockFillMode
727
      read   FFillMode
728
      write  FFillMode;
729
  end;
730
731
/// <summary>
732
///   Returns the passed cipher class type if it is not nil. Otherwise the
733
///   class type class set per SetDefaultCipherClass is being returned. If using
734
///   the DECCiphers unit that one registers TCipher_Null in the initialization
735
/// </summary>
736
/// <param name="CipherClass">
737
///   Class type of a cipher class like TCipher_Blowfish or nil, if no
738
///   encryption/decryption is desired.
739
/// </param>
740
/// <returns>
741
///   Passed class type or defined default cipher class type, depending on
742
///   CipherClass parameter value.
743
/// </returns>
744
function ValidCipher(CipherClass: TDECCipherClass = nil): TDECCipherClass;
745
746
/// <summary>
747
///   Defines which cipher class to return by ValidCipher if passing nil to that
748
/// </summary>
749
/// <param name="CipherClass">
750
///   Class type of a cipher class to return by ValidCipher if passing nil to
751
///   that one. This parameter should not be nil!
752
/// </param>
753
procedure SetDefaultCipherClass(CipherClass: TDECCipherClass);
754
755
/// <summary>
756
///   Provides information whether a certain block concatenation mode
757
///   provides authentication functionality or not.
758
/// </summary>
759
/// <param name="BlockMode">
760
///   Block mode to check fo authentication features
761
/// </param>
762
/// <returns>
763
///   true if the selected block mode is one providing authentication features
764
///   as well
765
/// </returns>
766
function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean;
767
768
implementation
769
770
uses
771
  {$IFDEF FPC}
772
  TypInfo,
773
  {$ELSE}
774
  System.TypInfo,
775
  {$ENDIF}
776
  DECTypes, DECUtil;
777
778
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
779
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
780
781
resourcestring
782
  sAlreadyPadded        = 'Cipher has already been padded, cannot process message';
783
  sInvalidState         = 'Cipher is not in valid state for this action';
784
  sNoKeyMaterialGiven   = 'No Keymaterial given (Security Issue)';
785
  sKeyMaterialTooLarge  = 'Keymaterial is too large for use (Security Issue)';
786
  sIVMaterialTooLarge   = 'Initvector is too large for use (Security Issue)';
787
  sInvalidMACMode       = 'Invalid Cipher mode to compute MAC';
788
  sCipherNoDefault      = 'No default cipher has been registered';
789
790
var
791
  /// <summary>
792
  ///   Cipher class returned by ValidCipher if nil is passed as parameter to it
793
  /// </summary>
794
  FDefaultCipherClass: TDECCipherClass = nil;
795
796
function ValidCipher(CipherClass: TDECCipherClass): TDECCipherClass;
797
begin
798
  if CipherClass <> nil then
799
    Result := CipherClass
800
  else
801
    Result := FDefaultCipherClass;
802
803
  if Result = nil then
804
    raise EDECCipherException.CreateRes(@sCipherNoDefault);
805
end;
806
807
procedure SetDefaultCipherClass(CipherClass: TDECCipherClass);
808
begin
809
  Assert(Assigned(CipherClass), 'Do not set a nil default cipher class!');
810
811
  FDefaultCipherClass := CipherClass;
812
end;
813
814
function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean;
815
begin
816
  Result := BlockMode = cmGCM;
817
end;
818
819
{ TDECCipher }
820
821
constructor TDECCipher.Create;
822
var
823
  MustAdditionalBufferSave: Boolean;
824
begin
825
  inherited Create;
826
827
  FBufferSize              := Context.BufferSize;
828
  FAdditionalBufferSize    := Context.AdditionalBufferSize;
829
  MustAdditionalBufferSave := Context.NeedsAdditionalBufferBackup;
830
831
  // Initialization vector, feedback, buffer, additional buffer
832
  FDataSize := FBufferSize * 3 + FAdditionalBufferSize;
833
834
  if MustAdditionalBufferSave then
835
    // if contents of the FAdditionalBuffer needs to be saved increase buffer size
836
    // by FAdditionalBufferSize so FAdditionalBuffer and then FAdditionalBufferBackup
837
    // fit in the buffer
838
    Inc(FDataSize, FAdditionalBufferSize);
839
840
  // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help
841
  FData                 := ReallocMemory(FData, FDataSize);
842
  FInitializationVector := @FData[0];
843
  FInitVectorSize       := 0;
844
  FFeedback             := @FInitializationVector[FBufferSize];
845
  FBuffer               := @FFeedback[FBufferSize];
846
  FAdditionalBuffer     := @FBuffer[FBufferSize];
847
848
  if MustAdditionalBufferSave then
849
    // buffer contents: FData, then FFeedback, then FBuffer then FAdditionalBuffer
850
    FAdditionalBufferBackup := @PByteArray(FAdditionalBuffer)[FAdditionalBufferSize]
851
  else
852
    FAdditionalBufferBackup := nil;
853
854
  FFillMode := fmByte;
855
  FState    := csNew;
856
857
  SecureErase;
858
end;
859
860
destructor TDECCipher.Destroy;
861
begin
862
  SecureErase;
863
  // FreeMem instead of ReallocMemory which produced a memory leak. ReallocMemory
864
  // was used instead of ReallocMem due to C++ compatibility as per 10.1 help
865
  FreeMem(FData, FDataSize);
866
  FInitializationVector   := nil;
867
  FFeedback               := nil;
868
  FBuffer                 := nil;
869
  FAdditionalBuffer       := nil;
870
  FAdditionalBufferBackup := nil;
871
  inherited Destroy;
872
end;
873
874
procedure TDECCipher.SetMode(Value: TCipherMode);
875
begin
876
  if Value <> FMode then
877
  begin
878
    if not (FState in [csNew, csInitialized, csDone]) then
879
      Done;
880
881
    FMode := Value;
882
    InitMode;
883
  end;
884
end;
885
886
procedure TDECCipher.CheckState(States: TCipherStates);
887
begin
888
  if not (FState in States) then
889
  begin
890
    if FState = csPadded then
891
      raise EDECCipherException.CreateRes(@sAlreadyPadded)
892
    else
893
      raise EDECCipherException.CreateRes(@sInvalidState);
894
  end;
895
end;
896
897
class function TDECCipher.ClassByIdentity(Identity: Int64): TDECCipherClass;
898
begin
899
  result := TDECCipherClass(ClassList.ClassByIdentity(Identity));
900
end;
901
902
class function TDECCipher.ClassByName(const Name: string): TDECCipherClass;
903
begin
904
  result := TDECCipherClass(ClassList.ClassByName(Name));
905
end;
906
907
class function TDECCipher.Context: TCipherContext;
908
begin
909
  // C++ does not support virtual static functions thus the base cannot be
910
  // marked 'abstract'. This is our workaround:
911
  raise EDECAbstractError.Create(GetShortClassName);
912
end;
913
914
procedure TDECCipher.Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte);
915
var
916
  OriginalInitVector : TBytes;
917
begin
918
  FState          := csNew;
919
  FInitVectorSize := IVectorSize;
920
  SecureErase;
921
922
  if (Size > Context.KeySize) and (not (ctNull in Context.CipherType)) then
923
    raise EDECCipherException.CreateRes(@sKeyMaterialTooLarge);
924
925
  if (FInitVectorSize > FBufferSize) and (not (FMode = cmGCM)) then
926
    raise EDECCipherException.CreateRes(@sIVMaterialTooLarge);
927
928
  DoInit(Key, Size);
929
  if FAdditionalBufferBackup <> nil then
930
    // create backup of FBuffer
931
    Move(FAdditionalBuffer^, FAdditionalBufferBackup^, FAdditionalBufferSize);
932
933
  FillChar(FInitializationVector^, FBufferSize, IFiller);
934
935
  SetLength(OriginalInitVector, IVectorSize);
936
  if (IVectorSize > 0) then
937
    Move(IVector, OriginalInitVector[0], IVectorSize);
938
939
  // GCM needs same treatment as empty IV even if IV specified
940
  if (IVectorSize = 0) or (FMode = cmGCM) then
941
  begin
942
    DoEncode(FInitializationVector, FInitializationVector, FBufferSize);
943
    if FAdditionalBufferBackup <> nil then
944
      // Restore backup fo FBuffer
945
      Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize);
946
  end
947
  else
948
    Move(IVector, FInitializationVector^, IVectorSize);
949
950
  OnAfterInitVectorInitialization(OriginalInitVector);
951
952
  Move(FInitializationVector^, FFeedback^, FBufferSize);
953
954
  FState := csInitialized;
955
end;
956
957
procedure TDECCipher.Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF);
958
begin
959
  // GCM allows empty key as the authentication still works
960
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
961
     (not (FMode = cmGCM)) then
962
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
963
964
  if IVector <> nil then
965
    Init(Key[0], Length(Key), IVector[0], Length(IVector), IFiller)
966
  else
967
    Init(Key[0], Length(Key), NullStr, 0, IFiller);
968
end;
969
970
procedure TDECCipher.Init(const Key     : RawByteString;
971
                          const IVector : RawByteString = '';
972
                          IFiller       : Byte = $FF);
973
begin
974
  // GCM allows empty key as the authentication still works
975
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
976
     (not (FMode = cmGCM)) then
977
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
978
979
  if Length(IVector) > 0 then
980
    {$IF CompilerVersion >= 24.0}
981
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
982
         IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller)
983
    {$ELSE}
984
    Init(Key[1], Length(Key) * SizeOf(Key[1]),
985
         IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller)
986
    {$IFEND}
987
  else
988
    {$IF CompilerVersion >= 24.0}
989
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
990
    {$ELSE}
991
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
992
    {$IFEND}
993
end;
994
995
996
{$IFDEF ANSISTRINGSUPPORTED}
997
procedure TDECCipher.Init(const Key, IVector: AnsiString; IFiller: Byte);
998
begin
999
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) then
1000
    raise EDECCipherException.Create(sNoKeyMaterialGiven);
1001
1002
  if Length(IVector) > 0 then
1003
    {$IF CompilerVersion >= 24.0}
1004
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
1005
         IVector[Low(IVector)], Length(IVector) * SizeOf(Low(IVector)), IFiller)
1006
    {$ELSE}
1007
    Init(Key[1], Length(Key) * SizeOf(Key[Low(Key)]),
1008
         IVector[IVector[1]], Length(IVector) * SizeOf(IVector[1]), IFiller)
1009
    {$IFEND}
1010
  else
1011
    {$IF CompilerVersion >= 24.0}
1012
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
1013
    {$ELSE}
1014
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
1015
    {$IFEND}
1016
end;
1017
{$ENDIF}
1018
1019
1020
{$IFNDEF NEXTGEN}
1021
procedure TDECCipher.Init(const Key, IVector: WideString; IFiller: Byte);
1022
begin
1023
  // GCM allows empty key as the authentication still works
1024
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
1025
     (not (FMode = cmGCM)) then
1026
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
1027
1028
  if Length(IVector) > 0 then
1029
    {$IF CompilerVersion >= 24.0}
1030
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
1031
         IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller)
1032
    {$ELSE}
1033
    Init(Key[1], Length(Key) * SizeOf(Key[1]),
1034
         IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller)
1035
    {$IFEND}
1036
  else
1037
    {$IF CompilerVersion >= 24.0}
1038
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
1039
    {$ELSE}
1040
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
1041
    {$IFEND}
1042
end;
1043
{$ENDIF}
1044
1045
function TDECCipher.IsAuthenticated: Boolean;
1046
begin
1047
  Result := IsAuthenticatedBlockMode(FMode);
1048
end;
1049
1050
procedure TDECCipher.Done;
1051
begin
1052
  if FState <> csDone then
1053
  begin
1054
    FState := csDone;
1055
    FBufferIndex := 0;
1056
    DoEncode(FFeedback, FBuffer, FBufferSize);
1057
    Move(FInitializationVector^, FFeedback^, FBufferSize);
1058
    if FAdditionalBufferBackup <> nil then
1059
      Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize);
1060
  end;
1061
end;
1062
1063
procedure TDECCipher.SecureErase;
1064
begin
1065
  ProtectBuffer(FData[0], FDataSize);
1066
end;
1067
1068
function TDECCipher.EncodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString;
1069
var
1070
  b : TBytes;
1071
begin
1072
  SetLength(b, 0);
1073
  if Length(Source) > 0 then
1074
  begin
1075
    {$IF CompilerVersion >= 24.0}
1076
    SetLength(b, Length(Source) * SizeOf(Source[Low(Source)]));
1077
    DoEncode(@Source[low(Source)], @b[0], Length(Source) * SizeOf(Source[low(Source)]));
1078
    {$ELSE}
1079
    SetLength(b, Length(Source) * SizeOf(Source[1]));
1080
    DoEncode(@Source[1], @b[0], Length(Source) * SizeOf(Source[1]));
1081
    {$IFEND}
1082
    Result := BytesToRawString(ValidFormat(Format).Encode(b));
1083
  end;
1084
end;
1085
1086
function TDECCipher.GetMode: TCipherMode;
1087
begin
1088
  Result := FMode;
1089
end;
1090
1091
function TDECCipher.EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes;
1092
begin
1093
  SetLength(Result, 0);
1094
  if Length(Source) > 0 then
1095
  begin
1096
    SetLength(Result, Length(Source) * SizeOf(Source[0]));
1097
    DoEncode(@Source[0], @Result[0], Length(Source) * SizeOf(Source[0]));
1098
    Result := ValidFormat(Format).Encode(Result);
1099
  end;
1100
end;
1101
1102
function TDECCipher.DecodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString;
1103
var
1104
  b : TBytes;
1105
begin
1106
  SetLength(Result, 0);
1107
  if Length(Source) > 0 then
1108
  begin
1109
    // Delphi 10.1 Berlin and 10.2 Tokyo will issue a W1057 implicit string
1110
    // conversion warning here because the RawByteString BytesOf function is by
1111
    // mistake in a $IFNDEF NEXTGEN block. See QP report:
1112
    // https://quality.embarcadero.com/browse/RSP-20574
1113
    // This has been fixed in 10.3.0 Rio
1114
    b := ValidFormat(Format).Decode(BytesOf(Source));
1115
1116
    {$IF CompilerVersion >= 24.0}
1117
    DoDecode(@b[0], @Result[Low(Result)], Length(Result) * SizeOf(Result[Low(Result)]));
1118
    {$ELSE}
1119
    DoDecode(@b[0], @Result[1], Length(Result) * SizeOf(Result[1]));
1120
    {$IFEND}
1121
  end;
1122
end;
1123
1124
function TDECCipher.DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes;
1125
begin
1126
  SetLength(Result, 0);
1127
  if Length(Source) > 0 then
1128
  begin
1129
    Result := ValidFormat(Format).Decode(Source);
1130
    DoDecode(@Result[0], @Result[0], Length(Result) * SizeOf(Result[0]));
1131
  end;
1132
end;
1133
1134
1135
function TDECCipher.CalcMAC(Format: TDECFormatClass): RawByteString;
1136
begin
1137
  Done;
1138
  if FMode in [cmECBx] then
1139
    raise EDECException.CreateRes(@sInvalidMACMode)
1140
  else
1141
    Result := ValidFormat(Format).Encode(FBuffer^, FBufferSize);
1142
  { TODO : How to rewrite? EncodeBytes cannot be called directly like that }
1143
end;
1144
1145
//function TDECCipher.CalcMACByte(Format: TDECFormatClass): TBytes;
1146
//begin
1147
//  Done;
1148
//  if FMode in [cmECBx] then
1149
//    raise EDECCipherException.Create(sInvalidMACMode)
1150
//  else
1151
//  begin
1152
//    Result := System.SysUtils.BytesOf(ValidFormat(Format).Encode(FBuffer^, FBufferSize));
1153
//  end;
1154
//end;
1155
1156
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
1157
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
1158
1159
{$IFDEF DELPHIORBCB}
1160
procedure ModuleUnload(Instance: NativeUInt);
1161
var // automaticaly deregistration/releasing
1162
  i: Integer;
1163
  Items: TArray<TPair<Int64, TDECCLass>>;
1164
begin
1165
  // C++Builder calls this function for our own module, but we destroy the ClassList
1166
  // in that case in the finalization section anyway.
1167
  if (Instance <> HInstance) and
1168
     (TDECCipher.ClassList <> nil) and (TDECCipher.ClassList.Count > 0) then
1169
  begin
1170
    Items := TDECCipher.ClassList.ToArray;
1171
    for i := Length(Items) - 1 downto 0 do
1172
    begin
1173
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
1174
        TDECCipher.ClassList.Remove(Items[i].Key);
1175
    end;
1176
  end;
1177
end;
1178
{$ENDIF DELPHIORBCB}
1179
1180
initialization
1181
  // Code for packages and dynamic extension of the class registration list
1182
  {$IFDEF DELPHIORBCB}
1183
  AddModuleUnloadProc(ModuleUnload);
1184
  {$ENDIF DELPHIORBCB}
1185
1186
  TDECCipher.ClassList := TDECClassList.Create;
1187
1188
finalization
1189
  // Ensure no further instances of classes registered in the registraiotn list
1190
  // are possible through the list after this unit has been unloaded by unloding
1191
  // the package this unit is in
1192
  {$IFDEF DELPHIORBCB}
1193
  RemoveModuleUnloadProc(ModuleUnload);
1194
  {$ENDIF DELPHIORBCB}
1195
1196
  TDECCipher.ClassList.Free;
1197
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherBase (D:\Projekte\DECGitMaster\Source\DECCipherBase.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherBase.pas

+
Number of lines covered133
Number of lines with code gen177
Line coverage75%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherBase;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils, Classes,
26
  {$ELSE}
27
  System.SysUtils, System.Classes, Generics.Collections,
28
  {$ENDIF}
29
  DECBaseClass, DECFormatBase;
30
31
type
32
  /// <summary>
33
  ///   Possible kindes of cipher algorithms independent of any block
34
  ///   concatenation mode etc.
35
  ///   <para>
36
  ///     ctNull = special "do nothing cipher"
37
  ///    </para>
38
  ///   <para>
39
  ///     ctStream = cipher operating on a stream of bytes instead of blocks
40
  ///    </para>
41
  ///   <para>
42
  ///     ctBlock = cipher operating on blocks of bytes with a fixed size
43
  ///    </para>
44
  ///   <para>
45
  ///     ctSymmetric = cipher where the same key encrypts and decrypts
46
  ///    </para>
47
  ///   <para>
48
  ///     ctAsymetric = cipher where encryption and decryption requires
49
  ///                   different keys
50
  ///    </para>
51
  /// </summary>
52
  TCipherTypes = (ctNull, ctStream, ctBlock, ctSymmetric, ctAsymmetric);
53
54
  /// <summary>
55
  ///   Actual kind of cipher algorithm
56
  /// </summary>
57
  TCipherType = set of TCipherTypes;
58
59
  /// <summary>
60
  ///   Padding used to fill the last incomplete block of a block encryption
61
  ///   algorithm. To be expanded in a future version
62
  /// </summary>
63
  TBlockFillMode = (fmByte);
64
65
  /// <summary>
66
  ///   Record containing meta data about a certain cipher
67
  /// </summary>
68
  TCipherContext = packed record
69
    /// <summary>
70
    ///   maximal key size in bytes
71
    /// </summary>
72
    KeySize    : Integer;
73
    /// <summary>
74
    ///   mininmal block size in bytes, e.g. 1 = Streamcipher
75
    /// </summary>
76
    BlockSize  : Integer;
77
    /// <summary>
78
    ///   internal buffersize in bytes
79
    /// </summary>
80
    BufferSize : Integer;
81
    /// <summary>
82
    ///   Size in bytes of the FAdditionalBuffer used by some of the cipher algorithms
83
    /// </summary>
84
    AdditionalBufferSize   : Integer;
85
    /// <summary>
86
    ///   When true the memory a certain internal pointer (FAdditionalBuffer)
87
    ///   points to needs to be backuped during key initialization if no init
88
    ///   vector is specified and restored at the end of that init method.
89
    ///   Same in Done method as well.
90
    /// </summary>
91
    NeedsAdditionalBufferBackup : Boolean;
92
    /// <summary>
93
    ///   Minimum number of rounds allowed for any block cipher having a rounds
94
    ///   property. In all other cases it will be set to 1.
95
    /// </summary>
96
    MinRounds : UInt16;
97
    /// <summary>
98
    ///   Maximum number of rounds allowed for any block cipher having a rounds
99
    ///   property. In all other cases it will be set to 1.
100
    /// </summary>
101
    MaxRounds : UInt16;
102
103
    /// <summary>
104
    ///   Specifies the kind of cipher
105
    /// </summary>
106
    CipherType : TCipherType;
107
  end;
108
109
  /// <summary>
110
  ///   TCipher.State represents the internal state of processing
111
  /// <para>
112
  ///   csNew : cipher isn't initialized, .Init() must be called before en/decode
113
  /// </para>
114
  /// <para>
115
  ///   csNew : cipher isn't initialized, .Init() must be called before en/decode
116
  /// </para>
117
  /// <para>
118
  ///   csInitialized : cipher is initialized by .Init(), i.e. Keysetup was processed
119
  /// </para>
120
  /// <para>
121
  ///   csEncode : Encoding was started, and more chunks can be encoded, but not decoded
122
  /// </para>
123
  /// <para>
124
  ///   csDecode : Decoding was started, and more chunks can be decoded, but not encoded
125
  /// </para>
126
  /// <para>
127
  ///   csPadded : trough En/Decoding the messagechunks are padded, no more chunks can
128
  ///                   be processed, the cipher is blocked
129
  /// </para>
130
  /// <para>
131
  ///   csDone : Processing is finished and Cipher.Done was called. Now new En/Decoding
132
  ///            can be started without calling .Init() before. csDone is basically
133
  ///            identical to csInitialized, except Cipher.Buffer holds the encrypted
134
  ///            last state of Cipher.Feedback, thus Cipher.Buffer can be used as C-MAC.
135
  /// </para>
136
  /// </summary>
137
  TCipherState = (csNew, csInitialized, csEncode, csDecode, csPadded, csDone);
138
  /// <summary>
139
  ///   Set of cipher states, representing the internal state of processing
140
  /// </summary>
141
  TCipherStates = set of TCipherState;
142
143
  /// <summary>
144
  ///   This defines how the individual blocks of the data to be processed are
145
  ///   linked with each other.
146
  ///
147
  ///   Modes cmCBCx, cmCTSx, cmCTSxx, cmCFBx, cmOFBx, cmCFSx, cmECBx are working
148
  ///   on Blocks of Cipher.BufferSize bytes, when using a Blockcipher that's equal
149
  ///   to Cipher.BlockSize.
150
  ///
151
  ///   Modes cmCFB8, cmOFB8, cmCFS8 work on 8 bit Feedback Shift Registers.
152
  ///
153
  ///   Modes cmCTSx, cmCFSx, cmCFS8 are proprietary modes developed by Hagen
154
  ///   Reddmann. These modes work like cmCBCx, cmCFBx, cmCFB8 but with double
155
  ///   XOR'ing of the inputstream into the feedback register.
156
  ///
157
  ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize and
158
  ///   should be used only in 1-byte Streamciphers.
159
  ///
160
  ///   Modes cmCFB8, cmCFBx, cmOFB8, cmOFBx, cmCFS8 and cmCFSx need no padding.
161
  ///
162
  ///   Modes cmCTSx, cmCBCx need no external padding, because internally the last
163
  ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
164
  ///   cannot be used to process any more data. If needed to process chunks of
165
  ///   data then each chunk must be algined to Cipher.BufferSize bytes.
166
  ///
167
  ///   Mode cmCTS3 is a proprietary mode developed by Frederik Winkelsdorf. It
168
  ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
169
  ///   Useful when converting projects that previously used the old DEC v3.0. It
170
  ///   has the same restrictions for external padding and chunk processing as
171
  ///   cmCTSx has.
172
  /// </summary>
173
  TCipherMode = (
174
    cmCTSx,   // double CBC, with CFS8 padding of truncated final block
175
    cmCBCx,   // Cipher Block Chaining, with CFB8 padding of truncated final block
176
    cmCFB8,   // 8bit Cipher Feedback mode
177
    cmCFBx,   // CFB on Blocksize of Cipher
178
    cmOFB8,   // 8bit Output Feedback mode
179
    cmOFBx,   // OFB on Blocksize bytes
180
    cmCFS8,   // 8Bit CFS, double CFB
181
    cmCFSx,   // CFS on Blocksize bytes
182
    cmECBx,   // Electronic Code Book
183
    cmGCM     // Galois Counter Mode
184
    {$IFDEF DEC3_CMCTS}
185
    ,cmCTS3   // double CBC, with less secure padding of truncated final block
186
              // for DEC 3.0 compatibility only (see DECOptions.inc)
187
    {$ENDIF DEC3_CMCTS}
188
  );
189
190
  /// <summary>
191
  ///   Each cipher algorithm has to implement a Encode and a Decode method which
192
  ///   has the same signature as this type. The CipherFormats get these
193
  ///   encode/decode methods passed to do their work.
194
  /// </summary>
195
  /// <param name="Source">
196
  ///   Contains the data to be encoded or decoded
197
  /// </param>
198
  /// <param name="Dest">
199
  ///   Contains the data after encoding or decoding
200
  /// </param>
201
  /// <param name="DataSize">
202
  ///   Number of bytes to encode or decode
203
  /// </param>
204
  TDECCipherCodeEvent = procedure(const Source; var Dest; DataSize: Integer) of object;
205
206
  /// <summary>
207
  ///   Class type of the cipher base class
208
  /// </summary>
209
  TDECCipherClass = class of TDECCipher;
210
211
  /// <summary>
212
  ///   Base class for all implemented cipher algorithms
213
  /// </summary>
214
  /// <remarks>
215
  ///   When adding new block ciphers do never directly inherit from this class!
216
  ///   Inherit from TDECCipherFormats.
217
  /// </remarks>
218
  TDECCipher = class(TDECObject)
219
  strict private
220
    /// <summary>
221
    ///   This is the complete memory block containing FInitializationVector,
222
    ///   FFeedback, FBuffer and FAdditionalBuffer
223
    /// </summary>
224
    FData     : PByteArray;
225
    /// <summary>
226
    ///   This is the size of FData in byte
227
    /// </summary>
228
    FDataSize : Integer;
229
  strict protected
230
    /// <summary>
231
    ///   Padding mode used to concatenate/connect blocks in a block cipher
232
    /// </summary>
233
    FMode     : TCipherMode;
234
    /// <summary>
235
    ///   Mode used for filling up an incomplete last block in a block cipher
236
    /// </summary>
237
    FFillMode : TBlockFillMode;
238
    /// <summary>
239
    ///   Current processing state
240
    /// </summary>
241
    FState: TCipherState;
242
    /// <summary>
243
    ///   Size of the internally used processing buffer in byte
244
    /// </summary>
245
    FBufferSize: Integer;
246
    /// <summary>
247
    ///   At which position of the buffer are we currently operating?
248
    /// </summary>
249
    FBufferIndex: Integer;
250
251
    /// <summary>
252
    ///   Some algorithms, mostly the cipher mode ones, need a temporary buffer
253
    ///   to work with. Some other methods like Done or Valid cipher need to pass
254
    ///   a buffer as parameter as that is ecpected by the called method.
255
    /// </summary>
256
    FBuffer: PByteArray;
257
258
    /// <summary>
259
    ///   Initialization vector. When using cipher modes to derive a stream
260
    ///   cipher from a block cipher algorithm some data from each encrypted block
261
    ///   is fed into the encryption of the next block. For the first block there
262
    ///   is no such encrypted data yet, so this initialization vector fills this
263
    ///   "gap".
264
    /// </summary>
265
    FInitializationVector: PByteArray;
266
267
    /// <summary>
268
    ///   Size of the initialization vector in byte. Required for algorithms
269
    ///   like GCM.
270
    /// </summary>
271
    FInitVectorSize: Integer;
272
273
    /// <summary>
274
    ///   Cipher modes are used to derive a stream cipher from block cipher
275
    ///   algorithms. For this something from the last entrypted block (or for
276
    ///   the first block from the vector) is used in the encryption of the next
277
    ///   block. It may be XORed with the next block cipher text for isntance.
278
    ///   That data "going into the next block encryption" is this feedback array
279
    /// </summary>
280
    FFeedback: PByteArray;
281
282
    /// <summary>
283
    ///   Size of FAdditionalBuffer in Byte
284
    /// </summary>
285
    FAdditionalBufferSize: Integer;
286
    /// <summary>
287
    ///   A buffer some of the cipher algorithms need to operate on. It is
288
    ///   some part of FBuffer like FInitializationVector and FFeedback as well.
289
    /// </summary>
290
    FAdditionalBuffer: Pointer;
291
292
    /// <summary>
293
    ///   If a user does not specify an init vector (IV) during key setup
294
    ///   (IV length = 0) the init method generates an IV by encrypting the
295
    ///   complete memory reserved for IV. Within this memory block is the memory
296
    ///   FAdditionalBuffer points to as well, and for some algorithms this part
297
    ///   of the memory may not be altered during initialization so it is
298
    ///   backupped to this memory location and restored after the IV got encrypted.
299
    ///   In DoDone it needs to be restored as well to prevent any unwanted
300
    ///   leftovers which might pose a security issue.
301
    /// </summary>
302
    FAdditionalBufferBackup: Pointer;
303
304
    /// <summary>
305
    ///   Checks whether the state machine is in one of the states specified as
306
    ///   parameter. If not a EDECCipherException will be raised.
307
    /// </summary>
308
    /// <param name="States">
309
    ///   List of states the state machine should be at currently
310
    /// </param>
311
    procedure CheckState(States: TCipherStates);
312
313
    /// <summary>
314
    ///   Initialize the key, based on the key passed in. This is called before
315
    ///   OnAfterInitVectorInitialization is called.
316
    /// </summary>
317
    /// <param name="Key">
318
    ///   Encryption/Decryption key to be used
319
    /// </param>
320
    /// <param name="Size">
321
    ///   Size of the key passed in bytes.
322
    /// </param>
323
    procedure DoInit(const Key; Size: Integer); virtual; abstract;
324
    /// <summary>
325
    ///   Allows to run code after the initialization vector has been initialized
326
    ///   inside the Init call, which is after DoInit has been called.
327
    /// </summary>
328
    /// <param name="OriginalInitVector">
329
    ///   Value of the init vector as originally passed to the Init call without
330
    ///   any initialization steps done to/on it
331
    /// </param>
332
    procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); virtual; abstract;
333
334
    /// <summary>
335
    ///   This abstract method needs to be overwritten by each concrete encryption
336
    ///   algorithm as this is the routine used internally to encrypt a single
337
    ///   block of data.
338
    /// </summary>
339
    /// <param name="Source">
340
    ///   Data to be encrypted
341
    /// </param>
342
    /// <param name="Dest">
343
    ///   In this memory the encrypted result will be written
344
    /// </param>
345
    /// <param name="Size">
346
    ///   Size of source in byte
347
    /// </param>
348
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); virtual; abstract;
349
    /// <summary>
350
    ///   This abstract method needs to be overwritten by each concrete encryption
351
    ///   algorithm as this is the routine used internally to decrypt a single
352
    ///   block of data.
353
    /// </summary>
354
    /// <param name="Source">
355
    ///   Data to be decrypted
356
    /// </param>
357
    /// <param name="Dest">
358
    ///   In this memory the decrypted result will be written
359
    /// </param>
360
    /// <param name="Size">
361
    ///   Size of source in byte
362
    /// </param>
363
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); virtual; abstract;
364
    /// <summary>
365
    ///   Securely fills the processing buffer with zeroes to make stealing data
366
    ///   from memory harder.
367
    /// </summary>
368
    procedure SecureErase; virtual;
369
370
    /// <summary>
371
    ///   Returns the currently set cipher block mode, means how blocks are
372
    ///   linked to each other in order to avoid certain attacks.
373
    /// </summary>
374
    function GetMode: TCipherMode;
375
376
    /// <summary>
377
    ///   Sets the cipher mode, means how each block is being linked with his
378
    ///   predecessor to avoid certain attacks
379
    /// </summary>
380
    procedure SetMode(Value: TCipherMode);
381
    /// <summary>
382
    ///   When setting a mode it might need to be initialized and that can
383
    ///   usually only be done in a child class.
384
    /// </summary>
385
    procedure InitMode; virtual; abstract;
386
  public
387
    /// <summary>
388
    ///   List of registered DEC classes. Key is the Identity of the class.
389
    /// </summary>
390
    class var ClassList : TDECClassList;
391
392
    /// <summary>
393
    ///   Tries to find a class type by its name
394
    /// </summary>
395
    /// <param name="Name">
396
    ///   Name to look for in the list
397
    /// </param>
398
    /// <returns>
399
    ///   Returns the class type if found. if it could not be found a
400
    ///   EDECClassNotRegisteredException will be thrown
401
    /// </returns>
402
    class function ClassByName(const Name: string): TDECCipherClass;
403
404
    /// <summary>
405
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
406
    ///   Useful for file headers, so they can easily encode numerically which
407
    ///   cipher class was being used.
408
    /// </summary>
409
    /// <param name="Identity">
410
    ///   Identity to look for
411
    /// </param>
412
    /// <returns>
413
    ///   Returns the class type of the class with the specified identity value
414
    ///   or throws an EDECClassNotRegisteredException exception if no class
415
    ///   with the given identity has been found
416
    /// </returns>
417
    class function ClassByIdentity(Identity: Int64): TDECCipherClass;
418
419
    /// <summary>
420
    ///   Provides meta data about the cipher algorithm used like key size.
421
    ///   To be overidden in the concrete cipher classes.
422
    /// </summary>
423
    /// <remarks>
424
    ///   C++ does not support virtual static functions thus the base cannot be
425
    ///   marked 'abstract'. Calling this version of the method will lead to an
426
    ///   EDECAbstractError
427
    /// </remarks>
428
    class function Context: TCipherContext; virtual;
429
430
    /// <summary>
431
    ///   Initializes the instance. Relies in parts on information given by the
432
    ///   Context class function.
433
    /// </summary>
434
    constructor Create; override;
435
    /// <summary>
436
    ///   Frees internal structures and where necessary does so in a save way so
437
    ///   that data in those structures cannot be "stolen".
438
    /// </summary>
439
    destructor Destroy; override;
440
441
    /// <summary>
442
    ///   Provides information whether the selected block concatenation mode
443
    ///   provides authentication functionality or not.
444
    /// </summary>
445
    /// <returns>
446
    ///   true if the selected block mode is one providing authentication features
447
    ///   as well
448
    /// </returns>
449
    function IsAuthenticated: Boolean;
450
451
    /// <summary>
452
    ///   Initializes the cipher with the necessary encryption/decryption key
453
    /// </summary>
454
    /// <param name="Key">
455
    ///   Encryption/decryption key. Recommended/required key length is dependant
456
    ///   on the concrete algorithm.
457
    /// </param>
458
    /// <param name="Size">
459
    ///   Size of the key in bytes
460
    /// </param>
461
    /// <param name="IVector">
462
    ///   Initialization vector. This contains the values the first block of
463
    ///   data to be processed is linked with. This is being done the same way
464
    ///   as the 2nd block of the data to be processed will be linked with the
465
    ///   first block and so on and this is dependant on the cypher mode set via
466
    ///   Mode property
467
    /// </param>
468
    /// <param name="IVectorSize">
469
    ///   Size of the initialization vector in bytes
470
    /// </param>
471
    /// <param name="IFiller">
472
    ///   optional parameter defining the value with which the last block will
473
    ///   be filled up if the size of the data to be processed cannot be divided
474
    ///   by block size without reminder. Means: if the last block is not
475
    ///   completely filled with data.
476
    /// </param>
477
    procedure Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte = $FF); overload;
478
    /// <summary>
479
    ///   Initializes the cipher with the necessary encryption/decryption key
480
    /// </summary>
481
    /// <param name="Key">
482
    ///   Encryption/decryption key. Recommended/required key length is dependant
483
    ///   on the concrete algorithm.
484
    /// </param>
485
    /// <param name="IVector">
486
    ///   Initialization vector. This contains the values the first block of
487
    ///   data to be processed is linked with. This is being done the same way
488
    ///   as the 2nd block of the data to be processed will be linked with the
489
    ///   first block and so on and this is dependant on the cypher mode set via
490
    ///   Mode property
491
    /// </param>
492
    /// <param name="IFiller">
493
    ///   optional parameter defining the value with which the last block will
494
    ///   be filled up if the size of the data to be processed cannot be divided
495
    ///   by block size without reminder. Means: if the last block is not
496
    ///   completely filled with data.
497
    /// </param>
498
    procedure Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF); overload;
499
    /// <summary>
500
    ///   Initializes the cipher with the necessary encryption/decryption key
501
    /// </summary>
502
    /// <param name="Key">
503
    ///   Encryption/decryption key. Recommended/required key length is dependant
504
    ///   on the concrete algorithm.
505
    /// </param>
506
    /// <param name="IVector">
507
    ///   Initialization vector. This contains the values the first block of
508
    ///   data to be processed is linked with. This is being done the same way
509
    ///   as the 2nd block of the data to be processed will be linked with the
510
    ///   first block and so on and this is dependant on the cypher mode set via
511
    ///   Mode property
512
    /// </param>
513
    /// <param name="IFiller">
514
    ///   optional parameter defining the value with which the last block will
515
    ///   be filled up if the size of the data to be processed cannot be divided
516
    ///   by block size without reminder. Means: if the last block is not
517
    ///   completely filled with data.
518
    /// </param>
519
    procedure Init(const Key: RawByteString; const IVector: RawByteString = ''; IFiller: Byte = $FF); overload;
520
    {$IFDEF ANSISTRINGSUPPORTED}
521
    /// <summary>
522
    ///   Initializes the cipher with the necessary encryption/decryption key.
523
    ///   Only for use with the classic desktop compilers.
524
    /// </summary>
525
    /// <param name="Key">
526
    ///   Encryption/decryption key. Recommended/required key length is dependant
527
    ///   on the concrete algorithm.
528
    /// </param>
529
    /// <param name="IVector">
530
    ///   Initialization vector. This contains the values the first block of
531
    ///   data to be processed is linked with. This is being done the same way
532
    ///   as the 2nd block of the data to be processed will be linked with the
533
    ///   first block and so on and this is dependant on the cypher mode set via
534
    ///   Mode property
535
    /// </param>
536
    /// <param name="IFiller">
537
    ///   optional parameter defining the value with which the last block will
538
    ///   be filled up if the size of the data to be processed cannot be divided
539
    ///   by block size without reminder. Means: if the last block is not
540
    ///   completely filled with data.
541
    /// </param>
542
    procedure Init(const Key: AnsiString; const IVector: AnsiString = ''; IFiller: Byte = $FF); overload;
543
    {$ENDIF}
544
    {$IFNDEF NEXTGEN}
545
    /// <summary>
546
    ///   Initializes the cipher with the necessary encryption/decryption key.
547
    ///   Only for use with the classic desktop compilers.
548
    /// </summary>
549
    /// <param name="Key">
550
    ///   Encryption/decryption key. Recommended/required key length is dependant
551
    ///   on the concrete algorithm.
552
    /// </param>
553
    /// <param name="IVector">
554
    ///   Initialization vector. This contains the values the first block of
555
    ///   data to be processed is linked with. This is being done the same way
556
    ///   as the 2nd block of the data to be processed will be linked with the
557
    ///   first block and so on and this is dependant on the cypher mode set via
558
    ///   Mode property
559
    /// </param>
560
    /// <param name="IFiller">
561
    ///   optional parameter defining the value with which the last block will
562
    ///   be filled up if the size of the data to be processed cannot be divided
563
    ///   by block size without reminder. Means: if the last block is not
564
    ///   completely filled with data.
565
    /// </param>
566
    procedure Init(const Key: WideString; const IVector: WideString = ''; IFiller: Byte = $FF); overload;
567
    {$ENDIF}
568
569
    /// <summary>
570
    ///   Properly finishes the cryptographic operation. It needs to be called
571
    ///   at the end of encrypting or decrypting data, otherwise the last block
572
    ///   or last byte of the data will not be properly processed.
573
    /// </summary>
574
    procedure Done; virtual;
575
576
    // Encoding / Decoding Routines
577
    // Do not add further methods of that kind here! If needed add them to
578
    // TDECFormattedCipher in DECCipherFormats or inherit from that one.
579
580
    /// <summary>
581
    ///   Encrypts the contents of a RawByteString. This method is deprecated
582
    ///   and should be replaced by a variant expecting TBytes as source in
583
    ///   order to not support mistreating strings as binary buffers.
584
    /// </summary>
585
    /// <remarks>
586
    ///   This is the direct successor of the EncodeBinary method from DEC 5.2.
587
    ///   When block chaining mode ECBx is used
588
    ///   (not recommended!), the size of the data passed via this parameter
589
    ///   needs to be a multiple of the block size of the algorithm used,
590
    ///   otherwise a EDECCipherException exception will be raised!
591
    /// </remarks>
592
    /// <param name="Source">
593
    ///   The data to be encrypted
594
    /// </param>
595
    /// <param name="Format">
596
    ///   Optional parameter. Here a formatting method can be passed. The
597
    ///   resulting encrypted data will be formatted with this function, if one
598
    ///   has been passed. Examples are hex or base 64 formatting.
599
    /// </param>
600
    /// <returns>
601
    ///   Encrypted data. Init must have been called previously.
602
    /// </returns>
603
    function EncodeRawByteString(const Source: RawByteString;
604
                                 Format: TDECFormatClass = nil): RawByteString;
605
                                 deprecated; // please use EncodeBytes functions now
606
                                             // or TCipherFormats.EncodeStringToString
607
    /// <summary>
608
    ///   Decrypts the contents of a RawByteString. This method is deprecated
609
    ///   and should be replaced by a variant expecting TBytes as source in
610
    ///   order to not support mistreating strings as binary buffers.
611
    /// </summary>
612
    /// <remarks>
613
    ///   This is the direct successor of the DecodeBinary method from DEC 5.2
614
    ///   When block chaining mode ECBx is used
615
    ///   (not recommended!), the size of the data passed via this parameter
616
    ///   needs to be a multiple of the block size of the algorithm used,
617
    ///   otherwise a EDECCipherException exception will be raised!
618
    /// </remarks>
619
    /// <param name="Source">
620
    ///   The data to be decrypted
621
    /// </param>
622
    /// <param name="Format">
623
    ///   Optional parameter. Here a formatting method can be passed. The
624
    ///   data to be decrypted will be formatted with this function, if one
625
    ///   has been passed. Examples are hex or base 64 formatting.
626
    ///   This is used for removing a formatting applied by the EncodeRawByteString
627
    ///   method.
628
    /// </param>
629
    /// <returns>
630
    ///   Decrypted data. Init must have been called previously.
631
    /// </returns>
632
    function DecodeRawByteString(const Source: RawByteString;
633
                                 Format: TDECFormatClass = nil): RawByteString; deprecated; // please use DecodeBytes functions now
634
635
    /// <summary>
636
    ///   Encrypts the contents of a ByteArray.
637
    /// </summary>
638
    /// <param name="Source">
639
    ///   The data to be encrypted. When block chaining mode ECBx is used
640
    ///   (not recommended!), the size of the data passed via this parameter
641
    ///   needs to be a multiple of the block size of the algorithm used,
642
    ///   otherwise a EDECCipherException exception will be raised!
643
    /// </param>
644
    /// <param name="Format">
645
    ///   Optional parameter. Here a formatting method can be passed. The
646
    ///   resulting encrypted data will be formatted with this function, if one
647
    ///   has been passed. Examples are hex or base 64 formatting.
648
    /// </param>
649
    /// <returns>
650
    ///   Encrypted data. Init must have been called previously.
651
    /// </returns>
652
    function EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes;
653
    /// <summary>
654
    ///   Decrypts the contents of a ByteArray.
655
    /// </summary>
656
    /// <param name="Source">
657
    ///   The data to be decrypted. When block chaining mode ECBx is used
658
    ///   (not recommended!), the size of the data passed via this parameter
659
    ///   needs to be a multiple of the block size of the algorithm used,
660
    ///   otherwise a EDECCipherException exception will be raised!
661
    /// </param>
662
    /// <param name="Format">
663
    ///   Optional parameter. Here a formatting method can be passed. The
664
    ///   data to be decrypted will be formatted with this function, if one
665
    ///   has been passed. Examples are hex or base 64 formatting.
666
    ///   This is used for removing a formatting applied by the EncodeRawByteString
667
    ///   method.
668
    /// </param>
669
    /// <returns>
670
    ///   Decrypted data. Init must have been called previously.
671
    /// </returns>
672
    function DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes;
673
674
    // CalcMACBytes deferred since the current implementation would neither be
675
    // performant (that would require another TFormatBase.Encode variant from
676
    // pointer to TBytes and that would require a new method name as overloads
677
    // may not differ in return values only and it would require a lot of unit
678
    // tests to get implemented. Deferred in particular also due to not yet
679
    // really understanding the purpose of CalcMAC
680
//    function CalcMACByte(Format: TDECFormatClass = nil): TBytes; overload;
681
682
    // Deprecated directive commented out, as replacement CalcMACByte has not
683
    // been implemented yet, see remark above. Use case for CalcMAC is not clear
684
    // yet either.
685
    function CalcMAC(Format: TDECFormatClass = nil): RawByteString; overload; //deprecated; // please use the TBytes based overload;
686
687
    // properties
688
689
    /// <summary>
690
    ///   Provides the size of the initialization vector in bytes.
691
    /// </summary>
692
    property InitVectorSize: Integer
693
      read   FBufferSize;
694
    /// <summary>
695
    ///   Provides access to the contents of the initialization vector
696
    /// </summary>
697
    property InitVector: PByteArray
698
      read   FInitializationVector;
699
700
    /// <summary>
701
    ///   Cipher modes are used to derive a stream cipher from block cipher
702
    ///   algorithms. For this something from the last entrypted block (or for
703
    ///   the first block from the vector) is used in the encryption of the next
704
    ///   block. It may be XORed with the next block cipher text for instance.
705
    ///   That data "going into the next block encryption" is stored in this
706
    ///   feedback array. The size usually depends on the block size of the
707
    ///   cipher algorithm.
708
    /// </summary>
709
    property Feedback: PByteArray
710
      read   FFeedback;
711
    /// <summary>
712
    ///   Allows to query the current internal processing state
713
    /// </summary>
714
    property State: TCipherState
715
      read   FState;
716
    /// <summary>
717
    ///   Mode used for padding data to be encrypted/decrypted. See TCipherMode.
718
    /// </summary>
719
    property Mode: TCipherMode
720
      read   GetMode
721
      write  SetMode;
722
723
    /// <summary>
724
    ///   Mode used for filling up an incomplete last block in a block cipher
725
    /// </summary>
726
    property FillMode: TBlockFillMode
727
      read   FFillMode
728
      write  FFillMode;
729
  end;
730
731
/// <summary>
732
///   Returns the passed cipher class type if it is not nil. Otherwise the
733
///   class type class set per SetDefaultCipherClass is being returned. If using
734
///   the DECCiphers unit that one registers TCipher_Null in the initialization
735
/// </summary>
736
/// <param name="CipherClass">
737
///   Class type of a cipher class like TCipher_Blowfish or nil, if no
738
///   encryption/decryption is desired.
739
/// </param>
740
/// <returns>
741
///   Passed class type or defined default cipher class type, depending on
742
///   CipherClass parameter value.
743
/// </returns>
744
function ValidCipher(CipherClass: TDECCipherClass = nil): TDECCipherClass;
745
746
/// <summary>
747
///   Defines which cipher class to return by ValidCipher if passing nil to that
748
/// </summary>
749
/// <param name="CipherClass">
750
///   Class type of a cipher class to return by ValidCipher if passing nil to
751
///   that one. This parameter should not be nil!
752
/// </param>
753
procedure SetDefaultCipherClass(CipherClass: TDECCipherClass);
754
755
/// <summary>
756
///   Provides information whether a certain block concatenation mode
757
///   provides authentication functionality or not.
758
/// </summary>
759
/// <param name="BlockMode">
760
///   Block mode to check fo authentication features
761
/// </param>
762
/// <returns>
763
///   true if the selected block mode is one providing authentication features
764
///   as well
765
/// </returns>
766
function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean;
767
768
implementation
769
770
uses
771
  {$IFDEF FPC}
772
  TypInfo,
773
  {$ELSE}
774
  System.TypInfo,
775
  {$ENDIF}
776
  DECTypes, DECUtil;
777
778
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
779
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
780
781
resourcestring
782
  sAlreadyPadded        = 'Cipher has already been padded, cannot process message';
783
  sInvalidState         = 'Cipher is not in valid state for this action';
784
  sNoKeyMaterialGiven   = 'No Keymaterial given (Security Issue)';
785
  sKeyMaterialTooLarge  = 'Keymaterial is too large for use (Security Issue)';
786
  sIVMaterialTooLarge   = 'Initvector is too large for use (Security Issue)';
787
  sInvalidMACMode       = 'Invalid Cipher mode to compute MAC';
788
  sCipherNoDefault      = 'No default cipher has been registered';
789
790
var
791
  /// <summary>
792
  ///   Cipher class returned by ValidCipher if nil is passed as parameter to it
793
  /// </summary>
794
  FDefaultCipherClass: TDECCipherClass = nil;
795
796
function ValidCipher(CipherClass: TDECCipherClass): TDECCipherClass;
797
begin
798
  if CipherClass <> nil then
799
    Result := CipherClass
800
  else
801
    Result := FDefaultCipherClass;
802
803
  if Result = nil then
804
    raise EDECCipherException.CreateRes(@sCipherNoDefault);
805
end;
806
807
procedure SetDefaultCipherClass(CipherClass: TDECCipherClass);
808
begin
809
  Assert(Assigned(CipherClass), 'Do not set a nil default cipher class!');
810
811
  FDefaultCipherClass := CipherClass;
812
end;
813
814
function IsAuthenticatedBlockMode(BlockMode: TCipherMode): Boolean;
815
begin
816
  Result := BlockMode = cmGCM;
817
end;
818
819
{ TDECCipher }
820
821
constructor TDECCipher.Create;
822
var
823
  MustAdditionalBufferSave: Boolean;
824
begin
825
  inherited Create;
826
827
  FBufferSize              := Context.BufferSize;
828
  FAdditionalBufferSize    := Context.AdditionalBufferSize;
829
  MustAdditionalBufferSave := Context.NeedsAdditionalBufferBackup;
830
831
  // Initialization vector, feedback, buffer, additional buffer
832
  FDataSize := FBufferSize * 3 + FAdditionalBufferSize;
833
834
  if MustAdditionalBufferSave then
835
    // if contents of the FAdditionalBuffer needs to be saved increase buffer size
836
    // by FAdditionalBufferSize so FAdditionalBuffer and then FAdditionalBufferBackup
837
    // fit in the buffer
838
    Inc(FDataSize, FAdditionalBufferSize);
839
840
  // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help
841
  FData                 := ReallocMemory(FData, FDataSize);
842
  FInitializationVector := @FData[0];
843
  FInitVectorSize       := 0;
844
  FFeedback             := @FInitializationVector[FBufferSize];
845
  FBuffer               := @FFeedback[FBufferSize];
846
  FAdditionalBuffer     := @FBuffer[FBufferSize];
847
848
  if MustAdditionalBufferSave then
849
    // buffer contents: FData, then FFeedback, then FBuffer then FAdditionalBuffer
850
    FAdditionalBufferBackup := @PByteArray(FAdditionalBuffer)[FAdditionalBufferSize]
851
  else
852
    FAdditionalBufferBackup := nil;
853
854
  FFillMode := fmByte;
855
  FState    := csNew;
856
857
  SecureErase;
858
end;
859
860
destructor TDECCipher.Destroy;
861
begin
862
  SecureErase;
863
  // FreeMem instead of ReallocMemory which produced a memory leak. ReallocMemory
864
  // was used instead of ReallocMem due to C++ compatibility as per 10.1 help
865
  FreeMem(FData, FDataSize);
866
  FInitializationVector   := nil;
867
  FFeedback               := nil;
868
  FBuffer                 := nil;
869
  FAdditionalBuffer       := nil;
870
  FAdditionalBufferBackup := nil;
871
  inherited Destroy;
872
end;
873
874
procedure TDECCipher.SetMode(Value: TCipherMode);
875
begin
876
  if Value <> FMode then
877
  begin
878
    if not (FState in [csNew, csInitialized, csDone]) then
879
      Done;
880
881
    FMode := Value;
882
    InitMode;
883
  end;
884
end;
885
886
procedure TDECCipher.CheckState(States: TCipherStates);
887
begin
888
  if not (FState in States) then
889
  begin
890
    if FState = csPadded then
891
      raise EDECCipherException.CreateRes(@sAlreadyPadded)
892
    else
893
      raise EDECCipherException.CreateRes(@sInvalidState);
894
  end;
895
end;
896
897
class function TDECCipher.ClassByIdentity(Identity: Int64): TDECCipherClass;
898
begin
899
  result := TDECCipherClass(ClassList.ClassByIdentity(Identity));
900
end;
901
902
class function TDECCipher.ClassByName(const Name: string): TDECCipherClass;
903
begin
904
  result := TDECCipherClass(ClassList.ClassByName(Name));
905
end;
906
907
class function TDECCipher.Context: TCipherContext;
908
begin
909
  // C++ does not support virtual static functions thus the base cannot be
910
  // marked 'abstract'. This is our workaround:
911
  raise EDECAbstractError.Create(GetShortClassName);
912
end;
913
914
procedure TDECCipher.Init(const Key; Size: Integer; const IVector; IVectorSize: Integer; IFiller: Byte);
915
var
916
  OriginalInitVector : TBytes;
917
begin
918
  FState          := csNew;
919
  FInitVectorSize := IVectorSize;
920
  SecureErase;
921
922
  if (Size > Context.KeySize) and (not (ctNull in Context.CipherType)) then
923
    raise EDECCipherException.CreateRes(@sKeyMaterialTooLarge);
924
925
  if (FInitVectorSize > FBufferSize) and (not (FMode = cmGCM)) then
926
    raise EDECCipherException.CreateRes(@sIVMaterialTooLarge);
927
928
  DoInit(Key, Size);
929
  if FAdditionalBufferBackup <> nil then
930
    // create backup of FBuffer
931
    Move(FAdditionalBuffer^, FAdditionalBufferBackup^, FAdditionalBufferSize);
932
933
  FillChar(FInitializationVector^, FBufferSize, IFiller);
934
935
  SetLength(OriginalInitVector, IVectorSize);
936
  if (IVectorSize > 0) then
937
    Move(IVector, OriginalInitVector[0], IVectorSize);
938
939
  // GCM needs same treatment as empty IV even if IV specified
940
  if (IVectorSize = 0) or (FMode = cmGCM) then
941
  begin
942
    DoEncode(FInitializationVector, FInitializationVector, FBufferSize);
943
    if FAdditionalBufferBackup <> nil then
944
      // Restore backup fo FBuffer
945
      Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize);
946
  end
947
  else
948
    Move(IVector, FInitializationVector^, IVectorSize);
949
950
  OnAfterInitVectorInitialization(OriginalInitVector);
951
952
  Move(FInitializationVector^, FFeedback^, FBufferSize);
953
954
  FState := csInitialized;
955
end;
956
957
procedure TDECCipher.Init(const Key: TBytes; const IVector: TBytes; IFiller: Byte = $FF);
958
begin
959
  // GCM allows empty key as the authentication still works
960
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
961
     (not (FMode = cmGCM)) then
962
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
963
964
  if IVector <> nil then
965
    Init(Key[0], Length(Key), IVector[0], Length(IVector), IFiller)
966
  else
967
    Init(Key[0], Length(Key), NullStr, 0, IFiller);
968
end;
969
970
procedure TDECCipher.Init(const Key     : RawByteString;
971
                          const IVector : RawByteString = '';
972
                          IFiller       : Byte = $FF);
973
begin
974
  // GCM allows empty key as the authentication still works
975
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
976
     (not (FMode = cmGCM)) then
977
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
978
979
  if Length(IVector) > 0 then
980
    {$IF CompilerVersion >= 24.0}
981
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
982
         IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller)
983
    {$ELSE}
984
    Init(Key[1], Length(Key) * SizeOf(Key[1]),
985
         IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller)
986
    {$IFEND}
987
  else
988
    {$IF CompilerVersion >= 24.0}
989
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
990
    {$ELSE}
991
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
992
    {$IFEND}
993
end;
994
995
996
{$IFDEF ANSISTRINGSUPPORTED}
997
procedure TDECCipher.Init(const Key, IVector: AnsiString; IFiller: Byte);
998
begin
999
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) then
1000
    raise EDECCipherException.Create(sNoKeyMaterialGiven);
1001
1002
  if Length(IVector) > 0 then
1003
    {$IF CompilerVersion >= 24.0}
1004
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
1005
         IVector[Low(IVector)], Length(IVector) * SizeOf(Low(IVector)), IFiller)
1006
    {$ELSE}
1007
    Init(Key[1], Length(Key) * SizeOf(Key[Low(Key)]),
1008
         IVector[IVector[1]], Length(IVector) * SizeOf(IVector[1]), IFiller)
1009
    {$IFEND}
1010
  else
1011
    {$IF CompilerVersion >= 24.0}
1012
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
1013
    {$ELSE}
1014
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
1015
    {$IFEND}
1016
end;
1017
{$ENDIF}
1018
1019
1020
{$IFNDEF NEXTGEN}
1021
procedure TDECCipher.Init(const Key, IVector: WideString; IFiller: Byte);
1022
begin
1023
  // GCM allows empty key as the authentication still works
1024
  if (Length(Key) = 0) and (not (ctNull in Context.CipherType)) and
1025
     (not (FMode = cmGCM)) then
1026
    raise EDECCipherException.CreateRes(@sNoKeyMaterialGiven);
1027
1028
  if Length(IVector) > 0 then
1029
    {$IF CompilerVersion >= 24.0}
1030
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]),
1031
         IVector[Low(IVector)], Length(IVector) * SizeOf(IVector[Low(IVector)]), IFiller)
1032
    {$ELSE}
1033
    Init(Key[1], Length(Key) * SizeOf(Key[1]),
1034
         IVector[1], Length(IVector) * SizeOf(IVector[1]), IFiller)
1035
    {$IFEND}
1036
  else
1037
    {$IF CompilerVersion >= 24.0}
1038
    Init(Key[Low(Key)], Length(Key) * SizeOf(Key[Low(Key)]), NullStr, 0, IFiller);
1039
    {$ELSE}
1040
    Init(Key[1], Length(Key) * SizeOf(Key[1]), NullStr, 0, IFiller);
1041
    {$IFEND}
1042
end;
1043
{$ENDIF}
1044
1045
function TDECCipher.IsAuthenticated: Boolean;
1046
begin
1047
  Result := IsAuthenticatedBlockMode(FMode);
1048
end;
1049
1050
procedure TDECCipher.Done;
1051
begin
1052
  if FState <> csDone then
1053
  begin
1054
    FState := csDone;
1055
    FBufferIndex := 0;
1056
    DoEncode(FFeedback, FBuffer, FBufferSize);
1057
    Move(FInitializationVector^, FFeedback^, FBufferSize);
1058
    if FAdditionalBufferBackup <> nil then
1059
      Move(FAdditionalBufferBackup^, FAdditionalBuffer^, FAdditionalBufferSize);
1060
  end;
1061
end;
1062
1063
procedure TDECCipher.SecureErase;
1064
begin
1065
  ProtectBuffer(FData[0], FDataSize);
1066
end;
1067
1068
function TDECCipher.EncodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString;
1069
var
1070
  b : TBytes;
1071
begin
1072
  SetLength(b, 0);
1073
  if Length(Source) > 0 then
1074
  begin
1075
    {$IF CompilerVersion >= 24.0}
1076
    SetLength(b, Length(Source) * SizeOf(Source[Low(Source)]));
1077
    DoEncode(@Source[low(Source)], @b[0], Length(Source) * SizeOf(Source[low(Source)]));
1078
    {$ELSE}
1079
    SetLength(b, Length(Source) * SizeOf(Source[1]));
1080
    DoEncode(@Source[1], @b[0], Length(Source) * SizeOf(Source[1]));
1081
    {$IFEND}
1082
    Result := BytesToRawString(ValidFormat(Format).Encode(b));
1083
  end;
1084
end;
1085
1086
function TDECCipher.GetMode: TCipherMode;
1087
begin
1088
  Result := FMode;
1089
end;
1090
1091
function TDECCipher.EncodeBytes(const Source: TBytes; Format: TDECFormatClass = nil): TBytes;
1092
begin
1093
  SetLength(Result, 0);
1094
  if Length(Source) > 0 then
1095
  begin
1096
    SetLength(Result, Length(Source) * SizeOf(Source[0]));
1097
    DoEncode(@Source[0], @Result[0], Length(Source) * SizeOf(Source[0]));
1098
    Result := ValidFormat(Format).Encode(Result);
1099
  end;
1100
end;
1101
1102
function TDECCipher.DecodeRawByteString(const Source: RawByteString; Format: TDECFormatClass): RawByteString;
1103
var
1104
  b : TBytes;
1105
begin
1106
  SetLength(Result, 0);
1107
  if Length(Source) > 0 then
1108
  begin
1109
    // Delphi 10.1 Berlin and 10.2 Tokyo will issue a W1057 implicit string
1110
    // conversion warning here because the RawByteString BytesOf function is by
1111
    // mistake in a $IFNDEF NEXTGEN block. See QP report:
1112
    // https://quality.embarcadero.com/browse/RSP-20574
1113
    // This has been fixed in 10.3.0 Rio
1114
    b := ValidFormat(Format).Decode(BytesOf(Source));
1115
1116
    {$IF CompilerVersion >= 24.0}
1117
    DoDecode(@b[0], @Result[Low(Result)], Length(Result) * SizeOf(Result[Low(Result)]));
1118
    {$ELSE}
1119
    DoDecode(@b[0], @Result[1], Length(Result) * SizeOf(Result[1]));
1120
    {$IFEND}
1121
  end;
1122
end;
1123
1124
function TDECCipher.DecodeBytes(const Source: TBytes; Format: TDECFormatClass): TBytes;
1125
begin
1126
  SetLength(Result, 0);
1127
  if Length(Source) > 0 then
1128
  begin
1129
    Result := ValidFormat(Format).Decode(Source);
1130
    DoDecode(@Result[0], @Result[0], Length(Result) * SizeOf(Result[0]));
1131
  end;
1132
end;
1133
1134
1135
function TDECCipher.CalcMAC(Format: TDECFormatClass): RawByteString;
1136
begin
1137
  Done;
1138
  if FMode in [cmECBx] then
1139
    raise EDECException.CreateRes(@sInvalidMACMode)
1140
  else
1141
    Result := ValidFormat(Format).Encode(FBuffer^, FBufferSize);
1142
  { TODO : How to rewrite? EncodeBytes cannot be called directly like that }
1143
end;
1144
1145
//function TDECCipher.CalcMACByte(Format: TDECFormatClass): TBytes;
1146
//begin
1147
//  Done;
1148
//  if FMode in [cmECBx] then
1149
//    raise EDECCipherException.Create(sInvalidMACMode)
1150
//  else
1151
//  begin
1152
//    Result := System.SysUtils.BytesOf(ValidFormat(Format).Encode(FBuffer^, FBufferSize));
1153
//  end;
1154
//end;
1155
1156
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
1157
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
1158
1159
{$IFDEF DELPHIORBCB}
1160
procedure ModuleUnload(Instance: NativeUInt);
1161
var // automaticaly deregistration/releasing
1162
  i: Integer;
1163
  Items: TArray<TPair<Int64, TDECCLass>>;
1164
begin
1165
  // C++Builder calls this function for our own module, but we destroy the ClassList
1166
  // in that case in the finalization section anyway.
1167
  if (Instance <> HInstance) and
1168
     (TDECCipher.ClassList <> nil) and (TDECCipher.ClassList.Count > 0) then
1169
  begin
1170
    Items := TDECCipher.ClassList.ToArray;
1171
    for i := Length(Items) - 1 downto 0 do
1172
    begin
1173
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
1174
        TDECCipher.ClassList.Remove(Items[i].Key);
1175
    end;
1176
  end;
1177
end;
1178
{$ENDIF DELPHIORBCB}
1179
1180
initialization
1181
  // Code for packages and dynamic extension of the class registration list
1182
  {$IFDEF DELPHIORBCB}
1183
  AddModuleUnloadProc(ModuleUnload);
1184
  {$ENDIF DELPHIORBCB}
1185
1186
  TDECCipher.ClassList := TDECClassList.Create;
1187
1188
finalization
1189
  // Ensure no further instances of classes registered in the registraiotn list
1190
  // are possible through the list after this unit has been unloaded by unloding
1191
  // the package this unit is in
1192
  {$IFDEF DELPHIORBCB}
1193
  RemoveModuleUnloadProc(ModuleUnload);
1194
  {$ENDIF DELPHIORBCB}
1195
1196
  TDECCipher.ClassList.Free;
1197
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECCipherFormats(DECCipherFormats.pas).html b/Unit Tests/CodeCoverage/U/DECCipherFormats(DECCipherFormats.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCipherFormats(DECCipherFormats.pas).html rename to Unit Tests/CodeCoverage/U/DECCipherFormats(DECCipherFormats.pas).html index 7bf32aad..ecbeea48 100644 --- a/Unit Tests/CodeCoverage/DECCipherFormats(DECCipherFormats.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCipherFormats(DECCipherFormats.pas).html @@ -1,1091 +1,1091 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCipherFormats (D:\Projekte\DECGitMaster\Source\DECCipherFormats.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherFormats.pas

-
Number of lines covered141
Number of lines with code gen161
Line coverage87%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherFormats;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils, Classes,
26
  {$ELSE}
27
  System.SysUtils, System.Classes,
28
  {$ENDIF}
29
  DECCipherBase, DECCipherModes,
30
  DECUtil, DECTypes, DECFormatBase, DECCipherInterface;
31
32
type
33
  /// <summary>
34
  ///   Class in which the various encode/decode variants provided have been
35
  ///   moved in order to keep the base cipher class small and clean.
36
  /// </summary>
37
  TDECFormattedCipher = class(TDECCipherModes, IDECCipher)
38
  private
39
    /// <summary>
40
    ///   Encrypts or decrypts the data contained in a given stream
41
    /// </summary>
42
    /// <param name="Source">
43
    ///   Source stream containing the data to encrypt or to decrypt
44
    /// </param>
45
    /// <param name="Dest">
46
    ///   Destination stream, where the encrypted or decrypted data shall be put in
47
    /// </param>
48
    /// <param name="DataSize">
49
    ///   Number of bytes of Source to be encrypted or decrypted
50
    /// </param>
51
    /// <param name="CipherProc">
52
    ///   Callback which either encrypts or decrypts the stream, depending on
53
    ///   which one is being passed
54
    /// </param>
55
    /// <param name="OnProgress">
56
    ///   optional callback for reporting progress of the operation
57
    /// </param>
58
    procedure DoEncodeDecodeStream(const Source, Dest: TStream; DataSize: Int64;
59
                                   const CipherProc: TDECCipherCodeEvent;
60
                                   const OnProgress: TDECProgressEvent);
61
62
    /// <summary>
63
    ///   Encrypts or decrypts a file and stores the result in another file
64
    /// </summary>
65
    /// <param name="SourceFileName">
66
    ///   Path and name of the file to encrypt
67
    /// </param>
68
    /// <param name="DestFileName">
69
    ///   Path and name of the file the encrypted data shall be stored in
70
    /// </param>
71
    /// <param name="Proc">
72
    ///   This method does the actual encrypting or decrypting of the data.
73
    ///   Usually the Encode or Decode method is being passed here which is
74
    ///   declared in TDECCipherBase as virtual abstract method and
75
    ///   implemented in the individual cipher class inheriting from this one
76
    /// </param>
77
    /// <param name="OnProgress">
78
    ///   Optional event which can be passed to get information about the
79
    ///   progress of the encryption operation
80
    /// </param>
81
    procedure DoEncodeDecodeFile(const SourceFileName, DestFileName: string;
82
                                 const Proc: TDECCipherCodeEvent;
83
                                 const OnProgress: TDECProgressEvent);
84
  public
85
    /// <summary>
86
    ///   Encrypts the contents of a given byte array
87
    /// </summary>
88
    /// <param name="Source">
89
    ///   Byte array with data to be encrypted. When block chaining mode ECBx
90
    ///   is used (not recommended!), the size of the data passed via this
91
    ///   parameter needs to be a multiple of the block size of the algorithm used,
92
    ///   otherwise a EDECCipherException exception will be raised!
93
    /// </param>
94
    /// <returns>
95
    ///   Byte array with encrypted data
96
    /// </returns>
97
    function EncodeBytes(const Source: TBytes): TBytes;
98
99
    /// <summary>
100
    ///   Decrypts the contents of a given byte array
101
    /// </summary>
102
    /// <param name="Source">
103
    ///   Byte array with data to be decrypted. When block chaining mode ECBx
104
    ///   is used (not recommended!), the size of the data passed via this
105
    ///   parameter needs to be a multiple of the block size of the algorithm used,
106
    ///   otherwise a EDECCipherException exception will be raised!
107
    /// </param>
108
    /// <returns>
109
    ///   Byte array with decrypted data
110
    /// </returns>
111
    function DecodeBytes(const Source: TBytes): TBytes;
112
113
    /// <summary>
114
    ///   Encrypts the data contained in a given stream
115
    /// </summary>
116
    /// <param name="Source">
117
    ///   Source stream containing the data to encrypt. When block chaining mode ECBx
118
    ///   is used (not recommended!), the size of the data passed via this
119
    ///   parameter needs to be a multiple of the block size of the algorithm used,
120
    ///   otherwise a EDECCipherException exception will be raised!
121
    /// </param>
122
    /// <param name="Dest">
123
    ///   Destination stream, where the encrypted data shall be put in
124
    /// </param>
125
    /// <param name="DataSize">
126
    ///   Number of bytes of Source to be encrypted
127
    /// </param>
128
    /// <param name="OnProgress">
129
    ///   optional callback for reporting progress of the operation
130
    /// </param>
131
    procedure EncodeStream(const Source, Dest: TStream; DataSize: Int64;
132
                           const OnProgress: TDECProgressEvent = nil);
133
134
    /// <summary>
135
    ///   Decrypts the data contained in a given stream
136
    /// </summary>
137
    /// <param name="Source">
138
    ///   Source stream containing the data to decrypt. When block chaining mode ECBx
139
    ///   is used (not recommended!), the size of the data passed via this
140
    ///   parameter needs to be a multiple of the block size of the algorithm used,
141
    ///   otherwise a EDECCipherException exception will be raised!
142
    /// </param>
143
    /// <param name="Dest">
144
    ///   Destination stream, where the decrypted data shall be put in
145
    /// </param>
146
    /// <param name="DataSize">
147
    ///   Number of bytes of Source to be decrypted
148
    /// </param>
149
    /// <param name="OnProgress">
150
    ///   optional callback for reporting progress of the operation
151
    /// </param>
152
    procedure DecodeStream(const Source, Dest: TStream; DataSize: Int64;
153
                           const OnProgress: TDECProgressEvent = nil);
154
155
    /// <summary>
156
    ///   Reads the contents of one file, encrypts it and stores it in another file
157
    /// </summary>
158
    /// <param name="SourceFileName">
159
    ///   Path and name of the file to encrypt. When block chaining mode ECBx
160
    ///   is used (not recommended!), the size of the data passed via this
161
    ///   parameter needs to be a multiple of the block size of the algorithm
162
    ///   used, otherwise a EDECCipherException exception will be raised!
163
    /// </param>
164
    /// <param name="DestFileName">
165
    ///   Path and name of the file the encrypted data shall be stored in
166
    /// </param>
167
    /// <param name="OnProgress">
168
    ///   Optional event which can be passed to get information about the
169
    ///   progress of the encryption operation
170
    /// </param>
171
    procedure EncodeFile(const SourceFileName, DestFileName: string;
172
                         const OnProgress: TDECProgressEvent = nil);
173
174
    /// <summary>
175
    ///   Reads the contents of one file, decrypts it and stores it in another file
176
    /// </summary>
177
    /// <param name="SourceFileName">
178
    ///   Path and name of the file to decrypt. When block chaining mode ECBx
179
    ///   is used (not recommended!), the size of the data passed via this
180
    ///   parameter needs to be a multiple of the block size of the algorithm
181
    ///   used, otherwise a EDECCipherException exception will be raised!
182
    /// </param>
183
    /// <param name="DestFileName">
184
    ///   Path and name of the file the decrypted data shall be stored in
185
    /// </param>
186
    /// <param name="OnProgress">
187
    ///   Optional event which can be passed to get information about the
188
    ///   progress of the decryption operation
189
    /// </param>
190
    procedure DecodeFile(const SourceFileName, DestFileName: string;
191
                         const OnProgress: TDECProgressEvent = nil);
192
193
    /// <summary>
194
    ///   Encrypts the contents of the passed unicode string
195
    /// </summary>
196
    /// <param name="Source">
197
    ///   String to encrypt. When block chaining mode ECBx
198
    ///   is used (not recommended!), the size of the data passed via this
199
    ///   parameter needs to be a multiple of the block size of the algorithm
200
    ///   used, otherwise a EDECCipherException exception will be raised!
201
    /// </param>
202
    /// <param name="Format">
203
    ///   Optional parameter. One can pass a class reference of one of the
204
    ///   concrete data formatting classes here which will be internally used
205
    ///   to convert the data. Encoded will be the encrypted data, not the
206
    ///   source data. Formattings can be used to convert data into a format
207
    ///   suitable for the transport medium the data shall be transported with.
208
    /// </param>
209
    /// <returns>
210
    ///   Encrypted string as a byte array
211
    /// </returns>
212
    function EncodeStringToBytes(const Source: string;
213
                                 Format: TDECFormatClass = nil): TBytes; overload;
214
215
    /// <summary>
216
    ///   Encrypts the contents of the passed RawByteString
217
    /// </summary>
218
    /// <param name="Source">
219
    ///   String to encrypt. When block chaining mode ECBx
220
    ///   is used (not recommended!), the size of the data passed via this
221
    ///   parameter needs to be a multiple of the block size of the algorithm
222
    ///   used, otherwise a EDECCipherException exception will be raised!
223
    /// </param>
224
    /// <param name="Format">
225
    ///   Optional parameter. One can pass a class reference of one of the
226
    ///   concrete data formatting classes here which will be internally used
227
    ///   to convert the data. Encoded will be the encrypted data, not the
228
    ///   source data. Formattings can be used to convert data into a format
229
    ///   suitable for the transport medium the data shall be transported with.
230
    /// </param>
231
    /// <returns>
232
    ///   Encrypted string as a byte array
233
    /// </returns>
234
    function EncodeStringToBytes(const Source: RawByteString;
235
                                 Format: TDECFormatClass = nil): TBytes; overload;
236
237
    /// <summary>
238
    ///   Encrypts the contents of the passed unicode string
239
    /// </summary>
240
    /// <param name="Source">
241
    ///   String to encrypt. When block chaining mode ECBx
242
    ///   is used (not recommended!), the size of the data passed via this
243
    ///   parameter needs to be a multiple of the block size of the algorithm
244
    ///   used, otherwise a EDECCipherException exception will be raised!
245
    /// </param>
246
    /// <param name="Format">
247
    ///   Optional parameter. One can pass a class reference of one of the
248
    ///   concrete data formatting classes here which will be internally used
249
    ///   to convert the data. Encoded will be the encrypted data, not the
250
    ///   source data. Formattings can be used to convert data into a format
251
    ///   suitable for the transport medium the data shall be transported with.
252
    /// </param>
253
    /// <returns>
254
    ///   Encrypted string
255
    /// </returns>
256
    /// <remarks>
257
    ///   The use of this method is only recommended if a formatting is passed
258
    ///   which will result in an 7-bit ASCII compatible string as we cannot
259
    ///   ensure that Unicode string processing will not alter/interpret some
260
    ///   byte combinations in a destructive way, making the encrypted string
261
    ///   un-decryptable.
262
    /// </remarks>
263
    function EncodeStringToString(const Source: string;
264
                                  Format: TDECFormatClass = nil): string; overload;
265
266
    /// <summary>
267
    ///   Encrypts the contents of the passed unicode string
268
    /// </summary>
269
    /// <param name="Source">
270
    ///   String to encrypt. When block chaining mode ECBx
271
    ///   is used (not recommended!), the size of the data passed via this
272
    ///   parameter needs to be a multiple of the block size of the algorithm
273
    ///   used, otherwise a EDECCipherException exception will be raised!
274
    /// </param>
275
    /// <param name="Format">
276
    ///   Optional parameter. One can pass a class reference of one of the
277
    ///   concrete data formatting classes here which will be internally used
278
    ///   to convert the data. Encoded will be the encrypted data, not the
279
    ///   source data. Formattings can be used to convert data into a format
280
    ///   suitable for the transport medium the data shall be transported with.
281
    /// </param>
282
    /// <returns>
283
    ///   Encrypted string
284
    /// </returns>
285
    /// <remarks>
286
    ///   The use of this method is only recommended if a formatting is passed
287
    ///   which will result in an 7-bit ASCII compatible string as we cannot
288
    ///   ensure that string processing will not alter/interpret some
289
    ///   byte combinations in a destructive way, making the encrypted string
290
    ///   un-decryptable.
291
    /// </remarks>
292
    function EncodeStringToString(const Source: RawByteString;
293
                                  Format: TDECFormatClass = nil): RawByteString; overload;
294
295
    /// <summary>
296
    ///   Decrypts the contents of the passed encrypted unicode string
297
    /// </summary>
298
    /// <param name="Source">
299
    ///   String to decrypt. When block chaining mode ECBx
300
    ///   is used (not recommended!), the size of the data passed via this
301
    ///   parameter needs to be a multiple of the block size of the algorithm
302
    ///   used, otherwise a EDECCipherException exception will be raised!
303
    /// </param>
304
    /// <param name="Format">
305
    ///   Optional parameter. One can pass a class reference of one of the
306
    ///   concrete data formatting classes here which will be internally used
307
    ///   to convert the data. Decoded will be the still encrypted data, not the
308
    ///   encrypted data. Formattings can be used to convert data into a format
309
    ///   suitable for the transport medium the data shall be transported with.
310
    /// </param>
311
    /// <returns>
312
    ///   Decrypted string as a byte array
313
    /// </returns>
314
    function DecodeStringToBytes(const Source: string;
315
                                 Format: TDECFormatClass = nil): TBytes; overload;
316
317
    /// <summary>
318
    ///   Decrypts the contents of the passed encrypted RawByteString
319
    /// </summary>
320
    /// <param name="Source">
321
    ///   String to decrypt. When block chaining mode ECBx
322
    ///   is used (not recommended!), the size of the data passed via this
323
    ///   parameter needs to be a multiple of the block size of the algorithm
324
    ///   used, otherwise a EDECCipherException exception will be raised!
325
    /// </param>
326
    /// <param name="Format">
327
    ///   Optional parameter. One can pass a class reference of one of the
328
    ///   concrete data formatting classes here which will be internally used
329
    ///   to convert the data. Decoded will be the still encrypted data, not the
330
    ///   encrypted data. Formattings can be used to convert data into a format
331
    ///   suitable for the transport medium the data shall be transported with.
332
    /// </param>
333
    /// <returns>
334
    ///   Decrypted string as a byte array
335
    /// </returns>
336
    function DecodeStringToBytes(const Source: RawByteString;
337
                                 Format: TDECFormatClass = nil): TBytes; overload;
338
339
    /// <summary>
340
    ///   Decrypts the contents of the passed Unicode string
341
    /// </summary>
342
    /// <param name="Source">
343
    ///   String to decrypt. When block chaining mode ECBx
344
    ///   is used (not recommended!), the size of the data passed via this
345
    ///   parameter needs to be a multiple of the block size of the algorithm
346
    ///   used, otherwise a EDECCipherException exception will be raised!
347
    /// </param>
348
    /// <param name="Format">
349
    ///   Optional parameter. One can pass a class reference of one of the
350
    ///   concrete data formatting classes here which will be internally used
351
    ///   to convert the data. Decoded will be the encrypted data, not the
352
    ///   decrypted data. Formattings can be used to convert data into a format
353
    ///   suitable for the transport medium the data shall be transported with.
354
    /// </param>
355
    /// <returns>
356
    ///   Decrypted string
357
    /// </returns>
358
    /// <remarks>
359
    ///   The use of this method is only recommended if a formatting is passed
360
    ///   which uses an 7-bit ASCII compatible string as input so that it
361
    ///   didn't get altered by Unicode string processing in some hafrmful way
362
    /// </remarks>
363
    function DecodeStringToString(const Source: string;
364
                                  Format: TDECFormatClass = nil): string; overload;
365
366
    /// <summary>
367
    ///   Decrypts the contents of the passed RawByteString string
368
    /// </summary>
369
    /// <param name="Source">
370
    ///   String to decrypt. When block chaining mode ECBx
371
    ///   is used (not recommended!), the size of the data passed via this
372
    ///   parameter needs to be a multiple of the block size of the algorithm
373
    ///   used, otherwise a EDECCipherException exception will be raised!
374
    /// </param>
375
    /// <param name="Format">
376
    ///   Optional parameter. One can pass a class reference of one of the
377
    ///   concrete data formatting classes here which will be internally used
378
    ///   to convert the data. Decoded will be the encrypted data, not the
379
    ///   decrypted data. Formattings can be used to convert data into a format
380
    ///   suitable for the transport medium the data shall be transported with.
381
    /// </param>
382
    /// <returns>
383
    ///   Decrypted string
384
    /// </returns>
385
    /// <remarks>
386
    ///   The use of this method is only recommended if a formatting is passed
387
    ///   which uses an 7-bit ASCII compatible string as input so that it
388
    ///   didn't get altered by string processing in some hafrmful way
389
    /// </remarks>
390
    function DecodeStringToString(const Source: RawByteString;
391
                                  Format: TDECFormatClass = nil): RawByteString; overload;
392
393
{$IFDEF ANSISTRINGSUPPORTED}
394
    /// <summary>
395
    ///   Encrypts the contents of the passed Ansistring
396
    /// </summary>
397
    /// <param name="Source">
398
    ///   String to encrypt. When block chaining mode ECBx
399
    ///   is used (not recommended!), the size of the data passed via this
400
    ///   parameter needs to be a multiple of the block size of the algorithm
401
    ///   used, otherwise a EDECCipherException exception will be raised!
402
    /// </param>
403
    /// <param name="Format">
404
    ///   Optional parameter. One can pass a class reference of one of the
405
    ///   concrete data formatting classes here which will be internally used
406
    ///   to convert the data. Encoded will be the encrypted data, not the
407
    ///   source data. Formattings can be used to convert data into a format
408
    ///   suitable for the transport medium the data shall be transported with.
409
    /// </param>
410
    /// <returns>
411
    ///   Encrypted string as a byte array
412
    /// </returns>
413
    function EncodeStringToBytes(const Source: AnsiString;
414
                                 Format: TDECFormatClass = nil): TBytes; overload;
415
416
    /// <summary>
417
    ///   Encrypts the contents of the passed Ansistring
418
    /// </summary>
419
    /// <param name="Source">
420
    ///   String to encrypt. When block chaining mode ECBx
421
    ///   is used (not recommended!), the size of the data passed via this
422
    ///   parameter needs to be a multiple of the block size of the algorithm
423
    ///   used, otherwise a EDECCipherException exception will be raised!
424
    /// </param>
425
    /// <param name="Format">
426
    ///   Optional parameter. One can pass a class reference of one of the
427
    ///   concrete data formatting classes here which will be internally used
428
    ///   to convert the data. Encoded will be the encrypted data, not the
429
    ///   source data. Formattings can be used to convert data into a format
430
    ///   suitable for the transport medium the data shall be transported with.
431
    /// </param>
432
    /// <returns>
433
    ///   Encrypted string as an AnsiString
434
    /// </returns>
435
    /// <remarks>
436
    ///   The use of this method is only recommended if a formatting is passed
437
    ///   which will result in an 7-bit ASCII compatible string as we cannot
438
    ///   ensure that string processing will not alter/interpret some
439
    ///   byte combinations in a destructive way, making the encrypted string
440
    ///   un-decryptable.
441
    /// </remarks>
442
    function EncodeStringToString(const Source: AnsiString;
443
                                  Format: TDECFormatClass = nil): AnsiString; overload;
444
445
    /// <summary>
446
    ///   Decrypts the contents of the passed encrypted Ansistring
447
    /// </summary>
448
    /// <param name="Source">
449
    ///   String to decrypt. When block chaining mode ECBx
450
    ///   is used (not recommended!), the size of the data passed via this
451
    ///   parameter needs to be a multiple of the block size of the algorithm
452
    ///   used, otherwise a EDECCipherException exception will be raised!
453
    /// </param>
454
    /// <param name="Format">
455
    ///   Optional parameter. One can pass a class reference of one of the
456
    ///   concrete data formatting classes here which will be internally used
457
    ///   to convert the data. Decoded will be the still encrypted data, not the
458
    ///   encrypted data. Formattings can be used to convert data into a format
459
    ///   suitable for the transport medium the data shall be transported with.
460
    /// </param>
461
    /// <returns>
462
    ///   Decrypted string as a byte array
463
    /// </returns>
464
    function DecodeStringToBytes(const Source: AnsiString;
465
                                 Format: TDECFormatClass = nil): TBytes; overload;
466
467
    /// <summary>
468
    ///   Decrypts the contents of the passed AnsiString string
469
    /// </summary>
470
    /// <param name="Source">
471
    ///   String to decrypt. When block chaining mode ECBx
472
    ///   is used (not recommended!), the size of the data passed via this
473
    ///   parameter needs to be a multiple of the block size of the algorithm
474
    ///   used, otherwise a EDECCipherException exception will be raised!
475
    /// </param>
476
    /// <param name="Format">
477
    ///   Optional parameter. One can pass a class reference of one of the
478
    ///   concrete data formatting classes here which will be internally used
479
    ///   to convert the data. Decoded will be the encrypted data, not the
480
    ///   decrypted data. Formattings can be used to convert data into a format
481
    ///   suitable for the transport medium the data shall be transported with.
482
    /// </param>
483
    /// <returns>
484
    ///   Decrypted string
485
    /// </returns>
486
    /// <remarks>
487
    ///   The use of this method is only recommended if a formatting is passed
488
    ///   which uses an 7-bit ASCII compatible string as input so that it
489
    ///   didn't get altered by string processing in some hafrmful way
490
    /// </remarks>
491
    function DecodeStringToString(const Source: AnsiString;
492
                                  Format: TDECFormatClass = nil): AnsiString; overload;
493
{$ENDIF}
494
495
{$IFNDEF NEXTGEN}
496
    /// <summary>
497
    ///   Encrypts the contents of the passed Widestring
498
    /// </summary>
499
    /// <param name="Source">
500
    ///   String to encrypt. When block chaining mode ECBx
501
    ///   is used (not recommended!), the size of the data passed via this
502
    ///   parameter needs to be a multiple of the block size of the algorithm
503
    ///   used, otherwise a EDECCipherException exception will be raised!
504
    /// </param>
505
    /// <param name="Format">
506
    ///   Optional parameter. One can pass a class reference of one of the
507
    ///   concrete data formatting classes here which will be internally used
508
    ///   to convert the data. Encoded will be the encrypted data, not the
509
    ///   source data. Formattings can be used to convert data into a format
510
    ///   suitable for the transport medium the data shall be transported with.
511
    /// </param>
512
    /// <returns>
513
    ///   Encrypted string as a byte array
514
    /// </returns>
515
    function EncodeStringToBytes(const Source: WideString;
516
                                 Format: TDECFormatClass = nil): TBytes; overload;
517
518
    /// <summary>
519
    ///   Encrypts the contents of the passed Widestring
520
    /// </summary>
521
    /// <param name="Source">
522
    ///   String to encrypt. When block chaining mode ECBx
523
    ///   is used (not recommended!), the size of the data passed via this
524
    ///   parameter needs to be a multiple of the block size of the algorithm
525
    ///   used, otherwise a EDECCipherException exception will be raised!
526
    /// </param>
527
    /// <param name="Format">
528
    ///   Optional parameter. One can pass a class reference of one of the
529
    ///   concrete data formatting classes here which will be internally used
530
    ///   to convert the data. Encoded will be the encrypted data, not the
531
    ///   source data. Formattings can be used to convert data into a format
532
    ///   suitable for the transport medium the data shall be transported with.
533
    /// </param>
534
    /// <returns>
535
    ///   Encrypted string as an WideString
536
    /// </returns>
537
    /// <remarks>
538
    ///   The use of this method is only recommended if a formatting is passed
539
    ///   which will result in an 7-bit ASCII compatible string as we cannot
540
    ///   ensure that string processing will not alter/interpret some
541
    ///   byte combinations in a destructive way, making the encrypted string
542
    ///   un-decryptable.
543
    /// </remarks>
544
    function EncodeStringToString(const Source: WideString;
545
                                  Format: TDECFormatClass = nil): WideString; overload;
546
547
    /// <summary>
548
    ///   Decrypts the contents of the passed encrypted Widestring
549
    /// </summary>
550
    /// <param name="Source">
551
    ///   String to decrypt. When block chaining mode ECBx
552
    ///   is used (not recommended!), the size of the data passed via this
553
    ///   parameter needs to be a multiple of the block size of the algorithm
554
    ///   used, otherwise a EDECCipherException exception will be raised!
555
    /// </param>
556
    /// <param name="Format">
557
    ///   Optional parameter. One can pass a class reference of one of the
558
    ///   concrete data formatting classes here which will be internally used
559
    ///   to convert the data. Decoded will be the still encrypted data, not the
560
    ///   encrypted data. Formattings can be used to convert data into a format
561
    ///   suitable for the transport medium the data shall be transported with.
562
    /// </param>
563
    /// <returns>
564
    ///   Decrypted string as a byte array
565
    /// </returns>
566
    function DecodeStringToBytes(const Source: WideString;
567
                                 Format: TDECFormatClass = nil): TBytes; overload;
568
569
    /// <summary>
570
    ///   Decrypts the contents of the passed WideString string
571
    /// </summary>
572
    /// <param name="Source">
573
    ///   String to decrypt. When block chaining mode ECBx
574
    ///   is used (not recommended!), the size of the data passed via this
575
    ///   parameter needs to be a multiple of the block size of the algorithm
576
    ///   used, otherwise a EDECCipherException exception will be raised!
577
    /// </param>
578
    /// <param name="Format">
579
    ///   Optional parameter. One can pass a class reference of one of the
580
    ///   concrete data formatting classes here which will be internally used
581
    ///   to convert the data. Decoded will be the encrypted data, not the
582
    ///   decrypted data. Formattings can be used to convert data into a format
583
    ///   suitable for the transport medium the data shall be transported with.
584
    /// </param>
585
    /// <returns>
586
    ///   Decrypted string
587
    /// </returns>
588
    /// <remarks>
589
    ///   The use of this method is only recommended if a formatting is passed
590
    ///   which uses an 7-bit ASCII compatible string as input so that it
591
    ///   didn't get altered by string processing in some hafrmful way
592
    /// </remarks>
593
    function DecodeStringToString(const Source: WideString;
594
                                  Format: TDECFormatClass = nil): WideString; overload;
595
{$ENDIF}
596
  end;
597
598
implementation
599
600
uses
601
  DECBaseClass;
602
603
function TDECFormattedCipher.EncodeBytes(const Source: TBytes): TBytes;
604
begin
605
  SetLength(Result, Length(Source));
606
  if Length(Result) > 0 then
607
    Encode(Source[0], Result[0], Length(Source))
608
  else
609
    if (FMode = cmGCM) then
610
      EncodeGCM(@Source, @Result, 0);
611
end;
612
613
function TDECFormattedCipher.DecodeBytes(const Source: TBytes): TBytes;
614
begin
615
//  Result := Source;
616
  SetLength(Result, Length(Source));
617
618
  if Length(Result) > 0 then
619
    Decode(Source[0], Result[0], Length(Source))
620
//    Decode(Result[0], Result[0], Length(Source))
621
  else
622
    if (FMode = cmGCM) then
623
      DecodeGCM(@Source, @Result, 0);
624
end;
625
626
procedure TDECFormattedCipher.DoEncodeDecodeStream(const Source, Dest: TStream;
627
                                                   DataSize: Int64;
628
                                                   const CipherProc: TDECCipherCodeEvent;
629
                                                   const OnProgress: TDECProgressEvent);
630
var
631
  Buffer: TBytes;
632
  BufferSize, Bytes: Integer;
633
  Max, StartPos, Pos: Int64;
634
begin
635
  Pos := Source.Position;
636
  if DataSize < 0 then
637
    DataSize := Source.Size - Pos;
638
639
  Max      := Pos + DataSize;
640
  StartPos := Pos;
641
642
  if DataSize > 0 then
643
    try
644
      if Assigned(OnProgress) then
645
        OnProgress(Max, 0, Started);
646
647
      if StreamBufferSize <= 0 then
648
        StreamBufferSize := 8192;
649
      BufferSize := StreamBufferSize mod Context.BlockSize;
650
      if BufferSize = 0 then
651
        BufferSize := StreamBufferSize
652
      else
653
        BufferSize := StreamBufferSize + Context.BlockSize - BufferSize;
654
      if DataSize > BufferSize then
655
        SetLength(Buffer, BufferSize)
656
      else
657
        SetLength(Buffer, DataSize);
658
      while DataSize > 0 do
659
      begin
660
        Bytes := BufferSize;
661
        if Bytes > DataSize then
662
          Bytes := DataSize;
663
        Source.ReadBuffer(Buffer[0], Bytes);
664
665
        // The real encryption or decryption routine
666
        CipherProc(Buffer[0], Buffer[0], Bytes);
667
        Dest.WriteBuffer(Buffer[0], Bytes);
668
        Dec(DataSize, Bytes);
669
        Inc(Pos, Bytes);
670
671
        if Assigned(OnProgress) then
672
          OnProgress(Max, Pos - StartPos, Processing);
673
      end;
674
    finally
675
      ProtectBytes(Buffer);
676
      if Assigned(OnProgress) then
677
        OnProgress(Max, Max, Finished);
678
    end;
679
end;
680
681
procedure TDECFormattedCipher.EncodeStream(const Source, Dest: TStream; DataSize: Int64;
682
                                           const OnProgress: TDECProgressEvent);
683
begin
684
  DoEncodeDecodeStream(Source, Dest, DataSize,
685
                       Encode, OnProgress);
686
end;
687
688
procedure TDECFormattedCipher.DecodeStream(const Source, Dest: TStream; DataSize: Int64;
689
                                           const OnProgress: TDECProgressEvent);
690
begin
691
  DoEncodeDecodeStream(Source, Dest, DataSize,
692
                       Decode, OnProgress);
693
end;
694
695
procedure TDECFormattedCipher.DoEncodeDecodeFile(const SourceFileName, DestFileName: string;
696
                                                 const Proc: TDECCipherCodeEvent;
697
                                                 const OnProgress: TDECProgressEvent);
698
var
699
  S, D: TStream;
700
begin
701
  Assert(SourceFileName <> DestFileName, 'Source and Dest file name may not be equal');
702
703
  S := TFileStream.Create(SourceFileName, fmOpenRead or fmShareDenyNone);
704
  try
705
    D := TFileStream.Create(DestFileName, fmCreate);
706
    try
707
      DoEncodeDecodeStream(S, D, S.Size, Proc, OnProgress);
708
    finally
709
      D.Free;
710
    end;
711
  finally
712
    S.Free;
713
  end;
714
end;
715
716
procedure TDECFormattedCipher.EncodeFile(const SourceFileName, DestFileName: string;
717
                                         const OnProgress: TDECProgressEvent);
718
begin
719
  DoEncodeDecodeFile(SourceFileName, DestFileName, Encode, OnProgress);
720
end;
721
722
procedure TDECFormattedCipher.DecodeFile(const SourceFileName, DestFileName: string;
723
                                         const OnProgress: TDECProgressEvent);
724
begin
725
  DoEncodeDecodeFile(SourceFileName, DestFileName, Decode, OnProgress);
726
end;
727
728
function TDECFormattedCipher.EncodeStringToBytes(const Source: string;
729
                                                 Format: TDECFormatClass = nil): TBytes;
730
var
731
  Len: Integer;
732
begin
733
  if Length(Source) > 0 then
734
  begin
735
    {$IF CompilerVersion >= 24.0}
736
    Len := Length(Source) * SizeOf(Source[low(Source)]);
737
    SetLength(Result, Len);
738
    Encode(Source[low(Source)], Result[0], Len);
739
    {$ELSE}
740
    Len := Length(Source) * SizeOf(Source[1]);
741
    SetLength(Result, Len);
742
    Encode(Source[1], Result[0], Len);
743
    {$IFEND}
744
745
    Result := ValidFormat(Format).Encode(Result);
746
  end
747
  else
748
    SetLength(Result, 0);
749
end;
750
751
function TDECFormattedCipher.EncodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes;
752
var
753
  Len: Integer;
754
begin
755
  if Length(Source) > 0 then
756
  begin
757
    {$IF CompilerVersion >= 24.0}
758
    Len := Length(Source) * SizeOf(Source[low(Source)]);
759
    SetLength(Result, Len);
760
    Encode(Source[low(Source)], Result[0], Len);
761
    {$ELSE}
762
    Len := Length(Source) * SizeOf(Source[1]);
763
    SetLength(Result, Len);
764
    Encode(Source[1], Result[0], Len);
765
    {$IFEND}
766
767
    Result := ValidFormat(Format).Encode(Result);
768
  end
769
  else
770
    SetLength(Result, 0);
771
end;
772
773
function TDECFormattedCipher.DecodeStringToBytes(const Source: string; Format: TDECFormatClass): TBytes;
774
var
775
  Len: Integer;
776
  Src: TBytes;
777
begin
778
  if Length(Source) > 0 then
779
  begin
780
    Src := ValidFormat(Format).Decode(BytesOf(Source));
781
782
    Len := Length(Src);
783
    Result := Src;
784
    Decode(Result[0], Result[0], Len);
785
  end
786
  else
787
    SetLength(Result, 0);
788
end;
789
790
function TDECFormattedCipher.DecodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes;
791
var
792
  Len: Integer;
793
  Src: TBytes;
794
begin
795
  if Length(Source) > 0 then
796
  begin
797
    Src := ValidFormat(Format).Decode(BytesOf(Source));
798
799
    Len := Length(Src);
800
    Result := Src;
801
    Decode(Result[0], Result[0], Len);
802
  end
803
  else
804
    SetLength(Result, 0);
805
end;
806
807
{$IFDEF ANSISTRINGSUPPORTED}
808
function TDECFormattedCipher.EncodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes;
809
var
810
  Len: Integer;
811
begin
812
  if Length(Source) > 0 then
813
  begin
814
    Len := Length(Source) * SizeOf(Source[1]);
815
    SetLength(Result, Len);
816
    Encode(Source[1], Result[0], Len);
817
818
    Result := ValidFormat(Format).Encode(Result);
819
  end
820
  else
821
    SetLength(Result, 0);
822
end;
823
{$ENDIF}
824
825
{$IFDEF ANSISTRINGSUPPORTED}
826
function TDECFormattedCipher.DecodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes;
827
var
828
  Len: Integer;
829
  Src: TBytes;
830
begin
831
  if Length(Source) > 0 then
832
  begin
833
    Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source));
834
835
    Len := Length(Src);
836
    SetLength(Result, Len);
837
    Decode(Src[0], Result[0], Len);
838
  end
839
  else
840
    SetLength(Result, 0);
841
end;
842
{$ENDIF}
843
844
{$IFNDEF NEXTGEN}
845
function TDECFormattedCipher.EncodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes;
846
var
847
  Len: Integer;
848
begin
849
  if Length(Source) > 0 then
850
  begin
851
    Len := Length(Source) * SizeOf(Source[1]);
852
    SetLength(Result, Len);
853
    Encode(Source[1], Result[0], Len);
854
855
    Result := ValidFormat(Format).Encode(Result);
856
  end
857
  else
858
    SetLength(Result, 0);
859
end;
860
861
function TDECFormattedCipher.EncodeStringToString(const Source: WideString;
862
  Format: TDECFormatClass): WideString;
863
begin
864
  result := WideString(EncodeStringToString(string(Source), Format));
865
end;
866
{$ENDIF}
867
868
{$IFDEF ANSISTRINGSUPPORTED}
869
function TDECFormattedCipher.EncodeStringToString(const Source: AnsiString;
870
  Format: TDECFormatClass): AnsiString;
871
var
872
  Len             : Integer;
873
  EncryptedBuffer : TBytes;
874
  Temp            : TBytes;
875
begin
876
  if Length(Source) > 0 then
877
  begin
878
    Len := Length(Source) * SizeOf(Source[1]);
879
    SetLength(EncryptedBuffer, Len);
880
    Encode(Source[1], EncryptedBuffer[0], Len);
881
882
    Temp := ValidFormat(Format).Encode(EncryptedBuffer);
883
    SetLength(Result, length(Temp));
884
    Move(Temp[0], Result[1], length(Temp));
885
  end
886
  else
887
    SetLength(Result, 0);
888
end;
889
{$ENDIF}
890
891
function TDECFormattedCipher.EncodeStringToString(const Source: string;
892
  Format: TDECFormatClass): string;
893
var
894
  SourceSize      : Integer;
895
  EncryptedBuffer : TBytes;
896
begin
897
  if Length(Source) > 0 then
898
  begin
899
    {$IF CompilerVersion >= 24.0}
900
    SourceSize := Length(Source) * SizeOf(Source[low(Source)]);
901
    SetLength(EncryptedBuffer, SourceSize);
902
    Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize);
903
    {$ELSE}
904
    SourceSize := Length(Source) * SizeOf(Source[1]);
905
    SetLength(EncryptedBuffer, SourceSize);
906
    Encode(Source[1], EncryptedBuffer[0], SourceSize);
907
    {$IFEND}
908
909
    Result := StringOf(ValidFormat(Format).Encode(EncryptedBuffer));
910
  end
911
  else
912
    Result := '';
913
end;
914
915
function TDECFormattedCipher.EncodeStringToString(const Source: RawByteString;
916
  Format: TDECFormatClass): RawByteString;
917
var
918
  SourceSize      : Integer;
919
  EncryptedBuffer : TBytes;
920
  Temp            : TBytes;
921
begin
922
  if Length(Source) > 0 then
923
  begin
924
    {$IF CompilerVersion >= 24.0}
925
    SourceSize := Length(Source) * SizeOf(Source[low(Source)]);
926
    SetLength(EncryptedBuffer, SourceSize);
927
    Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize);
928
    {$ELSE}
929
    SourceSize := Length(Source) * SizeOf(Source[1]);
930
    SetLength(EncryptedBuffer, SourceSize);
931
    Encode(Source[1], EncryptedBuffer[0], SourceSize);
932
    {$IFEND}
933
934
    Temp   := ValidFormat(Format).Encode(EncryptedBuffer);
935
    SetLength(Result, length(Temp));
936
    {$IF CompilerVersion >= 24.0}
937
    Move(Temp[0], Result[low(Result)], length(Temp))
938
    {$ELSE}
939
    Move(Temp[0], Result[1], length(Temp))
940
    {$IFEND}
941
  end
942
  else
943
    Result := '';
944
end;
945
946
{$IFNDEF NEXTGEN}
947
function TDECFormattedCipher.DecodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes;
948
var
949
  Len: Integer;
950
  Src: TBytes;
951
begin
952
  if Length(Source) > 0 then
953
  begin
954
    Src := ValidFormat(Format).Decode(BytesOf(Source));
955
956
    Len := Length(Src);
957
    SetLength(Result, Len);
958
    Decode(Src[0], Result[0], Len);
959
  end
960
  else
961
    SetLength(Result, 0);
962
end;
963
{$ENDIF}
964
965
{$IFDEF ANSISTRINGSUPPORTED}
966
function TDECFormattedCipher.DecodeStringToString(const Source: AnsiString;
967
  Format: TDECFormatClass): AnsiString;
968
var
969
  Len : Integer;
970
  Src : TBytes;
971
  Tmp : TBytes;
972
begin
973
  if Length(Source) > 0 then
974
  begin
975
    Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source));
976
977
    Len := Length(Src);
978
    SetLength(Tmp, Len);
979
    Decode(Src[0], Tmp[0], Len);
980
981
    SetLength(Result, length(Tmp));
982
983
    {$IF CompilerVersion >= 24.0}
984
    Move(Tmp[0], Result[low(Result)], length(Tmp))
985
    {$ELSE}
986
    Move(Tmp[0], Result[1], length(Tmp))
987
    {$IFEND}
988
  end
989
  else
990
    SetLength(Result, 0);
991
end;
992
{$ENDIF}
993
994
{$IFNDEF NEXTGEN}
995
function TDECFormattedCipher.DecodeStringToString(const Source: WideString;
996
  Format: TDECFormatClass): WideString;
997
begin
998
  Result := WideString(DecodeStringToString(string(Source), Format));
999
end;
1000
{$ENDIF}
1001
1002
function TDECFormattedCipher.DecodeStringToString(const Source: RawByteString;
1003
  Format: TDECFormatClass): RawByteString;
1004
var
1005
  Len : Integer;
1006
  Src : TBytes;
1007
  Tmp : TBytes;
1008
begin
1009
  if Length(Source) > 0 then
1010
  begin
1011
    Src := ValidFormat(Format).Decode(BytesOf(Source));
1012
1013
    Len := Length(Src);
1014
    SetLength(Tmp, Len);
1015
    Decode(Src[0], Tmp[0], Len);
1016
1017
    SetLength(Result, length(Tmp));
1018
1019
    {$IF CompilerVersion >= 24.0}
1020
    Move(Tmp[0], Result[low(Result)], length(Tmp))
1021
    {$ELSE}
1022
    Move(Tmp[0], Result[1], length(Tmp))
1023
    {$IFEND}
1024
  end
1025
  else
1026
    SetLength(Result, 0);
1027
end;
1028
1029
function TDECFormattedCipher.DecodeStringToString(const Source: string;
1030
  Format: TDECFormatClass): string;
1031
var
1032
  Len : Integer;
1033
  Src : TBytes;
1034
  Tmp : TBytes;
1035
begin
1036
  if Length(Source) > 0 then
1037
  begin
1038
    Src := ValidFormat(Format).Decode(BytesOf(Source));
1039
1040
    Len := Length(Src);
1041
    SetLength(Tmp, Len);
1042
    Decode(Src[0], Tmp[0], Len);
1043
    Result := WideStringOf(Tmp);
1044
  end
1045
  else
1046
    SetLength(Result, 0);
1047
end;
1048
1049
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherFormats (D:\Projekte\DECGitMaster\Source\DECCipherFormats.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherFormats.pas

+
Number of lines covered141
Number of lines with code gen161
Line coverage87%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherFormats;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils, Classes,
26
  {$ELSE}
27
  System.SysUtils, System.Classes,
28
  {$ENDIF}
29
  DECCipherBase, DECCipherModes,
30
  DECUtil, DECTypes, DECFormatBase, DECCipherInterface;
31
32
type
33
  /// <summary>
34
  ///   Class in which the various encode/decode variants provided have been
35
  ///   moved in order to keep the base cipher class small and clean.
36
  /// </summary>
37
  TDECFormattedCipher = class(TDECCipherModes, IDECCipher)
38
  private
39
    /// <summary>
40
    ///   Encrypts or decrypts the data contained in a given stream
41
    /// </summary>
42
    /// <param name="Source">
43
    ///   Source stream containing the data to encrypt or to decrypt
44
    /// </param>
45
    /// <param name="Dest">
46
    ///   Destination stream, where the encrypted or decrypted data shall be put in
47
    /// </param>
48
    /// <param name="DataSize">
49
    ///   Number of bytes of Source to be encrypted or decrypted
50
    /// </param>
51
    /// <param name="CipherProc">
52
    ///   Callback which either encrypts or decrypts the stream, depending on
53
    ///   which one is being passed
54
    /// </param>
55
    /// <param name="OnProgress">
56
    ///   optional callback for reporting progress of the operation
57
    /// </param>
58
    procedure DoEncodeDecodeStream(const Source, Dest: TStream; DataSize: Int64;
59
                                   const CipherProc: TDECCipherCodeEvent;
60
                                   const OnProgress: TDECProgressEvent);
61
62
    /// <summary>
63
    ///   Encrypts or decrypts a file and stores the result in another file
64
    /// </summary>
65
    /// <param name="SourceFileName">
66
    ///   Path and name of the file to encrypt
67
    /// </param>
68
    /// <param name="DestFileName">
69
    ///   Path and name of the file the encrypted data shall be stored in
70
    /// </param>
71
    /// <param name="Proc">
72
    ///   This method does the actual encrypting or decrypting of the data.
73
    ///   Usually the Encode or Decode method is being passed here which is
74
    ///   declared in TDECCipherBase as virtual abstract method and
75
    ///   implemented in the individual cipher class inheriting from this one
76
    /// </param>
77
    /// <param name="OnProgress">
78
    ///   Optional event which can be passed to get information about the
79
    ///   progress of the encryption operation
80
    /// </param>
81
    procedure DoEncodeDecodeFile(const SourceFileName, DestFileName: string;
82
                                 const Proc: TDECCipherCodeEvent;
83
                                 const OnProgress: TDECProgressEvent);
84
  public
85
    /// <summary>
86
    ///   Encrypts the contents of a given byte array
87
    /// </summary>
88
    /// <param name="Source">
89
    ///   Byte array with data to be encrypted. When block chaining mode ECBx
90
    ///   is used (not recommended!), the size of the data passed via this
91
    ///   parameter needs to be a multiple of the block size of the algorithm used,
92
    ///   otherwise a EDECCipherException exception will be raised!
93
    /// </param>
94
    /// <returns>
95
    ///   Byte array with encrypted data
96
    /// </returns>
97
    function EncodeBytes(const Source: TBytes): TBytes;
98
99
    /// <summary>
100
    ///   Decrypts the contents of a given byte array
101
    /// </summary>
102
    /// <param name="Source">
103
    ///   Byte array with data to be decrypted. When block chaining mode ECBx
104
    ///   is used (not recommended!), the size of the data passed via this
105
    ///   parameter needs to be a multiple of the block size of the algorithm used,
106
    ///   otherwise a EDECCipherException exception will be raised!
107
    /// </param>
108
    /// <returns>
109
    ///   Byte array with decrypted data
110
    /// </returns>
111
    function DecodeBytes(const Source: TBytes): TBytes;
112
113
    /// <summary>
114
    ///   Encrypts the data contained in a given stream
115
    /// </summary>
116
    /// <param name="Source">
117
    ///   Source stream containing the data to encrypt. When block chaining mode ECBx
118
    ///   is used (not recommended!), the size of the data passed via this
119
    ///   parameter needs to be a multiple of the block size of the algorithm used,
120
    ///   otherwise a EDECCipherException exception will be raised!
121
    /// </param>
122
    /// <param name="Dest">
123
    ///   Destination stream, where the encrypted data shall be put in
124
    /// </param>
125
    /// <param name="DataSize">
126
    ///   Number of bytes of Source to be encrypted
127
    /// </param>
128
    /// <param name="OnProgress">
129
    ///   optional callback for reporting progress of the operation
130
    /// </param>
131
    procedure EncodeStream(const Source, Dest: TStream; DataSize: Int64;
132
                           const OnProgress: TDECProgressEvent = nil);
133
134
    /// <summary>
135
    ///   Decrypts the data contained in a given stream
136
    /// </summary>
137
    /// <param name="Source">
138
    ///   Source stream containing the data to decrypt. When block chaining mode ECBx
139
    ///   is used (not recommended!), the size of the data passed via this
140
    ///   parameter needs to be a multiple of the block size of the algorithm used,
141
    ///   otherwise a EDECCipherException exception will be raised!
142
    /// </param>
143
    /// <param name="Dest">
144
    ///   Destination stream, where the decrypted data shall be put in
145
    /// </param>
146
    /// <param name="DataSize">
147
    ///   Number of bytes of Source to be decrypted
148
    /// </param>
149
    /// <param name="OnProgress">
150
    ///   optional callback for reporting progress of the operation
151
    /// </param>
152
    procedure DecodeStream(const Source, Dest: TStream; DataSize: Int64;
153
                           const OnProgress: TDECProgressEvent = nil);
154
155
    /// <summary>
156
    ///   Reads the contents of one file, encrypts it and stores it in another file
157
    /// </summary>
158
    /// <param name="SourceFileName">
159
    ///   Path and name of the file to encrypt. When block chaining mode ECBx
160
    ///   is used (not recommended!), the size of the data passed via this
161
    ///   parameter needs to be a multiple of the block size of the algorithm
162
    ///   used, otherwise a EDECCipherException exception will be raised!
163
    /// </param>
164
    /// <param name="DestFileName">
165
    ///   Path and name of the file the encrypted data shall be stored in
166
    /// </param>
167
    /// <param name="OnProgress">
168
    ///   Optional event which can be passed to get information about the
169
    ///   progress of the encryption operation
170
    /// </param>
171
    procedure EncodeFile(const SourceFileName, DestFileName: string;
172
                         const OnProgress: TDECProgressEvent = nil);
173
174
    /// <summary>
175
    ///   Reads the contents of one file, decrypts it and stores it in another file
176
    /// </summary>
177
    /// <param name="SourceFileName">
178
    ///   Path and name of the file to decrypt. When block chaining mode ECBx
179
    ///   is used (not recommended!), the size of the data passed via this
180
    ///   parameter needs to be a multiple of the block size of the algorithm
181
    ///   used, otherwise a EDECCipherException exception will be raised!
182
    /// </param>
183
    /// <param name="DestFileName">
184
    ///   Path and name of the file the decrypted data shall be stored in
185
    /// </param>
186
    /// <param name="OnProgress">
187
    ///   Optional event which can be passed to get information about the
188
    ///   progress of the decryption operation
189
    /// </param>
190
    procedure DecodeFile(const SourceFileName, DestFileName: string;
191
                         const OnProgress: TDECProgressEvent = nil);
192
193
    /// <summary>
194
    ///   Encrypts the contents of the passed unicode string
195
    /// </summary>
196
    /// <param name="Source">
197
    ///   String to encrypt. When block chaining mode ECBx
198
    ///   is used (not recommended!), the size of the data passed via this
199
    ///   parameter needs to be a multiple of the block size of the algorithm
200
    ///   used, otherwise a EDECCipherException exception will be raised!
201
    /// </param>
202
    /// <param name="Format">
203
    ///   Optional parameter. One can pass a class reference of one of the
204
    ///   concrete data formatting classes here which will be internally used
205
    ///   to convert the data. Encoded will be the encrypted data, not the
206
    ///   source data. Formattings can be used to convert data into a format
207
    ///   suitable for the transport medium the data shall be transported with.
208
    /// </param>
209
    /// <returns>
210
    ///   Encrypted string as a byte array
211
    /// </returns>
212
    function EncodeStringToBytes(const Source: string;
213
                                 Format: TDECFormatClass = nil): TBytes; overload;
214
215
    /// <summary>
216
    ///   Encrypts the contents of the passed RawByteString
217
    /// </summary>
218
    /// <param name="Source">
219
    ///   String to encrypt. When block chaining mode ECBx
220
    ///   is used (not recommended!), the size of the data passed via this
221
    ///   parameter needs to be a multiple of the block size of the algorithm
222
    ///   used, otherwise a EDECCipherException exception will be raised!
223
    /// </param>
224
    /// <param name="Format">
225
    ///   Optional parameter. One can pass a class reference of one of the
226
    ///   concrete data formatting classes here which will be internally used
227
    ///   to convert the data. Encoded will be the encrypted data, not the
228
    ///   source data. Formattings can be used to convert data into a format
229
    ///   suitable for the transport medium the data shall be transported with.
230
    /// </param>
231
    /// <returns>
232
    ///   Encrypted string as a byte array
233
    /// </returns>
234
    function EncodeStringToBytes(const Source: RawByteString;
235
                                 Format: TDECFormatClass = nil): TBytes; overload;
236
237
    /// <summary>
238
    ///   Encrypts the contents of the passed unicode string
239
    /// </summary>
240
    /// <param name="Source">
241
    ///   String to encrypt. When block chaining mode ECBx
242
    ///   is used (not recommended!), the size of the data passed via this
243
    ///   parameter needs to be a multiple of the block size of the algorithm
244
    ///   used, otherwise a EDECCipherException exception will be raised!
245
    /// </param>
246
    /// <param name="Format">
247
    ///   Optional parameter. One can pass a class reference of one of the
248
    ///   concrete data formatting classes here which will be internally used
249
    ///   to convert the data. Encoded will be the encrypted data, not the
250
    ///   source data. Formattings can be used to convert data into a format
251
    ///   suitable for the transport medium the data shall be transported with.
252
    /// </param>
253
    /// <returns>
254
    ///   Encrypted string
255
    /// </returns>
256
    /// <remarks>
257
    ///   The use of this method is only recommended if a formatting is passed
258
    ///   which will result in an 7-bit ASCII compatible string as we cannot
259
    ///   ensure that Unicode string processing will not alter/interpret some
260
    ///   byte combinations in a destructive way, making the encrypted string
261
    ///   un-decryptable.
262
    /// </remarks>
263
    function EncodeStringToString(const Source: string;
264
                                  Format: TDECFormatClass = nil): string; overload;
265
266
    /// <summary>
267
    ///   Encrypts the contents of the passed unicode string
268
    /// </summary>
269
    /// <param name="Source">
270
    ///   String to encrypt. When block chaining mode ECBx
271
    ///   is used (not recommended!), the size of the data passed via this
272
    ///   parameter needs to be a multiple of the block size of the algorithm
273
    ///   used, otherwise a EDECCipherException exception will be raised!
274
    /// </param>
275
    /// <param name="Format">
276
    ///   Optional parameter. One can pass a class reference of one of the
277
    ///   concrete data formatting classes here which will be internally used
278
    ///   to convert the data. Encoded will be the encrypted data, not the
279
    ///   source data. Formattings can be used to convert data into a format
280
    ///   suitable for the transport medium the data shall be transported with.
281
    /// </param>
282
    /// <returns>
283
    ///   Encrypted string
284
    /// </returns>
285
    /// <remarks>
286
    ///   The use of this method is only recommended if a formatting is passed
287
    ///   which will result in an 7-bit ASCII compatible string as we cannot
288
    ///   ensure that string processing will not alter/interpret some
289
    ///   byte combinations in a destructive way, making the encrypted string
290
    ///   un-decryptable.
291
    /// </remarks>
292
    function EncodeStringToString(const Source: RawByteString;
293
                                  Format: TDECFormatClass = nil): RawByteString; overload;
294
295
    /// <summary>
296
    ///   Decrypts the contents of the passed encrypted unicode string
297
    /// </summary>
298
    /// <param name="Source">
299
    ///   String to decrypt. When block chaining mode ECBx
300
    ///   is used (not recommended!), the size of the data passed via this
301
    ///   parameter needs to be a multiple of the block size of the algorithm
302
    ///   used, otherwise a EDECCipherException exception will be raised!
303
    /// </param>
304
    /// <param name="Format">
305
    ///   Optional parameter. One can pass a class reference of one of the
306
    ///   concrete data formatting classes here which will be internally used
307
    ///   to convert the data. Decoded will be the still encrypted data, not the
308
    ///   encrypted data. Formattings can be used to convert data into a format
309
    ///   suitable for the transport medium the data shall be transported with.
310
    /// </param>
311
    /// <returns>
312
    ///   Decrypted string as a byte array
313
    /// </returns>
314
    function DecodeStringToBytes(const Source: string;
315
                                 Format: TDECFormatClass = nil): TBytes; overload;
316
317
    /// <summary>
318
    ///   Decrypts the contents of the passed encrypted RawByteString
319
    /// </summary>
320
    /// <param name="Source">
321
    ///   String to decrypt. When block chaining mode ECBx
322
    ///   is used (not recommended!), the size of the data passed via this
323
    ///   parameter needs to be a multiple of the block size of the algorithm
324
    ///   used, otherwise a EDECCipherException exception will be raised!
325
    /// </param>
326
    /// <param name="Format">
327
    ///   Optional parameter. One can pass a class reference of one of the
328
    ///   concrete data formatting classes here which will be internally used
329
    ///   to convert the data. Decoded will be the still encrypted data, not the
330
    ///   encrypted data. Formattings can be used to convert data into a format
331
    ///   suitable for the transport medium the data shall be transported with.
332
    /// </param>
333
    /// <returns>
334
    ///   Decrypted string as a byte array
335
    /// </returns>
336
    function DecodeStringToBytes(const Source: RawByteString;
337
                                 Format: TDECFormatClass = nil): TBytes; overload;
338
339
    /// <summary>
340
    ///   Decrypts the contents of the passed Unicode string
341
    /// </summary>
342
    /// <param name="Source">
343
    ///   String to decrypt. When block chaining mode ECBx
344
    ///   is used (not recommended!), the size of the data passed via this
345
    ///   parameter needs to be a multiple of the block size of the algorithm
346
    ///   used, otherwise a EDECCipherException exception will be raised!
347
    /// </param>
348
    /// <param name="Format">
349
    ///   Optional parameter. One can pass a class reference of one of the
350
    ///   concrete data formatting classes here which will be internally used
351
    ///   to convert the data. Decoded will be the encrypted data, not the
352
    ///   decrypted data. Formattings can be used to convert data into a format
353
    ///   suitable for the transport medium the data shall be transported with.
354
    /// </param>
355
    /// <returns>
356
    ///   Decrypted string
357
    /// </returns>
358
    /// <remarks>
359
    ///   The use of this method is only recommended if a formatting is passed
360
    ///   which uses an 7-bit ASCII compatible string as input so that it
361
    ///   didn't get altered by Unicode string processing in some hafrmful way
362
    /// </remarks>
363
    function DecodeStringToString(const Source: string;
364
                                  Format: TDECFormatClass = nil): string; overload;
365
366
    /// <summary>
367
    ///   Decrypts the contents of the passed RawByteString string
368
    /// </summary>
369
    /// <param name="Source">
370
    ///   String to decrypt. When block chaining mode ECBx
371
    ///   is used (not recommended!), the size of the data passed via this
372
    ///   parameter needs to be a multiple of the block size of the algorithm
373
    ///   used, otherwise a EDECCipherException exception will be raised!
374
    /// </param>
375
    /// <param name="Format">
376
    ///   Optional parameter. One can pass a class reference of one of the
377
    ///   concrete data formatting classes here which will be internally used
378
    ///   to convert the data. Decoded will be the encrypted data, not the
379
    ///   decrypted data. Formattings can be used to convert data into a format
380
    ///   suitable for the transport medium the data shall be transported with.
381
    /// </param>
382
    /// <returns>
383
    ///   Decrypted string
384
    /// </returns>
385
    /// <remarks>
386
    ///   The use of this method is only recommended if a formatting is passed
387
    ///   which uses an 7-bit ASCII compatible string as input so that it
388
    ///   didn't get altered by string processing in some hafrmful way
389
    /// </remarks>
390
    function DecodeStringToString(const Source: RawByteString;
391
                                  Format: TDECFormatClass = nil): RawByteString; overload;
392
393
{$IFDEF ANSISTRINGSUPPORTED}
394
    /// <summary>
395
    ///   Encrypts the contents of the passed Ansistring
396
    /// </summary>
397
    /// <param name="Source">
398
    ///   String to encrypt. When block chaining mode ECBx
399
    ///   is used (not recommended!), the size of the data passed via this
400
    ///   parameter needs to be a multiple of the block size of the algorithm
401
    ///   used, otherwise a EDECCipherException exception will be raised!
402
    /// </param>
403
    /// <param name="Format">
404
    ///   Optional parameter. One can pass a class reference of one of the
405
    ///   concrete data formatting classes here which will be internally used
406
    ///   to convert the data. Encoded will be the encrypted data, not the
407
    ///   source data. Formattings can be used to convert data into a format
408
    ///   suitable for the transport medium the data shall be transported with.
409
    /// </param>
410
    /// <returns>
411
    ///   Encrypted string as a byte array
412
    /// </returns>
413
    function EncodeStringToBytes(const Source: AnsiString;
414
                                 Format: TDECFormatClass = nil): TBytes; overload;
415
416
    /// <summary>
417
    ///   Encrypts the contents of the passed Ansistring
418
    /// </summary>
419
    /// <param name="Source">
420
    ///   String to encrypt. When block chaining mode ECBx
421
    ///   is used (not recommended!), the size of the data passed via this
422
    ///   parameter needs to be a multiple of the block size of the algorithm
423
    ///   used, otherwise a EDECCipherException exception will be raised!
424
    /// </param>
425
    /// <param name="Format">
426
    ///   Optional parameter. One can pass a class reference of one of the
427
    ///   concrete data formatting classes here which will be internally used
428
    ///   to convert the data. Encoded will be the encrypted data, not the
429
    ///   source data. Formattings can be used to convert data into a format
430
    ///   suitable for the transport medium the data shall be transported with.
431
    /// </param>
432
    /// <returns>
433
    ///   Encrypted string as an AnsiString
434
    /// </returns>
435
    /// <remarks>
436
    ///   The use of this method is only recommended if a formatting is passed
437
    ///   which will result in an 7-bit ASCII compatible string as we cannot
438
    ///   ensure that string processing will not alter/interpret some
439
    ///   byte combinations in a destructive way, making the encrypted string
440
    ///   un-decryptable.
441
    /// </remarks>
442
    function EncodeStringToString(const Source: AnsiString;
443
                                  Format: TDECFormatClass = nil): AnsiString; overload;
444
445
    /// <summary>
446
    ///   Decrypts the contents of the passed encrypted Ansistring
447
    /// </summary>
448
    /// <param name="Source">
449
    ///   String to decrypt. When block chaining mode ECBx
450
    ///   is used (not recommended!), the size of the data passed via this
451
    ///   parameter needs to be a multiple of the block size of the algorithm
452
    ///   used, otherwise a EDECCipherException exception will be raised!
453
    /// </param>
454
    /// <param name="Format">
455
    ///   Optional parameter. One can pass a class reference of one of the
456
    ///   concrete data formatting classes here which will be internally used
457
    ///   to convert the data. Decoded will be the still encrypted data, not the
458
    ///   encrypted data. Formattings can be used to convert data into a format
459
    ///   suitable for the transport medium the data shall be transported with.
460
    /// </param>
461
    /// <returns>
462
    ///   Decrypted string as a byte array
463
    /// </returns>
464
    function DecodeStringToBytes(const Source: AnsiString;
465
                                 Format: TDECFormatClass = nil): TBytes; overload;
466
467
    /// <summary>
468
    ///   Decrypts the contents of the passed AnsiString string
469
    /// </summary>
470
    /// <param name="Source">
471
    ///   String to decrypt. When block chaining mode ECBx
472
    ///   is used (not recommended!), the size of the data passed via this
473
    ///   parameter needs to be a multiple of the block size of the algorithm
474
    ///   used, otherwise a EDECCipherException exception will be raised!
475
    /// </param>
476
    /// <param name="Format">
477
    ///   Optional parameter. One can pass a class reference of one of the
478
    ///   concrete data formatting classes here which will be internally used
479
    ///   to convert the data. Decoded will be the encrypted data, not the
480
    ///   decrypted data. Formattings can be used to convert data into a format
481
    ///   suitable for the transport medium the data shall be transported with.
482
    /// </param>
483
    /// <returns>
484
    ///   Decrypted string
485
    /// </returns>
486
    /// <remarks>
487
    ///   The use of this method is only recommended if a formatting is passed
488
    ///   which uses an 7-bit ASCII compatible string as input so that it
489
    ///   didn't get altered by string processing in some hafrmful way
490
    /// </remarks>
491
    function DecodeStringToString(const Source: AnsiString;
492
                                  Format: TDECFormatClass = nil): AnsiString; overload;
493
{$ENDIF}
494
495
{$IFNDEF NEXTGEN}
496
    /// <summary>
497
    ///   Encrypts the contents of the passed Widestring
498
    /// </summary>
499
    /// <param name="Source">
500
    ///   String to encrypt. When block chaining mode ECBx
501
    ///   is used (not recommended!), the size of the data passed via this
502
    ///   parameter needs to be a multiple of the block size of the algorithm
503
    ///   used, otherwise a EDECCipherException exception will be raised!
504
    /// </param>
505
    /// <param name="Format">
506
    ///   Optional parameter. One can pass a class reference of one of the
507
    ///   concrete data formatting classes here which will be internally used
508
    ///   to convert the data. Encoded will be the encrypted data, not the
509
    ///   source data. Formattings can be used to convert data into a format
510
    ///   suitable for the transport medium the data shall be transported with.
511
    /// </param>
512
    /// <returns>
513
    ///   Encrypted string as a byte array
514
    /// </returns>
515
    function EncodeStringToBytes(const Source: WideString;
516
                                 Format: TDECFormatClass = nil): TBytes; overload;
517
518
    /// <summary>
519
    ///   Encrypts the contents of the passed Widestring
520
    /// </summary>
521
    /// <param name="Source">
522
    ///   String to encrypt. When block chaining mode ECBx
523
    ///   is used (not recommended!), the size of the data passed via this
524
    ///   parameter needs to be a multiple of the block size of the algorithm
525
    ///   used, otherwise a EDECCipherException exception will be raised!
526
    /// </param>
527
    /// <param name="Format">
528
    ///   Optional parameter. One can pass a class reference of one of the
529
    ///   concrete data formatting classes here which will be internally used
530
    ///   to convert the data. Encoded will be the encrypted data, not the
531
    ///   source data. Formattings can be used to convert data into a format
532
    ///   suitable for the transport medium the data shall be transported with.
533
    /// </param>
534
    /// <returns>
535
    ///   Encrypted string as an WideString
536
    /// </returns>
537
    /// <remarks>
538
    ///   The use of this method is only recommended if a formatting is passed
539
    ///   which will result in an 7-bit ASCII compatible string as we cannot
540
    ///   ensure that string processing will not alter/interpret some
541
    ///   byte combinations in a destructive way, making the encrypted string
542
    ///   un-decryptable.
543
    /// </remarks>
544
    function EncodeStringToString(const Source: WideString;
545
                                  Format: TDECFormatClass = nil): WideString; overload;
546
547
    /// <summary>
548
    ///   Decrypts the contents of the passed encrypted Widestring
549
    /// </summary>
550
    /// <param name="Source">
551
    ///   String to decrypt. When block chaining mode ECBx
552
    ///   is used (not recommended!), the size of the data passed via this
553
    ///   parameter needs to be a multiple of the block size of the algorithm
554
    ///   used, otherwise a EDECCipherException exception will be raised!
555
    /// </param>
556
    /// <param name="Format">
557
    ///   Optional parameter. One can pass a class reference of one of the
558
    ///   concrete data formatting classes here which will be internally used
559
    ///   to convert the data. Decoded will be the still encrypted data, not the
560
    ///   encrypted data. Formattings can be used to convert data into a format
561
    ///   suitable for the transport medium the data shall be transported with.
562
    /// </param>
563
    /// <returns>
564
    ///   Decrypted string as a byte array
565
    /// </returns>
566
    function DecodeStringToBytes(const Source: WideString;
567
                                 Format: TDECFormatClass = nil): TBytes; overload;
568
569
    /// <summary>
570
    ///   Decrypts the contents of the passed WideString string
571
    /// </summary>
572
    /// <param name="Source">
573
    ///   String to decrypt. When block chaining mode ECBx
574
    ///   is used (not recommended!), the size of the data passed via this
575
    ///   parameter needs to be a multiple of the block size of the algorithm
576
    ///   used, otherwise a EDECCipherException exception will be raised!
577
    /// </param>
578
    /// <param name="Format">
579
    ///   Optional parameter. One can pass a class reference of one of the
580
    ///   concrete data formatting classes here which will be internally used
581
    ///   to convert the data. Decoded will be the encrypted data, not the
582
    ///   decrypted data. Formattings can be used to convert data into a format
583
    ///   suitable for the transport medium the data shall be transported with.
584
    /// </param>
585
    /// <returns>
586
    ///   Decrypted string
587
    /// </returns>
588
    /// <remarks>
589
    ///   The use of this method is only recommended if a formatting is passed
590
    ///   which uses an 7-bit ASCII compatible string as input so that it
591
    ///   didn't get altered by string processing in some hafrmful way
592
    /// </remarks>
593
    function DecodeStringToString(const Source: WideString;
594
                                  Format: TDECFormatClass = nil): WideString; overload;
595
{$ENDIF}
596
  end;
597
598
implementation
599
600
uses
601
  DECBaseClass;
602
603
function TDECFormattedCipher.EncodeBytes(const Source: TBytes): TBytes;
604
begin
605
  SetLength(Result, Length(Source));
606
  if Length(Result) > 0 then
607
    Encode(Source[0], Result[0], Length(Source))
608
  else
609
    if (FMode = cmGCM) then
610
      EncodeGCM(@Source, @Result, 0);
611
end;
612
613
function TDECFormattedCipher.DecodeBytes(const Source: TBytes): TBytes;
614
begin
615
//  Result := Source;
616
  SetLength(Result, Length(Source));
617
618
  if Length(Result) > 0 then
619
    Decode(Source[0], Result[0], Length(Source))
620
//    Decode(Result[0], Result[0], Length(Source))
621
  else
622
    if (FMode = cmGCM) then
623
      DecodeGCM(@Source, @Result, 0);
624
end;
625
626
procedure TDECFormattedCipher.DoEncodeDecodeStream(const Source, Dest: TStream;
627
                                                   DataSize: Int64;
628
                                                   const CipherProc: TDECCipherCodeEvent;
629
                                                   const OnProgress: TDECProgressEvent);
630
var
631
  Buffer: TBytes;
632
  BufferSize, Bytes: Integer;
633
  Max, StartPos, Pos: Int64;
634
begin
635
  Pos := Source.Position;
636
  if DataSize < 0 then
637
    DataSize := Source.Size - Pos;
638
639
  Max      := Pos + DataSize;
640
  StartPos := Pos;
641
642
  if DataSize > 0 then
643
    try
644
      if Assigned(OnProgress) then
645
        OnProgress(Max, 0, Started);
646
647
      if StreamBufferSize <= 0 then
648
        StreamBufferSize := 8192;
649
      BufferSize := StreamBufferSize mod Context.BlockSize;
650
      if BufferSize = 0 then
651
        BufferSize := StreamBufferSize
652
      else
653
        BufferSize := StreamBufferSize + Context.BlockSize - BufferSize;
654
      if DataSize > BufferSize then
655
        SetLength(Buffer, BufferSize)
656
      else
657
        SetLength(Buffer, DataSize);
658
      while DataSize > 0 do
659
      begin
660
        Bytes := BufferSize;
661
        if Bytes > DataSize then
662
          Bytes := DataSize;
663
        Source.ReadBuffer(Buffer[0], Bytes);
664
665
        // The real encryption or decryption routine
666
        CipherProc(Buffer[0], Buffer[0], Bytes);
667
        Dest.WriteBuffer(Buffer[0], Bytes);
668
        Dec(DataSize, Bytes);
669
        Inc(Pos, Bytes);
670
671
        if Assigned(OnProgress) then
672
          OnProgress(Max, Pos - StartPos, Processing);
673
      end;
674
    finally
675
      ProtectBytes(Buffer);
676
      if Assigned(OnProgress) then
677
        OnProgress(Max, Max, Finished);
678
    end;
679
end;
680
681
procedure TDECFormattedCipher.EncodeStream(const Source, Dest: TStream; DataSize: Int64;
682
                                           const OnProgress: TDECProgressEvent);
683
begin
684
  DoEncodeDecodeStream(Source, Dest, DataSize,
685
                       Encode, OnProgress);
686
end;
687
688
procedure TDECFormattedCipher.DecodeStream(const Source, Dest: TStream; DataSize: Int64;
689
                                           const OnProgress: TDECProgressEvent);
690
begin
691
  DoEncodeDecodeStream(Source, Dest, DataSize,
692
                       Decode, OnProgress);
693
end;
694
695
procedure TDECFormattedCipher.DoEncodeDecodeFile(const SourceFileName, DestFileName: string;
696
                                                 const Proc: TDECCipherCodeEvent;
697
                                                 const OnProgress: TDECProgressEvent);
698
var
699
  S, D: TStream;
700
begin
701
  Assert(SourceFileName <> DestFileName, 'Source and Dest file name may not be equal');
702
703
  S := TFileStream.Create(SourceFileName, fmOpenRead or fmShareDenyNone);
704
  try
705
    D := TFileStream.Create(DestFileName, fmCreate);
706
    try
707
      DoEncodeDecodeStream(S, D, S.Size, Proc, OnProgress);
708
    finally
709
      D.Free;
710
    end;
711
  finally
712
    S.Free;
713
  end;
714
end;
715
716
procedure TDECFormattedCipher.EncodeFile(const SourceFileName, DestFileName: string;
717
                                         const OnProgress: TDECProgressEvent);
718
begin
719
  DoEncodeDecodeFile(SourceFileName, DestFileName, Encode, OnProgress);
720
end;
721
722
procedure TDECFormattedCipher.DecodeFile(const SourceFileName, DestFileName: string;
723
                                         const OnProgress: TDECProgressEvent);
724
begin
725
  DoEncodeDecodeFile(SourceFileName, DestFileName, Decode, OnProgress);
726
end;
727
728
function TDECFormattedCipher.EncodeStringToBytes(const Source: string;
729
                                                 Format: TDECFormatClass = nil): TBytes;
730
var
731
  Len: Integer;
732
begin
733
  if Length(Source) > 0 then
734
  begin
735
    {$IF CompilerVersion >= 24.0}
736
    Len := Length(Source) * SizeOf(Source[low(Source)]);
737
    SetLength(Result, Len);
738
    Encode(Source[low(Source)], Result[0], Len);
739
    {$ELSE}
740
    Len := Length(Source) * SizeOf(Source[1]);
741
    SetLength(Result, Len);
742
    Encode(Source[1], Result[0], Len);
743
    {$IFEND}
744
745
    Result := ValidFormat(Format).Encode(Result);
746
  end
747
  else
748
    SetLength(Result, 0);
749
end;
750
751
function TDECFormattedCipher.EncodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes;
752
var
753
  Len: Integer;
754
begin
755
  if Length(Source) > 0 then
756
  begin
757
    {$IF CompilerVersion >= 24.0}
758
    Len := Length(Source) * SizeOf(Source[low(Source)]);
759
    SetLength(Result, Len);
760
    Encode(Source[low(Source)], Result[0], Len);
761
    {$ELSE}
762
    Len := Length(Source) * SizeOf(Source[1]);
763
    SetLength(Result, Len);
764
    Encode(Source[1], Result[0], Len);
765
    {$IFEND}
766
767
    Result := ValidFormat(Format).Encode(Result);
768
  end
769
  else
770
    SetLength(Result, 0);
771
end;
772
773
function TDECFormattedCipher.DecodeStringToBytes(const Source: string; Format: TDECFormatClass): TBytes;
774
var
775
  Len: Integer;
776
  Src: TBytes;
777
begin
778
  if Length(Source) > 0 then
779
  begin
780
    Src := ValidFormat(Format).Decode(BytesOf(Source));
781
782
    Len := Length(Src);
783
    Result := Src;
784
    Decode(Result[0], Result[0], Len);
785
  end
786
  else
787
    SetLength(Result, 0);
788
end;
789
790
function TDECFormattedCipher.DecodeStringToBytes(const Source: RawByteString; Format: TDECFormatClass): TBytes;
791
var
792
  Len: Integer;
793
  Src: TBytes;
794
begin
795
  if Length(Source) > 0 then
796
  begin
797
    Src := ValidFormat(Format).Decode(BytesOf(Source));
798
799
    Len := Length(Src);
800
    Result := Src;
801
    Decode(Result[0], Result[0], Len);
802
  end
803
  else
804
    SetLength(Result, 0);
805
end;
806
807
{$IFDEF ANSISTRINGSUPPORTED}
808
function TDECFormattedCipher.EncodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes;
809
var
810
  Len: Integer;
811
begin
812
  if Length(Source) > 0 then
813
  begin
814
    Len := Length(Source) * SizeOf(Source[1]);
815
    SetLength(Result, Len);
816
    Encode(Source[1], Result[0], Len);
817
818
    Result := ValidFormat(Format).Encode(Result);
819
  end
820
  else
821
    SetLength(Result, 0);
822
end;
823
{$ENDIF}
824
825
{$IFDEF ANSISTRINGSUPPORTED}
826
function TDECFormattedCipher.DecodeStringToBytes(const Source: AnsiString; Format: TDECFormatClass): TBytes;
827
var
828
  Len: Integer;
829
  Src: TBytes;
830
begin
831
  if Length(Source) > 0 then
832
  begin
833
    Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source));
834
835
    Len := Length(Src);
836
    SetLength(Result, Len);
837
    Decode(Src[0], Result[0], Len);
838
  end
839
  else
840
    SetLength(Result, 0);
841
end;
842
{$ENDIF}
843
844
{$IFNDEF NEXTGEN}
845
function TDECFormattedCipher.EncodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes;
846
var
847
  Len: Integer;
848
begin
849
  if Length(Source) > 0 then
850
  begin
851
    Len := Length(Source) * SizeOf(Source[1]);
852
    SetLength(Result, Len);
853
    Encode(Source[1], Result[0], Len);
854
855
    Result := ValidFormat(Format).Encode(Result);
856
  end
857
  else
858
    SetLength(Result, 0);
859
end;
860
861
function TDECFormattedCipher.EncodeStringToString(const Source: WideString;
862
  Format: TDECFormatClass): WideString;
863
begin
864
  result := WideString(EncodeStringToString(string(Source), Format));
865
end;
866
{$ENDIF}
867
868
{$IFDEF ANSISTRINGSUPPORTED}
869
function TDECFormattedCipher.EncodeStringToString(const Source: AnsiString;
870
  Format: TDECFormatClass): AnsiString;
871
var
872
  Len             : Integer;
873
  EncryptedBuffer : TBytes;
874
  Temp            : TBytes;
875
begin
876
  if Length(Source) > 0 then
877
  begin
878
    Len := Length(Source) * SizeOf(Source[1]);
879
    SetLength(EncryptedBuffer, Len);
880
    Encode(Source[1], EncryptedBuffer[0], Len);
881
882
    Temp := ValidFormat(Format).Encode(EncryptedBuffer);
883
    SetLength(Result, length(Temp));
884
    Move(Temp[0], Result[1], length(Temp));
885
  end
886
  else
887
    SetLength(Result, 0);
888
end;
889
{$ENDIF}
890
891
function TDECFormattedCipher.EncodeStringToString(const Source: string;
892
  Format: TDECFormatClass): string;
893
var
894
  SourceSize      : Integer;
895
  EncryptedBuffer : TBytes;
896
begin
897
  if Length(Source) > 0 then
898
  begin
899
    {$IF CompilerVersion >= 24.0}
900
    SourceSize := Length(Source) * SizeOf(Source[low(Source)]);
901
    SetLength(EncryptedBuffer, SourceSize);
902
    Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize);
903
    {$ELSE}
904
    SourceSize := Length(Source) * SizeOf(Source[1]);
905
    SetLength(EncryptedBuffer, SourceSize);
906
    Encode(Source[1], EncryptedBuffer[0], SourceSize);
907
    {$IFEND}
908
909
    Result := StringOf(ValidFormat(Format).Encode(EncryptedBuffer));
910
  end
911
  else
912
    Result := '';
913
end;
914
915
function TDECFormattedCipher.EncodeStringToString(const Source: RawByteString;
916
  Format: TDECFormatClass): RawByteString;
917
var
918
  SourceSize      : Integer;
919
  EncryptedBuffer : TBytes;
920
  Temp            : TBytes;
921
begin
922
  if Length(Source) > 0 then
923
  begin
924
    {$IF CompilerVersion >= 24.0}
925
    SourceSize := Length(Source) * SizeOf(Source[low(Source)]);
926
    SetLength(EncryptedBuffer, SourceSize);
927
    Encode(Source[low(Source)], EncryptedBuffer[0], SourceSize);
928
    {$ELSE}
929
    SourceSize := Length(Source) * SizeOf(Source[1]);
930
    SetLength(EncryptedBuffer, SourceSize);
931
    Encode(Source[1], EncryptedBuffer[0], SourceSize);
932
    {$IFEND}
933
934
    Temp   := ValidFormat(Format).Encode(EncryptedBuffer);
935
    SetLength(Result, length(Temp));
936
    {$IF CompilerVersion >= 24.0}
937
    Move(Temp[0], Result[low(Result)], length(Temp))
938
    {$ELSE}
939
    Move(Temp[0], Result[1], length(Temp))
940
    {$IFEND}
941
  end
942
  else
943
    Result := '';
944
end;
945
946
{$IFNDEF NEXTGEN}
947
function TDECFormattedCipher.DecodeStringToBytes(const Source: WideString; Format: TDECFormatClass): TBytes;
948
var
949
  Len: Integer;
950
  Src: TBytes;
951
begin
952
  if Length(Source) > 0 then
953
  begin
954
    Src := ValidFormat(Format).Decode(BytesOf(Source));
955
956
    Len := Length(Src);
957
    SetLength(Result, Len);
958
    Decode(Src[0], Result[0], Len);
959
  end
960
  else
961
    SetLength(Result, 0);
962
end;
963
{$ENDIF}
964
965
{$IFDEF ANSISTRINGSUPPORTED}
966
function TDECFormattedCipher.DecodeStringToString(const Source: AnsiString;
967
  Format: TDECFormatClass): AnsiString;
968
var
969
  Len : Integer;
970
  Src : TBytes;
971
  Tmp : TBytes;
972
begin
973
  if Length(Source) > 0 then
974
  begin
975
    Src := ValidFormat(Format).Decode(SysUtils.BytesOf(Source));
976
977
    Len := Length(Src);
978
    SetLength(Tmp, Len);
979
    Decode(Src[0], Tmp[0], Len);
980
981
    SetLength(Result, length(Tmp));
982
983
    {$IF CompilerVersion >= 24.0}
984
    Move(Tmp[0], Result[low(Result)], length(Tmp))
985
    {$ELSE}
986
    Move(Tmp[0], Result[1], length(Tmp))
987
    {$IFEND}
988
  end
989
  else
990
    SetLength(Result, 0);
991
end;
992
{$ENDIF}
993
994
{$IFNDEF NEXTGEN}
995
function TDECFormattedCipher.DecodeStringToString(const Source: WideString;
996
  Format: TDECFormatClass): WideString;
997
begin
998
  Result := WideString(DecodeStringToString(string(Source), Format));
999
end;
1000
{$ENDIF}
1001
1002
function TDECFormattedCipher.DecodeStringToString(const Source: RawByteString;
1003
  Format: TDECFormatClass): RawByteString;
1004
var
1005
  Len : Integer;
1006
  Src : TBytes;
1007
  Tmp : TBytes;
1008
begin
1009
  if Length(Source) > 0 then
1010
  begin
1011
    Src := ValidFormat(Format).Decode(BytesOf(Source));
1012
1013
    Len := Length(Src);
1014
    SetLength(Tmp, Len);
1015
    Decode(Src[0], Tmp[0], Len);
1016
1017
    SetLength(Result, length(Tmp));
1018
1019
    {$IF CompilerVersion >= 24.0}
1020
    Move(Tmp[0], Result[low(Result)], length(Tmp))
1021
    {$ELSE}
1022
    Move(Tmp[0], Result[1], length(Tmp))
1023
    {$IFEND}
1024
  end
1025
  else
1026
    SetLength(Result, 0);
1027
end;
1028
1029
function TDECFormattedCipher.DecodeStringToString(const Source: string;
1030
  Format: TDECFormatClass): string;
1031
var
1032
  Len : Integer;
1033
  Src : TBytes;
1034
  Tmp : TBytes;
1035
begin
1036
  if Length(Source) > 0 then
1037
  begin
1038
    Src := ValidFormat(Format).Decode(BytesOf(Source));
1039
1040
    Len := Length(Src);
1041
    SetLength(Tmp, Len);
1042
    Decode(Src[0], Tmp[0], Len);
1043
    Result := WideStringOf(Tmp);
1044
  end
1045
  else
1046
    SetLength(Result, 0);
1047
end;
1048
1049
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECCipherModes(DECCipherModes.pas).html b/Unit Tests/CodeCoverage/U/DECCipherModes(DECCipherModes.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCipherModes(DECCipherModes.pas).html rename to Unit Tests/CodeCoverage/U/DECCipherModes(DECCipherModes.pas).html index bb1faa7c..0b1d03f4 100644 --- a/Unit Tests/CodeCoverage/DECCipherModes(DECCipherModes.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCipherModes(DECCipherModes.pas).html @@ -1,1272 +1,1272 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCipherModes (D:\Projekte\DECGitMaster\Source\DECCipherModes.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherModes.pas

-
Number of lines covered378
Number of lines with code gen457
Line coverage82%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherModes;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils,
26
  {$ELSE}
27
  System.SysUtils,
28
  {$ENDIF}
29
  DECTypes, DECCipherBase, DECCipherModesGCM;
30
31
type
32
  /// <summary>
33
  ///   Most ciphers are block oriented and thus work on blocks of a fixed size.
34
  ///   In order to not encrypt each block separately without any link to his
35
  ///   predecessor and sucessor, which would make attacks on the encrypted data
36
  ///   easier, each block should be linked with his predecessor (or the
37
  ///   initialization vector). This class implements the various supported
38
  ///   algorithms for linking blocks.
39
  /// </summary>
40
  TDECCipherModes = class(TDECCipher)
41
  strict private
42
    /// <summary>
43
    ///   Returns the data which shall get authenticated when using a cipher
44
    ///   mode which provides authentication support as well.
45
    /// </summary>
46
    /// <returns>
47
    ///   Data to be authenticated. Raises an EDECCipherException if this is
48
    ///   called for a cipher mode not supporting authentication.
49
    /// </returns>
50
    function  GetDataToAuthenticate: TBytes;
51
    /// <summary>
52
    ///   Returns the length of the resulting authentication value if a
53
    ///   cipher mode which provides authentication support as well is used.
54
    /// </summary>
55
    /// <returns>
56
    ///   Length of the authentication result in bit. Raises an
57
    ///   EDECCipherException if this is called for a cipher mode not supporting
58
    ///   authentication.
59
    /// </returns>
60
    function  GetAuthenticationResultBitLength: Integer;
61
    /// <summary>
62
    ///   Returns the value calculated over the data to be authenticated if a
63
    ///   cipher mode which provides authentication support as well is used.
64
    ///   The value will be returned even if decryption resulted in a wrong value.
65
    ///   A wrong authentication result on decryption is signalled via exception.
66
    /// </summary>
67
    /// <returns>
68
    ///   Result of the authentication. Raises an EDECCipherException if this is
69
    ///   called for a cipher mode not supporting authentication.
70
    /// </returns>
71
    function  GetCalcAuthenticatonResult: TBytes;
72
    /// <summary>
73
    ///   Defines the data which shall get authenticated when using a cipher
74
    ///   mode which provides authentication support as well.
75
    /// </summary>
76
    /// <param name="Value">
77
    ///   Data to be authenticated. Raises an EDECCipherException if this is
78
    ///   called for a cipher mode not supporting authentication.
79
    /// </param>
80
    procedure SetDataToAuthenticate(const Value: TBytes);
81
    /// <summary>
82
    ///   Sets the length of the resulting authentication value if a
83
    ///   cipher mode which provides authentication support as well is used.
84
    /// </summary>
85
    /// <param name="Value">
86
    ///   Length of the authentication result in bit. Raises an
87
    ///   EDECCipherException if this is called for a cipher mode not supporting
88
    ///   authentication.
89
    /// </param>
90
    procedure SetAuthenticationResultBitLength(const Value: Integer);
91
  strict private
92
    /// <summary>
93
    ///   Implementation of the Galois counter mode. Only created when gmGCM is
94
    ///   set as mode.
95
    /// </summary>
96
    FGCM : TGCM;
97
    /// <summary>
98
    ///   Returns the value set as expected authenthication value for ciphers
99
    ///   providing authehtication features as well. Raises an
100
    ///   EDECCipherException if this is called for a cipher mode not supporting
101
    ///   authentication.
102
    /// </summary>
103
    function GetExpectedAuthenticationTag: TBytes;
104
    /// <summary>
105
    ///   Sets the value used as expected authenthication value when decrypting
106
    ///   and a cipher providing authehtication features is being used. Raises an
107
    ///   EDECCipherException if this is called for a cipher mode not supporting
108
    ///   authentication.
109
    /// </summary>
110
    procedure SetExpectedAuthenticationTag(const Value: TBytes); protected
111
    /// <summary>
112
    ///   Raises an EDECCipherException exception and provides the correct value
113
    ///   for block size in that message
114
    /// </summary>
115
    procedure ReportInvalidMessageLength(Cipher: TDECCipher);
116
    /// <summary>
117
    ///   Allows to run code after the initialization vector has been initialized
118
    ///   inside the Init call, which is after DoInit has been called.
119
    /// </summary>
120
    /// <param name="OriginalIVector">
121
    ///   Value of the init vector as originally passed to the Init call without
122
    ///   any initialization steps done to/on it
123
    /// </param>
124
    procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); override;
125
    /// <summary>
126
    ///   Electronic Code Book
127
    ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize
128
    ///   and should be used only in 1-byte Streamciphers.
129
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
130
    ///   Blockcipher that's equal to Cipher.BlockSize.
131
    /// </summary>
132
    /// <remarks>
133
    ///   This mode should not be used in practice, as it makes the encrypted
134
    ///   message vulnerable to certain attacks without knowing the encryption key
135
    /// </remarks>
136
    procedure EncodeECBx(Source, Dest: PByteArray; Size: Integer); virtual;
137
    /// <summary>
138
    ///   8bit Output Feedback mode, needs no padding
139
    /// </summary>
140
    procedure EncodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual;
141
    /// <summary>
142
    ///   8 bit Cipher Feedback mode, needs no padding and works on 8 bit
143
    ///   Feedback Shift Registers.
144
    /// </summary>
145
    procedure EncodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual;
146
    /// <summary>
147
    ///   8Bit CFS, double Cipher Feedback mode (CFB), needs no padding and
148
    ///   works on 8 bit Feedback Shift Registers.
149
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
150
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
151
    ///   inputstream into Feedback register.
152
    /// </summary>
153
    procedure EncodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual;
154
    /// <summary>
155
    ///   Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding
156
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
157
    ///   Blockcipher that's equal to Cipher.BlockSize.
158
    /// </summary>
159
    procedure EncodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual;
160
    /// <summary>
161
    ///   Output Feedback mode on Blocksize of Cipher, needs no padding and
162
    ///   works on 8 bit Feedback Shift Registers.
163
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
164
    ///   Blockcipher that's equal to Cipher.BlockSize.
165
    /// </summary>
166
    procedure EncodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual;
167
    /// <summary>
168
    ///   double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding.
169
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
170
    ///   Blockcipher that's equal to Cipher.BlockSize.
171
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
172
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
173
    ///   inputstream into Feedback register.
174
    /// </summary>
175
    procedure EncodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual;
176
    /// <summary>
177
    ///   Cipher Block Chaining, with CFB8 padding of truncated final block
178
    ///   It needs no external padding, because internally the last
179
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
180
    ///   cannot be used to process any more data. If needed to process chunks of
181
    ///   data then each chunk must be aligned to Cipher.BufferSize bytes.
182
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
183
    ///   Blockcipher that's equal to Cipher.BlockSize.
184
    /// </summary>
185
    procedure EncodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual;
186
    /// <summary>
187
    ///   double CBC, with CFS8 padding of truncated final block
188
    ///   It needs no external padding, because internally the last
189
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
190
    ///   cannot be used to process any more data. If needed to process chunks of
191
    ///   data then each chunk must be aligned to Cipher.BufferSize bytes.
192
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
193
    ///   Blockcipher that's equal to Cipher.BlockSize.
194
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
195
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
196
    ///   inputstream into Feedback register.
197
    /// </summary>
198
    procedure EncodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual;
199
    /// <summary>
200
    ///   Galois Counter Mode: encryption with addtional optional authentication.
201
    ///   Implemented in its own unit, but needed here to be callable even if
202
    ///   source length is 0.
203
    /// </summary>
204
    procedure EncodeGCM(Source, Dest: PByteArray; Size: Integer); virtual;
205
    {$IFDEF DEC3_CMCTS}
206
    /// <summary>
207
    ///   double CBC, with
208
    ///   for DEC 3.0 compatibility only
209
    ///   This is a proprietary mode developed by Frederik Winkelsdorf. It
210
    ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
211
    ///   Useful when converting projects that previously used the old DEC v3.0. It
212
    ///   has the same restrictions for external padding and chunk processing as
213
    ///   cmCTSx has. It has a less secure padding of the truncated final block.
214
    ///   (to enable it see DECOptions.inc)
215
    /// </summary>
216
    procedure EncodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual;
217
    {$ENDIF}
218
    /// <summary>
219
    ///   Electronic Code Book
220
    ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize
221
    ///   and should be used only in 1-byte Streamciphers.
222
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
223
    ///   blockcipher that's equal to Cipher.BlockSize.
224
    /// </summary>
225
    procedure DecodeECBx(Source, Dest: PByteArray; Size: Integer); virtual;
226
    /// <summary>
227
    ///   8 bit Output Feedback mode, needs no padding
228
    /// </summary>
229
    procedure DecodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual;
230
    /// <summary>
231
    ///   8 bit Cipher Feedback mode, needs no padding and works on 8 bit
232
    ///   Feedback Shift Registers.
233
    /// </summary>
234
    procedure DecodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual;
235
    /// <summary>
236
    ///   8 Bit CFS, double Cipher Feedback mode (CFB), needs no padding and
237
    ///   works on 8 bit Feedback Shift Registers.
238
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
239
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
240
    ///   inputstream into Feedback register.
241
    /// </summary>
242
    procedure DecodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual;
243
    /// <summary>
244
    ///   Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding
245
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
246
    ///   blockcipher that's equal to Cipher.BlockSize.
247
    /// </summary>
248
    procedure DecodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual;
249
    /// <summary>
250
    ///   Output Feedback mode on Blocksize of Cipher, needs no padding and
251
    ///   works on 8 bit Feedback Shift Registers.
252
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
253
    ///   blockcipher that's equal to Cipher.BlockSize.
254
    /// </summary>
255
    procedure DecodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual;
256
    /// <summary>
257
    ///   double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding.
258
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
259
    ///   blockcipher that's equal to Cipher.BlockSize.
260
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
261
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
262
    ///   inputstream into Feedback register.
263
    /// </summary>
264
    procedure DecodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual;
265
    /// <summary>
266
    ///   Cipher Block Chaining, with CFB8 padding of truncated final block.
267
    ///   It needs no external padding, because internally the last
268
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these modes
269
    ///   cannot be used to process any more data. If needed to process chunks of
270
    ///   data then each chunk must be algined to Cipher.BufferSize bytes.
271
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
272
    ///   blockcipher that's equal to Cipher.BlockSize.
273
    /// </summary>
274
    procedure DecodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual;
275
    /// <summary>
276
    ///   double CBC, with CFS8 padding of truncated final block
277
    ///   It needs no external padding, because internally the last
278
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
279
    ///   cannot be used to process any more data. If needed to process chunks of
280
    ///   data then each chunk must be algined to Cipher.BufferSize bytes.
281
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
282
    ///   blockcipher that's equal to Cipher.BlockSize.
283
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
284
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
285
    ///   inputstream into feedback register.
286
    /// </summary>
287
    procedure DecodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual;
288
    /// <summary>
289
    ///   Galois Counter Mode, details are implemented in DECCipherModesGCM
290
    /// </summary>
291
    procedure DecodeGCM(Source, Dest: PByteArray; Size: Integer); virtual;
292
    {$IFDEF DEC3_CMCTS}
293
    /// <summary>
294
    ///   double CBC
295
    ///   This is a proprietary mode developed by Frederik Winkelsdorf. It
296
    ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
297
    ///   Useful when converting projects that previously used the old DEC v3.0. It
298
    ///   has the same restrictions for external padding and chunk processing as
299
    ///   cmCTSx has. It has a less secure padding of the truncated final block.
300
    ///   (to enable it see DECOptions.inc)
301
    /// </summary>
302
    /// <remarks>
303
    ///   For DEC 3.0 compatibility only
304
    /// </remarks>
305
    procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual;
306
    {$ENDIF}
307
    /// <summary>
308
    ///   When setting mode to GCM the GCM implementing class instance needs to
309
    ///   be created
310
    /// </summary>
311
    procedure InitMode; override;
312
  public
313
    /// <summary>
314
    ///   Frees, if necessary, internal objects
315
    /// </summary>
316
    destructor Destroy; override;
317
    /// <summary>
318
    ///   Encrypts a given block of data
319
    /// </summary>
320
    /// <param name="Source">
321
    ///   Data to be encrypted
322
    /// </param>
323
    /// <param name="Dest">
324
    ///   Data after encryption
325
    /// </param>
326
    /// <param name="DataSize">
327
    ///   Size of the data the Source parameter points to in byte
328
    /// </param>
329
    procedure Encode(const Source; var Dest; DataSize: Integer);
330
    /// <summary>
331
    ///   Decrypts a given block of data
332
    /// </summary>
333
    /// <param name="Source">
334
    ///   Data to be Decrypted
335
    /// </param>
336
    /// <param name="Dest">
337
    ///   Data after decryption
338
    /// </param>
339
    /// <param name="DataSize">
340
    ///   Size of the data the Source parameter points to in byte
341
    /// </param>
342
    procedure Decode(const Source; var Dest; DataSize: Integer);
343
344
    /// <summary>
345
    ///   Properly finishes the cryptographic operation. It needs to be called
346
    ///   at the end of encrypting or decrypting data, otherwise the last block
347
    ///   or last byte of the data will not be properly processed.
348
    /// </summary>
349
    procedure Done; override;
350
351
    /// <summary>
352
    ///   Returns a list of authentication tag lengs explicitely specified by
353
    ///   the official speciication of the standard.
354
    /// </summary>
355
    /// <returns>
356
    ///   List of bit lengths. If the cipher mode used is not an authenticated
357
    ///   one, the array will just contain a single value of 0.
358
    /// </returns>
359
    function GetStandardAuthenticationTagBitLengths:TStandardBitLengths;
360
361
    /// <summary>
362
    ///   Some block chaining modes have the ability to authenticate the message
363
    ///   in addition to encrypting it. This property contains the data which
364
    ///   shall be authenticated in parallel to the encryption.
365
    /// </summary>
366
    property DataToAuthenticate : TBytes
367
      read   GetDataToAuthenticate
368
      write  SetDataToAuthenticate;
369
370
    /// <summary>
371
    ///   Some block chaining modes have the ability to authenticate the message
372
    ///   in addition to encrypting it.
373
    ///   Represents the length of AuthenticatonValue in bit, values as per
374
    ///   specification are: 128, 120, 112, 104, or 96 bit. For certain applications,
375
    ///   they may be 64 or 32 as well, but the use of these two tag lengths
376
    ///   constrains the length of the input data and the lifetime of the key.
377
    /// </summary>
378
    property AuthenticationResultBitLength : Integer
379
      read   GetAuthenticationResultBitLength
380
      write  SetAuthenticationResultBitLength;
381
    /// <summary>
382
    ///   Some block chaining modes have the ability to authenticate the message
383
    ///   in addition to encrypting it. This property contains the generated
384
    ///   authentication tag. Raises an EDECCipherException if this is
385
    ///   called for a cipher mode not supporting authentication.
386
    /// </summary>
387
    property CalculatedAuthenticationResult  : TBytes
388
      read   GetCalcAuthenticatonResult;
389
390
    /// <summary>
391
    ///   Expected authentication tag value, will be compared with actual value
392
    ///   when decryption finished. Raises an EDECCipherException if this is
393
    ///   called for a cipher mode not supporting authentication.
394
    /// </summary>
395
    property ExpectedAuthenticationTag : TBytes
396
      read   GetExpectedAuthenticationTag
397
      write  SetExpectedAuthenticationTag;
398
  end;
399
400
implementation
401
402
uses
403
  {$IFDEF FPC}
404
  TypInfo,
405
  {$ELSE}
406
  System.TypInfo,
407
  {$ENDIF}
408
  DECUtil;
409
410
resourcestring
411
  sInvalidMessageLength = 'Message length for mode %0:s must be a multiple of %1:d bytes';
412
  sInvalidBlockSize     = 'Block size must be %0:d bit for the selected mode %1:s';
413
  sInvalidModeForMethod = 'Invalid mode for this method. Mode must be %0:s';
414
415
  /// <summary>
416
  ///   Calculated authentication value on decryption does not match expected one
417
  /// </summary>
418
  sInvalidAuthenticationValue = 'Authentication value of decryption is invalid';
419
420
procedure TDECCipherModes.ReportInvalidMessageLength(Cipher: TDECCipher);
421
begin
422
  raise EDECCipherException.CreateResFmt(@sInvalidMessageLength,
423
                                         [System.TypInfo.GetEnumName(TypeInfo(TCipherMode),
424
                                         Integer(Cipher.Mode)),
425
                                         Cipher.Context.BlockSize]);
426
end;
427
428
procedure TDECCipherModes.SetDataToAuthenticate(const Value: TBytes);
429
begin
430
  if (FMode = cmGCM) then
431
    FGCM.DataToAuthenticate := Value
432
  else
433
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
434
end;
435
436
procedure TDECCipherModes.SetExpectedAuthenticationTag(const Value: TBytes);
437
begin
438
  if (FMode = cmGCM) then
439
    FGCM.ExpectedAuthenticationTag := Value
440
  else
441
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
442
end;
443
444
procedure TDECCipherModes.SetAuthenticationResultBitLength(
445
  const Value: Integer);
446
begin
447
  if (FMode = cmGCM) then
448
    FGCM.AuthenticationTagBitLength := Value
449
  else
450
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
451
end;
452
453
procedure TDECCipherModes.Encode(const Source; var Dest; DataSize: Integer);
454
begin
455
  CheckState([csInitialized, csEncode, csDone]);
456
457
  case FMode of
458
    cmECBx:   EncodeECBx(@Source, @Dest, DataSize);
459
    cmCBCx:   EncodeCBCx(@Source, @Dest, DataSize);
460
    cmCTSx:   EncodeCTSx(@Source, @Dest, DataSize);
461
    {$IFDEF DEC3_CMCTS}
462
    cmCTS3:   EncodeCTS3(@Source, @Dest, DataSize);
463
    {$ENDIF DEC3_CMCTS}
464
    cmCFB8:   EncodeCFB8(@Source, @Dest, DataSize);
465
    cmCFBx:   EncodeCFBx(@Source, @Dest, DataSize);
466
    cmOFB8:   EncodeOFB8(@Source, @Dest, DataSize);
467
    cmOFBx:   EncodeOFBx(@Source, @Dest, DataSize);
468
    cmCFS8:   EncodeCFS8(@Source, @Dest, DataSize);
469
    cmCFSx:   EncodeCFSx(@Source, @Dest, DataSize);
470
    cmGCM :   FGCM.EncodeGCM(TBytes(@Source), TBytes(@Dest), DataSize);
471
//    cmGCM :   FGCM.EncodeGCM(@Source, @Dest, DataSize);
472
  end;
473
end;
474
475
procedure TDECCipherModes.EncodeECBx(Source, Dest: PByteArray; Size: Integer);
476
var
477
  I: Integer;
478
begin
479
  if Context.BlockSize = 1 then
480
  begin
481
    DoEncode(Source, Dest, Size);
482
    FState := csEncode;
483
  end
484
  else
485
  begin
486
    Dec(Size, FBufferSize);
487
    I := 0;
488
    while I <= Size do
489
    begin
490
      DoEncode(@Source[I], @Dest[I], FBufferSize);
491
      Inc(I, FBufferSize);
492
    end;
493
    Dec(Size, I - FBufferSize);
494
    if Size > 0 then
495
    begin
496
      if Size mod Context.BlockSize = 0 then
497
      begin
498
        DoEncode(@Source[I], @Dest[I], Size);
499
        FState := csEncode;
500
      end
501
      else
502
      begin
503
        FState := csPadded;
504
        ReportInvalidMessageLength(Self);
505
      end;
506
    end;
507
  end;
508
end;
509
510
procedure TDECCipherModes.EncodeOFB8(Source, Dest: PByteArray; Size: Integer);
511
var
512
  I: Integer;
513
begin
514
  I := 0;
515
  while I < Size do
516
  begin
517
    DoEncode(FFeedback, FBuffer, FBufferSize);
518
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
519
    FFeedback[FBufferSize - 1] := FBuffer[0];
520
    Dest[I] := Source[I] xor FBuffer[0];
521
    Inc(I);
522
  end;
523
  FState := csEncode;
524
end;
525
526
procedure TDECCipherModes.EncodeCFB8(Source, Dest: PByteArray; Size: Integer);
527
// CFB-8
528
var
529
  I: Integer;
530
begin
531
  I := 0;
532
  while I < Size do
533
  begin
534
    DoEncode(FFeedback, FBuffer, FBufferSize);
535
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
536
    Dest[I] := Source[I] xor FBuffer[0];
537
    FFeedback[FBufferSize - 1] := Dest[I];
538
    Inc(I);
539
  end;
540
  FState := csEncode;
541
end;
542
543
procedure TDECCipherModes.EncodeCFS8(Source, Dest: PByteArray; Size: Integer);
544
// CFS-8, CTS as CFB
545
var
546
  I: Integer;
547
begin
548
  I := 0;
549
  while I < Size do
550
  begin
551
    DoEncode(FFeedback, FBuffer, FBufferSize);
552
    Dest[I] := Source[I] xor FBuffer[0];
553
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
554
    FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Dest[I];
555
    Inc(I);
556
  end;
557
  FState := csEncode;
558
end;
559
560
procedure TDECCipherModes.EncodeCFBx(Source, Dest: PByteArray; Size: Integer);
561
// CFB-BlockSize
562
var
563
  I: Integer;
564
  F: PByteArray;
565
begin
566
  FState := csEncode;
567
  if FBufferIndex > 0 then
568
  begin
569
    I := FBufferSize - FBufferIndex;
570
    if I > Size then
571
      I := Size;
572
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
573
    Move(Dest[0], FFeedback[FBufferIndex], I);
574
    Inc(FBufferIndex, I);
575
    if FBufferIndex < FBufferSize then
576
      Exit;
577
    Dec(Size, I);
578
    Source := @Source[I];
579
    Dest := @Dest[I];
580
    FBufferIndex := 0
581
  end;
582
  Dec(Size, FBufferSize);
583
  F := FFeedback;
584
  I := 0;
585
  while I < Size do
586
  begin
587
    DoEncode(F, FBuffer, FBufferSize);
588
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
589
    F := @Dest[I];
590
    Inc(I, FBufferSize);
591
  end;
592
  if F <> FFeedback then
593
    Move(F^, FFeedback^, FBufferSize);
594
  Dec(Size, I - FBufferSize);
595
  if Size > 0 then
596
  begin
597
    DoEncode(FFeedback, FBuffer, FBufferSize);
598
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
599
    Move(Dest[I], FFeedback[0], Size);
600
    FBufferIndex := Size;
601
  end;
602
end;
603
604
procedure TDECCipherModes.EncodeOFBx(Source, Dest: PByteArray; Size: Integer);
605
// OFB-BlockSize
606
var
607
  I: Integer;
608
begin
609
  FState := csEncode;
610
  if FBufferIndex > 0 then
611
  begin
612
    I := FBufferSize - FBufferIndex;
613
    if I > Size then
614
      I := Size;
615
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]);
616
    Inc(FBufferIndex, I);
617
    if FBufferIndex < FBufferSize then
618
      Exit;
619
    Dec(Size, I);
620
    Source := @Source[I];
621
    Dest := @Dest[I];
622
    FBufferIndex := 0
623
  end;
624
  Dec(Size, FBufferSize);
625
  I := 0;
626
  while I < Size do
627
  begin
628
    DoEncode(FFeedback, FFeedback, FBufferSize);
629
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
630
    Inc(I, FBufferSize);
631
  end;
632
  Dec(Size, I - FBufferSize);
633
  if Size > 0 then
634
  begin
635
    DoEncode(FFeedback, FFeedback, FBufferSize);
636
    XORBuffers(Source[I], FFeedback[0], Size, Dest[I]);
637
    FBufferIndex := Size;
638
  end;
639
end;
640
641
function TDECCipherModes.GetDataToAuthenticate: TBytes;
642
begin
643
  if (FMode = cmGCM) then
644
    Result := FGCM.DataToAuthenticate
645
  else
646
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
647
end;
648
649
function TDECCipherModes.GetExpectedAuthenticationTag: TBytes;
650
begin
651
  if (FMode = cmGCM) then
652
    Result := FGCM.ExpectedAuthenticationTag
653
  else
654
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
655
end;
656
657
function TDECCipherModes.GetStandardAuthenticationTagBitLengths: TStandardBitLengths;
658
begin
659
  case FMode of
660
    cmGCM: Result := FGCM.GetStandardAuthenticationTagBitLengths;
661
    else
662
    begin
663
      SetLength(Result, 1);
664
      Result[0] := 0;
665
    end;
666
  end;
667
end;
668
669
function TDECCipherModes.GetAuthenticationResultBitLength: Integer;
670
begin
671
  if (FMode = cmGCM) then
672
    Result := FGCM.AuthenticationTagBitLength
673
  else
674
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
675
end;
676
677
function TDECCipherModes.GetCalcAuthenticatonResult: TBytes;
678
begin
679
  if (FMode = cmGCM) then
680
    Result := FGCM.CalculatedAuthenticationTag
681
  else
682
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
683
end;
684
685
procedure TDECCipherModes.InitMode;
686
begin
687
  if FMode = TCipherMode.cmGCM then
688
  begin
689
    if Context.BlockSize = 16 then
690
      FGCM := TGCM.Create
691
    else
692
      // GCM requires a cipher with 128 bit block size
693
      raise EDECCipherException.CreateResFmt(@sInvalidBlockSize,
694
                                             [128, System.TypInfo.GetEnumName(TypeInfo(TCipherMode),
695
                                             Integer(FMode))]);
696
  end
697
  else
698
    if Assigned(FGCM) then
699
      FreeAndNil(FGCM);
700
end;
701
702
procedure TDECCipherModes.EncodeCFSx(Source, Dest: PByteArray; Size: Integer);
703
// CFS-BlockSize
704
var
705
  I: Integer;
706
begin
707
  FState := csEncode;
708
  if FBufferIndex > 0 then
709
  begin
710
    I := FBufferSize - FBufferIndex;
711
    if I > Size then
712
      I := Size;
713
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
714
    XORBuffers(Dest[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]);
715
    Inc(FBufferIndex, I);
716
    if FBufferIndex < FBufferSize then
717
      Exit;
718
    Dec(Size, I);
719
    Source := @Source[I];
720
    Dest := @Dest[I];
721
    FBufferIndex := 0
722
  end;
723
  Dec(Size, FBufferSize);
724
  I := 0;
725
  while I < Size do
726
  begin
727
    DoEncode(FFeedback, FBuffer, FBufferSize);
728
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
729
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
730
    Inc(I, FBufferSize);
731
  end;
732
  Dec(Size, I - FBufferSize);
733
  if Size > 0 then
734
  begin
735
    DoEncode(FFeedback, FBuffer, FBufferSize);
736
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
737
    XORBuffers(Dest[I], FFeedback[0], Size, FFeedback[0]);
738
    FBufferIndex := Size;
739
  end;
740
end;
741
742
procedure TDECCipherModes.EncodeCBCx(Source, Dest: PByteArray; Size: Integer);
743
var
744
  F: PByteArray;
745
  I: Integer;
746
begin
747
  Dec(Size, FBufferSize);
748
  F := FFeedback;
749
  I := 0;
750
  while I <= Size do
751
  begin
752
    XORBuffers(Source[I], F[0], FBufferSize, Dest[I]);
753
    F := @Dest[I];
754
    DoEncode(F, F, FBufferSize);
755
    Inc(I, FBufferSize);
756
  end;
757
  if F <> FFeedback then
758
    Move(F[0], FFeedback[0], FBufferSize);
759
  Dec(Size, I - FBufferSize);
760
  if Size > 0 then
761
  begin  // padding
762
    EncodeCFB8(@Source[I], @Dest[I], Size);
763
    FState := csPadded;
764
  end
765
  else
766
    FState := csEncode;
767
end;
768
769
procedure TDECCipherModes.EncodeCTSx(Source, Dest: PByteArray; Size: Integer);
770
var
771
  I: Integer;
772
begin
773
  Dec(Size, FBufferSize);
774
  I := 0;
775
  while I <= Size do
776
  begin
777
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
778
    DoEncode(@Dest[I], @Dest[I], FBufferSize);
779
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
780
    Inc(I, FBufferSize);
781
  end;
782
  Dec(Size, I - FBufferSize);
783
  if Size > 0 then
784
  begin // padding
785
    EncodeCFS8(@Source[I], @Dest[I], Size);
786
    FState := csPadded;
787
  end
788
  else
789
    FState := csEncode;
790
end;
791
792
procedure TDECCipherModes.EncodeGCM(Source, Dest: PByteArray; Size: Integer);
793
var
794
  PlainText,
795
  CipherText : TBytes;
796
begin
797
  if (Size > 0) then
798
  begin
799
    PlainText  := TBytes(@Source^);
800
    CipherText := TBytes(@Dest^);
801
  end
802
  else
803
  begin
804
    SetLength(PlainText, 0);
805
    SetLength(CipherText, 0);
806
  end;
807
808
  FGCM.EncodeGCM(PlainText, CipherText, Size);
809
end;
810
811
{$IFDEF DEC3_CMCTS}
812
procedure TDECCipherModes.EncodeCTS3(Source, Dest: PByteArray; Size: Integer);
813
var
814
  I: Integer;
815
begin
816
  Dec(Size, FBufferSize);
817
  I := 0;
818
  while I <= Size do
819
  begin
820
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
821
    DoEncode(@Dest[I], @Dest[I], FBufferSize);
822
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
823
    Inc(I, FBufferSize);
824
  end;
825
  Dec(Size, I - FBufferSize);
826
  if Size > 0 then
827
  begin // padding
828
    EncodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx
829
    FState := csPadded;
830
  end
831
  else
832
    FState := csEncode;
833
end;
834
{$ENDIF DEC3_CMCTS}
835
836
procedure TDECCipherModes.Decode(const Source; var Dest; DataSize: Integer);
837
begin
838
  CheckState([csInitialized, csDecode, csDone]);
839
840
  case FMode of
841
    cmECBx:   DecodeECBx(@Source, @Dest, DataSize);
842
    cmCBCx:   DecodeCBCx(@Source, @Dest, DataSize);
843
    cmCTSx:   DecodeCTSx(@Source, @Dest, DataSize);
844
    {$IFDEF DEC3_CMCTS}
845
    cmCTS3:   DecodeCTS3(@Source, @Dest, DataSize);
846
    {$ENDIF DEC3_CMCTS}
847
    cmCFB8:   DecodeCFB8(@Source, @Dest, DataSize);
848
    cmCFBx:   DecodeCFBx(@Source, @Dest, DataSize);
849
    cmOFB8:   DecodeOFB8(@Source, @Dest, DataSize);
850
    cmOFBx:   DecodeOFBx(@Source, @Dest, DataSize);
851
    cmCFS8:   DecodeCFS8(@Source, @Dest, DataSize);
852
    cmCFSx:   DecodeCFSx(@Source, @Dest, DataSize);
853
    cmGCM :   FGCM.DecodeGCM(TBytes(@Source), TBytes(@Dest), DataSize);
854
  end;
855
end;
856
857
procedure TDECCipherModes.DecodeECBx(Source, Dest: PByteArray; Size: Integer);
858
var
859
  I: Integer;
860
begin
861
  if Context.BlockSize = 1 then
862
  begin
863
    DoDecode(Source, Dest, Size);
864
    FState := csDecode;
865
  end
866
  else
867
  begin
868
    Dec(Size, FBufferSize);
869
    I := 0;
870
    while I <= Size do
871
    begin
872
      DoDecode(@Source[I], @Dest[I], FBufferSize);
873
      Inc(I, FBufferSize);
874
    end;
875
    Dec(Size, I - FBufferSize);
876
    if Size > 0 then
877
    begin
878
      if Size mod Context.BlockSize = 0 then
879
      begin
880
        DoDecode(@Source[I], @Dest[I], Size);
881
        FState := csDecode;
882
      end
883
      else
884
      begin
885
        FState := csPadded;
886
        ReportInvalidMessageLength(Self);
887
      end;
888
    end;
889
  end;
890
end;
891
892
procedure TDECCipherModes.DecodeGCM(Source, Dest: PByteArray; Size: Integer);
893
var
894
  PlainText,
895
  CipherText : TBytes;
896
begin
897
  if (Size > 0) then
898
  begin
899
    PlainText  := TBytes(@Source^);
900
    CipherText := TBytes(@Dest^);
901
  end
902
  else
903
  begin
904
    SetLength(PlainText, 0);
905
    SetLength(CipherText, 0);
906
  end;
907
908
  FGCM.DecodeGCM(PlainText, CipherText, Size);
909
end;
910
911
procedure TDECCipherModes.DecodeCFB8(Source, Dest: PByteArray; Size: Integer);
912
// CFB-8
913
var
914
  I: Integer;
915
begin
916
  I := 0;
917
  while I < Size do
918
  begin
919
    DoEncode(FFeedback, FBuffer, FBufferSize);
920
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
921
    FFeedback[FBufferSize - 1] := Source[I];
922
    Dest[I] := Source[I] xor FBuffer[0];
923
    Inc(I);
924
  end;
925
  FState := csDecode;
926
end;
927
928
procedure TDECCipherModes.DecodeOFB8(Source, Dest: PByteArray; Size: Integer);
929
// same as EncodeOFB
930
var
931
  I: Integer;
932
begin
933
  I := 0;
934
  while I < Size do
935
  begin
936
    DoEncode(FFeedback, FBuffer, FBufferSize);
937
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
938
    FFeedback[FBufferSize - 1] := FBuffer[0];
939
    Dest[I] := Source[I] xor FBuffer[0];
940
    Inc(I);
941
  end;
942
  FState := csDecode;
943
end;
944
945
procedure TDECCipherModes.DecodeCFS8(Source, Dest: PByteArray; Size: Integer);
946
var
947
  I: Integer;
948
begin
949
  I := 0;
950
  while I < Size do
951
  begin
952
    DoEncode(FFeedback, FBuffer, FBufferSize);
953
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
954
    FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Source[I];
955
    Dest[I] := Source[I] xor FBuffer[0];
956
    Inc(I);
957
  end;
958
  FState := csDecode;
959
end;
960
961
procedure TDECCipherModes.DecodeCFBx(Source, Dest: PByteArray; Size: Integer);
962
// CFB-BlockSize
963
var
964
  I: Integer;
965
  F: PByteArray;
966
begin
967
  FState := csDecode;
968
  if FBufferIndex > 0 then
969
  begin // remaining bytes of last decode
970
    I := FBufferSize - FBufferIndex;
971
    if I > Size then
972
      I := Size;
973
    Move(Source[0], FFeedback[FBufferIndex], I);
974
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
975
    Inc(FBufferIndex, I);
976
    if FBufferIndex < FBufferSize then
977
      Exit;
978
    Dec(Size, I);
979
    Source := @Source[I];
980
    Dest := @Dest[I];
981
    FBufferIndex := 0
982
  end;
983
  // process chunks of FBufferSize bytes
984
  Dec(Size, FBufferSize);
985
  I := 0;
986
  if Source <> Dest then
987
  begin
988
    F := FFeedback;
989
    while I < Size do
990
    begin
991
      DoEncode(F, FBuffer, FBufferSize);
992
      XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
993
      F := @Source[I];
994
      Inc(I, FBufferSize);
995
    end;
996
    if F <> FFeedback then
997
      Move(F^, FFeedback^, FBufferSize);
998
  end
999
  else
1000
    while I < Size do
1001
    begin
1002
      DoEncode(FFeedback, FBuffer, FBufferSize);
1003
      Move(Source[I], FFeedback[0], FBufferSize);
1004
      XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
1005
      Inc(I, FBufferSize);
1006
    end;
1007
  Dec(Size, I - FBufferSize);
1008
  if Size > 0 then
1009
  begin // remaining bytes
1010
    DoEncode(FFeedback, FBuffer, FBufferSize);
1011
    Move(Source[I], FFeedback[0], Size);
1012
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
1013
    FBufferIndex := Size;
1014
  end;
1015
end;
1016
1017
procedure TDECCipherModes.DecodeOFBx(Source, Dest: PByteArray; Size: Integer);
1018
// OFB-BlockSize, same as EncodeOFBx
1019
var
1020
  I: Integer;
1021
begin
1022
  FState := csDecode;
1023
  if FBufferIndex > 0 then
1024
  begin
1025
    I := FBufferSize - FBufferIndex;
1026
    if I > Size then
1027
      I := Size;
1028
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]);
1029
    Inc(FBufferIndex, I);
1030
    if FBufferIndex < FBufferSize then
1031
      Exit;
1032
    Dec(Size, I);
1033
    Source := @Source[I];
1034
    Dest := @Dest[I];
1035
    FBufferIndex := 0
1036
  end;
1037
  Dec(Size, FBufferSize);
1038
  I := 0;
1039
  while I < Size do
1040
  begin
1041
    DoEncode(FFeedback, FFeedback, FBufferSize);
1042
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
1043
    Inc(I, FBufferSize);
1044
  end;
1045
  Dec(Size, I - FBufferSize);
1046
  if Size > 0 then
1047
  begin
1048
    DoEncode(FFeedback, FFeedback, FBufferSize);
1049
    XORBuffers(Source[I], FFeedback[0], Size, Dest[I]);
1050
    FBufferIndex := Size;
1051
  end;
1052
end;
1053
1054
destructor TDECCipherModes.Destroy;
1055
begin
1056
  FGCM.Free;
1057
1058
  inherited;
1059
end;
1060
1061
procedure TDECCipherModes.Done;
1062
begin
1063
  inherited;
1064
1065
  if (FMode = cmGCM) then
1066
  begin
1067
    if (length(FGCM.ExpectedAuthenticationTag) > 0) and
1068
       (not IsEqual(FGCM.ExpectedAuthenticationTag, FGCM.CalculatedAuthenticationTag)) then
1069
      raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue);
1070
  end;
1071
end;
1072
1073
procedure TDECCipherModes.OnAfterInitVectorInitialization(const OriginalInitVector: TBytes);
1074
begin
1075
  inherited;
1076
1077
  if (FMode = cmGCM) then
1078
    FGCM.Init(self.DoEncode, OriginalInitVector);
1079
end;
1080
1081
procedure TDECCipherModes.DecodeCFSx(Source, Dest: PByteArray; Size: Integer);
1082
// CFS-BlockSize
1083
var
1084
  I: Integer;
1085
begin
1086
  FState := csDecode;
1087
  if FBufferIndex > 0 then
1088
  begin // remaining bytes of last decode
1089
    I := FBufferSize - FBufferIndex;
1090
    if I > Size then
1091
      I := Size;
1092
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]);
1093
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
1094
    Inc(FBufferIndex, I);
1095
    if FBufferIndex < FBufferSize then
1096
      Exit;
1097
    Dec(Size, I);
1098
    Source := @Source[I];
1099
    Dest := @Dest[I];
1100
    FBufferIndex := 0
1101
  end;
1102
  // process chunks of FBufferSize bytes
1103
  Dec(Size, FBufferSize);
1104
  I := 0;
1105
  while I < Size do
1106
  begin
1107
    DoEncode(FFeedback, FBuffer, FBufferSize);
1108
    XORBuffers(Source[I], FFeedback[0], FBufferSize, FFeedback[0]);
1109
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
1110
    Inc(I, FBufferSize);
1111
  end;
1112
  Dec(Size, I - FBufferSize);
1113
  if Size > 0 then
1114
  begin // remaining bytes
1115
    DoEncode(FFeedback, FBuffer, FBufferSize);
1116
    XORBuffers(Source[I], FFeedback[0], Size, FFeedback[0]);
1117
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
1118
    FBufferIndex := Size;
1119
  end;
1120
end;
1121
1122
procedure TDECCipherModes.DecodeCBCx(Source, Dest: PByteArray; Size: Integer);
1123
var
1124
  I: Integer;
1125
  F, B, T: PByteArray;
1126
begin
1127
  Dec(Size, FBufferSize);
1128
  F := FFeedback;
1129
  I := 0;
1130
  if Source = Dest then
1131
  begin
1132
    B := FBuffer;
1133
    while I <= Size do
1134
    begin
1135
      Move(Source[I], B[0], FBufferSize);
1136
      DoDecode(@Source[I], @Source[I], FBufferSize);
1137
      XORBuffers(Source[I], F[0], FBufferSize, Source[I]);
1138
      T := F;
1139
      F := B;
1140
      B := T;
1141
      Inc(I, FBufferSize);
1142
    end;
1143
  end
1144
  else
1145
  begin
1146
    while I <= Size do
1147
    begin
1148
      DoDecode(@Source[I], @Dest[I], FBufferSize);
1149
      XORBuffers(F[0], Dest[I], FBufferSize, Dest[I]);
1150
      F := @Source[I];
1151
      Inc(I, FBufferSize);
1152
    end;
1153
  end;
1154
  if F <> FFeedback then
1155
    Move(F[0], FFeedback[0], FBufferSize);
1156
  Dec(Size, I - FBufferSize);
1157
  if Size > 0 then
1158
  begin
1159
    DecodeCFB8(@Source[I], @Dest[I], Size);
1160
    FState := csPadded;
1161
  end
1162
  else
1163
    FState := csDecode;
1164
end;
1165
1166
procedure TDECCipherModes.DecodeCTSx(Source, Dest: PByteArray; Size: Integer);
1167
var
1168
  I: Integer;
1169
  F, B, T: PByteArray;
1170
begin
1171
  Dec(Size, FBufferSize);
1172
  F := FFeedback;
1173
  B := FBuffer;
1174
  I := 0;
1175
  while I <= Size do
1176
  begin
1177
    XORBuffers(Source[I], F[0], FBufferSize, B[0]);
1178
    DoDecode(@Source[I], @Dest[I], FBufferSize);
1179
    XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]);
1180
    T := B;
1181
    B := F;
1182
    F := T;
1183
    Inc(I, FBufferSize);
1184
  end;
1185
  if F <> FFeedback then
1186
    Move(F[0], FFeedback[0], FBufferSize);
1187
  Dec(Size, I - FBufferSize);
1188
  if Size > 0 then
1189
  begin
1190
    DecodeCFS8(@Source[I], @Dest[I], Size);
1191
    FState := csPadded;
1192
  end
1193
  else
1194
    FState := csDecode;
1195
end;
1196
1197
{$IFDEF DEC3_CMCTS}
1198
procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer);
1199
var
1200
  I: Integer;
1201
  F, B, T: PByteArray;
1202
begin
1203
  Dec(Size, FBufferSize);
1204
  F := FFeedback;
1205
  B := FBuffer;
1206
  I := 0;
1207
  while I <= Size do
1208
  begin
1209
    XORBuffers(Source[I], F[0], FBufferSize, B[0]);
1210
    DoDecode(@Source[I], @Dest[I], FBufferSize);
1211
    XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]);
1212
    T := B;
1213
    B := F;
1214
    F := T;
1215
    Inc(I, FBufferSize);
1216
  end;
1217
  if F <> FFeedback then
1218
    Move(F[0], FFeedback[0], FBufferSize);
1219
  Dec(Size, I - FBufferSize);
1220
  if Size > 0 then
1221
  begin
1222
    DecodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx
1223
    FState := csPadded;
1224
  end
1225
  else
1226
    FState := csDecode;
1227
end;
1228
{$ENDIF DEC3_CMCTS}
1229
1230
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherModes (D:\Projekte\DECGitMaster\Source\DECCipherModes.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherModes.pas

+
Number of lines covered378
Number of lines with code gen457
Line coverage82%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherModes;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils,
26
  {$ELSE}
27
  System.SysUtils,
28
  {$ENDIF}
29
  DECTypes, DECCipherBase, DECCipherModesGCM;
30
31
type
32
  /// <summary>
33
  ///   Most ciphers are block oriented and thus work on blocks of a fixed size.
34
  ///   In order to not encrypt each block separately without any link to his
35
  ///   predecessor and sucessor, which would make attacks on the encrypted data
36
  ///   easier, each block should be linked with his predecessor (or the
37
  ///   initialization vector). This class implements the various supported
38
  ///   algorithms for linking blocks.
39
  /// </summary>
40
  TDECCipherModes = class(TDECCipher)
41
  strict private
42
    /// <summary>
43
    ///   Returns the data which shall get authenticated when using a cipher
44
    ///   mode which provides authentication support as well.
45
    /// </summary>
46
    /// <returns>
47
    ///   Data to be authenticated. Raises an EDECCipherException if this is
48
    ///   called for a cipher mode not supporting authentication.
49
    /// </returns>
50
    function  GetDataToAuthenticate: TBytes;
51
    /// <summary>
52
    ///   Returns the length of the resulting authentication value if a
53
    ///   cipher mode which provides authentication support as well is used.
54
    /// </summary>
55
    /// <returns>
56
    ///   Length of the authentication result in bit. Raises an
57
    ///   EDECCipherException if this is called for a cipher mode not supporting
58
    ///   authentication.
59
    /// </returns>
60
    function  GetAuthenticationResultBitLength: Integer;
61
    /// <summary>
62
    ///   Returns the value calculated over the data to be authenticated if a
63
    ///   cipher mode which provides authentication support as well is used.
64
    ///   The value will be returned even if decryption resulted in a wrong value.
65
    ///   A wrong authentication result on decryption is signalled via exception.
66
    /// </summary>
67
    /// <returns>
68
    ///   Result of the authentication. Raises an EDECCipherException if this is
69
    ///   called for a cipher mode not supporting authentication.
70
    /// </returns>
71
    function  GetCalcAuthenticatonResult: TBytes;
72
    /// <summary>
73
    ///   Defines the data which shall get authenticated when using a cipher
74
    ///   mode which provides authentication support as well.
75
    /// </summary>
76
    /// <param name="Value">
77
    ///   Data to be authenticated. Raises an EDECCipherException if this is
78
    ///   called for a cipher mode not supporting authentication.
79
    /// </param>
80
    procedure SetDataToAuthenticate(const Value: TBytes);
81
    /// <summary>
82
    ///   Sets the length of the resulting authentication value if a
83
    ///   cipher mode which provides authentication support as well is used.
84
    /// </summary>
85
    /// <param name="Value">
86
    ///   Length of the authentication result in bit. Raises an
87
    ///   EDECCipherException if this is called for a cipher mode not supporting
88
    ///   authentication.
89
    /// </param>
90
    procedure SetAuthenticationResultBitLength(const Value: Integer);
91
  strict private
92
    /// <summary>
93
    ///   Implementation of the Galois counter mode. Only created when gmGCM is
94
    ///   set as mode.
95
    /// </summary>
96
    FGCM : TGCM;
97
    /// <summary>
98
    ///   Returns the value set as expected authenthication value for ciphers
99
    ///   providing authehtication features as well. Raises an
100
    ///   EDECCipherException if this is called for a cipher mode not supporting
101
    ///   authentication.
102
    /// </summary>
103
    function GetExpectedAuthenticationTag: TBytes;
104
    /// <summary>
105
    ///   Sets the value used as expected authenthication value when decrypting
106
    ///   and a cipher providing authehtication features is being used. Raises an
107
    ///   EDECCipherException if this is called for a cipher mode not supporting
108
    ///   authentication.
109
    /// </summary>
110
    procedure SetExpectedAuthenticationTag(const Value: TBytes); protected
111
    /// <summary>
112
    ///   Raises an EDECCipherException exception and provides the correct value
113
    ///   for block size in that message
114
    /// </summary>
115
    procedure ReportInvalidMessageLength(Cipher: TDECCipher);
116
    /// <summary>
117
    ///   Allows to run code after the initialization vector has been initialized
118
    ///   inside the Init call, which is after DoInit has been called.
119
    /// </summary>
120
    /// <param name="OriginalIVector">
121
    ///   Value of the init vector as originally passed to the Init call without
122
    ///   any initialization steps done to/on it
123
    /// </param>
124
    procedure OnAfterInitVectorInitialization(const OriginalInitVector: TBytes); override;
125
    /// <summary>
126
    ///   Electronic Code Book
127
    ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize
128
    ///   and should be used only in 1-byte Streamciphers.
129
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
130
    ///   Blockcipher that's equal to Cipher.BlockSize.
131
    /// </summary>
132
    /// <remarks>
133
    ///   This mode should not be used in practice, as it makes the encrypted
134
    ///   message vulnerable to certain attacks without knowing the encryption key
135
    /// </remarks>
136
    procedure EncodeECBx(Source, Dest: PByteArray; Size: Integer); virtual;
137
    /// <summary>
138
    ///   8bit Output Feedback mode, needs no padding
139
    /// </summary>
140
    procedure EncodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual;
141
    /// <summary>
142
    ///   8 bit Cipher Feedback mode, needs no padding and works on 8 bit
143
    ///   Feedback Shift Registers.
144
    /// </summary>
145
    procedure EncodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual;
146
    /// <summary>
147
    ///   8Bit CFS, double Cipher Feedback mode (CFB), needs no padding and
148
    ///   works on 8 bit Feedback Shift Registers.
149
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
150
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
151
    ///   inputstream into Feedback register.
152
    /// </summary>
153
    procedure EncodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual;
154
    /// <summary>
155
    ///   Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding
156
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
157
    ///   Blockcipher that's equal to Cipher.BlockSize.
158
    /// </summary>
159
    procedure EncodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual;
160
    /// <summary>
161
    ///   Output Feedback mode on Blocksize of Cipher, needs no padding and
162
    ///   works on 8 bit Feedback Shift Registers.
163
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
164
    ///   Blockcipher that's equal to Cipher.BlockSize.
165
    /// </summary>
166
    procedure EncodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual;
167
    /// <summary>
168
    ///   double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding.
169
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
170
    ///   Blockcipher that's equal to Cipher.BlockSize.
171
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
172
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
173
    ///   inputstream into Feedback register.
174
    /// </summary>
175
    procedure EncodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual;
176
    /// <summary>
177
    ///   Cipher Block Chaining, with CFB8 padding of truncated final block
178
    ///   It needs no external padding, because internally the last
179
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
180
    ///   cannot be used to process any more data. If needed to process chunks of
181
    ///   data then each chunk must be aligned to Cipher.BufferSize bytes.
182
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
183
    ///   Blockcipher that's equal to Cipher.BlockSize.
184
    /// </summary>
185
    procedure EncodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual;
186
    /// <summary>
187
    ///   double CBC, with CFS8 padding of truncated final block
188
    ///   It needs no external padding, because internally the last
189
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
190
    ///   cannot be used to process any more data. If needed to process chunks of
191
    ///   data then each chunk must be aligned to Cipher.BufferSize bytes.
192
    ///   This one works on Blocks of Cipher.BufferSize bytes, when using a
193
    ///   Blockcipher that's equal to Cipher.BlockSize.
194
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
195
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
196
    ///   inputstream into Feedback register.
197
    /// </summary>
198
    procedure EncodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual;
199
    /// <summary>
200
    ///   Galois Counter Mode: encryption with addtional optional authentication.
201
    ///   Implemented in its own unit, but needed here to be callable even if
202
    ///   source length is 0.
203
    /// </summary>
204
    procedure EncodeGCM(Source, Dest: PByteArray; Size: Integer); virtual;
205
    {$IFDEF DEC3_CMCTS}
206
    /// <summary>
207
    ///   double CBC, with
208
    ///   for DEC 3.0 compatibility only
209
    ///   This is a proprietary mode developed by Frederik Winkelsdorf. It
210
    ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
211
    ///   Useful when converting projects that previously used the old DEC v3.0. It
212
    ///   has the same restrictions for external padding and chunk processing as
213
    ///   cmCTSx has. It has a less secure padding of the truncated final block.
214
    ///   (to enable it see DECOptions.inc)
215
    /// </summary>
216
    procedure EncodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual;
217
    {$ENDIF}
218
    /// <summary>
219
    ///   Electronic Code Book
220
    ///   Mode cmECBx needs message padding to be a multiple of Cipher.BlockSize
221
    ///   and should be used only in 1-byte Streamciphers.
222
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
223
    ///   blockcipher that's equal to Cipher.BlockSize.
224
    /// </summary>
225
    procedure DecodeECBx(Source, Dest: PByteArray; Size: Integer); virtual;
226
    /// <summary>
227
    ///   8 bit Output Feedback mode, needs no padding
228
    /// </summary>
229
    procedure DecodeOFB8(Source, Dest: PByteArray; Size: Integer); virtual;
230
    /// <summary>
231
    ///   8 bit Cipher Feedback mode, needs no padding and works on 8 bit
232
    ///   Feedback Shift Registers.
233
    /// </summary>
234
    procedure DecodeCFB8(Source, Dest: PByteArray; Size: Integer); virtual;
235
    /// <summary>
236
    ///   8 Bit CFS, double Cipher Feedback mode (CFB), needs no padding and
237
    ///   works on 8 bit Feedback Shift Registers.
238
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
239
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
240
    ///   inputstream into Feedback register.
241
    /// </summary>
242
    procedure DecodeCFS8(Source, Dest: PByteArray; Size: Integer); virtual;
243
    /// <summary>
244
    ///   Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding
245
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
246
    ///   blockcipher that's equal to Cipher.BlockSize.
247
    /// </summary>
248
    procedure DecodeCFBx(Source, Dest: PByteArray; Size: Integer); virtual;
249
    /// <summary>
250
    ///   Output Feedback mode on Blocksize of Cipher, needs no padding and
251
    ///   works on 8 bit Feedback Shift Registers.
252
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
253
    ///   blockcipher that's equal to Cipher.BlockSize.
254
    /// </summary>
255
    procedure DecodeOFBx(Source, Dest: PByteArray; Size: Integer); virtual;
256
    /// <summary>
257
    ///   double Cipher Feedback mode (CFB) on Blocksize of Cipher, needs no padding.
258
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
259
    ///   blockcipher that's equal to Cipher.BlockSize.
260
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
261
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
262
    ///   inputstream into Feedback register.
263
    /// </summary>
264
    procedure DecodeCFSx(Source, Dest: PByteArray; Size: Integer); virtual;
265
    /// <summary>
266
    ///   Cipher Block Chaining, with CFB8 padding of truncated final block.
267
    ///   It needs no external padding, because internally the last
268
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these modes
269
    ///   cannot be used to process any more data. If needed to process chunks of
270
    ///   data then each chunk must be algined to Cipher.BufferSize bytes.
271
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
272
    ///   blockcipher that's equal to Cipher.BlockSize.
273
    /// </summary>
274
    procedure DecodeCBCx(Source, Dest: PByteArray; Size: Integer); virtual;
275
    /// <summary>
276
    ///   double CBC, with CFS8 padding of truncated final block
277
    ///   It needs no external padding, because internally the last
278
    ///   truncated block is padded by cmCFS8 or cmCFB8. After padding these Modes
279
    ///   cannot be used to process any more data. If needed to process chunks of
280
    ///   data then each chunk must be algined to Cipher.BufferSize bytes.
281
    ///   This one works on blocks of Cipher.BufferSize bytes, when using a
282
    ///   blockcipher that's equal to Cipher.BlockSize.
283
    ///   This one is a proprietary mode developed by Hagen Reddmann. This mode
284
    ///   works as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the
285
    ///   inputstream into feedback register.
286
    /// </summary>
287
    procedure DecodeCTSx(Source, Dest: PByteArray; Size: Integer); virtual;
288
    /// <summary>
289
    ///   Galois Counter Mode, details are implemented in DECCipherModesGCM
290
    /// </summary>
291
    procedure DecodeGCM(Source, Dest: PByteArray; Size: Integer); virtual;
292
    {$IFDEF DEC3_CMCTS}
293
    /// <summary>
294
    ///   double CBC
295
    ///   This is a proprietary mode developed by Frederik Winkelsdorf. It
296
    ///   replaces the CFS8 padding of the truncated final block with a CFSx padding.
297
    ///   Useful when converting projects that previously used the old DEC v3.0. It
298
    ///   has the same restrictions for external padding and chunk processing as
299
    ///   cmCTSx has. It has a less secure padding of the truncated final block.
300
    ///   (to enable it see DECOptions.inc)
301
    /// </summary>
302
    /// <remarks>
303
    ///   For DEC 3.0 compatibility only
304
    /// </remarks>
305
    procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer); virtual;
306
    {$ENDIF}
307
    /// <summary>
308
    ///   When setting mode to GCM the GCM implementing class instance needs to
309
    ///   be created
310
    /// </summary>
311
    procedure InitMode; override;
312
  public
313
    /// <summary>
314
    ///   Frees, if necessary, internal objects
315
    /// </summary>
316
    destructor Destroy; override;
317
    /// <summary>
318
    ///   Encrypts a given block of data
319
    /// </summary>
320
    /// <param name="Source">
321
    ///   Data to be encrypted
322
    /// </param>
323
    /// <param name="Dest">
324
    ///   Data after encryption
325
    /// </param>
326
    /// <param name="DataSize">
327
    ///   Size of the data the Source parameter points to in byte
328
    /// </param>
329
    procedure Encode(const Source; var Dest; DataSize: Integer);
330
    /// <summary>
331
    ///   Decrypts a given block of data
332
    /// </summary>
333
    /// <param name="Source">
334
    ///   Data to be Decrypted
335
    /// </param>
336
    /// <param name="Dest">
337
    ///   Data after decryption
338
    /// </param>
339
    /// <param name="DataSize">
340
    ///   Size of the data the Source parameter points to in byte
341
    /// </param>
342
    procedure Decode(const Source; var Dest; DataSize: Integer);
343
344
    /// <summary>
345
    ///   Properly finishes the cryptographic operation. It needs to be called
346
    ///   at the end of encrypting or decrypting data, otherwise the last block
347
    ///   or last byte of the data will not be properly processed.
348
    /// </summary>
349
    procedure Done; override;
350
351
    /// <summary>
352
    ///   Returns a list of authentication tag lengs explicitely specified by
353
    ///   the official speciication of the standard.
354
    /// </summary>
355
    /// <returns>
356
    ///   List of bit lengths. If the cipher mode used is not an authenticated
357
    ///   one, the array will just contain a single value of 0.
358
    /// </returns>
359
    function GetStandardAuthenticationTagBitLengths:TStandardBitLengths;
360
361
    /// <summary>
362
    ///   Some block chaining modes have the ability to authenticate the message
363
    ///   in addition to encrypting it. This property contains the data which
364
    ///   shall be authenticated in parallel to the encryption.
365
    /// </summary>
366
    property DataToAuthenticate : TBytes
367
      read   GetDataToAuthenticate
368
      write  SetDataToAuthenticate;
369
370
    /// <summary>
371
    ///   Some block chaining modes have the ability to authenticate the message
372
    ///   in addition to encrypting it.
373
    ///   Represents the length of AuthenticatonValue in bit, values as per
374
    ///   specification are: 128, 120, 112, 104, or 96 bit. For certain applications,
375
    ///   they may be 64 or 32 as well, but the use of these two tag lengths
376
    ///   constrains the length of the input data and the lifetime of the key.
377
    /// </summary>
378
    property AuthenticationResultBitLength : Integer
379
      read   GetAuthenticationResultBitLength
380
      write  SetAuthenticationResultBitLength;
381
    /// <summary>
382
    ///   Some block chaining modes have the ability to authenticate the message
383
    ///   in addition to encrypting it. This property contains the generated
384
    ///   authentication tag. Raises an EDECCipherException if this is
385
    ///   called for a cipher mode not supporting authentication.
386
    /// </summary>
387
    property CalculatedAuthenticationResult  : TBytes
388
      read   GetCalcAuthenticatonResult;
389
390
    /// <summary>
391
    ///   Expected authentication tag value, will be compared with actual value
392
    ///   when decryption finished. Raises an EDECCipherException if this is
393
    ///   called for a cipher mode not supporting authentication.
394
    /// </summary>
395
    property ExpectedAuthenticationTag : TBytes
396
      read   GetExpectedAuthenticationTag
397
      write  SetExpectedAuthenticationTag;
398
  end;
399
400
implementation
401
402
uses
403
  {$IFDEF FPC}
404
  TypInfo,
405
  {$ELSE}
406
  System.TypInfo,
407
  {$ENDIF}
408
  DECUtil;
409
410
resourcestring
411
  sInvalidMessageLength = 'Message length for mode %0:s must be a multiple of %1:d bytes';
412
  sInvalidBlockSize     = 'Block size must be %0:d bit for the selected mode %1:s';
413
  sInvalidModeForMethod = 'Invalid mode for this method. Mode must be %0:s';
414
415
  /// <summary>
416
  ///   Calculated authentication value on decryption does not match expected one
417
  /// </summary>
418
  sInvalidAuthenticationValue = 'Authentication value of decryption is invalid';
419
420
procedure TDECCipherModes.ReportInvalidMessageLength(Cipher: TDECCipher);
421
begin
422
  raise EDECCipherException.CreateResFmt(@sInvalidMessageLength,
423
                                         [System.TypInfo.GetEnumName(TypeInfo(TCipherMode),
424
                                         Integer(Cipher.Mode)),
425
                                         Cipher.Context.BlockSize]);
426
end;
427
428
procedure TDECCipherModes.SetDataToAuthenticate(const Value: TBytes);
429
begin
430
  if (FMode = cmGCM) then
431
    FGCM.DataToAuthenticate := Value
432
  else
433
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
434
end;
435
436
procedure TDECCipherModes.SetExpectedAuthenticationTag(const Value: TBytes);
437
begin
438
  if (FMode = cmGCM) then
439
    FGCM.ExpectedAuthenticationTag := Value
440
  else
441
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
442
end;
443
444
procedure TDECCipherModes.SetAuthenticationResultBitLength(
445
  const Value: Integer);
446
begin
447
  if (FMode = cmGCM) then
448
    FGCM.AuthenticationTagBitLength := Value
449
  else
450
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
451
end;
452
453
procedure TDECCipherModes.Encode(const Source; var Dest; DataSize: Integer);
454
begin
455
  CheckState([csInitialized, csEncode, csDone]);
456
457
  case FMode of
458
    cmECBx:   EncodeECBx(@Source, @Dest, DataSize);
459
    cmCBCx:   EncodeCBCx(@Source, @Dest, DataSize);
460
    cmCTSx:   EncodeCTSx(@Source, @Dest, DataSize);
461
    {$IFDEF DEC3_CMCTS}
462
    cmCTS3:   EncodeCTS3(@Source, @Dest, DataSize);
463
    {$ENDIF DEC3_CMCTS}
464
    cmCFB8:   EncodeCFB8(@Source, @Dest, DataSize);
465
    cmCFBx:   EncodeCFBx(@Source, @Dest, DataSize);
466
    cmOFB8:   EncodeOFB8(@Source, @Dest, DataSize);
467
    cmOFBx:   EncodeOFBx(@Source, @Dest, DataSize);
468
    cmCFS8:   EncodeCFS8(@Source, @Dest, DataSize);
469
    cmCFSx:   EncodeCFSx(@Source, @Dest, DataSize);
470
    cmGCM :   FGCM.EncodeGCM(TBytes(@Source), TBytes(@Dest), DataSize);
471
//    cmGCM :   FGCM.EncodeGCM(@Source, @Dest, DataSize);
472
  end;
473
end;
474
475
procedure TDECCipherModes.EncodeECBx(Source, Dest: PByteArray; Size: Integer);
476
var
477
  I: Integer;
478
begin
479
  if Context.BlockSize = 1 then
480
  begin
481
    DoEncode(Source, Dest, Size);
482
    FState := csEncode;
483
  end
484
  else
485
  begin
486
    Dec(Size, FBufferSize);
487
    I := 0;
488
    while I <= Size do
489
    begin
490
      DoEncode(@Source[I], @Dest[I], FBufferSize);
491
      Inc(I, FBufferSize);
492
    end;
493
    Dec(Size, I - FBufferSize);
494
    if Size > 0 then
495
    begin
496
      if Size mod Context.BlockSize = 0 then
497
      begin
498
        DoEncode(@Source[I], @Dest[I], Size);
499
        FState := csEncode;
500
      end
501
      else
502
      begin
503
        FState := csPadded;
504
        ReportInvalidMessageLength(Self);
505
      end;
506
    end;
507
  end;
508
end;
509
510
procedure TDECCipherModes.EncodeOFB8(Source, Dest: PByteArray; Size: Integer);
511
var
512
  I: Integer;
513
begin
514
  I := 0;
515
  while I < Size do
516
  begin
517
    DoEncode(FFeedback, FBuffer, FBufferSize);
518
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
519
    FFeedback[FBufferSize - 1] := FBuffer[0];
520
    Dest[I] := Source[I] xor FBuffer[0];
521
    Inc(I);
522
  end;
523
  FState := csEncode;
524
end;
525
526
procedure TDECCipherModes.EncodeCFB8(Source, Dest: PByteArray; Size: Integer);
527
// CFB-8
528
var
529
  I: Integer;
530
begin
531
  I := 0;
532
  while I < Size do
533
  begin
534
    DoEncode(FFeedback, FBuffer, FBufferSize);
535
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
536
    Dest[I] := Source[I] xor FBuffer[0];
537
    FFeedback[FBufferSize - 1] := Dest[I];
538
    Inc(I);
539
  end;
540
  FState := csEncode;
541
end;
542
543
procedure TDECCipherModes.EncodeCFS8(Source, Dest: PByteArray; Size: Integer);
544
// CFS-8, CTS as CFB
545
var
546
  I: Integer;
547
begin
548
  I := 0;
549
  while I < Size do
550
  begin
551
    DoEncode(FFeedback, FBuffer, FBufferSize);
552
    Dest[I] := Source[I] xor FBuffer[0];
553
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
554
    FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Dest[I];
555
    Inc(I);
556
  end;
557
  FState := csEncode;
558
end;
559
560
procedure TDECCipherModes.EncodeCFBx(Source, Dest: PByteArray; Size: Integer);
561
// CFB-BlockSize
562
var
563
  I: Integer;
564
  F: PByteArray;
565
begin
566
  FState := csEncode;
567
  if FBufferIndex > 0 then
568
  begin
569
    I := FBufferSize - FBufferIndex;
570
    if I > Size then
571
      I := Size;
572
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
573
    Move(Dest[0], FFeedback[FBufferIndex], I);
574
    Inc(FBufferIndex, I);
575
    if FBufferIndex < FBufferSize then
576
      Exit;
577
    Dec(Size, I);
578
    Source := @Source[I];
579
    Dest := @Dest[I];
580
    FBufferIndex := 0
581
  end;
582
  Dec(Size, FBufferSize);
583
  F := FFeedback;
584
  I := 0;
585
  while I < Size do
586
  begin
587
    DoEncode(F, FBuffer, FBufferSize);
588
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
589
    F := @Dest[I];
590
    Inc(I, FBufferSize);
591
  end;
592
  if F <> FFeedback then
593
    Move(F^, FFeedback^, FBufferSize);
594
  Dec(Size, I - FBufferSize);
595
  if Size > 0 then
596
  begin
597
    DoEncode(FFeedback, FBuffer, FBufferSize);
598
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
599
    Move(Dest[I], FFeedback[0], Size);
600
    FBufferIndex := Size;
601
  end;
602
end;
603
604
procedure TDECCipherModes.EncodeOFBx(Source, Dest: PByteArray; Size: Integer);
605
// OFB-BlockSize
606
var
607
  I: Integer;
608
begin
609
  FState := csEncode;
610
  if FBufferIndex > 0 then
611
  begin
612
    I := FBufferSize - FBufferIndex;
613
    if I > Size then
614
      I := Size;
615
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]);
616
    Inc(FBufferIndex, I);
617
    if FBufferIndex < FBufferSize then
618
      Exit;
619
    Dec(Size, I);
620
    Source := @Source[I];
621
    Dest := @Dest[I];
622
    FBufferIndex := 0
623
  end;
624
  Dec(Size, FBufferSize);
625
  I := 0;
626
  while I < Size do
627
  begin
628
    DoEncode(FFeedback, FFeedback, FBufferSize);
629
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
630
    Inc(I, FBufferSize);
631
  end;
632
  Dec(Size, I - FBufferSize);
633
  if Size > 0 then
634
  begin
635
    DoEncode(FFeedback, FFeedback, FBufferSize);
636
    XORBuffers(Source[I], FFeedback[0], Size, Dest[I]);
637
    FBufferIndex := Size;
638
  end;
639
end;
640
641
function TDECCipherModes.GetDataToAuthenticate: TBytes;
642
begin
643
  if (FMode = cmGCM) then
644
    Result := FGCM.DataToAuthenticate
645
  else
646
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
647
end;
648
649
function TDECCipherModes.GetExpectedAuthenticationTag: TBytes;
650
begin
651
  if (FMode = cmGCM) then
652
    Result := FGCM.ExpectedAuthenticationTag
653
  else
654
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
655
end;
656
657
function TDECCipherModes.GetStandardAuthenticationTagBitLengths: TStandardBitLengths;
658
begin
659
  case FMode of
660
    cmGCM: Result := FGCM.GetStandardAuthenticationTagBitLengths;
661
    else
662
    begin
663
      SetLength(Result, 1);
664
      Result[0] := 0;
665
    end;
666
  end;
667
end;
668
669
function TDECCipherModes.GetAuthenticationResultBitLength: Integer;
670
begin
671
  if (FMode = cmGCM) then
672
    Result := FGCM.AuthenticationTagBitLength
673
  else
674
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
675
end;
676
677
function TDECCipherModes.GetCalcAuthenticatonResult: TBytes;
678
begin
679
  if (FMode = cmGCM) then
680
    Result := FGCM.CalculatedAuthenticationTag
681
  else
682
    raise EDECCipherException.CreateResFmt(@sInvalidModeForMethod, ['cmGCM']);
683
end;
684
685
procedure TDECCipherModes.InitMode;
686
begin
687
  if FMode = TCipherMode.cmGCM then
688
  begin
689
    if Context.BlockSize = 16 then
690
      FGCM := TGCM.Create
691
    else
692
      // GCM requires a cipher with 128 bit block size
693
      raise EDECCipherException.CreateResFmt(@sInvalidBlockSize,
694
                                             [128, System.TypInfo.GetEnumName(TypeInfo(TCipherMode),
695
                                             Integer(FMode))]);
696
  end
697
  else
698
    if Assigned(FGCM) then
699
      FreeAndNil(FGCM);
700
end;
701
702
procedure TDECCipherModes.EncodeCFSx(Source, Dest: PByteArray; Size: Integer);
703
// CFS-BlockSize
704
var
705
  I: Integer;
706
begin
707
  FState := csEncode;
708
  if FBufferIndex > 0 then
709
  begin
710
    I := FBufferSize - FBufferIndex;
711
    if I > Size then
712
      I := Size;
713
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
714
    XORBuffers(Dest[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]);
715
    Inc(FBufferIndex, I);
716
    if FBufferIndex < FBufferSize then
717
      Exit;
718
    Dec(Size, I);
719
    Source := @Source[I];
720
    Dest := @Dest[I];
721
    FBufferIndex := 0
722
  end;
723
  Dec(Size, FBufferSize);
724
  I := 0;
725
  while I < Size do
726
  begin
727
    DoEncode(FFeedback, FBuffer, FBufferSize);
728
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
729
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
730
    Inc(I, FBufferSize);
731
  end;
732
  Dec(Size, I - FBufferSize);
733
  if Size > 0 then
734
  begin
735
    DoEncode(FFeedback, FBuffer, FBufferSize);
736
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
737
    XORBuffers(Dest[I], FFeedback[0], Size, FFeedback[0]);
738
    FBufferIndex := Size;
739
  end;
740
end;
741
742
procedure TDECCipherModes.EncodeCBCx(Source, Dest: PByteArray; Size: Integer);
743
var
744
  F: PByteArray;
745
  I: Integer;
746
begin
747
  Dec(Size, FBufferSize);
748
  F := FFeedback;
749
  I := 0;
750
  while I <= Size do
751
  begin
752
    XORBuffers(Source[I], F[0], FBufferSize, Dest[I]);
753
    F := @Dest[I];
754
    DoEncode(F, F, FBufferSize);
755
    Inc(I, FBufferSize);
756
  end;
757
  if F <> FFeedback then
758
    Move(F[0], FFeedback[0], FBufferSize);
759
  Dec(Size, I - FBufferSize);
760
  if Size > 0 then
761
  begin  // padding
762
    EncodeCFB8(@Source[I], @Dest[I], Size);
763
    FState := csPadded;
764
  end
765
  else
766
    FState := csEncode;
767
end;
768
769
procedure TDECCipherModes.EncodeCTSx(Source, Dest: PByteArray; Size: Integer);
770
var
771
  I: Integer;
772
begin
773
  Dec(Size, FBufferSize);
774
  I := 0;
775
  while I <= Size do
776
  begin
777
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
778
    DoEncode(@Dest[I], @Dest[I], FBufferSize);
779
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
780
    Inc(I, FBufferSize);
781
  end;
782
  Dec(Size, I - FBufferSize);
783
  if Size > 0 then
784
  begin // padding
785
    EncodeCFS8(@Source[I], @Dest[I], Size);
786
    FState := csPadded;
787
  end
788
  else
789
    FState := csEncode;
790
end;
791
792
procedure TDECCipherModes.EncodeGCM(Source, Dest: PByteArray; Size: Integer);
793
var
794
  PlainText,
795
  CipherText : TBytes;
796
begin
797
  if (Size > 0) then
798
  begin
799
    PlainText  := TBytes(@Source^);
800
    CipherText := TBytes(@Dest^);
801
  end
802
  else
803
  begin
804
    SetLength(PlainText, 0);
805
    SetLength(CipherText, 0);
806
  end;
807
808
  FGCM.EncodeGCM(PlainText, CipherText, Size);
809
end;
810
811
{$IFDEF DEC3_CMCTS}
812
procedure TDECCipherModes.EncodeCTS3(Source, Dest: PByteArray; Size: Integer);
813
var
814
  I: Integer;
815
begin
816
  Dec(Size, FBufferSize);
817
  I := 0;
818
  while I <= Size do
819
  begin
820
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
821
    DoEncode(@Dest[I], @Dest[I], FBufferSize);
822
    XORBuffers(Dest[I], FFeedback[0], FBufferSize, FFeedback[0]);
823
    Inc(I, FBufferSize);
824
  end;
825
  Dec(Size, I - FBufferSize);
826
  if Size > 0 then
827
  begin // padding
828
    EncodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx
829
    FState := csPadded;
830
  end
831
  else
832
    FState := csEncode;
833
end;
834
{$ENDIF DEC3_CMCTS}
835
836
procedure TDECCipherModes.Decode(const Source; var Dest; DataSize: Integer);
837
begin
838
  CheckState([csInitialized, csDecode, csDone]);
839
840
  case FMode of
841
    cmECBx:   DecodeECBx(@Source, @Dest, DataSize);
842
    cmCBCx:   DecodeCBCx(@Source, @Dest, DataSize);
843
    cmCTSx:   DecodeCTSx(@Source, @Dest, DataSize);
844
    {$IFDEF DEC3_CMCTS}
845
    cmCTS3:   DecodeCTS3(@Source, @Dest, DataSize);
846
    {$ENDIF DEC3_CMCTS}
847
    cmCFB8:   DecodeCFB8(@Source, @Dest, DataSize);
848
    cmCFBx:   DecodeCFBx(@Source, @Dest, DataSize);
849
    cmOFB8:   DecodeOFB8(@Source, @Dest, DataSize);
850
    cmOFBx:   DecodeOFBx(@Source, @Dest, DataSize);
851
    cmCFS8:   DecodeCFS8(@Source, @Dest, DataSize);
852
    cmCFSx:   DecodeCFSx(@Source, @Dest, DataSize);
853
    cmGCM :   FGCM.DecodeGCM(TBytes(@Source), TBytes(@Dest), DataSize);
854
  end;
855
end;
856
857
procedure TDECCipherModes.DecodeECBx(Source, Dest: PByteArray; Size: Integer);
858
var
859
  I: Integer;
860
begin
861
  if Context.BlockSize = 1 then
862
  begin
863
    DoDecode(Source, Dest, Size);
864
    FState := csDecode;
865
  end
866
  else
867
  begin
868
    Dec(Size, FBufferSize);
869
    I := 0;
870
    while I <= Size do
871
    begin
872
      DoDecode(@Source[I], @Dest[I], FBufferSize);
873
      Inc(I, FBufferSize);
874
    end;
875
    Dec(Size, I - FBufferSize);
876
    if Size > 0 then
877
    begin
878
      if Size mod Context.BlockSize = 0 then
879
      begin
880
        DoDecode(@Source[I], @Dest[I], Size);
881
        FState := csDecode;
882
      end
883
      else
884
      begin
885
        FState := csPadded;
886
        ReportInvalidMessageLength(Self);
887
      end;
888
    end;
889
  end;
890
end;
891
892
procedure TDECCipherModes.DecodeGCM(Source, Dest: PByteArray; Size: Integer);
893
var
894
  PlainText,
895
  CipherText : TBytes;
896
begin
897
  if (Size > 0) then
898
  begin
899
    PlainText  := TBytes(@Source^);
900
    CipherText := TBytes(@Dest^);
901
  end
902
  else
903
  begin
904
    SetLength(PlainText, 0);
905
    SetLength(CipherText, 0);
906
  end;
907
908
  FGCM.DecodeGCM(PlainText, CipherText, Size);
909
end;
910
911
procedure TDECCipherModes.DecodeCFB8(Source, Dest: PByteArray; Size: Integer);
912
// CFB-8
913
var
914
  I: Integer;
915
begin
916
  I := 0;
917
  while I < Size do
918
  begin
919
    DoEncode(FFeedback, FBuffer, FBufferSize);
920
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
921
    FFeedback[FBufferSize - 1] := Source[I];
922
    Dest[I] := Source[I] xor FBuffer[0];
923
    Inc(I);
924
  end;
925
  FState := csDecode;
926
end;
927
928
procedure TDECCipherModes.DecodeOFB8(Source, Dest: PByteArray; Size: Integer);
929
// same as EncodeOFB
930
var
931
  I: Integer;
932
begin
933
  I := 0;
934
  while I < Size do
935
  begin
936
    DoEncode(FFeedback, FBuffer, FBufferSize);
937
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
938
    FFeedback[FBufferSize - 1] := FBuffer[0];
939
    Dest[I] := Source[I] xor FBuffer[0];
940
    Inc(I);
941
  end;
942
  FState := csDecode;
943
end;
944
945
procedure TDECCipherModes.DecodeCFS8(Source, Dest: PByteArray; Size: Integer);
946
var
947
  I: Integer;
948
begin
949
  I := 0;
950
  while I < Size do
951
  begin
952
    DoEncode(FFeedback, FBuffer, FBufferSize);
953
    Move(FFeedback[1], FFeedback[0], FBufferSize - 1);
954
    FFeedback[FBufferSize - 1] := FFeedback[FBufferSize - 1] xor Source[I];
955
    Dest[I] := Source[I] xor FBuffer[0];
956
    Inc(I);
957
  end;
958
  FState := csDecode;
959
end;
960
961
procedure TDECCipherModes.DecodeCFBx(Source, Dest: PByteArray; Size: Integer);
962
// CFB-BlockSize
963
var
964
  I: Integer;
965
  F: PByteArray;
966
begin
967
  FState := csDecode;
968
  if FBufferIndex > 0 then
969
  begin // remaining bytes of last decode
970
    I := FBufferSize - FBufferIndex;
971
    if I > Size then
972
      I := Size;
973
    Move(Source[0], FFeedback[FBufferIndex], I);
974
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
975
    Inc(FBufferIndex, I);
976
    if FBufferIndex < FBufferSize then
977
      Exit;
978
    Dec(Size, I);
979
    Source := @Source[I];
980
    Dest := @Dest[I];
981
    FBufferIndex := 0
982
  end;
983
  // process chunks of FBufferSize bytes
984
  Dec(Size, FBufferSize);
985
  I := 0;
986
  if Source <> Dest then
987
  begin
988
    F := FFeedback;
989
    while I < Size do
990
    begin
991
      DoEncode(F, FBuffer, FBufferSize);
992
      XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
993
      F := @Source[I];
994
      Inc(I, FBufferSize);
995
    end;
996
    if F <> FFeedback then
997
      Move(F^, FFeedback^, FBufferSize);
998
  end
999
  else
1000
    while I < Size do
1001
    begin
1002
      DoEncode(FFeedback, FBuffer, FBufferSize);
1003
      Move(Source[I], FFeedback[0], FBufferSize);
1004
      XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
1005
      Inc(I, FBufferSize);
1006
    end;
1007
  Dec(Size, I - FBufferSize);
1008
  if Size > 0 then
1009
  begin // remaining bytes
1010
    DoEncode(FFeedback, FBuffer, FBufferSize);
1011
    Move(Source[I], FFeedback[0], Size);
1012
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
1013
    FBufferIndex := Size;
1014
  end;
1015
end;
1016
1017
procedure TDECCipherModes.DecodeOFBx(Source, Dest: PByteArray; Size: Integer);
1018
// OFB-BlockSize, same as EncodeOFBx
1019
var
1020
  I: Integer;
1021
begin
1022
  FState := csDecode;
1023
  if FBufferIndex > 0 then
1024
  begin
1025
    I := FBufferSize - FBufferIndex;
1026
    if I > Size then
1027
      I := Size;
1028
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, Dest[0]);
1029
    Inc(FBufferIndex, I);
1030
    if FBufferIndex < FBufferSize then
1031
      Exit;
1032
    Dec(Size, I);
1033
    Source := @Source[I];
1034
    Dest := @Dest[I];
1035
    FBufferIndex := 0
1036
  end;
1037
  Dec(Size, FBufferSize);
1038
  I := 0;
1039
  while I < Size do
1040
  begin
1041
    DoEncode(FFeedback, FFeedback, FBufferSize);
1042
    XORBuffers(Source[I], FFeedback[0], FBufferSize, Dest[I]);
1043
    Inc(I, FBufferSize);
1044
  end;
1045
  Dec(Size, I - FBufferSize);
1046
  if Size > 0 then
1047
  begin
1048
    DoEncode(FFeedback, FFeedback, FBufferSize);
1049
    XORBuffers(Source[I], FFeedback[0], Size, Dest[I]);
1050
    FBufferIndex := Size;
1051
  end;
1052
end;
1053
1054
destructor TDECCipherModes.Destroy;
1055
begin
1056
  FGCM.Free;
1057
1058
  inherited;
1059
end;
1060
1061
procedure TDECCipherModes.Done;
1062
begin
1063
  inherited;
1064
1065
  if (FMode = cmGCM) then
1066
  begin
1067
    if (length(FGCM.ExpectedAuthenticationTag) > 0) and
1068
       (not IsEqual(FGCM.ExpectedAuthenticationTag, FGCM.CalculatedAuthenticationTag)) then
1069
      raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue);
1070
  end;
1071
end;
1072
1073
procedure TDECCipherModes.OnAfterInitVectorInitialization(const OriginalInitVector: TBytes);
1074
begin
1075
  inherited;
1076
1077
  if (FMode = cmGCM) then
1078
    FGCM.Init(self.DoEncode, OriginalInitVector);
1079
end;
1080
1081
procedure TDECCipherModes.DecodeCFSx(Source, Dest: PByteArray; Size: Integer);
1082
// CFS-BlockSize
1083
var
1084
  I: Integer;
1085
begin
1086
  FState := csDecode;
1087
  if FBufferIndex > 0 then
1088
  begin // remaining bytes of last decode
1089
    I := FBufferSize - FBufferIndex;
1090
    if I > Size then
1091
      I := Size;
1092
    XORBuffers(Source[0], FFeedback[FBufferIndex], I, FFeedback[FBufferIndex]);
1093
    XORBuffers(Source[0], FBuffer[FBufferIndex], I, Dest[0]);
1094
    Inc(FBufferIndex, I);
1095
    if FBufferIndex < FBufferSize then
1096
      Exit;
1097
    Dec(Size, I);
1098
    Source := @Source[I];
1099
    Dest := @Dest[I];
1100
    FBufferIndex := 0
1101
  end;
1102
  // process chunks of FBufferSize bytes
1103
  Dec(Size, FBufferSize);
1104
  I := 0;
1105
  while I < Size do
1106
  begin
1107
    DoEncode(FFeedback, FBuffer, FBufferSize);
1108
    XORBuffers(Source[I], FFeedback[0], FBufferSize, FFeedback[0]);
1109
    XORBuffers(Source[I], FBuffer[0], FBufferSize, Dest[I]);
1110
    Inc(I, FBufferSize);
1111
  end;
1112
  Dec(Size, I - FBufferSize);
1113
  if Size > 0 then
1114
  begin // remaining bytes
1115
    DoEncode(FFeedback, FBuffer, FBufferSize);
1116
    XORBuffers(Source[I], FFeedback[0], Size, FFeedback[0]);
1117
    XORBuffers(Source[I], FBuffer[0], Size, Dest[I]);
1118
    FBufferIndex := Size;
1119
  end;
1120
end;
1121
1122
procedure TDECCipherModes.DecodeCBCx(Source, Dest: PByteArray; Size: Integer);
1123
var
1124
  I: Integer;
1125
  F, B, T: PByteArray;
1126
begin
1127
  Dec(Size, FBufferSize);
1128
  F := FFeedback;
1129
  I := 0;
1130
  if Source = Dest then
1131
  begin
1132
    B := FBuffer;
1133
    while I <= Size do
1134
    begin
1135
      Move(Source[I], B[0], FBufferSize);
1136
      DoDecode(@Source[I], @Source[I], FBufferSize);
1137
      XORBuffers(Source[I], F[0], FBufferSize, Source[I]);
1138
      T := F;
1139
      F := B;
1140
      B := T;
1141
      Inc(I, FBufferSize);
1142
    end;
1143
  end
1144
  else
1145
  begin
1146
    while I <= Size do
1147
    begin
1148
      DoDecode(@Source[I], @Dest[I], FBufferSize);
1149
      XORBuffers(F[0], Dest[I], FBufferSize, Dest[I]);
1150
      F := @Source[I];
1151
      Inc(I, FBufferSize);
1152
    end;
1153
  end;
1154
  if F <> FFeedback then
1155
    Move(F[0], FFeedback[0], FBufferSize);
1156
  Dec(Size, I - FBufferSize);
1157
  if Size > 0 then
1158
  begin
1159
    DecodeCFB8(@Source[I], @Dest[I], Size);
1160
    FState := csPadded;
1161
  end
1162
  else
1163
    FState := csDecode;
1164
end;
1165
1166
procedure TDECCipherModes.DecodeCTSx(Source, Dest: PByteArray; Size: Integer);
1167
var
1168
  I: Integer;
1169
  F, B, T: PByteArray;
1170
begin
1171
  Dec(Size, FBufferSize);
1172
  F := FFeedback;
1173
  B := FBuffer;
1174
  I := 0;
1175
  while I <= Size do
1176
  begin
1177
    XORBuffers(Source[I], F[0], FBufferSize, B[0]);
1178
    DoDecode(@Source[I], @Dest[I], FBufferSize);
1179
    XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]);
1180
    T := B;
1181
    B := F;
1182
    F := T;
1183
    Inc(I, FBufferSize);
1184
  end;
1185
  if F <> FFeedback then
1186
    Move(F[0], FFeedback[0], FBufferSize);
1187
  Dec(Size, I - FBufferSize);
1188
  if Size > 0 then
1189
  begin
1190
    DecodeCFS8(@Source[I], @Dest[I], Size);
1191
    FState := csPadded;
1192
  end
1193
  else
1194
    FState := csDecode;
1195
end;
1196
1197
{$IFDEF DEC3_CMCTS}
1198
procedure DecodeCTS3(Source, Dest: PByteArray; Size: Integer);
1199
var
1200
  I: Integer;
1201
  F, B, T: PByteArray;
1202
begin
1203
  Dec(Size, FBufferSize);
1204
  F := FFeedback;
1205
  B := FBuffer;
1206
  I := 0;
1207
  while I <= Size do
1208
  begin
1209
    XORBuffers(Source[I], F[0], FBufferSize, B[0]);
1210
    DoDecode(@Source[I], @Dest[I], FBufferSize);
1211
    XORBuffers(Dest[I], F[0], FBufferSize, Dest[I]);
1212
    T := B;
1213
    B := F;
1214
    F := T;
1215
    Inc(I, FBufferSize);
1216
  end;
1217
  if F <> FFeedback then
1218
    Move(F[0], FFeedback[0], FBufferSize);
1219
  Dec(Size, I - FBufferSize);
1220
  if Size > 0 then
1221
  begin
1222
    DecodeCFSx(@Source[I], @Dest[I], Size); // use the padding implemented in CFSx
1223
    FState := csPadded;
1224
  end
1225
  else
1226
    FState := csDecode;
1227
end;
1228
{$ENDIF DEC3_CMCTS}
1229
1230
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECCipherModesGCM(DECCipherModesGCM.pas).html b/Unit Tests/CodeCoverage/U/DECCipherModesGCM(DECCipherModesGCM.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCipherModesGCM(DECCipherModesGCM.pas).html rename to Unit Tests/CodeCoverage/U/DECCipherModesGCM(DECCipherModesGCM.pas).html index 4a30b5ea..e61e37fc 100644 --- a/Unit Tests/CodeCoverage/DECCipherModesGCM(DECCipherModesGCM.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCipherModesGCM(DECCipherModesGCM.pas).html @@ -1,748 +1,748 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCipherModesGCM (D:\Projekte\DECGitMaster\Source\DECCipherModesGCM.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherModesGCM.pas

-
Number of lines covered120
Number of lines with code gen123
Line coverage97%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherModesGCM;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils,
26
  {$ELSE}
27
  System.SysUtils,
28
  {$ENDIF}
29
  DECTypes;
30
31
type
32
  /// <summary>
33
  ///   128 bit unsigned integer
34
  /// </summary>
35
  T128 = array[0..1] of UInt64;
36
  /// <summary>
37
  ///   pointer to an 128 bit unsigned integer
38
  /// </summary>
39
  P128 = ^T128;
40
41
  /// <summary>
42
  ///   A methopd of this type needs to be supplied for encrypting or decrypting
43
  ///   a block via this GCM algorithm. The method is implemented as a parameter,
44
  ///   to avoid the need to bring TGCM in the inheritance chain. TGCM thus can
45
  ///   be used for composition instead of inheritance.
46
  /// </summary>
47
  /// <param name="Source">
48
  ///   Data to be encrypted
49
  /// </param>
50
  /// <param name="Dest">
51
  ///   In this memory the encrypted result will be written
52
  /// </param>
53
  /// <param name="Size">
54
  ///   Size of source in byte
55
  /// </param>
56
  TEncodeDecodeMethod = procedure(Source, Dest: Pointer; Size: Integer) of Object;
57
58
  /// <summary>
59
  ///   Galois Counter Mode specific methods
60
  /// </summary>
61
  TGCM = class(TObject)
62
  private
63
    /// <summary>
64
    ///   Empty value?
65
    /// </summary>
66
    nullbytes : T128;
67
    /// <summary>
68
    ///   Table with precalculated values
69
    /// </summary>
70
    FM        : array[0..15,0..255] of T128;
71
72
    /// <summary>
73
    ///   Required for creating the table and encryption at least
74
    /// </summary>
75
    FH        : T128;
76
    /// <summary>
77
    ///   Calculated in initialization
78
    /// </summary>
79
    FY        : T128;
80
    /// <summary>
81
    ///   Calculated in initialization
82
    /// </summary>
83
    FE_K_Y0   : T128;
84
85
    /// <summary>
86
    ///   The data which shall be authenticated in parallel to the encryption
87
    /// </summary>
88
    FDataToAuthenticate      : TBytes;
89
    /// <summary>
90
    ///   Length of the authentication tag to generate in byte
91
    /// </summary>
92
    FCalcAuthenticationTagLength : UInt32;
93
    /// <summary>
94
    ///   Generated authentication tag
95
    /// </summary>
96
    FCalcAuthenticationTag       : TBytes;
97
    /// <summary>
98
    ///   Expected authentication tag value, will be compared with actual value
99
    ///   when decryption finished.
100
    /// </summary>
101
    FExpectedAuthenticationTag   : TBytes;
102
103
    /// <summary>
104
    ///   Reference to the encode method of the actual cipher used
105
    /// </summary>
106
    FEncryptionMethod        : TEncodeDecodeMethod;
107
108
    /// <summary>
109
    ///   XOR implementation for unsigned 128 bit numbers
110
    /// </summary>
111
    /// <param name="x">
112
    ///   First number to xor
113
    /// </param>
114
    /// <param name="y">
115
    ///   Second number to xor the first with
116
    /// </param>
117
    /// <returns>
118
    ///   x xor y
119
    /// </returns>
120
    function XOR_T128(const x, y: T128): T128; inline;
121
    /// <summary>
122
    ///   XOR implementation for a pointer and an unsigned 128 bit number
123
    /// </summary>
124
    /// <param name="x">
125
    ///   Pointer on a T128 typed number to xor with y
126
    /// </param>
127
    /// <param name="y">
128
    ///   Second number to xor the first with
129
    /// </param>
130
    /// <returns>
131
    ///   x xor y
132
    /// </returns>
133
    function XOR_PointerWithT128(const x: Pointer; y: T128 ): T128; inline;
134
    /// <summary>
135
    ///   XORs the bytes given in a byte array with a T128 number given
136
    /// </summary>
137
    /// <param name="x">
138
    ///   Bytes which shall be XORed with the T128 number
139
    /// </param>
140
    /// <param name="XIndex">
141
    ///   Starting index within x from which onwards to XOR
142
    /// </param>
143
    /// <param name="Count">
144
    ///   Number of bytes from x beginning at XIndex to XOR
145
    /// </param>
146
    /// <param name="y">
147
    ///   Value to XOR the bytes from y with. XOR is done bytewise for each
148
    ///   byte of y
149
    /// </param>
150
    /// <param name="Result">
151
    ///   Result of the XOR operation
152
    /// </param>
153
    procedure XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes); inline;
154
155
    /// <summary>
156
    ///   XORs all elements of the precalculated matrix with the value passed
157
    /// </summary>
158
    /// <param name="hx">
159
    ///   Value who's two parts shall be XORed with the two parts of the
160
    ///   matrix each.
161
    /// </param>
162
    /// <returns>
163
    ///   result of the XOR Operation
164
    /// </returns>
165
    function poly_mult_H(const hx: T128) : T128; inline;
166
167
    /// <summary>
168
    ///   Encodes the 64 bit lengths of DataToAuthenticate and of the cipher
169
    ///   text into a T128 value, swapping the bytes in the process.
170
    /// </summary>
171
    /// <param name="x">
172
    ///   Result of the operation
173
    /// </param>
174
    /// <param name="AuthDataLength">
175
    ///   Length of the data to authenticate in byte
176
    /// </param>
177
    /// <param name="CipherTextLength">
178
    ///   Length of the ciphertext in byte
179
    /// </param>
180
    procedure SetAuthenticationCipherLength(var x : T128;
181
                                            AuthDataLength, CipherTextLength : UInt64); inline;
182
183
    /// <summary>
184
    ///   Calculates a table with precalculated values which speeds up
185
    ///   operations later. The initialized table is the FM field.
186
    /// </summary>
187
    /// <param name="H">
188
    ///   Start value for the precalculation
189
    /// </param>
190
    procedure GenerateTableM8Bit(const H: T128); //inline;
191
    /// <summary>
192
    ///   Performs a right shift of 1 of all bytes in an 128 bit variable
193
    /// </summary>
194
    /// <param name="rx">
195
    ///   Variable on which the right shift is being performed
196
    /// </param>
197
    procedure ShiftRight(var rx: T128); //inline;
198
199
    /// <summary>
200
    ///   Incremepts the last 4 bytes of the index 0 part
201
    /// </summary>
202
    /// <param name="Y">
203
    ///   Value to increment, this is the return value as well.
204
    /// </param>
205
    procedure INCR(var Y : T128);
206
207
    /// <summary>
208
    ///   Defines the length of the resulting authentication value in bit.
209
    /// </summary>
210
    /// <param name="Value">
211
    ///   Sets the length of Authenticaton_tag in bit, values as per specification
212
    ///   are: 128, 120, 112, 104, or 96 bit. For certain applications, they
213
    ///   may be 64 or 32 as well, but the use of these two tag lengths
214
    ///   constrains the length of the input data and the lifetime of the key.
215
    /// </param>
216
    procedure SetAuthenticationTagLength(const Value: UInt32);
217
    /// <summary>
218
    ///   Returns the length of the calculated authehtication value in bit
219
    /// </summary>
220
    /// <returns>
221
    ///   Length of the calculated authentication value in bit
222
    /// </returns>
223
    function GetAuthenticationTagBitLength: UInt32;
224
225
    /// <summary>
226
    ///   Calculates the hash value
227
    /// </summary>
228
    /// <param name="AuthenticatedData">
229
    ///   Specifys the data for which an authentication value shall be
230
    ///   calculated. It is allowed to be nil.
231
    /// </param>
232
    /// <param name="Ciphertext">
233
    ///   Encrypted data used in the calculation
234
    /// </param>
235
    /// <returns>
236
    ///   Calculated raw hash value which will later get returned as AuthenticatedTag
237
    /// </returns>
238
    function CalcGaloisHash(AuthenticatedData, Ciphertext: TBytes): T128;
239
240
    /// <summary>
241
    ///   Encrypts a T128 value using the encryption method specified on init
242
    /// </summary>
243
    /// <param name="Value">
244
    ///   Value to be encrypted
245
    /// </param>
246
    /// <returns>
247
    ///   Encrypted value
248
    /// </returns>
249
    function EncodeT128(Value: T128): T128;
250
  public
251
    /// <summary>
252
    ///   Should be called when starting encryption/decryption in order to
253
    ///   initialize internal tables etc.
254
    /// </summary>
255
    /// <param name="EncryptionMethod">
256
    ///   Encryption method of the cypher used
257
    /// </param>
258
    /// <param name="InitVector">
259
    ///   Initialization vector
260
    /// </param>
261
    procedure Init(EncryptionMethod : TEncodeDecodeMethod;
262
                   InitVector       : TBytes);
263
    /// <summary>
264
    ///   Encodes a block of data using the supplied cipher
265
    /// </summary>
266
    /// <param name="Source">
267
    ///   Plain text to encrypt
268
    /// </param>
269
    /// <param name="Dest">
270
    ///   Ciphertext after encryption
271
    /// </param>
272
    /// <param name="Size">
273
    ///   Number of bytes to encrypt
274
    /// </param>
275
    procedure EncodeGCM(Source,
276
                        Dest   : TBytes;
277
                        Size   : Integer);
278
    /// <summary>
279
    ///   Decodes a block of data using the supplied cipher
280
    /// </summary>
281
    /// <param name="Source">
282
    ///   Encrypted ciphertext to decrypt
283
    /// </param>
284
    /// <param name="Dest">
285
    ///   Plaintext after decryption
286
    /// </param>
287
    /// <param name="Size">
288
    ///   Number of bytes to decrypt
289
    /// </param>
290
    procedure DecodeGCM(Source,
291
                        Dest   : TBytes;
292
                        Size   : Integer);
293
294
    /// <summary>
295
    ///   Returns a list of authentication tag lengs explicitely specified by
296
    ///   the official specification of the standard.
297
    /// </summary>
298
    /// <returns>
299
    ///   List of bit lengths
300
    /// </returns>
301
    function GetStandardAuthenticationTagBitLengths:TStandardBitLengths;
302
303
    /// <summary>
304
    ///   The data which shall be authenticated in parallel to the encryption
305
    /// </summary>
306
    property DataToAuthenticate : TBytes
307
      read   FDataToAuthenticate
308
      write  FDataToAuthenticate;
309
    /// <summary>
310
    ///   Sets the length of AuthenticatonTag in bit, values as per official
311
    ///   specification are: 128, 120, 112, 104, or 96 bit. For certain
312
    ///   applications, they may be 64 or 32 as well, but the use of these two
313
    ///   tag lengths constrains the length of the input data and the lifetime
314
    ///   of the key.
315
    /// </summary>
316
    property AuthenticationTagBitLength : UInt32
317
      read   GetAuthenticationTagBitLength
318
      write  SetAuthenticationTagLength;
319
    /// <summary>
320
    ///   Calculated authentication value
321
    /// </summary>
322
    property CalculatedAuthenticationTag : TBytes
323
      read   FCalcAuthenticationTag
324
      write  FCalcAuthenticationTag;
325
326
    /// <summary>
327
    ///   Expected authentication tag value, will be compared with actual value
328
    ///   when decryption finished.
329
    /// </summary>
330
    property ExpectedAuthenticationTag : TBytes
331
      read   FExpectedAuthenticationTag
332
      write  FExpectedAuthenticationTag;
333
  end;
334
335
implementation
336
337
function TGCM.XOR_T128(const x, y : T128): T128;
338
begin
339
  Result[0] := x[0] xor y[0];
340
  Result[1] := x[1] xor y[1];
341
end;
342
343
function TGCM.XOR_PointerWithT128(const x : Pointer; y : T128): T128;
344
begin
345
  Result[0] := P128(x)^[0] xor y[0];
346
  Result[1] := P128(x)^[1] xor y[1];
347
end;
348
349
procedure TGCM.XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes);
350
var
351
  i  : integer;
352
  { TODO : change to a pointer to y[0], to get rid of the absolute? }
353
  by : array[0..15] of byte absolute y[0];
354
begin
355
  for i := 0 to Count-1 do
356
  begin
357
    Result[XIndex] := x[XIndex] xor by[i];
358
    inc(XIndex);
359
  end;
360
end;
361
362
function TGCM.poly_mult_H(const hx : T128): T128;
363
var
364
  i : integer;
365
  { TODO : change to a pointer to hx[0], to get rid of the absolute? }
366
  x : array[0..15] of byte absolute hx[0];
367
begin
368
  Result := FM[0, x[0]];
369
370
  for i := 1 to 15 do
371
  begin
372
    Result[0] := Result[0] xor FM[i, x[i]][0];
373
    Result[1] := Result[1] xor FM[i, x[i]][1];
374
  end;
375
end;
376
377
procedure TGCM.SetAuthenticationCipherLength(var x : T128;
378
                                             AuthDataLength, CipherTextLength : UInt64);
379
var
380
  i  : integer;
381
  { TODO : change to a pointer to x[0], to get rid of the absolute? }
382
  hx : array[0..15] of byte absolute x[0];
383
begin
384
  // al:
385
  x := nullbytes;
386
  i := 7;
387
388
  repeat
389
    hx[i] := AuthDataLength mod 256;
390
    AuthDataLength := AuthDataLength shr 8;
391
    dec(i);
392
  until AuthDataLength = 0;
393
394
  // cl:
395
  i := 15;
396
397
  repeat
398
    hx[i] := CipherTextLength mod 256;
399
    CipherTextLength := CipherTextLength shr 8;
400
    dec(i);
401
  until CipherTextLength = 0;
402
end;
403
404
procedure TGCM.GenerateTableM8Bit(const H : T128);
405
var
406
  hbit, hbyte, i, j : integer;
407
  HP : T128;
408
  { TODO : change to a pointer to HP[0], to get rid of the absolute? }
409
  bHP : array[0..15] of byte absolute HP[0];
410
  mask : byte;
411
begin
412
  HP := H;
413
  for hbyte := 0 to 15 do
414
  begin
415
    mask := 128;
416
    for hbit := 0 to 7 do
417
    begin
418
      FM[hbyte, mask] := HP;
419
420
      if (bHP[15] and 1 = 0) then
421
        ShiftRight(HP)
422
      else
423
      begin
424
        ShiftRight(HP);
425
        bHP[0] := bHP[0] xor $e1;
426
      end;
427
428
      mask := mask shr 1;
429
    end;
430
  end;
431
432
  for hbyte := 0 to 15 do
433
  begin
434
    i := 2;
435
436
    while i <= 128 do
437
    begin
438
      for j := 1 to i-1 do
439
        FM[hbyte, i+j] := XOR_T128(FM[hbyte, i], FM[hbyte, j]);
440
      i := i*2;
441
    end;
442
443
    FM[hbyte, 0] := nullbytes;
444
  end;
445
end;
446
447
procedure TGCM.ShiftRight(var rx : T128);
448
var
449
  { TODO : change to a pointer to rx[0], to get rid of the absolute? }
450
  x : array[0..15] of byte absolute rx[0];
451
  i : integer;
452
begin
453
  for i := 15 downto 1 do
454
    x[i] := (x[i] shr 1) or ((x[i-1] and 1) shl 7);
455
456
  x[0] := x[0] shr 1;
457
end;
458
459
procedure TGCM.SetAuthenticationTagLength(const Value: UInt32);
460
begin
461
  FCalcAuthenticationTagLength := Value shr 3;
462
  SetLength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
463
end;
464
465
procedure TGCM.INCR(var Y : T128);
466
var
467
  { TODO : change to a pointer to Y[0], to get rid of the absolute? }
468
  bY : array[0..15] of byte absolute Y[0];
469
begin
470
  {$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
471
  {$Q-}
472
  inc(bY[15]);
473
  if bY[15] = 0 then
474
  begin
475
    inc(bY[14]);
476
477
    if bY[14] = 0 then
478
    begin
479
      inc(bY[13]);
480
481
      if bY[13] = 0 then
482
        inc(bY[12]);
483
    end;
484
  end;
485
  {$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
486
end;
487
488
procedure TGCM.Init(EncryptionMethod : TEncodeDecodeMethod;
489
                    InitVector       : TBytes);
490
var
491
  b    : ^Byte;
492
  OldH : T128;
493
begin
494
  Assert(Assigned(EncryptionMethod), 'No encryption method specified');
495
496
  // Clear calculated authentication value
497
  if (Length(FCalcAuthenticationTag) > 0) then
498
    FillChar(FCalcAuthenticationTag[0], Length(FCalcAuthenticationTag), #0);
499
500
  FEncryptionMethod := EncryptionMethod;
501
502
  Nullbytes[0] := 0;
503
  Nullbytes[1] := 0;
504
505
  OldH := FH;
506
  EncryptionMethod(@Nullbytes[0], @FH[0], 16);
507
508
  // Only generate the table when not already generated
509
  if (OldH[0] <> FH[0]) or (OldH[1] <> FH[1]) then
510
    GenerateTableM8Bit(FH);
511
512
  if length(InitVector) = 12 then
513
  begin
514
     FY[1] := 0;
515
     Move(InitVector[0], FY[0], 12);
516
     b := @FY[0];
517
     inc(b, 15);
518
     b^ := 1;
519
  end
520
  else
521
     FY := CalcGaloisHash(nil, InitVector);
522
523
  FEncryptionMethod(@FY[0], @FE_K_Y0[0], 16);
524
end;
525
526
function TGCM.CalcGaloisHash(AuthenticatedData, Ciphertext : TBytes): T128;
527
var
528
  AuthCipherLength : T128;
529
  x : T128;
530
  n : Uint64;
531
532
  procedure encode(data : TBytes);
533
  var
534
    i, mod_d, div_d, len_d : UInt64;
535
    hdata : T128;
536
  begin
537
    len_d := length(data);
538
    if (len_d > 0) then
539
    begin
540
      n := 0;
541
      div_d := len_d div 16;
542
      if div_d > 0 then
543
      for i := 0 to div_d -1 do
544
      begin
545
        x := poly_mult_H(XOR_PointerWithT128(@data[n], x ));
546
        inc(n, 16);
547
      end;
548
549
      mod_d := len_d mod 16;
550
      if mod_d > 0 then
551
      begin
552
        hdata := nullbytes;
553
        Move(data[n], hdata[0], mod_d);
554
        x := poly_mult_H(XOR_T128(hdata, x));
555
      end;
556
    end;
557
  end;
558
559
begin
560
  x := nullbytes;
561
  encode(AuthenticatedData);
562
  encode(Ciphertext);
563
  SetAuthenticationCipherLength(AuthCipherLength, length(AuthenticatedData) shl 3, length(ciphertext) shl 3);
564
565
  Result := poly_mult_H(XOR_T128(AuthCipherLength, x));
566
end;
567
568
procedure TGCM.DecodeGCM(Source, Dest: TBytes; Size: Integer);
569
var
570
  i, j, BlockCount : Uint64;
571
  a_tag : T128;
572
begin
573
  i := 0;
574
  BlockCount := Size div 16;
575
576
  for j := 1 to BlockCount do
577
  begin
578
    INCR(FY);
579
    P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY));
580
    inc(i, 16);
581
  end;
582
583
  if i < Size then
584
  begin
585
    INCR(FY);
586
    XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest);
587
  end;
588
589
  a_tag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Source), FE_K_Y0);
590
591
  Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
592
  Move(a_tag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength);
593
594
//  if not IsEqual(FExpectedAuthenticationTag, FCalcAuthenticationTag) then
595
//    raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue);
596
597
//  if not IsEqual(authenticaton_tag, ba_tag) then
598
//    SetLength(plaintext, 0); // NIST FAIL => pt=''
599
end;
600
601
procedure TGCM.EncodeGCM(Source, Dest: TBytes; Size: Integer);
602
var
603
  i, j, div_len_plain : UInt64;
604
  AuthTag : T128;
605
begin
606
  i := 0;
607
  div_len_plain := Size div 16;
608
  for j := 1 to div_len_plain do
609
  begin
610
    INCR(FY);
611
612
    P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY));
613
614
    inc(i,16);
615
  end;
616
617
  if i < Size then
618
  begin
619
    INCR(FY);
620
    XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest);
621
  end;
622
623
  AuthTag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Dest), FE_K_Y0);
624
  Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
625
  Move(AuthTag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength);
626
end;
627
628
function TGCM.EncodeT128(Value: T128): T128;
629
begin
630
  FEncryptionMethod(@Value[0], @Result[0], 16);
631
end;
632
633
function TGCM.GetAuthenticationTagBitLength: UInt32;
634
begin
635
  Result := FCalcAuthenticationTagLength shl 3;
636
end;
637
638
function TGCM.GetStandardAuthenticationTagBitLengths: TStandardBitLengths;
639
begin
640
  SetLength(Result, 5);
641
  Result := [96, 104, 112, 120, 128];
642
end;
643
644
//
645
//function decrypt( const key, IV : TBytes; out plaintext : TBytes; const authenticated_data,
646
//ciphertext : TBytes; len_auth_tag : integer; const authenticaton_tag : TBytes ) : boolean;
647
//var
648
//    i, j, div_len_ciph, len_ciph : Uint64;
649
//    a_tag, E_K_Y0, Y, H : T128;
650
//    bY : array[0..15] of byte absolute Y[0];
651
//    ba_Tag : TBytes;
652
//
653
//    function equal( const a, b : TBytes ):boolean;
654
//    begin
655
//      if length(a) <> length(b) then Result := false
656
//      else
657
//      Result := CompareMem( @a[0], @b[0], length(a) );
658
//    end;
659
//
660
//begin
661
//    len_auth_tag := len_auth_tag shr 3;
662
//
663
//    E_Init( key );
664
//    H := E_Cipher( nullbytes );
665
//    Table_M_8Bit(H);
666
//
667
//    len_ciph := length( ciphertext );
668
//    SetLength( plaintext, len_ciph );
669
//
670
//    if length(IV) = 12 then
671
//    begin
672
//       Y[1] := 0;
673
//       Move( IV[0], Y[0], 12 );
674
//       bY[15] := 1;
675
//    end
676
//    else
677
//       Y := CalcGaloisHash( H, nil, IV );
678
//
679
//    E_K_Y0 := E_Cipher( y );
680
//
681
//    i := 0;
682
//    div_len_ciph := len_ciph div 16;
683
//    for j := 1 to div_len_ciph do
684
//    begin
685
//      INCR( Y );
686
//      P128(@plaintext[i])^ := XOR_128_n( @ciphertext[i], E_cipher( Y ) );
687
//      inc(i,16);
688
//    end;
689
//
690
//    if i < len_ciph then
691
//    begin
692
//      INCR( Y );
693
//      XOR_128_n_l( ciphertext, i, len_ciph-i, E_cipher( Y ), plaintext );
694
//    end;
695
//
696
//    a_tag := XOR_128( CalcGaloisHash( H, authenticated_data, ciphertext ), E_K_Y0 );
697
//
698
//    Setlength( ba_tag, len_auth_tag );
699
//    Move( a_tag[0], ba_tag[0], len_auth_tag );
700
//
701
//    Result := equal( authenticaton_tag, ba_tag );
702
//    if not Result then SetLength( plaintext, 0 ); // NIST FAIL => pt=''
703
//end;
704
//
705
706
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCipherModesGCM (D:\Projekte\DECGitMaster\Source\DECCipherModesGCM.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCipherModesGCM.pas

+
Number of lines covered120
Number of lines with code gen123
Line coverage97%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCipherModesGCM;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  {$IFDEF FPC}
25
  SysUtils,
26
  {$ELSE}
27
  System.SysUtils,
28
  {$ENDIF}
29
  DECTypes;
30
31
type
32
  /// <summary>
33
  ///   128 bit unsigned integer
34
  /// </summary>
35
  T128 = array[0..1] of UInt64;
36
  /// <summary>
37
  ///   pointer to an 128 bit unsigned integer
38
  /// </summary>
39
  P128 = ^T128;
40
41
  /// <summary>
42
  ///   A methopd of this type needs to be supplied for encrypting or decrypting
43
  ///   a block via this GCM algorithm. The method is implemented as a parameter,
44
  ///   to avoid the need to bring TGCM in the inheritance chain. TGCM thus can
45
  ///   be used for composition instead of inheritance.
46
  /// </summary>
47
  /// <param name="Source">
48
  ///   Data to be encrypted
49
  /// </param>
50
  /// <param name="Dest">
51
  ///   In this memory the encrypted result will be written
52
  /// </param>
53
  /// <param name="Size">
54
  ///   Size of source in byte
55
  /// </param>
56
  TEncodeDecodeMethod = procedure(Source, Dest: Pointer; Size: Integer) of Object;
57
58
  /// <summary>
59
  ///   Galois Counter Mode specific methods
60
  /// </summary>
61
  TGCM = class(TObject)
62
  private
63
    /// <summary>
64
    ///   Empty value?
65
    /// </summary>
66
    nullbytes : T128;
67
    /// <summary>
68
    ///   Table with precalculated values
69
    /// </summary>
70
    FM        : array[0..15,0..255] of T128;
71
72
    /// <summary>
73
    ///   Required for creating the table and encryption at least
74
    /// </summary>
75
    FH        : T128;
76
    /// <summary>
77
    ///   Calculated in initialization
78
    /// </summary>
79
    FY        : T128;
80
    /// <summary>
81
    ///   Calculated in initialization
82
    /// </summary>
83
    FE_K_Y0   : T128;
84
85
    /// <summary>
86
    ///   The data which shall be authenticated in parallel to the encryption
87
    /// </summary>
88
    FDataToAuthenticate      : TBytes;
89
    /// <summary>
90
    ///   Length of the authentication tag to generate in byte
91
    /// </summary>
92
    FCalcAuthenticationTagLength : UInt32;
93
    /// <summary>
94
    ///   Generated authentication tag
95
    /// </summary>
96
    FCalcAuthenticationTag       : TBytes;
97
    /// <summary>
98
    ///   Expected authentication tag value, will be compared with actual value
99
    ///   when decryption finished.
100
    /// </summary>
101
    FExpectedAuthenticationTag   : TBytes;
102
103
    /// <summary>
104
    ///   Reference to the encode method of the actual cipher used
105
    /// </summary>
106
    FEncryptionMethod        : TEncodeDecodeMethod;
107
108
    /// <summary>
109
    ///   XOR implementation for unsigned 128 bit numbers
110
    /// </summary>
111
    /// <param name="x">
112
    ///   First number to xor
113
    /// </param>
114
    /// <param name="y">
115
    ///   Second number to xor the first with
116
    /// </param>
117
    /// <returns>
118
    ///   x xor y
119
    /// </returns>
120
    function XOR_T128(const x, y: T128): T128; inline;
121
    /// <summary>
122
    ///   XOR implementation for a pointer and an unsigned 128 bit number
123
    /// </summary>
124
    /// <param name="x">
125
    ///   Pointer on a T128 typed number to xor with y
126
    /// </param>
127
    /// <param name="y">
128
    ///   Second number to xor the first with
129
    /// </param>
130
    /// <returns>
131
    ///   x xor y
132
    /// </returns>
133
    function XOR_PointerWithT128(const x: Pointer; y: T128 ): T128; inline;
134
    /// <summary>
135
    ///   XORs the bytes given in a byte array with a T128 number given
136
    /// </summary>
137
    /// <param name="x">
138
    ///   Bytes which shall be XORed with the T128 number
139
    /// </param>
140
    /// <param name="XIndex">
141
    ///   Starting index within x from which onwards to XOR
142
    /// </param>
143
    /// <param name="Count">
144
    ///   Number of bytes from x beginning at XIndex to XOR
145
    /// </param>
146
    /// <param name="y">
147
    ///   Value to XOR the bytes from y with. XOR is done bytewise for each
148
    ///   byte of y
149
    /// </param>
150
    /// <param name="Result">
151
    ///   Result of the XOR operation
152
    /// </param>
153
    procedure XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes); inline;
154
155
    /// <summary>
156
    ///   XORs all elements of the precalculated matrix with the value passed
157
    /// </summary>
158
    /// <param name="hx">
159
    ///   Value who's two parts shall be XORed with the two parts of the
160
    ///   matrix each.
161
    /// </param>
162
    /// <returns>
163
    ///   result of the XOR Operation
164
    /// </returns>
165
    function poly_mult_H(const hx: T128) : T128; inline;
166
167
    /// <summary>
168
    ///   Encodes the 64 bit lengths of DataToAuthenticate and of the cipher
169
    ///   text into a T128 value, swapping the bytes in the process.
170
    /// </summary>
171
    /// <param name="x">
172
    ///   Result of the operation
173
    /// </param>
174
    /// <param name="AuthDataLength">
175
    ///   Length of the data to authenticate in byte
176
    /// </param>
177
    /// <param name="CipherTextLength">
178
    ///   Length of the ciphertext in byte
179
    /// </param>
180
    procedure SetAuthenticationCipherLength(var x : T128;
181
                                            AuthDataLength, CipherTextLength : UInt64); inline;
182
183
    /// <summary>
184
    ///   Calculates a table with precalculated values which speeds up
185
    ///   operations later. The initialized table is the FM field.
186
    /// </summary>
187
    /// <param name="H">
188
    ///   Start value for the precalculation
189
    /// </param>
190
    procedure GenerateTableM8Bit(const H: T128); //inline;
191
    /// <summary>
192
    ///   Performs a right shift of 1 of all bytes in an 128 bit variable
193
    /// </summary>
194
    /// <param name="rx">
195
    ///   Variable on which the right shift is being performed
196
    /// </param>
197
    procedure ShiftRight(var rx: T128); //inline;
198
199
    /// <summary>
200
    ///   Incremepts the last 4 bytes of the index 0 part
201
    /// </summary>
202
    /// <param name="Y">
203
    ///   Value to increment, this is the return value as well.
204
    /// </param>
205
    procedure INCR(var Y : T128);
206
207
    /// <summary>
208
    ///   Defines the length of the resulting authentication value in bit.
209
    /// </summary>
210
    /// <param name="Value">
211
    ///   Sets the length of Authenticaton_tag in bit, values as per specification
212
    ///   are: 128, 120, 112, 104, or 96 bit. For certain applications, they
213
    ///   may be 64 or 32 as well, but the use of these two tag lengths
214
    ///   constrains the length of the input data and the lifetime of the key.
215
    /// </param>
216
    procedure SetAuthenticationTagLength(const Value: UInt32);
217
    /// <summary>
218
    ///   Returns the length of the calculated authehtication value in bit
219
    /// </summary>
220
    /// <returns>
221
    ///   Length of the calculated authentication value in bit
222
    /// </returns>
223
    function GetAuthenticationTagBitLength: UInt32;
224
225
    /// <summary>
226
    ///   Calculates the hash value
227
    /// </summary>
228
    /// <param name="AuthenticatedData">
229
    ///   Specifys the data for which an authentication value shall be
230
    ///   calculated. It is allowed to be nil.
231
    /// </param>
232
    /// <param name="Ciphertext">
233
    ///   Encrypted data used in the calculation
234
    /// </param>
235
    /// <returns>
236
    ///   Calculated raw hash value which will later get returned as AuthenticatedTag
237
    /// </returns>
238
    function CalcGaloisHash(AuthenticatedData, Ciphertext: TBytes): T128;
239
240
    /// <summary>
241
    ///   Encrypts a T128 value using the encryption method specified on init
242
    /// </summary>
243
    /// <param name="Value">
244
    ///   Value to be encrypted
245
    /// </param>
246
    /// <returns>
247
    ///   Encrypted value
248
    /// </returns>
249
    function EncodeT128(Value: T128): T128;
250
  public
251
    /// <summary>
252
    ///   Should be called when starting encryption/decryption in order to
253
    ///   initialize internal tables etc.
254
    /// </summary>
255
    /// <param name="EncryptionMethod">
256
    ///   Encryption method of the cypher used
257
    /// </param>
258
    /// <param name="InitVector">
259
    ///   Initialization vector
260
    /// </param>
261
    procedure Init(EncryptionMethod : TEncodeDecodeMethod;
262
                   InitVector       : TBytes);
263
    /// <summary>
264
    ///   Encodes a block of data using the supplied cipher
265
    /// </summary>
266
    /// <param name="Source">
267
    ///   Plain text to encrypt
268
    /// </param>
269
    /// <param name="Dest">
270
    ///   Ciphertext after encryption
271
    /// </param>
272
    /// <param name="Size">
273
    ///   Number of bytes to encrypt
274
    /// </param>
275
    procedure EncodeGCM(Source,
276
                        Dest   : TBytes;
277
                        Size   : Integer);
278
    /// <summary>
279
    ///   Decodes a block of data using the supplied cipher
280
    /// </summary>
281
    /// <param name="Source">
282
    ///   Encrypted ciphertext to decrypt
283
    /// </param>
284
    /// <param name="Dest">
285
    ///   Plaintext after decryption
286
    /// </param>
287
    /// <param name="Size">
288
    ///   Number of bytes to decrypt
289
    /// </param>
290
    procedure DecodeGCM(Source,
291
                        Dest   : TBytes;
292
                        Size   : Integer);
293
294
    /// <summary>
295
    ///   Returns a list of authentication tag lengs explicitely specified by
296
    ///   the official specification of the standard.
297
    /// </summary>
298
    /// <returns>
299
    ///   List of bit lengths
300
    /// </returns>
301
    function GetStandardAuthenticationTagBitLengths:TStandardBitLengths;
302
303
    /// <summary>
304
    ///   The data which shall be authenticated in parallel to the encryption
305
    /// </summary>
306
    property DataToAuthenticate : TBytes
307
      read   FDataToAuthenticate
308
      write  FDataToAuthenticate;
309
    /// <summary>
310
    ///   Sets the length of AuthenticatonTag in bit, values as per official
311
    ///   specification are: 128, 120, 112, 104, or 96 bit. For certain
312
    ///   applications, they may be 64 or 32 as well, but the use of these two
313
    ///   tag lengths constrains the length of the input data and the lifetime
314
    ///   of the key.
315
    /// </summary>
316
    property AuthenticationTagBitLength : UInt32
317
      read   GetAuthenticationTagBitLength
318
      write  SetAuthenticationTagLength;
319
    /// <summary>
320
    ///   Calculated authentication value
321
    /// </summary>
322
    property CalculatedAuthenticationTag : TBytes
323
      read   FCalcAuthenticationTag
324
      write  FCalcAuthenticationTag;
325
326
    /// <summary>
327
    ///   Expected authentication tag value, will be compared with actual value
328
    ///   when decryption finished.
329
    /// </summary>
330
    property ExpectedAuthenticationTag : TBytes
331
      read   FExpectedAuthenticationTag
332
      write  FExpectedAuthenticationTag;
333
  end;
334
335
implementation
336
337
function TGCM.XOR_T128(const x, y : T128): T128;
338
begin
339
  Result[0] := x[0] xor y[0];
340
  Result[1] := x[1] xor y[1];
341
end;
342
343
function TGCM.XOR_PointerWithT128(const x : Pointer; y : T128): T128;
344
begin
345
  Result[0] := P128(x)^[0] xor y[0];
346
  Result[1] := P128(x)^[1] xor y[1];
347
end;
348
349
procedure TGCM.XOR_ArrayWithT128(const x: TBytes; XIndex, Count: UInt64; y: T128; var Result: TBytes);
350
var
351
  i  : integer;
352
  { TODO : change to a pointer to y[0], to get rid of the absolute? }
353
  by : array[0..15] of byte absolute y[0];
354
begin
355
  for i := 0 to Count-1 do
356
  begin
357
    Result[XIndex] := x[XIndex] xor by[i];
358
    inc(XIndex);
359
  end;
360
end;
361
362
function TGCM.poly_mult_H(const hx : T128): T128;
363
var
364
  i : integer;
365
  { TODO : change to a pointer to hx[0], to get rid of the absolute? }
366
  x : array[0..15] of byte absolute hx[0];
367
begin
368
  Result := FM[0, x[0]];
369
370
  for i := 1 to 15 do
371
  begin
372
    Result[0] := Result[0] xor FM[i, x[i]][0];
373
    Result[1] := Result[1] xor FM[i, x[i]][1];
374
  end;
375
end;
376
377
procedure TGCM.SetAuthenticationCipherLength(var x : T128;
378
                                             AuthDataLength, CipherTextLength : UInt64);
379
var
380
  i  : integer;
381
  { TODO : change to a pointer to x[0], to get rid of the absolute? }
382
  hx : array[0..15] of byte absolute x[0];
383
begin
384
  // al:
385
  x := nullbytes;
386
  i := 7;
387
388
  repeat
389
    hx[i] := AuthDataLength mod 256;
390
    AuthDataLength := AuthDataLength shr 8;
391
    dec(i);
392
  until AuthDataLength = 0;
393
394
  // cl:
395
  i := 15;
396
397
  repeat
398
    hx[i] := CipherTextLength mod 256;
399
    CipherTextLength := CipherTextLength shr 8;
400
    dec(i);
401
  until CipherTextLength = 0;
402
end;
403
404
procedure TGCM.GenerateTableM8Bit(const H : T128);
405
var
406
  hbit, hbyte, i, j : integer;
407
  HP : T128;
408
  { TODO : change to a pointer to HP[0], to get rid of the absolute? }
409
  bHP : array[0..15] of byte absolute HP[0];
410
  mask : byte;
411
begin
412
  HP := H;
413
  for hbyte := 0 to 15 do
414
  begin
415
    mask := 128;
416
    for hbit := 0 to 7 do
417
    begin
418
      FM[hbyte, mask] := HP;
419
420
      if (bHP[15] and 1 = 0) then
421
        ShiftRight(HP)
422
      else
423
      begin
424
        ShiftRight(HP);
425
        bHP[0] := bHP[0] xor $e1;
426
      end;
427
428
      mask := mask shr 1;
429
    end;
430
  end;
431
432
  for hbyte := 0 to 15 do
433
  begin
434
    i := 2;
435
436
    while i <= 128 do
437
    begin
438
      for j := 1 to i-1 do
439
        FM[hbyte, i+j] := XOR_T128(FM[hbyte, i], FM[hbyte, j]);
440
      i := i*2;
441
    end;
442
443
    FM[hbyte, 0] := nullbytes;
444
  end;
445
end;
446
447
procedure TGCM.ShiftRight(var rx : T128);
448
var
449
  { TODO : change to a pointer to rx[0], to get rid of the absolute? }
450
  x : array[0..15] of byte absolute rx[0];
451
  i : integer;
452
begin
453
  for i := 15 downto 1 do
454
    x[i] := (x[i] shr 1) or ((x[i-1] and 1) shl 7);
455
456
  x[0] := x[0] shr 1;
457
end;
458
459
procedure TGCM.SetAuthenticationTagLength(const Value: UInt32);
460
begin
461
  FCalcAuthenticationTagLength := Value shr 3;
462
  SetLength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
463
end;
464
465
procedure TGCM.INCR(var Y : T128);
466
var
467
  { TODO : change to a pointer to Y[0], to get rid of the absolute? }
468
  bY : array[0..15] of byte absolute Y[0];
469
begin
470
  {$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
471
  {$Q-}
472
  inc(bY[15]);
473
  if bY[15] = 0 then
474
  begin
475
    inc(bY[14]);
476
477
    if bY[14] = 0 then
478
    begin
479
      inc(bY[13]);
480
481
      if bY[13] = 0 then
482
        inc(bY[12]);
483
    end;
484
  end;
485
  {$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
486
end;
487
488
procedure TGCM.Init(EncryptionMethod : TEncodeDecodeMethod;
489
                    InitVector       : TBytes);
490
var
491
  b    : ^Byte;
492
  OldH : T128;
493
begin
494
  Assert(Assigned(EncryptionMethod), 'No encryption method specified');
495
496
  // Clear calculated authentication value
497
  if (Length(FCalcAuthenticationTag) > 0) then
498
    FillChar(FCalcAuthenticationTag[0], Length(FCalcAuthenticationTag), #0);
499
500
  FEncryptionMethod := EncryptionMethod;
501
502
  Nullbytes[0] := 0;
503
  Nullbytes[1] := 0;
504
505
  OldH := FH;
506
  EncryptionMethod(@Nullbytes[0], @FH[0], 16);
507
508
  // Only generate the table when not already generated
509
  if (OldH[0] <> FH[0]) or (OldH[1] <> FH[1]) then
510
    GenerateTableM8Bit(FH);
511
512
  if length(InitVector) = 12 then
513
  begin
514
     FY[1] := 0;
515
     Move(InitVector[0], FY[0], 12);
516
     b := @FY[0];
517
     inc(b, 15);
518
     b^ := 1;
519
  end
520
  else
521
     FY := CalcGaloisHash(nil, InitVector);
522
523
  FEncryptionMethod(@FY[0], @FE_K_Y0[0], 16);
524
end;
525
526
function TGCM.CalcGaloisHash(AuthenticatedData, Ciphertext : TBytes): T128;
527
var
528
  AuthCipherLength : T128;
529
  x : T128;
530
  n : Uint64;
531
532
  procedure encode(data : TBytes);
533
  var
534
    i, mod_d, div_d, len_d : UInt64;
535
    hdata : T128;
536
  begin
537
    len_d := length(data);
538
    if (len_d > 0) then
539
    begin
540
      n := 0;
541
      div_d := len_d div 16;
542
      if div_d > 0 then
543
      for i := 0 to div_d -1 do
544
      begin
545
        x := poly_mult_H(XOR_PointerWithT128(@data[n], x ));
546
        inc(n, 16);
547
      end;
548
549
      mod_d := len_d mod 16;
550
      if mod_d > 0 then
551
      begin
552
        hdata := nullbytes;
553
        Move(data[n], hdata[0], mod_d);
554
        x := poly_mult_H(XOR_T128(hdata, x));
555
      end;
556
    end;
557
  end;
558
559
begin
560
  x := nullbytes;
561
  encode(AuthenticatedData);
562
  encode(Ciphertext);
563
  SetAuthenticationCipherLength(AuthCipherLength, length(AuthenticatedData) shl 3, length(ciphertext) shl 3);
564
565
  Result := poly_mult_H(XOR_T128(AuthCipherLength, x));
566
end;
567
568
procedure TGCM.DecodeGCM(Source, Dest: TBytes; Size: Integer);
569
var
570
  i, j, BlockCount : Uint64;
571
  a_tag : T128;
572
begin
573
  i := 0;
574
  BlockCount := Size div 16;
575
576
  for j := 1 to BlockCount do
577
  begin
578
    INCR(FY);
579
    P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY));
580
    inc(i, 16);
581
  end;
582
583
  if i < Size then
584
  begin
585
    INCR(FY);
586
    XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest);
587
  end;
588
589
  a_tag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Source), FE_K_Y0);
590
591
  Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
592
  Move(a_tag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength);
593
594
//  if not IsEqual(FExpectedAuthenticationTag, FCalcAuthenticationTag) then
595
//    raise EDECCipherAuthenticationException.Create(sInvalidAuthenticationValue);
596
597
//  if not IsEqual(authenticaton_tag, ba_tag) then
598
//    SetLength(plaintext, 0); // NIST FAIL => pt=''
599
end;
600
601
procedure TGCM.EncodeGCM(Source, Dest: TBytes; Size: Integer);
602
var
603
  i, j, div_len_plain : UInt64;
604
  AuthTag : T128;
605
begin
606
  i := 0;
607
  div_len_plain := Size div 16;
608
  for j := 1 to div_len_plain do
609
  begin
610
    INCR(FY);
611
612
    P128(@Dest[i])^ := XOR_PointerWithT128(@Source[i], EncodeT128(FY));
613
614
    inc(i,16);
615
  end;
616
617
  if i < Size then
618
  begin
619
    INCR(FY);
620
    XOR_ArrayWithT128(Source, i, UInt64(Size)-i, EncodeT128(FY), Dest);
621
  end;
622
623
  AuthTag := XOR_T128(CalcGaloisHash(DataToAuthenticate, Dest), FE_K_Y0);
624
  Setlength(FCalcAuthenticationTag, FCalcAuthenticationTagLength);
625
  Move(AuthTag[0], FCalcAuthenticationTag[0], FCalcAuthenticationTagLength);
626
end;
627
628
function TGCM.EncodeT128(Value: T128): T128;
629
begin
630
  FEncryptionMethod(@Value[0], @Result[0], 16);
631
end;
632
633
function TGCM.GetAuthenticationTagBitLength: UInt32;
634
begin
635
  Result := FCalcAuthenticationTagLength shl 3;
636
end;
637
638
function TGCM.GetStandardAuthenticationTagBitLengths: TStandardBitLengths;
639
begin
640
  SetLength(Result, 5);
641
  Result := [96, 104, 112, 120, 128];
642
end;
643
644
//
645
//function decrypt( const key, IV : TBytes; out plaintext : TBytes; const authenticated_data,
646
//ciphertext : TBytes; len_auth_tag : integer; const authenticaton_tag : TBytes ) : boolean;
647
//var
648
//    i, j, div_len_ciph, len_ciph : Uint64;
649
//    a_tag, E_K_Y0, Y, H : T128;
650
//    bY : array[0..15] of byte absolute Y[0];
651
//    ba_Tag : TBytes;
652
//
653
//    function equal( const a, b : TBytes ):boolean;
654
//    begin
655
//      if length(a) <> length(b) then Result := false
656
//      else
657
//      Result := CompareMem( @a[0], @b[0], length(a) );
658
//    end;
659
//
660
//begin
661
//    len_auth_tag := len_auth_tag shr 3;
662
//
663
//    E_Init( key );
664
//    H := E_Cipher( nullbytes );
665
//    Table_M_8Bit(H);
666
//
667
//    len_ciph := length( ciphertext );
668
//    SetLength( plaintext, len_ciph );
669
//
670
//    if length(IV) = 12 then
671
//    begin
672
//       Y[1] := 0;
673
//       Move( IV[0], Y[0], 12 );
674
//       bY[15] := 1;
675
//    end
676
//    else
677
//       Y := CalcGaloisHash( H, nil, IV );
678
//
679
//    E_K_Y0 := E_Cipher( y );
680
//
681
//    i := 0;
682
//    div_len_ciph := len_ciph div 16;
683
//    for j := 1 to div_len_ciph do
684
//    begin
685
//      INCR( Y );
686
//      P128(@plaintext[i])^ := XOR_128_n( @ciphertext[i], E_cipher( Y ) );
687
//      inc(i,16);
688
//    end;
689
//
690
//    if i < len_ciph then
691
//    begin
692
//      INCR( Y );
693
//      XOR_128_n_l( ciphertext, i, len_ciph-i, E_cipher( Y ), plaintext );
694
//    end;
695
//
696
//    a_tag := XOR_128( CalcGaloisHash( H, authenticated_data, ciphertext ), E_K_Y0 );
697
//
698
//    Setlength( ba_tag, len_auth_tag );
699
//    Move( a_tag[0], ba_tag[0], len_auth_tag );
700
//
701
//    Result := equal( authenticaton_tag, ba_tag );
702
//    if not Result then SetLength( plaintext, 0 ); // NIST FAIL => pt=''
703
//end;
704
//
705
706
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECCiphers(DECCiphers.pas).html b/Unit Tests/CodeCoverage/U/DECCiphers(DECCiphers.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECCiphers(DECCiphers.pas).html rename to Unit Tests/CodeCoverage/U/DECCiphers(DECCiphers.pas).html index 14fc1132..11206b74 100644 --- a/Unit Tests/CodeCoverage/DECCiphers(DECCiphers.pas).html +++ b/Unit Tests/CodeCoverage/U/DECCiphers(DECCiphers.pas).html @@ -1,6703 +1,6703 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECCiphers (D:\Projekte\DECGitMaster\Source\DECCiphers.pas).

-

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECCiphers.pas

-
Number of lines covered3260
Number of lines with code gen3370
Line coverage96%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCiphers;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  DECCipherBase, DECCipherFormats, DECUtil, DECTypes;
25
26
type
27
  // Cipher Classes
28
29
  /// <summary>
30
  ///   Null cipher, doesn't encrypt, only copy
31
  /// </summary>
32
  TCipher_Null          = class;
33
  /// <summary>
34
  ///   A block based encryption algorithm with 32 to 448 bit key length
35
  /// </summary>
36
  TCipher_Blowfish      = class;
37
  /// <summary>
38
  ///   AES Round 2 Final Candidate
39
  /// </summary>
40
  TCipher_Twofish       = class;
41
  /// <summary>
42
  ///   International Data Encryption Algorithm, formerly patentet,
43
  ///   now patent free. The algorithm is no longer to be really recommended due
44
  ///   to some classes of weak keys and other successfull attacks.
45
  /// </summary>
46
  TCipher_IDEA          = class;
47
  /// <summary>
48
  ///   Carlisle Adams and Stafford Tavares, 256 bit key length
49
  /// </summary>
50
  TCipher_Cast256       = class;
51
  /// <summary>
52
  ///   AES Round 2 Final Candidate
53
  /// </summary>
54
  TCipher_Mars          = class;
55
  /// <summary>
56
  ///   Streamcipher in as Block Cipher
57
  /// </summary>
58
  TCipher_RC4           = class;
59
  /// <summary>
60
  ///   AES Round 2 Final Candidate
61
  /// </summary>
62
  TCipher_RC6           = class;
63
  /// <summary>
64
  ///   AES Round 2 Final Candidate
65
  /// </summary>
66
  TCipher_Rijndael      = class;
67
  /// <summary>
68
  ///   AES winner = TCipher_Rijndael
69
  /// </summary>
70
  TCipher_AES           = class;
71
  /// <summary>
72
  ///   A block cipher invented by Joan Daemen and Vincent Rijmen. The design,
73
  ///   published in 1997, is a forerunner to Rijndael, which has been adopted
74
  ///   as the Advanced Encryption Standard. Square was introduced together with
75
  ///   a new form of cryptanalysis discovered by Lars Knudsen, called the
76
  ///   "Square attack".
77
  ///   The structure of Square is a substitution-permutation network with eight
78
  ///   rounds, operating on 128-bit blocks and using a 128-bit key.
79
  /// </summary>
80
  /// <remarks>
81
  ///   If possible use TCipher_AES instead
82
  /// </remarks>
83
  TCipher_Square        = class;
84
  /// <summary>
85
  ///   Stream Cipher in Blockmode (on UInt32), very fast
86
  /// </summary>
87
  TCipher_SCOP          = class;
88
  /// <summary>
89
  ///   Stream Cipher in Blockmode (on UInt32), very fast.
90
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
91
  /// </summary>
92
  TCipher_SCOP_DEC52    = class;
93
  /// <summary>
94
  ///   Stream Cipher, eq. design from German ENIGMA Machine
95
  /// </summary>
96
  TCipher_Sapphire      = class;
97
  /// <summary>
98
  ///   Single DES  8 byte Blocksize,  8 byte Keysize,  56 bits relevant.
99
  ///   Considered to be too weak nowadays. Included for compatibility reasons.
100
  /// </summary>
101
  TCipher_1DES          = class;
102
  /// <summary>
103
  ///   Double DES  8 byte Blocksize, 16 byte Keysize, 112 bits relevant
104
  /// </summary>
105
  TCipher_2DES          = class;
106
  /// <summary>
107
  ///   Triple DES  8 byte Blocksize, 24 byte Keysize, 168 bits relevant
108
  /// </summary>
109
  TCipher_3DES          = class;
110
  /// <summary>
111
  ///   Triple DES 16 byte Blocksize, 16 byte Keysize, 112 bits relevant
112
  /// </summary>
113
  TCipher_2DDES         = class;
114
  /// <summary>
115
  ///   Triple DES 16 byte Blocksize, 24 byte Keysize, 168 bits relevant
116
  /// </summary>
117
  TCipher_3DDES         = class;
118
  /// <summary>
119
  ///   Triple DES 24 byte Blocksize, 24 byte Keysize, 168 bits relevant
120
  /// </summary>
121
  TCipher_3TDES         = class;
122
  /// <summary>
123
  ///   A 1994 developed block cipher using a 96 bit key. 3-Way, is vulnerable
124
  ///   to related key cryptanalysis.
125
  /// </summary>
126
  TCipher_3Way          = class;
127
  /// <summary>
128
  ///   Carlisle Adams and Stafford Tavares, 128 bit key length
129
  /// </summary>
130
  TCipher_Cast128       = class;
131
  /// <summary>
132
  ///   Russian Cipher
133
  /// </summary>
134
  TCipher_Gost          = class;
135
  /// <summary>
136
  ///   Alias/new name for Gost cipher
137
  /// </summary>
138
  TCipher_Magma         = class;
139
  /// <summary>
140
  ///   Misty1 is a block cipher developed 1995 by Mitsubishi. It is free only for
141
  ///   academical and non-profit works in RFC 2994. it is otherwise patented.
142
  ///   In 2015 it got broken via integral cryptoanalysis.
143
  /// </summary>
144
  TCipher_Misty         = class;
145
  /// <summary>
146
  ///   A 1996 block cipher with a key length of 120 bit. It can be broken with
147
  ///   a relatively low number of ciphertext/plaintext queries.
148
  /// </summary>
149
  TCipher_NewDES        = class;
150
  /// <summary>
151
  ///   Camelia, a 128 bit block cipher.
152
  ///   Specification: https://info.isl.ntt.co.jp/crypt/eng/camellia/dl/01espec.pdf
153
  /// </summary>
154
  TCipher_Q128          = class;
155
  /// <summary>
156
  ///   Rivest Cipher 2, a 1987 developed cipher with a default keysize of 64 bit
157
  /// </summary>
158
  TCipher_RC2           = class;
159
  /// <summary>
160
  ///   Rivest Cipher 5, a 1994 developed cipher with emphasis on speed and low
161
  ///   size in order to make it efficient on embedded hardware as well. Key sizes
162
  ///   of up to 2048 bits are possible but 128 bits are suggested. The algorithm
163
  ///   was patented in the US up to 2015.
164
  /// </summary>
165
  TCipher_RC5           = class;
166
  /// <summary>
167
  ///   SAFER = Secure And Fast Encryption Routine
168
  /// </summary>
169
  TCipher_SAFER         = class;
170
  /// <summary>
171
  ///   A 1996 published block cipher with a key size of 128 bits. It was
172
  ///   identified as one of the predecessors of Rijndael
173
  /// </summary>
174
  TCipher_Shark         = class;
175
  /// <summary>
176
  ///   A 1996 published block cipher with a key size of 128 bits. It was
177
  ///   identified as one of the predecessors of Rijndael
178
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
179
  /// </summary>
180
  TCipher_Shark_DEC52   = class;
181
  /// <summary>
182
  ///   A NSA developed and 1998 published block cipher with a key length of
183
  ///   80 bit. Soon after publication various weaknesses have been identified.
184
  /// </summary>
185
  TCipher_Skipjack      = class;
186
  /// <summary>
187
  ///   Tiny Encryption Algorithm
188
  /// </summary>
189
  TCipher_TEA           = class;
190
  /// <summary>
191
  ///   Tiny Encryption Algorithm, 1st extended Version
192
  /// </summary>
193
  TCipher_XTEA          = class;
194
  /// <summary>
195
  ///   = TCipher_XTEA (kept for backward compatibility)
196
  /// </summary>
197
  TCipher_TEAN          = class;
198
  /// <summary>
199
  ///   Tiny Encryption Algorithm, 1st extended Version.
200
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
201
  /// </summary>
202
  TCipher_XTEA_DEC52    = class;
203
204
  // Definitions needed for Skipjack algorithm
205
  PSkipjackTab = ^TSkipjackTab;
206
  TSkipjackTab = array[0..255] of Byte;
207
208
  /// <summary>
209
  ///   A do nothing cipher, usefull for debugging and development purposes. Do
210
  ///   not use it for actual encryption as it will not encrypt anything at all!
211
  /// </summary>
212
  TCipher_Null = class(TDECFormattedCipher)
213
  protected
214
    procedure DoInit(const Key; Size: Integer); override;
215
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
216
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
217
  public
218
    /// <summary>
219
    ///   Provides meta data about the cipher algorithm used like key size.
220
    /// </summary>
221
    class function Context: TCipherContext; override;
222
  end;
223
224
  TCipher_Blowfish = class(TDECFormattedCipher)
225
  protected
226
    /// <summary>
227
    ///   Initialize the key, based on the key passed in
228
    /// </summary>
229
    /// <param name="Key">
230
    ///   Encryption/Decryption key to be used
231
    /// </param>
232
    /// <param name="Size">
233
    ///   Size of the key passed in bytes.
234
    /// </param>
235
    procedure DoInit(const Key; Size: Integer); override;
236
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
237
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
238
  public
239
    class function Context: TCipherContext; override;
240
  end;
241
242
  TCipher_Twofish = class(TDECFormattedCipher)
243
  protected
244
    /// <summary>
245
    ///   Initialize the key, based on the key passed in
246
    /// </summary>
247
    /// <param name="Key">
248
    ///   Encryption/Decryption key to be used
249
    /// </param>
250
    /// <param name="Size">
251
    ///   Size of the key passed in bytes.
252
    /// </param>
253
    procedure DoInit(const Key; Size: Integer); override;
254
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
255
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
256
  public
257
    class function Context: TCipherContext; override;
258
  end;
259
260
  TCipher_IDEA = class(TDECFormattedCipher)
261
  protected
262
    /// <summary>
263
    ///   Initialize the key, based on the key passed in
264
    /// </summary>
265
    /// <param name="Key">
266
    ///   Encryption/Decryption key to be used
267
    /// </param>
268
    /// <param name="Size">
269
    ///   Size of the key passed in bytes.
270
    /// </param>
271
    procedure DoInit(const Key; Size: Integer); override;
272
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
273
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
274
  public
275
    class function Context: TCipherContext; override;
276
  end;
277
278
  TCipher_Cast256 = class(TDECFormattedCipher)
279
  protected
280
    /// <summary>
281
    ///   Initialize the key, based on the key passed in
282
    /// </summary>
283
    /// <param name="Key">
284
    ///   Encryption/Decryption key to be used
285
    /// </param>
286
    /// <param name="Size">
287
    ///   Size of the key passed in bytes.
288
    /// </param>
289
    procedure DoInit(const Key; Size: Integer); override;
290
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
291
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
292
  public
293
    class function Context: TCipherContext; override;
294
  end;
295
296
  TCipher_Mars = class(TDECFormattedCipher)
297
  protected
298
    /// <summary>
299
    ///   Initialize the key, based on the key passed in
300
    /// </summary>
301
    /// <param name="Key">
302
    ///   Encryption/Decryption key to be used
303
    /// </param>
304
    /// <param name="Size">
305
    ///   Size of the key passed in bytes.
306
    /// </param>
307
    procedure DoInit(const Key; Size: Integer); override;
308
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
309
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
310
  public
311
    class function Context: TCipherContext; override;
312
  end;
313
314
  /// <summary>
315
  ///   This is a well known stream cipher. In February 2015 its use in context
316
  ///   of TLS has been forbidden due to severe security issues.
317
  /// </summary>
318
  TCipher_RC4 = class(TDECFormattedCipher)
319
  protected
320
    /// <summary>
321
    ///   Initialize the key, based on the key passed in
322
    /// </summary>
323
    /// <param name="Key">
324
    ///   Encryption/Decryption key to be used
325
    /// </param>
326
    /// <param name="Size">
327
    ///   Size of the key passed in bytes.
328
    /// </param>
329
    procedure DoInit(const Key; Size: Integer); override;
330
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
331
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
332
  public
333
    class function Context: TCipherContext; override;
334
  end;
335
336
  TCipher_RC6 = class(TDECFormattedCipher)
337
  private
338
    FRounds: Integer;
339
    procedure SetRounds(Value: Integer);
340
    /// <summary>
341
    ///   Limits the number of rounds used to a minimum or maximum value,
342
    ///   depending on the current value. If FRounds is 0 it will be set to 20.
343
    /// </summary>
344
    procedure LimitRounds; inline;
345
  protected
346
    /// <summary>
347
    ///   Initialize the key, based on the key passed in
348
    /// </summary>
349
    /// <param name="Key">
350
    ///   Encryption/Decryption key to be used
351
    /// </param>
352
    /// <param name="Size">
353
    ///   Size of the key passed in bytes.
354
    /// </param>
355
    procedure DoInit(const Key; Size: Integer); override;
356
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
357
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
358
  public
359
    class function Context: TCipherContext; override;
360
    /// <summary>
361
    ///   Sets the number of rounds/times the algorithm is being applied to the
362
    ///   data. Range should be 16-24 and default is 20 rounds.
363
    /// </summary>
364
    property Rounds: Integer read FRounds write SetRounds;
365
  end;
366
367
  TCipher_Rijndael = class(TDECFormattedCipher)
368
  private
369
    FRounds: Integer;
370
  protected
371
    /// <summary>
372
    ///   Initialize the key, based on the key passed in
373
    /// </summary>
374
    /// <param name="Key">
375
    ///   Encryption/Decryption key to be used
376
    /// </param>
377
    /// <param name="Size">
378
    ///   Size of the key passed in bytes.
379
    /// </param>
380
    procedure DoInit(const Key; Size: Integer); override;
381
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
382
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
383
  public
384
    class function Context: TCipherContext; override;
385
    /// <summary>
386
    ///   Gets the number of rounds/times the algorithm is being applied to the
387
    ///   data. The number of rounds depends on the key size.
388
    /// </summary>
389
    property Rounds: Integer read FRounds;
390
  end;
391
392
  TCipher_AES = class(TCipher_Rijndael);
393
394
  TCipher_Square = class(TDECFormattedCipher)
395
  protected
396
    /// <summary>
397
    ///   Initialize the key, based on the key passed in
398
    /// </summary>
399
    /// <param name="Key">
400
    ///   Encryption/Decryption key to be used
401
    /// </param>
402
    /// <param name="Size">
403
    ///   Size of the key passed in bytes.
404
    /// </param>
405
    procedure DoInit(const Key; Size: Integer); override;
406
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
407
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
408
  public
409
    class function Context: TCipherContext; override;
410
  end;
411
412
  TCipher_SCOP = class(TDECFormattedCipher)
413
  protected
414
    /// <summary>
415
    ///   Initialize the key, based on the key passed in
416
    /// </summary>
417
    /// <param name="Key">
418
    ///   Encryption/Decryption key to be used
419
    /// </param>
420
    /// <param name="Size">
421
    ///   Size of the key passed in bytes.
422
    /// </param>
423
    procedure DoInit(const Key; Size: Integer); override;
424
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
425
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
426
  public
427
    class function Context: TCipherContext; override;
428
  end;
429
430
  /// <remarks>
431
  ///   Do only use if backwards compatibility with old code is necessary as
432
  ///   this implementation is faulty!
433
  /// </remarks>
434
  TCipher_SCOP_DEC52 = class(TDECFormattedCipher)
435
  protected
436
    /// <summary>
437
    ///   Initialize the key, based on the key passed in
438
    /// </summary>
439
    /// <param name="Key">
440
    ///   Encryption/Decryption key to be used
441
    /// </param>
442
    /// <param name="Size">
443
    ///   Size of the key passed in bytes.
444
    /// </param>
445
    procedure DoInit(const Key; Size: Integer); override;
446
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
447
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
448
  public
449
    class function Context: TCipherContext; override;
450
  end;
451
452
  TCipher_Sapphire = class(TDECFormattedCipher)
453
  protected
454
    /// <summary>
455
    ///   Initialize the key, based on the key passed in
456
    /// </summary>
457
    /// <param name="Key">
458
    ///   Encryption/Decryption key to be used
459
    /// </param>
460
    /// <param name="Size">
461
    ///   Size of the key passed in bytes.
462
    /// </param>
463
    procedure DoInit(const Key; Size: Integer); override;
464
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
465
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
466
  public
467
    class function Context: TCipherContext; override;
468
  end;
469
470
  /// <summary>
471
  ///   Base class for all DES based ciphers to fix issues with calling
472
  ///   inherited in DoInit, as all other DES based classes did inherit from
473
  ///   TCipher_1DES and inherited called the DoInit of that as well...
474
  /// </summary>
475
  TCipher_DESBase = class(TDECFormattedCipher)
476
  strict protected
477
    /// <summary>
478
    ///   Initialize the key, based on the key passed in
479
    /// </summary>
480
    /// <param name="Data">
481
    ///   Key for the current block to be encrypted/decrypted?
482
    /// </param>
483
    /// <param name="Key">
484
    ///   Encryption/Decryption key to be used
485
    /// </param>
486
    /// <param name="Size">
487
    ///   Size of the key passed in bytes.
488
    /// </param>
489
    /// <param name="Reverse">
490
    ///   Defines whether some internal calculation needs to be based from the
491
    ///   start index or the highest index  (= reverse)
492
    /// </param>
493
    procedure DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean);
494
  end;
495
496
  TCipher_1DES = class(TCipher_DESBase)
497
  protected
498
    procedure DoInit(const Key; Size: Integer); override;
499
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
500
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
501
  public
502
    class function Context: TCipherContext; override;
503
  end;
504
505
  TCipher_2DES = class(TCipher_DESBase)
506
  protected
507
    /// <summary>
508
    ///   Initialize the key, based on the key passed in
509
    /// </summary>
510
    /// <param name="Key">
511
    ///   Encryption/Decryption key to be used
512
    /// </param>
513
    /// <param name="Size">
514
    ///   Size of the key passed in bytes.
515
    /// </param>
516
    procedure DoInit(const Key; Size: Integer); override;
517
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
518
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
519
  public
520
    class function Context: TCipherContext; override;
521
  end;
522
523
  TCipher_3DES = class(TCipher_DESBase)
524
  protected
525
    /// <summary>
526
    ///   Initialize the key, based on the key passed in
527
    /// </summary>
528
    /// <param name="Key">
529
    ///   Encryption/Decryption key to be used
530
    /// </param>
531
    /// <param name="Size">
532
    ///   Size of the key passed in bytes.
533
    /// </param>
534
    procedure DoInit(const Key; Size: Integer); override;
535
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
536
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
537
  public
538
    class function Context: TCipherContext; override;
539
  end;
540
541
  TCipher_2DDES = class(TCipher_2DES)
542
  protected
543
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
544
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
545
  public
546
    class function Context: TCipherContext; override;
547
  end;
548
549
  TCipher_3DDES = class(TCipher_3DES)
550
  protected
551
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
552
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
553
  public
554
    class function Context: TCipherContext; override;
555
  end;
556
557
  TCipher_3TDES = class(TCipher_3DES)
558
  protected
559
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
560
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
561
  public
562
    class function Context: TCipherContext; override;
563
  end;
564
565
  TCipher_3Way = class(TDECFormattedCipher)
566
  protected
567
    /// <summary>
568
    ///   Initialize the key, based on the key passed in
569
    /// </summary>
570
    /// <param name="Key">
571
    ///   Encryption/Decryption key to be used
572
    /// </param>
573
    /// <param name="Size">
574
    ///   Size of the key passed in bytes.
575
    /// </param>
576
    procedure DoInit(const Key; Size: Integer); override;
577
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
578
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
579
  public
580
    class function Context: TCipherContext; override;
581
  end;
582
583
  TCipher_Cast128 = class(TDECFormattedCipher)
584
  private
585
    FRounds: Integer;
586
  protected
587
    /// <summary>
588
    ///   Initialize the key, based on the key passed in
589
    /// </summary>
590
    /// <param name="Key">
591
    ///   Encryption/Decryption key to be used
592
    /// </param>
593
    /// <param name="Size">
594
    ///   Size of the key passed in bytes.
595
    /// </param>
596
    procedure DoInit(const Key; Size: Integer); override;
597
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
598
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
599
  public
600
    class function Context: TCipherContext; override;
601
  end;
602
603
  TCipher_Gost = class(TDECFormattedCipher)
604
  protected
605
    /// <summary>
606
    ///   Initialize the key, based on the key passed in
607
    /// </summary>
608
    /// <param name="Key">
609
    ///   Encryption/Decryption key to be used
610
    /// </param>
611
    /// <param name="Size">
612
    ///   Size of the key passed in bytes.
613
    /// </param>
614
    procedure DoInit(const Key; Size: Integer); override;
615
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
616
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
617
  public
618
    class function Context: TCipherContext; override;
619
  end;
620
621
  /// <summary>
622
  ///   Alias for Gost
623
  /// </summary>
624
  TCipher_Magma = class(TCipher_Gost);
625
626
  /// <summary>
627
  ///   Do no longer use this algorithm if possible, as it got broken in 2015
628
  ///   by crypto analysis.
629
  /// </summary>
630
  TCipher_Misty = class(TDECFormattedCipher)
631
  protected
632
    /// <summary>
633
    ///   Initialize the key, based on the key passed in
634
    /// </summary>
635
    /// <param name="Key">
636
    ///   Encryption/Decryption key to be used
637
    /// </param>
638
    /// <param name="Size">
639
    ///   Size of the key passed in bytes.
640
    /// </param>
641
    procedure DoInit(const Key; Size: Integer); override;
642
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
643
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
644
  public
645
    class function Context: TCipherContext; override;
646
  end;
647
648
  /// <summary>
649
  ///   While this algorithm resembles the Data Encryption Standard (DES),
650
  ///   it is easier to implement in software and is supposed to be more secure.
651
  ///   It is not to be confused with another algorithm - known by the same
652
  ///   name - which is simply DES without the initial and final permutations.
653
  ///   The NewDES here is a completely different algorithm.
654
  ///
655
  ///   Be aware though that recent crypto analysis shows that this algorithm is
656
  ///   less safe than DES and thus not to be recommended for use!
657
  /// </summary>
658
  TCipher_NewDES = class(TDECFormattedCipher)
659
  protected
660
    /// <summary>
661
    ///   Initialize the key, based on the key passed in
662
    /// </summary>
663
    /// <param name="Key">
664
    ///   Encryption/Decryption key to be used
665
    /// </param>
666
    /// <param name="Size">
667
    ///   Size of the key passed in bytes.
668
    /// </param>
669
    procedure DoInit(const Key; Size: Integer); override;
670
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
671
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
672
  public
673
    class function Context: TCipherContext; override;
674
  end;
675
676
  TCipher_Q128 = class(TDECFormattedCipher)
677
  protected
678
    /// <summary>
679
    ///   Initialize the key, based on the key passed in
680
    /// </summary>
681
    /// <param name="Key">
682
    ///   Encryption/Decryption key to be used
683
    /// </param>
684
    /// <param name="Size">
685
    ///   Size of the key passed in bytes.
686
    /// </param>
687
    procedure DoInit(const Key; Size: Integer); override;
688
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
689
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
690
  public
691
    class function Context: TCipherContext; override;
692
  end;
693
694
  TCipher_RC2 = class(TDECFormattedCipher)
695
  protected
696
    /// <summary>
697
    ///   Initialize the key, based on the key passed in
698
    /// </summary>
699
    /// <param name="Key">
700
    ///   Encryption/Decryption key to be used
701
    /// </param>
702
    /// <param name="Size">
703
    ///   Size of the key passed in bytes.
704
    /// </param>
705
    procedure DoInit(const Key; Size: Integer); override;
706
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
707
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
708
  public
709
    class function Context: TCipherContext; override;
710
  end;
711
712
  TCipher_RC5 = class(TDECFormattedCipher)
713
  private
714
    FRounds: Integer;
715
    procedure SetRounds(Value: Integer);
716
  protected
717
    /// <summary>
718
    ///   Initialize the key, based on the key passed in
719
    /// </summary>
720
    /// <param name="Key">
721
    ///   Encryption/Decryption key to be used
722
    /// </param>
723
    /// <param name="Size">
724
    ///   Size of the key passed in bytes.
725
    /// </param>
726
    procedure DoInit(const Key; Size: Integer); override;
727
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
728
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
729
  public
730
    class function Context: TCipherContext; override;
731
732
    /// <summary>
733
    ///   Sets the number of rounds/times the algorithm is being applied to the
734
    ///   data. Allowed range is 0-255, if you can choose we recommend a
735
    ///   value > 16.
736
    /// </summary>
737
    property Rounds: Integer read FRounds write SetRounds;
738
  end;
739
740
  /// <summary>
741
  ///  svK40     SAFER K-40    Keysize is 40bit  ->  5 Byte
742
  ///  svK64     SAFER K-64    Keysize is 64bit  ->  8 Byte
743
  ///  svK128    SAFER K-128   KeySize is 128bit -> 16 Byte
744
  ///  svSK40    SAFER SK-40   Stronger Version from K-40 with better Key Scheduling
745
  ///  svSK64    SAFER SK-64   Stronger Version from K-64 with better Key Scheduling
746
  ///  svSK128   SAFER SK-128  Stronger Version from K-128 with better Key Scheduling
747
  /// </summary>
748
  TSAFERVersion = (svSK128, svSK64, svSK40, svK128, svK64, svK40);
749
750
  TCipher_SAFER = class(TDECFormattedCipher)
751
  private
752
    FRounds: Integer;
753
    FVersion: TSAFERVersion;
754
    procedure SetRounds(Value: Integer);
755
    procedure SetVersion(Value: TSAFERVersion);
756
  protected
757
    /// <summary>
758
    ///   Initialize the key, based on the key passed in
759
    /// </summary>
760
    /// <param name="Key">
761
    ///   Encryption/Decryption key to be used
762
    /// </param>
763
    /// <param name="Size">
764
    ///   Size of the key passed in bytes.
765
    /// </param>
766
    procedure DoInit(const Key; Size: Integer); override;
767
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
768
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
769
  public
770
    class function Context: TCipherContext; override;
771
772
    /// <summary>
773
    ///   Sets the number of rounds/times the algorithm is being applied to the
774
    ///   data. Range should be 4-13 and default is 5, 6, 10 or 8 rounds
775
    ///   depending on the version
776
    /// </summary>
777
    property Rounds: Integer read FRounds write SetRounds;
778
    property Version: TSAFERVersion read FVersion write SetVersion;
779
  end;
780
781
  {$IFNDEF CPU64BITS}
782
  PLong64 = ^TLong64;
783
  TLong64  = packed record
784
    L, R: UInt32;
785
  end;
786
787
  PLong64Array = ^TLong64Array;
788
  TLong64Array = array[0..1023] of TLong64;
789
  {$ENDIF}
790
791
  TLogArray = array[0..255] of Byte;
792
793
  /// <summary>
794
  ///   Base class for both Shark implementations
795
  /// </summary>
796
  TCipher_SharkBase = class(TDECFormattedCipher)
797
  strict protected
798
    {$IFNDEF CPU64BITS}
799
    function Transform(A: TLong64; Log, ALog: TLogArray): TLong64;
800
    function Shark(D: TLong64; K: PLong64): TLong64;
801
    {$ELSE}
802
    function Transform(A: UInt64; Log, ALog: TLogArray): UInt64;
803
    function SharkEncode(D: UInt64; K: PUInt64): UInt64;
804
    {$ENDIF}
805
806
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
807
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
808
  public
809
    class function Context: TCipherContext; override;
810
  end;
811
812
  TCipher_Shark = class(TCipher_SharkBase)
813
  protected
814
    /// <summary>
815
    ///   Initialize the key, based on the key passed in
816
    /// </summary>
817
    /// <param name="Key">
818
    ///   Encryption/Decryption key to be used
819
    /// </param>
820
    /// <param name="Size">
821
    ///   Size of the key passed in bytes.
822
    /// </param>
823
    procedure DoInit(const Key; Size: Integer); override;
824
  public
825
826
  end;
827
828
  /// <remarks>
829
  ///   Do only use if backwards compatibility with old code is necessary as
830
  ///   this implementation is faulty!
831
  /// </remarks>
832
  TCipher_Shark_DEC52 = class(TCipher_SharkBase)
833
  protected
834
    /// <summary>
835
    ///   Initialize the key, based on the key passed in
836
    /// </summary>
837
    /// <param name="Key">
838
    ///   Encryption/Decryption key to be used
839
    /// </param>
840
    /// <param name="Size">
841
    ///   Size of the key passed in bytes.
842
    /// </param>
843
    procedure DoInit(const Key; Size: Integer); override;
844
  end;
845
846
  TCipher_Skipjack = class(TDECFormattedCipher)
847
  strict private
848
    procedure SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte); inline;
849
    procedure SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab); inline;
850
  protected
851
    /// <summary>
852
    ///   Initialize the key, based on the key passed in
853
    /// </summary>
854
    /// <param name="Key">
855
    ///   Encryption/Decryption key to be used
856
    /// </param>
857
    /// <param name="Size">
858
    ///   Size of the key passed in bytes.
859
    /// </param>
860
    procedure DoInit(const Key; Size: Integer); override;
861
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
862
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
863
  public
864
    class function Context: TCipherContext; override;
865
  end;
866
867
  TCipher_TEA = class(TDECFormattedCipher)
868
  private
869
    FRounds: Integer;
870
    procedure SetRounds(Value: Integer);
871
  protected
872
    /// <summary>
873
    ///   Initialize the key, based on the key passed in
874
    /// </summary>
875
    /// <param name="Key">
876
    ///   Encryption/Decryption key to be used
877
    /// </param>
878
    /// <param name="Size">
879
    ///   Size of the key passed in bytes.
880
    /// </param>
881
    procedure DoInit(const Key; Size: Integer); override;
882
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
883
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
884
  public
885
    class function Context: TCipherContext; override;
886
887
    /// <summary>
888
    ///   16 - 256 Rounds, 16 (default) is sufficient, 64 is the official
889
    ///   recommendation. If a value outside the range of 16 to 256 is assigned
890
    ///   it will be limited to that range.
891
    /// </summary>
892
    property Rounds: Integer read FRounds write SetRounds;
893
  end;
894
895
  /// <summary>
896
  ///   XTEA is an improved version of the TEA algorithm.
897
  /// </summary>
898
  /// <remarks>
899
  ///   In DEC V5.2 at least and in former commits of DEC 6.0 development version
900
  ///   this algorithm was broken due to differences in brackets and thus returned
901
  ///   a different result. It is unclear why nobody reported this as bug yet
902
  ///   but be aware that if you need the old variant for compatibility reasons
903
  ///   you need a commit from before 3rd December 2020.
904
  /// </remarks>
905
  TCipher_XTEA = class(TCipher_TEA)
906
  protected
907
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
908
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
909
  end;
910
911
  TCipher_TEAN = class(TCipher_XTEA);
912
913
  /// <summary>
914
  ///   XTEA is an improved version of the TEA algorithm. This version is the
915
  ///   old faulty one from DEC 5.2. Use only if necessary for compatibility
916
  ///    reasons!
917
  /// </summary>
918
  /// <remarks>
919
  ///   In DEC V5.2 at least and in former commits of DEC 6.0 development version
920
  ///   this algorithm was broken due to differences in brackets and thus returned
921
  ///   a different result. It is unclear why nobody reported this as bug yet
922
  ///   but be aware that if you need the old variant for compatibility reasons
923
  ///   you need a commit from before 3rd December 2020.
924
  /// </remarks>
925
  TCipher_XTEA_DEC52 = class(TCipher_TEA)
926
  protected
927
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
928
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
929
  end;
930
931
implementation
932
933
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
934
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
935
936
uses
937
  {$IFDEF FPC}
938
  SysUtils,
939
  {$ELSE}
940
  System.SysUtils,
941
  {$ENDIF}
942
  DECData, DECDataCipher;
943
944
{ TCipher_Null }
945
946
class function TCipher_Null.Context: TCipherContext;
947
begin
948
  Result.KeySize                     := 0;
949
  Result.BlockSize                   := 1;
950
  Result.BufferSize                  := 8;
951
  Result.AdditionalBufferSize        := 0;
952
  Result.NeedsAdditionalBufferBackup := False;
953
  Result.MinRounds                   := 1;
954
  Result.MaxRounds                   := 1;
955
  Result.CipherType                  := [ctNull, ctSymmetric];
956
end;
957
958
procedure TCipher_Null.DoInit(const Key; Size: Integer);
959
begin
960
  inherited;
961
end;
962
963
procedure TCipher_Null.DoEncode(Source, Dest: Pointer; Size: Integer);
964
begin
965
  if Source <> Dest then
966
    Move(Source^, Dest^, Size);
967
end;
968
969
procedure TCipher_Null.DoDecode(Source, Dest: Pointer; Size: Integer);
970
begin
971
  if Source <> Dest then
972
    Move(Source^, Dest^, Size);
973
end;
974
975
{ TCipher_Blowfish }
976
977
type
978
  PBlowfish = ^TBlowfish;
979
  TBlowfish = array[0..3, 0..255] of UInt32;
980
981
class function TCipher_Blowfish.Context: TCipherContext;
982
begin
983
  Result.KeySize                     := 56;
984
  Result.BufferSize                  := 8;
985
  Result.BlockSize                   := 8;
986
  Result.AdditionalBufferSize        := SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key);
987
  Result.NeedsAdditionalBufferBackup := False;
988
  Result.MinRounds                   := 1;
989
  Result.MaxRounds                   := 1;
990
  Result.CipherType := [ctSymmetric, ctBlock];
991
end;
992
993
procedure TCipher_Blowfish.DoInit(const Key; Size: Integer);
994
var
995
  I, J: Integer;
996
  B: array[0..1] of UInt32;
997
  K: PByteArray;
998
  P: PUInt32Array;
999
  S: PBlowfish;
1000
begin
1001
  K := @Key;
1002
  S := FAdditionalBuffer;
1003
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math
1004
1005
  Move(Blowfish_Data, S^, SizeOf(Blowfish_Data));
1006
  Move(Blowfish_Key, P^, Sizeof(Blowfish_Key));
1007
  J := 0;
1008
  if Size > 0 then
1009
    for I := 0 to 17 do
1010
    begin
1011
      P[I] := P[I] xor (K[(J + 0) mod Size] shl 24 +
1012
                        K[(J + 1) mod Size] shl 16 +
1013
                        K[(J + 2) mod Size] shl  8 +
1014
                        K[(J + 3) mod Size] shl  0);
1015
      J := (J + 4) mod Size;
1016
    end;
1017
  FillChar(B, SizeOf(B), 0);
1018
1019
  for I := 0 to 8 do
1020
  begin
1021
    DoEncode(@B, @B, SizeOf(B));
1022
    P[I * 2 + 0] := SwapUInt32(B[0]);
1023
    P[I * 2 + 1] := SwapUInt32(B[1]);
1024
  end;
1025
  for I := 0 to 3 do
1026
    for J := 0 to 127 do
1027
    begin
1028
      DoEncode(@B, @B, SizeOf(B));
1029
      S[I, J * 2 + 0] := SwapUInt32(B[0]);
1030
      S[I, J * 2 + 1] := SwapUInt32(B[1]);
1031
    end;
1032
  FillChar(B, SizeOf(B), 0);
1033
1034
  inherited;
1035
end;
1036
1037
procedure TCipher_Blowfish.DoEncode(Source, Dest: Pointer; Size: Integer);
1038
{$IFDEF X86ASM}
1039
// Source = EDX, Dest = ECX, Size on Stack
1040
asm
1041
        PUSH   EDI
1042
        PUSH   ESI
1043
        PUSH   EBX
1044
        PUSH   EBP
1045
        PUSH   ECX
1046
        MOV    ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer
1047
        MOV    EBX,[EDX + 0]     // A
1048
        MOV    EBP,[EDX + 4]     // B
1049
        BSWAP  EBX               // CPU >= 486
1050
        BSWAP  EBP
1051
        XOR    EBX,[ESI + 4 * 256 * 4]
1052
        XOR    EDI,EDI
1053
@@1:    MOV    EAX,EBX
1054
        SHR    EBX,16
1055
        MOVZX  ECX,BH
1056
        AND    EBX,0FFh
1057
        MOV    ECX,[ESI + ECX * 4 + 1024 * 0]
1058
        MOV    EBX,[ESI + EBX * 4 + 1024 * 1]
1059
        MOVZX  EDX,AH
1060
        ADD    EBX,ECX
1061
        MOVZX  ECX,AL
1062
        MOV    EDX,[ESI + EDX * 4 + 1024 * 2]
1063
        MOV    ECX,[ESI + ECX * 4 + 1024 * 3]
1064
        XOR    EBX,EDX
1065
        XOR    EBP,[ESI + 4 * 256 * 4 + 4 + EDI * 4]
1066
        ADD    EBX,ECX
1067
        INC    EDI
1068
        XOR    EBX,EBP
1069
        TEST   EDI,010h
1070
        MOV    EBP,EAX
1071
        JZ     @@1
1072
        POP    EAX
1073
        XOR    EBP,[ESI + 4 * 256 * 4 + 17 * 4]
1074
        BSWAP  EBX
1075
        BSWAP  EBP
1076
        MOV    [EAX + 4],EBX
1077
        MOV    [EAX + 0],EBP
1078
        POP    EBP
1079
        POP    EBX
1080
        POP    ESI
1081
        POP    EDI
1082
end;
1083
{$ELSE !X86ASM}
1084
var
1085
  I, A, B: UInt32;
1086
  P: PUInt32Array;
1087
  D: PBlowfish;
1088
begin
1089
  Assert(Size = Context.BlockSize, 'Size of ' + IntToStr(Size) + ' does not equal '+
1090
                                   'block size of ' + IntToStr(Context.BlockSize));
1091
1092
  D := Pointer(FAdditionalBuffer);
1093
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math
1094
  A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0]; P := @P[1];
1095
  B := SwapUInt32(PUInt32Array(Source)[1]);
1096
  for I := 0 to 7 do
1097
  begin
1098
    B := B xor P[0] xor (D[0, A shr 24        ] +
1099
                         D[1, A shr 16 and $FF] xor
1100
                         D[2, A shr  8 and $FF] +
1101
                         D[3, A        and $FF]);
1102
1103
    A := A xor P[1] xor (D[0, B shr 24        ] +
1104
                         D[1, B shr 16 and $FF] xor
1105
                         D[2, B shr  8 and $FF] +
1106
                         D[3, B        and $FF]);
1107
    P := @P[2];
1108
  end;
1109
  PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]);
1110
  PUInt32Array(Dest)[1] := SwapUInt32(A);
1111
end;
1112
{$ENDIF !X86ASM}
1113
1114
procedure TCipher_Blowfish.DoDecode(Source, Dest: Pointer; Size: Integer);
1115
{$IFDEF X86ASM}
1116
asm
1117
        PUSH   EDI
1118
        PUSH   ESI
1119
        PUSH   EBX
1120
        PUSH   EBP
1121
        PUSH   ECX
1122
        MOV    ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer
1123
        MOV    EBX,[EDX + 0]     // A
1124
        MOV    EBP,[EDX + 4]     // B
1125
        BSWAP  EBX
1126
        BSWAP  EBP
1127
        XOR    EBX,[ESI + 4 * 256 * 4 + 17 * 4]
1128
        MOV    EDI,16
1129
@@1:    MOV    EAX,EBX
1130
        SHR    EBX,16
1131
        MOVZX  ECX,BH
1132
        MOVZX  EDX,BL
1133
        MOV    EBX,[ESI + ECX * 4 + 1024 * 0]
1134
        MOV    EDX,[ESI + EDX * 4 + 1024 * 1]
1135
        MOVZX  ECX,AH
1136
        LEA    EBX,[EBX + EDX]
1137
        MOVZX  EDX,AL
1138
        MOV    ECX,[ESI + ECX * 4 + 1024 * 2]
1139
        MOV    EDX,[ESI + EDX * 4 + 1024 * 3]
1140
        XOR    EBX,ECX
1141
        XOR    EBP,[ESI + 4 * 256 * 4 + EDI * 4]
1142
        LEA    EBX,[EBX + EDX]
1143
        XOR    EBX,EBP
1144
        DEC    EDI
1145
        MOV    EBP,EAX
1146
        JNZ    @@1
1147
        POP    EAX
1148
        XOR    EBP,[ESI + 4 * 256 * 4]
1149
        BSWAP  EBX
1150
        BSWAP  EBP
1151
        MOV    [EAX + 0],EBP
1152
        MOV    [EAX + 4],EBX
1153
        POP    EBP
1154
        POP    EBX
1155
        POP    ESI
1156
        POP    EDI
1157
end;
1158
{$ELSE !X86ASM}
1159
var
1160
  I, A, B: UInt32;
1161
  P: PUInt32Array;
1162
  D: PBlowfish;
1163
begin
1164
  Assert(Size = Context.BlockSize);
1165
1166
  D := Pointer(FAdditionalBuffer);
1167
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key) - SizeOf(Int32));
1168
  A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0];
1169
  B := SwapUInt32(PUInt32Array(Source)[1]);
1170
  for I := 0 to 7 do
1171
  begin
1172
    Dec(PUInt32(P), 2);
1173
    B := B xor P[1] xor (D[0, A shr 24        ] +
1174
                         D[1, A shr 16 and $FF] xor
1175
                         D[2, A shr  8 and $FF] +
1176
                         D[3, A        and $FF]);
1177
    A := A xor P[0] xor (D[0, B shr 24        ] +
1178
                         D[1, B shr 16 and $FF] xor
1179
                         D[2, B shr  8 and $FF] +
1180
                         D[3, B        and $FF]);
1181
  end;
1182
  Dec(PUInt32(P));
1183
  PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]);
1184
  PUInt32Array(Dest)[1] := SwapUInt32(A);
1185
end;
1186
{$ENDIF !X86ASM}
1187
1188
{ TCipher_Twofish }
1189
1190
type
1191
  PTwofishBox = ^TTwofishBox;
1192
  TTwofishBox = array[0..3, 0..255] of UInt32;
1193
1194
  TLongRec = record
1195
    case Integer of
1196
      0: (L: UInt32);
1197
      1: (A, B, C, D: Byte);
1198
    end;
1199
1200
class function TCipher_Twofish.Context: TCipherContext;
1201
begin
1202
  Result.KeySize                     := 32;
1203
  Result.BufferSize                  := 16;
1204
  Result.BlockSize                   := 16;
1205
  Result.AdditionalBufferSize        := 4256;
1206
  Result.NeedsAdditionalBufferBackup := False;
1207
  Result.MinRounds                   := 1;
1208
  Result.MaxRounds                   := 1;
1209
  Result.CipherType                  := [ctSymmetric, ctBlock];
1210
end;
1211
1212
procedure TCipher_Twofish.DoInit(const Key; Size: Integer);
1213
var
1214
  BoxKey: array[0..3] of TLongRec;
1215
  SubKey: PUInt32Array;
1216
  Box: PTwofishBox;
1217
1218
  procedure SetupKey;
1219
1220
    function Encode(K0, K1: Integer): Integer;
1221
    var
1222
      R, I, J, G2, G3: Integer;
1223
      B: byte;
1224
    begin
1225
      R := 0;
1226
      for I := 0 to 1 do
1227
      begin
1228
        if I <> 0 then
1229
          R := R xor K0
1230
        else
1231
          R := R xor K1;
1232
        for J := 0 to 3 do
1233
        begin
1234
          B := R shr 24;
1235
          if B and $80 <> 0 then
1236
            G2 := (B shl 1 xor $014D) and $FF
1237
          else
1238
            G2 := B shl 1 and $FF;
1239
          if B and 1 <> 0 then
1240
            G3 := (B shr 1 and $7F) xor $014D shr 1 xor G2
1241
          else
1242
            G3 := (B shr 1 and $7F) xor G2;
1243
          R := R shl 8 xor G3 shl 24 xor G2 shl 16 xor G3 shl 8 xor B;
1244
        end;
1245
      end;
1246
      Result := R;
1247
    end;
1248
1249
    function F32(X: Integer; K: array of Integer): Integer;
1250
    var
1251
      A, B, C, D: UInt32;
1252
    begin
1253
      A := X        and $FF;
1254
      B := X shr  8 and $FF;
1255
      C := X shr 16 and $FF;
1256
      D := X shr 24;
1257
      if Size = 32 then
1258
      begin
1259
        A := Twofish_8x8[1, A] xor K[3]        and $FF;
1260
        B := Twofish_8x8[0, B] xor K[3] shr  8 and $FF;
1261
        C := Twofish_8x8[0, C] xor K[3] shr 16 and $FF;
1262
        D := Twofish_8x8[1, D] xor K[3] shr 24;
1263
      end;
1264
      if Size >= 24 then
1265
      begin
1266
        A := Twofish_8x8[1, A] xor K[2]        and $FF;
1267
        B := Twofish_8x8[1, B] xor K[2] shr  8 and $FF;
1268
        C := Twofish_8x8[0, C] xor K[2] shr 16 and $FF;
1269
        D := Twofish_8x8[0, D] xor K[2] shr 24;
1270
      end;
1271
      A := Twofish_8x8[0, A] xor K[1]        and $FF;
1272
      B := Twofish_8x8[1, B] xor K[1] shr  8 and $FF;
1273
      C := Twofish_8x8[0, C] xor K[1] shr 16 and $FF;
1274
      D := Twofish_8x8[1, D] xor K[1] shr 24;
1275
1276
      A := Twofish_8x8[0, A] xor K[0]        and $FF;
1277
      B := Twofish_8x8[0, B] xor K[0] shr  8 and $FF;
1278
      C := Twofish_8x8[1, C] xor K[0] shr 16 and $FF;
1279
      D := Twofish_8x8[1, D] xor K[0] shr 24;
1280
1281
      Result := Twofish_Data[0, A] xor Twofish_Data[1, B] xor
1282
                Twofish_Data[2, C] xor Twofish_Data[3, D];
1283
    end;
1284
1285
  var
1286
    I, J, A, B: Integer;
1287
    E, O: array[0..3] of Integer;
1288
    K: array[0..7] of Integer;
1289
  begin
1290
    FillChar(K, SizeOf(K), 0);
1291
    Move(Key, K, Size);
1292
    if Size <= 16 then
1293
      Size := 16
1294
    else
1295
    if Size <= 24 then
1296
      Size := 24
1297
    else
1298
      Size := 32;
1299
    J := Size shr 3 - 1;
1300
    for I := 0 to J do
1301
    begin
1302
      E[I] := K[I shl 1];
1303
      O[I] := K[I shl 1 + 1];
1304
      BoxKey[J].L := Encode(E[I], O[I]);
1305
      Dec(J);
1306
    end;
1307
    J := 0;
1308
    for I := 0 to 19 do
1309
    begin
1310
      A := F32(J, E);
1311
      B := F32(J + $01010101, O);
1312
      B := B shl 8 or B shr 24;
1313
      SubKey[I shl 1] := A + B;
1314
      B := A + B shl 1;     // here buggy instead shr 1 it's correct shl 1
1315
      SubKey[I shl 1 + 1] := B shl 9 or B shr 23;
1316
      Inc(J, $02020202);
1317
    end;
1318
  end;
1319
1320
  procedure DoXOR(D, S: PUInt32Array; Value: UInt32);
1321
  var
1322
    I: UInt32;
1323
  begin
1324
    Value := (Value and $FF) * $01010101;
1325
    for I := 0 to 63 do
1326
      D[I] := S[I] xor Value;
1327
  end;
1328
1329
  procedure SetupBox128;
1330
  var
1331
    L: array[0..255] of Byte;
1332
    A, I: Integer;
1333
  begin
1334
    DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L);
1335
    A := BoxKey[0].A;
1336
    for I := 0 to 255 do
1337
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, L[I]] xor A];
1338
    DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 8);
1339
    A := BoxKey[0].B;
1340
    for I := 0 to 255 do
1341
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, L[I]] xor A];
1342
    DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L shr 16);
1343
    A := BoxKey[0].C;
1344
    for I := 0 to 255 do
1345
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, L[I]] xor A];
1346
    DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 24);
1347
    A := BoxKey[0].D;
1348
    for I := 0 to 255 do
1349
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, L[I]] xor A];
1350
  end;
1351
1352
  procedure SetupBox192;
1353
  var
1354
    L: array[0..255] of Byte;
1355
    A, B, I: Integer;
1356
  begin
1357
    DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L);
1358
    A := BoxKey[0].A;
1359
    B := BoxKey[1].A;
1360
    for I := 0 to 255 do
1361
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A];
1362
    DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L shr 8);
1363
    A := BoxKey[0].B;
1364
    B := BoxKey[1].B;
1365
    for I := 0 to 255 do
1366
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A];
1367
    DoXOR(@L, @Twofish_8x8[0], BoxKey[2].L shr 16);
1368
    A := BoxKey[0].C;
1369
    B := BoxKey[1].C;
1370
    for I := 0 to 255 do
1371
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A];
1372
    DoXOR(@L ,@Twofish_8x8[0], BoxKey[2].L shr 24);
1373
    A := BoxKey[0].D;
1374
    B := BoxKey[1].D;
1375
    for I := 0 to 255 do
1376
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A];
1377
  end;
1378
1379
  procedure SetupBox256;
1380
  var
1381
    L: array[0..255] of Byte;
1382
    K: array[0..255] of Byte;
1383
    A, B, I: Integer;
1384
  begin
1385
    DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L);
1386
    for I := 0 to 255 do
1387
      L[I] := Twofish_8x8[1, K[I]];
1388
    DoXOR(@L, @L, BoxKey[2].L);
1389
    A := BoxKey[0].A;
1390
    B := BoxKey[1].A;
1391
    for I := 0 to 255 do
1392
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A];
1393
    DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 8);
1394
    for I := 0 to 255 do
1395
      L[I] := Twofish_8x8[1, K[I]];
1396
    DoXOR(@L, @L, BoxKey[2].L shr 8);
1397
    A := BoxKey[0].B;
1398
    B := BoxKey[1].B;
1399
    for I := 0 to 255 do
1400
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A];
1401
    DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 16);
1402
    for I := 0 to 255 do
1403
      L[I] := Twofish_8x8[0, K[I]];
1404
    DoXOR(@L, @L, BoxKey[2].L shr 16);
1405
    A := BoxKey[0].C;
1406
    B := BoxKey[1].C;
1407
    for I := 0 to 255 do
1408
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A];
1409
    DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L shr 24);
1410
    for I := 0 to 255 do
1411
      L[I] := Twofish_8x8[0, K[I]];
1412
    DoXOR(@L, @L, BoxKey[2].L shr 24);
1413
    A := BoxKey[0].D;
1414
    B := BoxKey[1].D;
1415
    for I := 0 to 255 do
1416
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A];
1417
  end;
1418
1419
begin
1420
  SubKey := FAdditionalBuffer;
1421
  Box    := @SubKey[40];
1422
  SetupKey;
1423
  if Size = 16 then
1424
    SetupBox128
1425
  else
1426
  if Size = 24 then
1427
    SetupBox192
1428
  else
1429
    SetupBox256;
1430
1431
  inherited;
1432
end;
1433
1434
procedure TCipher_Twofish.DoEncode(Source, Dest: Pointer; Size: Integer);
1435
var
1436
  S: PUInt32Array;
1437
  Box: PTwofishBox;
1438
  I, X, Y: UInt32;
1439
  A, B, C, D: TLongRec;
1440
begin
1441
  Assert(Size = Context.BlockSize);
1442
1443
  S   := FAdditionalBuffer;
1444
  A.L := PUInt32Array(Source)[0] xor S[0];
1445
  B.L := PUInt32Array(Source)[1] xor S[1];
1446
  C.L := PUInt32Array(Source)[2] xor S[2];
1447
  D.L := PUInt32Array(Source)[3] xor S[3];
1448
1449
  Box := @S[40];
1450
  S   := @S[8];
1451
  for I := 0 to 7 do
1452
  begin
1453
    X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D];
1454
    Y := Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C] xor Box[0, B.D];
1455
    D.L := D.L shl 1 or D.L shr 31;
1456
    C.L := C.L xor (X + Y       + S[0]);
1457
    D.L := D.L xor (X + Y shl 1 + S[1]);
1458
    C.L := C.L shr 1 or C.L shl 31;
1459
1460
    X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D];
1461
    Y := Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C] xor Box[0, D.D];
1462
    B.L := B.L shl 1 or B.L shr 31;
1463
    A.L := A.L xor (X + Y       + S[2]);
1464
    B.L := B.L xor (X + Y shl 1 + S[3]);
1465
    A.L := A.L shr 1 or A.L shl 31;
1466
1467
    S := @S[4];
1468
  end;
1469
  S := FAdditionalBuffer;
1470
  PUInt32Array(Dest)[0] := C.L xor S[4];
1471
  PUInt32Array(Dest)[1] := D.L xor S[5];
1472
  PUInt32Array(Dest)[2] := A.L xor S[6];
1473
  PUInt32Array(Dest)[3] := B.L xor S[7];
1474
end;
1475
1476
procedure TCipher_Twofish.DoDecode(Source, Dest: Pointer; Size: Integer);
1477
var
1478
  S: PUInt32Array;
1479
  Box: PTwofishBox;
1480
  I, X, Y: UInt32;
1481
  A, B, C, D: TLongRec;
1482
begin
1483
  Assert(Size = Context.BlockSize);
1484
1485
  S := FAdditionalBuffer;
1486
  Box := @S[40];
1487
  C.L := PUInt32Array(Source)[0] xor S[4];
1488
  D.L := PUInt32Array(Source)[1] xor S[5];
1489
  A.L := PUInt32Array(Source)[2] xor S[6];
1490
  B.L := PUInt32Array(Source)[3] xor S[7];
1491
  S := @S[36];
1492
  for I := 0 to 7 do
1493
  begin
1494
    X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D];
1495
    Y := Box[0, D.D] xor Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C];
1496
    A.L := A.L shl 1 or A.L shr 31;
1497
    B.L := B.L xor (X + Y shl 1 + S[3]);
1498
    A.L := A.L xor (X + Y       + S[2]);
1499
    B.L := B.L shr 1 or B.L shl 31;
1500
1501
    X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D];
1502
    Y := Box[0, B.D] xor Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C];
1503
    C.L := C.L shl 1 or C.L shr 31;
1504
    D.L := D.L xor (X + Y shl 1 + S[1]);
1505
    C.L := C.L xor (X + Y       + S[0]);
1506
    D.L := D.L shr 1 or D.L shl 31;
1507
1508
    Dec(PUInt32(S), 4);
1509
  end;
1510
  S := FAdditionalBuffer;
1511
  PUInt32Array(Dest)[0] := A.L xor S[0];
1512
  PUInt32Array(Dest)[1] := B.L xor S[1];
1513
  PUInt32Array(Dest)[2] := C.L xor S[2];
1514
  PUInt32Array(Dest)[3] := D.L xor S[3];
1515
end;
1516
1517
{ TCipher_IDEA }
1518
1519
class function TCipher_IDEA.Context: TCipherContext;
1520
begin
1521
  Result.KeySize                     := 16;
1522
  Result.BufferSize                  := 8;
1523
  Result.BlockSize                   := 8;
1524
  Result.AdditionalBufferSize        := 208;
1525
  Result.NeedsAdditionalBufferBackup := False;
1526
  Result.MinRounds                   := 1;
1527
  Result.MaxRounds                   := 1;
1528
  Result.CipherType := [ctSymmetric, ctBlock];
1529
end;
1530
1531
procedure TCipher_IDEA.DoInit(const Key; Size: Integer);
1532
1533
  function IDEAInv(X: Word): Word;
1534
  var
1535
    A, B, C, D: Word;
1536
  begin
1537
    if X <= 1 then
1538
    begin
1539
      Result := X;
1540
      Exit;
1541
    end;
1542
    A := 1;
1543
    B := $10001 div X;
1544
    C := $10001 mod X;
1545
    while C <> 1 do
1546
    begin
1547
      D := X div C;
1548
      X := X mod C;
1549
      Inc(A, B * D);
1550
      if X = 1 then
1551
      begin
1552
        Result := A;
1553
        Exit;
1554
      end;
1555
      D := C div X;
1556
      C := C mod X;
1557
      Inc(B, A * D);
1558
    end;
1559
    Result := 1 - B;
1560
  end;
1561
1562
var
1563
  I: Integer;
1564
  E: PWordArray;
1565
  A, B, C: Word;
1566
  K, D: PWordArray;
1567
begin
1568
  E := FAdditionalBuffer;
1569
  Move(Key, E^, Size);
1570
  for I := 0 to 7 do
1571
    E[I] := Swap(E[I]);
1572
  for I := 0 to 39 do
1573
    E[I + 8] := E[I and not 7 + (I + 1) and 7] shl 9 or
1574
                E[I and not 7 + (I + 2) and 7] shr 7;
1575
  for I := 41 to 44 do
1576
    E[I + 7] := E[I] shl 9 or E[I + 1] shr 7;
1577
  K  := E;
1578
  D  := @E[100];
1579
  A  := IDEAInv(K[0]);
1580
  B  := 0 - K[1];
1581
  C  := 0 - K[2];
1582
  D[3] := IDEAInv(K[3]);
1583
  D[2] := C;
1584
  D[1] := B;
1585
  D[0] := A;
1586
  Inc(PWord(K), 4);
1587
  for I := 1 to 8 do
1588
  begin
1589
    Dec(PWord(D), 6);
1590
    A    := K[0];
1591
    D[5] := K[1];
1592
    D[4] := A;
1593
    A    := IDEAInv(K[2]);
1594
    B    := 0 - K[3];
1595
    C    := 0 - K[4];
1596
    D[3] := IDEAInv(K[5]);
1597
    D[2] := B;
1598
    D[1] := C;
1599
    D[0] := A;
1600
    Inc(PWord(K), 6);
1601
  end;
1602
  A    := D[2];
1603
  D[2] := D[1];
1604
  D[1] := A;
1605
1606
  inherited;
1607
end;
1608
1609
function IDEAMul(X, Y: UInt32): UInt32;
1610
{$IF defined(X86ASM) or defined(X64ASM)}
1611
asm
1612
    {$IFDEF X64ASM}
1613
       MOV    EAX,ECX
1614
    {$ENDIF X64ASM}
1615
       AND    EAX,0FFFFh
1616
       JZ     @@1
1617
       AND    EDX,0FFFFh
1618
       JZ     @@1
1619
       MUL    EDX
1620
       MOV    EDX,EAX
1621
       MOV    ECX,EAX
1622
       SHR    EDX,16
1623
       SUB    EAX,EDX
1624
       SUB    CX,AX
1625
       ADC    EAX,0
1626
       RET
1627
@@1:   LEA    EAX,[EAX + EDX - 1]
1628
       NEG    EAX
1629
end;
1630
{$ELSE}
1631
begin
1632
  X := X and $FFFF;
1633
  if X <> 0 then
1634
  begin
1635
    Y := Y and $FFFF;
1636
    if Y <> 0 then
1637
    begin
1638
      X := X * Y;
1639
      Result := X - (X shr 16);
1640
      if Word(X) < Word(Result) then // carry flag check for "sub cx,ax"
1641
        Inc(Result);
1642
      Exit;
1643
    end;
1644
  end;
1645
  Result := -(X + Y - 1);
1646
end;
1647
{$IFEND}
1648
1649
procedure IDEACipher(Source, Dest: PUInt32Array; Key: PWordArray);
1650
var
1651
  I: UInt32;
1652
  X, Y, A, B, C, D: UInt32;
1653
begin
1654
  I := SwapUInt32(Source[0]);
1655
  A := I shr 16;
1656
  B := I and $FFFF;
1657
  I := SwapUInt32(Source[1]);
1658
  C := I shr 16;
1659
  D := I and $FFFF;
1660
  for I := 0 to 7 do
1661
  begin
1662
    A := IDEAMul(A, Key[0]);
1663
    Inc(B, Key[1]);
1664
    Inc(C, Key[2]);
1665
    D := IDEAMul(D, Key[3]);
1666
    Y := C xor A;
1667
    Y := IDEAMul(Y, Key[4]);
1668
    X := B xor D + Y;
1669
    X := IDEAMul(X, Key[5]);
1670
    Inc(Y, X);
1671
    A := A xor X;
1672
    D := D xor Y;
1673
    Y := B xor Y;
1674
    B := C xor X;
1675
    C := Y;
1676
    Key := @Key[6];
1677
  end;
1678
  Dest[0] := SwapUInt32(IDEAMul(A, Key[0]) shl 16 or (C + Key[1]) and $FFFF);
1679
  Dest[1] := SwapUInt32((B + Key[2]) shl 16 or IDEAMul(D, Key[3]) and $FFFF);
1680
end;
1681
1682
procedure TCipher_IDEA.DoEncode(Source, Dest: Pointer; Size: Integer);
1683
begin
1684
  Assert(Size = Context.BlockSize);
1685
1686
  IDEACipher(Source, Dest, FAdditionalBuffer);
1687
end;
1688
1689
procedure TCipher_IDEA.DoDecode(Source, Dest: Pointer; Size: Integer);
1690
begin
1691
  Assert(Size = Context.BlockSize);
1692
1693
  IDEACipher(Source, Dest, @PUInt32Array(FAdditionalBuffer)[26]);
1694
end;
1695
1696
{ TCipher_Cast256 }
1697
1698
class function TCipher_Cast256.Context: TCipherContext;
1699
begin
1700
  Result.KeySize                     := 32;
1701
  Result.BlockSize                   := 16;
1702
  Result.BufferSize                  := 16;
1703
  Result.AdditionalBufferSize        := 384;
1704
  Result.NeedsAdditionalBufferBackup := False;
1705
  Result.MinRounds                   := 1;
1706
  Result.MaxRounds                   := 1;
1707
  Result.CipherType := [ctSymmetric, ctBlock];
1708
end;
1709
1710
procedure TCipher_Cast256.DoInit(const Key; Size: Integer);
1711
var
1712
  X: array[0..7] of UInt32;
1713
  M, R, I, J, T: UInt32;
1714
  K: PUInt32Array;
1715
begin
1716
  FillChar(X, SizeOf(X), 0);
1717
  Move(Key, X, Size);
1718
  SwapUInt32Buffer(X, X, 8);
1719
  K := FAdditionalBuffer;
1720
  M := $5A827999;
1721
  R := 19;
1722
  for I := 0 to 11 do
1723
  begin
1724
    for J := 0 to 1 do
1725
    begin
1726
      T := M + X[7];
1727
      T := T shl R or T shr (32 - R);
1728
      X[6] := X[6] xor (Cast256_Data[0, T shr 24] xor
1729
                        Cast256_Data[1, T shr 16 and $FF] -
1730
                        Cast256_Data[2, T shr  8 and $FF] +
1731
                        Cast256_Data[3, T and $FF]);
1732
      Inc(M, $6ED9EBA1);
1733
      Inc(R, 17);
1734
      T := M xor X[6];
1735
      T := T shl R or T shr (32 - R);
1736
      X[5] := X[5] xor (Cast256_Data[0, T shr 24] -
1737
                        Cast256_Data[1, T shr 16 and $FF] +
1738
                        Cast256_Data[2, T shr  8 and $FF] xor
1739
                        Cast256_Data[3, T and $FF]);
1740
      Inc(M, $6ED9EBA1);
1741
      Inc(R, 17);
1742
      T := M - X[5];
1743
      T := T shl R or T shr (32 - R);
1744
      X[4] := X[4] xor (Cast256_Data[0, T shr 24] +
1745
                        Cast256_Data[1, T shr 16 and $FF] xor
1746
                        Cast256_Data[2, T shr  8 and $FF] -
1747
                        Cast256_Data[3, T and $FF]);
1748
      Inc(M, $6ED9EBA1);
1749
      Inc(R, 17);
1750
      T := M + X[4];
1751
      T := T shl R or T shr (32 - R);
1752
      X[3] := X[3] xor (Cast256_Data[0, T shr 24] xor
1753
                        Cast256_Data[1, T shr 16 and $FF] -
1754
                        Cast256_Data[2, T shr  8 and $FF] +
1755
                        Cast256_Data[3, T and $FF]);
1756
      Inc(M, $6ED9EBA1);
1757
      Inc(R, 17);
1758
      T := M xor X[3];
1759
      T := T shl R or T shr (32 - R);
1760
      X[2] := X[2] xor (Cast256_Data[0, T shr 24] -
1761
                        Cast256_Data[1, T shr 16 and $FF] +
1762
                        Cast256_Data[2, T shr  8 and $FF] xor
1763
                        Cast256_Data[3, T and $FF]);
1764
      Inc(M, $6ED9EBA1);
1765
      Inc(R, 17);
1766
      T := M - X[2];
1767
      T := T shl R or T shr (32 - R);
1768
      X[1] := X[1] xor (Cast256_Data[0, T shr 24] +
1769
                        Cast256_Data[1, T shr 16 and $FF] xor
1770
                        Cast256_Data[2, T shr  8 and $FF] -
1771
                        Cast256_Data[3, T and $FF]);
1772
      Inc(M, $6ED9EBA1);
1773
      Inc(R, 17);
1774
      T := M + X[1];
1775
      T := T shl R or T shr (32 - R);
1776
      X[0] := X[0] xor (Cast256_Data[0, T shr 24] xor
1777
                        Cast256_Data[1, T shr 16 and $FF] -
1778
                        Cast256_Data[2, T shr  8 and $FF] +
1779
                        Cast256_Data[3, T and $FF]);
1780
      Inc(M, $6ED9EBA1);
1781
      Inc(R, 17);
1782
      T := M xor X[0];
1783
      T := T shl R or T shr (32 - R);
1784
      X[7] := X[7] xor (Cast256_Data[0, T shr 24] -
1785
                        Cast256_Data[1, T shr 16 and $FF] +
1786
                        Cast256_Data[2, T shr  8 and $FF] xor
1787
                        Cast256_Data[3, T and $FF]);
1788
      Inc(M, $6ED9EBA1);
1789
      Inc(R, 17);
1790
    end;
1791
    if I < 6 then
1792
    begin
1793
      K[48] := X[0] and $1F;
1794
      K[49] := X[2] and $1F;
1795
      K[50] := X[4] and $1F;
1796
      K[51] := X[6] and $1F;
1797
      K[0] := X[7];
1798
      K[1] := X[5];
1799
      K[2] := X[3];
1800
      K[3] := X[1];
1801
    end
1802
    else
1803
    begin
1804
      K[48] := X[6] and $1F;
1805
      K[49] := X[4] and $1F;
1806
      K[50] := X[2] and $1F;
1807
      K[51] := X[0] and $1F;
1808
      K[0] := X[1];
1809
      K[1] := X[3];
1810
      K[2] := X[5];
1811
      K[3] := X[7];
1812
    end;
1813
    K := @K[4];
1814
  end;
1815
  ProtectBuffer(X, SizeOf(X));
1816
1817
  inherited;
1818
end;
1819
1820
procedure TCipher_Cast256.DoEncode(Source, Dest: Pointer; Size: Integer);
1821
var
1822
  I, T, A, B, C, D: UInt32;
1823
  K: PUInt32Array;
1824
begin
1825
  Assert(Size = Context.BlockSize);
1826
1827
  K := FAdditionalBuffer;
1828
  SwapUInt32Buffer(Source^, Dest^, 4);
1829
  A := PUInt32Array(Dest)[0];
1830
  B := PUInt32Array(Dest)[1];
1831
  C := PUInt32Array(Dest)[2];
1832
  D := PUInt32Array(Dest)[3];
1833
  for I := 0 to 5 do
1834
  begin
1835
    T := K[0] + D;
1836
    T := T shl K[48] or T shr (32 - K[48]);
1837
    C := C xor (Cast256_Data[0, T shr 24] xor
1838
                Cast256_Data[1, T shr 16 and $FF] -
1839
                Cast256_Data[2, T shr  8 and $FF] +
1840
                Cast256_Data[3, T and $FF]);
1841
    T := K[1] xor C;
1842
    T := T shl K[49] or T shr (32 - K[49]);
1843
    B := B xor (Cast256_Data[0, T shr 24] -
1844
                Cast256_Data[1, T shr 16 and $FF] +
1845
                Cast256_Data[2, T shr  8 and $FF] xor
1846
                Cast256_Data[3, T and $FF]);
1847
    T := K[2] - B;
1848
    T := T shl K[50] or T shr (32 - K[50]);
1849
    A := A xor (Cast256_Data[0, T shr 24] +
1850
                Cast256_Data[1, T shr 16 and $FF] xor
1851
                Cast256_Data[2, T shr  8 and $FF] -
1852
                Cast256_Data[3, T and $FF]);
1853
    T := K[3] + A;
1854
    T := T shl K[51] or T shr (32 - K[51]);
1855
    D := D xor (Cast256_Data[0, T shr 24] xor
1856
                Cast256_Data[1, T shr 16 and $FF] -
1857
                Cast256_Data[2, T shr  8 and $FF] +
1858
                Cast256_Data[3, T and $FF]);
1859
    K := @K[4];
1860
  end;
1861
  for I := 0 to 5 do
1862
  begin
1863
    T := K[0] + A;
1864
    T := T shl K[48] or T shr (32 - K[48]);
1865
    D := D xor (Cast256_Data[0, T shr 24] xor
1866
                Cast256_Data[1, T shr 16 and $FF] -
1867
                Cast256_Data[2, T shr  8 and $FF] +
1868
                Cast256_Data[3, T and $FF]);
1869
    T := K[1] - B;
1870
    T := T shl K[49] or T shr (32 - K[49]);
1871
    A := A xor (Cast256_Data[0, T shr 24] +
1872
                Cast256_Data[1, T shr 16 and $FF] xor
1873
                Cast256_Data[2, T shr  8 and $FF] -
1874
                Cast256_Data[3, T and $FF]);
1875
    T := K[2] xor C;
1876
    T := T shl K[50] or T shr (32 - K[50]);
1877
    B := B xor (Cast256_Data[0, T shr 24] -
1878
                Cast256_Data[1, T shr 16 and $FF] +
1879
                Cast256_Data[2, T shr  8 and $FF] xor
1880
                Cast256_Data[3, T and $FF]);
1881
    T := K[3] + D;
1882
    T := T shl K[51] or T shr (32 - K[51]);
1883
    C := C xor (Cast256_Data[0, T shr 24] xor
1884
                Cast256_Data[1, T shr 16 and $FF] -
1885
                Cast256_Data[2, T shr  8 and $FF] +
1886
                Cast256_Data[3, T and $FF]);
1887
    K := @K[4];
1888
  end;
1889
  PUInt32Array(Dest)[0] := A;
1890
  PUInt32Array(Dest)[1] := B;
1891
  PUInt32Array(Dest)[2] := C;
1892
  PUInt32Array(Dest)[3] := D;
1893
  SwapUInt32Buffer(Dest^, Dest^, 4);
1894
end;
1895
1896
procedure TCipher_Cast256.DoDecode(Source, Dest: Pointer; Size: Integer);
1897
var
1898
  I, T, A, B, C, D: UInt32;
1899
  K: PUInt32Array;
1900
begin
1901
  Assert(Size = Context.BlockSize);
1902
1903
  K := @PUInt32Array(FAdditionalBuffer)[44];
1904
  SwapUInt32Buffer(Source^, Dest^, 4);
1905
  A := PUInt32Array(Dest)[0];
1906
  B := PUInt32Array(Dest)[1];
1907
  C := PUInt32Array(Dest)[2];
1908
  D := PUInt32Array(Dest)[3];
1909
  for I := 0 to 5 do
1910
  begin
1911
    T := K[3] + D;
1912
    T := T shl K[51] or T shr (32 - K[51]);
1913
    C := C xor (Cast256_Data[0, T shr 24] xor
1914
                Cast256_Data[1, T shr 16 and $FF] -
1915
                Cast256_Data[2, T shr  8 and $FF] +
1916
                Cast256_Data[3, T and $FF]);
1917
    T := K[2] xor C;
1918
    T := T shl K[50] or T shr (32 - K[50]);
1919
    B := B xor (Cast256_Data[0, T shr 24] -
1920
                Cast256_Data[1, T shr 16 and $FF] +
1921
                Cast256_Data[2, T shr  8 and $FF] xor
1922
                Cast256_Data[3, T and $FF]);
1923
    T := K[1] - B;
1924
    T := T shl K[49] or T shr (32 - K[49]);
1925
    A := A xor (Cast256_Data[0, T shr 24] +
1926
                Cast256_Data[1, T shr 16 and $FF] xor
1927
                Cast256_Data[2, T shr  8 and $FF] -
1928
                Cast256_Data[3, T and $FF]);
1929
    T := K[0] + A;
1930
    T := T shl K[48] or T shr (32 - K[48]);
1931
    D := D xor (Cast256_Data[0, T shr 24] xor
1932
                Cast256_Data[1, T shr 16 and $FF] -
1933
                Cast256_Data[2, T shr  8 and $FF] +
1934
                Cast256_Data[3, T and $FF]);
1935
    Dec(PUInt32(K), 4);
1936
  end;
1937
  for I := 0 to 5 do
1938
  begin
1939
    T := K[3] + A;
1940
    T := T shl K[51] or T shr (32 - K[51]);
1941
    D := D xor (Cast256_Data[0, T shr 24] xor
1942
                Cast256_Data[1, T shr 16 and $FF] -
1943
                Cast256_Data[2, T shr  8 and $FF] +
1944
                Cast256_Data[3, T and $FF]);
1945
    T := K[2] - B;
1946
    T := T shl K[50] or T shr (32 - K[50]);
1947
    A := A xor (Cast256_Data[0, T shr 24] +
1948
                Cast256_Data[1, T shr 16 and $FF] xor
1949
                Cast256_Data[2, T shr  8 and $FF] -
1950
                Cast256_Data[3, T and $FF]);
1951
    T := K[1] xor C;
1952
    T := T shl K[49] or T shr (32 - K[49]);
1953
    B := B xor (Cast256_Data[0, T shr 24] -
1954
                Cast256_Data[1, T shr 16 and $FF] +
1955
                Cast256_Data[2, T shr  8 and $FF] xor
1956
                Cast256_Data[3, T and $FF]);
1957
    T := K[0] + D;
1958
    T := T shl K[48] or T shr (32 - K[48]);
1959
    C := C xor (Cast256_Data[0, T shr 24] xor
1960
                Cast256_Data[1, T shr 16 and $FF] -
1961
                Cast256_Data[2, T shr  8 and $FF] +
1962
                Cast256_Data[3, T and $FF]);
1963
    Dec(PUInt32(K), 4);
1964
  end;
1965
  PUInt32Array(Dest)[0] := A;
1966
  PUInt32Array(Dest)[1] := B;
1967
  PUInt32Array(Dest)[2] := C;
1968
  PUInt32Array(Dest)[3] := D;
1969
  SwapUInt32Buffer(Dest^, Dest^, 4);
1970
end;
1971
1972
{ TCipher_Mars }
1973
1974
class function TCipher_Mars.Context: TCipherContext;
1975
begin
1976
  Result.KeySize                     := 56;
1977
  Result.BlockSize                   := 16;
1978
  Result.BufferSize                  := 16;
1979
  Result.AdditionalBufferSize        := 160;
1980
  Result.NeedsAdditionalBufferBackup := False;
1981
  Result.MinRounds                   := 1;
1982
  Result.MaxRounds                   := 1;
1983
  Result.CipherType                  := [ctSymmetric, ctBlock];
1984
end;
1985
1986
procedure TCipher_Mars.DoInit(const Key; Size: Integer);
1987
var
1988
  B: PUInt32Array;
1989
1990
  function FixKey(K, R: UInt32): UInt32;
1991
  var
1992
    M1, M2: UInt32;
1993
    I: UInt32;
1994
  begin
1995
    I := K and 3;
1996
    K := K or 3;
1997
    M1 := not K xor (K shl 1);
1998
    M2 := M1 and (M1 shl 1);
1999
    M2 := M2 and (M2 shl 2);
2000
    M2 := M2 and (M2 shl 4);
2001
    M2 := M2 and (M1 shl 8);
2002
    M2 := M2 and $FFFFFE00;
2003
    if M2 = 0 then
2004
    begin
2005
      Result := K;
2006
      Exit;
2007
    end;
2008
    M1 := M2 or (M2 shr 1);
2009
    M1 := M1 or (M1 shr 2);
2010
    M1 := M1 or (M2 shr 4);
2011
    M1 := M1 or (M1 shr 5);
2012
    M1 := M1 and ((not K xor (K shl 1)) and (not K xor (K shr 1)) and $7FFFFFFC);
2013
    Result := K xor ((B[265 + I] shl R or B[265 + I] shr (32 - R)) and M1);
2014
  end;
2015
2016
var
2017
  T: array[0..14] of UInt32;
2018
  I, J, L: UInt32;
2019
  U: UInt32;
2020
  K: PUInt32Array;
2021
begin
2022
  K := FAdditionalBuffer;
2023
  B := @Mars_Data;
2024
  FillChar(T, SizeOf(T), 0);
2025
  Move(Key, T, Size);
2026
  Size := Size div 4;
2027
  T[Size] := Size;
2028
  for J := 0 to 3 do
2029
  begin
2030
    for I := 0 to 14 do
2031
    begin
2032
      U := T[(I + 8) mod 15] xor T[(I + 13) mod 15];
2033
      T[I] := T[I] xor (U shl 3 or U shr 29) xor (I * 4 + J);
2034
    end;
2035
    for L := 0 to 3 do
2036
    begin
2037
      for I := 0 to 14 do
2038
      begin
2039
        Inc(T[I], B[T[(I + 14) mod 15] and $1FF]);
2040
        T[I] := T[I] shl 9 or T[I] shr 23;
2041
      end;
2042
    end;
2043
    for I := 0 to 9 do
2044
      K[(J * 10) + I] := T[(I * 4) mod 15];
2045
  end;
2046
  I := 5;
2047
  repeat
2048
    K[I] := FixKey(K[I], K[I - 1]);
2049
    Inc(I, 2);
2050
  until I >= 37;
2051
2052
  inherited;
2053
end;
2054
2055
procedure TCipher_Mars.DoEncode(Source, Dest: Pointer; Size: Integer);
2056
var
2057
  K: PUInt32Array;
2058
  I, L, R, A, B, C, D: UInt32;
2059
begin
2060
  Assert(Size = Context.BlockSize);
2061
2062
  K := FAdditionalBuffer;
2063
  A := PUInt32Array(Source)[0] + K[0];
2064
  B := PUInt32Array(Source)[1] + K[1];
2065
  C := PUInt32Array(Source)[2] + K[2];
2066
  D := PUInt32Array(Source)[3] + K[3];
2067
  K := @K[4];
2068
  for I := 0 to 1 do
2069
  begin
2070
    B := B xor Mars_Data[A and $FF] + Mars_Data[A shr 8 and $FF + 256];
2071
    Inc(C, Mars_Data[A shr 16 and $FF]);
2072
    D := D xor Mars_Data[A shr 24 + 256];
2073
    A := (A shr 24 or A shl 8) + D;
2074
2075
    C := C xor Mars_Data[B and $FF] + Mars_Data[B shr 8 and $FF + 256];
2076
    Inc(D, Mars_Data[B shr 16 and $FF]);
2077
    A := A xor Mars_Data[B shr 24 + 256];
2078
    B := (B shr 24 or B shl 8) + C;
2079
2080
    D := D xor Mars_Data[C and $FF] + Mars_Data[C shr 8 and $FF + 256];
2081
    Inc(A, Mars_Data[C shr 16 and $FF]);
2082
    B := B xor Mars_Data[C shr 24 + 256];
2083
    C := C shr 24 or C shl 8;
2084
2085
    A := A xor Mars_Data[D and $FF] + Mars_Data[D shr 8 and $FF + 256];
2086
    Inc(B, Mars_Data[D shr 16 and $FF]);
2087
    C := C xor Mars_Data[D shr 24 + 256];
2088
    D := D shr 24 or D shl 8;
2089
  end;
2090
2091
  for I := 0 to 3 do
2092
  begin
2093
    L := A + K[0];
2094
    A := A shl 13 or A shr 19;
2095
    R := A * K[1];
2096
    R := R shl 5 or R shr 27;
2097
    Inc(C, L shl R or L shr (32 - R));
2098
    L := Mars_Data[L and $1FF] xor R;
2099
    R := R shl 5 or R shr 27;
2100
    L := L xor R;
2101
    L := L shl R or L shr (32 - R);
2102
2103
    if I <= 1 then
2104
    begin
2105
      Inc(B, L);
2106
      D := D xor R;
2107
    end
2108
    else
2109
    begin
2110
      Inc(D, L);
2111
      B := B xor R;
2112
    end;
2113
    L := B + K[2];
2114
    B := B shl 13 or B shr 19;
2115
    R := B * K[3];
2116
    R := R shl 5 or R shr 27;
2117
    Inc(D, L shl R or L shr (32 - R));
2118
    L := Mars_Data[L and $1FF] xor R;
2119
    R := R shl 5 or R shr 27;
2120
    L := L xor R;
2121
    L := L shl R or L shr (32 - R);
2122
    if I <= 1 then
2123
    begin
2124
      Inc(C, L);
2125
      A := A xor R;
2126
    end
2127
    else
2128
    begin
2129
      Inc(A, L);
2130
      C := C xor R;
2131
    end;
2132
    L := C + K[4];
2133
    C := C shl 13 or C shr 19;
2134
    R := C * K[5];
2135
    R := R shl 5 or R shr 27;
2136
    Inc(A, L shl R or L shr (32 - R));
2137
    L := Mars_Data[L and $1FF] xor R;
2138
    R := R shl 5 or R shr 27;
2139
    L := L xor R;
2140
    L := L shl R or L shr (32 - R);
2141
    if I <= 1 then
2142
    begin
2143
      Inc(D, L);
2144
      B := B xor R;
2145
    end
2146
    else
2147
    begin
2148
      Inc(B, L);
2149
      D := D xor R;
2150
    end;
2151
    L := D + K[6];
2152
    D := D shl 13 or D shr 19;
2153
    R := D * K[7];
2154
    R := R shl 5 or R shr 27;
2155
    Inc(B, L shl R or L shr (32 - R));
2156
    L := Mars_Data[L and $1FF] xor R;
2157
    R := R shl 5 or R shr 27;
2158
    L := L xor R;
2159
    L := L shl R or L shr (32 - R);
2160
    if I <= 1 then
2161
    begin
2162
      Inc(A, L);
2163
      C := C xor R;
2164
    end
2165
    else
2166
    begin
2167
      Inc(C, L);
2168
      A := A xor R;
2169
    end;
2170
    K := @K[8];
2171
  end;
2172
  for I := 0 to 1 do
2173
  begin
2174
    B := B xor Mars_Data[A and $FF + 256];
2175
    Dec(C, Mars_Data[A shr 24]);
2176
    D := D - Mars_Data[A shr 16 and $FF + 256] xor Mars_Data[A shr 8 and $FF];
2177
    A := A shl 24 or A shr 8;
2178
    C := C xor Mars_Data[B and $FF + 256];
2179
    Dec(D, Mars_Data[B shr 24]);
2180
    A := A - Mars_Data[B shr 16 and $FF + 256] xor Mars_Data[B shr 8 and $FF];
2181
    B := B shl 24 or B shr 8;
2182
    Dec(C, B);
2183
    D := D xor Mars_Data[C and $FF + 256];
2184
    Dec(A, Mars_Data[C shr 24]);
2185
    B := B - Mars_Data[C shr 16 and $FF + 256] xor Mars_Data[C shr 8 and $FF];
2186
    C := C shl 24 or C shr 8;
2187
    Dec(D, A);
2188
    A := A xor Mars_Data[D and $FF + 256];
2189
    Dec(B, Mars_Data[D shr 24]);
2190
    C := C - Mars_Data[D shr 16 and $FF + 256] xor Mars_Data[D shr 8 and $FF];
2191
    D := D shl 24 or D shr 8;
2192
  end;
2193
  PUInt32Array(Dest)[0] := A - K[0];
2194
  PUInt32Array(Dest)[1] := B - K[1];
2195
  PUInt32Array(Dest)[2] := C - K[2];
2196
  PUInt32Array(Dest)[3] := D - K[3];
2197
end;
2198
2199
procedure TCipher_Mars.DoDecode(Source, Dest: Pointer; Size: Integer);
2200
var
2201
  K: PUInt32Array;
2202
  I, L, R, A, B, C, D: UInt32;
2203
begin
2204
  Assert(Size = Context.BlockSize);
2205
2206
  K := @PUInt32Array(FAdditionalBuffer)[28];
2207
  A := PUInt32Array(Source)[0] + K[8];
2208
  B := PUInt32Array(Source)[1] + K[9];
2209
  C := PUInt32Array(Source)[2] + K[10];
2210
  D := PUInt32Array(Source)[3] + K[11];
2211
  for I := 0 to 1 do
2212
  begin
2213
    D := D shr 24 or D shl 8;
2214
    C := C xor Mars_Data[D shr 8 and $FF] + Mars_Data[D shr 16 and $FF + 256];
2215
    Inc(B, Mars_Data[D shr 24]);
2216
    A := A xor Mars_Data[D and $FF + 256];
2217
    Inc(D, A);
2218
    C := C shr 24 or C shl 8;
2219
    B := B xor Mars_Data[C shr 8 and $FF] + Mars_Data[C shr 16 and $FF + 256];
2220
    Inc(A, Mars_Data[C shr 24]);
2221
    D := D xor Mars_Data[C and $FF + 256];
2222
    Inc(C, B);
2223
    B := B shr 24 or B shl 8;
2224
    A := A xor Mars_Data[B shr 8 and $FF] + Mars_Data[B shr 16 and $FF + 256];
2225
    Inc(D, Mars_Data[B shr 24]);
2226
    C := C xor Mars_Data[B and $FF + 256];
2227
    A := A shr 24 or A shl 8;
2228
    D := D xor Mars_Data[A shr 8 and $FF] + Mars_Data[A shr 16 and $FF + 256];
2229
    Inc(C, Mars_Data[A shr 24]);
2230
    B := B xor Mars_Data[A and $FF + 256];
2231
  end;
2232
  for I := 0 to 3 do
2233
  begin
2234
    R := D * K[7];
2235
    R := R shl 5 or R shr 27;
2236
    D := D shr 13 or D shl 19;
2237
    L := D + K[6];
2238
    Dec(B, L shl R or L shr (32 - R));
2239
    L := Mars_Data[L and $1FF] xor R;
2240
    R := R shl 5 or R shr 27;
2241
    L := L xor R;
2242
    L := L shl R or L shr (32 - R);
2243
    if I <= 1 then
2244
    begin
2245
      Dec(C, L);
2246
      A := A xor R;
2247
    end
2248
    else
2249
    begin
2250
      Dec(A, L);
2251
      C := C xor R;
2252
    end;
2253
    R := C * K[5];
2254
    R := R shl 5 or R shr 27;
2255
    C := C shr 13 or C shl 19;
2256
    L := C + K[4];
2257
    Dec(A, L shl R or L shr (32 - R));
2258
    L := Mars_Data[L and $1FF] xor R;
2259
    R := R shl 5 or R shr 27;
2260
    L := L xor R;
2261
    L := L shl R or L shr (32 - R);
2262
    if I <= 1 then
2263
    begin
2264
      Dec(B, L);
2265
      D := D xor R;
2266
    end
2267
    else
2268
    begin
2269
      Dec(D, L);
2270
      B := B xor R;
2271
    end;
2272
    R := B * K[3];
2273
    R := R shl 5 or R shr 27;
2274
    B := B shr 13 or B shl 19;
2275
    L := B + K[2];
2276
    Dec(D, L shl R or L shr (32 - R));
2277
    L := Mars_Data[L and $1FF] xor R;
2278
    R := R shl 5 or R shr 27;
2279
    L := L xor R;
2280
    L := L shl R or L shr (32 - R);
2281
    if I <= 1 then
2282
    begin
2283
      Dec(A, L);
2284
      C := C xor R;
2285
    end
2286
    else
2287
    begin
2288
      Dec(C, L);
2289
      A := A xor R;
2290
    end;
2291
    R := A * K[1];
2292
    R := R shl 5 or R shr 27;
2293
    A := A shr 13 or A shl 19;
2294
    L := A + K[0];
2295
    Dec(C, L shl R or L shr (32 - R));
2296
    L := Mars_Data[L and $1FF] xor R;
2297
    R := R shl 5 or R shr 27;
2298
    L := L xor R;
2299
    L := L shl R or L shr (32 - R);
2300
    if I <= 1 then
2301
    begin
2302
      Dec(D, L);
2303
      B := B xor R;
2304
    end
2305
    else
2306
    begin
2307
      Dec(B, L);
2308
      D := D xor R;
2309
    end;
2310
    Dec(PUInt32(K), 8);
2311
  end;
2312
  for I := 0 to 1 do
2313
  begin
2314
    D := D shl 24 or D shr 8;
2315
    C := C xor Mars_Data[D shr 24 + 256];
2316
    Dec(B, Mars_Data[D shr 16 and $FF]);
2317
    A := A - Mars_Data[D shr 8 and $FF + 256] xor Mars_Data[D and $FF];
2318
    C := C shl 24 or C shr 8;
2319
    B := B xor Mars_Data[C shr 24 + 256];
2320
    Dec(A, Mars_Data[C shr 16 and $FF]);
2321
    D := D - Mars_Data[C shr 8 and $FF + 256] xor Mars_Data[C and $FF];
2322
    Dec(B, C);
2323
    B := B shl 24 or B shr 8;
2324
    A := A xor Mars_Data[B shr 24 + 256];
2325
    Dec(D, Mars_Data[B shr 16 and $FF]);
2326
    C := C - Mars_Data[B shr 8 and $FF + 256] xor Mars_Data[B and $FF];
2327
    Dec(A, D);
2328
    A := A shl 24 or A shr 8;
2329
    D := D xor Mars_Data[A shr 24 + 256];
2330
    Dec(C, Mars_Data[A shr 16 and $FF]);
2331
    B := B - Mars_Data[A shr 8 and $FF + 256] xor Mars_Data[A and $FF];
2332
  end;
2333
  PUInt32Array(Dest)[0] := A - K[4];
2334
  PUInt32Array(Dest)[1] := B - K[5];
2335
  PUInt32Array(Dest)[2] := C - K[6];
2336
  PUInt32Array(Dest)[3] := D - K[7];
2337
end;
2338
2339
{ TCipher_RC4 }
2340
2341
class function TCipher_RC4.Context: TCipherContext;
2342
begin
2343
  Result.KeySize                     := 256;
2344
  Result.BlockSize                   := 1;
2345
  Result.BufferSize                  := 16;
2346
  Result.AdditionalBufferSize        := 256 + 2;
2347
  Result.NeedsAdditionalBufferBackup := true;
2348
  Result.MinRounds                   := 1;
2349
  Result.MaxRounds                   := 1;
2350
  Result.CipherType                  := [ctSymmetric, ctStream];
2351
end;
2352
2353
procedure TCipher_RC4.DoInit(const Key; Size: Integer);
2354
var
2355
  K: array[0..255] of Byte;
2356
  D: PByteArray;
2357
  I, J, T: Byte;
2358
begin
2359
  D := FAdditionalBuffer;
2360
  for I := 0 to 255 do
2361
  begin
2362
    D[I] := I;
2363
    if Size > 0 then
2364
      K[I] := TByteArray(Key)[I mod Size];
2365
  end;
2366
  J := 0;
2367
  for I := 0 to 255 do
2368
  begin
2369
    J := J + D[I] + K[I];
2370
    T := D[I];
2371
    D[I] := D[J];
2372
    D[J] := T;
2373
  end;
2374
  D[256] := 0;
2375
  D[257] := 0;
2376
  ProtectBuffer(K, SizeOf(K));
2377
2378
  inherited;
2379
end;
2380
2381
procedure TCipher_RC4.DoEncode(Source, Dest: Pointer; Size: Integer);
2382
var
2383
  D: PByteArray;
2384
  S: Integer;
2385
  T, I, J: Byte;
2386
begin
2387
  D := FAdditionalBuffer;
2388
  I := D[256];
2389
  J := D[257];
2390
  for S := 0 to Size - 1 do
2391
  begin
2392
    Inc(I);
2393
    T := D[I];
2394
    Inc(J, T);
2395
    D[I] := D[J];
2396
    D[J] := T;
2397
    PByteArray(Dest)[S] := PByteArray(Source)[S] xor D[Byte(D[I] + T)];
2398
  end;
2399
  D[256] := I;
2400
  D[257] := J;
2401
end;
2402
2403
procedure TCipher_RC4.DoDecode(Source, Dest: Pointer; Size: Integer);
2404
begin
2405
  DoEncode(Source, Dest, Size);
2406
end;
2407
2408
{ TCipher_RC6 }
2409
2410
class function TCipher_RC6.Context: TCipherContext;
2411
begin
2412
  Result.KeySize                     := 256;
2413
  Result.BlockSize                   := 16;
2414
  Result.BufferSize                  := 16;
2415
  Result.AdditionalBufferSize        := 272;
2416
  Result.NeedsAdditionalBufferBackup := False;
2417
  Result.MinRounds                   := 16;
2418
  Result.MaxRounds                   := 24;
2419
  Result.CipherType                  := [ctSymmetric, ctBlock];
2420
end;
2421
2422
procedure TCipher_RC6.SetRounds(Value: Integer);
2423
begin
2424
  if Value < Context.MinRounds then
2425
    Value := Context.MinRounds
2426
  else
2427
  if Value > Context.MaxRounds then
2428
    Value := Context.MaxRounds;
2429
  if Value <> FRounds then
2430
  begin
2431
    if not (FState in [csNew, csInitialized, csDone]) then
2432
      Done;
2433
    FRounds := Value;
2434
  end;
2435
end;
2436
2437
procedure TCipher_RC6.DoInit(const Key; Size: Integer);
2438
var
2439
  K: array[0..63] of UInt32;
2440
  D: PUInt32Array;
2441
  I, J, L, A, B, Z, T: UInt32;
2442
begin
2443
  LimitRounds;
2444
2445
  D := FAdditionalBuffer;
2446
  FillChar(K, SizeOf(K), 0);
2447
  Move(Key, K, Size);
2448
  L := Size shr 2;
2449
  if Size and 3 <> 0 then
2450
    Inc(L);
2451
  if L <= 0 then
2452
    L := 1;
2453
  J := $B7E15163;
2454
  for I := 0 to (FRounds + 2) * 2 do
2455
  begin
2456
    D[I] := J;
2457
    Inc(J, $9E3779B9);
2458
  end;
2459
  if L > UInt32(FRounds + 2) * 2 then
2460
    Z := L * 3
2461
  else
2462
    Z := (FRounds + 2) * 6;
2463
  I := 0;
2464
  J := 0;
2465
  A := 0;
2466
  B := 0;
2467
  for Z := Z downto 1 do
2468
  begin
2469
    A := A + B + D[I];
2470
    A := A shl 3 or A shr 29;
2471
    D[I] := A;
2472
    T := A + B;
2473
    B := T + K[J];
2474
    B := B shl T or B shr (32 - T);
2475
    K[J] := B;
2476
    I := (I + 1) mod (UInt32(FRounds + 2) * 2);
2477
    J := (J + 1) mod L;
2478
  end;
2479
  ProtectBuffer(K, SizeOf(K));
2480
2481
  inherited;
2482
end;
2483
2484
procedure TCipher_RC6.LimitRounds;
2485
begin
2486
  if FRounds = 0 then
2487
    FRounds := 20
2488
  else
2489
  if FRounds < 16 then
2490
    FRounds := 16
2491
  else
2492
  if FRounds > 24 then
2493
    FRounds := 24;
2494
end;
2495
2496
procedure TCipher_RC6.DoEncode(Source, Dest: Pointer; Size: Integer);
2497
{$IFDEF X86ASM}
2498
asm
2499
      PUSH  EBX
2500
      PUSH  ESI
2501
      PUSH  EDI
2502
      PUSH  EBP
2503
      PUSH  ECX
2504
      MOV   EBP,[EAX].TCipher_RC6.FRounds           // Rounds
2505
      MOV   ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key
2506
      MOV   EAX,[EDX +  0]    // A
2507
      MOV   EBX,[EDX +  4]    // B
2508
      MOV   EDI,[EDX +  8]    // C
2509
      MOV   EDX,[EDX + 12]    // D
2510
      ADD   EBX,[ESI + 0]     // Inc(B, K[0])
2511
      ADD   EDX,[ESI + 4]     // Inc(D, K[1])
2512
      ADD   ESI,8             // Inc(PInteger(K), 2)
2513
@@1:  LEA   ECX,[EBX * 2 + 1] // ECX := B * 2 + 1
2514
      IMUL  ECX,EBX           // ECX := ECX * B
2515
      ROL   ECX,5             // T := ROL(B * (B * 2 + 1), 5)
2516
      PUSH  ECX               // save T
2517
      XOR   EAX,ECX           // A := A xor T
2518
      LEA   ECX,[EDX * 2 + 1] // ECX := D * 2 + 1
2519
      IMUL  ECX,EDX           // ECX := ECX * D
2520
      ROL   ECX,5             // U := ROL(D * (D * 2 + 1), 5)
2521
      XOR   EDI,ECX           // C := C xor U
2522
      ROL   EAX,CL            // A := ROL(A xor T, U)
2523
      POP   ECX               // restore T
2524
      ADD   EAX,[ESI + 0]     // Inc(A, K[0])
2525
      ROL   EDI,CL            // C := ROL(C xor U, T)
2526
      MOV   ECX,EAX           // T := A
2527
      ADD   EDI,[ESI + 4]     // Inc(C, K[1])
2528
      MOV   EAX,EBX           // A := B
2529
      MOV   EBX,EDI           // B := C
2530
      MOV   EDI,EDX           // C := D
2531
      DEC   EBP
2532
      MOV   EDX,ECX           // D := T;
2533
      LEA   ESI,[ESI + 8]     // Inc(PInteger(K), 2)
2534
      JNZ   @@1
2535
      ADD   EAX,[ESI + 0]     // Inc(A, K[0])
2536
      ADD   EDI,[ESI + 4]     // Inc(C, K[1])
2537
      POP   ECX
2538
      MOV   [ECX +  0],EAX    // A
2539
      MOV   [ECX +  4],EBX    // B
2540
      MOV   [ECX +  8],EDI    // C
2541
      MOV   [ECX + 12],EDX    // D
2542
      POP   EBP
2543
      POP   EDI
2544
      POP   ESI
2545
      POP   EBX
2546
end;
2547
{$ELSE !X86ASM}
2548
var
2549
  K: PUInt32Array;
2550
  I, T, U, A, B, C, D: UInt32;
2551
begin
2552
  Assert(Size = Context.BlockSize);
2553
2554
  K := Pointer(FAdditionalBuffer);
2555
  A := PUInt32Array(Source)[0];
2556
  B := PUInt32Array(Source)[1] + K[0];
2557
  C := PUInt32Array(Source)[2];
2558
  D := PUInt32Array(Source)[3] + K[1];
2559
  for I := 1 to FRounds do
2560
  begin
2561
    K := @K[2];
2562
    T := B * (B + B + 1);
2563
    T := T shl 5 or T shr 27;
2564
    U := D * (D + D + 1);
2565
    U := U shl 5 or U shr 27;
2566
    A := A xor T;
2567
    A := A shl U or A shr (32 - U) + K[0];
2568
    C := C xor U;
2569
    C := C shl T or C shr (32 - T) + K[1];
2570
    T := A; A := B; B := C; C := D; D := T;
2571
  end;
2572
  PUInt32Array(Dest)[0] := A + K[2];
2573
  PUInt32Array(Dest)[1] := B;
2574
  PUInt32Array(Dest)[2] := C + K[3];
2575
  PUInt32Array(Dest)[3] := D;
2576
end;
2577
{$ENDIF !X86ASM}
2578
2579
procedure TCipher_RC6.DoDecode(Source, Dest: Pointer; Size: Integer);
2580
{$IFDEF X86ASM}
2581
asm
2582
      PUSH  EBX
2583
      PUSH  ESI
2584
      PUSH  EDI
2585
      PUSH  EBP
2586
      PUSH  ECX
2587
      MOV   EBP,[EAX].TCipher_RC6.FRounds           // Rounds
2588
      MOV   ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key
2589
      LEA   ESI,[ESI + EBP * 8]                     // Key[FRounds * 2]
2590
      MOV   EAX,[EDX +  0]    // A
2591
      MOV   EBX,[EDX +  4]    // B
2592
      MOV   EDI,[EDX +  8]    // C
2593
      MOV   EDX,[EDX + 12]    // D
2594
      SUB   EDI,[ESI + 12]    // Dec(C, K[3])
2595
      SUB   EAX,[ESI +  8]    // Dec(A, K[2])
2596
@@1:  MOV   ECX,EAX           // T := A
2597
      SUB   EDX,[ESI + 0]     // Dec(A, K[0])
2598
      MOV   EAX,EDX           // A := D
2599
      MOV   EDX,EDI           // D := C
2600
      SUB   EBX,[ESI + 4]     // Dec(C, K[1])
2601
      MOV   EDI,EBX           // C := B
2602
      MOV   EBX,ECX           // B := T;
2603
      LEA   ECX,[EDX * 2 + 1] // ECX := D * 2 + 1
2604
      IMUL  ECX,EDX           // ECX := ECX * D
2605
      ROL   ECX,5             // U := ROL(D * (D * 2 + 1), 5)
2606
      PUSH  ECX               // save U
2607
      ROR   EAX,CL            // A := ROR(A - K[0], U)
2608
      LEA   ECX,[EBX * 2 + 1] // ECX := B * 2 + 1
2609
      IMUL  ECX,EBX           // ECX := ECX * B
2610
      ROL   ECX,5             // T := ROL(B * (B * 2 + 1), 5)
2611
      XOR   EAX,ECX           // A := A xor T
2612
      ROR   EDI,CL            // C := ROR(C - K[1], T)
2613
      POP   ECX               // restore U
2614
      XOR   EDI,ECX           // C := C xor U
2615
      DEC   EBP
2616
      LEA   ESI,[ESI - 8]     // Dec(PInteger(K), 2)
2617
      JNZ   @@1
2618
      SUB   EBX,[ESI + 0]     // Dec(B, K[0])
2619
      SUB   EDX,[ESI + 4]     // Inc(D, K[1])
2620
      POP   ECX
2621
      MOV   [ECX +  0],EAX    // A
2622
      MOV   [ECX +  4],EBX    // B
2623
      MOV   [ECX +  8],EDI    // C
2624
      MOV   [ECX + 12],EDX    // D
2625
      POP   EBP
2626
      POP   EDI
2627
      POP   ESI
2628
      POP   EBX
2629
end;
2630
{$ELSE !X86ASM}
2631
var
2632
  I, U, T, A, B, C, D: UInt32;
2633
  K: PUInt32Array;
2634
begin
2635
  Assert(Size = Context.BlockSize);
2636
2637
  K := @PUInt32Array(FAdditionalBuffer)[FRounds * 2];
2638
  A := PUInt32Array(Source)[0] - K[2];
2639
  B := PUInt32Array(Source)[1];
2640
  C := PUInt32Array(Source)[2] - K[3];
2641
  D := PUInt32Array(Source)[3];
2642
2643
  for I := 1 to FRounds do
2644
  begin
2645
    T := A; A := D; D := C; C := B; B := T;
2646
    U := D * (D + D + 1);
2647
    U := U shl 5 or U shr 27;
2648
    T := B * (B + B + 1);
2649
    T := T shl 5 or T shr 27;
2650
    C := C - K[1];
2651
    C := C shr T or C shl (32 - T) xor U;
2652
    A := A - K[0];
2653
    A := A shr U or A shl (32 - U) xor T;
2654
    Dec(PUInt32(K), 2);
2655
  end;
2656
2657
  PUInt32Array(Dest)[0] := A;
2658
  PUInt32Array(Dest)[1] := B - K[0];
2659
  PUInt32Array(Dest)[2] := C;
2660
  PUInt32Array(Dest)[3] := D - K[1];
2661
end;
2662
{$ENDIF !X86ASM}
2663
2664
{ TCipher_Rijndael }
2665
2666
class function TCipher_Rijndael.Context: TCipherContext;
2667
const
2668
  // don't change this!
2669
  Rijndael_Blocks =  4;
2670
  Rijndael_Rounds = 14;
2671
begin
2672
  Result.KeySize                     := 32;
2673
  Result.BlockSize                   := Rijndael_Blocks * 4;
2674
  Result.BufferSize                  := Rijndael_Blocks * 4;
2675
  Result.AdditionalBufferSize        := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2;
2676
  Result.NeedsAdditionalBufferBackup := False;
2677
  Result.MinRounds                   := 1;
2678
  Result.MaxRounds                   := 1;
2679
  Result.CipherType                  := [ctSymmetric, ctBlock];
2680
end;
2681
2682
procedure TCipher_Rijndael.DoInit(const Key; Size: Integer);
2683
{$REGION OldKeyShedule}
2684
{
2685
  // Old Rijndael Key Scheduling:
2686
2687
  procedure BuildEncodeKey;
2688
  const
2689
    RND_Data: array[0..29] of Byte = (
2690
      $01, $02, $04, $08, $10, $20, $40, $80, $1B, $36, $6C, $D8, $AB, $4D, $9A,
2691
      $2F, $5E, $BC, $63, $C6, $97, $35, $6A, $D4, $B3, $7D, $FA, $EF, $C5, $91
2692
    );
2693
  var
2694
    T, R: Integer;
2695
2696
    procedure NextRounds;
2697
    var
2698
      J: Integer;
2699
    begin
2700
      J := 0;
2701
      while (J < FRounds - 6) and (R <= FRounds) do
2702
      begin
2703
        while (J < FRounds - 6) and (T < Rijndael_Blocks) do
2704
        begin
2705
          PUInt32Array(FBuffer)[R * Rijndael_Blocks + T] := K[J];
2706
          Inc(J);
2707
          Inc(T);
2708
        end;
2709
        if T = Rijndael_Blocks then
2710
        begin
2711
          T := 0;
2712
          Inc(R);
2713
        end;
2714
      end;
2715
    end;
2716
2717
  var
2718
    RND: PByte;
2719
    B: PByte;
2720
    I: Integer;
2721
  begin
2722
    R := 0;
2723
    T := 0;
2724
    RND := @RND_Data;
2725
    NextRounds;
2726
    while R <= FRounds do
2727
    begin
2728
      B  := @K;
2729
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr  8 and $FF] xor RND^; Inc(B);
2730
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 16 and $FF];          Inc(B);
2731
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 24];                  Inc(B);
2732
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] and $FF];
2733
      Inc(RND);
2734
      if FRounds = 14 then
2735
      begin
2736
        for I := 1 to 7 do
2737
          K[I] := K[I] xor K[I - 1];
2738
        B  := @K[4];
2739
        B^ := B^ xor Rijndael_S[0, K[3] and $FF];         Inc(B);
2740
        B^ := B^ xor Rijndael_S[0, K[3] shr  8 and $FF];  Inc(B);
2741
        B^ := B^ xor Rijndael_S[0, K[3] shr 16 and $FF];  Inc(B);
2742
        B^ := B^ xor Rijndael_S[0, K[3] shr 24];
2743
        for I := 5 to 7 do
2744
          K[I] := K[I] xor K[I - 1];
2745
      end
2746
      else
2747
        for I := 1 to FRounds - 7 do
2748
          K[I] := K[I] xor K[I - 1];
2749
      NextRounds;
2750
    end;
2751
  end;
2752
2753
  procedure BuildDecodeKey;
2754
  var
2755
    I: Integer;
2756
    D: PUInt32;
2757
  begin
2758
    D := Pointer(PAnsiChar(FBuffer) + FBufferSize shr 1); // for Pointer Math
2759
    Move(FBuffer^, D^, FBufferSize shr 1);
2760
    Inc(D, 4);
2761
    for I := 0 to FRounds * 4 - 5 do
2762
    begin
2763
      D^ :=  Rijndael_Key[D^ and $FF] xor
2764
            (Rijndael_Key[D^ shr  8 and $FF] shl  8 or Rijndael_Key[D^ shr  8 and $FF] shr 24) xor
2765
            (Rijndael_Key[D^ shr 16 and $FF] shl 16 or Rijndael_Key[D^ shr 16 and $FF] shr 16) xor
2766
            (Rijndael_Key[D^ shr 24]         shl 24 or Rijndael_Key[D^ shr 24]          shr 8);
2767
      Inc(D);
2768
    end;
2769
  end; }
2770
{$ENDREGION}
2771
2772
  // New AES conform Key Scheduling
2773
2774
  procedure BuildEncodeKey;
2775
  const
2776
    RCon: array[0..9] of UInt32 = ($01, $02, $04, $08, $10, $20, $40, $80, $1b, $36);
2777
  var
2778
    I: Integer;
2779
    T: UInt32;
2780
    P: PUInt32Array;
2781
  begin
2782
    P := FAdditionalBuffer;
2783
    if Size <= 16 then
2784
    begin
2785
      for I := 0 to 9 do
2786
      begin
2787
        T := P[3];
2788
        P[4] := Rijndael_S[0, T shr  8 and $FF]        xor
2789
                Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2790
                Rijndael_S[0, T shr 24        ] shl 16 xor
2791
                Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2792
        P[5] := P[1] xor P[4];
2793
        P[6] := P[2] xor P[5];
2794
        P[7] := P[3] xor P[6];
2795
        P    := @P[4];
2796
      end;
2797
    end
2798
    else
2799
      if Size <= 24 then
2800
      begin
2801
        for I := 0 to 7 do
2802
        begin
2803
          T := P[5];
2804
          P[6] := Rijndael_S[0, T shr  8 and $FF]        xor
2805
                  Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2806
                  Rijndael_S[0, T shr 24        ] shl 16 xor
2807
                  Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2808
          P[7] := P[1] xor P[6];
2809
          P[8] := P[2] xor P[7];
2810
          P[9] := P[3] xor P[8];
2811
          if I = 7 then
2812
            Break;
2813
          P[10] := P[4] xor P[9];
2814
          P[11] := P[5] xor P[10];
2815
          P     := @P[6];
2816
        end;
2817
      end
2818
      else
2819
      begin
2820
        for I :=0 to 6 do
2821
        begin
2822
          T := P[7];
2823
          P[8] := Rijndael_S[0, T shr  8 and $FF]        xor
2824
                  Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2825
                  Rijndael_S[0, T shr 24        ] shl 16 xor
2826
                  Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2827
          P[9] := P[1] xor P[8];
2828
          P[10] := P[2] xor P[9];
2829
          P[11] := P[3] xor P[10];
2830
          if I = 6 then
2831
            Break;
2832
          T := P[11];
2833
          P[12] := Rijndael_S[0, T        and $FF]        xor
2834
                   Rijndael_S[0, T shr  8 and $FF] shl  8 xor
2835
                   Rijndael_S[0, T shr 16 and $FF] shl 16 xor
2836
                   Rijndael_S[0, T shr 24        ] shl 24 xor P[4];
2837
          P[13] := P[5] xor P[12];
2838
          P[14] := P[6] xor P[13];
2839
          P[15] := P[7] xor P[14];
2840
          P     := @P[8];
2841
        end;
2842
      end;
2843
  end;
2844
2845
  procedure BuildDecodeKey;
2846
  var
2847
    P: PUInt32;
2848
    I: Integer;
2849
  begin
2850
    P := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1); // for Pointer Math
2851
    Move(FAdditionalBuffer^, P^, FAdditionalBufferSize shr 1);
2852
    Inc(P, 4);
2853
    for I := 0 to FRounds * 4 - 5 do
2854
    begin
2855
      P^ := Rijndael_T[4, Rijndael_S[0, P^        and $FF]] xor
2856
            Rijndael_T[5, Rijndael_S[0, P^ shr  8 and $FF]] xor
2857
            Rijndael_T[6, Rijndael_S[0, P^ shr 16 and $FF]] xor
2858
            Rijndael_T[7, Rijndael_S[0, P^ shr 24        ]];
2859
      Inc(P);
2860
    end;
2861
  end;
2862
2863
begin
2864
  if Size <= 16 then
2865
    FRounds := 10
2866
  else
2867
  if Size <= 24 then
2868
    FRounds := 12
2869
  else
2870
    FRounds := 14;
2871
  FillChar(FAdditionalBuffer^, 32, 0);
2872
  Move(Key, FAdditionalBuffer^, Size);
2873
  BuildEncodeKey;
2874
  BuildDecodeKey;
2875
2876
  inherited;
2877
end;
2878
2879
procedure TCipher_Rijndael.DoEncode(Source, Dest: Pointer; Size: Integer);
2880
var
2881
  P: PUInt32Array;
2882
  I: Integer;
2883
  A2, B2, C2, D2: UInt32;
2884
  A1, B1, C1, D1: UInt32;
2885
begin
2886
  Assert(Size = Context.BlockSize);
2887
2888
  P  := FAdditionalBuffer;
2889
  A1 := PUInt32Array(Source)[0];
2890
  B1 := PUInt32Array(Source)[1];
2891
  C1 := PUInt32Array(Source)[2];
2892
  D1 := PUInt32Array(Source)[3];
2893
2894
  for I := 2 to FRounds do
2895
  begin
2896
    A2 := A1 xor P[0];
2897
    B2 := B1 xor P[1];
2898
    C2 := C1 xor P[2];
2899
    D2 := D1 xor P[3];
2900
2901
    A1 := Rijndael_T[0, A2        and $FF] xor
2902
          Rijndael_T[1, B2 shr  8 and $FF] xor
2903
          Rijndael_T[2, C2 shr 16 and $FF] xor
2904
          Rijndael_T[3, D2 shr 24        ];
2905
    B1 := Rijndael_T[0, B2        and $FF] xor
2906
          Rijndael_T[1, C2 shr  8 and $FF] xor
2907
          Rijndael_T[2, D2 shr 16 and $FF] xor
2908
          Rijndael_T[3, A2 shr 24        ];
2909
    C1 := Rijndael_T[0, C2        and $FF] xor
2910
          Rijndael_T[1, D2 shr  8 and $FF] xor
2911
          Rijndael_T[2, A2 shr 16 and $FF] xor
2912
          Rijndael_T[3, B2 shr 24        ];
2913
    D1 := Rijndael_T[0, D2        and $FF] xor
2914
          Rijndael_T[1, A2 shr  8 and $FF] xor
2915
          Rijndael_T[2, B2 shr 16 and $FF] xor
2916
          Rijndael_T[3, C2 shr 24        ];
2917
2918
    P := @P[4];
2919
  end;
2920
2921
  A2 := A1 xor P[0];
2922
  B2 := B1 xor P[1];
2923
  C2 := C1 xor P[2];
2924
  D2 := D1 xor P[3];
2925
2926
  PUInt32Array(Dest)[0] := (Rijndael_S[0, A2        and $FF]        or
2927
                          Rijndael_S[0, B2 shr  8 and $FF] shl  8 or
2928
                          Rijndael_S[0, C2 shr 16 and $FF] shl 16 or
2929
                          Rijndael_S[0, D2 shr 24        ] shl 24)     xor P[4];
2930
  PUInt32Array(Dest)[1] := (Rijndael_S[0, B2        and $FF]        or
2931
                          Rijndael_S[0, C2 shr  8 and $FF] shl  8 or
2932
                          Rijndael_S[0, D2 shr 16 and $FF] shl 16 or
2933
                          Rijndael_S[0, A2 shr 24        ] shl 24)     xor P[5];
2934
  PUInt32Array(Dest)[2] := (Rijndael_S[0, C2        and $FF]        or
2935
                          Rijndael_S[0, D2 shr  8 and $FF] shl  8 or
2936
                          Rijndael_S[0, A2 shr 16 and $FF] shl 16 or
2937
                          Rijndael_S[0, B2 shr 24        ] shl 24)     xor P[6];
2938
  PUInt32Array(Dest)[3] := (Rijndael_S[0, D2        and $FF]        or
2939
                          Rijndael_S[0, A2 shr  8 and $FF] shl  8 or
2940
                          Rijndael_S[0, B2 shr 16 and $FF] shl 16 or
2941
                          Rijndael_S[0, C2 shr 24        ] shl 24)     xor P[7];
2942
end;
2943
2944
procedure TCipher_Rijndael.DoDecode(Source, Dest: Pointer; Size: Integer);
2945
var
2946
  P: PUInt32Array;
2947
  I: Integer;
2948
  A2, B2, C2, D2: UInt32;
2949
  A1, B1, C1, D1: UInt32;
2950
begin
2951
  Assert(Size = Context.BlockSize);
2952
2953
  P  := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1 + FRounds * 16); // for Pointer Math
2954
  A1 := PUInt32Array(Source)[0];
2955
  B1 := PUInt32Array(Source)[1];
2956
  C1 := PUInt32Array(Source)[2];
2957
  D1 := PUInt32Array(Source)[3];
2958
2959
  for I := 2 to FRounds do
2960
  begin
2961
    A2 := A1 xor P[0];
2962
    B2 := B1 xor P[1];
2963
    C2 := C1 xor P[2];
2964
    D2 := D1 xor P[3];
2965
2966
    A1 := Rijndael_T[4, A2        and $FF] xor
2967
          Rijndael_T[5, D2 shr  8 and $FF] xor
2968
          Rijndael_T[6, C2 shr 16 and $FF] xor
2969
          Rijndael_T[7, B2 shr 24        ];
2970
    B1 := Rijndael_T[4, B2        and $FF] xor
2971
          Rijndael_T[5, A2 shr  8 and $FF] xor
2972
          Rijndael_T[6, D2 shr 16 and $FF] xor
2973
          Rijndael_T[7, C2 shr 24        ];
2974
    C1 := Rijndael_T[4, C2        and $FF] xor
2975
          Rijndael_T[5, B2 shr  8 and $FF] xor
2976
          Rijndael_T[6, A2 shr 16 and $FF] xor
2977
          Rijndael_T[7, D2 shr 24        ];
2978
    D1 := Rijndael_T[4, D2        and $FF] xor
2979
          Rijndael_T[5, C2 shr  8 and $FF] xor
2980
          Rijndael_T[6, B2 shr 16 and $FF] xor
2981
          Rijndael_T[7, A2 shr 24        ];
2982
2983
    Dec(PUInt32(P), 4);
2984
  end;
2985
2986
  A2 := A1 xor P[0];
2987
  B2 := B1 xor P[1];
2988
  C2 := C1 xor P[2];
2989
  D2 := D1 xor P[3];
2990
2991
  Dec(PUInt32(P), 4);
2992
2993
  PUInt32Array(Dest)[0] := (Rijndael_S[1, A2        and $FF]        or
2994
                          Rijndael_S[1, D2 shr  8 and $FF] shl  8 or
2995
                          Rijndael_S[1, C2 shr 16 and $FF] shl 16 or
2996
                          Rijndael_S[1, B2 shr 24]         shl 24)    xor P[0];
2997
  PUInt32Array(Dest)[1] := (Rijndael_S[1, B2        and $FF]        or
2998
                          Rijndael_S[1, A2 shr  8 and $FF] shl  8 or
2999
                          Rijndael_S[1, D2 shr 16 and $FF] shl 16 or
3000
                          Rijndael_S[1, C2 shr 24]         shl 24)    xor P[1];
3001
  PUInt32Array(Dest)[2] := (Rijndael_S[1, C2        and $FF]        or
3002
                          Rijndael_S[1, B2 shr  8 and $FF] shl  8 or
3003
                          Rijndael_S[1, A2 shr 16 and $FF] shl 16 or
3004
                          Rijndael_S[1, D2 shr 24]         shl 24)    xor P[2];
3005
  PUInt32Array(Dest)[3] := (Rijndael_S[1, D2        and $FF]        or
3006
                          Rijndael_S[1, C2 shr  8 and $FF] shl  8 or
3007
                          Rijndael_S[1, B2 shr 16 and $FF] shl 16 or
3008
                          Rijndael_S[1, A2 shr 24]         shl 24)    xor P[3];
3009
end;
3010
3011
{ TCipher_Square }
3012
3013
class function TCipher_Square.Context: TCipherContext;
3014
begin
3015
  Result.KeySize                     := 16;
3016
  Result.BlockSize                   := 16;
3017
  Result.BufferSize                  := 16;
3018
  Result.AdditionalBufferSize        := 9 * 4 * 2 * SizeOf(UInt32);
3019
  Result.NeedsAdditionalBufferBackup := False;
3020
  Result.MinRounds                   := 1;
3021
  Result.MaxRounds                   := 1;
3022
  Result.CipherType                  := [ctSymmetric, ctBlock];
3023
end;
3024
3025
procedure TCipher_Square.DoInit(const Key; Size: Integer);
3026
type
3027
  PSquare_Key = ^TSquare_Key;
3028
  TSquare_Key = array[0..8, 0..3] of UInt32;
3029
var
3030
  E, D: PSquare_Key;
3031
  S, T, R: UInt32;
3032
  I, J: Integer;
3033
begin
3034
  E := FAdditionalBuffer;
3035
  D := FAdditionalBuffer; Inc(D);
3036
  Move(Key, E^, Size);
3037
3038
  for I := 1 to 8 do
3039
  begin
3040
    T := E[I - 1, 3];
3041
    T := T shr 8 or T shl 24;
3042
    E[I, 0] := E[I - 1, 0] xor T xor 1 shl (I - 1);
3043
    E[I, 1] := E[I - 1, 1] xor E[I, 0];
3044
    E[I, 2] := E[I - 1, 2] xor E[I, 1];
3045
    E[I, 3] := E[I - 1, 3] xor E[I, 2];
3046
3047
    D[8 - I, 0] := E[I, 0];
3048
    D[8 - I, 1] := E[I, 1];
3049
    D[8 - I, 2] := E[I, 2];
3050
    D[8 - I, 3] := E[I, 3];
3051
3052
    for J := 0 to 3 do
3053
    begin
3054
      R := E[I - 1, J];
3055
      S := Square_PHI[R and $FF];
3056
      T := Square_PHI[R shr  8 and $FF];
3057
      T := T shl 8 or T shr 24;
3058
      S := S xor T;
3059
      T := Square_PHI[R shr 16 and $FF];
3060
      T := T shl 16 or T shr 16;
3061
      S := S xor T;
3062
      T := Square_PHI[R shr 24];
3063
      T := T shl 24 or T shr 8;
3064
      S := S xor T;
3065
      E[I - 1, J] := S;
3066
    end;
3067
  end;
3068
3069
  D[8] := E[0];
3070
3071
  inherited;
3072
end;
3073
3074
procedure TCipher_Square.DoEncode(Source, Dest: Pointer; Size: Integer);
3075
var
3076
  Key: PUInt32Array;
3077
  A, B, C, D: UInt32;
3078
  AA, BB, CC: UInt32;
3079
  I: Integer;
3080
begin
3081
  Key := FAdditionalBuffer;
3082
  A := PUInt32Array(Source)[0] xor Key[0];
3083
  B := PUInt32Array(Source)[1] xor Key[1];
3084
  C := PUInt32Array(Source)[2] xor Key[2];
3085
  D := PUInt32Array(Source)[3] xor Key[3];
3086
  Key := @Key[4];
3087
3088
  for I := 0 to 6 do
3089
  begin
3090
    AA := Square_TE[0, A        and $FF] xor
3091
          Square_TE[1, B        and $FF] xor
3092
          Square_TE[2, C        and $FF] xor
3093
          Square_TE[3, D        and $FF] xor Key[0];
3094
    BB := Square_TE[0, A shr  8 and $FF] xor
3095
          Square_TE[1, B shr  8 and $FF] xor
3096
          Square_TE[2, C shr  8 and $FF] xor
3097
          Square_TE[3, D shr  8 and $FF] xor Key[1];
3098
    CC := Square_TE[0, A shr 16 and $FF] xor
3099
          Square_TE[1, B shr 16 and $FF] xor
3100
          Square_TE[2, C shr 16 and $FF] xor
3101
          Square_TE[3, D shr 16 and $FF] xor Key[2];
3102
    D  := Square_TE[0, A shr 24        ] xor
3103
          Square_TE[1, B shr 24        ] xor
3104
          Square_TE[2, C shr 24        ] xor
3105
          Square_TE[3, D shr 24        ] xor Key[3];
3106
3107
    A := AA; B := BB; C := CC;
3108
3109
    Key := @Key[4];
3110
  end;
3111
3112
  PUInt32Array(Dest)[0] := UInt32(Square_SE[A        and $FF])        xor
3113
                         UInt32(Square_SE[B        and $FF]) shl  8 xor
3114
                         UInt32(Square_SE[C        and $FF]) shl 16 xor
3115
                         UInt32(Square_SE[D        and $FF]) shl 24 xor Key[0];
3116
  PUInt32Array(Dest)[1] := UInt32(Square_SE[A shr  8 and $FF])        xor
3117
                         UInt32(Square_SE[B shr  8 and $FF]) shl  8 xor
3118
                         UInt32(Square_SE[C shr  8 and $FF]) shl 16 xor
3119
                         UInt32(Square_SE[D shr  8 and $FF]) shl 24 xor Key[1];
3120
  PUInt32Array(Dest)[2] := UInt32(Square_SE[A shr 16 and $FF])        xor
3121
                         UInt32(Square_SE[B shr 16 and $FF]) shl  8 xor
3122
                         UInt32(Square_SE[C shr 16 and $FF]) shl 16 xor
3123
                         UInt32(Square_SE[D shr 16 and $FF]) shl 24 xor Key[2];
3124
  PUInt32Array(Dest)[3] := UInt32(Square_SE[A shr 24        ])        xor
3125
                         UInt32(Square_SE[B shr 24        ]) shl  8 xor
3126
                         UInt32(Square_SE[C shr 24        ]) shl 16 xor
3127
                         UInt32(Square_SE[D shr 24        ]) shl 24 xor Key[3];
3128
end;
3129
3130
procedure TCipher_Square.DoDecode(Source, Dest: Pointer; Size: Integer);
3131
var
3132
  Key: PUInt32Array;
3133
  A, B, C, D: UInt32;
3134
  AA, BB, CC: UInt32;
3135
  I: Integer;
3136
begin
3137
  Key := @PUInt32Array(FAdditionalBuffer)[9 * 4];
3138
  A := PUInt32Array(Source)[0] xor Key[0];
3139
  B := PUInt32Array(Source)[1] xor Key[1];
3140
  C := PUInt32Array(Source)[2] xor Key[2];
3141
  D := PUInt32Array(Source)[3] xor Key[3];
3142
  Key := @Key[4];
3143
3144
  for I := 0 to 6 do
3145
  begin
3146
    AA := Square_TD[0, A        and $FF] xor
3147
          Square_TD[1, B        and $FF] xor
3148
          Square_TD[2, C        and $FF] xor
3149
          Square_TD[3, D        and $FF] xor Key[0];
3150
    BB := Square_TD[0, A shr  8 and $FF] xor
3151
          Square_TD[1, B shr  8 and $FF] xor
3152
          Square_TD[2, C shr  8 and $FF] xor
3153
          Square_TD[3, D shr  8 and $FF] xor Key[1];
3154
    CC := Square_TD[0, A shr 16 and $FF] xor
3155
          Square_TD[1, B shr 16 and $FF] xor
3156
          Square_TD[2, C shr 16 and $FF] xor
3157
          Square_TD[3, D shr 16 and $FF] xor Key[2];
3158
    D  := Square_TD[0, A shr 24        ] xor
3159
          Square_TD[1, B shr 24        ] xor
3160
          Square_TD[2, C shr 24        ] xor
3161
          Square_TD[3, D shr 24        ] xor Key[3];
3162
3163
    A := AA; B := BB; C := CC;
3164
    Key := @Key[4];
3165
  end;
3166
3167
  PUInt32Array(Dest)[0] := UInt32(Square_SD[A        and $FF])        xor
3168
                         UInt32(Square_SD[B        and $FF]) shl  8 xor
3169
                         UInt32(Square_SD[C        and $FF]) shl 16 xor
3170
                         UInt32(Square_SD[D        and $FF]) shl 24 xor Key[0];
3171
  PUInt32Array(Dest)[1] := UInt32(Square_SD[A shr  8 and $FF])        xor
3172
                         UInt32(Square_SD[B shr  8 and $FF]) shl  8 xor
3173
                         UInt32(Square_SD[C shr  8 and $FF]) shl 16 xor
3174
                         UInt32(Square_SD[D shr  8 and $FF]) shl 24 xor Key[1];
3175
  PUInt32Array(Dest)[2] := UInt32(Square_SD[A shr 16 and $FF])        xor
3176
                         UInt32(Square_SD[B shr 16 and $FF]) shl  8 xor
3177
                         UInt32(Square_SD[C shr 16 and $FF]) shl 16 xor
3178
                         UInt32(Square_SD[D shr 16 and $FF]) shl 24 xor Key[2];
3179
  PUInt32Array(Dest)[3] := UInt32(Square_SD[A shr 24        ])        xor
3180
                         UInt32(Square_SD[B shr 24        ]) shl  8 xor
3181
                         UInt32(Square_SD[C shr 24        ]) shl 16 xor
3182
                         UInt32(Square_SD[D shr 24        ]) shl 24 xor Key[3];
3183
end;
3184
3185
{ TCipher_SCOP }
3186
3187
class function TCipher_SCOP.Context: TCipherContext;
3188
begin
3189
  Result.KeySize                     := 48;
3190
  Result.BlockSize                   := 4;
3191
  Result.BufferSize                  := 32;
3192
  Result.AdditionalBufferSize        := 384 * 4 + 3 * SizeOf(UInt32);
3193
  Result.NeedsAdditionalBufferBackup := True;
3194
  Result.MinRounds                   := 1;
3195
  Result.MaxRounds                   := 1;
3196
  Result.CipherType                  := [ctSymmetric, ctStream];
3197
end;
3198
3199
procedure TCipher_SCOP.DoInit(const Key; Size: Integer);
3200
var
3201
  Init_State: packed record
3202
    Coef: array[0..7, 0..3] of Byte;
3203
    X: array[0..3] of UInt32;
3204
  end;
3205
3206
  procedure ExpandKey;
3207
  var
3208
    P: PByteArray;
3209
    I, C: Integer;
3210
  begin
3211
    C := 1;
3212
    P := @Init_State;
3213
    Move(Key, P^, Size);
3214
    for I := Size to 47 do
3215
      P[I] := P[I - Size] + P[I - Size + 1];
3216
    for I := 0 to 31 do
3217
      if P[I] = 0 then
3218
      begin
3219
        P[I] := C;
3220
        Inc(C);
3221
      end;
3222
  end;
3223
3224
  procedure GP8(Data: PUInt32Array);
3225
  var
3226
    I, I2: Integer;
3227
    NewX: array[0..3] of UInt32;
3228
    X1, X2, X3, X4: UInt32;
3229
    Y1, Y2: UInt32;
3230
  begin
3231
    I := 0;
3232
    I2 := 0;
3233
    while I < 8 do
3234
    begin
3235
      X1 := Init_State.X[I2] shr 16;
3236
      X2 := X1 * X1;
3237
      X3 := X2 * X1;
3238
      X4 := X3 * X1;
3239
      Y1 := Init_State.Coef[I][0] * X4 +
3240
            Init_State.Coef[I][1] * X3 +
3241
            Init_State.Coef[I][2] * X2 +
3242
            Init_State.Coef[I][3] * X1 + 1;
3243
      X1 := Init_State.X[I2] and $FFFF;
3244
      X2 := X1 * X1;
3245
      X3 := X2 * X1;
3246
      X4 := X3 * X1;
3247
      Y2 := Init_State.Coef[I + 1][0] * X4 +
3248
            Init_State.Coef[I + 1][1] * X3 +
3249
            Init_State.Coef[I + 1][2] * X2 +
3250
            Init_State.Coef[I + 1][3] * X1 + 1;
3251
      Data[I2] := Y1 shl 16 or Y2 and $FFFF;
3252
      NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16;
3253
      Inc(I2);
3254
      Inc(I, 2);
3255
    end;
3256
    Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16;
3257
    Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16;
3258
    Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16;
3259
    Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16;
3260
  end;
3261
3262
var
3263
  I, J: Integer;
3264
  T: array[0..3] of UInt32;
3265
  P: PUInt32Array;
3266
begin
3267
  FillChar(Init_State, SizeOf(Init_State), 0);
3268
  FillChar(T, SizeOf(T), 0);
3269
  P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math
3270
  ExpandKey;
3271
  for I := 0 to 7 do
3272
    GP8(@T);
3273
  for I := 0 to 11 do
3274
  begin
3275
    for J := 0 to 7 do
3276
      GP8(@P[I * 32 + J * 4]);
3277
    GP8(@T);
3278
  end;
3279
  GP8(@T);
3280
  I := T[3] and $7F;
3281
  P[I] := P[I] or 1;
3282
  P := FAdditionalBuffer;
3283
  P[0] := T[3] shr 24 and $FF;
3284
  P[1] := T[3] shr 16 and $FF;
3285
  P[2] := T[3] shr  8 and $FF;
3286
  ProtectBuffer(Init_State, SizeOf(Init_State));
3287
3288
  inherited;
3289
end;
3290
3291
procedure TCipher_SCOP.DoEncode(Source, Dest: Pointer; Size: Integer);
3292
var
3293
  I, J: Byte;
3294
  T2, T3, T1: UInt32;
3295
  P: PUInt32Array;
3296
  W: Integer;
3297
begin
3298
  P  := FAdditionalBuffer;
3299
  I  := P[0];
3300
  J  := P[1];
3301
  T3 := P[2];
3302
  for W := 0 to Size div 4 - 1 do
3303
  begin
3304
    T1 := P[J + 3 + 128]; Inc(J, T3);
3305
    T2 := P[J + 3 + 128];
3306
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2;
3307
    T3 := T2 + P[I + 3];  Inc(I);
3308
    P[J + 3 + 128] := T3;
3309
    Inc(J, T2);
3310
  end;
3311
  P[0] := I;
3312
  P[1] := J;
3313
  P[2] := T3;
3314
end;
3315
3316
procedure TCipher_SCOP.DoDecode(Source, Dest: Pointer; Size: Integer);
3317
var
3318
  I, J: Byte;
3319
  T1, T2, T3: UInt32;
3320
  P: PUInt32Array;
3321
  W: Integer;
3322
begin
3323
  P  := FAdditionalBuffer;
3324
  I  := P[0];
3325
  J  := P[1];
3326
  T3 := P[2];
3327
  for W := 0 to Size div 4 - 1 do
3328
  begin
3329
    T1 := P[J + 3 + 128]; Inc(J, T3);
3330
    T2 := P[J + 3 + 128];
3331
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2;
3332
    T3 := T2 + P[I + 3];
3333
    Inc(I);
3334
    P[J + 3 + 128] := T3;
3335
    Inc(J, T2);
3336
  end;
3337
  P[0] := I;
3338
  P[1] := J;
3339
  P[2] := T3;
3340
end;
3341
3342
{ TCipher_SCOP_DEC52 }
3343
3344
class function TCipher_SCOP_DEC52.Context: TCipherContext;
3345
begin
3346
  Result.KeySize                     := 48;
3347
  Result.BlockSize                   := 4;
3348
  Result.BufferSize                  := 32;
3349
  Result.AdditionalBufferSize        := 384 * 4 + 3 * SizeOf(UInt32);
3350
  Result.NeedsAdditionalBufferBackup := True;
3351
  Result.MinRounds                   := 1;
3352
  Result.MaxRounds                   := 1;
3353
  Result.CipherType                  := [ctSymmetric, ctStream];
3354
end;
3355
3356
procedure TCipher_SCOP_DEC52.DoInit(const Key; Size: Integer);
3357
var
3358
  Init_State: packed record
3359
    Coef: array[0..7, 0..3] of Byte;
3360
    X: array[0..3] of UInt32;
3361
  end;
3362
3363
  procedure ExpandKey;
3364
  var
3365
    P: PByteArray;
3366
    I, C: Integer;
3367
  begin
3368
    C := 1;
3369
    P := @Init_State;
3370
    Move(Key, P^, Size);
3371
    for I := Size to 47 do
3372
      P[I] := P[I - Size] + P[I - Size + 1];
3373
    for I := 0 to 31 do
3374
      if P[I] = 0 then
3375
      begin
3376
        P[I] := C;
3377
        Inc(C);
3378
      end;
3379
  end;
3380
3381
  procedure GP8(Data: PUInt32Array);
3382
  var
3383
    I, I2: Integer;
3384
    NewX: array[0..3] of UInt32;
3385
    X1, X2, X3, X4: UInt32;
3386
    Y1, Y2: UInt32;
3387
  begin
3388
    I := 0;
3389
    I2 := 0;
3390
    while I < 8 do
3391
    begin
3392
      X1 := Init_State.X[I2] shr 16;
3393
      X2 := X1 * X1;
3394
      X3 := X2 * X1;
3395
      X4 := X3 * X1;
3396
      Y1 := Init_State.Coef[I][0] * X4 +
3397
            Init_State.Coef[I][1] * X3 +
3398
            Init_State.Coef[I][2] * X2 +
3399
            Init_State.Coef[I][3] * X1 + 1;
3400
      X1 := Init_State.X[I2] and $FFFF;
3401
      X2 := X1 * X1;
3402
      X3 := X2 * X1;
3403
      X4 := X3 * X1;
3404
      Y2 := Init_State.Coef[I + 1][0] * X4 +
3405
            Init_State.Coef[I + 2][1] * X3 +
3406
            Init_State.Coef[I + 3][2] * X2 +
3407
            Init_State.Coef[I + 4][3] * X1 + 1;
3408
      Data[I2] := Y1 shl 16 or Y2 and $FFFF;
3409
      NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16;
3410
      Inc(I2);
3411
      Inc(I, 2);
3412
    end;
3413
    Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16;
3414
    Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16;
3415
    Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16;
3416
    Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16;
3417
  end;
3418
3419
var
3420
  I, J: Integer;
3421
  T: array[0..3] of Integer;
3422
  P: PUInt32Array;
3423
begin
3424
  FillChar(Init_State, SizeOf(Init_State), 0);
3425
  FillChar(T, SizeOf(T), 0);
3426
  P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math
3427
  ExpandKey;
3428
  for I := 0 to 7 do
3429
    GP8(@T);
3430
  for I := 0 to 11 do
3431
  begin
3432
    for J := 0 to 7 do
3433
      GP8(@P[I * 32 + J * 4]);
3434
    GP8(@T);
3435
  end;
3436
  GP8(@T);
3437
  I := T[3] and $7F;
3438
  P[I + 3] := P[I + 3] or 1;
3439
  P := FAdditionalBuffer;
3440
  P[0] := T[3] shr 24 and $FF;
3441
  P[1] := T[3] shr 16 and $FF;
3442
  P[2] := T[3] shr  8 and $FF;
3443
  ProtectBuffer(Init_State, SizeOf(Init_State));
3444
3445
  inherited;
3446
end;
3447
3448
procedure TCipher_SCOP_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer);
3449
var
3450
  I, J: Byte;
3451
  T2, T3, T1: UInt32;
3452
  P: PUInt32Array;
3453
  W: Integer;
3454
begin
3455
  P  := FAdditionalBuffer;
3456
  I  := P[0];
3457
  J  := P[1];
3458
  T3 := P[2];
3459
  for W := 0 to Size div 4 - 1 do
3460
  begin
3461
    T1 := P[J + 3 + 128]; Inc(J, T3);
3462
    T2 := P[J + 3 + 128];
3463
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2;
3464
    T3 := T2 + P[I + 3];  Inc(I);
3465
    P[J + 3 + 128] := T3;
3466
    Inc(J, T2);
3467
  end;
3468
  P[0] := I;
3469
  P[1] := J;
3470
  P[2] := T3;
3471
end;
3472
3473
procedure TCipher_SCOP_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer);
3474
var
3475
  I, J: Byte;
3476
  T1, T2, T3: UInt32;
3477
  P: PUInt32Array;
3478
  W: Integer;
3479
begin
3480
  P  := FAdditionalBuffer;
3481
  I  := P[0];
3482
  J  := P[1];
3483
  T3 := P[2];
3484
  for W := 0 to Size div 4 - 1 do
3485
  begin
3486
    T1 := P[J + 3 + 128]; Inc(J, T3);
3487
    T2 := P[J + 3 + 128];
3488
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2;
3489
    T3 := T2 + P[I + 3];
3490
    Inc(I);
3491
    P[J + 3 + 128] := T3;
3492
    Inc(J, T2);
3493
  end;
3494
  P[0] := I;
3495
  P[1] := J;
3496
  P[2] := T3;
3497
end;
3498
3499
{ TCipher_Sapphire }
3500
3501
type
3502
  PSapphireKey = ^TSapphireKey;
3503
  TSapphireKey = packed record
3504
    Cards: array[0..255] of UInt32;
3505
    Rotor: UInt32;
3506
    Ratchet: UInt32;
3507
    Avalanche: UInt32;
3508
    Plain: UInt32;
3509
    Cipher: UInt32;
3510
  end;
3511
3512
class function TCipher_Sapphire.Context: TCipherContext;
3513
begin
3514
  Result.KeySize                     := 1024;
3515
  Result.BlockSize                   := 1;
3516
  Result.BufferSize                  := 32;
3517
  Result.AdditionalBufferSize        := SizeOf(TSapphireKey);
3518
  Result.NeedsAdditionalBufferBackup := True;
3519
  Result.MinRounds                   := 1;
3520
  Result.MaxRounds                   := 1;
3521
  Result.CipherType                  := [ctSymmetric, ctStream];
3522
end;
3523
3524
procedure TCipher_Sapphire.DoInit(const Key; Size: Integer);
3525
var
3526
  Sum: Byte;
3527
  P: Integer;
3528
3529
  function KeyRand(Max: UInt32): Byte;
3530
  var
3531
    I, M: UInt32;
3532
  begin
3533
    Result := 0;
3534
    if Max = 0 then
3535
      Exit;
3536
    I := 0;
3537
    M := 1;
3538
3539
    while M < Max do
3540
     Inc(M, M or 1);
3541
3542
    repeat
3543
      Inc(Sum, TByteArray(Key)[P]);
3544
      Inc(P);
3545
      if P >= Size then
3546
      begin
3547
        P := 0;
3548
        Inc(Sum, Size);
3549
      end;
3550
      Result := M and Sum;
3551
      Inc(I);
3552
      if I > 11 then
3553
        Result := Result mod Max;
3554
    until Result <= Max;
3555
  end;
3556
3557
var
3558
  I, S, T: Integer;
3559
  SKey : PSapphireKey;
3560
begin
3561
  SKey := PSapphireKey(FAdditionalBuffer);
3562
  if Size <= 0 then
3563
  begin
3564
    SKey.Rotor     := 1;
3565
    SKey.Ratchet   := 3;
3566
    SKey.Avalanche := 5;
3567
    SKey.Plain     := 7;
3568
    SKey.Cipher    := 11;
3569
    for I := 0 to 255 do
3570
      SKey.Cards[I] := 255 - I;
3571
  end
3572
  else
3573
  begin
3574
    for I := 0 to 255 do
3575
      SKey.Cards[I] := I;
3576
    P   := 0;
3577
    Sum := 0;
3578
    for I := 255 downto 1 do
3579
    begin
3580
      S := KeyRand(I);
3581
      T := SKey.Cards[I];
3582
      SKey.Cards[I] := SKey.Cards[S];
3583
      SKey.Cards[S] := T;
3584
    end;
3585
    SKey.Rotor     := SKey.Cards[1];
3586
    SKey.Ratchet   := SKey.Cards[3];
3587
    SKey.Avalanche := SKey.Cards[5];
3588
    SKey.Plain     := SKey.Cards[7];
3589
    SKey.Cipher    := SKey.Cards[Sum];
3590
  end;
3591
3592
  inherited;
3593
end;
3594
3595
procedure TCipher_Sapphire.DoEncode(Source, Dest: Pointer; Size: Integer);
3596
var
3597
  T: UInt32;
3598
  I: Integer;
3599
  SKey: PSapphireKey;
3600
begin
3601
  SKey := PSapphireKey(FAdditionalBuffer);
3602
  for I := 0 to Size - 1 do
3603
  begin
3604
    SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF;
3605
    SKey.Rotor := (SKey.Rotor + 1) and $FF;
3606
    T := SKey.Cards[SKey.Cipher];
3607
    SKey.Cards[SKey.Cipher]  := SKey.Cards[SKey.Ratchet];
3608
    SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain];
3609
    SKey.Cards[SKey.Plain]   := SKey.Cards[SKey.Rotor];
3610
    SKey.Cards[SKey.Rotor]   := T;
3611
    SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF;
3612
    T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF;
3613
    SKey.Plain := PByteArray(Source)[I];
3614
    SKey.Cipher := SKey.Plain xor SKey.Cards[SKey.Cards[T]] xor
3615
                   SKey.Cards[(SKey.Cards[SKey.Ratchet] +
3616
                   SKey.Cards[SKey.Rotor]) and $FF];
3617
    PByteArray(Dest)[I] := SKey.Cipher;
3618
  end;
3619
end;
3620
3621
procedure TCipher_Sapphire.DoDecode(Source, Dest: Pointer; Size: Integer);
3622
var
3623
  T: UInt32;
3624
  I: Integer;
3625
  SKey: PSapphireKey;
3626
begin
3627
  SKey := PSapphireKey(FAdditionalBuffer);
3628
  for I := 0 to Size - 1 do
3629
  begin
3630
    SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF;
3631
    SKey.Rotor := (SKey.Rotor + 1) and $FF;
3632
    T := SKey.Cards[SKey.Cipher];
3633
    SKey.Cards[SKey.Cipher]  := SKey.Cards[SKey.Ratchet];
3634
    SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain];
3635
    SKey.Cards[SKey.Plain]   := SKey.Cards[SKey.Rotor];
3636
    SKey.Cards[SKey.Rotor]   := T;
3637
    SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF;
3638
    T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF;
3639
    SKey.Cipher := PByteArray(Source)[I];
3640
    SKey.Plain := SKey.Cipher xor SKey.Cards[SKey.Cards[T]] xor
3641
                  SKey.Cards[(SKey.Cards[SKey.Ratchet] +
3642
                  SKey.Cards[SKey.Rotor]) and $FF];
3643
    PByteArray(Dest)[I] := SKey.Plain;
3644
  end;
3645
end;
3646
3647
{ DES basics }
3648
3649
procedure DES_Func(Source, Dest, Key: PUInt32Array);
3650
var
3651
  L, R, X, Y, I: UInt32;
3652
begin
3653
  L := SwapUInt32(Source[0]);
3654
  R := SwapUInt32(Source[1]);
3655
3656
  X := (L shr  4 xor R) and $0F0F0F0F; R := R xor X; L := L xor X shl  4;
3657
  X := (L shr 16 xor R) and $0000FFFF; R := R xor X; L := L xor X shl 16;
3658
  X := (R shr  2 xor L) and $33333333; L := L xor X; R := R xor X shl  2;
3659
  X := (R shr  8 xor L) and $00FF00FF; L := L xor X; R := R xor X shl  8;
3660
3661
  R := R shl 1 or R shr 31;
3662
  X := (L xor R) and $AAAAAAAA;
3663
  R := R xor X;
3664
  L := L xor X;
3665
  L := L shl 1 or L shr 31;
3666
3667
  for I := 0 to 7 do
3668
  begin
3669
    X := (R shl 28 or R shr 4) xor Key[0];
3670
    Y := R xor Key[1];
3671
    L := L xor (DES_Data[0, X        and $3F] or DES_Data[1, X shr  8 and $3F] or
3672
                DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or
3673
                DES_Data[4, Y        and $3F] or DES_Data[5, Y shr  8 and $3F] or
3674
                DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]);
3675
3676
    X := (L shl 28 or L shr 4) xor Key[2];
3677
    Y := L xor Key[3];
3678
    R := R xor (DES_Data[0, X        and $3F] or DES_Data[1, X shr  8 and $3F] or
3679
                DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or
3680
                DES_Data[4, Y        and $3F] or DES_Data[5, Y shr  8 and $3F] or
3681
                DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]);
3682
    Key := @Key[4];
3683
  end;
3684
3685
  R := R shl 31 or R shr 1;
3686
  X := (L xor R) and $AAAAAAAA;
3687
  R := R xor X;
3688
  L := L xor X;
3689
  L := L shl 31 or L shr 1;
3690
3691
  X := (L shr  8 xor R) and $00FF00FF; R := R xor X; L := L xor X shl  8;
3692
  X := (L shr  2 xor R) and $33333333; R := R xor X; L := L xor X shl  2;
3693
  X := (R shr 16 xor L) and $0000FFFF; L := L xor X; R := R xor X shl 16;
3694
  X := (R shr  4 xor L) and $0F0F0F0F; L := L xor X; R := R xor X shl  4;
3695
3696
  Dest[0] := SwapUInt32(R);
3697
  Dest[1] := SwapUInt32(L);
3698
end;
3699
3700
procedure TCipher_DESBase.DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean);
3701
const
3702
  ROT: array[0..15] of Byte = (1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28);
3703
var
3704
  I, J, L, M, N: UInt32;
3705
  PC_M, PC_R: array[0..55] of Byte;
3706
  K: array[0..31] of UInt32;
3707
begin
3708
  FillChar(K, SizeOf(K), 0);
3709
  for I := 0 to 55 do
3710
    if Data[DES_PC1[I] shr 3] and ($80 shr (DES_PC1[I] and $07)) <> 0 then
3711
      PC_M[I] := 1
3712
    else
3713
      PC_M[I] := 0;
3714
  for I := 0 to 15 do
3715
  begin
3716
    if Reverse then
3717
      M := (15 - I) shl 1
3718
    else
3719
      M := I shl 1;
3720
    N := M + 1;
3721
    for J := 0 to 27 do
3722
    begin
3723
      L := J + ROT[I];
3724
      if L < 28 then
3725
        PC_R[J] := PC_M[L]
3726
      else
3727
        PC_R[J] := PC_M[L - 28];
3728
    end;
3729
    for J := 28 to 55 do
3730
    begin
3731
      L := J + ROT[I];
3732
      if L < 56 then
3733
        PC_R[J] := PC_M[L]
3734
      else
3735
        PC_R[J] := PC_M[L - 28];
3736
    end;
3737
    L := $1000000;
3738
    for J := 0 to 23 do
3739
    begin
3740
      L := L shr 1;
3741
      if PC_R[DES_PC2[J     ]] <> 0 then
3742
        K[M] := K[M] or L;
3743
      if PC_R[DES_PC2[J + 24]] <> 0 then
3744
        K[N] := K[N] or L;
3745
    end;
3746
  end;
3747
  for I := 0 to 15 do
3748
  begin
3749
    M := I shl 1;
3750
    N := M + 1;
3751
    Key[0] := K[M] and $00FC0000 shl  6 or
3752
              K[M] and $00000FC0 shl 10 or
3753
              K[N] and $00FC0000 shr 10 or
3754
              K[N] and $00000FC0 shr  6;
3755
    Key[1] := K[M] and $0003F000 shl 12 or
3756
              K[M] and $0000003F shl 16 or
3757
              K[N] and $0003F000 shr  4 or
3758
              K[N] and $0000003F;
3759
    Key := @Key[2];
3760
  end;
3761
  ProtectBuffer(K, SizeOf(K));
3762
  ProtectBuffer(PC_M, SizeOf(PC_M));
3763
  ProtectBuffer(PC_R, SizeOf(PC_R));
3764
end;
3765
3766
{ TCipher_1DES }
3767
3768
class function TCipher_1DES.Context: TCipherContext;
3769
begin
3770
  Result.KeySize                     := 8;
3771
  Result.BlockSize                   := 8;
3772
  Result.BufferSize                  := 8;
3773
  Result.AdditionalBufferSize        := 32 * 4 * 2;
3774
  Result.NeedsAdditionalBufferBackup := False;
3775
  Result.MinRounds                   := 1;
3776
  Result.MaxRounds                   := 1;
3777
  Result.CipherType                  := [ctSymmetric, ctBlock];
3778
end;
3779
3780
procedure TCipher_1DES.DoInit(const Key; Size: Integer);
3781
var
3782
  K: array[0..7] of Byte;
3783
begin
3784
  FillChar(K, SizeOf(K), 0);
3785
  Move(Key, K, Size);
3786
  DoInitKey(K, FAdditionalBuffer, False);
3787
  DoInitKey(K, @PUInt32Array(FAdditionalBuffer)[32], True);
3788
  ProtectBuffer(K, SizeOf(K));
3789
3790
  inherited;
3791
end;
3792
3793
procedure TCipher_1DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3794
begin
3795
  Assert(Size = Context.BlockSize);
3796
  DES_Func(Source, Dest, FAdditionalBuffer);
3797
end;
3798
3799
procedure TCipher_1DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3800
begin
3801
  Assert(Size = Context.BlockSize);
3802
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3803
end;
3804
3805
{ TCipher_2DES }
3806
3807
class function TCipher_2DES.Context: TCipherContext;
3808
begin
3809
  Result.KeySize                     := 16;
3810
  Result.BlockSize                   := 8;
3811
  Result.BufferSize                  := 8;
3812
  Result.AdditionalBufferSize        := 32 * 4 * 2 * 2;
3813
  Result.NeedsAdditionalBufferBackup := False;
3814
  Result.MinRounds                   := 1;
3815
  Result.MaxRounds                   := 1;
3816
  Result.CipherType                  := [ctSymmetric, ctBlock];
3817
end;
3818
3819
procedure TCipher_2DES.DoInit(const Key; Size: Integer);
3820
var
3821
  K: array[0..15] of Byte;
3822
  P: PUInt32Array;
3823
begin
3824
  FillChar(K, SizeOf(K), 0);
3825
  Move(Key, K, Size);
3826
  P := FAdditionalBuffer;
3827
  DoInitKey(K[0], @P[ 0], False);
3828
  DoInitKey(K[8], @P[32], True);
3829
  DoInitKey(K[0], @P[64], True);
3830
  DoInitKey(K[8], @P[96], False);
3831
  ProtectBuffer(K, SizeOf(K));
3832
3833
  inherited;
3834
end;
3835
3836
procedure TCipher_2DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3837
begin
3838
  Assert(Size = Context.BlockSize);
3839
  DES_Func(Source, Dest, FAdditionalBuffer);
3840
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3841
  DES_Func(Source, Dest, FAdditionalBuffer);
3842
end;
3843
3844
procedure TCipher_2DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3845
begin
3846
  Assert(Size = Context.BlockSize);
3847
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3848
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]);
3849
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3850
end;
3851
3852
{ TCipher_3DES }
3853
3854
class function TCipher_3DES.Context: TCipherContext;
3855
begin
3856
  Result.KeySize                     := 24;
3857
  Result.BlockSize                   := 8;
3858
  Result.BufferSize                  := 8;
3859
  Result.AdditionalBufferSize        := 32 * 4 * 2 * 3;
3860
  Result.NeedsAdditionalBufferBackup := False;
3861
  Result.MinRounds                   := 1;
3862
  Result.MaxRounds                   := 1;
3863
  Result.CipherType                  := [ctSymmetric, ctBlock];
3864
end;
3865
3866
procedure TCipher_3DES.DoInit(const Key; Size: Integer);
3867
var
3868
  K: array[0..23] of Byte;
3869
  P: PUInt32Array;
3870
begin
3871
  FillChar(K, SizeOf(K), 0);
3872
  Move(Key, K, Size);
3873
  P := FAdditionalBuffer;
3874
  DoInitKey(K[ 0], @P[  0], False);
3875
  DoInitKey(K[ 8], @P[ 32], True);
3876
  DoInitKey(K[16], @P[ 64], False);
3877
  DoInitKey(K[16], @P[ 96], True);
3878
  DoInitKey(K[ 8], @P[128], False);
3879
  DoInitKey(K[ 0], @P[160], True);
3880
  ProtectBuffer(K, SizeOf(K));
3881
3882
  inherited;
3883
end;
3884
3885
procedure TCipher_3DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3886
begin
3887
  Assert(Size = Context.BlockSize);
3888
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[ 0]);
3889
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3890
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3891
end;
3892
3893
procedure TCipher_3DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3894
begin
3895
  Assert(Size = Context.BlockSize);
3896
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]);
3897
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[128]);
3898
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[160]);
3899
end;
3900
3901
{ TCipher_2DDES }
3902
3903
class function TCipher_2DDES.Context: TCipherContext;
3904
begin
3905
  Result            := inherited Context;
3906
  Result.BlockSize  := 16;
3907
  Result.BufferSize := 16;
3908
  Result.MinRounds  := 1;
3909
  Result.MaxRounds  := 1;
3910
  Result.CipherType := [ctSymmetric, ctBlock];
3911
end;
3912
3913
procedure TCipher_2DDES.DoEncode(Source, Dest: Pointer; Size: Integer);
3914
var
3915
  T: UInt32;
3916
begin
3917
  Assert(Size = Context.BlockSize);
3918
3919
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3920
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3921
  T := PUInt32Array(Dest)[1];
3922
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3923
  PUInt32Array(Dest)[2] := T;
3924
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
3925
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
3926
  T := PUInt32Array(Dest)[1];
3927
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3928
  PUInt32Array(Dest)[2] := T;
3929
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3930
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3931
end;
3932
3933
procedure TCipher_2DDES.DoDecode(Source, Dest: Pointer; Size: Integer);
3934
var
3935
  T: UInt32;
3936
begin
3937
  Assert(Size = Context.BlockSize);
3938
3939
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3940
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3941
  T := PUInt32Array(Dest)[1];
3942
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3943
  PUInt32Array(Dest)[2] := T;
3944
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
3945
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
3946
  T := PUInt32Array(Dest)[1];
3947
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3948
  PUInt32Array(Dest)[2] := T;
3949
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3950
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3951
end;
3952
3953
{ TCipher_3DDES }
3954
3955
class function TCipher_3DDES.Context: TCipherContext;
3956
begin
3957
  Result            := inherited Context;
3958
  Result.BlockSize  := 16;
3959
  Result.BufferSize := 16;
3960
  Result.MinRounds  := 1;
3961
  Result.MaxRounds  := 1;
3962
  Result.CipherType := [ctSymmetric, ctBlock];
3963
end;
3964
3965
procedure TCipher_3DDES.DoEncode(Source, Dest: Pointer; Size: Integer);
3966
var
3967
  T: UInt32;
3968
begin
3969
  Assert(Size = Context.BlockSize);
3970
3971
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3972
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3973
  T := PUInt32Array(Dest)[1];
3974
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3975
  PUInt32Array(Dest)[2] := T;
3976
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
3977
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
3978
  T := PUInt32Array(Dest)[1];
3979
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3980
  PUInt32Array(Dest)[2] := T;
3981
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3982
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3983
end;
3984
3985
procedure TCipher_3DDES.DoDecode(Source, Dest: Pointer; Size: Integer);
3986
var
3987
  T: UInt32;
3988
begin
3989
  Assert(Size = Context.BlockSize);
3990
3991
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
3992
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
3993
  T := PUInt32Array(Dest)[1];
3994
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3995
  PUInt32Array(Dest)[2] := T;
3996
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]);
3997
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]);
3998
  T := PUInt32Array(Dest)[1];
3999
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4000
  PUInt32Array(Dest)[2] := T;
4001
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]);
4002
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]);
4003
end;
4004
4005
{ TCipher_3TDES }
4006
4007
class function TCipher_3TDES.Context: TCipherContext;
4008
begin
4009
  Result            := inherited Context;
4010
  Result.BlockSize  := 24;
4011
  Result.BufferSize := 24;
4012
  Result.MinRounds  := 1;
4013
  Result.MaxRounds  := 1;
4014
  Result.CipherType := [ctSymmetric, ctBlock];
4015
end;
4016
4017
procedure TCipher_3TDES.DoEncode(Source, Dest: Pointer; Size: Integer);
4018
var
4019
  T: UInt32;
4020
begin
4021
  Assert(Size = Context.BlockSize);
4022
4023
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
4024
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
4025
  DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], FAdditionalBuffer);
4026
  T := PUInt32Array(Dest)[1];
4027
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4028
  PUInt32Array(Dest)[2] := T;
4029
  T := PUInt32Array(Dest)[3];
4030
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4031
  PUInt32Array(Dest)[4] := T;
4032
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
4033
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
4034
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[32]);
4035
  T := PUInt32Array(Dest)[1];
4036
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4037
  PUInt32Array(Dest)[2] := T;
4038
  T := PUInt32Array(Dest)[3];
4039
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4040
  PUInt32Array(Dest)[4] := T;
4041
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
4042
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
4043
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[64]);
4044
end;
4045
4046
procedure TCipher_3TDES.DoDecode(Source, Dest: Pointer; Size: Integer);
4047
var
4048
  T: UInt32;
4049
begin
4050
  Assert(Size = Context.BlockSize);
4051
4052
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
4053
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
4054
  DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[96]);
4055
  T := PUInt32Array(Dest)[1];
4056
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4057
  PUInt32Array(Dest)[2] := T;
4058
  T := PUInt32Array(Dest)[3];
4059
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4060
  PUInt32Array(Dest)[4] := T;
4061
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]);
4062
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]);
4063
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[128]);
4064
  T := PUInt32Array(Dest)[1];
4065
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4066
  PUInt32Array(Dest)[2] := T;
4067
  T := PUInt32Array(Dest)[3];
4068
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4069
  PUInt32Array(Dest)[4] := T;
4070
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]);
4071
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]);
4072
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[160]);
4073
end;
4074
4075
{ TCipher_3Way }
4076
4077
type
4078
  P3Way_Key = ^T3Way_Key;
4079
  T3Way_Key = packed record
4080
    E_Key: array[0..2] of UInt32;
4081
    E_Data: array[0..11] of UInt32;
4082
    D_Key: array[0..2] of UInt32;
4083
    D_Data: array[0..11] of UInt32;
4084
  end;
4085
4086
class function TCipher_3Way.Context: TCipherContext;
4087
begin
4088
  Result.KeySize                     := 12;
4089
  Result.BlockSize                   := 12;
4090
  Result.BufferSize                  := 12;
4091
  Result.AdditionalBufferSize        := SizeOf(T3Way_Key);
4092
  Result.NeedsAdditionalBufferBackup := False;
4093
  Result.MinRounds                   := 1;
4094
  Result.MaxRounds                   := 1;
4095
  Result.CipherType                  := [ctSymmetric, ctBlock];
4096
end;
4097
4098
procedure TCipher_3Way.DoInit(const Key; Size: Integer);
4099
4100
  procedure RANDGenerate(Start: UInt32; var P: array of UInt32);
4101
  var
4102
    I: Integer;
4103
  begin
4104
    for I := 0 to 11 do
4105
    begin
4106
      P[I] := Start;
4107
      Start := Start shl 1;
4108
      if Start and $10000 <> 0 then
4109
        Start := Start xor $11011;
4110
    end;
4111
  end;
4112
4113
var
4114
  A0, A1, A2: UInt32;
4115
  B0, B1, B2: UInt32;
4116
  P3WayKey: P3Way_Key;
4117
begin
4118
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4119
4120
  Move(Key, P3WayKey.E_Key, Size);
4121
  Move(Key, P3WayKey.D_Key, Size);
4122
  RANDGenerate($0B0B, P3WayKey.E_Data);
4123
  RANDGenerate($B1B1, P3WayKey.D_Data);
4124
  A0 := P3WayKey.D_Key[0];
4125
  A1 := P3WayKey.D_Key[1];
4126
  A2 := P3WayKey.D_Key[2];
4127
  B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4128
               A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4129
               A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4130
  B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4131
               A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4132
               A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4133
  B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4134
               A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4135
               A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4136
  P3WayKey.D_Key[2] := ReverseBits(B0);
4137
  P3WayKey.D_Key[1] := ReverseBits(B1);
4138
  P3WayKey.D_Key[0] := ReverseBits(B2);
4139
4140
  inherited;
4141
end;
4142
4143
procedure TCipher_3Way.DoEncode(Source, Dest: Pointer; Size: Integer);
4144
var
4145
  I: Integer;
4146
  A0, A1, A2: UInt32;
4147
  B0, B1, B2: UInt32;
4148
  K0, K1, K2: UInt32;
4149
  E: PUInt32;
4150
  P3WayKey: P3Way_Key;
4151
begin
4152
  Assert(Size = Context.BlockSize);
4153
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4154
4155
  K0 := P3WayKey.E_Key[0];
4156
  K1 := P3WayKey.E_Key[1];
4157
  K2 := P3WayKey.E_Key[2];
4158
  E  := @P3WayKey.E_Data;
4159
4160
  A0 := PUInt32Array(Source)[0];
4161
  A1 := PUInt32Array(Source)[1];
4162
  A2 := PUInt32Array(Source)[2];
4163
  for I := 0 to 10 do
4164
  begin
4165
    A0 := A0 xor K0 xor E^ shl 16;
4166
    A1 := A1 xor K1;
4167
    A2 := A2 xor K2 xor E^;
4168
    Inc(E);
4169
4170
    B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4171
                 A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4172
                 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4173
    B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4174
                 A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4175
                 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4176
    B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4177
                 A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4178
                 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4179
    B0 := B0 shr 10 or B0 shl 22;
4180
    B2 := B2 shl  1 or B2 shr 31;
4181
    A0 := B0 xor (B1 or not B2);
4182
    A1 := B1 xor (B2 or not B0);
4183
    A2 := B2 xor (B0 or not B1);
4184
    A0 := A0 shl  1 or A0 shr 31;
4185
    A2 := A2 shr 10 or A2 shl 22;
4186
  end;
4187
  A0 := A0 xor K0 xor E^ shl 16;
4188
  A1 := A1 xor K1;
4189
  A2 := A2 xor K2 xor E^;
4190
  PUInt32Array(Dest)[0] := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4191
                                A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4192
                                A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4193
  PUInt32Array(Dest)[1] := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4194
                                A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4195
                                A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4196
  PUInt32Array(Dest)[2] := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4197
                                A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4198
                                A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4199
end;
4200
4201
procedure TCipher_3Way.DoDecode(Source, Dest: Pointer; Size: Integer);
4202
var
4203
  I: Integer;
4204
  A0, A1, A2: UInt32;
4205
  B0, B1, B2: UInt32;
4206
  K0, K1, K2: UInt32;
4207
  E: PUInt32;
4208
  P3WayKey: P3Way_Key;
4209
begin
4210
  Assert(Size = Context.BlockSize);
4211
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4212
4213
  K0 := P3WayKey.D_Key[0];
4214
  K1 := P3WayKey.D_Key[1];
4215
  K2 := P3WayKey.D_Key[2];
4216
  E  := @P3WayKey.D_Data;
4217
4218
  A0 := ReverseBits(PUInt32Array(Source)[2]);
4219
  A1 := ReverseBits(PUInt32Array(Source)[1]);
4220
  A2 := ReverseBits(PUInt32Array(Source)[0]);
4221
  for I := 0 to 10 do
4222
  begin
4223
    A0 := A0 xor K0 xor E^ shl 16;
4224
    A1 := A1 xor K1;
4225
    A2 := A2 xor K2 xor E^;
4226
    Inc(E);
4227
4228
    B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4229
                 A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4230
                 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4231
    B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4232
                 A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4233
                 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4234
    B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4235
                 A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4236
                 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4237
    B0 := B0 shr 10 or B0 shl 22;
4238
    B2 := B2 shl  1 or B2 shr 31;
4239
    A0 := B0 xor (B1 or not B2);
4240
    A1 := B1 xor (B2 or not B0);
4241
    A2 := B2 xor (B0 or not B1);
4242
    A0 := A0 shl  1 or A0 shr 31;
4243
    A2 := A2 shr 10 or A2 shl 22;
4244
  end;
4245
  A0 := A0 xor K0 xor E^ shl 16;
4246
  A1 := A1 xor K1;
4247
  A2 := A2 xor K2 xor E^;
4248
  B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4249
               A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4250
               A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4251
  B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4252
               A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4253
               A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4254
  B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4255
               A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4256
               A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4257
4258
  PUInt32Array(Dest)[2] := ReverseBits(B0);
4259
  PUInt32Array(Dest)[1] := ReverseBits(B1);
4260
  PUInt32Array(Dest)[0] := ReverseBits(B2);
4261
end;
4262
4263
{ TCipher_Cast128 }
4264
4265
class function TCipher_Cast128.Context: TCipherContext;
4266
begin
4267
  Result.KeySize                     := 16;
4268
  Result.BlockSize                   := 8;
4269
  Result.BufferSize                  := 8;
4270
  Result.AdditionalBufferSize        := 128;
4271
  Result.NeedsAdditionalBufferBackup := false;
4272
  Result.MinRounds                   := 12;
4273
  Result.MaxRounds                   := 16;
4274
  Result.CipherType                  := [ctSymmetric, ctBlock];
4275
end;
4276
4277
procedure TCipher_Cast128.DoInit(const Key; Size: Integer);
4278
var
4279
  Z, X, T: array[0..3] of UInt32;
4280
  K: PUInt32Array;
4281
  I: UInt32;
4282
begin
4283
  // as per rfc2144 the number of rounds is 12 for key sizes <= 80 bit,
4284
  // otherwise 16
4285
  if Size <= 10 then
4286
    FRounds := 12
4287
  else
4288
    FRounds := 16;
4289
4290
  K := FAdditionalBuffer;
4291
  FillChar(X, SizeOf(X), 0);
4292
  Move(Key, X, Size);
4293
  SwapUInt32Buffer(X, X, 4);
4294
  I := 0;
4295
  while I < 32 do
4296
  begin
4297
    if I and 4 = 0 then
4298
    begin
4299
      Z[0] := X[0] xor Cast128_Key[0, X[3] shr 16 and $FF] xor
4300
                       Cast128_Key[1, X[3] and $FF] xor
4301
                       Cast128_Key[2, X[3] shr 24] xor
4302
                       Cast128_Key[3, X[3] shr  8 and $FF] xor
4303
                       Cast128_Key[2, X[2] shr 24];
4304
      T[0] := Z[0];
4305
      Z[1] := X[2] xor Cast128_Key[0, Z[0] shr 24] xor
4306
                       Cast128_Key[1, Z[0] shr  8 and $FF] xor
4307
                       Cast128_Key[2, Z[0] shr 16 and $FF] xor
4308
                       Cast128_Key[3, Z[0] and $FF] xor
4309
                       Cast128_Key[3, X[2] shr  8 and $FF];
4310
      T[1] := Z[1];
4311
      Z[2] := X[3] xor Cast128_Key[0, Z[1] and $FF] xor
4312
                       Cast128_Key[1, Z[1] shr  8 and $FF] xor
4313
                       Cast128_Key[2, Z[1] shr 16 and $FF] xor
4314
                       Cast128_Key[3, Z[1] shr 24] xor
4315
                       Cast128_Key[0, X[2] shr 16 and $FF];
4316
      T[2] := Z[2];
4317
      Z[3] := X[1] xor Cast128_Key[0, Z[2] shr  8 and $FF] xor
4318
                       Cast128_Key[1, Z[2] shr 16 and $FF] xor
4319
                       Cast128_Key[2, Z[2] and $FF] xor
4320
                       Cast128_Key[3, Z[2] shr 24] xor
4321
                       Cast128_Key[1, X[2] and $FF];
4322
      T[3] := Z[3];
4323
    end
4324
    else
4325
    begin
4326
      X[0] := Z[2] xor Cast128_Key[0, Z[1] shr 16 and $FF] xor
4327
                       Cast128_Key[1, Z[1] and $FF] xor
4328
                       Cast128_Key[2, Z[1] shr 24] xor
4329
                       Cast128_Key[3, Z[1] shr  8 and $FF] xor
4330
                       Cast128_Key[2, Z[0] shr 24];
4331
      T[0] := X[0];
4332
      X[1] := Z[0] xor Cast128_Key[0, X[0] shr 24] xor
4333
                       Cast128_Key[1, X[0] shr  8 and $FF] xor
4334
                       Cast128_Key[2, X[0] shr 16 and $FF] xor
4335
                       Cast128_Key[3, X[0] and $FF] xor
4336
                       Cast128_Key[3, Z[0] shr  8 and $FF];
4337
      T[1] := X[1];
4338
      X[2] := Z[1] xor Cast128_Key[0, X[1] and $FF] xor
4339
                       Cast128_Key[1, X[1] shr  8 and $FF] xor
4340
                       Cast128_Key[2, X[1] shr 16 and $FF] xor
4341
                       Cast128_Key[3, X[1] shr 24] xor
4342
                       Cast128_Key[0, Z[0] shr 16 and $FF];
4343
      T[2] := X[2];
4344
      X[3] := Z[3] xor Cast128_Key[0, X[2] shr  8 and $FF] xor
4345
                       Cast128_Key[1, X[2] shr 16 and $FF] xor
4346
                       Cast128_Key[2, X[2] and $FF] xor
4347
                       Cast128_Key[3, X[2] shr 24] xor
4348
                       Cast128_Key[1, Z[0] and $FF];
4349
      T[3] := X[3];
4350
    end;
4351
    case I and 12 of
4352
      0,12:
4353
        begin
4354
          K[I + 0] := Cast128_Key[0, T[2] shr 24] xor
4355
                      Cast128_Key[1, T[2] shr 16 and $FF] xor
4356
                      Cast128_Key[2, T[1] and $FF] xor
4357
                      Cast128_Key[3, T[1] shr  8 and $FF];
4358
          K[I + 1] := Cast128_Key[0, T[2] shr  8 and $FF] xor
4359
                      Cast128_Key[1, T[2] and $FF] xor
4360
                      Cast128_Key[2, T[1] shr 16 and $FF] xor
4361
                      Cast128_Key[3, T[1] shr 24];
4362
          K[I + 2] := Cast128_Key[0, T[3] shr 24] xor
4363
                      Cast128_Key[1, T[3] shr 16 and $FF] xor
4364
                      Cast128_Key[2, T[0] and $FF] xor
4365
                      Cast128_Key[3, T[0] shr  8 and $FF];
4366
          K[I + 3] := Cast128_Key[0, T[3] shr  8 and $FF] xor
4367
                      Cast128_Key[1, T[3] and $FF] xor
4368
                      Cast128_Key[2, T[0] shr 16 and $FF] xor
4369
                      Cast128_Key[3, T[0] shr 24];
4370
        end;
4371
      4,8:
4372
        begin
4373
          K[I + 0] := Cast128_Key[0, T[0] and $FF] xor
4374
                      Cast128_Key[1, T[0] shr  8 and $FF] xor
4375
                      Cast128_Key[2, T[3] shr 24] xor
4376
                      Cast128_Key[3, T[3] shr 16 and $FF];
4377
          K[I + 1] := Cast128_Key[0, T[0] shr 16 and $FF] xor
4378
                      Cast128_Key[1, T[0] shr 24] xor
4379
                      Cast128_Key[2, T[3] shr  8 and $FF] xor
4380
                      Cast128_Key[3, T[3] and $FF];
4381
          K[I + 2] := Cast128_Key[0, T[1] and $FF] xor
4382
                      Cast128_Key[1, T[1] shr  8 and $FF] xor
4383
                      Cast128_Key[2, T[2] shr 24] xor
4384
                      Cast128_Key[3, T[2] shr 16 and $FF];
4385
          K[I + 3] := Cast128_Key[0, T[1] shr 16 and $FF] xor
4386
                      Cast128_Key[1, T[1] shr 24] xor
4387
                      Cast128_Key[2, T[2] shr  8 and $FF] xor
4388
                      Cast128_Key[3, T[2] and $FF];
4389
        end;
4390
    end;
4391
    case I and 12 of
4392
      0: begin
4393
           K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[0] shr  8 and $FF];
4394
           K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[1] shr  8 and $FF];
4395
           K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[2] shr 16 and $FF];
4396
           K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[3] shr 24];
4397
         end;
4398
      4: begin
4399
           K[I + 0] := K[I + 0] xor Cast128_Key[0, X[2] shr 24];
4400
           K[I + 1] := K[I + 1] xor Cast128_Key[1, X[3] shr 16 and $FF];
4401
           K[I + 2] := K[I + 2] xor Cast128_Key[2, X[0] and $FF];
4402
           K[I + 3] := K[I + 3] xor Cast128_Key[3, X[1] and $FF];
4403
         end;
4404
      8: begin
4405
           K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[2] shr 16 and $FF];
4406
           K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[3] shr 24];
4407
           K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[0] shr  8 and $FF];
4408
           K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[1] shr  8 and $FF];
4409
         end;
4410
     12: begin
4411
          K[I + 0] := K[I + 0] xor Cast128_Key[0, X[0] and $FF];
4412
          K[I + 1] := K[I + 1] xor Cast128_Key[1, X[1] and $FF];
4413
          K[I + 2] := K[I + 2] xor Cast128_Key[2, X[2] shr 24];
4414
          K[I + 3] := K[I + 3] xor Cast128_Key[3, X[3] shr 16 and $FF];
4415
        end;
4416
    end;
4417
    if I >= 16 then
4418
    begin
4419
      K[I + 0] := K[I + 0] and $1F;
4420
      K[I + 1] := K[I + 1] and $1F;
4421
      K[I + 2] := K[I + 2] and $1F;
4422
      K[I + 3] := K[I + 3] and $1F;
4423
    end;
4424
    Inc(I, 4);
4425
  end;
4426
  ProtectBuffer(X, SizeOf(X));
4427
  ProtectBuffer(Z, SizeOf(Z));
4428
  ProtectBuffer(T, SizeOf(T));
4429
4430
  inherited;
4431
end;
4432
4433
procedure TCipher_Cast128.DoEncode(Source, Dest: Pointer; Size: Integer);
4434
var
4435
  T, I, A, B: UInt32;
4436
  K: PUInt32Array;
4437
begin
4438
  Assert(Size = Context.BlockSize);
4439
4440
  K := FAdditionalBuffer;
4441
  A := SwapUInt32(PUInt32Array(Source)[0]);
4442
  B := SwapUInt32(PUInt32Array(Source)[1]);
4443
  for I := 0 to 2 do
4444
  begin
4445
    T := K[0] + B;
4446
    T := T shl K[16] or T shr (32 - K[16]);
4447
    A := A xor (Cast128_Data[0, T shr 24] xor
4448
                Cast128_Data[1, T shr 16 and $FF] -
4449
                Cast128_Data[2, T shr  8 and $FF] +
4450
                Cast128_Data[3, T and $FF]);
4451
    T := K[1] xor A;
4452
    T := T shl K[17] or T shr (32 - K[17]);
4453
    B := B xor (Cast128_Data[0, T shr 24] -
4454
                Cast128_Data[1, T shr 16 and $FF] +
4455
                Cast128_Data[2, T shr  8 and $FF] xor
4456
                Cast128_Data[3, T and $FF]);
4457
    T := K[2] - B;
4458
    T := T shl K[18] or T shr (32 - K[18]);
4459
    A := A xor (Cast128_Data[0, T shr 24] +
4460
                Cast128_Data[1, T shr 16 and $FF] xor
4461
                Cast128_Data[2, T shr  8 and $FF] -
4462
                Cast128_Data[3, T and $FF]);
4463
    T := K[3] + A;
4464
    T := T shl K[19] or T shr (32 - K[19]);
4465
    B := B xor (Cast128_Data[0, T shr 24] xor
4466
                Cast128_Data[1, T shr 16 and $FF] -
4467
                Cast128_Data[2, T shr  8 and $FF] +
4468
                Cast128_Data[3, T and $FF]);
4469
    if I = 2 then
4470
      Break;
4471
    T := K[4] xor B;
4472
    T := T shl K[20] or T shr (32 - K[20]);
4473
    A := A xor (Cast128_Data[0, T shr 24] -
4474
                Cast128_Data[1, T shr 16 and $FF] +
4475
                Cast128_Data[2, T shr  8 and $FF] xor
4476
                Cast128_Data[3, T and $FF]);
4477
    T := K[5] - A;
4478
    T := T shl K[21] or T shr (32 - K[21]);
4479
    B := B xor (Cast128_Data[0, T shr 24] +
4480
                Cast128_Data[1, T shr 16 and $FF] xor
4481
                Cast128_Data[2, T shr  8 and $FF] -
4482
                Cast128_Data[3, T and $FF]);
4483
    if (I = 1) and (FRounds <= 12) then
4484
      Break;
4485
    K := @K[6];
4486
  end;
4487
  PUInt32Array(Dest)[0] := SwapUInt32(B);
4488
  PUInt32Array(Dest)[1] := SwapUInt32(A);
4489
end;
4490
4491
procedure TCipher_Cast128.DoDecode(Source, Dest: Pointer; Size: Integer);
4492
var
4493
  T, I, A, B: UInt32;
4494
  K: PUInt32Array;
4495
  JumpStart: Boolean;
4496
begin
4497
  Assert(Size = Context.BlockSize);
4498
  JumpStart := False;
4499
4500
  K := @PUInt32Array(FAdditionalBuffer)[12];
4501
  B := SwapUInt32(PUInt32Array(Source)[0]);
4502
  A := SwapUInt32(PUInt32Array(Source)[1]);
4503
  I := 2;
4504
4505
  if FRounds <= 12 then
4506
    Dec(PUInt32(K), 6)
4507
  else
4508
    JumpStart := True;
4509
4510
  while I > 0 do
4511
  begin
4512
    if not JumpStart then
4513
    begin
4514
      Dec(I);
4515
      T := K[5] - A;
4516
      T := T shl K[21] or T shr (32 - K[21]);
4517
      B := B xor (Cast128_Data[0, T shr 24] +
4518
                  Cast128_Data[1, T shr 16 and $FF] xor
4519
                  Cast128_Data[2, T shr  8 and $FF] -
4520
                  Cast128_Data[3, T and $FF]);
4521
      T := K[4] xor B;
4522
      T := T shl K[20] or T shr (32 - K[20]);
4523
      A := A xor (Cast128_Data[0, T shr 24] -
4524
                  Cast128_Data[1, T shr 16 and $FF] +
4525
                  Cast128_Data[2, T shr  8 and $FF] xor
4526
                  Cast128_Data[3, T and $FF]);
4527
    end
4528
    else
4529
      JumpStart := False;
4530
4531
    T := K[3] + A;
4532
    T := T shl K[19] or T shr (32 - K[19]);
4533
    B := B xor (Cast128_Data[0, T shr 24] xor
4534
                Cast128_Data[1, T shr 16 and $FF] -
4535
                Cast128_Data[2, T shr  8 and $FF] +
4536
                Cast128_Data[3, T and $FF]);
4537
    T := K[2] - B;
4538
    T := T shl K[18] or T shr (32 - K[18]);
4539
    A := A xor (Cast128_Data[0, T shr 24] +
4540
                Cast128_Data[1, T shr 16 and $FF] xor
4541
                Cast128_Data[2, T shr  8 and $FF] -
4542
                Cast128_Data[3, T and $FF]);
4543
    T := K[1] xor A;
4544
    T := T shl K[17] or T shr (32 - K[17]);
4545
    B := B xor (Cast128_Data[0, T shr 24] -
4546
                Cast128_Data[1, T shr 16 and $FF] +
4547
                Cast128_Data[2, T shr  8 and $FF] xor
4548
                Cast128_Data[3, T and $FF]);
4549
    T := K[0] + B;
4550
    T := T shl K[16] or T shr (32 - K[16]);
4551
    A := A xor (Cast128_Data[0, T shr 24] xor
4552
                Cast128_Data[1, T shr 16 and $FF] -
4553
                Cast128_Data[2, T shr  8 and $FF] +
4554
                Cast128_Data[3, T and $FF]);
4555
    Dec(PUInt32(K), 6);
4556
  end;
4557
4558
  PUInt32Array(Dest)[0] := SwapUInt32(A);
4559
  PUInt32Array(Dest)[1] := SwapUInt32(B);
4560
end;
4561
4562
{ TCipher_Gost }
4563
4564
class function TCipher_Gost.Context: TCipherContext;
4565
begin
4566
  Result.KeySize                     := 32;
4567
  Result.BlockSize                   := 8;
4568
  Result.BufferSize                  := 8;
4569
  Result.AdditionalBufferSize        := 32;
4570
  Result.NeedsAdditionalBufferBackup := false;
4571
  Result.MinRounds                   := 1;
4572
  Result.MaxRounds                   := 1;
4573
  Result.CipherType                  := [ctSymmetric, ctBlock];
4574
end;
4575
4576
procedure TCipher_Gost.DoInit(const Key; Size: Integer);
4577
begin
4578
  Move(Key, FAdditionalBuffer^, Size);
4579
4580
  inherited;
4581
end;
4582
4583
procedure TCipher_Gost.DoEncode(Source, Dest: Pointer; Size: Integer);
4584
var
4585
  I, A, B, T: UInt32;
4586
  K: PUInt32Array;
4587
begin
4588
  Assert(Size = Context.BlockSize);
4589
4590
  K := FAdditionalBuffer;
4591
  A := PUInt32Array(Source)[0];
4592
  B := PUInt32Array(Source)[1];
4593
4594
  for I := 0 to 11 do
4595
  begin
4596
    if I and 3 = 0 then
4597
      K := FAdditionalBuffer;
4598
    T := A + K[0];
4599
    B := B xor Gost_Data[0, T        and $FF] xor
4600
               Gost_Data[1, T shr  8 and $FF] xor
4601
               Gost_Data[2, T shr 16 and $FF] xor
4602
               Gost_Data[3, T shr 24        ];
4603
    T := B + K[1];
4604
    A := A xor Gost_Data[0, T        and $FF] xor
4605
               Gost_Data[1, T shr  8 and $FF] xor
4606
               Gost_Data[2, T shr 16 and $FF] xor
4607
               Gost_Data[3, T shr 24        ];
4608
    K := @K[2];
4609
  end;
4610
4611
  K := @PUInt32Array(FAdditionalBuffer)[6];
4612
4613
  for I := 0 to 3 do
4614
  begin
4615
    T := A + K[1];
4616
    B := B xor Gost_Data[0, T        and $FF] xor
4617
               Gost_Data[1, T shr  8 and $FF] xor
4618
               Gost_Data[2, T shr 16 and $FF] xor
4619
               Gost_Data[3, T shr 24        ];
4620
    T := B + K[0];
4621
    A := A xor Gost_Data[0, T        and $FF] xor
4622
               Gost_Data[1, T shr  8 and $FF] xor
4623
               Gost_Data[2, T shr 16 and $FF] xor
4624
               Gost_Data[3, T shr 24        ];
4625
    Dec(PUInt32(K), 2);
4626
  end;
4627
4628
  PUInt32Array(Dest)[0] := B;
4629
  PUInt32Array(Dest)[1] := A;
4630
end;
4631
4632
procedure TCipher_Gost.DoDecode(Source, Dest: Pointer; Size: Integer);
4633
var
4634
  I, A, B, T: UInt32;
4635
  K: PUInt32Array;
4636
begin
4637
  Assert(Size = Context.BlockSize);
4638
4639
  A := PUInt32Array(Source)[0];
4640
  B := PUInt32Array(Source)[1];
4641
  K := FAdditionalBuffer;
4642
4643
  for I := 0 to 3 do
4644
  begin
4645
    T := A + K[0];
4646
    B := B xor Gost_Data[0, T and $FF] xor
4647
               Gost_Data[1, T shr  8 and $FF] xor
4648
               Gost_Data[2, T shr 16 and $FF] xor
4649
               Gost_Data[3, T shr 24];
4650
    T := B + K[1];
4651
    A := A xor Gost_Data[0, T and $FF] xor
4652
               Gost_Data[1, T shr  8 and $FF] xor
4653
               Gost_Data[2, T shr 16 and $FF] xor
4654
               Gost_Data[3, T shr 24];
4655
    K := @K[2];
4656
  end;
4657
4658
  for I := 0 to 11 do
4659
  begin
4660
    if I and 3 = 0 then
4661
      K := @PUInt32Array(FAdditionalBuffer)[6];
4662
    T := A + K[1];
4663
    B := B xor Gost_Data[0, T and $FF] xor
4664
               Gost_Data[1, T shr  8 and $FF] xor
4665
               Gost_Data[2, T shr 16 and $FF] xor
4666
               Gost_Data[3, T shr 24];
4667
    T := B + K[0];
4668
    A := A xor Gost_Data[0, T and $FF] xor
4669
               Gost_Data[1, T shr  8 and $FF] xor
4670
               Gost_Data[2, T shr 16 and $FF] xor
4671
               Gost_Data[3, T shr 24];
4672
    Dec(PUInt32(K), 2);
4673
  end;
4674
4675
  PUInt32Array(Dest)[0] := B;
4676
  PUInt32Array(Dest)[1] := A;
4677
end;
4678
4679
{ TCipher_Misty }
4680
4681
class function TCipher_Misty.Context: TCipherContext;
4682
begin
4683
  Result.KeySize                     := 16;
4684
  Result.BlockSize                   := 8;
4685
  Result.BufferSize                  := 8;
4686
  Result.AdditionalBufferSize        := 128;
4687
  Result.NeedsAdditionalBufferBackup := False;
4688
  Result.MinRounds                   := 1;
4689
  Result.MaxRounds                   := 1;
4690
  Result.CipherType                  := [ctSymmetric, ctBlock];
4691
end;
4692
4693
function Misty_I(Value, Key: UInt32): UInt32;
4694
begin
4695
  Result := Misty_Data9[Value shr 7 and $1FF] xor (Value and $7F);
4696
  Value := (Misty_Data7[Value and $7F] xor Result and $7F) xor (Key shr 9 and $7F);
4697
  Result := Misty_Data9[Result xor (Key and $1FF)] xor Value or Value shl 9;
4698
end;
4699
4700
function Misty_O(Value, K: UInt32; Key: PUInt32Array): UInt32;
4701
begin
4702
  Result := Misty_I((Value shr 16) xor Key[K], Key[(K + 5) and 7 + 8]) xor (Value and $FFFF);
4703
  Value  := Misty_I((Value and $FFFF) xor Key[(K + 2) and 7], Key[(K + 1) and 7 + 8]) xor Result;
4704
  Result := Misty_I(Result xor Key[(K + 7) and 7], Key[(K + 3) and 7 + 8]) xor Value;
4705
  Result := Result or (Value xor Key[(K + 4) and 7]) shl 16;
4706
end;
4707
4708
function Misty_E(Value, K: UInt32; Key: PUInt32Array): UInt32;
4709
begin
4710
  Result := Value shr 16;
4711
  Value  := Value and $FFFF;
4712
4713
  if K and 1 <> 0 then
4714
  begin
4715
    K      := K shr 1;
4716
    Value  := Value  xor (Result and Key[(K + 2) and 7 + 8]);
4717
    Result := Result xor (Value  or  Key[(K + 4) and 7]);
4718
  end
4719
  else
4720
  begin
4721
    K      := K shr 1;
4722
    Value  := Value  xor (Result and Key[K]);
4723
    Result := Result xor (Value  or  Key[(K + 6) and 7 + 8]);
4724
  end;
4725
4726
  Result:= (Result shl 16) or Value;
4727
end;
4728
4729
function Misty_D(Value, K: UInt32; Key: PUInt32Array): UInt32;
4730
begin
4731
  Result := Value shr 16;
4732
  Value  := Value and $FFFF;
4733
4734
  if K and 1 <> 0 then
4735
  begin
4736
    K      := K shr 1;
4737
    Result := Result xor (Value  or  Key[(K + 4) and 7]);
4738
    Value  := Value  xor (Result and Key[(K + 2) and 7 + 8]);
4739
  end
4740
  else
4741
  begin
4742
    K      := K shr 1;
4743
    Result := Result xor (Value  or  Key[(K + 6) and 7 + 8]);
4744
    Value  := Value  xor (Result and Key[K]);
4745
  end;
4746
4747
  Result:= (Result shl 16) or Value;
4748
end;
4749
4750
procedure TCipher_Misty.DoInit(const Key; Size: Integer);
4751
var
4752
  K: array[0..15] of Byte;
4753
  D: PUInt32Array;
4754
  I: Integer;
4755
begin
4756
  FillChar(K, SizeOf(K), 0);
4757
  Move(Key, K, Size);
4758
  D := FAdditionalBuffer;
4759
4760
  for I := 0 to 7 do
4761
    D[I] := K[I * 2] * 256 + K[I * 2 + 1];
4762
4763
  for I := 0 to 7 do
4764
  begin
4765
    D[I +  8] := Misty_I(D[I], D[(I + 1) and 7]);
4766
    D[I + 16] := D[I + 8] and $1FF;
4767
    D[I + 24] := D[I + 8] shr 9;
4768
  end;
4769
4770
  ProtectBuffer(K, SizeOf(K));
4771
4772
  inherited;
4773
end;
4774
4775
procedure TCipher_Misty.DoEncode(Source, Dest: Pointer; Size: Integer);
4776
var
4777
  A, B: UInt32;
4778
begin
4779
  Assert(Size = Context.BlockSize);
4780
4781
  A := PUInt32Array(Source)[0];
4782
  B := PUInt32Array(Source)[1];
4783
  A := Misty_E(A, 0, FAdditionalBuffer);
4784
  B := Misty_E(B, 1, FAdditionalBuffer) xor Misty_O(A, 0, FAdditionalBuffer);
4785
  A := A xor Misty_O(B, 1, FAdditionalBuffer);
4786
  A := Misty_E(A, 2, FAdditionalBuffer);
4787
  B := Misty_E(B, 3, FAdditionalBuffer) xor Misty_O(A, 2, FAdditionalBuffer);
4788
  A := A xor Misty_O(B, 3, FAdditionalBuffer);
4789
  A := Misty_E(A, 4, FAdditionalBuffer);
4790
  B := Misty_E(B, 5, FAdditionalBuffer) xor Misty_O(A, 4, FAdditionalBuffer);
4791
  A := A xor Misty_O(B, 5, FAdditionalBuffer);
4792
  A := Misty_E(A, 6, FAdditionalBuffer);
4793
  B := Misty_E(B, 7, FAdditionalBuffer) xor Misty_O(A, 6, FAdditionalBuffer);
4794
  A := A xor Misty_O(B, 7, FAdditionalBuffer);
4795
4796
  PUInt32Array(Dest)[0] := Misty_E(B, 9, FAdditionalBuffer);
4797
  PUInt32Array(Dest)[1] := Misty_E(A, 8, FAdditionalBuffer);
4798
end;
4799
4800
procedure TCipher_Misty.DoDecode(Source, Dest: Pointer; Size: Integer);
4801
var
4802
  A, B: UInt32;
4803
begin
4804
  Assert(Size = Context.BlockSize);
4805
4806
  B := Misty_D(PUInt32Array(Source)[0], 9, FAdditionalBuffer);
4807
  A := Misty_D(PUInt32Array(Source)[1], 8, FAdditionalBuffer);
4808
  A := A xor Misty_O(B, 7, FAdditionalBuffer);
4809
  B := Misty_D(B xor Misty_O(A, 6, FAdditionalBuffer), 7, FAdditionalBuffer);
4810
  A := Misty_D(A, 6, FAdditionalBuffer);
4811
  A := A xor Misty_O(B, 5, FAdditionalBuffer);
4812
  B := Misty_D(B xor Misty_O(A, 4, FAdditionalBuffer), 5, FAdditionalBuffer);
4813
  A := Misty_D(A, 4, FAdditionalBuffer);
4814
  A := A xor Misty_O(B, 3, FAdditionalBuffer);
4815
  B := Misty_D(B xor Misty_O(A, 2, FAdditionalBuffer), 3, FAdditionalBuffer);
4816
  A := Misty_D(A, 2, FAdditionalBuffer);
4817
  A := A xor Misty_O(B, 1, FAdditionalBuffer);
4818
4819
  PUInt32Array(Dest)[0] := Misty_D(A, 0, FAdditionalBuffer);
4820
  PUInt32Array(Dest)[1] := Misty_D(B xor Misty_O(A, 0, FAdditionalBuffer), 1, FAdditionalBuffer);
4821
end;
4822
4823
{ TCipher_NewDES }
4824
4825
procedure NewDES_Func(Source, Dest, Key: PByteArray);
4826
var
4827
  I: Integer;
4828
  A, B, C, D, E, F, G, H: Byte;
4829
begin
4830
  A := Source[0];
4831
  B := Source[1];
4832
  C := Source[2];
4833
  D := Source[3];
4834
  E := Source[4];
4835
  F := Source[5];
4836
  G := Source[6];
4837
  H := Source[7];
4838
4839
  for I := 0 to 7 do
4840
  begin
4841
    E := E xor NewDES_Data[A xor Key[0]];
4842
    F := F xor NewDES_Data[B xor Key[1]];
4843
    G := G xor NewDES_Data[C xor Key[2]];
4844
    H := H xor NewDES_Data[D xor Key[3]];
4845
    B := B xor NewDES_Data[E xor Key[4]];
4846
    C := C xor NewDES_Data[F xor E];
4847
    D := D xor NewDES_Data[G xor Key[5]];
4848
    A := A xor NewDES_Data[H xor Key[6]];
4849
    Key := @Key[7];
4850
  end;
4851
4852
  E := E xor NewDES_Data[A xor Key[0]];
4853
  F := F xor NewDES_Data[B xor Key[1]];
4854
  G := G xor NewDES_Data[C xor Key[2]];
4855
  H := H xor NewDES_Data[D xor Key[3]];
4856
4857
  Dest[0] := A;
4858
  Dest[1] := B;
4859
  Dest[2] := C;
4860
  Dest[3] := D;
4861
  Dest[4] := E;
4862
  Dest[5] := F;
4863
  Dest[6] := G;
4864
  Dest[7] := H;
4865
end;
4866
4867
class function TCipher_NewDES.Context: TCipherContext;
4868
begin
4869
  Result.KeySize                     := 15;
4870
  Result.BlockSize                   := 8;
4871
  Result.BufferSize                  := 8;
4872
  Result.AdditionalBufferSize        := 60 * 2;
4873
  Result.NeedsAdditionalBufferBackup := true;
4874
  Result.MinRounds                   := 1;
4875
  Result.MaxRounds                   := 1;
4876
  Result.CipherType                  := [ctSymmetric, ctBlock];
4877
end;
4878
4879
procedure TCipher_NewDES.DoInit(const Key; Size: Integer);
4880
var
4881
  K: array[0..14] of Byte;
4882
  E: PByteArray;
4883
  I: Integer;
4884
begin
4885
  FillChar(K, SizeOf(K), 0);
4886
  Move(Key, K, Size);
4887
  E := FAdditionalBuffer;
4888
  Move(K, E[ 0], 15);
4889
  Move(K, E[15], 15);
4890
  Move(K, E[30], 15);
4891
  Move(K, E[45], 15);
4892
  E := @E[60];
4893
  I := 11;
4894
4895
  repeat
4896
    E[0] := K[I]; I := (I + 1) mod 15;
4897
    E[1] := K[I]; I := (I + 1) mod 15;
4898
    E[2] := K[I]; I := (I + 1) mod 15;
4899
    E[3] := K[I]; I := (I + 9) mod 15;
4900
    if I = 12 then
4901
      Break;
4902
    E[4] := K[I]; Inc(I);
4903
    E[5] := K[I]; Inc(I);
4904
    E[6] := K[I]; I := (I + 9) mod 15;
4905
    E := @E[7];
4906
  until False;
4907
4908
  ProtectBuffer(K, SizeOf(K));
4909
4910
  inherited;
4911
end;
4912
4913
procedure TCipher_NewDES.DoEncode(Source, Dest: Pointer; Size: Integer);
4914
begin
4915
  Assert(Size = Context.BlockSize);
4916
  NewDES_Func(Source, Dest, FAdditionalBuffer);
4917
end;
4918
4919
procedure TCipher_NewDES.DoDecode(Source, Dest: Pointer; Size: Integer);
4920
begin
4921
  Assert(Size = Context.BlockSize);
4922
  NewDES_Func(Source, Dest, @PByteArray(FAdditionalBuffer)[60]);
4923
end;
4924
4925
{ TCipher_Q128 }
4926
4927
class function TCipher_Q128.Context: TCipherContext;
4928
begin
4929
  Result.KeySize                     := 16;
4930
  Result.BlockSize                   := 16;
4931
  Result.BufferSize                  := 16;
4932
  Result.AdditionalBufferSize        := 256;
4933
  Result.NeedsAdditionalBufferBackup := false;
4934
  Result.MinRounds                   := 1;
4935
  Result.MaxRounds                   := 1;
4936
  Result.CipherType                  := [ctSymmetric, ctBlock];
4937
end;
4938
4939
procedure TCipher_Q128.DoInit(const Key; Size: Integer);
4940
var
4941
  K: array[0..3] of UInt32;
4942
  D: PUInt32Array;
4943
  I: Integer;
4944
begin
4945
  FillChar(K, SizeOf(K), 0);
4946
  Move(Key, K, Size);
4947
  D := FAdditionalBuffer;
4948
4949
  for I := 19 downto 1 do
4950
  begin
4951
    K[1] := K[1] xor Q128_Data[K[0] and $03FF]; K[0] := K[0] shr 10 or K[0] shl 22;
4952
    K[2] := K[2] xor Q128_Data[K[1] and $03FF]; K[1] := K[1] shr 10 or K[1] shl 22;
4953
    K[3] := K[3] xor Q128_Data[K[2] and $03FF]; K[2] := K[2] shr 10 or K[2] shl 22;
4954
    K[0] := K[0] xor Q128_Data[K[3] and $03FF]; K[3] := K[3] shr 10 or K[3] shl 22;
4955
    if I <= 16 then
4956
    begin
4957
      D[0] := K[0];
4958
      D[1] := K[1];
4959
      D[2] := K[2];
4960
      D[3] := K[3];
4961
      D := @D[4];
4962
    end;
4963
  end;
4964
4965
  ProtectBuffer(K, SizeOf(K));
4966
4967
  inherited;
4968
end;
4969
4970
procedure TCipher_Q128.DoEncode(Source, Dest: Pointer; Size: Integer);
4971
{$IFDEF X86ASM}
4972
asm
4973
       PUSH   ESI
4974
       PUSH   EDI
4975
       PUSH   EBX
4976
       PUSH   EBP
4977
       PUSH   ECX
4978
       MOV    EDI,[EAX].TCipher_Q128.FAdditionalBuffer
4979
       MOV    EAX,[EDX +  0]  // B0
4980
       MOV    EBX,[EDX +  4]  // B1
4981
       MOV    ECX,[EDX +  8]  // B2
4982
       MOV    EDX,[EDX + 12]  // B3
4983
       MOV    EBP,16
4984
@@1:   MOV    ESI,EAX
4985
       ROL    ESI,10
4986
       AND    EAX,03FFh
4987
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
4988
       ADD    EAX,[EDI + 0]
4989
       XOR    EAX,EBX
4990
       MOV    EBX,EAX
4991
       ROL    EBX,10
4992
       AND    EAX,03FFh
4993
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
4994
       ADD    EAX,[EDI + 4]
4995
       XOR    EAX,ECX
4996
       MOV    ECX,EAX
4997
       ROL    ECX,10
4998
       AND    EAX,03FFh
4999
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5000
       ADD    EAX,[EDI + 8]
5001
       XOR    EAX,EDX
5002
       MOV    EDX,EAX
5003
       ROL    EDX,10
5004
       AND    EAX,03FFh
5005
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5006
       ADD    EAX,[EDI + 12]
5007
       XOR    EAX,ESI
5008
       DEC    EBP
5009
       LEA    EDI,[EDI + 16]
5010
       JNZ    @@1
5011
       POP    ESI
5012
       MOV    [ESI +  0],EAX  // B0
5013
       MOV    [ESI +  4],EBX  // B1
5014
       MOV    [ESI +  8],ECX  // B2
5015
       MOV    [ESI + 12],EDX  // B3
5016
       POP    EBP
5017
       POP    EBX
5018
       POP    EDI
5019
       POP    ESI
5020
end;
5021
{$ELSE !X86ASM}
5022
var
5023
  D: PUInt32Array;
5024
  B0, B1, B2, B3, I: UInt32;
5025
begin
5026
  Assert(Size = Context.BlockSize);
5027
5028
  D  := Pointer(FAdditionalBuffer);
5029
  B0 := PUInt32Array(Source)[0];
5030
  B1 := PUInt32Array(Source)[1];
5031
  B2 := PUInt32Array(Source)[2];
5032
  B3 := PUInt32Array(Source)[3];
5033
  for I := 0 to 15 do
5034
  begin
5035
    B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]); B0 := B0 shl 10 or B0 shr 22;
5036
    B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]); B1 := B1 shl 10 or B1 shr 22;
5037
    B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]); B2 := B2 shl 10 or B2 shr 22;
5038
    B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]); B3 := B3 shl 10 or B3 shr 22;
5039
    D := @D[4];
5040
  end;
5041
  PUInt32Array(Dest)[0] := B0;
5042
  PUInt32Array(Dest)[1] := B1;
5043
  PUInt32Array(Dest)[2] := B2;
5044
  PUInt32Array(Dest)[3] := B3;
5045
end;
5046
{$ENDIF !X86ASM}
5047
5048
procedure TCipher_Q128.DoDecode(Source, Dest: Pointer; Size: Integer);
5049
{$IFDEF X86ASM}
5050
asm
5051
       PUSH   ESI
5052
       PUSH   EDI
5053
       PUSH   EBX
5054
       PUSH   EBP
5055
       PUSH   ECX
5056
       MOV    EDI,[EAX].TCipher_Q128.FAdditionalBuffer
5057
       LEA    EDI,[EDI + 64 * 4]
5058
       MOV    ESI,[EDX +  0]   // B0
5059
       MOV    EBX,[EDX +  4]  // B1
5060
       MOV    ECX,[EDX +  8]  // B2
5061
       MOV    EDX,[EDX + 12]  // B3
5062
       MOV    EBP,16
5063
@@1:   SUB    EDI,16
5064
       ROR    EDX,10
5065
       MOV    EAX,EDX
5066
       AND    EAX,03FFh
5067
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5068
       ADD    EAX,[EDI + 12]
5069
       XOR    ESI,EAX
5070
       ROR    ECX,10
5071
       MOV    EAX,ECX
5072
       AND    EAX,03FFh
5073
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5074
       ADD    EAX,[EDI +  8]
5075
       XOR    EDX,EAX
5076
       ROR    EBX,10
5077
       MOV    EAX,EBX
5078
       AND    EAX,03FFh
5079
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5080
       ADD    EAX,[EDI +  4]
5081
       XOR    ECX,EAX
5082
       ROR    ESI,10
5083
       MOV    EAX,ESI
5084
       AND    EAX,03FFh
5085
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5086
       ADD    EAX,[EDI]
5087
       XOR    EBX,EAX
5088
       DEC    EBP
5089
       JNZ    @@1
5090
       POP    EAX
5091
       MOV    [EAX +  0],ESI  // B0
5092
       MOV    [EAX +  4],EBX  // B1
5093
       MOV    [EAX +  8],ECX  // B2
5094
       MOV    [EAX + 12],EDX  // B3
5095
       POP    EBP
5096
       POP    EBX
5097
       POP    EDI
5098
       POP    ESI
5099
end;
5100
{$ELSE !X86ASM}
5101
var
5102
  D: PUInt32Array;
5103
  B0, B1, B2, B3, I: UInt32;
5104
begin
5105
  Assert(Size = Context.BlockSize);
5106
5107
  D  := @PUInt32Array(FAdditionalBuffer)[60];
5108
  B0 := PUInt32Array(Source)[0];
5109
  B1 := PUInt32Array(Source)[1];
5110
  B2 := PUInt32Array(Source)[2];
5111
  B3 := PUInt32Array(Source)[3];
5112
  for I := 0 to 15 do
5113
  begin
5114
    B3 := B3 shr 10 or B3 shl 22; B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]);
5115
    B2 := B2 shr 10 or B2 shl 22; B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]);
5116
    B1 := B1 shr 10 or B1 shl 22; B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]);
5117
    B0 := B0 shr 10 or B0 shl 22; B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]);
5118
    Dec(PUInt32(D), 4);
5119
  end;
5120
  PUInt32Array(Dest)[0] := B0;
5121
  PUInt32Array(Dest)[1] := B1;
5122
  PUInt32Array(Dest)[2] := B2;
5123
  PUInt32Array(Dest)[3] := B3;
5124
end;
5125
{$ENDIF !X86ASM}
5126
5127
{ TCipher_RC2 }
5128
5129
class function TCipher_RC2.Context: TCipherContext;
5130
begin
5131
  Result.KeySize                     := 128;
5132
  Result.BlockSize                   := 8;
5133
  Result.BufferSize                  := 8;
5134
  Result.AdditionalBufferSize        := 128;
5135
  Result.NeedsAdditionalBufferBackup := False;
5136
  Result.MinRounds                   := 1;
5137
  Result.MaxRounds                   := 1;
5138
  Result.CipherType                  := [ctSymmetric, ctBlock];
5139
end;
5140
5141
procedure TCipher_RC2.DoInit(const Key; Size: Integer);
5142
// New keyscheduling according to RFC2268 and it's testcases. The V3 keysetup
5143
// was using an older, inferior version. Special thanks to Brendan Bosnan for
5144
// pointing that out.
5145
var
5146
  I, L, Mask, KeyEffectiveBits: Integer;
5147
  K: PByteArray;
5148
begin
5149
  if Size <= 0 then
5150
    Exit;
5151
  KeyEffectiveBits := Size * 8;
5152
  L := KeyEffectiveBits and 7;
5153
  if L = 0 then
5154
    Mask := $FF
5155
  else
5156
    Mask := $FF shr (8 - L);
5157
  L := (KeyEffectiveBits + 7) shr 3;
5158
  K := FAdditionalBuffer;
5159
  Move(Key, K[0], Size);
5160
  for I := Size to 127 do
5161
    K[I] := RC2_Data[(K[I - Size] + K[I - 1]) and $FF];
5162
  K[128 - L] := RC2_Data[K[128 - L] and Mask];
5163
  for I := 127 - L downto 0 do
5164
     K[I] := RC2_Data[K[I + 1] xor K[I + L]];
5165
5166
  inherited;
5167
end;
5168
5169
procedure TCipher_RC2.DoEncode(Source, Dest: Pointer; Size: Integer);
5170
var
5171
  I: Integer;
5172
  K: PWordArray;
5173
  A, B, C, D: Word;
5174
begin
5175
  Assert(Size = Context.BlockSize);
5176
5177
  K := FAdditionalBuffer;
5178
  A := PWordArray(Source)[0];
5179
  B := PWordArray(Source)[1];
5180
  C := PWordArray(Source)[2];
5181
  D := PWordArray(Source)[3];
5182
  for I := 0 to 15 do
5183
  begin
5184
    Inc(A, (B and not D) + (C and D) + K[I * 4 + 0]); A := A shl 1 or A shr 15;
5185
    Inc(B, (C and not A) + (D and A) + K[I * 4 + 1]); B := B shl 2 or B shr 14;
5186
    Inc(C, (D and not B) + (A and B) + K[I * 4 + 2]); C := C shl 3 or C shr 13;
5187
    Inc(D, (A and not C) + (B and C) + K[I * 4 + 3]); D := D shl 5 or D shr 11;
5188
    if I in [4, 10] then
5189
    begin
5190
      Inc(A, K[D and $3F]);
5191
      Inc(B, K[A and $3F]);
5192
      Inc(C, K[B and $3F]);
5193
      Inc(D, K[C and $3F]);
5194
    end;
5195
  end;
5196
  PWordArray(Dest)[0] := A;
5197
  PWordArray(Dest)[1] := B;
5198
  PWordArray(Dest)[2] := C;
5199
  PWordArray(Dest)[3] := D;
5200
end;
5201
5202
procedure TCipher_RC2.DoDecode(Source, Dest: Pointer; Size: Integer);
5203
var
5204
  I: Integer;
5205
  K: PWordArray;
5206
  A, B, C, D: Word;
5207
begin
5208
  Assert(Size = Context.BlockSize);
5209
5210
  K := FAdditionalBuffer;
5211
  A := PWordArray(Source)[0];
5212
  B := PWordArray(Source)[1];
5213
  C := PWordArray(Source)[2];
5214
  D := PWordArray(Source)[3];
5215
  for I := 15 downto 0 do
5216
  begin
5217
    D := D shr 5 or D shl 11 - (A and not C) - (B and C) - K[I * 4 + 3];
5218
    C := C shr 3 or C shl 13 - (D and not B) - (A and B) - K[I * 4 + 2];
5219
    B := B shr 2 or B shl 14 - (C and not A) - (D and A) - K[I * 4 + 1];
5220
    A := A shr 1 or A shl 15 - (B and not D) - (C and D) - K[I * 4 + 0];
5221
    if I in [5, 11] then
5222
    begin
5223
      Dec(D, K[C and $3F]);
5224
      Dec(C, K[B and $3F]);
5225
      Dec(B, K[A and $3F]);
5226
      Dec(A, K[D and $3F]);
5227
    end;
5228
  end;
5229
  PWordArray(Dest)[0] := A;
5230
  PWordArray(Dest)[1] := B;
5231
  PWordArray(Dest)[2] := C;
5232
  PWordArray(Dest)[3] := D;
5233
end;
5234
5235
{ TCipher_RC5 }
5236
5237
class function TCipher_RC5.Context: TCipherContext;
5238
begin
5239
  Result.KeySize                     := 256;
5240
  Result.BlockSize                   := 8;
5241
  Result.BufferSize                  := 8;
5242
  Result.AdditionalBufferSize        := 136;
5243
  Result.NeedsAdditionalBufferBackup := false;
5244
  Result.MinRounds                   := 0;
5245
  Result.MaxRounds                   := 256;
5246
  Result.CipherType                  := [ctSymmetric, ctBlock];
5247
end;
5248
5249
procedure TCipher_RC5.SetRounds(Value: Integer);
5250
begin
5251
  if Value <> FRounds then
5252
  begin
5253
    if not (FState in [csNew, csInitialized, csDone]) then
5254
      Done;
5255
5256
    if Value < 0 then
5257
      Value := 12;
5258
5259
    if (Value > Context.MaxRounds) then
5260
      Value := Context.MaxRounds;
5261
5262
    FRounds := Value;
5263
  end;
5264
end;
5265
5266
procedure TCipher_RC5.DoInit(const Key; Size: Integer);
5267
var
5268
  K: array[0..63] of UInt32;
5269
  L, Z, I, J: Integer;
5270
  D: PUInt32Array;
5271
  A, B, T: UInt32;
5272
begin
5273
  if FRounds <= 0 then
5274
    FRounds := 12;
5275
  FillChar(K, SizeOf(K), 0);
5276
  Move(Key, K, Size);
5277
  D := FAdditionalBuffer;
5278
  L := (Size + 3) shr 2;
5279
  if L <= 0 then
5280
    L := 1;
5281
  T := $B7E15163;
5282
  for I := 0 to (FRounds + 1) * 2 do
5283
  begin
5284
    D[I] := T;
5285
    Inc(T, $9E3779B9);
5286
  end;
5287
  if L > (FRounds + 1) * 2 then
5288
    Z := L * 3
5289
  else
5290
    Z := (FRounds + 1) * 6;
5291
  I := 0;
5292
  J := 0;
5293
  A := 0;
5294
  B := 0;
5295
  for Z := Z downto 1 do
5296
  begin
5297
    A := D[I] + A + B;
5298
    A := A shl 3 or A shr 29;
5299
    D[I] := A;
5300
    T := A + B;
5301
    B := K[J] + T;
5302
    B := B shl T or B shr (32 - T);
5303
    K[J] := B;
5304
    I := (I + 1) mod ((FRounds + 1) * 2);
5305
    J := (J + 1) mod L;
5306
  end;
5307
  ProtectBuffer(K, SizeOf(K));
5308
5309
  inherited;
5310
end;
5311
5312
procedure TCipher_RC5.DoEncode(Source, Dest: Pointer; Size: Integer);
5313
var
5314
  K: PUInt32Array;
5315
  I: Integer;
5316
  A, B: UInt32;
5317
begin
5318
  Assert(Size = Context.BlockSize);
5319
5320
  K := FAdditionalBuffer;
5321
  A := PUInt32Array(Source)[0] + K[0];
5322
  B := PUInt32Array(Source)[1] + K[1];
5323
  for I := 1 to FRounds do
5324
  begin
5325
    A := A xor B; A := A shl B or A shr (32 - B) + K[I * 2 + 0];
5326
    B := B xor A; B := B shl A or B shr (32 - A) + K[I * 2 + 1];
5327
  end;
5328
  PUInt32Array(Dest)[0] := A;
5329
  PUInt32Array(Dest)[1] := B;
5330
end;
5331
5332
procedure TCipher_RC5.DoDecode(Source, Dest: Pointer; Size: Integer);
5333
var
5334
  K: PUInt32Array;
5335
  I: Integer;
5336
  A, B: UInt32;
5337
begin
5338
  Assert(Size = Context.BlockSize);
5339
5340
  K := @PUInt32Array(FAdditionalBuffer)[0];
5341
  A := PUInt32Array(Source)[0];
5342
  B := PUInt32Array(Source)[1];
5343
  for I := FRounds downto 1 do
5344
  begin
5345
    B := B - K[I * 2 + 1]; B := B shr A or B shl (32 - A) xor A;
5346
    A := A - K[I * 2 + 0]; A := A shr B or A shl (32 - B) xor B;
5347
  end;
5348
  PUInt32Array(Dest)[0] := A - K[0];
5349
  PUInt32Array(Dest)[1] := B - K[1];
5350
end;
5351
5352
{ TCipher_SAFER }
5353
5354
class function TCipher_SAFER.Context: TCipherContext;
5355
begin
5356
  Result.KeySize                     := 16;
5357
  Result.BlockSize                   := 8;
5358
  Result.BufferSize                  := 8;
5359
  Result.AdditionalBufferSize        := 768;
5360
  Result.NeedsAdditionalBufferBackup := false;
5361
  Result.MinRounds                   := 4;
5362
  Result.MaxRounds                   := 13;
5363
  Result.CipherType                  := [ctSymmetric, ctBlock];
5364
end;
5365
5366
procedure TCipher_SAFER.SetRounds(Value: Integer);
5367
begin
5368
  if not (FState in [csNew, csInitialized, csDone]) then
5369
    Done;
5370
  if (Value < 4) or (Value > 13) then
5371
    case FVersion of // Default Rounds
5372
      svK40, svSK40: Value := 5;
5373
      svK64, svSK64: Value := 6;
5374
      svK128, svSK128: Value := 10;
5375
    else
5376
      Value := 8;
5377
    end;
5378
  FRounds := Value;
5379
end;
5380
5381
procedure TCipher_SAFER.SetVersion(Value: TSAFERVersion);
5382
begin
5383
  if Value <> FVersion then
5384
  begin
5385
    if not (FState in [csNew, csInitialized, csDone]) then
5386
      Done;
5387
    FVersion := Value;
5388
    SetRounds(0);
5389
  end;
5390
end;
5391
5392
procedure TCipher_SAFER.DoInit(const Key; Size: Integer);
5393
5394
  procedure InitTab;
5395
  var
5396
    I, E: Integer;
5397
    Exp: PByteArray;
5398
    Log: PByteArray;
5399
  begin
5400
    Exp := FAdditionalBuffer;
5401
    Log := @Exp[256];
5402
    E   := 1;
5403
    for I := 0 to 255 do
5404
    begin
5405
      Exp[I] := E and $FF;
5406
      Log[E and $FF] := I;
5407
      E := (E * 45) mod 257;
5408
    end;
5409
  end;
5410
5411
  procedure InitKey;
5412
  var
5413
    D: PByte;
5414
    Exp: PByteArray;
5415
    Strong: Boolean;
5416
    K: array[Boolean, 0..8] of Byte;
5417
    I, J: Integer;
5418
  begin
5419
    Strong := FVersion in [svSK40, svSK64, svSK128];
5420
    Exp := FAdditionalBuffer;
5421
    D := @Exp[512];
5422
    FillChar(K, SizeOf(K), 0);
5423
    // Setup Key A
5424
    I := Size;
5425
    if I > 8 then
5426
      I := 8;
5427
    Move(Key, K[False], I);
5428
    // Setup the Key for K-40, SK-40
5429
    if FVersion in [svK40, svSK40] then
5430
    begin
5431
      K[False, 5] := K[False, 0] xor K[False, 2] xor 129;
5432
      K[False, 6] := K[False, 0] xor K[False, 3] xor K[False, 4] xor 66;
5433
      K[False, 7] := K[False, 1] xor K[False, 2] xor K[False, 4] xor 36;
5434
      K[False, 8] := K[False, 1] xor K[False, 3] xor 24;
5435
      Move(K[False], K[True], SizeOf(K[False]));
5436
    end
5437
    else
5438
    begin
5439
      if Size > 8 then
5440
      begin
5441
        I := Size - 8;
5442
        if I > 8 then
5443
          I := 8;
5444
        Move(TByteArray(Key)[8], K[True], I);
5445
      end
5446
      else
5447
        Move(K[False], K[True], 9);
5448
      for I := 0 to 7 do
5449
      begin
5450
        K[False, 8] := K[False, 8] xor K[False, I];
5451
        K[True, 8]  := K[True, 8]  xor K[True, I];
5452
      end;
5453
    end;
5454
    // Setup the KeyData
5455
    Move(K[True], D^, 8);
5456
    Inc(D, 8);
5457
5458
    for I := 0 to 8 do
5459
      K[False, I] := K[False, I] shr 3 or K[False, I] shl 5;
5460
5461
    for I := 1 to FRounds do
5462
    begin
5463
      for J := 0 to 8 do
5464
      begin
5465
        K[False, J] := K[False, J] shl 6 or K[False, J] shr 2;
5466
        K[True, J] := K[True, J] shl 6 or K[True, J] shr 2;
5467
      end;
5468
      for J := 0 to 7 do
5469
      begin
5470
        if Strong then
5471
          D^ := K[False, (J + I * 2 - 1) mod 9] + Exp[Exp[18 * I + J + 1]]
5472
        else
5473
          D^ := K[False, J] + Exp[Exp[18 * I + J + 1]];
5474
        Inc(D);
5475
      end;
5476
      for J := 0 to 7 do
5477
      begin
5478
        if Strong then
5479
          D^ := K[True, (J + I * 2) mod 9] + Exp[Exp[18 * I + J + 10]]
5480
        else
5481
          D^ := K[True, J] + Exp[Exp[18 * I + J + 10]];
5482
        Inc(D);
5483
      end;
5484
    end;
5485
    ProtectBuffer(K, SizeOf(K));
5486
  end;
5487
5488
begin
5489
  if (FRounds < 4) or (FRounds > 13) then
5490
    case FVersion of
5491
      svK40, svSK40:    FRounds := 5;
5492
      svK64, svSK64:    FRounds := 6;
5493
      svK128, svSK128:  FRounds := 10;
5494
    else
5495
      FRounds := 8;
5496
    end;
5497
  InitTab;
5498
  InitKey;
5499
5500
  inherited;
5501
end;
5502
5503
procedure TCipher_SAFER.DoEncode(Source, Dest: Pointer; Size: Integer);
5504
var
5505
  Exp, Log, Key: PByteArray;
5506
  I: Integer;
5507
  A, B, C, D, E, F, G, H, T: Byte;
5508
begin
5509
  Assert(Size = Context.BlockSize);
5510
5511
  Exp := FAdditionalBuffer;
5512
  Log := @Exp[256];
5513
  Key := @Exp[512];
5514
5515
  A := PByteArray(Source)[0];
5516
  B := PByteArray(Source)[1];
5517
  C := PByteArray(Source)[2];
5518
  D := PByteArray(Source)[3];
5519
  E := PByteArray(Source)[4];
5520
  F := PByteArray(Source)[5];
5521
  G := PByteArray(Source)[6];
5522
  H := PByteArray(Source)[7];
5523
5524
  for I := 0 to FRounds - 1 do
5525
  begin
5526
    A := A xor Key[0];
5527
    B := B  +  Key[1];
5528
    C := C  +  Key[2];
5529
    D := D xor Key[3];
5530
    E := E xor Key[4];
5531
    F := F  +  Key[5];
5532
    G := G  +  Key[6];
5533
    H := H xor Key[7];
5534
5535
    A := Exp[A]  +  Key[8];
5536
    B := Log[B] xor Key[9];
5537
    C := Log[C] xor Key[10];
5538
    D := Exp[D]  +  Key[11];
5539
    E := Exp[E]  +  Key[12];
5540
    F := Log[F] xor Key[13];
5541
    G := Log[G] xor Key[14];
5542
    H := Exp[H]  +  Key[15];
5543
    Inc(B, A); Inc(A, B);
5544
    Inc(D, C); Inc(C, D);
5545
    Inc(F, E); Inc(E, F);
5546
    Inc(H, G); Inc(G, H);
5547
    Inc(C, A); Inc(A, C);
5548
    Inc(G, E); Inc(E, G);
5549
    Inc(D, B); Inc(B, D);
5550
    Inc(H, F); Inc(F, H);
5551
    Inc(E, A); Inc(A, E);
5552
    Inc(F, B); Inc(B, F);
5553
    Inc(G, C); Inc(C, G);
5554
    Inc(H, D); Inc(D, H);
5555
    T := B; B := E; E := C; C := T;
5556
    T := D; D := F; F := G; G := T;
5557
    Key := @Key[16];
5558
  end;
5559
5560
  PByteArray(Dest)[0] := A xor Key[0];
5561
  PByteArray(Dest)[1] := B  +  Key[1];
5562
  PByteArray(Dest)[2] := C  +  Key[2];
5563
  PByteArray(Dest)[3] := D xor Key[3];
5564
  PByteArray(Dest)[4] := E xor Key[4];
5565
  PByteArray(Dest)[5] := F  +  Key[5];
5566
  PByteArray(Dest)[6] := G  +  Key[6];
5567
  PByteArray(Dest)[7] := H xor Key[7];
5568
end;
5569
5570
procedure TCipher_SAFER.DoDecode(Source, Dest: Pointer; Size: Integer);
5571
var
5572
  Exp, Log, Key: PByteArray;
5573
  I: Integer;
5574
  A, B, C, D, E, F, G, H, T: Byte;
5575
begin
5576
  Assert(Size = Context.BlockSize);
5577
5578
  Exp := FAdditionalBuffer;
5579
  Log := @Exp[256];
5580
  Key := @Exp[504 + 8 * (FRounds * 2 + 1)];
5581
5582
  A := PByteArray(Source)[0] xor Key[0];
5583
  B := PByteArray(Source)[1]  -  Key[1];
5584
  C := PByteArray(Source)[2]  -  Key[2];
5585
  D := PByteArray(Source)[3] xor Key[3];
5586
  E := PByteArray(Source)[4] xor Key[4];
5587
  F := PByteArray(Source)[5]  -  Key[5];
5588
  G := PByteArray(Source)[6]  -  Key[6];
5589
  H := PByteArray(Source)[7] xor Key[7];
5590
5591
  for I := 0 to FRounds - 1 do
5592
  begin
5593
    Dec(PByte(Key), 16);
5594
    T := E; E := B; B := C; C := T;
5595
    T := F; F := D; D := G; G := T;
5596
    Dec(A, E); Dec(E, A);
5597
    Dec(B, F); Dec(F, B);
5598
    Dec(C, G); Dec(G, C);
5599
    Dec(D, H); Dec(H, D);
5600
    Dec(A, C); Dec(C, A);
5601
    Dec(E, G); Dec(G, E);
5602
    Dec(B, D); Dec(D, B);
5603
    Dec(F, H); Dec(H, F);
5604
    Dec(A, B); Dec(B, A);
5605
    Dec(C, D); Dec(D, C);
5606
    Dec(E, F); Dec(F, E);
5607
    Dec(G, H); Dec(H, G);
5608
    H := H  -  Key[15];
5609
    G := G xor Key[14];
5610
    F := F xor Key[13];
5611
    E := E  -  Key[12];
5612
    D := D  -  Key[11];
5613
    C := C xor Key[10];
5614
    B := B xor Key[9];
5615
    A := A  -  Key[8];
5616
    H := Log[H] xor Key[7];
5617
    G := Exp[G]  -  Key[6];
5618
    F := Exp[F]  -  Key[5];
5619
    E := Log[E] xor Key[4];
5620
    D := Log[D] xor Key[3];
5621
    C := Exp[C]  -  Key[2];
5622
    B := Exp[B]  -  Key[1];
5623
    A := Log[A] xor Key[0];
5624
  end;
5625
5626
  PByteArray(Dest)[0] := A;
5627
  PByteArray(Dest)[1] := B;
5628
  PByteArray(Dest)[2] := C;
5629
  PByteArray(Dest)[3] := D;
5630
  PByteArray(Dest)[4] := E;
5631
  PByteArray(Dest)[5] := F;
5632
  PByteArray(Dest)[6] := G;
5633
  PByteArray(Dest)[7] := H;
5634
end;
5635
5636
{ TCipher_SharkBase }
5637
5638
const
5639
  SHARK_ROOT      = $01F5; // GF(256) polynomial x^8 + x^7 + x^6 + x^5 + x^4 + x^2 + 1
5640
  SHARK_ROUNDS    = 6;
5641
  SHARK_ROUNDKEYS = SHARK_ROUNDS + 1;
5642
5643
{$IFNDEF CPU64BITS}
5644
function TCipher_SharkBase.Shark(D: TLong64; K: PLong64): TLong64;
5645
var
5646
  R, T: Integer;
5647
begin
5648
  for R := 0 to 4 do
5649
  begin
5650
    D.L := D.L xor K.L;
5651
    D.R := D.R xor K.R;
5652
    Inc(K);
5653
    T   := Shark_CE[0, D.R shr 23 and $1FE] xor
5654
           Shark_CE[1, D.R shr 15 and $1FE] xor
5655
           Shark_CE[2, D.R shr  7 and $1FE] xor
5656
           Shark_CE[3, D.R shl  1 and $1FE] xor
5657
           Shark_CE[4, D.L shr 23 and $1FE] xor
5658
           Shark_CE[5, D.L shr 15 and $1FE] xor
5659
           Shark_CE[6, D.L shr  7 and $1FE] xor
5660
           Shark_CE[7, D.L shl  1 and $1FE];
5661
5662
    D.R := Shark_CE[0, D.R shr 23 and $1FE or 1] xor
5663
           Shark_CE[1, D.R shr 15 and $1FE or 1] xor
5664
           Shark_CE[2, D.R shr  7 and $1FE or 1] xor
5665
           Shark_CE[3, D.R shl  1 and $1FE or 1] xor
5666
           Shark_CE[4, D.L shr 23 and $1FE or 1] xor
5667
           Shark_CE[5, D.L shr 15 and $1FE or 1] xor
5668
           Shark_CE[6, D.L shr  7 and $1FE or 1] xor
5669
           Shark_CE[7, D.L shl  1 and $1FE or 1];
5670
    D.L := T;
5671
  end;
5672
  D.L := D.L xor K.L;
5673
  D.R := D.R xor K.R;
5674
  Inc(K);
5675
  D.L := UInt32(Shark_SE[D.L shr 24 and $FF]) shl 24 xor
5676
         UInt32(Shark_SE[D.L shr 16 and $FF]) shl 16 xor
5677
         UInt32(Shark_SE[D.L shr  8 and $FF]) shl  8 xor
5678
         UInt32(Shark_SE[D.L        and $FF]);
5679
  D.R := UInt32(Shark_SE[D.R shr 24 and $FF]) shl 24 xor
5680
         UInt32(Shark_SE[D.R shr 16 and $FF]) shl 16 xor
5681
         UInt32(Shark_SE[D.R shr  8 and $FF]) shl  8 xor
5682
         UInt32(Shark_SE[D.R        and $FF]);
5683
  Result.L := D.L xor K.L;
5684
  Result.R := D.R xor K.R;
5685
end;
5686
{$ENDIF}
5687
5688
{$IFNDEF CPU64BITS}
5689
function TCipher_SharkBase.Transform(A: TLong64; Log, ALog: TLogArray): TLong64;
5690
  function Mul(A, B: Integer): Byte;
5691
  begin
5692
    // GF(256) multiplication via logarithm tables
5693
    Result := ALog[(Log[A] + Log[B]) mod 255];
5694
  end;
5695
5696
var
5697
  I, J: Byte;
5698
  K, T: array[0..7] of Byte;
5699
begin
5700
  Move(A.R, K[0], 4);
5701
  Move(A.L, K[4], 4);
5702
  SwapUInt32Buffer(K, K, 2);
5703
5704
  for I := 0 to 7 do
5705
  begin
5706
    T[I] := Mul(Shark_I[I, 0], K[0]);
5707
    for J := 1 to 7 do
5708
      T[I] := T[I] xor Mul(Shark_I[I, J], K[J]);
5709
  end;
5710
5711
  Result.L := T[0];
5712
  Result.R := 0;
5713
  for I := 1 to 7 do
5714
  begin
5715
    Result.R := Result.R shl 8 or Result.L shr 24;
5716
    Result.L := Result.L shl 8 xor T[I];
5717
  end;
5718
end;
5719
5720
{$ELSE CPU64BITS}
5721
function TCipher_SharkBase.Transform(A: UInt64; Log, ALog: TLogArray): UInt64;
5722
  function Mul(A, B: Integer): Byte;
5723
  begin
5724
    // GF(256) multiplication via logarithm tables
5725
    Result := ALog[(Log[A] + Log[B]) mod 255];
5726
  end;
5727
5728
var
5729
  I, J: Byte;
5730
  K, T: array[0..7] of Byte;
5731
begin
5732
  for I := 0 to 7 do
5733
    K[I] := A shr (56 - 8 * i);
5734
5735
  for I := 0 to 7 do
5736
  begin
5737
    T[I] := Mul(Shark_I[I, 0], K[0]);
5738
    for J := 1 to 7 do
5739
      T[I] := T[I] xor Mul(Shark_I[I, J], K[J]);
5740
  end;
5741
5742
  Result := T[0];
5743
  for I := 1 to 7 do
5744
    Result := (Result shl 8) xor T[I];
5745
end;
5746
{$ENDIF}
5747
5748
class function TCipher_SharkBase.Context: TCipherContext;
5749
begin
5750
  Result.KeySize                     := 16;
5751
  Result.BlockSize                   := 8;
5752
  Result.BufferSize                  := 8;
5753
  Result.AdditionalBufferSize        := 112;
5754
  Result.NeedsAdditionalBufferBackup := False;
5755
  Result.MinRounds                   := 1;
5756
  Result.MaxRounds                   := 1;
5757
  Result.CipherType                  := [ctSymmetric, ctBlock];
5758
end;
5759
5760
5761
procedure TCipher_SharkBase.DoEncode(Source, Dest: Pointer; Size: Integer);
5762
{$IFNDEF CPU64BITS}
5763
var
5764
  I: Integer;
5765
  T, L, R: UInt32;
5766
  K: PUInt32Array;
5767
begin
5768
  Assert(Size = Context.BlockSize);
5769
5770
  K := FAdditionalBuffer;
5771
  L := PLong64(Source).L;
5772
  R := PLong64(Source).R;
5773
  for I := 0 to 4 do
5774
  begin
5775
    L := L xor K[I * 2 + 0];
5776
    R := R xor K[I * 2 + 1];
5777
    T := Shark_CE[0, R shr 23 and $1FE] xor
5778
         Shark_CE[1, R shr 15 and $1FE] xor
5779
         Shark_CE[2, R shr  7 and $1FE] xor
5780
         Shark_CE[3, R shl  1 and $1FE] xor
5781
         Shark_CE[4, L shr 23 and $1FE] xor
5782
         Shark_CE[5, L shr 15 and $1FE] xor
5783
         Shark_CE[6, L shr  7 and $1FE] xor
5784
         Shark_CE[7, L shl  1 and $1FE];
5785
    R := Shark_CE[0, R shr 23 and $1FE or 1] xor
5786
         Shark_CE[1, R shr 15 and $1FE or 1] xor
5787
         Shark_CE[2, R shr  7 and $1FE or 1] xor
5788
         Shark_CE[3, R shl  1 and $1FE or 1] xor
5789
         Shark_CE[4, L shr 23 and $1FE or 1] xor
5790
         Shark_CE[5, L shr 15 and $1FE or 1] xor
5791
         Shark_CE[6, L shr  7 and $1FE or 1] xor
5792
         Shark_CE[7, L shl  1 and $1FE or 1];
5793
    L := T;
5794
  end;
5795
  L := L xor K[10];
5796
  R := R xor K[11];
5797
  L := UInt32(Shark_SE[L shr 24        ]) shl 24 xor
5798
       UInt32(Shark_SE[L shr 16 and $FF]) shl 16 xor
5799
       UInt32(Shark_SE[L shr  8 and $FF]) shl  8 xor
5800
       UInt32(Shark_SE[L        and $FF]);
5801
  R := UInt32(Shark_SE[R shr 24        ]) shl 24 xor
5802
       UInt32(Shark_SE[R shr 16 and $FF]) shl 16 xor
5803
       UInt32(Shark_SE[R shr  8 and $FF]) shl  8 xor
5804
       UInt32(Shark_SE[R        and $FF]);
5805
  PLong64(Dest).L := L xor K[12];
5806
  PLong64(Dest).R := R xor K[13];
5807
{$ELSE CPU64BITS}
5808
begin
5809
  // 64 bit
5810
  Assert(Size = Context.BufferSize);
5811
5812
  PUInt64(Dest)^ := SharkEncode(PUInt64(Source)^, FAdditionalBuffer);
5813
{$ENDIF}
5814
end;
5815
5816
{$IFDEF CPU64BITS}
5817
function TCipher_SharkBase.SharkEncode(D: UInt64; K: PUInt64): UInt64;
5818
var
5819
  R: Integer;
5820
begin
5821
  for R := 1 to SHARK_ROUNDS - 1 do
5822
  begin
5823
    D := D xor K^;
5824
    Inc(K);
5825
    D := Shark_CE[0, D shr 56 and $FF] xor
5826
         Shark_CE[1, D shr 48 and $FF] xor
5827
         Shark_CE[2, D shr 40 and $FF] xor
5828
         Shark_CE[3, D shr 32 and $FF] xor
5829
         Shark_CE[4, D shr 24 and $FF] xor
5830
         Shark_CE[5, D shr 16 and $FF] xor
5831
         Shark_CE[6, D shr 8  and $FF] xor
5832
         Shark_CE[7, D        and $FF];
5833
  end;
5834
  D := D xor K^;
5835
  Inc(K);
5836
  D := UInt64(Shark_SE[D shr 56 and $FF]) shl 56 xor
5837
       UInt64(Shark_SE[D shr 48 and $FF]) shl 48 xor
5838
       UInt64(Shark_SE[D shr 40 and $FF]) shl 40 xor
5839
       UInt64(Shark_SE[D shr 32 and $FF]) shl 32 xor
5840
       UInt64(Shark_SE[D shr 24 and $FF]) shl 24 xor
5841
       UInt64(Shark_SE[D shr 16 and $FF]) shl 16 xor
5842
       UInt64(Shark_SE[D shr  8 and $FF]) shl  8 xor
5843
       UInt64(Shark_SE[D        and $FF]);
5844
  Result := D xor K^;
5845
end;
5846
{$ENDIF}
5847
5848
5849
{ TCipher_Shark }
5850
5851
{$IFNDEF CPU64BITS}
5852
procedure TCipher_Shark.DoInit(const Key; Size: Integer);
5853
var
5854
  Log, ALog: TLogArray;
5855
5856
  procedure InitLog;
5857
  var
5858
    I, J: Word;
5859
  begin
5860
    ALog[0] := 1;
5861
    for I := 1 to 255 do
5862
    begin
5863
      J := ALog[I - 1] shl 1;
5864
      if J and $100 <> 0 then
5865
        J := J xor SHARK_ROOT;
5866
      ALog[I] := J;
5867
    end;
5868
    Log[0] := 0;
5869
    for I := 0 to 254 do
5870
      Log[ALog[I]] := I;
5871
  end;
5872
5873
var
5874
  T: array[0..6] of TLong64;
5875
  A: array[0..6] of TLong64;
5876
  K: array[0..15] of Byte;
5877
  I, J, R: Byte;
5878
  E, D: PLong64Array;
5879
  L: TLong64;
5880
begin
5881
  FillChar(K, SizeOf(K), 0);
5882
  Move(Key, K, Size);
5883
  InitLog;
5884
  E := FAdditionalBuffer;
5885
  D := @E[7];
5886
  Move(Shark_CE[0], T, SizeOf(T));
5887
  T[6] := Transform(T[6], Log, ALog);
5888
  I := 0;
5889
  for R := 0 to 6 do
5890
  begin
5891
    A[R].L := K[I and $F];
5892
    A[R].R := 0;
5893
    Inc(I);
5894
    for J := 1 to 7 do
5895
    begin
5896
      A[R].R := A[R].R shl 8 or A[R].L shr 24;
5897
      A[R].L := A[R].L shl 8 or K[I and $F];
5898
      Inc(I);
5899
    end;
5900
  end;
5901
  L.L := 0;
5902
  L.R := 0;
5903
  L := Shark(L, @T);
5904
  E[0].L := A[0].L xor L.L;
5905
  E[0].R := A[0].R xor L.R;
5906
  for R := 1 to 6 do
5907
  begin
5908
    L := Shark(E[R - 1], @T);
5909
    E[R].L := A[R].L xor L.L;
5910
    E[R].R := A[R].R xor L.R;
5911
  end;
5912
  E[6] := Transform(E[6], Log, ALog);
5913
  D[0] := E[6];
5914
  D[6] := E[0];
5915
  for R := 1 to 5 do
5916
    D[R] := Transform(E[6-R], Log, ALog);
5917
  ProtectBuffer(T, SizeOf(T));
5918
  ProtectBuffer(A, SizeOf(A));
5919
  ProtectBuffer(K, SizeOf(K));
5920
5921
  inherited;
5922
end;
5923
{$ENDIF}
5924
5925
{$IFNDEF CPU64BITS}
5926
procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer);
5927
var
5928
  I: Integer;
5929
  T, R, L: UInt32;
5930
  K: PUInt32Array;
5931
begin
5932
  Assert(Size = Context.BlockSize);
5933
5934
  K := @PUInt32Array(FAdditionalBuffer)[14];
5935
  L := PLong64(Source).L;
5936
  R := PLong64(Source).R;
5937
  for I := 0 to 4 do
5938
  begin
5939
    L := L xor K[I * 2 + 0];
5940
    R := R xor K[I * 2 + 1];
5941
    T := Shark_CD[0, R shr 23 and $1FE] xor
5942
         Shark_CD[1, R shr 15 and $1FE] xor
5943
         Shark_CD[2, R shr  7 and $1FE] xor
5944
         Shark_CD[3, R shl  1 and $1FE] xor
5945
         Shark_CD[4, L shr 23 and $1FE] xor
5946
         Shark_CD[5, L shr 15 and $1FE] xor
5947
         Shark_CD[6, L shr  7 and $1FE] xor
5948
         Shark_CD[7, L shl  1 and $1FE];
5949
    R := Shark_CD[0, R shr 23 and $1FE or 1] xor
5950
         Shark_CD[1, R shr 15 and $1FE or 1] xor
5951
         Shark_CD[2, R shr  7 and $1FE or 1] xor
5952
         Shark_CD[3, R shl  1 and $1FE or 1] xor
5953
         Shark_CD[4, L shr 23 and $1FE or 1] xor
5954
         Shark_CD[5, L shr 15 and $1FE or 1] xor
5955
         Shark_CD[6, L shr  7 and $1FE or 1] xor
5956
         Shark_CD[7, L shl  1 and $1FE or 1];
5957
    L := T;
5958
  end;
5959
  L := L xor K[10];
5960
  R := R xor K[11];
5961
  L := UInt32(Shark_SD[L shr 24        ]) shl 24 xor
5962
       UInt32(Shark_SD[L shr 16 and $FF]) shl 16 xor
5963
       UInt32(Shark_SD[L shr  8 and $FF]) shl  8 xor
5964
       UInt32(Shark_SD[L        and $FF]);
5965
  R := UInt32(Shark_SD[R shr 24        ]) shl 24 xor
5966
       UInt32(Shark_SD[R shr 16 and $FF]) shl 16 xor
5967
       UInt32(Shark_SD[R shr  8 and $FF]) shl  8 xor
5968
       UInt32(Shark_SD[R        and $FF]);
5969
  PLong64(Dest).L := L xor K[12];
5970
  PLong64(Dest).R := R xor K[13];
5971
end;
5972
5973
{$ELSE CPU64BITS}
5974
procedure TCipher_Shark.DoInit(const Key; Size: Integer);
5975
var
5976
  Log, ALog: TLogArray;
5977
5978
  procedure InitLog;
5979
  var
5980
    I, J: Word;
5981
  begin
5982
    // Generate GF(256) anti-logarithm and logarithm tables
5983
    ALog[0] := 1;
5984
    for I := 1 to 255 do
5985
    begin
5986
      J := ALog[I - 1] shl 1;
5987
      if J and $100 <> 0 then
5988
        J := J xor SHARK_ROOT;
5989
      ALog[I] := J;
5990
    end;
5991
    Log[0] := 0;
5992
    for I := 0 to 254 do
5993
      Log[ALog[I]] := I;
5994
  end;
5995
5996
var
5997
  T: array[0..SHARK_ROUNDS] of UInt64;
5998
  A: array[0..SHARK_ROUNDKEYS-1] of UInt64;
5999
  K: array[0..15] of Byte;
6000
  I, J, R: Integer;
6001
  E, D: PUInt64Array;
6002
begin
6003
  FillChar(K, SizeOf(K), 0);
6004
  Move(Key, K, Size);
6005
  InitLog;
6006
  E := FAdditionalBuffer; // encryption round key
6007
  D := @E[SHARK_ROUNDS + 1]; // decryption round key
6008
6009
  Move(Shark_CE[0], T, SizeOf(T));
6010
  T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog);
6011
6012
  I := 0;
6013
  for R := 0 to High(A) do
6014
  begin
6015
    A[R] := K[I and $F];
6016
    Inc(I);
6017
    for J := 1 to 7 do
6018
    begin
6019
      A[R] := A[R] shl 8 or K[I and $F];
6020
      Inc(I);
6021
    end;
6022
  end;
6023
6024
  E[0] := A[0] xor SharkEncode(0, @T);
6025
  for R := 1 to High(A) do
6026
    E[R] := A[R] xor SharkEncode(E[R - 1], @T);
6027
6028
  E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog);
6029
  D[0] := E[SHARK_ROUNDS];
6030
  D[SHARK_ROUNDS] := E[0];
6031
  for R := 1 to SHARK_ROUNDS - 1 do
6032
    D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog);
6033
6034
  ProtectBuffer(T, SizeOf(T));
6035
  ProtectBuffer(A, SizeOf(A));
6036
  ProtectBuffer(K, SizeOf(K));
6037
6038
  inherited;
6039
end;
6040
6041
procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer);
6042
var
6043
  R: Integer;
6044
  D: UInt64;
6045
  K: PUInt64;
6046
begin
6047
  Assert(Size = Context.BufferSize);
6048
6049
  D := PUInt64(Source)^;
6050
  K := @PUInt64Array(FAdditionalBuffer)[SHARK_ROUNDS + 1]; // decryption round key
6051
  for R := 1 to SHARK_ROUNDS - 1 do
6052
  begin
6053
    D := D xor K^;
6054
    Inc(K);
6055
    D := Shark_CD[0, D shr 56 and $FF] xor
6056
         Shark_CD[1, D shr 48 and $FF] xor
6057
         Shark_CD[2, D shr 40 and $FF] xor
6058
         Shark_CD[3, D shr 32 and $FF] xor
6059
         Shark_CD[4, D shr 24 and $FF] xor
6060
         Shark_CD[5, D shr 16 and $FF] xor
6061
         Shark_CD[6, D shr 8  and $FF] xor
6062
         Shark_CD[7, D        and $FF];
6063
  end;
6064
  D := D xor K^;
6065
  Inc(K);
6066
  D := UInt64(Shark_SD[D shr 56 and $FF]) shl 56 xor
6067
       UInt64(Shark_SD[D shr 48 and $FF]) shl 48 xor
6068
       UInt64(Shark_SD[D shr 40 and $FF]) shl 40 xor
6069
       UInt64(Shark_SD[D shr 32 and $FF]) shl 32 xor
6070
       UInt64(Shark_SD[D shr 24 and $FF]) shl 24 xor
6071
       UInt64(Shark_SD[D shr 16 and $FF]) shl 16 xor
6072
       UInt64(Shark_SD[D shr  8 and $FF]) shl  8 xor
6073
       UInt64(Shark_SD[D        and $FF]);
6074
6075
  PUInt64(Dest)^ := D xor K^;
6076
end;
6077
{$ENDIF CPU64BITS}
6078
6079
{ TCipher_Shark_DEC52 }
6080
6081
6082
procedure TCipher_Shark_DEC52.DoInit(const Key; Size: Integer);
6083
var
6084
  Log, ALog: TLogArray;
6085
6086
  procedure InitLog;
6087
  var
6088
    I, J: Word;
6089
  begin
6090
    // Generate GF(256) anti-logarithm and logarithm tables
6091
    ALog[0] := 1;
6092
    for I := 1 to 255 do
6093
    begin
6094
      J := ALog[I - 1] shl 1;
6095
      if J and $100 <> 0 then
6096
        J := J xor SHARK_ROOT;
6097
      ALog[I] := J;
6098
    end;
6099
    for I := 1 to 254 do
6100
      Log[ALog[I]] := I;
6101
  end;
6102
6103
{$IFNDEF CPU64BITS}
6104
var
6105
  T: array[0..SHARK_ROUNDS] of TLong64;
6106
  A: array[0..SHARK_ROUNDS] of TLong64;
6107
  K: array[0..15] of Byte;
6108
  I, J, R: Byte;
6109
  E, D: PLong64Array;
6110
  L: TLong64;
6111
begin
6112
  FillChar(K, SizeOf(K), 0);
6113
  Move(Key, K, Size);
6114
  InitLog;
6115
  E := FAdditionalBuffer;
6116
  D := @E[7];
6117
  Move(Shark_CE[0], T, SizeOf(T));
6118
  T[6] := Transform(T[6], Log, ALog);
6119
  I := 0;
6120
  for R := 0 to 6 do
6121
  begin
6122
    Inc(I);
6123
    A[R].L := K[I and $F];
6124
    A[R].R := 0;
6125
    for J := 1 to 7 do
6126
    begin
6127
      Inc(I);
6128
      A[R].R := A[R].R shl 8 or A[R].L shr 24;
6129
      A[R].L := A[R].L shl 8 or K[I and $F];
6130
    end;
6131
  end;
6132
  L.L := 0;
6133
  L.R := 0;
6134
  L := Shark(L, @T);
6135
  E[0].L := A[0].L xor L.L;
6136
  E[0].R := A[0].R xor L.R;
6137
  for R := 1 to 6 do
6138
  begin
6139
    L := Shark(E[R - 1], @T);
6140
    E[R].L := A[R].L xor L.L;
6141
    E[R].R := A[R].R xor L.R;
6142
  end;
6143
  E[6] := Transform(E[6], Log, ALog);
6144
  D[0] := E[6];
6145
  D[6] := E[0];
6146
  for R := 1 to 5 do
6147
    D[R] := Transform(E[6-R], Log, ALog);
6148
  ProtectBuffer(T, SizeOf(T));
6149
  ProtectBuffer(A, SizeOf(A));
6150
  ProtectBuffer(K, SizeOf(K));
6151
6152
  inherited;
6153
  {$ELSE}
6154
var
6155
  T: array[0..SHARK_ROUNDS] of UInt64;
6156
  A: array[0..SHARK_ROUNDKEYS-1] of UInt64;
6157
  K: array[0..15] of Byte;
6158
  I, J, R: Integer;
6159
  E, D: PUInt64Array;
6160
begin
6161
  FillChar(K, SizeOf(K), 0);
6162
  Move(Key, K, Size);
6163
  InitLog;
6164
  E := FAdditionalBuffer; // encryption round key
6165
  D := @E[SHARK_ROUNDS + 1]; // decryption round key
6166
6167
  Move(Shark_CE[0], T, SizeOf(T));
6168
  T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog);
6169
6170
  I := 0;
6171
  for R := 0 to High(A) do
6172
  begin
6173
    Inc(I);
6174
    A[R] := K[I and $F];
6175
    for J := 1 to 7 do
6176
    begin
6177
      Inc(I);
6178
      A[R] := A[R] shl 8 or K[I and $F];
6179
    end;
6180
  end;
6181
6182
  E[0] := A[0] xor SharkEncode(0, @T);
6183
  for R := 1 to High(A) do
6184
    E[R] := A[R] xor SharkEncode(E[R - 1], @T);
6185
6186
  E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog);
6187
  D[0] := E[SHARK_ROUNDS];
6188
  D[SHARK_ROUNDS] := E[0];
6189
  for R := 1 to SHARK_ROUNDS - 1 do
6190
    D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog);
6191
6192
  ProtectBuffer(T, SizeOf(T));
6193
  ProtectBuffer(A, SizeOf(A));
6194
  ProtectBuffer(K, SizeOf(K));
6195
6196
  inherited;
6197
  {$ENDIF}
6198
end;
6199
6200
{ TCipher_Skipjack }
6201
6202
class function TCipher_Skipjack.Context: TCipherContext;
6203
begin
6204
  Result.KeySize                     := 10;
6205
  Result.BlockSize                   := 8;
6206
  Result.BufferSize                  := 8;
6207
  Result.AdditionalBufferSize        := $A00;
6208
  Result.NeedsAdditionalBufferBackup := false;
6209
  Result.MinRounds                   := 1;
6210
  Result.MaxRounds                   := 1;
6211
  Result.CipherType                  := [ctSymmetric, ctBlock];
6212
end;
6213
6214
procedure TCipher_Skipjack.DoInit(const Key; Size: Integer);
6215
var
6216
  K: array[0..9] of Byte;
6217
  D: PByte;
6218
  I, J: Integer;
6219
begin
6220
  FillChar(K, SizeOf(K), 0);
6221
  Move(Key, K, Size);
6222
  D := FAdditionalBuffer;
6223
  for I := 0 to 9 do
6224
    for J := 0 to 255 do
6225
    begin
6226
      D^ := Skipjack_Data[J xor K[I]];
6227
      Inc(D);
6228
    end;
6229
  ProtectBuffer(K, SizeOf(K));
6230
6231
  inherited;
6232
end;
6233
6234
procedure TCipher_Skipjack.DoEncode(Source, Dest: Pointer; Size: Integer);
6235
var
6236
  Tab, Min: PSkipjackTab;
6237
  Max: PByte;
6238
  K, T, A, B, C, D: UInt32;
6239
6240
begin
6241
  Assert(Size = Context.BlockSize);
6242
6243
  Min := FAdditionalBuffer;
6244
  Max := PByte(Min) + 9 * 256; // for Pointer Math
6245
  Tab := Min;
6246
  A   := Swap(PWordArray(Source)[0]);
6247
  B   := Swap(PWordArray(Source)[1]);
6248
  C   := Swap(PWordArray(Source)[2]);
6249
  D   := Swap(PWordArray(Source)[3]);
6250
  K   := 0;
6251
6252
  repeat
6253
    Inc(K);
6254
    T := A;
6255
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6256
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6257
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6258
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6259
    A := T xor D xor K;
6260
    D := C;
6261
    C := B;
6262
    B := T;
6263
  until K = 8;
6264
6265
  repeat
6266
    Inc(K);
6267
    T := A;
6268
    A := D;
6269
    D := C;
6270
    C := T xor B xor K;
6271
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6272
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6273
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6274
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6275
    B := T;
6276
  until K = 16;
6277
6278
  repeat
6279
    Inc(K);
6280
    T := A;
6281
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6282
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6283
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6284
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6285
    A := T xor D xor K;
6286
    D := C;
6287
    C := B;
6288
    B := T;
6289
  until K = 24;
6290
6291
  repeat
6292
    Inc(K);
6293
    T := A;
6294
    A := D;
6295
    D := C;
6296
    C := T xor B xor K;
6297
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6298
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6299
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6300
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6301
    B := T;
6302
  until K = 32;
6303
6304
  PWordArray(Dest)[0] := Swap(A);
6305
  PWordArray(Dest)[1] := Swap(B);
6306
  PWordArray(Dest)[2] := Swap(C);
6307
  PWordArray(Dest)[3] := Swap(D);
6308
end;
6309
6310
procedure TCipher_Skipjack.SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte);
6311
begin
6312
  Inc(ATab);
6313
6314
  if PByte(ATab) > AMax then
6315
    ATab := AMin;
6316
end;
6317
6318
procedure TCipher_Skipjack.DoDecode(Source, Dest: Pointer; Size: Integer);
6319
var
6320
  Tab, Max: PSkipjackTab;
6321
  Min: PByte; // for Pointer Math
6322
  K, T, A, B, C, D: UInt32;
6323
6324
begin
6325
  Assert(Size = Context.BlockSize);
6326
6327
  Min := FAdditionalBuffer;
6328
  Max := Pointer(Min + 9 * 256);
6329
  Tab := Pointer(Min + 7 * 256);
6330
  A   := Swap(PWordArray(Source)[0]); // holds an Integer, Compiler makes faster Code
6331
  B   := Swap(PWordArray(Source)[1]);
6332
  C   := Swap(PWordArray(Source)[2]);
6333
  D   := Swap(PWordArray(Source)[3]);
6334
  K   := 32;
6335
6336
  repeat
6337
    T := B;
6338
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6339
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6340
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6341
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6342
    B := T xor C xor K;
6343
    C := D;
6344
    D := A;
6345
    A := T;
6346
    Dec(K);
6347
  until K = 24;
6348
6349
  repeat
6350
    T := B;
6351
    B := C;
6352
    C := D;
6353
    D := T xor A xor K;
6354
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6355
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6356
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6357
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6358
    A := T;
6359
    Dec(K);
6360
  until K = 16;
6361
6362
  repeat
6363
    T := B;
6364
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6365
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6366
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6367
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6368
    B := C xor T xor K;
6369
    C := D;
6370
    D := A;
6371
    A := T;
6372
    Dec(K);
6373
  until K = 8;
6374
6375
  repeat
6376
    T := B;
6377
    B := C;
6378
    C := D;
6379
    D := T xor A xor K;
6380
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6381
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6382
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6383
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6384
    A := T;
6385
    Dec(K);
6386
  until K = 0;
6387
6388
  PWordArray(Dest)[0] := Swap(A);
6389
  PWordArray(Dest)[1] := Swap(B);
6390
  PWordArray(Dest)[2] := Swap(C);
6391
  PWordArray(Dest)[3] := Swap(D);
6392
end;
6393
6394
procedure TCipher_Skipjack.SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab);
6395
begin
6396
  Dec(ATab);
6397
//    {$IFDEF DELPHIORBCB}
6398
//    if ATab < AMin then
6399
//    {$ELSE !DELPHIORBCB}
6400
{ TODO : Prüfen ob so korrekt, da ATab auf PByte umgestellt wurde}
6401
  if PByte(ATab) < AMin then
6402
//    {$ENDIF !DELPHIORBCB}
6403
    ATab := AMax;
6404
end;
6405
6406
{ TCipher_TEA }
6407
6408
const
6409
  TEA_Delta = $9E3779B9; // magic constant, decimal 2654435769
6410
6411
class function TCipher_TEA.Context: TCipherContext;
6412
begin
6413
  Result.KeySize                     := 16;   // 128 bits
6414
  Result.BlockSize                   := 8;    // 64 bits
6415
  Result.BufferSize                  := 8;    // 64 bits
6416
  Result.AdditionalBufferSize        := 32;   // 256 bits
6417
  Result.NeedsAdditionalBufferBackup := false;
6418
  Result.MinRounds                   := 16;
6419
  Result.MaxRounds                   := 256;
6420
  Result.CipherType                  := [ctSymmetric, ctBlock];
6421
end;
6422
6423
procedure TCipher_TEA.SetRounds(Value: Integer);
6424
begin
6425
  if not (FState in [csNew, csInitialized, csDone]) then
6426
    Done;
6427
  if Value < Context.MinRounds then
6428
    Value := Context.MinRounds
6429
  else
6430
  if Value > Context.MaxRounds then
6431
    Value := Context.MaxRounds;
6432
  FRounds := Value;
6433
end;
6434
6435
procedure TCipher_TEA.DoInit(const Key; Size: Integer);
6436
begin
6437
  Move(Key, FAdditionalBuffer^, Size);
6438
  SetRounds(FRounds);
6439
6440
  inherited;
6441
end;
6442
6443
procedure TCipher_TEA.DoEncode(Source, Dest: Pointer; Size: Integer);
6444
var
6445
  I: Integer;
6446
  Sum,
6447
  X, Y, A, B, C, D: UInt32;
6448
begin
6449
  Assert(Size = Context.BlockSize);
6450
6451
  Sum := 0;
6452
6453
  A := PUInt32Array(FAdditionalBuffer)[0];
6454
  B := PUInt32Array(FAdditionalBuffer)[1];
6455
  C := PUInt32Array(FAdditionalBuffer)[2];
6456
  D := PUInt32Array(FAdditionalBuffer)[3];
6457
  X := PUInt32Array(Source)[0];
6458
  Y := PUInt32Array(Source)[1];
6459
6460
  for I := 0 to FRounds - 1 do
6461
  begin
6462
    Inc(Sum, TEA_Delta);
6463
    Inc(X, (((Y shl 4 + A) xor Y) + Sum) xor (Y shr 5 + B));
6464
    Inc(Y, (((X shl 4 + C) xor X) + Sum) xor (X shr 5 + D));
6465
  end;
6466
6467
  PUInt32Array(Dest)[0] := X;
6468
  PUInt32Array(Dest)[1] := Y;
6469
end;
6470
6471
procedure TCipher_TEA.DoDecode(Source, Dest: Pointer; Size: Integer);
6472
var
6473
  I: Integer;
6474
  Sum,
6475
  X, Y, A, B, C, D: UInt32;
6476
begin
6477
  Assert(Size = Context.BlockSize);
6478
6479
  Sum := TEA_Delta * UInt32(FRounds);
6480
6481
  A := PUInt32Array(FAdditionalBuffer)[0];
6482
  B := PUInt32Array(FAdditionalBuffer)[1];
6483
  C := PUInt32Array(FAdditionalBuffer)[2];
6484
  D := PUInt32Array(FAdditionalBuffer)[3];
6485
  X := PUInt32Array(Source)[0];
6486
  Y := PUInt32Array(Source)[1];
6487
6488
  for I := 0 to FRounds - 1 do
6489
  begin
6490
    Dec(Y, (X shl 4 + C) xor X + Sum xor (X shr 5 + D));
6491
    Dec(X, (Y shl 4 + A) xor Y + Sum xor (Y shr 5 + B));
6492
    Dec(Sum, TEA_Delta);
6493
  end;
6494
6495
  PUInt32Array(Dest)[0] := X;
6496
  PUInt32Array(Dest)[1] := Y;
6497
end;
6498
6499
{ TCipher_XTEA }
6500
6501
procedure TCipher_XTEA.DoEncode(Source, Dest: Pointer; Size: Integer);
6502
var
6503
  Sum,
6504
  I, X, Y: UInt32;
6505
  K: PUInt32Array;
6506
begin
6507
  Assert(Size = Context.BlockSize);
6508
6509
  Sum := 0;
6510
6511
  X := PUInt32Array(Source)[0];
6512
  Y := PUInt32Array(Source)[1];
6513
  K := FAdditionalBuffer;
6514
6515
  for I := 0 to FRounds - 1 do
6516
  begin
6517
    Inc(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3]));
6518
    Inc(Sum, TEA_Delta);
6519
    Inc(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3]));
6520
  end;
6521
6522
  PUInt32Array(Dest)[0] := X;
6523
  PUInt32Array(Dest)[1] := Y;
6524
end;
6525
6526
procedure TCipher_XTEA.DoDecode(Source, Dest: Pointer; Size: Integer);
6527
var
6528
  I: Integer;
6529
  Sum,
6530
  X, Y: UInt32;
6531
  K: PUInt32Array;
6532
begin
6533
  Assert(Size = Context.BlockSize);
6534
6535
  Sum := TEA_Delta * UInt32(FRounds);
6536
6537
  X := PUInt32Array(Source)[0];
6538
  Y := PUInt32Array(Source)[1];
6539
  K := FAdditionalBuffer;
6540
6541
  for I := 0 to FRounds - 1 do
6542
  begin
6543
    Dec(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3]));
6544
    Dec(Sum, TEA_Delta);
6545
    Dec(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3]));
6546
  end;
6547
6548
  PUInt32Array(Dest)[0] := X;
6549
  PUInt32Array(Dest)[1] := Y;
6550
end;
6551
6552
{ TCipher_XTEA_DEC52 }
6553
6554
procedure TCipher_XTEA_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer);
6555
var
6556
  Sum,
6557
  I, X, Y: UInt32;
6558
  K: PUInt32Array;
6559
begin
6560
  Assert(Size = Context.BlockSize);
6561
6562
  Sum := 0;
6563
6564
  X := PUInt32Array(Source)[0];
6565
  Y := PUInt32Array(Source)[1];
6566
  K := FAdditionalBuffer;
6567
6568
  for I := 0 to FRounds - 1 do
6569
  begin
6570
    Inc(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]);
6571
    Inc(Sum, TEA_Delta);
6572
    Inc(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]);
6573
  end;
6574
6575
  PUInt32Array(Dest)[0] := X;
6576
  PUInt32Array(Dest)[1] := Y;
6577
end;
6578
6579
procedure TCipher_XTEA_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer);
6580
var
6581
  I: Integer;
6582
  Sum,
6583
  X, Y: UInt32;
6584
  K: PUInt32Array;
6585
begin
6586
  Assert(Size = Context.BlockSize);
6587
6588
  Sum := TEA_Delta * UInt32(FRounds);
6589
6590
  X := PUInt32Array(Source)[0];
6591
  Y := PUInt32Array(Source)[1];
6592
  K := FAdditionalBuffer;
6593
6594
  for I := 0 to FRounds - 1 do
6595
  begin
6596
    Dec(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]);
6597
    Dec(Sum, TEA_Delta);
6598
    Dec(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]);
6599
  end;
6600
6601
  PUInt32Array(Dest)[0] := X;
6602
  PUInt32Array(Dest)[1] := Y;
6603
end;
6604
6605
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
6606
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
6607
6608
initialization
6609
  SetDefaultCipherClass(TCipher_Null);
6610
6611
  {$IFNDEF ManualRegisterCipherClasses}
6612
  TCipher_Null.RegisterClass(TDECCipher.ClassList);
6613
  TCipher_Blowfish.RegisterClass(TDECCipher.ClassList);
6614
  TCipher_Twofish.RegisterClass(TDECCipher.ClassList);
6615
  TCipher_IDEA.RegisterClass(TDECCipher.ClassList);
6616
  TCipher_Cast256.RegisterClass(TDECCipher.ClassList);
6617
  TCipher_Mars.RegisterClass(TDECCipher.ClassList);
6618
  TCipher_RC4.RegisterClass(TDECCipher.ClassList);
6619
  TCipher_RC6.RegisterClass(TDECCipher.ClassList);
6620
// Explicitely not registered, as Rijndael is 1:1 the same as AES and AES is the
6621
// more common name
6622
//  TCipher_Rijndael.RegisterClass(TDECCipher.ClassList);
6623
  TCipher_AES.RegisterClass(TDECCipher.ClassList);
6624
  TCipher_Square.RegisterClass(TDECCipher.ClassList);
6625
  TCipher_SCOP.RegisterClass(TDECCipher.ClassList);
6626
  TCipher_Sapphire.RegisterClass(TDECCipher.ClassList);
6627
  TCipher_1DES.RegisterClass(TDECCipher.ClassList);
6628
  TCipher_2DES.RegisterClass(TDECCipher.ClassList);
6629
  TCipher_3DES.RegisterClass(TDECCipher.ClassList);
6630
  TCipher_2DDES.RegisterClass(TDECCipher.ClassList);
6631
  TCipher_3DDES.RegisterClass(TDECCipher.ClassList);
6632
  TCipher_3TDES.RegisterClass(TDECCipher.ClassList);
6633
  TCipher_3Way.RegisterClass(TDECCipher.ClassList);
6634
  TCipher_Cast128.RegisterClass(TDECCipher.ClassList);
6635
  TCipher_Gost.RegisterClass(TDECCipher.ClassList);
6636
// Explicitely not registered, as this is an alias for Gost only
6637
//  TCipher_Magma.RegisterClass(TDECCipher.ClassList);
6638
  TCipher_Misty.RegisterClass(TDECCipher.ClassList);
6639
  TCipher_NewDES.RegisterClass(TDECCipher.ClassList);
6640
  TCipher_Q128.RegisterClass(TDECCipher.ClassList);
6641
  TCipher_RC2.RegisterClass(TDECCipher.ClassList);
6642
  TCipher_RC5.RegisterClass(TDECCipher.ClassList);
6643
  TCipher_SAFER.RegisterClass(TDECCipher.ClassList);
6644
  TCipher_Shark.RegisterClass(TDECCipher.ClassList);
6645
  TCipher_Skipjack.RegisterClass(TDECCipher.ClassList);
6646
  TCipher_TEA.RegisterClass(TDECCipher.ClassList);
6647
  TCipher_XTEA.RegisterClass(TDECCipher.ClassList);
6648
  TCipher_TEAN.RegisterClass(TDECCipher.ClassList);
6649
6650
    {$IFDEF OLD_REGISTER_FAULTY_CIPHERS}
6651
    // Those classes are only there for those who might have relied on the
6652
    // faulty implementation
6653
    TCipher_SCOP_DEC52.RegisterClass(TDECCipher.ClassList);
6654
    TCipher_Shark_DEC52.RegisterClass(TDECCipher.ClassList);
6655
    TCipher_XTEA_DEC52.RegisterClass(TDECCipher.ClassList);
6656
    {$ENDIF}
6657
  {$ENDIF}
6658
6659
finalization
6660
6661
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECCiphers (D:\Projekte\DECGitMaster\Source\DECCiphers.pas).

+

Generated at 29.10.2021 18:49:29 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECCiphers.pas

+
Number of lines covered3260
Number of lines with code gen3370
Line coverage96%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECCiphers;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
uses
24
  DECCipherBase, DECCipherFormats, DECUtil, DECTypes;
25
26
type
27
  // Cipher Classes
28
29
  /// <summary>
30
  ///   Null cipher, doesn't encrypt, only copy
31
  /// </summary>
32
  TCipher_Null          = class;
33
  /// <summary>
34
  ///   A block based encryption algorithm with 32 to 448 bit key length
35
  /// </summary>
36
  TCipher_Blowfish      = class;
37
  /// <summary>
38
  ///   AES Round 2 Final Candidate
39
  /// </summary>
40
  TCipher_Twofish       = class;
41
  /// <summary>
42
  ///   International Data Encryption Algorithm, formerly patentet,
43
  ///   now patent free. The algorithm is no longer to be really recommended due
44
  ///   to some classes of weak keys and other successfull attacks.
45
  /// </summary>
46
  TCipher_IDEA          = class;
47
  /// <summary>
48
  ///   Carlisle Adams and Stafford Tavares, 256 bit key length
49
  /// </summary>
50
  TCipher_Cast256       = class;
51
  /// <summary>
52
  ///   AES Round 2 Final Candidate
53
  /// </summary>
54
  TCipher_Mars          = class;
55
  /// <summary>
56
  ///   Streamcipher in as Block Cipher
57
  /// </summary>
58
  TCipher_RC4           = class;
59
  /// <summary>
60
  ///   AES Round 2 Final Candidate
61
  /// </summary>
62
  TCipher_RC6           = class;
63
  /// <summary>
64
  ///   AES Round 2 Final Candidate
65
  /// </summary>
66
  TCipher_Rijndael      = class;
67
  /// <summary>
68
  ///   AES winner = TCipher_Rijndael
69
  /// </summary>
70
  TCipher_AES           = class;
71
  /// <summary>
72
  ///   A block cipher invented by Joan Daemen and Vincent Rijmen. The design,
73
  ///   published in 1997, is a forerunner to Rijndael, which has been adopted
74
  ///   as the Advanced Encryption Standard. Square was introduced together with
75
  ///   a new form of cryptanalysis discovered by Lars Knudsen, called the
76
  ///   "Square attack".
77
  ///   The structure of Square is a substitution-permutation network with eight
78
  ///   rounds, operating on 128-bit blocks and using a 128-bit key.
79
  /// </summary>
80
  /// <remarks>
81
  ///   If possible use TCipher_AES instead
82
  /// </remarks>
83
  TCipher_Square        = class;
84
  /// <summary>
85
  ///   Stream Cipher in Blockmode (on UInt32), very fast
86
  /// </summary>
87
  TCipher_SCOP          = class;
88
  /// <summary>
89
  ///   Stream Cipher in Blockmode (on UInt32), very fast.
90
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
91
  /// </summary>
92
  TCipher_SCOP_DEC52    = class;
93
  /// <summary>
94
  ///   Stream Cipher, eq. design from German ENIGMA Machine
95
  /// </summary>
96
  TCipher_Sapphire      = class;
97
  /// <summary>
98
  ///   Single DES  8 byte Blocksize,  8 byte Keysize,  56 bits relevant.
99
  ///   Considered to be too weak nowadays. Included for compatibility reasons.
100
  /// </summary>
101
  TCipher_1DES          = class;
102
  /// <summary>
103
  ///   Double DES  8 byte Blocksize, 16 byte Keysize, 112 bits relevant
104
  /// </summary>
105
  TCipher_2DES          = class;
106
  /// <summary>
107
  ///   Triple DES  8 byte Blocksize, 24 byte Keysize, 168 bits relevant
108
  /// </summary>
109
  TCipher_3DES          = class;
110
  /// <summary>
111
  ///   Triple DES 16 byte Blocksize, 16 byte Keysize, 112 bits relevant
112
  /// </summary>
113
  TCipher_2DDES         = class;
114
  /// <summary>
115
  ///   Triple DES 16 byte Blocksize, 24 byte Keysize, 168 bits relevant
116
  /// </summary>
117
  TCipher_3DDES         = class;
118
  /// <summary>
119
  ///   Triple DES 24 byte Blocksize, 24 byte Keysize, 168 bits relevant
120
  /// </summary>
121
  TCipher_3TDES         = class;
122
  /// <summary>
123
  ///   A 1994 developed block cipher using a 96 bit key. 3-Way, is vulnerable
124
  ///   to related key cryptanalysis.
125
  /// </summary>
126
  TCipher_3Way          = class;
127
  /// <summary>
128
  ///   Carlisle Adams and Stafford Tavares, 128 bit key length
129
  /// </summary>
130
  TCipher_Cast128       = class;
131
  /// <summary>
132
  ///   Russian Cipher
133
  /// </summary>
134
  TCipher_Gost          = class;
135
  /// <summary>
136
  ///   Alias/new name for Gost cipher
137
  /// </summary>
138
  TCipher_Magma         = class;
139
  /// <summary>
140
  ///   Misty1 is a block cipher developed 1995 by Mitsubishi. It is free only for
141
  ///   academical and non-profit works in RFC 2994. it is otherwise patented.
142
  ///   In 2015 it got broken via integral cryptoanalysis.
143
  /// </summary>
144
  TCipher_Misty         = class;
145
  /// <summary>
146
  ///   A 1996 block cipher with a key length of 120 bit. It can be broken with
147
  ///   a relatively low number of ciphertext/plaintext queries.
148
  /// </summary>
149
  TCipher_NewDES        = class;
150
  /// <summary>
151
  ///   Camelia, a 128 bit block cipher.
152
  ///   Specification: https://info.isl.ntt.co.jp/crypt/eng/camellia/dl/01espec.pdf
153
  /// </summary>
154
  TCipher_Q128          = class;
155
  /// <summary>
156
  ///   Rivest Cipher 2, a 1987 developed cipher with a default keysize of 64 bit
157
  /// </summary>
158
  TCipher_RC2           = class;
159
  /// <summary>
160
  ///   Rivest Cipher 5, a 1994 developed cipher with emphasis on speed and low
161
  ///   size in order to make it efficient on embedded hardware as well. Key sizes
162
  ///   of up to 2048 bits are possible but 128 bits are suggested. The algorithm
163
  ///   was patented in the US up to 2015.
164
  /// </summary>
165
  TCipher_RC5           = class;
166
  /// <summary>
167
  ///   SAFER = Secure And Fast Encryption Routine
168
  /// </summary>
169
  TCipher_SAFER         = class;
170
  /// <summary>
171
  ///   A 1996 published block cipher with a key size of 128 bits. It was
172
  ///   identified as one of the predecessors of Rijndael
173
  /// </summary>
174
  TCipher_Shark         = class;
175
  /// <summary>
176
  ///   A 1996 published block cipher with a key size of 128 bits. It was
177
  ///   identified as one of the predecessors of Rijndael
178
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
179
  /// </summary>
180
  TCipher_Shark_DEC52   = class;
181
  /// <summary>
182
  ///   A NSA developed and 1998 published block cipher with a key length of
183
  ///   80 bit. Soon after publication various weaknesses have been identified.
184
  /// </summary>
185
  TCipher_Skipjack      = class;
186
  /// <summary>
187
  ///   Tiny Encryption Algorithm
188
  /// </summary>
189
  TCipher_TEA           = class;
190
  /// <summary>
191
  ///   Tiny Encryption Algorithm, 1st extended Version
192
  /// </summary>
193
  TCipher_XTEA          = class;
194
  /// <summary>
195
  ///   = TCipher_XTEA (kept for backward compatibility)
196
  /// </summary>
197
  TCipher_TEAN          = class;
198
  /// <summary>
199
  ///   Tiny Encryption Algorithm, 1st extended Version.
200
  ///   Wrong old version from DEC 5.2. Use only for backwards compatibility!
201
  /// </summary>
202
  TCipher_XTEA_DEC52    = class;
203
204
  // Definitions needed for Skipjack algorithm
205
  PSkipjackTab = ^TSkipjackTab;
206
  TSkipjackTab = array[0..255] of Byte;
207
208
  /// <summary>
209
  ///   A do nothing cipher, usefull for debugging and development purposes. Do
210
  ///   not use it for actual encryption as it will not encrypt anything at all!
211
  /// </summary>
212
  TCipher_Null = class(TDECFormattedCipher)
213
  protected
214
    procedure DoInit(const Key; Size: Integer); override;
215
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
216
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
217
  public
218
    /// <summary>
219
    ///   Provides meta data about the cipher algorithm used like key size.
220
    /// </summary>
221
    class function Context: TCipherContext; override;
222
  end;
223
224
  TCipher_Blowfish = class(TDECFormattedCipher)
225
  protected
226
    /// <summary>
227
    ///   Initialize the key, based on the key passed in
228
    /// </summary>
229
    /// <param name="Key">
230
    ///   Encryption/Decryption key to be used
231
    /// </param>
232
    /// <param name="Size">
233
    ///   Size of the key passed in bytes.
234
    /// </param>
235
    procedure DoInit(const Key; Size: Integer); override;
236
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
237
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
238
  public
239
    class function Context: TCipherContext; override;
240
  end;
241
242
  TCipher_Twofish = class(TDECFormattedCipher)
243
  protected
244
    /// <summary>
245
    ///   Initialize the key, based on the key passed in
246
    /// </summary>
247
    /// <param name="Key">
248
    ///   Encryption/Decryption key to be used
249
    /// </param>
250
    /// <param name="Size">
251
    ///   Size of the key passed in bytes.
252
    /// </param>
253
    procedure DoInit(const Key; Size: Integer); override;
254
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
255
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
256
  public
257
    class function Context: TCipherContext; override;
258
  end;
259
260
  TCipher_IDEA = class(TDECFormattedCipher)
261
  protected
262
    /// <summary>
263
    ///   Initialize the key, based on the key passed in
264
    /// </summary>
265
    /// <param name="Key">
266
    ///   Encryption/Decryption key to be used
267
    /// </param>
268
    /// <param name="Size">
269
    ///   Size of the key passed in bytes.
270
    /// </param>
271
    procedure DoInit(const Key; Size: Integer); override;
272
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
273
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
274
  public
275
    class function Context: TCipherContext; override;
276
  end;
277
278
  TCipher_Cast256 = class(TDECFormattedCipher)
279
  protected
280
    /// <summary>
281
    ///   Initialize the key, based on the key passed in
282
    /// </summary>
283
    /// <param name="Key">
284
    ///   Encryption/Decryption key to be used
285
    /// </param>
286
    /// <param name="Size">
287
    ///   Size of the key passed in bytes.
288
    /// </param>
289
    procedure DoInit(const Key; Size: Integer); override;
290
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
291
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
292
  public
293
    class function Context: TCipherContext; override;
294
  end;
295
296
  TCipher_Mars = class(TDECFormattedCipher)
297
  protected
298
    /// <summary>
299
    ///   Initialize the key, based on the key passed in
300
    /// </summary>
301
    /// <param name="Key">
302
    ///   Encryption/Decryption key to be used
303
    /// </param>
304
    /// <param name="Size">
305
    ///   Size of the key passed in bytes.
306
    /// </param>
307
    procedure DoInit(const Key; Size: Integer); override;
308
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
309
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
310
  public
311
    class function Context: TCipherContext; override;
312
  end;
313
314
  /// <summary>
315
  ///   This is a well known stream cipher. In February 2015 its use in context
316
  ///   of TLS has been forbidden due to severe security issues.
317
  /// </summary>
318
  TCipher_RC4 = class(TDECFormattedCipher)
319
  protected
320
    /// <summary>
321
    ///   Initialize the key, based on the key passed in
322
    /// </summary>
323
    /// <param name="Key">
324
    ///   Encryption/Decryption key to be used
325
    /// </param>
326
    /// <param name="Size">
327
    ///   Size of the key passed in bytes.
328
    /// </param>
329
    procedure DoInit(const Key; Size: Integer); override;
330
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
331
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
332
  public
333
    class function Context: TCipherContext; override;
334
  end;
335
336
  TCipher_RC6 = class(TDECFormattedCipher)
337
  private
338
    FRounds: Integer;
339
    procedure SetRounds(Value: Integer);
340
    /// <summary>
341
    ///   Limits the number of rounds used to a minimum or maximum value,
342
    ///   depending on the current value. If FRounds is 0 it will be set to 20.
343
    /// </summary>
344
    procedure LimitRounds; inline;
345
  protected
346
    /// <summary>
347
    ///   Initialize the key, based on the key passed in
348
    /// </summary>
349
    /// <param name="Key">
350
    ///   Encryption/Decryption key to be used
351
    /// </param>
352
    /// <param name="Size">
353
    ///   Size of the key passed in bytes.
354
    /// </param>
355
    procedure DoInit(const Key; Size: Integer); override;
356
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
357
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
358
  public
359
    class function Context: TCipherContext; override;
360
    /// <summary>
361
    ///   Sets the number of rounds/times the algorithm is being applied to the
362
    ///   data. Range should be 16-24 and default is 20 rounds.
363
    /// </summary>
364
    property Rounds: Integer read FRounds write SetRounds;
365
  end;
366
367
  TCipher_Rijndael = class(TDECFormattedCipher)
368
  private
369
    FRounds: Integer;
370
  protected
371
    /// <summary>
372
    ///   Initialize the key, based on the key passed in
373
    /// </summary>
374
    /// <param name="Key">
375
    ///   Encryption/Decryption key to be used
376
    /// </param>
377
    /// <param name="Size">
378
    ///   Size of the key passed in bytes.
379
    /// </param>
380
    procedure DoInit(const Key; Size: Integer); override;
381
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
382
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
383
  public
384
    class function Context: TCipherContext; override;
385
    /// <summary>
386
    ///   Gets the number of rounds/times the algorithm is being applied to the
387
    ///   data. The number of rounds depends on the key size.
388
    /// </summary>
389
    property Rounds: Integer read FRounds;
390
  end;
391
392
  TCipher_AES = class(TCipher_Rijndael);
393
394
  TCipher_Square = class(TDECFormattedCipher)
395
  protected
396
    /// <summary>
397
    ///   Initialize the key, based on the key passed in
398
    /// </summary>
399
    /// <param name="Key">
400
    ///   Encryption/Decryption key to be used
401
    /// </param>
402
    /// <param name="Size">
403
    ///   Size of the key passed in bytes.
404
    /// </param>
405
    procedure DoInit(const Key; Size: Integer); override;
406
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
407
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
408
  public
409
    class function Context: TCipherContext; override;
410
  end;
411
412
  TCipher_SCOP = class(TDECFormattedCipher)
413
  protected
414
    /// <summary>
415
    ///   Initialize the key, based on the key passed in
416
    /// </summary>
417
    /// <param name="Key">
418
    ///   Encryption/Decryption key to be used
419
    /// </param>
420
    /// <param name="Size">
421
    ///   Size of the key passed in bytes.
422
    /// </param>
423
    procedure DoInit(const Key; Size: Integer); override;
424
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
425
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
426
  public
427
    class function Context: TCipherContext; override;
428
  end;
429
430
  /// <remarks>
431
  ///   Do only use if backwards compatibility with old code is necessary as
432
  ///   this implementation is faulty!
433
  /// </remarks>
434
  TCipher_SCOP_DEC52 = class(TDECFormattedCipher)
435
  protected
436
    /// <summary>
437
    ///   Initialize the key, based on the key passed in
438
    /// </summary>
439
    /// <param name="Key">
440
    ///   Encryption/Decryption key to be used
441
    /// </param>
442
    /// <param name="Size">
443
    ///   Size of the key passed in bytes.
444
    /// </param>
445
    procedure DoInit(const Key; Size: Integer); override;
446
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
447
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
448
  public
449
    class function Context: TCipherContext; override;
450
  end;
451
452
  TCipher_Sapphire = class(TDECFormattedCipher)
453
  protected
454
    /// <summary>
455
    ///   Initialize the key, based on the key passed in
456
    /// </summary>
457
    /// <param name="Key">
458
    ///   Encryption/Decryption key to be used
459
    /// </param>
460
    /// <param name="Size">
461
    ///   Size of the key passed in bytes.
462
    /// </param>
463
    procedure DoInit(const Key; Size: Integer); override;
464
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
465
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
466
  public
467
    class function Context: TCipherContext; override;
468
  end;
469
470
  /// <summary>
471
  ///   Base class for all DES based ciphers to fix issues with calling
472
  ///   inherited in DoInit, as all other DES based classes did inherit from
473
  ///   TCipher_1DES and inherited called the DoInit of that as well...
474
  /// </summary>
475
  TCipher_DESBase = class(TDECFormattedCipher)
476
  strict protected
477
    /// <summary>
478
    ///   Initialize the key, based on the key passed in
479
    /// </summary>
480
    /// <param name="Data">
481
    ///   Key for the current block to be encrypted/decrypted?
482
    /// </param>
483
    /// <param name="Key">
484
    ///   Encryption/Decryption key to be used
485
    /// </param>
486
    /// <param name="Size">
487
    ///   Size of the key passed in bytes.
488
    /// </param>
489
    /// <param name="Reverse">
490
    ///   Defines whether some internal calculation needs to be based from the
491
    ///   start index or the highest index  (= reverse)
492
    /// </param>
493
    procedure DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean);
494
  end;
495
496
  TCipher_1DES = class(TCipher_DESBase)
497
  protected
498
    procedure DoInit(const Key; Size: Integer); override;
499
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
500
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
501
  public
502
    class function Context: TCipherContext; override;
503
  end;
504
505
  TCipher_2DES = class(TCipher_DESBase)
506
  protected
507
    /// <summary>
508
    ///   Initialize the key, based on the key passed in
509
    /// </summary>
510
    /// <param name="Key">
511
    ///   Encryption/Decryption key to be used
512
    /// </param>
513
    /// <param name="Size">
514
    ///   Size of the key passed in bytes.
515
    /// </param>
516
    procedure DoInit(const Key; Size: Integer); override;
517
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
518
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
519
  public
520
    class function Context: TCipherContext; override;
521
  end;
522
523
  TCipher_3DES = class(TCipher_DESBase)
524
  protected
525
    /// <summary>
526
    ///   Initialize the key, based on the key passed in
527
    /// </summary>
528
    /// <param name="Key">
529
    ///   Encryption/Decryption key to be used
530
    /// </param>
531
    /// <param name="Size">
532
    ///   Size of the key passed in bytes.
533
    /// </param>
534
    procedure DoInit(const Key; Size: Integer); override;
535
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
536
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
537
  public
538
    class function Context: TCipherContext; override;
539
  end;
540
541
  TCipher_2DDES = class(TCipher_2DES)
542
  protected
543
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
544
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
545
  public
546
    class function Context: TCipherContext; override;
547
  end;
548
549
  TCipher_3DDES = class(TCipher_3DES)
550
  protected
551
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
552
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
553
  public
554
    class function Context: TCipherContext; override;
555
  end;
556
557
  TCipher_3TDES = class(TCipher_3DES)
558
  protected
559
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
560
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
561
  public
562
    class function Context: TCipherContext; override;
563
  end;
564
565
  TCipher_3Way = class(TDECFormattedCipher)
566
  protected
567
    /// <summary>
568
    ///   Initialize the key, based on the key passed in
569
    /// </summary>
570
    /// <param name="Key">
571
    ///   Encryption/Decryption key to be used
572
    /// </param>
573
    /// <param name="Size">
574
    ///   Size of the key passed in bytes.
575
    /// </param>
576
    procedure DoInit(const Key; Size: Integer); override;
577
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
578
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
579
  public
580
    class function Context: TCipherContext; override;
581
  end;
582
583
  TCipher_Cast128 = class(TDECFormattedCipher)
584
  private
585
    FRounds: Integer;
586
  protected
587
    /// <summary>
588
    ///   Initialize the key, based on the key passed in
589
    /// </summary>
590
    /// <param name="Key">
591
    ///   Encryption/Decryption key to be used
592
    /// </param>
593
    /// <param name="Size">
594
    ///   Size of the key passed in bytes.
595
    /// </param>
596
    procedure DoInit(const Key; Size: Integer); override;
597
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
598
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
599
  public
600
    class function Context: TCipherContext; override;
601
  end;
602
603
  TCipher_Gost = class(TDECFormattedCipher)
604
  protected
605
    /// <summary>
606
    ///   Initialize the key, based on the key passed in
607
    /// </summary>
608
    /// <param name="Key">
609
    ///   Encryption/Decryption key to be used
610
    /// </param>
611
    /// <param name="Size">
612
    ///   Size of the key passed in bytes.
613
    /// </param>
614
    procedure DoInit(const Key; Size: Integer); override;
615
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
616
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
617
  public
618
    class function Context: TCipherContext; override;
619
  end;
620
621
  /// <summary>
622
  ///   Alias for Gost
623
  /// </summary>
624
  TCipher_Magma = class(TCipher_Gost);
625
626
  /// <summary>
627
  ///   Do no longer use this algorithm if possible, as it got broken in 2015
628
  ///   by crypto analysis.
629
  /// </summary>
630
  TCipher_Misty = class(TDECFormattedCipher)
631
  protected
632
    /// <summary>
633
    ///   Initialize the key, based on the key passed in
634
    /// </summary>
635
    /// <param name="Key">
636
    ///   Encryption/Decryption key to be used
637
    /// </param>
638
    /// <param name="Size">
639
    ///   Size of the key passed in bytes.
640
    /// </param>
641
    procedure DoInit(const Key; Size: Integer); override;
642
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
643
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
644
  public
645
    class function Context: TCipherContext; override;
646
  end;
647
648
  /// <summary>
649
  ///   While this algorithm resembles the Data Encryption Standard (DES),
650
  ///   it is easier to implement in software and is supposed to be more secure.
651
  ///   It is not to be confused with another algorithm - known by the same
652
  ///   name - which is simply DES without the initial and final permutations.
653
  ///   The NewDES here is a completely different algorithm.
654
  ///
655
  ///   Be aware though that recent crypto analysis shows that this algorithm is
656
  ///   less safe than DES and thus not to be recommended for use!
657
  /// </summary>
658
  TCipher_NewDES = class(TDECFormattedCipher)
659
  protected
660
    /// <summary>
661
    ///   Initialize the key, based on the key passed in
662
    /// </summary>
663
    /// <param name="Key">
664
    ///   Encryption/Decryption key to be used
665
    /// </param>
666
    /// <param name="Size">
667
    ///   Size of the key passed in bytes.
668
    /// </param>
669
    procedure DoInit(const Key; Size: Integer); override;
670
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
671
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
672
  public
673
    class function Context: TCipherContext; override;
674
  end;
675
676
  TCipher_Q128 = class(TDECFormattedCipher)
677
  protected
678
    /// <summary>
679
    ///   Initialize the key, based on the key passed in
680
    /// </summary>
681
    /// <param name="Key">
682
    ///   Encryption/Decryption key to be used
683
    /// </param>
684
    /// <param name="Size">
685
    ///   Size of the key passed in bytes.
686
    /// </param>
687
    procedure DoInit(const Key; Size: Integer); override;
688
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
689
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
690
  public
691
    class function Context: TCipherContext; override;
692
  end;
693
694
  TCipher_RC2 = class(TDECFormattedCipher)
695
  protected
696
    /// <summary>
697
    ///   Initialize the key, based on the key passed in
698
    /// </summary>
699
    /// <param name="Key">
700
    ///   Encryption/Decryption key to be used
701
    /// </param>
702
    /// <param name="Size">
703
    ///   Size of the key passed in bytes.
704
    /// </param>
705
    procedure DoInit(const Key; Size: Integer); override;
706
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
707
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
708
  public
709
    class function Context: TCipherContext; override;
710
  end;
711
712
  TCipher_RC5 = class(TDECFormattedCipher)
713
  private
714
    FRounds: Integer;
715
    procedure SetRounds(Value: Integer);
716
  protected
717
    /// <summary>
718
    ///   Initialize the key, based on the key passed in
719
    /// </summary>
720
    /// <param name="Key">
721
    ///   Encryption/Decryption key to be used
722
    /// </param>
723
    /// <param name="Size">
724
    ///   Size of the key passed in bytes.
725
    /// </param>
726
    procedure DoInit(const Key; Size: Integer); override;
727
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
728
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
729
  public
730
    class function Context: TCipherContext; override;
731
732
    /// <summary>
733
    ///   Sets the number of rounds/times the algorithm is being applied to the
734
    ///   data. Allowed range is 0-255, if you can choose we recommend a
735
    ///   value > 16.
736
    /// </summary>
737
    property Rounds: Integer read FRounds write SetRounds;
738
  end;
739
740
  /// <summary>
741
  ///  svK40     SAFER K-40    Keysize is 40bit  ->  5 Byte
742
  ///  svK64     SAFER K-64    Keysize is 64bit  ->  8 Byte
743
  ///  svK128    SAFER K-128   KeySize is 128bit -> 16 Byte
744
  ///  svSK40    SAFER SK-40   Stronger Version from K-40 with better Key Scheduling
745
  ///  svSK64    SAFER SK-64   Stronger Version from K-64 with better Key Scheduling
746
  ///  svSK128   SAFER SK-128  Stronger Version from K-128 with better Key Scheduling
747
  /// </summary>
748
  TSAFERVersion = (svSK128, svSK64, svSK40, svK128, svK64, svK40);
749
750
  TCipher_SAFER = class(TDECFormattedCipher)
751
  private
752
    FRounds: Integer;
753
    FVersion: TSAFERVersion;
754
    procedure SetRounds(Value: Integer);
755
    procedure SetVersion(Value: TSAFERVersion);
756
  protected
757
    /// <summary>
758
    ///   Initialize the key, based on the key passed in
759
    /// </summary>
760
    /// <param name="Key">
761
    ///   Encryption/Decryption key to be used
762
    /// </param>
763
    /// <param name="Size">
764
    ///   Size of the key passed in bytes.
765
    /// </param>
766
    procedure DoInit(const Key; Size: Integer); override;
767
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
768
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
769
  public
770
    class function Context: TCipherContext; override;
771
772
    /// <summary>
773
    ///   Sets the number of rounds/times the algorithm is being applied to the
774
    ///   data. Range should be 4-13 and default is 5, 6, 10 or 8 rounds
775
    ///   depending on the version
776
    /// </summary>
777
    property Rounds: Integer read FRounds write SetRounds;
778
    property Version: TSAFERVersion read FVersion write SetVersion;
779
  end;
780
781
  {$IFNDEF CPU64BITS}
782
  PLong64 = ^TLong64;
783
  TLong64  = packed record
784
    L, R: UInt32;
785
  end;
786
787
  PLong64Array = ^TLong64Array;
788
  TLong64Array = array[0..1023] of TLong64;
789
  {$ENDIF}
790
791
  TLogArray = array[0..255] of Byte;
792
793
  /// <summary>
794
  ///   Base class for both Shark implementations
795
  /// </summary>
796
  TCipher_SharkBase = class(TDECFormattedCipher)
797
  strict protected
798
    {$IFNDEF CPU64BITS}
799
    function Transform(A: TLong64; Log, ALog: TLogArray): TLong64;
800
    function Shark(D: TLong64; K: PLong64): TLong64;
801
    {$ELSE}
802
    function Transform(A: UInt64; Log, ALog: TLogArray): UInt64;
803
    function SharkEncode(D: UInt64; K: PUInt64): UInt64;
804
    {$ENDIF}
805
806
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
807
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
808
  public
809
    class function Context: TCipherContext; override;
810
  end;
811
812
  TCipher_Shark = class(TCipher_SharkBase)
813
  protected
814
    /// <summary>
815
    ///   Initialize the key, based on the key passed in
816
    /// </summary>
817
    /// <param name="Key">
818
    ///   Encryption/Decryption key to be used
819
    /// </param>
820
    /// <param name="Size">
821
    ///   Size of the key passed in bytes.
822
    /// </param>
823
    procedure DoInit(const Key; Size: Integer); override;
824
  public
825
826
  end;
827
828
  /// <remarks>
829
  ///   Do only use if backwards compatibility with old code is necessary as
830
  ///   this implementation is faulty!
831
  /// </remarks>
832
  TCipher_Shark_DEC52 = class(TCipher_SharkBase)
833
  protected
834
    /// <summary>
835
    ///   Initialize the key, based on the key passed in
836
    /// </summary>
837
    /// <param name="Key">
838
    ///   Encryption/Decryption key to be used
839
    /// </param>
840
    /// <param name="Size">
841
    ///   Size of the key passed in bytes.
842
    /// </param>
843
    procedure DoInit(const Key; Size: Integer); override;
844
  end;
845
846
  TCipher_Skipjack = class(TDECFormattedCipher)
847
  strict private
848
    procedure SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte); inline;
849
    procedure SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab); inline;
850
  protected
851
    /// <summary>
852
    ///   Initialize the key, based on the key passed in
853
    /// </summary>
854
    /// <param name="Key">
855
    ///   Encryption/Decryption key to be used
856
    /// </param>
857
    /// <param name="Size">
858
    ///   Size of the key passed in bytes.
859
    /// </param>
860
    procedure DoInit(const Key; Size: Integer); override;
861
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
862
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
863
  public
864
    class function Context: TCipherContext; override;
865
  end;
866
867
  TCipher_TEA = class(TDECFormattedCipher)
868
  private
869
    FRounds: Integer;
870
    procedure SetRounds(Value: Integer);
871
  protected
872
    /// <summary>
873
    ///   Initialize the key, based on the key passed in
874
    /// </summary>
875
    /// <param name="Key">
876
    ///   Encryption/Decryption key to be used
877
    /// </param>
878
    /// <param name="Size">
879
    ///   Size of the key passed in bytes.
880
    /// </param>
881
    procedure DoInit(const Key; Size: Integer); override;
882
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
883
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
884
  public
885
    class function Context: TCipherContext; override;
886
887
    /// <summary>
888
    ///   16 - 256 Rounds, 16 (default) is sufficient, 64 is the official
889
    ///   recommendation. If a value outside the range of 16 to 256 is assigned
890
    ///   it will be limited to that range.
891
    /// </summary>
892
    property Rounds: Integer read FRounds write SetRounds;
893
  end;
894
895
  /// <summary>
896
  ///   XTEA is an improved version of the TEA algorithm.
897
  /// </summary>
898
  /// <remarks>
899
  ///   In DEC V5.2 at least and in former commits of DEC 6.0 development version
900
  ///   this algorithm was broken due to differences in brackets and thus returned
901
  ///   a different result. It is unclear why nobody reported this as bug yet
902
  ///   but be aware that if you need the old variant for compatibility reasons
903
  ///   you need a commit from before 3rd December 2020.
904
  /// </remarks>
905
  TCipher_XTEA = class(TCipher_TEA)
906
  protected
907
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
908
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
909
  end;
910
911
  TCipher_TEAN = class(TCipher_XTEA);
912
913
  /// <summary>
914
  ///   XTEA is an improved version of the TEA algorithm. This version is the
915
  ///   old faulty one from DEC 5.2. Use only if necessary for compatibility
916
  ///    reasons!
917
  /// </summary>
918
  /// <remarks>
919
  ///   In DEC V5.2 at least and in former commits of DEC 6.0 development version
920
  ///   this algorithm was broken due to differences in brackets and thus returned
921
  ///   a different result. It is unclear why nobody reported this as bug yet
922
  ///   but be aware that if you need the old variant for compatibility reasons
923
  ///   you need a commit from before 3rd December 2020.
924
  /// </remarks>
925
  TCipher_XTEA_DEC52 = class(TCipher_TEA)
926
  protected
927
    procedure DoEncode(Source, Dest: Pointer; Size: Integer); override;
928
    procedure DoDecode(Source, Dest: Pointer; Size: Integer); override;
929
  end;
930
931
implementation
932
933
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
934
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
935
936
uses
937
  {$IFDEF FPC}
938
  SysUtils,
939
  {$ELSE}
940
  System.SysUtils,
941
  {$ENDIF}
942
  DECData, DECDataCipher;
943
944
{ TCipher_Null }
945
946
class function TCipher_Null.Context: TCipherContext;
947
begin
948
  Result.KeySize                     := 0;
949
  Result.BlockSize                   := 1;
950
  Result.BufferSize                  := 8;
951
  Result.AdditionalBufferSize        := 0;
952
  Result.NeedsAdditionalBufferBackup := False;
953
  Result.MinRounds                   := 1;
954
  Result.MaxRounds                   := 1;
955
  Result.CipherType                  := [ctNull, ctSymmetric];
956
end;
957
958
procedure TCipher_Null.DoInit(const Key; Size: Integer);
959
begin
960
  inherited;
961
end;
962
963
procedure TCipher_Null.DoEncode(Source, Dest: Pointer; Size: Integer);
964
begin
965
  if Source <> Dest then
966
    Move(Source^, Dest^, Size);
967
end;
968
969
procedure TCipher_Null.DoDecode(Source, Dest: Pointer; Size: Integer);
970
begin
971
  if Source <> Dest then
972
    Move(Source^, Dest^, Size);
973
end;
974
975
{ TCipher_Blowfish }
976
977
type
978
  PBlowfish = ^TBlowfish;
979
  TBlowfish = array[0..3, 0..255] of UInt32;
980
981
class function TCipher_Blowfish.Context: TCipherContext;
982
begin
983
  Result.KeySize                     := 56;
984
  Result.BufferSize                  := 8;
985
  Result.BlockSize                   := 8;
986
  Result.AdditionalBufferSize        := SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key);
987
  Result.NeedsAdditionalBufferBackup := False;
988
  Result.MinRounds                   := 1;
989
  Result.MaxRounds                   := 1;
990
  Result.CipherType := [ctSymmetric, ctBlock];
991
end;
992
993
procedure TCipher_Blowfish.DoInit(const Key; Size: Integer);
994
var
995
  I, J: Integer;
996
  B: array[0..1] of UInt32;
997
  K: PByteArray;
998
  P: PUInt32Array;
999
  S: PBlowfish;
1000
begin
1001
  K := @Key;
1002
  S := FAdditionalBuffer;
1003
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math
1004
1005
  Move(Blowfish_Data, S^, SizeOf(Blowfish_Data));
1006
  Move(Blowfish_Key, P^, Sizeof(Blowfish_Key));
1007
  J := 0;
1008
  if Size > 0 then
1009
    for I := 0 to 17 do
1010
    begin
1011
      P[I] := P[I] xor (K[(J + 0) mod Size] shl 24 +
1012
                        K[(J + 1) mod Size] shl 16 +
1013
                        K[(J + 2) mod Size] shl  8 +
1014
                        K[(J + 3) mod Size] shl  0);
1015
      J := (J + 4) mod Size;
1016
    end;
1017
  FillChar(B, SizeOf(B), 0);
1018
1019
  for I := 0 to 8 do
1020
  begin
1021
    DoEncode(@B, @B, SizeOf(B));
1022
    P[I * 2 + 0] := SwapUInt32(B[0]);
1023
    P[I * 2 + 1] := SwapUInt32(B[1]);
1024
  end;
1025
  for I := 0 to 3 do
1026
    for J := 0 to 127 do
1027
    begin
1028
      DoEncode(@B, @B, SizeOf(B));
1029
      S[I, J * 2 + 0] := SwapUInt32(B[0]);
1030
      S[I, J * 2 + 1] := SwapUInt32(B[1]);
1031
    end;
1032
  FillChar(B, SizeOf(B), 0);
1033
1034
  inherited;
1035
end;
1036
1037
procedure TCipher_Blowfish.DoEncode(Source, Dest: Pointer; Size: Integer);
1038
{$IFDEF X86ASM}
1039
// Source = EDX, Dest = ECX, Size on Stack
1040
asm
1041
        PUSH   EDI
1042
        PUSH   ESI
1043
        PUSH   EBX
1044
        PUSH   EBP
1045
        PUSH   ECX
1046
        MOV    ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer
1047
        MOV    EBX,[EDX + 0]     // A
1048
        MOV    EBP,[EDX + 4]     // B
1049
        BSWAP  EBX               // CPU >= 486
1050
        BSWAP  EBP
1051
        XOR    EBX,[ESI + 4 * 256 * 4]
1052
        XOR    EDI,EDI
1053
@@1:    MOV    EAX,EBX
1054
        SHR    EBX,16
1055
        MOVZX  ECX,BH
1056
        AND    EBX,0FFh
1057
        MOV    ECX,[ESI + ECX * 4 + 1024 * 0]
1058
        MOV    EBX,[ESI + EBX * 4 + 1024 * 1]
1059
        MOVZX  EDX,AH
1060
        ADD    EBX,ECX
1061
        MOVZX  ECX,AL
1062
        MOV    EDX,[ESI + EDX * 4 + 1024 * 2]
1063
        MOV    ECX,[ESI + ECX * 4 + 1024 * 3]
1064
        XOR    EBX,EDX
1065
        XOR    EBP,[ESI + 4 * 256 * 4 + 4 + EDI * 4]
1066
        ADD    EBX,ECX
1067
        INC    EDI
1068
        XOR    EBX,EBP
1069
        TEST   EDI,010h
1070
        MOV    EBP,EAX
1071
        JZ     @@1
1072
        POP    EAX
1073
        XOR    EBP,[ESI + 4 * 256 * 4 + 17 * 4]
1074
        BSWAP  EBX
1075
        BSWAP  EBP
1076
        MOV    [EAX + 4],EBX
1077
        MOV    [EAX + 0],EBP
1078
        POP    EBP
1079
        POP    EBX
1080
        POP    ESI
1081
        POP    EDI
1082
end;
1083
{$ELSE !X86ASM}
1084
var
1085
  I, A, B: UInt32;
1086
  P: PUInt32Array;
1087
  D: PBlowfish;
1088
begin
1089
  Assert(Size = Context.BlockSize, 'Size of ' + IntToStr(Size) + ' does not equal '+
1090
                                   'block size of ' + IntToStr(Context.BlockSize));
1091
1092
  D := Pointer(FAdditionalBuffer);
1093
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data)); // for Pointer Math
1094
  A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0]; P := @P[1];
1095
  B := SwapUInt32(PUInt32Array(Source)[1]);
1096
  for I := 0 to 7 do
1097
  begin
1098
    B := B xor P[0] xor (D[0, A shr 24        ] +
1099
                         D[1, A shr 16 and $FF] xor
1100
                         D[2, A shr  8 and $FF] +
1101
                         D[3, A        and $FF]);
1102
1103
    A := A xor P[1] xor (D[0, B shr 24        ] +
1104
                         D[1, B shr 16 and $FF] xor
1105
                         D[2, B shr  8 and $FF] +
1106
                         D[3, B        and $FF]);
1107
    P := @P[2];
1108
  end;
1109
  PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]);
1110
  PUInt32Array(Dest)[1] := SwapUInt32(A);
1111
end;
1112
{$ENDIF !X86ASM}
1113
1114
procedure TCipher_Blowfish.DoDecode(Source, Dest: Pointer; Size: Integer);
1115
{$IFDEF X86ASM}
1116
asm
1117
        PUSH   EDI
1118
        PUSH   ESI
1119
        PUSH   EBX
1120
        PUSH   EBP
1121
        PUSH   ECX
1122
        MOV    ESI,[EAX].TCipher_Blowfish.FAdditionalBuffer
1123
        MOV    EBX,[EDX + 0]     // A
1124
        MOV    EBP,[EDX + 4]     // B
1125
        BSWAP  EBX
1126
        BSWAP  EBP
1127
        XOR    EBX,[ESI + 4 * 256 * 4 + 17 * 4]
1128
        MOV    EDI,16
1129
@@1:    MOV    EAX,EBX
1130
        SHR    EBX,16
1131
        MOVZX  ECX,BH
1132
        MOVZX  EDX,BL
1133
        MOV    EBX,[ESI + ECX * 4 + 1024 * 0]
1134
        MOV    EDX,[ESI + EDX * 4 + 1024 * 1]
1135
        MOVZX  ECX,AH
1136
        LEA    EBX,[EBX + EDX]
1137
        MOVZX  EDX,AL
1138
        MOV    ECX,[ESI + ECX * 4 + 1024 * 2]
1139
        MOV    EDX,[ESI + EDX * 4 + 1024 * 3]
1140
        XOR    EBX,ECX
1141
        XOR    EBP,[ESI + 4 * 256 * 4 + EDI * 4]
1142
        LEA    EBX,[EBX + EDX]
1143
        XOR    EBX,EBP
1144
        DEC    EDI
1145
        MOV    EBP,EAX
1146
        JNZ    @@1
1147
        POP    EAX
1148
        XOR    EBP,[ESI + 4 * 256 * 4]
1149
        BSWAP  EBX
1150
        BSWAP  EBP
1151
        MOV    [EAX + 0],EBP
1152
        MOV    [EAX + 4],EBX
1153
        POP    EBP
1154
        POP    EBX
1155
        POP    ESI
1156
        POP    EDI
1157
end;
1158
{$ELSE !X86ASM}
1159
var
1160
  I, A, B: UInt32;
1161
  P: PUInt32Array;
1162
  D: PBlowfish;
1163
begin
1164
  Assert(Size = Context.BlockSize);
1165
1166
  D := Pointer(FAdditionalBuffer);
1167
  P := Pointer(PByte(FAdditionalBuffer) + SizeOf(Blowfish_Data) + SizeOf(Blowfish_Key) - SizeOf(Int32));
1168
  A := SwapUInt32(PUInt32Array(Source)[0]) xor P[0];
1169
  B := SwapUInt32(PUInt32Array(Source)[1]);
1170
  for I := 0 to 7 do
1171
  begin
1172
    Dec(PUInt32(P), 2);
1173
    B := B xor P[1] xor (D[0, A shr 24        ] +
1174
                         D[1, A shr 16 and $FF] xor
1175
                         D[2, A shr  8 and $FF] +
1176
                         D[3, A        and $FF]);
1177
    A := A xor P[0] xor (D[0, B shr 24        ] +
1178
                         D[1, B shr 16 and $FF] xor
1179
                         D[2, B shr  8 and $FF] +
1180
                         D[3, B        and $FF]);
1181
  end;
1182
  Dec(PUInt32(P));
1183
  PUInt32Array(Dest)[0] := SwapUInt32(B xor P[0]);
1184
  PUInt32Array(Dest)[1] := SwapUInt32(A);
1185
end;
1186
{$ENDIF !X86ASM}
1187
1188
{ TCipher_Twofish }
1189
1190
type
1191
  PTwofishBox = ^TTwofishBox;
1192
  TTwofishBox = array[0..3, 0..255] of UInt32;
1193
1194
  TLongRec = record
1195
    case Integer of
1196
      0: (L: UInt32);
1197
      1: (A, B, C, D: Byte);
1198
    end;
1199
1200
class function TCipher_Twofish.Context: TCipherContext;
1201
begin
1202
  Result.KeySize                     := 32;
1203
  Result.BufferSize                  := 16;
1204
  Result.BlockSize                   := 16;
1205
  Result.AdditionalBufferSize        := 4256;
1206
  Result.NeedsAdditionalBufferBackup := False;
1207
  Result.MinRounds                   := 1;
1208
  Result.MaxRounds                   := 1;
1209
  Result.CipherType                  := [ctSymmetric, ctBlock];
1210
end;
1211
1212
procedure TCipher_Twofish.DoInit(const Key; Size: Integer);
1213
var
1214
  BoxKey: array[0..3] of TLongRec;
1215
  SubKey: PUInt32Array;
1216
  Box: PTwofishBox;
1217
1218
  procedure SetupKey;
1219
1220
    function Encode(K0, K1: Integer): Integer;
1221
    var
1222
      R, I, J, G2, G3: Integer;
1223
      B: byte;
1224
    begin
1225
      R := 0;
1226
      for I := 0 to 1 do
1227
      begin
1228
        if I <> 0 then
1229
          R := R xor K0
1230
        else
1231
          R := R xor K1;
1232
        for J := 0 to 3 do
1233
        begin
1234
          B := R shr 24;
1235
          if B and $80 <> 0 then
1236
            G2 := (B shl 1 xor $014D) and $FF
1237
          else
1238
            G2 := B shl 1 and $FF;
1239
          if B and 1 <> 0 then
1240
            G3 := (B shr 1 and $7F) xor $014D shr 1 xor G2
1241
          else
1242
            G3 := (B shr 1 and $7F) xor G2;
1243
          R := R shl 8 xor G3 shl 24 xor G2 shl 16 xor G3 shl 8 xor B;
1244
        end;
1245
      end;
1246
      Result := R;
1247
    end;
1248
1249
    function F32(X: Integer; K: array of Integer): Integer;
1250
    var
1251
      A, B, C, D: UInt32;
1252
    begin
1253
      A := X        and $FF;
1254
      B := X shr  8 and $FF;
1255
      C := X shr 16 and $FF;
1256
      D := X shr 24;
1257
      if Size = 32 then
1258
      begin
1259
        A := Twofish_8x8[1, A] xor K[3]        and $FF;
1260
        B := Twofish_8x8[0, B] xor K[3] shr  8 and $FF;
1261
        C := Twofish_8x8[0, C] xor K[3] shr 16 and $FF;
1262
        D := Twofish_8x8[1, D] xor K[3] shr 24;
1263
      end;
1264
      if Size >= 24 then
1265
      begin
1266
        A := Twofish_8x8[1, A] xor K[2]        and $FF;
1267
        B := Twofish_8x8[1, B] xor K[2] shr  8 and $FF;
1268
        C := Twofish_8x8[0, C] xor K[2] shr 16 and $FF;
1269
        D := Twofish_8x8[0, D] xor K[2] shr 24;
1270
      end;
1271
      A := Twofish_8x8[0, A] xor K[1]        and $FF;
1272
      B := Twofish_8x8[1, B] xor K[1] shr  8 and $FF;
1273
      C := Twofish_8x8[0, C] xor K[1] shr 16 and $FF;
1274
      D := Twofish_8x8[1, D] xor K[1] shr 24;
1275
1276
      A := Twofish_8x8[0, A] xor K[0]        and $FF;
1277
      B := Twofish_8x8[0, B] xor K[0] shr  8 and $FF;
1278
      C := Twofish_8x8[1, C] xor K[0] shr 16 and $FF;
1279
      D := Twofish_8x8[1, D] xor K[0] shr 24;
1280
1281
      Result := Twofish_Data[0, A] xor Twofish_Data[1, B] xor
1282
                Twofish_Data[2, C] xor Twofish_Data[3, D];
1283
    end;
1284
1285
  var
1286
    I, J, A, B: Integer;
1287
    E, O: array[0..3] of Integer;
1288
    K: array[0..7] of Integer;
1289
  begin
1290
    FillChar(K, SizeOf(K), 0);
1291
    Move(Key, K, Size);
1292
    if Size <= 16 then
1293
      Size := 16
1294
    else
1295
    if Size <= 24 then
1296
      Size := 24
1297
    else
1298
      Size := 32;
1299
    J := Size shr 3 - 1;
1300
    for I := 0 to J do
1301
    begin
1302
      E[I] := K[I shl 1];
1303
      O[I] := K[I shl 1 + 1];
1304
      BoxKey[J].L := Encode(E[I], O[I]);
1305
      Dec(J);
1306
    end;
1307
    J := 0;
1308
    for I := 0 to 19 do
1309
    begin
1310
      A := F32(J, E);
1311
      B := F32(J + $01010101, O);
1312
      B := B shl 8 or B shr 24;
1313
      SubKey[I shl 1] := A + B;
1314
      B := A + B shl 1;     // here buggy instead shr 1 it's correct shl 1
1315
      SubKey[I shl 1 + 1] := B shl 9 or B shr 23;
1316
      Inc(J, $02020202);
1317
    end;
1318
  end;
1319
1320
  procedure DoXOR(D, S: PUInt32Array; Value: UInt32);
1321
  var
1322
    I: UInt32;
1323
  begin
1324
    Value := (Value and $FF) * $01010101;
1325
    for I := 0 to 63 do
1326
      D[I] := S[I] xor Value;
1327
  end;
1328
1329
  procedure SetupBox128;
1330
  var
1331
    L: array[0..255] of Byte;
1332
    A, I: Integer;
1333
  begin
1334
    DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L);
1335
    A := BoxKey[0].A;
1336
    for I := 0 to 255 do
1337
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, L[I]] xor A];
1338
    DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 8);
1339
    A := BoxKey[0].B;
1340
    for I := 0 to 255 do
1341
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, L[I]] xor A];
1342
    DoXOR(@L, @Twofish_8x8[0], BoxKey[1].L shr 16);
1343
    A := BoxKey[0].C;
1344
    for I := 0 to 255 do
1345
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, L[I]] xor A];
1346
    DoXOR(@L, @Twofish_8x8[1], BoxKey[1].L shr 24);
1347
    A := BoxKey[0].D;
1348
    for I := 0 to 255 do
1349
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, L[I]] xor A];
1350
  end;
1351
1352
  procedure SetupBox192;
1353
  var
1354
    L: array[0..255] of Byte;
1355
    A, B, I: Integer;
1356
  begin
1357
    DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L);
1358
    A := BoxKey[0].A;
1359
    B := BoxKey[1].A;
1360
    for I := 0 to 255 do
1361
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A];
1362
    DoXOR(@L, @Twofish_8x8[1], BoxKey[2].L shr 8);
1363
    A := BoxKey[0].B;
1364
    B := BoxKey[1].B;
1365
    for I := 0 to 255 do
1366
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A];
1367
    DoXOR(@L, @Twofish_8x8[0], BoxKey[2].L shr 16);
1368
    A := BoxKey[0].C;
1369
    B := BoxKey[1].C;
1370
    for I := 0 to 255 do
1371
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A];
1372
    DoXOR(@L ,@Twofish_8x8[0], BoxKey[2].L shr 24);
1373
    A := BoxKey[0].D;
1374
    B := BoxKey[1].D;
1375
    for I := 0 to 255 do
1376
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A];
1377
  end;
1378
1379
  procedure SetupBox256;
1380
  var
1381
    L: array[0..255] of Byte;
1382
    K: array[0..255] of Byte;
1383
    A, B, I: Integer;
1384
  begin
1385
    DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L);
1386
    for I := 0 to 255 do
1387
      L[I] := Twofish_8x8[1, K[I]];
1388
    DoXOR(@L, @L, BoxKey[2].L);
1389
    A := BoxKey[0].A;
1390
    B := BoxKey[1].A;
1391
    for I := 0 to 255 do
1392
      Box[0, I] := Twofish_Data[0, Twofish_8x8[0, Twofish_8x8[0, L[I]] xor B] xor A];
1393
    DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 8);
1394
    for I := 0 to 255 do
1395
      L[I] := Twofish_8x8[1, K[I]];
1396
    DoXOR(@L, @L, BoxKey[2].L shr 8);
1397
    A := BoxKey[0].B;
1398
    B := BoxKey[1].B;
1399
    for I := 0 to 255 do
1400
      Box[1, I] := Twofish_Data[1, Twofish_8x8[0, Twofish_8x8[1, L[I]] xor B] xor A];
1401
    DoXOR(@K, @Twofish_8x8[0], BoxKey[3].L shr 16);
1402
    for I := 0 to 255 do
1403
      L[I] := Twofish_8x8[0, K[I]];
1404
    DoXOR(@L, @L, BoxKey[2].L shr 16);
1405
    A := BoxKey[0].C;
1406
    B := BoxKey[1].C;
1407
    for I := 0 to 255 do
1408
      Box[2, I] := Twofish_Data[2, Twofish_8x8[1, Twofish_8x8[0, L[I]] xor B] xor A];
1409
    DoXOR(@K, @Twofish_8x8[1], BoxKey[3].L shr 24);
1410
    for I := 0 to 255 do
1411
      L[I] := Twofish_8x8[0, K[I]];
1412
    DoXOR(@L, @L, BoxKey[2].L shr 24);
1413
    A := BoxKey[0].D;
1414
    B := BoxKey[1].D;
1415
    for I := 0 to 255 do
1416
      Box[3, I] := Twofish_Data[3, Twofish_8x8[1, Twofish_8x8[1, L[I]] xor B] xor A];
1417
  end;
1418
1419
begin
1420
  SubKey := FAdditionalBuffer;
1421
  Box    := @SubKey[40];
1422
  SetupKey;
1423
  if Size = 16 then
1424
    SetupBox128
1425
  else
1426
  if Size = 24 then
1427
    SetupBox192
1428
  else
1429
    SetupBox256;
1430
1431
  inherited;
1432
end;
1433
1434
procedure TCipher_Twofish.DoEncode(Source, Dest: Pointer; Size: Integer);
1435
var
1436
  S: PUInt32Array;
1437
  Box: PTwofishBox;
1438
  I, X, Y: UInt32;
1439
  A, B, C, D: TLongRec;
1440
begin
1441
  Assert(Size = Context.BlockSize);
1442
1443
  S   := FAdditionalBuffer;
1444
  A.L := PUInt32Array(Source)[0] xor S[0];
1445
  B.L := PUInt32Array(Source)[1] xor S[1];
1446
  C.L := PUInt32Array(Source)[2] xor S[2];
1447
  D.L := PUInt32Array(Source)[3] xor S[3];
1448
1449
  Box := @S[40];
1450
  S   := @S[8];
1451
  for I := 0 to 7 do
1452
  begin
1453
    X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D];
1454
    Y := Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C] xor Box[0, B.D];
1455
    D.L := D.L shl 1 or D.L shr 31;
1456
    C.L := C.L xor (X + Y       + S[0]);
1457
    D.L := D.L xor (X + Y shl 1 + S[1]);
1458
    C.L := C.L shr 1 or C.L shl 31;
1459
1460
    X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D];
1461
    Y := Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C] xor Box[0, D.D];
1462
    B.L := B.L shl 1 or B.L shr 31;
1463
    A.L := A.L xor (X + Y       + S[2]);
1464
    B.L := B.L xor (X + Y shl 1 + S[3]);
1465
    A.L := A.L shr 1 or A.L shl 31;
1466
1467
    S := @S[4];
1468
  end;
1469
  S := FAdditionalBuffer;
1470
  PUInt32Array(Dest)[0] := C.L xor S[4];
1471
  PUInt32Array(Dest)[1] := D.L xor S[5];
1472
  PUInt32Array(Dest)[2] := A.L xor S[6];
1473
  PUInt32Array(Dest)[3] := B.L xor S[7];
1474
end;
1475
1476
procedure TCipher_Twofish.DoDecode(Source, Dest: Pointer; Size: Integer);
1477
var
1478
  S: PUInt32Array;
1479
  Box: PTwofishBox;
1480
  I, X, Y: UInt32;
1481
  A, B, C, D: TLongRec;
1482
begin
1483
  Assert(Size = Context.BlockSize);
1484
1485
  S := FAdditionalBuffer;
1486
  Box := @S[40];
1487
  C.L := PUInt32Array(Source)[0] xor S[4];
1488
  D.L := PUInt32Array(Source)[1] xor S[5];
1489
  A.L := PUInt32Array(Source)[2] xor S[6];
1490
  B.L := PUInt32Array(Source)[3] xor S[7];
1491
  S := @S[36];
1492
  for I := 0 to 7 do
1493
  begin
1494
    X := Box[0, C.A] xor Box[1, C.B] xor Box[2, C.C] xor Box[3, C.D];
1495
    Y := Box[0, D.D] xor Box[1, D.A] xor Box[2, D.B] xor Box[3, D.C];
1496
    A.L := A.L shl 1 or A.L shr 31;
1497
    B.L := B.L xor (X + Y shl 1 + S[3]);
1498
    A.L := A.L xor (X + Y       + S[2]);
1499
    B.L := B.L shr 1 or B.L shl 31;
1500
1501
    X := Box[0, A.A] xor Box[1, A.B] xor Box[2, A.C] xor Box[3, A.D];
1502
    Y := Box[0, B.D] xor Box[1, B.A] xor Box[2, B.B] xor Box[3, B.C];
1503
    C.L := C.L shl 1 or C.L shr 31;
1504
    D.L := D.L xor (X + Y shl 1 + S[1]);
1505
    C.L := C.L xor (X + Y       + S[0]);
1506
    D.L := D.L shr 1 or D.L shl 31;
1507
1508
    Dec(PUInt32(S), 4);
1509
  end;
1510
  S := FAdditionalBuffer;
1511
  PUInt32Array(Dest)[0] := A.L xor S[0];
1512
  PUInt32Array(Dest)[1] := B.L xor S[1];
1513
  PUInt32Array(Dest)[2] := C.L xor S[2];
1514
  PUInt32Array(Dest)[3] := D.L xor S[3];
1515
end;
1516
1517
{ TCipher_IDEA }
1518
1519
class function TCipher_IDEA.Context: TCipherContext;
1520
begin
1521
  Result.KeySize                     := 16;
1522
  Result.BufferSize                  := 8;
1523
  Result.BlockSize                   := 8;
1524
  Result.AdditionalBufferSize        := 208;
1525
  Result.NeedsAdditionalBufferBackup := False;
1526
  Result.MinRounds                   := 1;
1527
  Result.MaxRounds                   := 1;
1528
  Result.CipherType := [ctSymmetric, ctBlock];
1529
end;
1530
1531
procedure TCipher_IDEA.DoInit(const Key; Size: Integer);
1532
1533
  function IDEAInv(X: Word): Word;
1534
  var
1535
    A, B, C, D: Word;
1536
  begin
1537
    if X <= 1 then
1538
    begin
1539
      Result := X;
1540
      Exit;
1541
    end;
1542
    A := 1;
1543
    B := $10001 div X;
1544
    C := $10001 mod X;
1545
    while C <> 1 do
1546
    begin
1547
      D := X div C;
1548
      X := X mod C;
1549
      Inc(A, B * D);
1550
      if X = 1 then
1551
      begin
1552
        Result := A;
1553
        Exit;
1554
      end;
1555
      D := C div X;
1556
      C := C mod X;
1557
      Inc(B, A * D);
1558
    end;
1559
    Result := 1 - B;
1560
  end;
1561
1562
var
1563
  I: Integer;
1564
  E: PWordArray;
1565
  A, B, C: Word;
1566
  K, D: PWordArray;
1567
begin
1568
  E := FAdditionalBuffer;
1569
  Move(Key, E^, Size);
1570
  for I := 0 to 7 do
1571
    E[I] := Swap(E[I]);
1572
  for I := 0 to 39 do
1573
    E[I + 8] := E[I and not 7 + (I + 1) and 7] shl 9 or
1574
                E[I and not 7 + (I + 2) and 7] shr 7;
1575
  for I := 41 to 44 do
1576
    E[I + 7] := E[I] shl 9 or E[I + 1] shr 7;
1577
  K  := E;
1578
  D  := @E[100];
1579
  A  := IDEAInv(K[0]);
1580
  B  := 0 - K[1];
1581
  C  := 0 - K[2];
1582
  D[3] := IDEAInv(K[3]);
1583
  D[2] := C;
1584
  D[1] := B;
1585
  D[0] := A;
1586
  Inc(PWord(K), 4);
1587
  for I := 1 to 8 do
1588
  begin
1589
    Dec(PWord(D), 6);
1590
    A    := K[0];
1591
    D[5] := K[1];
1592
    D[4] := A;
1593
    A    := IDEAInv(K[2]);
1594
    B    := 0 - K[3];
1595
    C    := 0 - K[4];
1596
    D[3] := IDEAInv(K[5]);
1597
    D[2] := B;
1598
    D[1] := C;
1599
    D[0] := A;
1600
    Inc(PWord(K), 6);
1601
  end;
1602
  A    := D[2];
1603
  D[2] := D[1];
1604
  D[1] := A;
1605
1606
  inherited;
1607
end;
1608
1609
function IDEAMul(X, Y: UInt32): UInt32;
1610
{$IF defined(X86ASM) or defined(X64ASM)}
1611
asm
1612
    {$IFDEF X64ASM}
1613
       MOV    EAX,ECX
1614
    {$ENDIF X64ASM}
1615
       AND    EAX,0FFFFh
1616
       JZ     @@1
1617
       AND    EDX,0FFFFh
1618
       JZ     @@1
1619
       MUL    EDX
1620
       MOV    EDX,EAX
1621
       MOV    ECX,EAX
1622
       SHR    EDX,16
1623
       SUB    EAX,EDX
1624
       SUB    CX,AX
1625
       ADC    EAX,0
1626
       RET
1627
@@1:   LEA    EAX,[EAX + EDX - 1]
1628
       NEG    EAX
1629
end;
1630
{$ELSE}
1631
begin
1632
  X := X and $FFFF;
1633
  if X <> 0 then
1634
  begin
1635
    Y := Y and $FFFF;
1636
    if Y <> 0 then
1637
    begin
1638
      X := X * Y;
1639
      Result := X - (X shr 16);
1640
      if Word(X) < Word(Result) then // carry flag check for "sub cx,ax"
1641
        Inc(Result);
1642
      Exit;
1643
    end;
1644
  end;
1645
  Result := -(X + Y - 1);
1646
end;
1647
{$IFEND}
1648
1649
procedure IDEACipher(Source, Dest: PUInt32Array; Key: PWordArray);
1650
var
1651
  I: UInt32;
1652
  X, Y, A, B, C, D: UInt32;
1653
begin
1654
  I := SwapUInt32(Source[0]);
1655
  A := I shr 16;
1656
  B := I and $FFFF;
1657
  I := SwapUInt32(Source[1]);
1658
  C := I shr 16;
1659
  D := I and $FFFF;
1660
  for I := 0 to 7 do
1661
  begin
1662
    A := IDEAMul(A, Key[0]);
1663
    Inc(B, Key[1]);
1664
    Inc(C, Key[2]);
1665
    D := IDEAMul(D, Key[3]);
1666
    Y := C xor A;
1667
    Y := IDEAMul(Y, Key[4]);
1668
    X := B xor D + Y;
1669
    X := IDEAMul(X, Key[5]);
1670
    Inc(Y, X);
1671
    A := A xor X;
1672
    D := D xor Y;
1673
    Y := B xor Y;
1674
    B := C xor X;
1675
    C := Y;
1676
    Key := @Key[6];
1677
  end;
1678
  Dest[0] := SwapUInt32(IDEAMul(A, Key[0]) shl 16 or (C + Key[1]) and $FFFF);
1679
  Dest[1] := SwapUInt32((B + Key[2]) shl 16 or IDEAMul(D, Key[3]) and $FFFF);
1680
end;
1681
1682
procedure TCipher_IDEA.DoEncode(Source, Dest: Pointer; Size: Integer);
1683
begin
1684
  Assert(Size = Context.BlockSize);
1685
1686
  IDEACipher(Source, Dest, FAdditionalBuffer);
1687
end;
1688
1689
procedure TCipher_IDEA.DoDecode(Source, Dest: Pointer; Size: Integer);
1690
begin
1691
  Assert(Size = Context.BlockSize);
1692
1693
  IDEACipher(Source, Dest, @PUInt32Array(FAdditionalBuffer)[26]);
1694
end;
1695
1696
{ TCipher_Cast256 }
1697
1698
class function TCipher_Cast256.Context: TCipherContext;
1699
begin
1700
  Result.KeySize                     := 32;
1701
  Result.BlockSize                   := 16;
1702
  Result.BufferSize                  := 16;
1703
  Result.AdditionalBufferSize        := 384;
1704
  Result.NeedsAdditionalBufferBackup := False;
1705
  Result.MinRounds                   := 1;
1706
  Result.MaxRounds                   := 1;
1707
  Result.CipherType := [ctSymmetric, ctBlock];
1708
end;
1709
1710
procedure TCipher_Cast256.DoInit(const Key; Size: Integer);
1711
var
1712
  X: array[0..7] of UInt32;
1713
  M, R, I, J, T: UInt32;
1714
  K: PUInt32Array;
1715
begin
1716
  FillChar(X, SizeOf(X), 0);
1717
  Move(Key, X, Size);
1718
  SwapUInt32Buffer(X, X, 8);
1719
  K := FAdditionalBuffer;
1720
  M := $5A827999;
1721
  R := 19;
1722
  for I := 0 to 11 do
1723
  begin
1724
    for J := 0 to 1 do
1725
    begin
1726
      T := M + X[7];
1727
      T := T shl R or T shr (32 - R);
1728
      X[6] := X[6] xor (Cast256_Data[0, T shr 24] xor
1729
                        Cast256_Data[1, T shr 16 and $FF] -
1730
                        Cast256_Data[2, T shr  8 and $FF] +
1731
                        Cast256_Data[3, T and $FF]);
1732
      Inc(M, $6ED9EBA1);
1733
      Inc(R, 17);
1734
      T := M xor X[6];
1735
      T := T shl R or T shr (32 - R);
1736
      X[5] := X[5] xor (Cast256_Data[0, T shr 24] -
1737
                        Cast256_Data[1, T shr 16 and $FF] +
1738
                        Cast256_Data[2, T shr  8 and $FF] xor
1739
                        Cast256_Data[3, T and $FF]);
1740
      Inc(M, $6ED9EBA1);
1741
      Inc(R, 17);
1742
      T := M - X[5];
1743
      T := T shl R or T shr (32 - R);
1744
      X[4] := X[4] xor (Cast256_Data[0, T shr 24] +
1745
                        Cast256_Data[1, T shr 16 and $FF] xor
1746
                        Cast256_Data[2, T shr  8 and $FF] -
1747
                        Cast256_Data[3, T and $FF]);
1748
      Inc(M, $6ED9EBA1);
1749
      Inc(R, 17);
1750
      T := M + X[4];
1751
      T := T shl R or T shr (32 - R);
1752
      X[3] := X[3] xor (Cast256_Data[0, T shr 24] xor
1753
                        Cast256_Data[1, T shr 16 and $FF] -
1754
                        Cast256_Data[2, T shr  8 and $FF] +
1755
                        Cast256_Data[3, T and $FF]);
1756
      Inc(M, $6ED9EBA1);
1757
      Inc(R, 17);
1758
      T := M xor X[3];
1759
      T := T shl R or T shr (32 - R);
1760
      X[2] := X[2] xor (Cast256_Data[0, T shr 24] -
1761
                        Cast256_Data[1, T shr 16 and $FF] +
1762
                        Cast256_Data[2, T shr  8 and $FF] xor
1763
                        Cast256_Data[3, T and $FF]);
1764
      Inc(M, $6ED9EBA1);
1765
      Inc(R, 17);
1766
      T := M - X[2];
1767
      T := T shl R or T shr (32 - R);
1768
      X[1] := X[1] xor (Cast256_Data[0, T shr 24] +
1769
                        Cast256_Data[1, T shr 16 and $FF] xor
1770
                        Cast256_Data[2, T shr  8 and $FF] -
1771
                        Cast256_Data[3, T and $FF]);
1772
      Inc(M, $6ED9EBA1);
1773
      Inc(R, 17);
1774
      T := M + X[1];
1775
      T := T shl R or T shr (32 - R);
1776
      X[0] := X[0] xor (Cast256_Data[0, T shr 24] xor
1777
                        Cast256_Data[1, T shr 16 and $FF] -
1778
                        Cast256_Data[2, T shr  8 and $FF] +
1779
                        Cast256_Data[3, T and $FF]);
1780
      Inc(M, $6ED9EBA1);
1781
      Inc(R, 17);
1782
      T := M xor X[0];
1783
      T := T shl R or T shr (32 - R);
1784
      X[7] := X[7] xor (Cast256_Data[0, T shr 24] -
1785
                        Cast256_Data[1, T shr 16 and $FF] +
1786
                        Cast256_Data[2, T shr  8 and $FF] xor
1787
                        Cast256_Data[3, T and $FF]);
1788
      Inc(M, $6ED9EBA1);
1789
      Inc(R, 17);
1790
    end;
1791
    if I < 6 then
1792
    begin
1793
      K[48] := X[0] and $1F;
1794
      K[49] := X[2] and $1F;
1795
      K[50] := X[4] and $1F;
1796
      K[51] := X[6] and $1F;
1797
      K[0] := X[7];
1798
      K[1] := X[5];
1799
      K[2] := X[3];
1800
      K[3] := X[1];
1801
    end
1802
    else
1803
    begin
1804
      K[48] := X[6] and $1F;
1805
      K[49] := X[4] and $1F;
1806
      K[50] := X[2] and $1F;
1807
      K[51] := X[0] and $1F;
1808
      K[0] := X[1];
1809
      K[1] := X[3];
1810
      K[2] := X[5];
1811
      K[3] := X[7];
1812
    end;
1813
    K := @K[4];
1814
  end;
1815
  ProtectBuffer(X, SizeOf(X));
1816
1817
  inherited;
1818
end;
1819
1820
procedure TCipher_Cast256.DoEncode(Source, Dest: Pointer; Size: Integer);
1821
var
1822
  I, T, A, B, C, D: UInt32;
1823
  K: PUInt32Array;
1824
begin
1825
  Assert(Size = Context.BlockSize);
1826
1827
  K := FAdditionalBuffer;
1828
  SwapUInt32Buffer(Source^, Dest^, 4);
1829
  A := PUInt32Array(Dest)[0];
1830
  B := PUInt32Array(Dest)[1];
1831
  C := PUInt32Array(Dest)[2];
1832
  D := PUInt32Array(Dest)[3];
1833
  for I := 0 to 5 do
1834
  begin
1835
    T := K[0] + D;
1836
    T := T shl K[48] or T shr (32 - K[48]);
1837
    C := C xor (Cast256_Data[0, T shr 24] xor
1838
                Cast256_Data[1, T shr 16 and $FF] -
1839
                Cast256_Data[2, T shr  8 and $FF] +
1840
                Cast256_Data[3, T and $FF]);
1841
    T := K[1] xor C;
1842
    T := T shl K[49] or T shr (32 - K[49]);
1843
    B := B xor (Cast256_Data[0, T shr 24] -
1844
                Cast256_Data[1, T shr 16 and $FF] +
1845
                Cast256_Data[2, T shr  8 and $FF] xor
1846
                Cast256_Data[3, T and $FF]);
1847
    T := K[2] - B;
1848
    T := T shl K[50] or T shr (32 - K[50]);
1849
    A := A xor (Cast256_Data[0, T shr 24] +
1850
                Cast256_Data[1, T shr 16 and $FF] xor
1851
                Cast256_Data[2, T shr  8 and $FF] -
1852
                Cast256_Data[3, T and $FF]);
1853
    T := K[3] + A;
1854
    T := T shl K[51] or T shr (32 - K[51]);
1855
    D := D xor (Cast256_Data[0, T shr 24] xor
1856
                Cast256_Data[1, T shr 16 and $FF] -
1857
                Cast256_Data[2, T shr  8 and $FF] +
1858
                Cast256_Data[3, T and $FF]);
1859
    K := @K[4];
1860
  end;
1861
  for I := 0 to 5 do
1862
  begin
1863
    T := K[0] + A;
1864
    T := T shl K[48] or T shr (32 - K[48]);
1865
    D := D xor (Cast256_Data[0, T shr 24] xor
1866
                Cast256_Data[1, T shr 16 and $FF] -
1867
                Cast256_Data[2, T shr  8 and $FF] +
1868
                Cast256_Data[3, T and $FF]);
1869
    T := K[1] - B;
1870
    T := T shl K[49] or T shr (32 - K[49]);
1871
    A := A xor (Cast256_Data[0, T shr 24] +
1872
                Cast256_Data[1, T shr 16 and $FF] xor
1873
                Cast256_Data[2, T shr  8 and $FF] -
1874
                Cast256_Data[3, T and $FF]);
1875
    T := K[2] xor C;
1876
    T := T shl K[50] or T shr (32 - K[50]);
1877
    B := B xor (Cast256_Data[0, T shr 24] -
1878
                Cast256_Data[1, T shr 16 and $FF] +
1879
                Cast256_Data[2, T shr  8 and $FF] xor
1880
                Cast256_Data[3, T and $FF]);
1881
    T := K[3] + D;
1882
    T := T shl K[51] or T shr (32 - K[51]);
1883
    C := C xor (Cast256_Data[0, T shr 24] xor
1884
                Cast256_Data[1, T shr 16 and $FF] -
1885
                Cast256_Data[2, T shr  8 and $FF] +
1886
                Cast256_Data[3, T and $FF]);
1887
    K := @K[4];
1888
  end;
1889
  PUInt32Array(Dest)[0] := A;
1890
  PUInt32Array(Dest)[1] := B;
1891
  PUInt32Array(Dest)[2] := C;
1892
  PUInt32Array(Dest)[3] := D;
1893
  SwapUInt32Buffer(Dest^, Dest^, 4);
1894
end;
1895
1896
procedure TCipher_Cast256.DoDecode(Source, Dest: Pointer; Size: Integer);
1897
var
1898
  I, T, A, B, C, D: UInt32;
1899
  K: PUInt32Array;
1900
begin
1901
  Assert(Size = Context.BlockSize);
1902
1903
  K := @PUInt32Array(FAdditionalBuffer)[44];
1904
  SwapUInt32Buffer(Source^, Dest^, 4);
1905
  A := PUInt32Array(Dest)[0];
1906
  B := PUInt32Array(Dest)[1];
1907
  C := PUInt32Array(Dest)[2];
1908
  D := PUInt32Array(Dest)[3];
1909
  for I := 0 to 5 do
1910
  begin
1911
    T := K[3] + D;
1912
    T := T shl K[51] or T shr (32 - K[51]);
1913
    C := C xor (Cast256_Data[0, T shr 24] xor
1914
                Cast256_Data[1, T shr 16 and $FF] -
1915
                Cast256_Data[2, T shr  8 and $FF] +
1916
                Cast256_Data[3, T and $FF]);
1917
    T := K[2] xor C;
1918
    T := T shl K[50] or T shr (32 - K[50]);
1919
    B := B xor (Cast256_Data[0, T shr 24] -
1920
                Cast256_Data[1, T shr 16 and $FF] +
1921
                Cast256_Data[2, T shr  8 and $FF] xor
1922
                Cast256_Data[3, T and $FF]);
1923
    T := K[1] - B;
1924
    T := T shl K[49] or T shr (32 - K[49]);
1925
    A := A xor (Cast256_Data[0, T shr 24] +
1926
                Cast256_Data[1, T shr 16 and $FF] xor
1927
                Cast256_Data[2, T shr  8 and $FF] -
1928
                Cast256_Data[3, T and $FF]);
1929
    T := K[0] + A;
1930
    T := T shl K[48] or T shr (32 - K[48]);
1931
    D := D xor (Cast256_Data[0, T shr 24] xor
1932
                Cast256_Data[1, T shr 16 and $FF] -
1933
                Cast256_Data[2, T shr  8 and $FF] +
1934
                Cast256_Data[3, T and $FF]);
1935
    Dec(PUInt32(K), 4);
1936
  end;
1937
  for I := 0 to 5 do
1938
  begin
1939
    T := K[3] + A;
1940
    T := T shl K[51] or T shr (32 - K[51]);
1941
    D := D xor (Cast256_Data[0, T shr 24] xor
1942
                Cast256_Data[1, T shr 16 and $FF] -
1943
                Cast256_Data[2, T shr  8 and $FF] +
1944
                Cast256_Data[3, T and $FF]);
1945
    T := K[2] - B;
1946
    T := T shl K[50] or T shr (32 - K[50]);
1947
    A := A xor (Cast256_Data[0, T shr 24] +
1948
                Cast256_Data[1, T shr 16 and $FF] xor
1949
                Cast256_Data[2, T shr  8 and $FF] -
1950
                Cast256_Data[3, T and $FF]);
1951
    T := K[1] xor C;
1952
    T := T shl K[49] or T shr (32 - K[49]);
1953
    B := B xor (Cast256_Data[0, T shr 24] -
1954
                Cast256_Data[1, T shr 16 and $FF] +
1955
                Cast256_Data[2, T shr  8 and $FF] xor
1956
                Cast256_Data[3, T and $FF]);
1957
    T := K[0] + D;
1958
    T := T shl K[48] or T shr (32 - K[48]);
1959
    C := C xor (Cast256_Data[0, T shr 24] xor
1960
                Cast256_Data[1, T shr 16 and $FF] -
1961
                Cast256_Data[2, T shr  8 and $FF] +
1962
                Cast256_Data[3, T and $FF]);
1963
    Dec(PUInt32(K), 4);
1964
  end;
1965
  PUInt32Array(Dest)[0] := A;
1966
  PUInt32Array(Dest)[1] := B;
1967
  PUInt32Array(Dest)[2] := C;
1968
  PUInt32Array(Dest)[3] := D;
1969
  SwapUInt32Buffer(Dest^, Dest^, 4);
1970
end;
1971
1972
{ TCipher_Mars }
1973
1974
class function TCipher_Mars.Context: TCipherContext;
1975
begin
1976
  Result.KeySize                     := 56;
1977
  Result.BlockSize                   := 16;
1978
  Result.BufferSize                  := 16;
1979
  Result.AdditionalBufferSize        := 160;
1980
  Result.NeedsAdditionalBufferBackup := False;
1981
  Result.MinRounds                   := 1;
1982
  Result.MaxRounds                   := 1;
1983
  Result.CipherType                  := [ctSymmetric, ctBlock];
1984
end;
1985
1986
procedure TCipher_Mars.DoInit(const Key; Size: Integer);
1987
var
1988
  B: PUInt32Array;
1989
1990
  function FixKey(K, R: UInt32): UInt32;
1991
  var
1992
    M1, M2: UInt32;
1993
    I: UInt32;
1994
  begin
1995
    I := K and 3;
1996
    K := K or 3;
1997
    M1 := not K xor (K shl 1);
1998
    M2 := M1 and (M1 shl 1);
1999
    M2 := M2 and (M2 shl 2);
2000
    M2 := M2 and (M2 shl 4);
2001
    M2 := M2 and (M1 shl 8);
2002
    M2 := M2 and $FFFFFE00;
2003
    if M2 = 0 then
2004
    begin
2005
      Result := K;
2006
      Exit;
2007
    end;
2008
    M1 := M2 or (M2 shr 1);
2009
    M1 := M1 or (M1 shr 2);
2010
    M1 := M1 or (M2 shr 4);
2011
    M1 := M1 or (M1 shr 5);
2012
    M1 := M1 and ((not K xor (K shl 1)) and (not K xor (K shr 1)) and $7FFFFFFC);
2013
    Result := K xor ((B[265 + I] shl R or B[265 + I] shr (32 - R)) and M1);
2014
  end;
2015
2016
var
2017
  T: array[0..14] of UInt32;
2018
  I, J, L: UInt32;
2019
  U: UInt32;
2020
  K: PUInt32Array;
2021
begin
2022
  K := FAdditionalBuffer;
2023
  B := @Mars_Data;
2024
  FillChar(T, SizeOf(T), 0);
2025
  Move(Key, T, Size);
2026
  Size := Size div 4;
2027
  T[Size] := Size;
2028
  for J := 0 to 3 do
2029
  begin
2030
    for I := 0 to 14 do
2031
    begin
2032
      U := T[(I + 8) mod 15] xor T[(I + 13) mod 15];
2033
      T[I] := T[I] xor (U shl 3 or U shr 29) xor (I * 4 + J);
2034
    end;
2035
    for L := 0 to 3 do
2036
    begin
2037
      for I := 0 to 14 do
2038
      begin
2039
        Inc(T[I], B[T[(I + 14) mod 15] and $1FF]);
2040
        T[I] := T[I] shl 9 or T[I] shr 23;
2041
      end;
2042
    end;
2043
    for I := 0 to 9 do
2044
      K[(J * 10) + I] := T[(I * 4) mod 15];
2045
  end;
2046
  I := 5;
2047
  repeat
2048
    K[I] := FixKey(K[I], K[I - 1]);
2049
    Inc(I, 2);
2050
  until I >= 37;
2051
2052
  inherited;
2053
end;
2054
2055
procedure TCipher_Mars.DoEncode(Source, Dest: Pointer; Size: Integer);
2056
var
2057
  K: PUInt32Array;
2058
  I, L, R, A, B, C, D: UInt32;
2059
begin
2060
  Assert(Size = Context.BlockSize);
2061
2062
  K := FAdditionalBuffer;
2063
  A := PUInt32Array(Source)[0] + K[0];
2064
  B := PUInt32Array(Source)[1] + K[1];
2065
  C := PUInt32Array(Source)[2] + K[2];
2066
  D := PUInt32Array(Source)[3] + K[3];
2067
  K := @K[4];
2068
  for I := 0 to 1 do
2069
  begin
2070
    B := B xor Mars_Data[A and $FF] + Mars_Data[A shr 8 and $FF + 256];
2071
    Inc(C, Mars_Data[A shr 16 and $FF]);
2072
    D := D xor Mars_Data[A shr 24 + 256];
2073
    A := (A shr 24 or A shl 8) + D;
2074
2075
    C := C xor Mars_Data[B and $FF] + Mars_Data[B shr 8 and $FF + 256];
2076
    Inc(D, Mars_Data[B shr 16 and $FF]);
2077
    A := A xor Mars_Data[B shr 24 + 256];
2078
    B := (B shr 24 or B shl 8) + C;
2079
2080
    D := D xor Mars_Data[C and $FF] + Mars_Data[C shr 8 and $FF + 256];
2081
    Inc(A, Mars_Data[C shr 16 and $FF]);
2082
    B := B xor Mars_Data[C shr 24 + 256];
2083
    C := C shr 24 or C shl 8;
2084
2085
    A := A xor Mars_Data[D and $FF] + Mars_Data[D shr 8 and $FF + 256];
2086
    Inc(B, Mars_Data[D shr 16 and $FF]);
2087
    C := C xor Mars_Data[D shr 24 + 256];
2088
    D := D shr 24 or D shl 8;
2089
  end;
2090
2091
  for I := 0 to 3 do
2092
  begin
2093
    L := A + K[0];
2094
    A := A shl 13 or A shr 19;
2095
    R := A * K[1];
2096
    R := R shl 5 or R shr 27;
2097
    Inc(C, L shl R or L shr (32 - R));
2098
    L := Mars_Data[L and $1FF] xor R;
2099
    R := R shl 5 or R shr 27;
2100
    L := L xor R;
2101
    L := L shl R or L shr (32 - R);
2102
2103
    if I <= 1 then
2104
    begin
2105
      Inc(B, L);
2106
      D := D xor R;
2107
    end
2108
    else
2109
    begin
2110
      Inc(D, L);
2111
      B := B xor R;
2112
    end;
2113
    L := B + K[2];
2114
    B := B shl 13 or B shr 19;
2115
    R := B * K[3];
2116
    R := R shl 5 or R shr 27;
2117
    Inc(D, L shl R or L shr (32 - R));
2118
    L := Mars_Data[L and $1FF] xor R;
2119
    R := R shl 5 or R shr 27;
2120
    L := L xor R;
2121
    L := L shl R or L shr (32 - R);
2122
    if I <= 1 then
2123
    begin
2124
      Inc(C, L);
2125
      A := A xor R;
2126
    end
2127
    else
2128
    begin
2129
      Inc(A, L);
2130
      C := C xor R;
2131
    end;
2132
    L := C + K[4];
2133
    C := C shl 13 or C shr 19;
2134
    R := C * K[5];
2135
    R := R shl 5 or R shr 27;
2136
    Inc(A, L shl R or L shr (32 - R));
2137
    L := Mars_Data[L and $1FF] xor R;
2138
    R := R shl 5 or R shr 27;
2139
    L := L xor R;
2140
    L := L shl R or L shr (32 - R);
2141
    if I <= 1 then
2142
    begin
2143
      Inc(D, L);
2144
      B := B xor R;
2145
    end
2146
    else
2147
    begin
2148
      Inc(B, L);
2149
      D := D xor R;
2150
    end;
2151
    L := D + K[6];
2152
    D := D shl 13 or D shr 19;
2153
    R := D * K[7];
2154
    R := R shl 5 or R shr 27;
2155
    Inc(B, L shl R or L shr (32 - R));
2156
    L := Mars_Data[L and $1FF] xor R;
2157
    R := R shl 5 or R shr 27;
2158
    L := L xor R;
2159
    L := L shl R or L shr (32 - R);
2160
    if I <= 1 then
2161
    begin
2162
      Inc(A, L);
2163
      C := C xor R;
2164
    end
2165
    else
2166
    begin
2167
      Inc(C, L);
2168
      A := A xor R;
2169
    end;
2170
    K := @K[8];
2171
  end;
2172
  for I := 0 to 1 do
2173
  begin
2174
    B := B xor Mars_Data[A and $FF + 256];
2175
    Dec(C, Mars_Data[A shr 24]);
2176
    D := D - Mars_Data[A shr 16 and $FF + 256] xor Mars_Data[A shr 8 and $FF];
2177
    A := A shl 24 or A shr 8;
2178
    C := C xor Mars_Data[B and $FF + 256];
2179
    Dec(D, Mars_Data[B shr 24]);
2180
    A := A - Mars_Data[B shr 16 and $FF + 256] xor Mars_Data[B shr 8 and $FF];
2181
    B := B shl 24 or B shr 8;
2182
    Dec(C, B);
2183
    D := D xor Mars_Data[C and $FF + 256];
2184
    Dec(A, Mars_Data[C shr 24]);
2185
    B := B - Mars_Data[C shr 16 and $FF + 256] xor Mars_Data[C shr 8 and $FF];
2186
    C := C shl 24 or C shr 8;
2187
    Dec(D, A);
2188
    A := A xor Mars_Data[D and $FF + 256];
2189
    Dec(B, Mars_Data[D shr 24]);
2190
    C := C - Mars_Data[D shr 16 and $FF + 256] xor Mars_Data[D shr 8 and $FF];
2191
    D := D shl 24 or D shr 8;
2192
  end;
2193
  PUInt32Array(Dest)[0] := A - K[0];
2194
  PUInt32Array(Dest)[1] := B - K[1];
2195
  PUInt32Array(Dest)[2] := C - K[2];
2196
  PUInt32Array(Dest)[3] := D - K[3];
2197
end;
2198
2199
procedure TCipher_Mars.DoDecode(Source, Dest: Pointer; Size: Integer);
2200
var
2201
  K: PUInt32Array;
2202
  I, L, R, A, B, C, D: UInt32;
2203
begin
2204
  Assert(Size = Context.BlockSize);
2205
2206
  K := @PUInt32Array(FAdditionalBuffer)[28];
2207
  A := PUInt32Array(Source)[0] + K[8];
2208
  B := PUInt32Array(Source)[1] + K[9];
2209
  C := PUInt32Array(Source)[2] + K[10];
2210
  D := PUInt32Array(Source)[3] + K[11];
2211
  for I := 0 to 1 do
2212
  begin
2213
    D := D shr 24 or D shl 8;
2214
    C := C xor Mars_Data[D shr 8 and $FF] + Mars_Data[D shr 16 and $FF + 256];
2215
    Inc(B, Mars_Data[D shr 24]);
2216
    A := A xor Mars_Data[D and $FF + 256];
2217
    Inc(D, A);
2218
    C := C shr 24 or C shl 8;
2219
    B := B xor Mars_Data[C shr 8 and $FF] + Mars_Data[C shr 16 and $FF + 256];
2220
    Inc(A, Mars_Data[C shr 24]);
2221
    D := D xor Mars_Data[C and $FF + 256];
2222
    Inc(C, B);
2223
    B := B shr 24 or B shl 8;
2224
    A := A xor Mars_Data[B shr 8 and $FF] + Mars_Data[B shr 16 and $FF + 256];
2225
    Inc(D, Mars_Data[B shr 24]);
2226
    C := C xor Mars_Data[B and $FF + 256];
2227
    A := A shr 24 or A shl 8;
2228
    D := D xor Mars_Data[A shr 8 and $FF] + Mars_Data[A shr 16 and $FF + 256];
2229
    Inc(C, Mars_Data[A shr 24]);
2230
    B := B xor Mars_Data[A and $FF + 256];
2231
  end;
2232
  for I := 0 to 3 do
2233
  begin
2234
    R := D * K[7];
2235
    R := R shl 5 or R shr 27;
2236
    D := D shr 13 or D shl 19;
2237
    L := D + K[6];
2238
    Dec(B, L shl R or L shr (32 - R));
2239
    L := Mars_Data[L and $1FF] xor R;
2240
    R := R shl 5 or R shr 27;
2241
    L := L xor R;
2242
    L := L shl R or L shr (32 - R);
2243
    if I <= 1 then
2244
    begin
2245
      Dec(C, L);
2246
      A := A xor R;
2247
    end
2248
    else
2249
    begin
2250
      Dec(A, L);
2251
      C := C xor R;
2252
    end;
2253
    R := C * K[5];
2254
    R := R shl 5 or R shr 27;
2255
    C := C shr 13 or C shl 19;
2256
    L := C + K[4];
2257
    Dec(A, L shl R or L shr (32 - R));
2258
    L := Mars_Data[L and $1FF] xor R;
2259
    R := R shl 5 or R shr 27;
2260
    L := L xor R;
2261
    L := L shl R or L shr (32 - R);
2262
    if I <= 1 then
2263
    begin
2264
      Dec(B, L);
2265
      D := D xor R;
2266
    end
2267
    else
2268
    begin
2269
      Dec(D, L);
2270
      B := B xor R;
2271
    end;
2272
    R := B * K[3];
2273
    R := R shl 5 or R shr 27;
2274
    B := B shr 13 or B shl 19;
2275
    L := B + K[2];
2276
    Dec(D, L shl R or L shr (32 - R));
2277
    L := Mars_Data[L and $1FF] xor R;
2278
    R := R shl 5 or R shr 27;
2279
    L := L xor R;
2280
    L := L shl R or L shr (32 - R);
2281
    if I <= 1 then
2282
    begin
2283
      Dec(A, L);
2284
      C := C xor R;
2285
    end
2286
    else
2287
    begin
2288
      Dec(C, L);
2289
      A := A xor R;
2290
    end;
2291
    R := A * K[1];
2292
    R := R shl 5 or R shr 27;
2293
    A := A shr 13 or A shl 19;
2294
    L := A + K[0];
2295
    Dec(C, L shl R or L shr (32 - R));
2296
    L := Mars_Data[L and $1FF] xor R;
2297
    R := R shl 5 or R shr 27;
2298
    L := L xor R;
2299
    L := L shl R or L shr (32 - R);
2300
    if I <= 1 then
2301
    begin
2302
      Dec(D, L);
2303
      B := B xor R;
2304
    end
2305
    else
2306
    begin
2307
      Dec(B, L);
2308
      D := D xor R;
2309
    end;
2310
    Dec(PUInt32(K), 8);
2311
  end;
2312
  for I := 0 to 1 do
2313
  begin
2314
    D := D shl 24 or D shr 8;
2315
    C := C xor Mars_Data[D shr 24 + 256];
2316
    Dec(B, Mars_Data[D shr 16 and $FF]);
2317
    A := A - Mars_Data[D shr 8 and $FF + 256] xor Mars_Data[D and $FF];
2318
    C := C shl 24 or C shr 8;
2319
    B := B xor Mars_Data[C shr 24 + 256];
2320
    Dec(A, Mars_Data[C shr 16 and $FF]);
2321
    D := D - Mars_Data[C shr 8 and $FF + 256] xor Mars_Data[C and $FF];
2322
    Dec(B, C);
2323
    B := B shl 24 or B shr 8;
2324
    A := A xor Mars_Data[B shr 24 + 256];
2325
    Dec(D, Mars_Data[B shr 16 and $FF]);
2326
    C := C - Mars_Data[B shr 8 and $FF + 256] xor Mars_Data[B and $FF];
2327
    Dec(A, D);
2328
    A := A shl 24 or A shr 8;
2329
    D := D xor Mars_Data[A shr 24 + 256];
2330
    Dec(C, Mars_Data[A shr 16 and $FF]);
2331
    B := B - Mars_Data[A shr 8 and $FF + 256] xor Mars_Data[A and $FF];
2332
  end;
2333
  PUInt32Array(Dest)[0] := A - K[4];
2334
  PUInt32Array(Dest)[1] := B - K[5];
2335
  PUInt32Array(Dest)[2] := C - K[6];
2336
  PUInt32Array(Dest)[3] := D - K[7];
2337
end;
2338
2339
{ TCipher_RC4 }
2340
2341
class function TCipher_RC4.Context: TCipherContext;
2342
begin
2343
  Result.KeySize                     := 256;
2344
  Result.BlockSize                   := 1;
2345
  Result.BufferSize                  := 16;
2346
  Result.AdditionalBufferSize        := 256 + 2;
2347
  Result.NeedsAdditionalBufferBackup := true;
2348
  Result.MinRounds                   := 1;
2349
  Result.MaxRounds                   := 1;
2350
  Result.CipherType                  := [ctSymmetric, ctStream];
2351
end;
2352
2353
procedure TCipher_RC4.DoInit(const Key; Size: Integer);
2354
var
2355
  K: array[0..255] of Byte;
2356
  D: PByteArray;
2357
  I, J, T: Byte;
2358
begin
2359
  D := FAdditionalBuffer;
2360
  for I := 0 to 255 do
2361
  begin
2362
    D[I] := I;
2363
    if Size > 0 then
2364
      K[I] := TByteArray(Key)[I mod Size];
2365
  end;
2366
  J := 0;
2367
  for I := 0 to 255 do
2368
  begin
2369
    J := J + D[I] + K[I];
2370
    T := D[I];
2371
    D[I] := D[J];
2372
    D[J] := T;
2373
  end;
2374
  D[256] := 0;
2375
  D[257] := 0;
2376
  ProtectBuffer(K, SizeOf(K));
2377
2378
  inherited;
2379
end;
2380
2381
procedure TCipher_RC4.DoEncode(Source, Dest: Pointer; Size: Integer);
2382
var
2383
  D: PByteArray;
2384
  S: Integer;
2385
  T, I, J: Byte;
2386
begin
2387
  D := FAdditionalBuffer;
2388
  I := D[256];
2389
  J := D[257];
2390
  for S := 0 to Size - 1 do
2391
  begin
2392
    Inc(I);
2393
    T := D[I];
2394
    Inc(J, T);
2395
    D[I] := D[J];
2396
    D[J] := T;
2397
    PByteArray(Dest)[S] := PByteArray(Source)[S] xor D[Byte(D[I] + T)];
2398
  end;
2399
  D[256] := I;
2400
  D[257] := J;
2401
end;
2402
2403
procedure TCipher_RC4.DoDecode(Source, Dest: Pointer; Size: Integer);
2404
begin
2405
  DoEncode(Source, Dest, Size);
2406
end;
2407
2408
{ TCipher_RC6 }
2409
2410
class function TCipher_RC6.Context: TCipherContext;
2411
begin
2412
  Result.KeySize                     := 256;
2413
  Result.BlockSize                   := 16;
2414
  Result.BufferSize                  := 16;
2415
  Result.AdditionalBufferSize        := 272;
2416
  Result.NeedsAdditionalBufferBackup := False;
2417
  Result.MinRounds                   := 16;
2418
  Result.MaxRounds                   := 24;
2419
  Result.CipherType                  := [ctSymmetric, ctBlock];
2420
end;
2421
2422
procedure TCipher_RC6.SetRounds(Value: Integer);
2423
begin
2424
  if Value < Context.MinRounds then
2425
    Value := Context.MinRounds
2426
  else
2427
  if Value > Context.MaxRounds then
2428
    Value := Context.MaxRounds;
2429
  if Value <> FRounds then
2430
  begin
2431
    if not (FState in [csNew, csInitialized, csDone]) then
2432
      Done;
2433
    FRounds := Value;
2434
  end;
2435
end;
2436
2437
procedure TCipher_RC6.DoInit(const Key; Size: Integer);
2438
var
2439
  K: array[0..63] of UInt32;
2440
  D: PUInt32Array;
2441
  I, J, L, A, B, Z, T: UInt32;
2442
begin
2443
  LimitRounds;
2444
2445
  D := FAdditionalBuffer;
2446
  FillChar(K, SizeOf(K), 0);
2447
  Move(Key, K, Size);
2448
  L := Size shr 2;
2449
  if Size and 3 <> 0 then
2450
    Inc(L);
2451
  if L <= 0 then
2452
    L := 1;
2453
  J := $B7E15163;
2454
  for I := 0 to (FRounds + 2) * 2 do
2455
  begin
2456
    D[I] := J;
2457
    Inc(J, $9E3779B9);
2458
  end;
2459
  if L > UInt32(FRounds + 2) * 2 then
2460
    Z := L * 3
2461
  else
2462
    Z := (FRounds + 2) * 6;
2463
  I := 0;
2464
  J := 0;
2465
  A := 0;
2466
  B := 0;
2467
  for Z := Z downto 1 do
2468
  begin
2469
    A := A + B + D[I];
2470
    A := A shl 3 or A shr 29;
2471
    D[I] := A;
2472
    T := A + B;
2473
    B := T + K[J];
2474
    B := B shl T or B shr (32 - T);
2475
    K[J] := B;
2476
    I := (I + 1) mod (UInt32(FRounds + 2) * 2);
2477
    J := (J + 1) mod L;
2478
  end;
2479
  ProtectBuffer(K, SizeOf(K));
2480
2481
  inherited;
2482
end;
2483
2484
procedure TCipher_RC6.LimitRounds;
2485
begin
2486
  if FRounds = 0 then
2487
    FRounds := 20
2488
  else
2489
  if FRounds < 16 then
2490
    FRounds := 16
2491
  else
2492
  if FRounds > 24 then
2493
    FRounds := 24;
2494
end;
2495
2496
procedure TCipher_RC6.DoEncode(Source, Dest: Pointer; Size: Integer);
2497
{$IFDEF X86ASM}
2498
asm
2499
      PUSH  EBX
2500
      PUSH  ESI
2501
      PUSH  EDI
2502
      PUSH  EBP
2503
      PUSH  ECX
2504
      MOV   EBP,[EAX].TCipher_RC6.FRounds           // Rounds
2505
      MOV   ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key
2506
      MOV   EAX,[EDX +  0]    // A
2507
      MOV   EBX,[EDX +  4]    // B
2508
      MOV   EDI,[EDX +  8]    // C
2509
      MOV   EDX,[EDX + 12]    // D
2510
      ADD   EBX,[ESI + 0]     // Inc(B, K[0])
2511
      ADD   EDX,[ESI + 4]     // Inc(D, K[1])
2512
      ADD   ESI,8             // Inc(PInteger(K), 2)
2513
@@1:  LEA   ECX,[EBX * 2 + 1] // ECX := B * 2 + 1
2514
      IMUL  ECX,EBX           // ECX := ECX * B
2515
      ROL   ECX,5             // T := ROL(B * (B * 2 + 1), 5)
2516
      PUSH  ECX               // save T
2517
      XOR   EAX,ECX           // A := A xor T
2518
      LEA   ECX,[EDX * 2 + 1] // ECX := D * 2 + 1
2519
      IMUL  ECX,EDX           // ECX := ECX * D
2520
      ROL   ECX,5             // U := ROL(D * (D * 2 + 1), 5)
2521
      XOR   EDI,ECX           // C := C xor U
2522
      ROL   EAX,CL            // A := ROL(A xor T, U)
2523
      POP   ECX               // restore T
2524
      ADD   EAX,[ESI + 0]     // Inc(A, K[0])
2525
      ROL   EDI,CL            // C := ROL(C xor U, T)
2526
      MOV   ECX,EAX           // T := A
2527
      ADD   EDI,[ESI + 4]     // Inc(C, K[1])
2528
      MOV   EAX,EBX           // A := B
2529
      MOV   EBX,EDI           // B := C
2530
      MOV   EDI,EDX           // C := D
2531
      DEC   EBP
2532
      MOV   EDX,ECX           // D := T;
2533
      LEA   ESI,[ESI + 8]     // Inc(PInteger(K), 2)
2534
      JNZ   @@1
2535
      ADD   EAX,[ESI + 0]     // Inc(A, K[0])
2536
      ADD   EDI,[ESI + 4]     // Inc(C, K[1])
2537
      POP   ECX
2538
      MOV   [ECX +  0],EAX    // A
2539
      MOV   [ECX +  4],EBX    // B
2540
      MOV   [ECX +  8],EDI    // C
2541
      MOV   [ECX + 12],EDX    // D
2542
      POP   EBP
2543
      POP   EDI
2544
      POP   ESI
2545
      POP   EBX
2546
end;
2547
{$ELSE !X86ASM}
2548
var
2549
  K: PUInt32Array;
2550
  I, T, U, A, B, C, D: UInt32;
2551
begin
2552
  Assert(Size = Context.BlockSize);
2553
2554
  K := Pointer(FAdditionalBuffer);
2555
  A := PUInt32Array(Source)[0];
2556
  B := PUInt32Array(Source)[1] + K[0];
2557
  C := PUInt32Array(Source)[2];
2558
  D := PUInt32Array(Source)[3] + K[1];
2559
  for I := 1 to FRounds do
2560
  begin
2561
    K := @K[2];
2562
    T := B * (B + B + 1);
2563
    T := T shl 5 or T shr 27;
2564
    U := D * (D + D + 1);
2565
    U := U shl 5 or U shr 27;
2566
    A := A xor T;
2567
    A := A shl U or A shr (32 - U) + K[0];
2568
    C := C xor U;
2569
    C := C shl T or C shr (32 - T) + K[1];
2570
    T := A; A := B; B := C; C := D; D := T;
2571
  end;
2572
  PUInt32Array(Dest)[0] := A + K[2];
2573
  PUInt32Array(Dest)[1] := B;
2574
  PUInt32Array(Dest)[2] := C + K[3];
2575
  PUInt32Array(Dest)[3] := D;
2576
end;
2577
{$ENDIF !X86ASM}
2578
2579
procedure TCipher_RC6.DoDecode(Source, Dest: Pointer; Size: Integer);
2580
{$IFDEF X86ASM}
2581
asm
2582
      PUSH  EBX
2583
      PUSH  ESI
2584
      PUSH  EDI
2585
      PUSH  EBP
2586
      PUSH  ECX
2587
      MOV   EBP,[EAX].TCipher_RC6.FRounds           // Rounds
2588
      MOV   ESI,[EAX].TCipher_RC6.FAdditionalBuffer // Key
2589
      LEA   ESI,[ESI + EBP * 8]                     // Key[FRounds * 2]
2590
      MOV   EAX,[EDX +  0]    // A
2591
      MOV   EBX,[EDX +  4]    // B
2592
      MOV   EDI,[EDX +  8]    // C
2593
      MOV   EDX,[EDX + 12]    // D
2594
      SUB   EDI,[ESI + 12]    // Dec(C, K[3])
2595
      SUB   EAX,[ESI +  8]    // Dec(A, K[2])
2596
@@1:  MOV   ECX,EAX           // T := A
2597
      SUB   EDX,[ESI + 0]     // Dec(A, K[0])
2598
      MOV   EAX,EDX           // A := D
2599
      MOV   EDX,EDI           // D := C
2600
      SUB   EBX,[ESI + 4]     // Dec(C, K[1])
2601
      MOV   EDI,EBX           // C := B
2602
      MOV   EBX,ECX           // B := T;
2603
      LEA   ECX,[EDX * 2 + 1] // ECX := D * 2 + 1
2604
      IMUL  ECX,EDX           // ECX := ECX * D
2605
      ROL   ECX,5             // U := ROL(D * (D * 2 + 1), 5)
2606
      PUSH  ECX               // save U
2607
      ROR   EAX,CL            // A := ROR(A - K[0], U)
2608
      LEA   ECX,[EBX * 2 + 1] // ECX := B * 2 + 1
2609
      IMUL  ECX,EBX           // ECX := ECX * B
2610
      ROL   ECX,5             // T := ROL(B * (B * 2 + 1), 5)
2611
      XOR   EAX,ECX           // A := A xor T
2612
      ROR   EDI,CL            // C := ROR(C - K[1], T)
2613
      POP   ECX               // restore U
2614
      XOR   EDI,ECX           // C := C xor U
2615
      DEC   EBP
2616
      LEA   ESI,[ESI - 8]     // Dec(PInteger(K), 2)
2617
      JNZ   @@1
2618
      SUB   EBX,[ESI + 0]     // Dec(B, K[0])
2619
      SUB   EDX,[ESI + 4]     // Inc(D, K[1])
2620
      POP   ECX
2621
      MOV   [ECX +  0],EAX    // A
2622
      MOV   [ECX +  4],EBX    // B
2623
      MOV   [ECX +  8],EDI    // C
2624
      MOV   [ECX + 12],EDX    // D
2625
      POP   EBP
2626
      POP   EDI
2627
      POP   ESI
2628
      POP   EBX
2629
end;
2630
{$ELSE !X86ASM}
2631
var
2632
  I, U, T, A, B, C, D: UInt32;
2633
  K: PUInt32Array;
2634
begin
2635
  Assert(Size = Context.BlockSize);
2636
2637
  K := @PUInt32Array(FAdditionalBuffer)[FRounds * 2];
2638
  A := PUInt32Array(Source)[0] - K[2];
2639
  B := PUInt32Array(Source)[1];
2640
  C := PUInt32Array(Source)[2] - K[3];
2641
  D := PUInt32Array(Source)[3];
2642
2643
  for I := 1 to FRounds do
2644
  begin
2645
    T := A; A := D; D := C; C := B; B := T;
2646
    U := D * (D + D + 1);
2647
    U := U shl 5 or U shr 27;
2648
    T := B * (B + B + 1);
2649
    T := T shl 5 or T shr 27;
2650
    C := C - K[1];
2651
    C := C shr T or C shl (32 - T) xor U;
2652
    A := A - K[0];
2653
    A := A shr U or A shl (32 - U) xor T;
2654
    Dec(PUInt32(K), 2);
2655
  end;
2656
2657
  PUInt32Array(Dest)[0] := A;
2658
  PUInt32Array(Dest)[1] := B - K[0];
2659
  PUInt32Array(Dest)[2] := C;
2660
  PUInt32Array(Dest)[3] := D - K[1];
2661
end;
2662
{$ENDIF !X86ASM}
2663
2664
{ TCipher_Rijndael }
2665
2666
class function TCipher_Rijndael.Context: TCipherContext;
2667
const
2668
  // don't change this!
2669
  Rijndael_Blocks =  4;
2670
  Rijndael_Rounds = 14;
2671
begin
2672
  Result.KeySize                     := 32;
2673
  Result.BlockSize                   := Rijndael_Blocks * 4;
2674
  Result.BufferSize                  := Rijndael_Blocks * 4;
2675
  Result.AdditionalBufferSize        := (Rijndael_Rounds + 1) * Rijndael_Blocks * SizeOf(UInt32) * 2;
2676
  Result.NeedsAdditionalBufferBackup := False;
2677
  Result.MinRounds                   := 1;
2678
  Result.MaxRounds                   := 1;
2679
  Result.CipherType                  := [ctSymmetric, ctBlock];
2680
end;
2681
2682
procedure TCipher_Rijndael.DoInit(const Key; Size: Integer);
2683
{$REGION OldKeyShedule}
2684
{
2685
  // Old Rijndael Key Scheduling:
2686
2687
  procedure BuildEncodeKey;
2688
  const
2689
    RND_Data: array[0..29] of Byte = (
2690
      $01, $02, $04, $08, $10, $20, $40, $80, $1B, $36, $6C, $D8, $AB, $4D, $9A,
2691
      $2F, $5E, $BC, $63, $C6, $97, $35, $6A, $D4, $B3, $7D, $FA, $EF, $C5, $91
2692
    );
2693
  var
2694
    T, R: Integer;
2695
2696
    procedure NextRounds;
2697
    var
2698
      J: Integer;
2699
    begin
2700
      J := 0;
2701
      while (J < FRounds - 6) and (R <= FRounds) do
2702
      begin
2703
        while (J < FRounds - 6) and (T < Rijndael_Blocks) do
2704
        begin
2705
          PUInt32Array(FBuffer)[R * Rijndael_Blocks + T] := K[J];
2706
          Inc(J);
2707
          Inc(T);
2708
        end;
2709
        if T = Rijndael_Blocks then
2710
        begin
2711
          T := 0;
2712
          Inc(R);
2713
        end;
2714
      end;
2715
    end;
2716
2717
  var
2718
    RND: PByte;
2719
    B: PByte;
2720
    I: Integer;
2721
  begin
2722
    R := 0;
2723
    T := 0;
2724
    RND := @RND_Data;
2725
    NextRounds;
2726
    while R <= FRounds do
2727
    begin
2728
      B  := @K;
2729
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr  8 and $FF] xor RND^; Inc(B);
2730
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 16 and $FF];          Inc(B);
2731
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] shr 24];                  Inc(B);
2732
      B^ := B^ xor Rijndael_S[0, K[FRounds - 7] and $FF];
2733
      Inc(RND);
2734
      if FRounds = 14 then
2735
      begin
2736
        for I := 1 to 7 do
2737
          K[I] := K[I] xor K[I - 1];
2738
        B  := @K[4];
2739
        B^ := B^ xor Rijndael_S[0, K[3] and $FF];         Inc(B);
2740
        B^ := B^ xor Rijndael_S[0, K[3] shr  8 and $FF];  Inc(B);
2741
        B^ := B^ xor Rijndael_S[0, K[3] shr 16 and $FF];  Inc(B);
2742
        B^ := B^ xor Rijndael_S[0, K[3] shr 24];
2743
        for I := 5 to 7 do
2744
          K[I] := K[I] xor K[I - 1];
2745
      end
2746
      else
2747
        for I := 1 to FRounds - 7 do
2748
          K[I] := K[I] xor K[I - 1];
2749
      NextRounds;
2750
    end;
2751
  end;
2752
2753
  procedure BuildDecodeKey;
2754
  var
2755
    I: Integer;
2756
    D: PUInt32;
2757
  begin
2758
    D := Pointer(PAnsiChar(FBuffer) + FBufferSize shr 1); // for Pointer Math
2759
    Move(FBuffer^, D^, FBufferSize shr 1);
2760
    Inc(D, 4);
2761
    for I := 0 to FRounds * 4 - 5 do
2762
    begin
2763
      D^ :=  Rijndael_Key[D^ and $FF] xor
2764
            (Rijndael_Key[D^ shr  8 and $FF] shl  8 or Rijndael_Key[D^ shr  8 and $FF] shr 24) xor
2765
            (Rijndael_Key[D^ shr 16 and $FF] shl 16 or Rijndael_Key[D^ shr 16 and $FF] shr 16) xor
2766
            (Rijndael_Key[D^ shr 24]         shl 24 or Rijndael_Key[D^ shr 24]          shr 8);
2767
      Inc(D);
2768
    end;
2769
  end; }
2770
{$ENDREGION}
2771
2772
  // New AES conform Key Scheduling
2773
2774
  procedure BuildEncodeKey;
2775
  const
2776
    RCon: array[0..9] of UInt32 = ($01, $02, $04, $08, $10, $20, $40, $80, $1b, $36);
2777
  var
2778
    I: Integer;
2779
    T: UInt32;
2780
    P: PUInt32Array;
2781
  begin
2782
    P := FAdditionalBuffer;
2783
    if Size <= 16 then
2784
    begin
2785
      for I := 0 to 9 do
2786
      begin
2787
        T := P[3];
2788
        P[4] := Rijndael_S[0, T shr  8 and $FF]        xor
2789
                Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2790
                Rijndael_S[0, T shr 24        ] shl 16 xor
2791
                Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2792
        P[5] := P[1] xor P[4];
2793
        P[6] := P[2] xor P[5];
2794
        P[7] := P[3] xor P[6];
2795
        P    := @P[4];
2796
      end;
2797
    end
2798
    else
2799
      if Size <= 24 then
2800
      begin
2801
        for I := 0 to 7 do
2802
        begin
2803
          T := P[5];
2804
          P[6] := Rijndael_S[0, T shr  8 and $FF]        xor
2805
                  Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2806
                  Rijndael_S[0, T shr 24        ] shl 16 xor
2807
                  Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2808
          P[7] := P[1] xor P[6];
2809
          P[8] := P[2] xor P[7];
2810
          P[9] := P[3] xor P[8];
2811
          if I = 7 then
2812
            Break;
2813
          P[10] := P[4] xor P[9];
2814
          P[11] := P[5] xor P[10];
2815
          P     := @P[6];
2816
        end;
2817
      end
2818
      else
2819
      begin
2820
        for I :=0 to 6 do
2821
        begin
2822
          T := P[7];
2823
          P[8] := Rijndael_S[0, T shr  8 and $FF]        xor
2824
                  Rijndael_S[0, T shr 16 and $FF] shl  8 xor
2825
                  Rijndael_S[0, T shr 24        ] shl 16 xor
2826
                  Rijndael_S[0, T        and $FF] shl 24 xor P[0] xor RCon[I];
2827
          P[9] := P[1] xor P[8];
2828
          P[10] := P[2] xor P[9];
2829
          P[11] := P[3] xor P[10];
2830
          if I = 6 then
2831
            Break;
2832
          T := P[11];
2833
          P[12] := Rijndael_S[0, T        and $FF]        xor
2834
                   Rijndael_S[0, T shr  8 and $FF] shl  8 xor
2835
                   Rijndael_S[0, T shr 16 and $FF] shl 16 xor
2836
                   Rijndael_S[0, T shr 24        ] shl 24 xor P[4];
2837
          P[13] := P[5] xor P[12];
2838
          P[14] := P[6] xor P[13];
2839
          P[15] := P[7] xor P[14];
2840
          P     := @P[8];
2841
        end;
2842
      end;
2843
  end;
2844
2845
  procedure BuildDecodeKey;
2846
  var
2847
    P: PUInt32;
2848
    I: Integer;
2849
  begin
2850
    P := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1); // for Pointer Math
2851
    Move(FAdditionalBuffer^, P^, FAdditionalBufferSize shr 1);
2852
    Inc(P, 4);
2853
    for I := 0 to FRounds * 4 - 5 do
2854
    begin
2855
      P^ := Rijndael_T[4, Rijndael_S[0, P^        and $FF]] xor
2856
            Rijndael_T[5, Rijndael_S[0, P^ shr  8 and $FF]] xor
2857
            Rijndael_T[6, Rijndael_S[0, P^ shr 16 and $FF]] xor
2858
            Rijndael_T[7, Rijndael_S[0, P^ shr 24        ]];
2859
      Inc(P);
2860
    end;
2861
  end;
2862
2863
begin
2864
  if Size <= 16 then
2865
    FRounds := 10
2866
  else
2867
  if Size <= 24 then
2868
    FRounds := 12
2869
  else
2870
    FRounds := 14;
2871
  FillChar(FAdditionalBuffer^, 32, 0);
2872
  Move(Key, FAdditionalBuffer^, Size);
2873
  BuildEncodeKey;
2874
  BuildDecodeKey;
2875
2876
  inherited;
2877
end;
2878
2879
procedure TCipher_Rijndael.DoEncode(Source, Dest: Pointer; Size: Integer);
2880
var
2881
  P: PUInt32Array;
2882
  I: Integer;
2883
  A2, B2, C2, D2: UInt32;
2884
  A1, B1, C1, D1: UInt32;
2885
begin
2886
  Assert(Size = Context.BlockSize);
2887
2888
  P  := FAdditionalBuffer;
2889
  A1 := PUInt32Array(Source)[0];
2890
  B1 := PUInt32Array(Source)[1];
2891
  C1 := PUInt32Array(Source)[2];
2892
  D1 := PUInt32Array(Source)[3];
2893
2894
  for I := 2 to FRounds do
2895
  begin
2896
    A2 := A1 xor P[0];
2897
    B2 := B1 xor P[1];
2898
    C2 := C1 xor P[2];
2899
    D2 := D1 xor P[3];
2900
2901
    A1 := Rijndael_T[0, A2        and $FF] xor
2902
          Rijndael_T[1, B2 shr  8 and $FF] xor
2903
          Rijndael_T[2, C2 shr 16 and $FF] xor
2904
          Rijndael_T[3, D2 shr 24        ];
2905
    B1 := Rijndael_T[0, B2        and $FF] xor
2906
          Rijndael_T[1, C2 shr  8 and $FF] xor
2907
          Rijndael_T[2, D2 shr 16 and $FF] xor
2908
          Rijndael_T[3, A2 shr 24        ];
2909
    C1 := Rijndael_T[0, C2        and $FF] xor
2910
          Rijndael_T[1, D2 shr  8 and $FF] xor
2911
          Rijndael_T[2, A2 shr 16 and $FF] xor
2912
          Rijndael_T[3, B2 shr 24        ];
2913
    D1 := Rijndael_T[0, D2        and $FF] xor
2914
          Rijndael_T[1, A2 shr  8 and $FF] xor
2915
          Rijndael_T[2, B2 shr 16 and $FF] xor
2916
          Rijndael_T[3, C2 shr 24        ];
2917
2918
    P := @P[4];
2919
  end;
2920
2921
  A2 := A1 xor P[0];
2922
  B2 := B1 xor P[1];
2923
  C2 := C1 xor P[2];
2924
  D2 := D1 xor P[3];
2925
2926
  PUInt32Array(Dest)[0] := (Rijndael_S[0, A2        and $FF]        or
2927
                          Rijndael_S[0, B2 shr  8 and $FF] shl  8 or
2928
                          Rijndael_S[0, C2 shr 16 and $FF] shl 16 or
2929
                          Rijndael_S[0, D2 shr 24        ] shl 24)     xor P[4];
2930
  PUInt32Array(Dest)[1] := (Rijndael_S[0, B2        and $FF]        or
2931
                          Rijndael_S[0, C2 shr  8 and $FF] shl  8 or
2932
                          Rijndael_S[0, D2 shr 16 and $FF] shl 16 or
2933
                          Rijndael_S[0, A2 shr 24        ] shl 24)     xor P[5];
2934
  PUInt32Array(Dest)[2] := (Rijndael_S[0, C2        and $FF]        or
2935
                          Rijndael_S[0, D2 shr  8 and $FF] shl  8 or
2936
                          Rijndael_S[0, A2 shr 16 and $FF] shl 16 or
2937
                          Rijndael_S[0, B2 shr 24        ] shl 24)     xor P[6];
2938
  PUInt32Array(Dest)[3] := (Rijndael_S[0, D2        and $FF]        or
2939
                          Rijndael_S[0, A2 shr  8 and $FF] shl  8 or
2940
                          Rijndael_S[0, B2 shr 16 and $FF] shl 16 or
2941
                          Rijndael_S[0, C2 shr 24        ] shl 24)     xor P[7];
2942
end;
2943
2944
procedure TCipher_Rijndael.DoDecode(Source, Dest: Pointer; Size: Integer);
2945
var
2946
  P: PUInt32Array;
2947
  I: Integer;
2948
  A2, B2, C2, D2: UInt32;
2949
  A1, B1, C1, D1: UInt32;
2950
begin
2951
  Assert(Size = Context.BlockSize);
2952
2953
  P  := Pointer(PByte(FAdditionalBuffer) + FAdditionalBufferSize shr 1 + FRounds * 16); // for Pointer Math
2954
  A1 := PUInt32Array(Source)[0];
2955
  B1 := PUInt32Array(Source)[1];
2956
  C1 := PUInt32Array(Source)[2];
2957
  D1 := PUInt32Array(Source)[3];
2958
2959
  for I := 2 to FRounds do
2960
  begin
2961
    A2 := A1 xor P[0];
2962
    B2 := B1 xor P[1];
2963
    C2 := C1 xor P[2];
2964
    D2 := D1 xor P[3];
2965
2966
    A1 := Rijndael_T[4, A2        and $FF] xor
2967
          Rijndael_T[5, D2 shr  8 and $FF] xor
2968
          Rijndael_T[6, C2 shr 16 and $FF] xor
2969
          Rijndael_T[7, B2 shr 24        ];
2970
    B1 := Rijndael_T[4, B2        and $FF] xor
2971
          Rijndael_T[5, A2 shr  8 and $FF] xor
2972
          Rijndael_T[6, D2 shr 16 and $FF] xor
2973
          Rijndael_T[7, C2 shr 24        ];
2974
    C1 := Rijndael_T[4, C2        and $FF] xor
2975
          Rijndael_T[5, B2 shr  8 and $FF] xor
2976
          Rijndael_T[6, A2 shr 16 and $FF] xor
2977
          Rijndael_T[7, D2 shr 24        ];
2978
    D1 := Rijndael_T[4, D2        and $FF] xor
2979
          Rijndael_T[5, C2 shr  8 and $FF] xor
2980
          Rijndael_T[6, B2 shr 16 and $FF] xor
2981
          Rijndael_T[7, A2 shr 24        ];
2982
2983
    Dec(PUInt32(P), 4);
2984
  end;
2985
2986
  A2 := A1 xor P[0];
2987
  B2 := B1 xor P[1];
2988
  C2 := C1 xor P[2];
2989
  D2 := D1 xor P[3];
2990
2991
  Dec(PUInt32(P), 4);
2992
2993
  PUInt32Array(Dest)[0] := (Rijndael_S[1, A2        and $FF]        or
2994
                          Rijndael_S[1, D2 shr  8 and $FF] shl  8 or
2995
                          Rijndael_S[1, C2 shr 16 and $FF] shl 16 or
2996
                          Rijndael_S[1, B2 shr 24]         shl 24)    xor P[0];
2997
  PUInt32Array(Dest)[1] := (Rijndael_S[1, B2        and $FF]        or
2998
                          Rijndael_S[1, A2 shr  8 and $FF] shl  8 or
2999
                          Rijndael_S[1, D2 shr 16 and $FF] shl 16 or
3000
                          Rijndael_S[1, C2 shr 24]         shl 24)    xor P[1];
3001
  PUInt32Array(Dest)[2] := (Rijndael_S[1, C2        and $FF]        or
3002
                          Rijndael_S[1, B2 shr  8 and $FF] shl  8 or
3003
                          Rijndael_S[1, A2 shr 16 and $FF] shl 16 or
3004
                          Rijndael_S[1, D2 shr 24]         shl 24)    xor P[2];
3005
  PUInt32Array(Dest)[3] := (Rijndael_S[1, D2        and $FF]        or
3006
                          Rijndael_S[1, C2 shr  8 and $FF] shl  8 or
3007
                          Rijndael_S[1, B2 shr 16 and $FF] shl 16 or
3008
                          Rijndael_S[1, A2 shr 24]         shl 24)    xor P[3];
3009
end;
3010
3011
{ TCipher_Square }
3012
3013
class function TCipher_Square.Context: TCipherContext;
3014
begin
3015
  Result.KeySize                     := 16;
3016
  Result.BlockSize                   := 16;
3017
  Result.BufferSize                  := 16;
3018
  Result.AdditionalBufferSize        := 9 * 4 * 2 * SizeOf(UInt32);
3019
  Result.NeedsAdditionalBufferBackup := False;
3020
  Result.MinRounds                   := 1;
3021
  Result.MaxRounds                   := 1;
3022
  Result.CipherType                  := [ctSymmetric, ctBlock];
3023
end;
3024
3025
procedure TCipher_Square.DoInit(const Key; Size: Integer);
3026
type
3027
  PSquare_Key = ^TSquare_Key;
3028
  TSquare_Key = array[0..8, 0..3] of UInt32;
3029
var
3030
  E, D: PSquare_Key;
3031
  S, T, R: UInt32;
3032
  I, J: Integer;
3033
begin
3034
  E := FAdditionalBuffer;
3035
  D := FAdditionalBuffer; Inc(D);
3036
  Move(Key, E^, Size);
3037
3038
  for I := 1 to 8 do
3039
  begin
3040
    T := E[I - 1, 3];
3041
    T := T shr 8 or T shl 24;
3042
    E[I, 0] := E[I - 1, 0] xor T xor 1 shl (I - 1);
3043
    E[I, 1] := E[I - 1, 1] xor E[I, 0];
3044
    E[I, 2] := E[I - 1, 2] xor E[I, 1];
3045
    E[I, 3] := E[I - 1, 3] xor E[I, 2];
3046
3047
    D[8 - I, 0] := E[I, 0];
3048
    D[8 - I, 1] := E[I, 1];
3049
    D[8 - I, 2] := E[I, 2];
3050
    D[8 - I, 3] := E[I, 3];
3051
3052
    for J := 0 to 3 do
3053
    begin
3054
      R := E[I - 1, J];
3055
      S := Square_PHI[R and $FF];
3056
      T := Square_PHI[R shr  8 and $FF];
3057
      T := T shl 8 or T shr 24;
3058
      S := S xor T;
3059
      T := Square_PHI[R shr 16 and $FF];
3060
      T := T shl 16 or T shr 16;
3061
      S := S xor T;
3062
      T := Square_PHI[R shr 24];
3063
      T := T shl 24 or T shr 8;
3064
      S := S xor T;
3065
      E[I - 1, J] := S;
3066
    end;
3067
  end;
3068
3069
  D[8] := E[0];
3070
3071
  inherited;
3072
end;
3073
3074
procedure TCipher_Square.DoEncode(Source, Dest: Pointer; Size: Integer);
3075
var
3076
  Key: PUInt32Array;
3077
  A, B, C, D: UInt32;
3078
  AA, BB, CC: UInt32;
3079
  I: Integer;
3080
begin
3081
  Key := FAdditionalBuffer;
3082
  A := PUInt32Array(Source)[0] xor Key[0];
3083
  B := PUInt32Array(Source)[1] xor Key[1];
3084
  C := PUInt32Array(Source)[2] xor Key[2];
3085
  D := PUInt32Array(Source)[3] xor Key[3];
3086
  Key := @Key[4];
3087
3088
  for I := 0 to 6 do
3089
  begin
3090
    AA := Square_TE[0, A        and $FF] xor
3091
          Square_TE[1, B        and $FF] xor
3092
          Square_TE[2, C        and $FF] xor
3093
          Square_TE[3, D        and $FF] xor Key[0];
3094
    BB := Square_TE[0, A shr  8 and $FF] xor
3095
          Square_TE[1, B shr  8 and $FF] xor
3096
          Square_TE[2, C shr  8 and $FF] xor
3097
          Square_TE[3, D shr  8 and $FF] xor Key[1];
3098
    CC := Square_TE[0, A shr 16 and $FF] xor
3099
          Square_TE[1, B shr 16 and $FF] xor
3100
          Square_TE[2, C shr 16 and $FF] xor
3101
          Square_TE[3, D shr 16 and $FF] xor Key[2];
3102
    D  := Square_TE[0, A shr 24        ] xor
3103
          Square_TE[1, B shr 24        ] xor
3104
          Square_TE[2, C shr 24        ] xor
3105
          Square_TE[3, D shr 24        ] xor Key[3];
3106
3107
    A := AA; B := BB; C := CC;
3108
3109
    Key := @Key[4];
3110
  end;
3111
3112
  PUInt32Array(Dest)[0] := UInt32(Square_SE[A        and $FF])        xor
3113
                         UInt32(Square_SE[B        and $FF]) shl  8 xor
3114
                         UInt32(Square_SE[C        and $FF]) shl 16 xor
3115
                         UInt32(Square_SE[D        and $FF]) shl 24 xor Key[0];
3116
  PUInt32Array(Dest)[1] := UInt32(Square_SE[A shr  8 and $FF])        xor
3117
                         UInt32(Square_SE[B shr  8 and $FF]) shl  8 xor
3118
                         UInt32(Square_SE[C shr  8 and $FF]) shl 16 xor
3119
                         UInt32(Square_SE[D shr  8 and $FF]) shl 24 xor Key[1];
3120
  PUInt32Array(Dest)[2] := UInt32(Square_SE[A shr 16 and $FF])        xor
3121
                         UInt32(Square_SE[B shr 16 and $FF]) shl  8 xor
3122
                         UInt32(Square_SE[C shr 16 and $FF]) shl 16 xor
3123
                         UInt32(Square_SE[D shr 16 and $FF]) shl 24 xor Key[2];
3124
  PUInt32Array(Dest)[3] := UInt32(Square_SE[A shr 24        ])        xor
3125
                         UInt32(Square_SE[B shr 24        ]) shl  8 xor
3126
                         UInt32(Square_SE[C shr 24        ]) shl 16 xor
3127
                         UInt32(Square_SE[D shr 24        ]) shl 24 xor Key[3];
3128
end;
3129
3130
procedure TCipher_Square.DoDecode(Source, Dest: Pointer; Size: Integer);
3131
var
3132
  Key: PUInt32Array;
3133
  A, B, C, D: UInt32;
3134
  AA, BB, CC: UInt32;
3135
  I: Integer;
3136
begin
3137
  Key := @PUInt32Array(FAdditionalBuffer)[9 * 4];
3138
  A := PUInt32Array(Source)[0] xor Key[0];
3139
  B := PUInt32Array(Source)[1] xor Key[1];
3140
  C := PUInt32Array(Source)[2] xor Key[2];
3141
  D := PUInt32Array(Source)[3] xor Key[3];
3142
  Key := @Key[4];
3143
3144
  for I := 0 to 6 do
3145
  begin
3146
    AA := Square_TD[0, A        and $FF] xor
3147
          Square_TD[1, B        and $FF] xor
3148
          Square_TD[2, C        and $FF] xor
3149
          Square_TD[3, D        and $FF] xor Key[0];
3150
    BB := Square_TD[0, A shr  8 and $FF] xor
3151
          Square_TD[1, B shr  8 and $FF] xor
3152
          Square_TD[2, C shr  8 and $FF] xor
3153
          Square_TD[3, D shr  8 and $FF] xor Key[1];
3154
    CC := Square_TD[0, A shr 16 and $FF] xor
3155
          Square_TD[1, B shr 16 and $FF] xor
3156
          Square_TD[2, C shr 16 and $FF] xor
3157
          Square_TD[3, D shr 16 and $FF] xor Key[2];
3158
    D  := Square_TD[0, A shr 24        ] xor
3159
          Square_TD[1, B shr 24        ] xor
3160
          Square_TD[2, C shr 24        ] xor
3161
          Square_TD[3, D shr 24        ] xor Key[3];
3162
3163
    A := AA; B := BB; C := CC;
3164
    Key := @Key[4];
3165
  end;
3166
3167
  PUInt32Array(Dest)[0] := UInt32(Square_SD[A        and $FF])        xor
3168
                         UInt32(Square_SD[B        and $FF]) shl  8 xor
3169
                         UInt32(Square_SD[C        and $FF]) shl 16 xor
3170
                         UInt32(Square_SD[D        and $FF]) shl 24 xor Key[0];
3171
  PUInt32Array(Dest)[1] := UInt32(Square_SD[A shr  8 and $FF])        xor
3172
                         UInt32(Square_SD[B shr  8 and $FF]) shl  8 xor
3173
                         UInt32(Square_SD[C shr  8 and $FF]) shl 16 xor
3174
                         UInt32(Square_SD[D shr  8 and $FF]) shl 24 xor Key[1];
3175
  PUInt32Array(Dest)[2] := UInt32(Square_SD[A shr 16 and $FF])        xor
3176
                         UInt32(Square_SD[B shr 16 and $FF]) shl  8 xor
3177
                         UInt32(Square_SD[C shr 16 and $FF]) shl 16 xor
3178
                         UInt32(Square_SD[D shr 16 and $FF]) shl 24 xor Key[2];
3179
  PUInt32Array(Dest)[3] := UInt32(Square_SD[A shr 24        ])        xor
3180
                         UInt32(Square_SD[B shr 24        ]) shl  8 xor
3181
                         UInt32(Square_SD[C shr 24        ]) shl 16 xor
3182
                         UInt32(Square_SD[D shr 24        ]) shl 24 xor Key[3];
3183
end;
3184
3185
{ TCipher_SCOP }
3186
3187
class function TCipher_SCOP.Context: TCipherContext;
3188
begin
3189
  Result.KeySize                     := 48;
3190
  Result.BlockSize                   := 4;
3191
  Result.BufferSize                  := 32;
3192
  Result.AdditionalBufferSize        := 384 * 4 + 3 * SizeOf(UInt32);
3193
  Result.NeedsAdditionalBufferBackup := True;
3194
  Result.MinRounds                   := 1;
3195
  Result.MaxRounds                   := 1;
3196
  Result.CipherType                  := [ctSymmetric, ctStream];
3197
end;
3198
3199
procedure TCipher_SCOP.DoInit(const Key; Size: Integer);
3200
var
3201
  Init_State: packed record
3202
    Coef: array[0..7, 0..3] of Byte;
3203
    X: array[0..3] of UInt32;
3204
  end;
3205
3206
  procedure ExpandKey;
3207
  var
3208
    P: PByteArray;
3209
    I, C: Integer;
3210
  begin
3211
    C := 1;
3212
    P := @Init_State;
3213
    Move(Key, P^, Size);
3214
    for I := Size to 47 do
3215
      P[I] := P[I - Size] + P[I - Size + 1];
3216
    for I := 0 to 31 do
3217
      if P[I] = 0 then
3218
      begin
3219
        P[I] := C;
3220
        Inc(C);
3221
      end;
3222
  end;
3223
3224
  procedure GP8(Data: PUInt32Array);
3225
  var
3226
    I, I2: Integer;
3227
    NewX: array[0..3] of UInt32;
3228
    X1, X2, X3, X4: UInt32;
3229
    Y1, Y2: UInt32;
3230
  begin
3231
    I := 0;
3232
    I2 := 0;
3233
    while I < 8 do
3234
    begin
3235
      X1 := Init_State.X[I2] shr 16;
3236
      X2 := X1 * X1;
3237
      X3 := X2 * X1;
3238
      X4 := X3 * X1;
3239
      Y1 := Init_State.Coef[I][0] * X4 +
3240
            Init_State.Coef[I][1] * X3 +
3241
            Init_State.Coef[I][2] * X2 +
3242
            Init_State.Coef[I][3] * X1 + 1;
3243
      X1 := Init_State.X[I2] and $FFFF;
3244
      X2 := X1 * X1;
3245
      X3 := X2 * X1;
3246
      X4 := X3 * X1;
3247
      Y2 := Init_State.Coef[I + 1][0] * X4 +
3248
            Init_State.Coef[I + 1][1] * X3 +
3249
            Init_State.Coef[I + 1][2] * X2 +
3250
            Init_State.Coef[I + 1][3] * X1 + 1;
3251
      Data[I2] := Y1 shl 16 or Y2 and $FFFF;
3252
      NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16;
3253
      Inc(I2);
3254
      Inc(I, 2);
3255
    end;
3256
    Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16;
3257
    Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16;
3258
    Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16;
3259
    Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16;
3260
  end;
3261
3262
var
3263
  I, J: Integer;
3264
  T: array[0..3] of UInt32;
3265
  P: PUInt32Array;
3266
begin
3267
  FillChar(Init_State, SizeOf(Init_State), 0);
3268
  FillChar(T, SizeOf(T), 0);
3269
  P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math
3270
  ExpandKey;
3271
  for I := 0 to 7 do
3272
    GP8(@T);
3273
  for I := 0 to 11 do
3274
  begin
3275
    for J := 0 to 7 do
3276
      GP8(@P[I * 32 + J * 4]);
3277
    GP8(@T);
3278
  end;
3279
  GP8(@T);
3280
  I := T[3] and $7F;
3281
  P[I] := P[I] or 1;
3282
  P := FAdditionalBuffer;
3283
  P[0] := T[3] shr 24 and $FF;
3284
  P[1] := T[3] shr 16 and $FF;
3285
  P[2] := T[3] shr  8 and $FF;
3286
  ProtectBuffer(Init_State, SizeOf(Init_State));
3287
3288
  inherited;
3289
end;
3290
3291
procedure TCipher_SCOP.DoEncode(Source, Dest: Pointer; Size: Integer);
3292
var
3293
  I, J: Byte;
3294
  T2, T3, T1: UInt32;
3295
  P: PUInt32Array;
3296
  W: Integer;
3297
begin
3298
  P  := FAdditionalBuffer;
3299
  I  := P[0];
3300
  J  := P[1];
3301
  T3 := P[2];
3302
  for W := 0 to Size div 4 - 1 do
3303
  begin
3304
    T1 := P[J + 3 + 128]; Inc(J, T3);
3305
    T2 := P[J + 3 + 128];
3306
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2;
3307
    T3 := T2 + P[I + 3];  Inc(I);
3308
    P[J + 3 + 128] := T3;
3309
    Inc(J, T2);
3310
  end;
3311
  P[0] := I;
3312
  P[1] := J;
3313
  P[2] := T3;
3314
end;
3315
3316
procedure TCipher_SCOP.DoDecode(Source, Dest: Pointer; Size: Integer);
3317
var
3318
  I, J: Byte;
3319
  T1, T2, T3: UInt32;
3320
  P: PUInt32Array;
3321
  W: Integer;
3322
begin
3323
  P  := FAdditionalBuffer;
3324
  I  := P[0];
3325
  J  := P[1];
3326
  T3 := P[2];
3327
  for W := 0 to Size div 4 - 1 do
3328
  begin
3329
    T1 := P[J + 3 + 128]; Inc(J, T3);
3330
    T2 := P[J + 3 + 128];
3331
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2;
3332
    T3 := T2 + P[I + 3];
3333
    Inc(I);
3334
    P[J + 3 + 128] := T3;
3335
    Inc(J, T2);
3336
  end;
3337
  P[0] := I;
3338
  P[1] := J;
3339
  P[2] := T3;
3340
end;
3341
3342
{ TCipher_SCOP_DEC52 }
3343
3344
class function TCipher_SCOP_DEC52.Context: TCipherContext;
3345
begin
3346
  Result.KeySize                     := 48;
3347
  Result.BlockSize                   := 4;
3348
  Result.BufferSize                  := 32;
3349
  Result.AdditionalBufferSize        := 384 * 4 + 3 * SizeOf(UInt32);
3350
  Result.NeedsAdditionalBufferBackup := True;
3351
  Result.MinRounds                   := 1;
3352
  Result.MaxRounds                   := 1;
3353
  Result.CipherType                  := [ctSymmetric, ctStream];
3354
end;
3355
3356
procedure TCipher_SCOP_DEC52.DoInit(const Key; Size: Integer);
3357
var
3358
  Init_State: packed record
3359
    Coef: array[0..7, 0..3] of Byte;
3360
    X: array[0..3] of UInt32;
3361
  end;
3362
3363
  procedure ExpandKey;
3364
  var
3365
    P: PByteArray;
3366
    I, C: Integer;
3367
  begin
3368
    C := 1;
3369
    P := @Init_State;
3370
    Move(Key, P^, Size);
3371
    for I := Size to 47 do
3372
      P[I] := P[I - Size] + P[I - Size + 1];
3373
    for I := 0 to 31 do
3374
      if P[I] = 0 then
3375
      begin
3376
        P[I] := C;
3377
        Inc(C);
3378
      end;
3379
  end;
3380
3381
  procedure GP8(Data: PUInt32Array);
3382
  var
3383
    I, I2: Integer;
3384
    NewX: array[0..3] of UInt32;
3385
    X1, X2, X3, X4: UInt32;
3386
    Y1, Y2: UInt32;
3387
  begin
3388
    I := 0;
3389
    I2 := 0;
3390
    while I < 8 do
3391
    begin
3392
      X1 := Init_State.X[I2] shr 16;
3393
      X2 := X1 * X1;
3394
      X3 := X2 * X1;
3395
      X4 := X3 * X1;
3396
      Y1 := Init_State.Coef[I][0] * X4 +
3397
            Init_State.Coef[I][1] * X3 +
3398
            Init_State.Coef[I][2] * X2 +
3399
            Init_State.Coef[I][3] * X1 + 1;
3400
      X1 := Init_State.X[I2] and $FFFF;
3401
      X2 := X1 * X1;
3402
      X3 := X2 * X1;
3403
      X4 := X3 * X1;
3404
      Y2 := Init_State.Coef[I + 1][0] * X4 +
3405
            Init_State.Coef[I + 2][1] * X3 +
3406
            Init_State.Coef[I + 3][2] * X2 +
3407
            Init_State.Coef[I + 4][3] * X1 + 1;
3408
      Data[I2] := Y1 shl 16 or Y2 and $FFFF;
3409
      NewX[I2] := Y1 and $FFFF0000 or Y2 shr 16;
3410
      Inc(I2);
3411
      Inc(I, 2);
3412
    end;
3413
    Init_State.X[0] := NewX[0] shr 16 or NewX[3] shl 16;
3414
    Init_State.X[1] := NewX[0] shl 16 or NewX[1] shr 16;
3415
    Init_State.X[2] := NewX[1] shl 16 or NewX[2] shr 16;
3416
    Init_State.X[3] := NewX[2] shl 16 or NewX[3] shr 16;
3417
  end;
3418
3419
var
3420
  I, J: Integer;
3421
  T: array[0..3] of Integer;
3422
  P: PUInt32Array;
3423
begin
3424
  FillChar(Init_State, SizeOf(Init_State), 0);
3425
  FillChar(T, SizeOf(T), 0);
3426
  P := Pointer(PByte(FAdditionalBuffer) + 12); // for Pointer Math
3427
  ExpandKey;
3428
  for I := 0 to 7 do
3429
    GP8(@T);
3430
  for I := 0 to 11 do
3431
  begin
3432
    for J := 0 to 7 do
3433
      GP8(@P[I * 32 + J * 4]);
3434
    GP8(@T);
3435
  end;
3436
  GP8(@T);
3437
  I := T[3] and $7F;
3438
  P[I + 3] := P[I + 3] or 1;
3439
  P := FAdditionalBuffer;
3440
  P[0] := T[3] shr 24 and $FF;
3441
  P[1] := T[3] shr 16 and $FF;
3442
  P[2] := T[3] shr  8 and $FF;
3443
  ProtectBuffer(Init_State, SizeOf(Init_State));
3444
3445
  inherited;
3446
end;
3447
3448
procedure TCipher_SCOP_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer);
3449
var
3450
  I, J: Byte;
3451
  T2, T3, T1: UInt32;
3452
  P: PUInt32Array;
3453
  W: Integer;
3454
begin
3455
  P  := FAdditionalBuffer;
3456
  I  := P[0];
3457
  J  := P[1];
3458
  T3 := P[2];
3459
  for W := 0 to Size div 4 - 1 do
3460
  begin
3461
    T1 := P[J + 3 + 128]; Inc(J, T3);
3462
    T2 := P[J + 3 + 128];
3463
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] + T1 + T2;
3464
    T3 := T2 + P[I + 3];  Inc(I);
3465
    P[J + 3 + 128] := T3;
3466
    Inc(J, T2);
3467
  end;
3468
  P[0] := I;
3469
  P[1] := J;
3470
  P[2] := T3;
3471
end;
3472
3473
procedure TCipher_SCOP_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer);
3474
var
3475
  I, J: Byte;
3476
  T1, T2, T3: UInt32;
3477
  P: PUInt32Array;
3478
  W: Integer;
3479
begin
3480
  P  := FAdditionalBuffer;
3481
  I  := P[0];
3482
  J  := P[1];
3483
  T3 := P[2];
3484
  for W := 0 to Size div 4 - 1 do
3485
  begin
3486
    T1 := P[J + 3 + 128]; Inc(J, T3);
3487
    T2 := P[J + 3 + 128];
3488
    PUInt32Array(Dest)[W] := PUInt32Array(Source)[W] - T1 - T2;
3489
    T3 := T2 + P[I + 3];
3490
    Inc(I);
3491
    P[J + 3 + 128] := T3;
3492
    Inc(J, T2);
3493
  end;
3494
  P[0] := I;
3495
  P[1] := J;
3496
  P[2] := T3;
3497
end;
3498
3499
{ TCipher_Sapphire }
3500
3501
type
3502
  PSapphireKey = ^TSapphireKey;
3503
  TSapphireKey = packed record
3504
    Cards: array[0..255] of UInt32;
3505
    Rotor: UInt32;
3506
    Ratchet: UInt32;
3507
    Avalanche: UInt32;
3508
    Plain: UInt32;
3509
    Cipher: UInt32;
3510
  end;
3511
3512
class function TCipher_Sapphire.Context: TCipherContext;
3513
begin
3514
  Result.KeySize                     := 1024;
3515
  Result.BlockSize                   := 1;
3516
  Result.BufferSize                  := 32;
3517
  Result.AdditionalBufferSize        := SizeOf(TSapphireKey);
3518
  Result.NeedsAdditionalBufferBackup := True;
3519
  Result.MinRounds                   := 1;
3520
  Result.MaxRounds                   := 1;
3521
  Result.CipherType                  := [ctSymmetric, ctStream];
3522
end;
3523
3524
procedure TCipher_Sapphire.DoInit(const Key; Size: Integer);
3525
var
3526
  Sum: Byte;
3527
  P: Integer;
3528
3529
  function KeyRand(Max: UInt32): Byte;
3530
  var
3531
    I, M: UInt32;
3532
  begin
3533
    Result := 0;
3534
    if Max = 0 then
3535
      Exit;
3536
    I := 0;
3537
    M := 1;
3538
3539
    while M < Max do
3540
     Inc(M, M or 1);
3541
3542
    repeat
3543
      Inc(Sum, TByteArray(Key)[P]);
3544
      Inc(P);
3545
      if P >= Size then
3546
      begin
3547
        P := 0;
3548
        Inc(Sum, Size);
3549
      end;
3550
      Result := M and Sum;
3551
      Inc(I);
3552
      if I > 11 then
3553
        Result := Result mod Max;
3554
    until Result <= Max;
3555
  end;
3556
3557
var
3558
  I, S, T: Integer;
3559
  SKey : PSapphireKey;
3560
begin
3561
  SKey := PSapphireKey(FAdditionalBuffer);
3562
  if Size <= 0 then
3563
  begin
3564
    SKey.Rotor     := 1;
3565
    SKey.Ratchet   := 3;
3566
    SKey.Avalanche := 5;
3567
    SKey.Plain     := 7;
3568
    SKey.Cipher    := 11;
3569
    for I := 0 to 255 do
3570
      SKey.Cards[I] := 255 - I;
3571
  end
3572
  else
3573
  begin
3574
    for I := 0 to 255 do
3575
      SKey.Cards[I] := I;
3576
    P   := 0;
3577
    Sum := 0;
3578
    for I := 255 downto 1 do
3579
    begin
3580
      S := KeyRand(I);
3581
      T := SKey.Cards[I];
3582
      SKey.Cards[I] := SKey.Cards[S];
3583
      SKey.Cards[S] := T;
3584
    end;
3585
    SKey.Rotor     := SKey.Cards[1];
3586
    SKey.Ratchet   := SKey.Cards[3];
3587
    SKey.Avalanche := SKey.Cards[5];
3588
    SKey.Plain     := SKey.Cards[7];
3589
    SKey.Cipher    := SKey.Cards[Sum];
3590
  end;
3591
3592
  inherited;
3593
end;
3594
3595
procedure TCipher_Sapphire.DoEncode(Source, Dest: Pointer; Size: Integer);
3596
var
3597
  T: UInt32;
3598
  I: Integer;
3599
  SKey: PSapphireKey;
3600
begin
3601
  SKey := PSapphireKey(FAdditionalBuffer);
3602
  for I := 0 to Size - 1 do
3603
  begin
3604
    SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF;
3605
    SKey.Rotor := (SKey.Rotor + 1) and $FF;
3606
    T := SKey.Cards[SKey.Cipher];
3607
    SKey.Cards[SKey.Cipher]  := SKey.Cards[SKey.Ratchet];
3608
    SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain];
3609
    SKey.Cards[SKey.Plain]   := SKey.Cards[SKey.Rotor];
3610
    SKey.Cards[SKey.Rotor]   := T;
3611
    SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF;
3612
    T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF;
3613
    SKey.Plain := PByteArray(Source)[I];
3614
    SKey.Cipher := SKey.Plain xor SKey.Cards[SKey.Cards[T]] xor
3615
                   SKey.Cards[(SKey.Cards[SKey.Ratchet] +
3616
                   SKey.Cards[SKey.Rotor]) and $FF];
3617
    PByteArray(Dest)[I] := SKey.Cipher;
3618
  end;
3619
end;
3620
3621
procedure TCipher_Sapphire.DoDecode(Source, Dest: Pointer; Size: Integer);
3622
var
3623
  T: UInt32;
3624
  I: Integer;
3625
  SKey: PSapphireKey;
3626
begin
3627
  SKey := PSapphireKey(FAdditionalBuffer);
3628
  for I := 0 to Size - 1 do
3629
  begin
3630
    SKey.Ratchet := (SKey.Ratchet + SKey.Cards[SKey.Rotor]) and $FF;
3631
    SKey.Rotor := (SKey.Rotor + 1) and $FF;
3632
    T := SKey.Cards[SKey.Cipher];
3633
    SKey.Cards[SKey.Cipher]  := SKey.Cards[SKey.Ratchet];
3634
    SKey.Cards[SKey.Ratchet] := SKey.Cards[SKey.Plain];
3635
    SKey.Cards[SKey.Plain]   := SKey.Cards[SKey.Rotor];
3636
    SKey.Cards[SKey.Rotor]   := T;
3637
    SKey.Avalanche := (SKey.Avalanche + SKey.Cards[T]) and $FF;
3638
    T := (SKey.Cards[SKey.Plain] + SKey.Cards[SKey.Cipher] + SKey.Cards[SKey.Avalanche]) and $FF;
3639
    SKey.Cipher := PByteArray(Source)[I];
3640
    SKey.Plain := SKey.Cipher xor SKey.Cards[SKey.Cards[T]] xor
3641
                  SKey.Cards[(SKey.Cards[SKey.Ratchet] +
3642
                  SKey.Cards[SKey.Rotor]) and $FF];
3643
    PByteArray(Dest)[I] := SKey.Plain;
3644
  end;
3645
end;
3646
3647
{ DES basics }
3648
3649
procedure DES_Func(Source, Dest, Key: PUInt32Array);
3650
var
3651
  L, R, X, Y, I: UInt32;
3652
begin
3653
  L := SwapUInt32(Source[0]);
3654
  R := SwapUInt32(Source[1]);
3655
3656
  X := (L shr  4 xor R) and $0F0F0F0F; R := R xor X; L := L xor X shl  4;
3657
  X := (L shr 16 xor R) and $0000FFFF; R := R xor X; L := L xor X shl 16;
3658
  X := (R shr  2 xor L) and $33333333; L := L xor X; R := R xor X shl  2;
3659
  X := (R shr  8 xor L) and $00FF00FF; L := L xor X; R := R xor X shl  8;
3660
3661
  R := R shl 1 or R shr 31;
3662
  X := (L xor R) and $AAAAAAAA;
3663
  R := R xor X;
3664
  L := L xor X;
3665
  L := L shl 1 or L shr 31;
3666
3667
  for I := 0 to 7 do
3668
  begin
3669
    X := (R shl 28 or R shr 4) xor Key[0];
3670
    Y := R xor Key[1];
3671
    L := L xor (DES_Data[0, X        and $3F] or DES_Data[1, X shr  8 and $3F] or
3672
                DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or
3673
                DES_Data[4, Y        and $3F] or DES_Data[5, Y shr  8 and $3F] or
3674
                DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]);
3675
3676
    X := (L shl 28 or L shr 4) xor Key[2];
3677
    Y := L xor Key[3];
3678
    R := R xor (DES_Data[0, X        and $3F] or DES_Data[1, X shr  8 and $3F] or
3679
                DES_Data[2, X shr 16 and $3F] or DES_Data[3, X shr 24 and $3F] or
3680
                DES_Data[4, Y        and $3F] or DES_Data[5, Y shr  8 and $3F] or
3681
                DES_Data[6, Y shr 16 and $3F] or DES_Data[7, Y shr 24 and $3F]);
3682
    Key := @Key[4];
3683
  end;
3684
3685
  R := R shl 31 or R shr 1;
3686
  X := (L xor R) and $AAAAAAAA;
3687
  R := R xor X;
3688
  L := L xor X;
3689
  L := L shl 31 or L shr 1;
3690
3691
  X := (L shr  8 xor R) and $00FF00FF; R := R xor X; L := L xor X shl  8;
3692
  X := (L shr  2 xor R) and $33333333; R := R xor X; L := L xor X shl  2;
3693
  X := (R shr 16 xor L) and $0000FFFF; L := L xor X; R := R xor X shl 16;
3694
  X := (R shr  4 xor L) and $0F0F0F0F; L := L xor X; R := R xor X shl  4;
3695
3696
  Dest[0] := SwapUInt32(R);
3697
  Dest[1] := SwapUInt32(L);
3698
end;
3699
3700
procedure TCipher_DESBase.DoInitKey(const Data: array of Byte; Key: PUInt32Array; Reverse: Boolean);
3701
const
3702
  ROT: array[0..15] of Byte = (1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28);
3703
var
3704
  I, J, L, M, N: UInt32;
3705
  PC_M, PC_R: array[0..55] of Byte;
3706
  K: array[0..31] of UInt32;
3707
begin
3708
  FillChar(K, SizeOf(K), 0);
3709
  for I := 0 to 55 do
3710
    if Data[DES_PC1[I] shr 3] and ($80 shr (DES_PC1[I] and $07)) <> 0 then
3711
      PC_M[I] := 1
3712
    else
3713
      PC_M[I] := 0;
3714
  for I := 0 to 15 do
3715
  begin
3716
    if Reverse then
3717
      M := (15 - I) shl 1
3718
    else
3719
      M := I shl 1;
3720
    N := M + 1;
3721
    for J := 0 to 27 do
3722
    begin
3723
      L := J + ROT[I];
3724
      if L < 28 then
3725
        PC_R[J] := PC_M[L]
3726
      else
3727
        PC_R[J] := PC_M[L - 28];
3728
    end;
3729
    for J := 28 to 55 do
3730
    begin
3731
      L := J + ROT[I];
3732
      if L < 56 then
3733
        PC_R[J] := PC_M[L]
3734
      else
3735
        PC_R[J] := PC_M[L - 28];
3736
    end;
3737
    L := $1000000;
3738
    for J := 0 to 23 do
3739
    begin
3740
      L := L shr 1;
3741
      if PC_R[DES_PC2[J     ]] <> 0 then
3742
        K[M] := K[M] or L;
3743
      if PC_R[DES_PC2[J + 24]] <> 0 then
3744
        K[N] := K[N] or L;
3745
    end;
3746
  end;
3747
  for I := 0 to 15 do
3748
  begin
3749
    M := I shl 1;
3750
    N := M + 1;
3751
    Key[0] := K[M] and $00FC0000 shl  6 or
3752
              K[M] and $00000FC0 shl 10 or
3753
              K[N] and $00FC0000 shr 10 or
3754
              K[N] and $00000FC0 shr  6;
3755
    Key[1] := K[M] and $0003F000 shl 12 or
3756
              K[M] and $0000003F shl 16 or
3757
              K[N] and $0003F000 shr  4 or
3758
              K[N] and $0000003F;
3759
    Key := @Key[2];
3760
  end;
3761
  ProtectBuffer(K, SizeOf(K));
3762
  ProtectBuffer(PC_M, SizeOf(PC_M));
3763
  ProtectBuffer(PC_R, SizeOf(PC_R));
3764
end;
3765
3766
{ TCipher_1DES }
3767
3768
class function TCipher_1DES.Context: TCipherContext;
3769
begin
3770
  Result.KeySize                     := 8;
3771
  Result.BlockSize                   := 8;
3772
  Result.BufferSize                  := 8;
3773
  Result.AdditionalBufferSize        := 32 * 4 * 2;
3774
  Result.NeedsAdditionalBufferBackup := False;
3775
  Result.MinRounds                   := 1;
3776
  Result.MaxRounds                   := 1;
3777
  Result.CipherType                  := [ctSymmetric, ctBlock];
3778
end;
3779
3780
procedure TCipher_1DES.DoInit(const Key; Size: Integer);
3781
var
3782
  K: array[0..7] of Byte;
3783
begin
3784
  FillChar(K, SizeOf(K), 0);
3785
  Move(Key, K, Size);
3786
  DoInitKey(K, FAdditionalBuffer, False);
3787
  DoInitKey(K, @PUInt32Array(FAdditionalBuffer)[32], True);
3788
  ProtectBuffer(K, SizeOf(K));
3789
3790
  inherited;
3791
end;
3792
3793
procedure TCipher_1DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3794
begin
3795
  Assert(Size = Context.BlockSize);
3796
  DES_Func(Source, Dest, FAdditionalBuffer);
3797
end;
3798
3799
procedure TCipher_1DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3800
begin
3801
  Assert(Size = Context.BlockSize);
3802
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3803
end;
3804
3805
{ TCipher_2DES }
3806
3807
class function TCipher_2DES.Context: TCipherContext;
3808
begin
3809
  Result.KeySize                     := 16;
3810
  Result.BlockSize                   := 8;
3811
  Result.BufferSize                  := 8;
3812
  Result.AdditionalBufferSize        := 32 * 4 * 2 * 2;
3813
  Result.NeedsAdditionalBufferBackup := False;
3814
  Result.MinRounds                   := 1;
3815
  Result.MaxRounds                   := 1;
3816
  Result.CipherType                  := [ctSymmetric, ctBlock];
3817
end;
3818
3819
procedure TCipher_2DES.DoInit(const Key; Size: Integer);
3820
var
3821
  K: array[0..15] of Byte;
3822
  P: PUInt32Array;
3823
begin
3824
  FillChar(K, SizeOf(K), 0);
3825
  Move(Key, K, Size);
3826
  P := FAdditionalBuffer;
3827
  DoInitKey(K[0], @P[ 0], False);
3828
  DoInitKey(K[8], @P[32], True);
3829
  DoInitKey(K[0], @P[64], True);
3830
  DoInitKey(K[8], @P[96], False);
3831
  ProtectBuffer(K, SizeOf(K));
3832
3833
  inherited;
3834
end;
3835
3836
procedure TCipher_2DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3837
begin
3838
  Assert(Size = Context.BlockSize);
3839
  DES_Func(Source, Dest, FAdditionalBuffer);
3840
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3841
  DES_Func(Source, Dest, FAdditionalBuffer);
3842
end;
3843
3844
procedure TCipher_2DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3845
begin
3846
  Assert(Size = Context.BlockSize);
3847
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3848
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]);
3849
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3850
end;
3851
3852
{ TCipher_3DES }
3853
3854
class function TCipher_3DES.Context: TCipherContext;
3855
begin
3856
  Result.KeySize                     := 24;
3857
  Result.BlockSize                   := 8;
3858
  Result.BufferSize                  := 8;
3859
  Result.AdditionalBufferSize        := 32 * 4 * 2 * 3;
3860
  Result.NeedsAdditionalBufferBackup := False;
3861
  Result.MinRounds                   := 1;
3862
  Result.MaxRounds                   := 1;
3863
  Result.CipherType                  := [ctSymmetric, ctBlock];
3864
end;
3865
3866
procedure TCipher_3DES.DoInit(const Key; Size: Integer);
3867
var
3868
  K: array[0..23] of Byte;
3869
  P: PUInt32Array;
3870
begin
3871
  FillChar(K, SizeOf(K), 0);
3872
  Move(Key, K, Size);
3873
  P := FAdditionalBuffer;
3874
  DoInitKey(K[ 0], @P[  0], False);
3875
  DoInitKey(K[ 8], @P[ 32], True);
3876
  DoInitKey(K[16], @P[ 64], False);
3877
  DoInitKey(K[16], @P[ 96], True);
3878
  DoInitKey(K[ 8], @P[128], False);
3879
  DoInitKey(K[ 0], @P[160], True);
3880
  ProtectBuffer(K, SizeOf(K));
3881
3882
  inherited;
3883
end;
3884
3885
procedure TCipher_3DES.DoEncode(Source, Dest: Pointer; Size: Integer);
3886
begin
3887
  Assert(Size = Context.BlockSize);
3888
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[ 0]);
3889
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[32]);
3890
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[64]);
3891
end;
3892
3893
procedure TCipher_3DES.DoDecode(Source, Dest: Pointer; Size: Integer);
3894
begin
3895
  Assert(Size = Context.BlockSize);
3896
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[96]);
3897
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[128]);
3898
  DES_Func(Source, Dest, @PUInt32Array(FAdditionalBuffer)[160]);
3899
end;
3900
3901
{ TCipher_2DDES }
3902
3903
class function TCipher_2DDES.Context: TCipherContext;
3904
begin
3905
  Result            := inherited Context;
3906
  Result.BlockSize  := 16;
3907
  Result.BufferSize := 16;
3908
  Result.MinRounds  := 1;
3909
  Result.MaxRounds  := 1;
3910
  Result.CipherType := [ctSymmetric, ctBlock];
3911
end;
3912
3913
procedure TCipher_2DDES.DoEncode(Source, Dest: Pointer; Size: Integer);
3914
var
3915
  T: UInt32;
3916
begin
3917
  Assert(Size = Context.BlockSize);
3918
3919
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3920
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3921
  T := PUInt32Array(Dest)[1];
3922
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3923
  PUInt32Array(Dest)[2] := T;
3924
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
3925
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
3926
  T := PUInt32Array(Dest)[1];
3927
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3928
  PUInt32Array(Dest)[2] := T;
3929
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3930
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3931
end;
3932
3933
procedure TCipher_2DDES.DoDecode(Source, Dest: Pointer; Size: Integer);
3934
var
3935
  T: UInt32;
3936
begin
3937
  Assert(Size = Context.BlockSize);
3938
3939
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3940
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3941
  T := PUInt32Array(Dest)[1];
3942
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3943
  PUInt32Array(Dest)[2] := T;
3944
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
3945
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
3946
  T := PUInt32Array(Dest)[1];
3947
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3948
  PUInt32Array(Dest)[2] := T;
3949
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3950
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3951
end;
3952
3953
{ TCipher_3DDES }
3954
3955
class function TCipher_3DDES.Context: TCipherContext;
3956
begin
3957
  Result            := inherited Context;
3958
  Result.BlockSize  := 16;
3959
  Result.BufferSize := 16;
3960
  Result.MinRounds  := 1;
3961
  Result.MaxRounds  := 1;
3962
  Result.CipherType := [ctSymmetric, ctBlock];
3963
end;
3964
3965
procedure TCipher_3DDES.DoEncode(Source, Dest: Pointer; Size: Integer);
3966
var
3967
  T: UInt32;
3968
begin
3969
  Assert(Size = Context.BlockSize);
3970
3971
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
3972
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
3973
  T := PUInt32Array(Dest)[1];
3974
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3975
  PUInt32Array(Dest)[2] := T;
3976
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
3977
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
3978
  T := PUInt32Array(Dest)[1];
3979
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3980
  PUInt32Array(Dest)[2] := T;
3981
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
3982
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
3983
end;
3984
3985
procedure TCipher_3DDES.DoDecode(Source, Dest: Pointer; Size: Integer);
3986
var
3987
  T: UInt32;
3988
begin
3989
  Assert(Size = Context.BlockSize);
3990
3991
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
3992
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
3993
  T := PUInt32Array(Dest)[1];
3994
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
3995
  PUInt32Array(Dest)[2] := T;
3996
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]);
3997
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]);
3998
  T := PUInt32Array(Dest)[1];
3999
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4000
  PUInt32Array(Dest)[2] := T;
4001
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]);
4002
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]);
4003
end;
4004
4005
{ TCipher_3TDES }
4006
4007
class function TCipher_3TDES.Context: TCipherContext;
4008
begin
4009
  Result            := inherited Context;
4010
  Result.BlockSize  := 24;
4011
  Result.BufferSize := 24;
4012
  Result.MinRounds  := 1;
4013
  Result.MaxRounds  := 1;
4014
  Result.CipherType := [ctSymmetric, ctBlock];
4015
end;
4016
4017
procedure TCipher_3TDES.DoEncode(Source, Dest: Pointer; Size: Integer);
4018
var
4019
  T: UInt32;
4020
begin
4021
  Assert(Size = Context.BlockSize);
4022
4023
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], FAdditionalBuffer);
4024
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], FAdditionalBuffer);
4025
  DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], FAdditionalBuffer);
4026
  T := PUInt32Array(Dest)[1];
4027
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4028
  PUInt32Array(Dest)[2] := T;
4029
  T := PUInt32Array(Dest)[3];
4030
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4031
  PUInt32Array(Dest)[4] := T;
4032
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[32]);
4033
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[32]);
4034
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[32]);
4035
  T := PUInt32Array(Dest)[1];
4036
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4037
  PUInt32Array(Dest)[2] := T;
4038
  T := PUInt32Array(Dest)[3];
4039
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4040
  PUInt32Array(Dest)[4] := T;
4041
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[64]);
4042
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[64]);
4043
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[64]);
4044
end;
4045
4046
procedure TCipher_3TDES.DoDecode(Source, Dest: Pointer; Size: Integer);
4047
var
4048
  T: UInt32;
4049
begin
4050
  Assert(Size = Context.BlockSize);
4051
4052
  DES_Func(@PUInt32Array(Source)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[96]);
4053
  DES_Func(@PUInt32Array(Source)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[96]);
4054
  DES_Func(@PUInt32Array(Source)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[96]);
4055
  T := PUInt32Array(Dest)[1];
4056
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4057
  PUInt32Array(Dest)[2] := T;
4058
  T := PUInt32Array(Dest)[3];
4059
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4060
  PUInt32Array(Dest)[4] := T;
4061
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[128]);
4062
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[128]);
4063
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[128]);
4064
  T := PUInt32Array(Dest)[1];
4065
  PUInt32Array(Dest)[1] := PUInt32Array(Dest)[2];
4066
  PUInt32Array(Dest)[2] := T;
4067
  T := PUInt32Array(Dest)[3];
4068
  PUInt32Array(Dest)[3] := PUInt32Array(Dest)[4];
4069
  PUInt32Array(Dest)[4] := T;
4070
  DES_Func(@PUInt32Array(Dest)[0], @PUInt32Array(Dest)[0], @PUInt32Array(FAdditionalBuffer)[160]);
4071
  DES_Func(@PUInt32Array(Dest)[2], @PUInt32Array(Dest)[2], @PUInt32Array(FAdditionalBuffer)[160]);
4072
  DES_Func(@PUInt32Array(Dest)[4], @PUInt32Array(Dest)[4], @PUInt32Array(FAdditionalBuffer)[160]);
4073
end;
4074
4075
{ TCipher_3Way }
4076
4077
type
4078
  P3Way_Key = ^T3Way_Key;
4079
  T3Way_Key = packed record
4080
    E_Key: array[0..2] of UInt32;
4081
    E_Data: array[0..11] of UInt32;
4082
    D_Key: array[0..2] of UInt32;
4083
    D_Data: array[0..11] of UInt32;
4084
  end;
4085
4086
class function TCipher_3Way.Context: TCipherContext;
4087
begin
4088
  Result.KeySize                     := 12;
4089
  Result.BlockSize                   := 12;
4090
  Result.BufferSize                  := 12;
4091
  Result.AdditionalBufferSize        := SizeOf(T3Way_Key);
4092
  Result.NeedsAdditionalBufferBackup := False;
4093
  Result.MinRounds                   := 1;
4094
  Result.MaxRounds                   := 1;
4095
  Result.CipherType                  := [ctSymmetric, ctBlock];
4096
end;
4097
4098
procedure TCipher_3Way.DoInit(const Key; Size: Integer);
4099
4100
  procedure RANDGenerate(Start: UInt32; var P: array of UInt32);
4101
  var
4102
    I: Integer;
4103
  begin
4104
    for I := 0 to 11 do
4105
    begin
4106
      P[I] := Start;
4107
      Start := Start shl 1;
4108
      if Start and $10000 <> 0 then
4109
        Start := Start xor $11011;
4110
    end;
4111
  end;
4112
4113
var
4114
  A0, A1, A2: UInt32;
4115
  B0, B1, B2: UInt32;
4116
  P3WayKey: P3Way_Key;
4117
begin
4118
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4119
4120
  Move(Key, P3WayKey.E_Key, Size);
4121
  Move(Key, P3WayKey.D_Key, Size);
4122
  RANDGenerate($0B0B, P3WayKey.E_Data);
4123
  RANDGenerate($B1B1, P3WayKey.D_Data);
4124
  A0 := P3WayKey.D_Key[0];
4125
  A1 := P3WayKey.D_Key[1];
4126
  A2 := P3WayKey.D_Key[2];
4127
  B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4128
               A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4129
               A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4130
  B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4131
               A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4132
               A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4133
  B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4134
               A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4135
               A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4136
  P3WayKey.D_Key[2] := ReverseBits(B0);
4137
  P3WayKey.D_Key[1] := ReverseBits(B1);
4138
  P3WayKey.D_Key[0] := ReverseBits(B2);
4139
4140
  inherited;
4141
end;
4142
4143
procedure TCipher_3Way.DoEncode(Source, Dest: Pointer; Size: Integer);
4144
var
4145
  I: Integer;
4146
  A0, A1, A2: UInt32;
4147
  B0, B1, B2: UInt32;
4148
  K0, K1, K2: UInt32;
4149
  E: PUInt32;
4150
  P3WayKey: P3Way_Key;
4151
begin
4152
  Assert(Size = Context.BlockSize);
4153
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4154
4155
  K0 := P3WayKey.E_Key[0];
4156
  K1 := P3WayKey.E_Key[1];
4157
  K2 := P3WayKey.E_Key[2];
4158
  E  := @P3WayKey.E_Data;
4159
4160
  A0 := PUInt32Array(Source)[0];
4161
  A1 := PUInt32Array(Source)[1];
4162
  A2 := PUInt32Array(Source)[2];
4163
  for I := 0 to 10 do
4164
  begin
4165
    A0 := A0 xor K0 xor E^ shl 16;
4166
    A1 := A1 xor K1;
4167
    A2 := A2 xor K2 xor E^;
4168
    Inc(E);
4169
4170
    B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4171
                 A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4172
                 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4173
    B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4174
                 A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4175
                 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4176
    B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4177
                 A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4178
                 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4179
    B0 := B0 shr 10 or B0 shl 22;
4180
    B2 := B2 shl  1 or B2 shr 31;
4181
    A0 := B0 xor (B1 or not B2);
4182
    A1 := B1 xor (B2 or not B0);
4183
    A2 := B2 xor (B0 or not B1);
4184
    A0 := A0 shl  1 or A0 shr 31;
4185
    A2 := A2 shr 10 or A2 shl 22;
4186
  end;
4187
  A0 := A0 xor K0 xor E^ shl 16;
4188
  A1 := A1 xor K1;
4189
  A2 := A2 xor K2 xor E^;
4190
  PUInt32Array(Dest)[0] := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4191
                                A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4192
                                A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4193
  PUInt32Array(Dest)[1] := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4194
                                A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4195
                                A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4196
  PUInt32Array(Dest)[2] := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4197
                                A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4198
                                A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4199
end;
4200
4201
procedure TCipher_3Way.DoDecode(Source, Dest: Pointer; Size: Integer);
4202
var
4203
  I: Integer;
4204
  A0, A1, A2: UInt32;
4205
  B0, B1, B2: UInt32;
4206
  K0, K1, K2: UInt32;
4207
  E: PUInt32;
4208
  P3WayKey: P3Way_Key;
4209
begin
4210
  Assert(Size = Context.BlockSize);
4211
  P3WayKey := P3Way_Key(FAdditionalBuffer);
4212
4213
  K0 := P3WayKey.D_Key[0];
4214
  K1 := P3WayKey.D_Key[1];
4215
  K2 := P3WayKey.D_Key[2];
4216
  E  := @P3WayKey.D_Data;
4217
4218
  A0 := ReverseBits(PUInt32Array(Source)[2]);
4219
  A1 := ReverseBits(PUInt32Array(Source)[1]);
4220
  A2 := ReverseBits(PUInt32Array(Source)[0]);
4221
  for I := 0 to 10 do
4222
  begin
4223
    A0 := A0 xor K0 xor E^ shl 16;
4224
    A1 := A1 xor K1;
4225
    A2 := A2 xor K2 xor E^;
4226
    Inc(E);
4227
4228
    B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4229
                 A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4230
                 A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4231
    B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4232
                 A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4233
                 A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4234
    B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4235
                 A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4236
                 A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4237
    B0 := B0 shr 10 or B0 shl 22;
4238
    B2 := B2 shl  1 or B2 shr 31;
4239
    A0 := B0 xor (B1 or not B2);
4240
    A1 := B1 xor (B2 or not B0);
4241
    A2 := B2 xor (B0 or not B1);
4242
    A0 := A0 shl  1 or A0 shr 31;
4243
    A2 := A2 shr 10 or A2 shl 22;
4244
  end;
4245
  A0 := A0 xor K0 xor E^ shl 16;
4246
  A1 := A1 xor K1;
4247
  A2 := A2 xor K2 xor E^;
4248
  B0 := A0 xor A0 shr 16 xor A1 shl 16 xor A1 shr 16 xor A2 shl 16 xor
4249
               A1 shr 24 xor A2 shl  8 xor A2 shr  8 xor A0 shl 24 xor
4250
               A2 shr 16 xor A0 shl 16 xor A2 shr 24 xor A0 shl  8;
4251
  B1 := A1 xor A1 shr 16 xor A2 shl 16 xor A2 shr 16 xor A0 shl 16 xor
4252
               A2 shr 24 xor A0 shl  8 xor A0 shr  8 xor A1 shl 24 xor
4253
               A0 shr 16 xor A1 shl 16 xor A0 shr 24 xor A1 shl  8;
4254
  B2 := A2 xor A2 shr 16 xor A0 shl 16 xor A0 shr 16 xor A1 shl 16 xor
4255
               A0 shr 24 xor A1 shl  8 xor A1 shr  8 xor A2 shl 24 xor
4256
               A1 shr 16 xor A2 shl 16 xor A1 shr 24 xor A2 shl  8;
4257
4258
  PUInt32Array(Dest)[2] := ReverseBits(B0);
4259
  PUInt32Array(Dest)[1] := ReverseBits(B1);
4260
  PUInt32Array(Dest)[0] := ReverseBits(B2);
4261
end;
4262
4263
{ TCipher_Cast128 }
4264
4265
class function TCipher_Cast128.Context: TCipherContext;
4266
begin
4267
  Result.KeySize                     := 16;
4268
  Result.BlockSize                   := 8;
4269
  Result.BufferSize                  := 8;
4270
  Result.AdditionalBufferSize        := 128;
4271
  Result.NeedsAdditionalBufferBackup := false;
4272
  Result.MinRounds                   := 12;
4273
  Result.MaxRounds                   := 16;
4274
  Result.CipherType                  := [ctSymmetric, ctBlock];
4275
end;
4276
4277
procedure TCipher_Cast128.DoInit(const Key; Size: Integer);
4278
var
4279
  Z, X, T: array[0..3] of UInt32;
4280
  K: PUInt32Array;
4281
  I: UInt32;
4282
begin
4283
  // as per rfc2144 the number of rounds is 12 for key sizes <= 80 bit,
4284
  // otherwise 16
4285
  if Size <= 10 then
4286
    FRounds := 12
4287
  else
4288
    FRounds := 16;
4289
4290
  K := FAdditionalBuffer;
4291
  FillChar(X, SizeOf(X), 0);
4292
  Move(Key, X, Size);
4293
  SwapUInt32Buffer(X, X, 4);
4294
  I := 0;
4295
  while I < 32 do
4296
  begin
4297
    if I and 4 = 0 then
4298
    begin
4299
      Z[0] := X[0] xor Cast128_Key[0, X[3] shr 16 and $FF] xor
4300
                       Cast128_Key[1, X[3] and $FF] xor
4301
                       Cast128_Key[2, X[3] shr 24] xor
4302
                       Cast128_Key[3, X[3] shr  8 and $FF] xor
4303
                       Cast128_Key[2, X[2] shr 24];
4304
      T[0] := Z[0];
4305
      Z[1] := X[2] xor Cast128_Key[0, Z[0] shr 24] xor
4306
                       Cast128_Key[1, Z[0] shr  8 and $FF] xor
4307
                       Cast128_Key[2, Z[0] shr 16 and $FF] xor
4308
                       Cast128_Key[3, Z[0] and $FF] xor
4309
                       Cast128_Key[3, X[2] shr  8 and $FF];
4310
      T[1] := Z[1];
4311
      Z[2] := X[3] xor Cast128_Key[0, Z[1] and $FF] xor
4312
                       Cast128_Key[1, Z[1] shr  8 and $FF] xor
4313
                       Cast128_Key[2, Z[1] shr 16 and $FF] xor
4314
                       Cast128_Key[3, Z[1] shr 24] xor
4315
                       Cast128_Key[0, X[2] shr 16 and $FF];
4316
      T[2] := Z[2];
4317
      Z[3] := X[1] xor Cast128_Key[0, Z[2] shr  8 and $FF] xor
4318
                       Cast128_Key[1, Z[2] shr 16 and $FF] xor
4319
                       Cast128_Key[2, Z[2] and $FF] xor
4320
                       Cast128_Key[3, Z[2] shr 24] xor
4321
                       Cast128_Key[1, X[2] and $FF];
4322
      T[3] := Z[3];
4323
    end
4324
    else
4325
    begin
4326
      X[0] := Z[2] xor Cast128_Key[0, Z[1] shr 16 and $FF] xor
4327
                       Cast128_Key[1, Z[1] and $FF] xor
4328
                       Cast128_Key[2, Z[1] shr 24] xor
4329
                       Cast128_Key[3, Z[1] shr  8 and $FF] xor
4330
                       Cast128_Key[2, Z[0] shr 24];
4331
      T[0] := X[0];
4332
      X[1] := Z[0] xor Cast128_Key[0, X[0] shr 24] xor
4333
                       Cast128_Key[1, X[0] shr  8 and $FF] xor
4334
                       Cast128_Key[2, X[0] shr 16 and $FF] xor
4335
                       Cast128_Key[3, X[0] and $FF] xor
4336
                       Cast128_Key[3, Z[0] shr  8 and $FF];
4337
      T[1] := X[1];
4338
      X[2] := Z[1] xor Cast128_Key[0, X[1] and $FF] xor
4339
                       Cast128_Key[1, X[1] shr  8 and $FF] xor
4340
                       Cast128_Key[2, X[1] shr 16 and $FF] xor
4341
                       Cast128_Key[3, X[1] shr 24] xor
4342
                       Cast128_Key[0, Z[0] shr 16 and $FF];
4343
      T[2] := X[2];
4344
      X[3] := Z[3] xor Cast128_Key[0, X[2] shr  8 and $FF] xor
4345
                       Cast128_Key[1, X[2] shr 16 and $FF] xor
4346
                       Cast128_Key[2, X[2] and $FF] xor
4347
                       Cast128_Key[3, X[2] shr 24] xor
4348
                       Cast128_Key[1, Z[0] and $FF];
4349
      T[3] := X[3];
4350
    end;
4351
    case I and 12 of
4352
      0,12:
4353
        begin
4354
          K[I + 0] := Cast128_Key[0, T[2] shr 24] xor
4355
                      Cast128_Key[1, T[2] shr 16 and $FF] xor
4356
                      Cast128_Key[2, T[1] and $FF] xor
4357
                      Cast128_Key[3, T[1] shr  8 and $FF];
4358
          K[I + 1] := Cast128_Key[0, T[2] shr  8 and $FF] xor
4359
                      Cast128_Key[1, T[2] and $FF] xor
4360
                      Cast128_Key[2, T[1] shr 16 and $FF] xor
4361
                      Cast128_Key[3, T[1] shr 24];
4362
          K[I + 2] := Cast128_Key[0, T[3] shr 24] xor
4363
                      Cast128_Key[1, T[3] shr 16 and $FF] xor
4364
                      Cast128_Key[2, T[0] and $FF] xor
4365
                      Cast128_Key[3, T[0] shr  8 and $FF];
4366
          K[I + 3] := Cast128_Key[0, T[3] shr  8 and $FF] xor
4367
                      Cast128_Key[1, T[3] and $FF] xor
4368
                      Cast128_Key[2, T[0] shr 16 and $FF] xor
4369
                      Cast128_Key[3, T[0] shr 24];
4370
        end;
4371
      4,8:
4372
        begin
4373
          K[I + 0] := Cast128_Key[0, T[0] and $FF] xor
4374
                      Cast128_Key[1, T[0] shr  8 and $FF] xor
4375
                      Cast128_Key[2, T[3] shr 24] xor
4376
                      Cast128_Key[3, T[3] shr 16 and $FF];
4377
          K[I + 1] := Cast128_Key[0, T[0] shr 16 and $FF] xor
4378
                      Cast128_Key[1, T[0] shr 24] xor
4379
                      Cast128_Key[2, T[3] shr  8 and $FF] xor
4380
                      Cast128_Key[3, T[3] and $FF];
4381
          K[I + 2] := Cast128_Key[0, T[1] and $FF] xor
4382
                      Cast128_Key[1, T[1] shr  8 and $FF] xor
4383
                      Cast128_Key[2, T[2] shr 24] xor
4384
                      Cast128_Key[3, T[2] shr 16 and $FF];
4385
          K[I + 3] := Cast128_Key[0, T[1] shr 16 and $FF] xor
4386
                      Cast128_Key[1, T[1] shr 24] xor
4387
                      Cast128_Key[2, T[2] shr  8 and $FF] xor
4388
                      Cast128_Key[3, T[2] and $FF];
4389
        end;
4390
    end;
4391
    case I and 12 of
4392
      0: begin
4393
           K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[0] shr  8 and $FF];
4394
           K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[1] shr  8 and $FF];
4395
           K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[2] shr 16 and $FF];
4396
           K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[3] shr 24];
4397
         end;
4398
      4: begin
4399
           K[I + 0] := K[I + 0] xor Cast128_Key[0, X[2] shr 24];
4400
           K[I + 1] := K[I + 1] xor Cast128_Key[1, X[3] shr 16 and $FF];
4401
           K[I + 2] := K[I + 2] xor Cast128_Key[2, X[0] and $FF];
4402
           K[I + 3] := K[I + 3] xor Cast128_Key[3, X[1] and $FF];
4403
         end;
4404
      8: begin
4405
           K[I + 0] := K[I + 0] xor Cast128_Key[0, Z[2] shr 16 and $FF];
4406
           K[I + 1] := K[I + 1] xor Cast128_Key[1, Z[3] shr 24];
4407
           K[I + 2] := K[I + 2] xor Cast128_Key[2, Z[0] shr  8 and $FF];
4408
           K[I + 3] := K[I + 3] xor Cast128_Key[3, Z[1] shr  8 and $FF];
4409
         end;
4410
     12: begin
4411
          K[I + 0] := K[I + 0] xor Cast128_Key[0, X[0] and $FF];
4412
          K[I + 1] := K[I + 1] xor Cast128_Key[1, X[1] and $FF];
4413
          K[I + 2] := K[I + 2] xor Cast128_Key[2, X[2] shr 24];
4414
          K[I + 3] := K[I + 3] xor Cast128_Key[3, X[3] shr 16 and $FF];
4415
        end;
4416
    end;
4417
    if I >= 16 then
4418
    begin
4419
      K[I + 0] := K[I + 0] and $1F;
4420
      K[I + 1] := K[I + 1] and $1F;
4421
      K[I + 2] := K[I + 2] and $1F;
4422
      K[I + 3] := K[I + 3] and $1F;
4423
    end;
4424
    Inc(I, 4);
4425
  end;
4426
  ProtectBuffer(X, SizeOf(X));
4427
  ProtectBuffer(Z, SizeOf(Z));
4428
  ProtectBuffer(T, SizeOf(T));
4429
4430
  inherited;
4431
end;
4432
4433
procedure TCipher_Cast128.DoEncode(Source, Dest: Pointer; Size: Integer);
4434
var
4435
  T, I, A, B: UInt32;
4436
  K: PUInt32Array;
4437
begin
4438
  Assert(Size = Context.BlockSize);
4439
4440
  K := FAdditionalBuffer;
4441
  A := SwapUInt32(PUInt32Array(Source)[0]);
4442
  B := SwapUInt32(PUInt32Array(Source)[1]);
4443
  for I := 0 to 2 do
4444
  begin
4445
    T := K[0] + B;
4446
    T := T shl K[16] or T shr (32 - K[16]);
4447
    A := A xor (Cast128_Data[0, T shr 24] xor
4448
                Cast128_Data[1, T shr 16 and $FF] -
4449
                Cast128_Data[2, T shr  8 and $FF] +
4450
                Cast128_Data[3, T and $FF]);
4451
    T := K[1] xor A;
4452
    T := T shl K[17] or T shr (32 - K[17]);
4453
    B := B xor (Cast128_Data[0, T shr 24] -
4454
                Cast128_Data[1, T shr 16 and $FF] +
4455
                Cast128_Data[2, T shr  8 and $FF] xor
4456
                Cast128_Data[3, T and $FF]);
4457
    T := K[2] - B;
4458
    T := T shl K[18] or T shr (32 - K[18]);
4459
    A := A xor (Cast128_Data[0, T shr 24] +
4460
                Cast128_Data[1, T shr 16 and $FF] xor
4461
                Cast128_Data[2, T shr  8 and $FF] -
4462
                Cast128_Data[3, T and $FF]);
4463
    T := K[3] + A;
4464
    T := T shl K[19] or T shr (32 - K[19]);
4465
    B := B xor (Cast128_Data[0, T shr 24] xor
4466
                Cast128_Data[1, T shr 16 and $FF] -
4467
                Cast128_Data[2, T shr  8 and $FF] +
4468
                Cast128_Data[3, T and $FF]);
4469
    if I = 2 then
4470
      Break;
4471
    T := K[4] xor B;
4472
    T := T shl K[20] or T shr (32 - K[20]);
4473
    A := A xor (Cast128_Data[0, T shr 24] -
4474
                Cast128_Data[1, T shr 16 and $FF] +
4475
                Cast128_Data[2, T shr  8 and $FF] xor
4476
                Cast128_Data[3, T and $FF]);
4477
    T := K[5] - A;
4478
    T := T shl K[21] or T shr (32 - K[21]);
4479
    B := B xor (Cast128_Data[0, T shr 24] +
4480
                Cast128_Data[1, T shr 16 and $FF] xor
4481
                Cast128_Data[2, T shr  8 and $FF] -
4482
                Cast128_Data[3, T and $FF]);
4483
    if (I = 1) and (FRounds <= 12) then
4484
      Break;
4485
    K := @K[6];
4486
  end;
4487
  PUInt32Array(Dest)[0] := SwapUInt32(B);
4488
  PUInt32Array(Dest)[1] := SwapUInt32(A);
4489
end;
4490
4491
procedure TCipher_Cast128.DoDecode(Source, Dest: Pointer; Size: Integer);
4492
var
4493
  T, I, A, B: UInt32;
4494
  K: PUInt32Array;
4495
  JumpStart: Boolean;
4496
begin
4497
  Assert(Size = Context.BlockSize);
4498
  JumpStart := False;
4499
4500
  K := @PUInt32Array(FAdditionalBuffer)[12];
4501
  B := SwapUInt32(PUInt32Array(Source)[0]);
4502
  A := SwapUInt32(PUInt32Array(Source)[1]);
4503
  I := 2;
4504
4505
  if FRounds <= 12 then
4506
    Dec(PUInt32(K), 6)
4507
  else
4508
    JumpStart := True;
4509
4510
  while I > 0 do
4511
  begin
4512
    if not JumpStart then
4513
    begin
4514
      Dec(I);
4515
      T := K[5] - A;
4516
      T := T shl K[21] or T shr (32 - K[21]);
4517
      B := B xor (Cast128_Data[0, T shr 24] +
4518
                  Cast128_Data[1, T shr 16 and $FF] xor
4519
                  Cast128_Data[2, T shr  8 and $FF] -
4520
                  Cast128_Data[3, T and $FF]);
4521
      T := K[4] xor B;
4522
      T := T shl K[20] or T shr (32 - K[20]);
4523
      A := A xor (Cast128_Data[0, T shr 24] -
4524
                  Cast128_Data[1, T shr 16 and $FF] +
4525
                  Cast128_Data[2, T shr  8 and $FF] xor
4526
                  Cast128_Data[3, T and $FF]);
4527
    end
4528
    else
4529
      JumpStart := False;
4530
4531
    T := K[3] + A;
4532
    T := T shl K[19] or T shr (32 - K[19]);
4533
    B := B xor (Cast128_Data[0, T shr 24] xor
4534
                Cast128_Data[1, T shr 16 and $FF] -
4535
                Cast128_Data[2, T shr  8 and $FF] +
4536
                Cast128_Data[3, T and $FF]);
4537
    T := K[2] - B;
4538
    T := T shl K[18] or T shr (32 - K[18]);
4539
    A := A xor (Cast128_Data[0, T shr 24] +
4540
                Cast128_Data[1, T shr 16 and $FF] xor
4541
                Cast128_Data[2, T shr  8 and $FF] -
4542
                Cast128_Data[3, T and $FF]);
4543
    T := K[1] xor A;
4544
    T := T shl K[17] or T shr (32 - K[17]);
4545
    B := B xor (Cast128_Data[0, T shr 24] -
4546
                Cast128_Data[1, T shr 16 and $FF] +
4547
                Cast128_Data[2, T shr  8 and $FF] xor
4548
                Cast128_Data[3, T and $FF]);
4549
    T := K[0] + B;
4550
    T := T shl K[16] or T shr (32 - K[16]);
4551
    A := A xor (Cast128_Data[0, T shr 24] xor
4552
                Cast128_Data[1, T shr 16 and $FF] -
4553
                Cast128_Data[2, T shr  8 and $FF] +
4554
                Cast128_Data[3, T and $FF]);
4555
    Dec(PUInt32(K), 6);
4556
  end;
4557
4558
  PUInt32Array(Dest)[0] := SwapUInt32(A);
4559
  PUInt32Array(Dest)[1] := SwapUInt32(B);
4560
end;
4561
4562
{ TCipher_Gost }
4563
4564
class function TCipher_Gost.Context: TCipherContext;
4565
begin
4566
  Result.KeySize                     := 32;
4567
  Result.BlockSize                   := 8;
4568
  Result.BufferSize                  := 8;
4569
  Result.AdditionalBufferSize        := 32;
4570
  Result.NeedsAdditionalBufferBackup := false;
4571
  Result.MinRounds                   := 1;
4572
  Result.MaxRounds                   := 1;
4573
  Result.CipherType                  := [ctSymmetric, ctBlock];
4574
end;
4575
4576
procedure TCipher_Gost.DoInit(const Key; Size: Integer);
4577
begin
4578
  Move(Key, FAdditionalBuffer^, Size);
4579
4580
  inherited;
4581
end;
4582
4583
procedure TCipher_Gost.DoEncode(Source, Dest: Pointer; Size: Integer);
4584
var
4585
  I, A, B, T: UInt32;
4586
  K: PUInt32Array;
4587
begin
4588
  Assert(Size = Context.BlockSize);
4589
4590
  K := FAdditionalBuffer;
4591
  A := PUInt32Array(Source)[0];
4592
  B := PUInt32Array(Source)[1];
4593
4594
  for I := 0 to 11 do
4595
  begin
4596
    if I and 3 = 0 then
4597
      K := FAdditionalBuffer;
4598
    T := A + K[0];
4599
    B := B xor Gost_Data[0, T        and $FF] xor
4600
               Gost_Data[1, T shr  8 and $FF] xor
4601
               Gost_Data[2, T shr 16 and $FF] xor
4602
               Gost_Data[3, T shr 24        ];
4603
    T := B + K[1];
4604
    A := A xor Gost_Data[0, T        and $FF] xor
4605
               Gost_Data[1, T shr  8 and $FF] xor
4606
               Gost_Data[2, T shr 16 and $FF] xor
4607
               Gost_Data[3, T shr 24        ];
4608
    K := @K[2];
4609
  end;
4610
4611
  K := @PUInt32Array(FAdditionalBuffer)[6];
4612
4613
  for I := 0 to 3 do
4614
  begin
4615
    T := A + K[1];
4616
    B := B xor Gost_Data[0, T        and $FF] xor
4617
               Gost_Data[1, T shr  8 and $FF] xor
4618
               Gost_Data[2, T shr 16 and $FF] xor
4619
               Gost_Data[3, T shr 24        ];
4620
    T := B + K[0];
4621
    A := A xor Gost_Data[0, T        and $FF] xor
4622
               Gost_Data[1, T shr  8 and $FF] xor
4623
               Gost_Data[2, T shr 16 and $FF] xor
4624
               Gost_Data[3, T shr 24        ];
4625
    Dec(PUInt32(K), 2);
4626
  end;
4627
4628
  PUInt32Array(Dest)[0] := B;
4629
  PUInt32Array(Dest)[1] := A;
4630
end;
4631
4632
procedure TCipher_Gost.DoDecode(Source, Dest: Pointer; Size: Integer);
4633
var
4634
  I, A, B, T: UInt32;
4635
  K: PUInt32Array;
4636
begin
4637
  Assert(Size = Context.BlockSize);
4638
4639
  A := PUInt32Array(Source)[0];
4640
  B := PUInt32Array(Source)[1];
4641
  K := FAdditionalBuffer;
4642
4643
  for I := 0 to 3 do
4644
  begin
4645
    T := A + K[0];
4646
    B := B xor Gost_Data[0, T and $FF] xor
4647
               Gost_Data[1, T shr  8 and $FF] xor
4648
               Gost_Data[2, T shr 16 and $FF] xor
4649
               Gost_Data[3, T shr 24];
4650
    T := B + K[1];
4651
    A := A xor Gost_Data[0, T and $FF] xor
4652
               Gost_Data[1, T shr  8 and $FF] xor
4653
               Gost_Data[2, T shr 16 and $FF] xor
4654
               Gost_Data[3, T shr 24];
4655
    K := @K[2];
4656
  end;
4657
4658
  for I := 0 to 11 do
4659
  begin
4660
    if I and 3 = 0 then
4661
      K := @PUInt32Array(FAdditionalBuffer)[6];
4662
    T := A + K[1];
4663
    B := B xor Gost_Data[0, T and $FF] xor
4664
               Gost_Data[1, T shr  8 and $FF] xor
4665
               Gost_Data[2, T shr 16 and $FF] xor
4666
               Gost_Data[3, T shr 24];
4667
    T := B + K[0];
4668
    A := A xor Gost_Data[0, T and $FF] xor
4669
               Gost_Data[1, T shr  8 and $FF] xor
4670
               Gost_Data[2, T shr 16 and $FF] xor
4671
               Gost_Data[3, T shr 24];
4672
    Dec(PUInt32(K), 2);
4673
  end;
4674
4675
  PUInt32Array(Dest)[0] := B;
4676
  PUInt32Array(Dest)[1] := A;
4677
end;
4678
4679
{ TCipher_Misty }
4680
4681
class function TCipher_Misty.Context: TCipherContext;
4682
begin
4683
  Result.KeySize                     := 16;
4684
  Result.BlockSize                   := 8;
4685
  Result.BufferSize                  := 8;
4686
  Result.AdditionalBufferSize        := 128;
4687
  Result.NeedsAdditionalBufferBackup := False;
4688
  Result.MinRounds                   := 1;
4689
  Result.MaxRounds                   := 1;
4690
  Result.CipherType                  := [ctSymmetric, ctBlock];
4691
end;
4692
4693
function Misty_I(Value, Key: UInt32): UInt32;
4694
begin
4695
  Result := Misty_Data9[Value shr 7 and $1FF] xor (Value and $7F);
4696
  Value := (Misty_Data7[Value and $7F] xor Result and $7F) xor (Key shr 9 and $7F);
4697
  Result := Misty_Data9[Result xor (Key and $1FF)] xor Value or Value shl 9;
4698
end;
4699
4700
function Misty_O(Value, K: UInt32; Key: PUInt32Array): UInt32;
4701
begin
4702
  Result := Misty_I((Value shr 16) xor Key[K], Key[(K + 5) and 7 + 8]) xor (Value and $FFFF);
4703
  Value  := Misty_I((Value and $FFFF) xor Key[(K + 2) and 7], Key[(K + 1) and 7 + 8]) xor Result;
4704
  Result := Misty_I(Result xor Key[(K + 7) and 7], Key[(K + 3) and 7 + 8]) xor Value;
4705
  Result := Result or (Value xor Key[(K + 4) and 7]) shl 16;
4706
end;
4707
4708
function Misty_E(Value, K: UInt32; Key: PUInt32Array): UInt32;
4709
begin
4710
  Result := Value shr 16;
4711
  Value  := Value and $FFFF;
4712
4713
  if K and 1 <> 0 then
4714
  begin
4715
    K      := K shr 1;
4716
    Value  := Value  xor (Result and Key[(K + 2) and 7 + 8]);
4717
    Result := Result xor (Value  or  Key[(K + 4) and 7]);
4718
  end
4719
  else
4720
  begin
4721
    K      := K shr 1;
4722
    Value  := Value  xor (Result and Key[K]);
4723
    Result := Result xor (Value  or  Key[(K + 6) and 7 + 8]);
4724
  end;
4725
4726
  Result:= (Result shl 16) or Value;
4727
end;
4728
4729
function Misty_D(Value, K: UInt32; Key: PUInt32Array): UInt32;
4730
begin
4731
  Result := Value shr 16;
4732
  Value  := Value and $FFFF;
4733
4734
  if K and 1 <> 0 then
4735
  begin
4736
    K      := K shr 1;
4737
    Result := Result xor (Value  or  Key[(K + 4) and 7]);
4738
    Value  := Value  xor (Result and Key[(K + 2) and 7 + 8]);
4739
  end
4740
  else
4741
  begin
4742
    K      := K shr 1;
4743
    Result := Result xor (Value  or  Key[(K + 6) and 7 + 8]);
4744
    Value  := Value  xor (Result and Key[K]);
4745
  end;
4746
4747
  Result:= (Result shl 16) or Value;
4748
end;
4749
4750
procedure TCipher_Misty.DoInit(const Key; Size: Integer);
4751
var
4752
  K: array[0..15] of Byte;
4753
  D: PUInt32Array;
4754
  I: Integer;
4755
begin
4756
  FillChar(K, SizeOf(K), 0);
4757
  Move(Key, K, Size);
4758
  D := FAdditionalBuffer;
4759
4760
  for I := 0 to 7 do
4761
    D[I] := K[I * 2] * 256 + K[I * 2 + 1];
4762
4763
  for I := 0 to 7 do
4764
  begin
4765
    D[I +  8] := Misty_I(D[I], D[(I + 1) and 7]);
4766
    D[I + 16] := D[I + 8] and $1FF;
4767
    D[I + 24] := D[I + 8] shr 9;
4768
  end;
4769
4770
  ProtectBuffer(K, SizeOf(K));
4771
4772
  inherited;
4773
end;
4774
4775
procedure TCipher_Misty.DoEncode(Source, Dest: Pointer; Size: Integer);
4776
var
4777
  A, B: UInt32;
4778
begin
4779
  Assert(Size = Context.BlockSize);
4780
4781
  A := PUInt32Array(Source)[0];
4782
  B := PUInt32Array(Source)[1];
4783
  A := Misty_E(A, 0, FAdditionalBuffer);
4784
  B := Misty_E(B, 1, FAdditionalBuffer) xor Misty_O(A, 0, FAdditionalBuffer);
4785
  A := A xor Misty_O(B, 1, FAdditionalBuffer);
4786
  A := Misty_E(A, 2, FAdditionalBuffer);
4787
  B := Misty_E(B, 3, FAdditionalBuffer) xor Misty_O(A, 2, FAdditionalBuffer);
4788
  A := A xor Misty_O(B, 3, FAdditionalBuffer);
4789
  A := Misty_E(A, 4, FAdditionalBuffer);
4790
  B := Misty_E(B, 5, FAdditionalBuffer) xor Misty_O(A, 4, FAdditionalBuffer);
4791
  A := A xor Misty_O(B, 5, FAdditionalBuffer);
4792
  A := Misty_E(A, 6, FAdditionalBuffer);
4793
  B := Misty_E(B, 7, FAdditionalBuffer) xor Misty_O(A, 6, FAdditionalBuffer);
4794
  A := A xor Misty_O(B, 7, FAdditionalBuffer);
4795
4796
  PUInt32Array(Dest)[0] := Misty_E(B, 9, FAdditionalBuffer);
4797
  PUInt32Array(Dest)[1] := Misty_E(A, 8, FAdditionalBuffer);
4798
end;
4799
4800
procedure TCipher_Misty.DoDecode(Source, Dest: Pointer; Size: Integer);
4801
var
4802
  A, B: UInt32;
4803
begin
4804
  Assert(Size = Context.BlockSize);
4805
4806
  B := Misty_D(PUInt32Array(Source)[0], 9, FAdditionalBuffer);
4807
  A := Misty_D(PUInt32Array(Source)[1], 8, FAdditionalBuffer);
4808
  A := A xor Misty_O(B, 7, FAdditionalBuffer);
4809
  B := Misty_D(B xor Misty_O(A, 6, FAdditionalBuffer), 7, FAdditionalBuffer);
4810
  A := Misty_D(A, 6, FAdditionalBuffer);
4811
  A := A xor Misty_O(B, 5, FAdditionalBuffer);
4812
  B := Misty_D(B xor Misty_O(A, 4, FAdditionalBuffer), 5, FAdditionalBuffer);
4813
  A := Misty_D(A, 4, FAdditionalBuffer);
4814
  A := A xor Misty_O(B, 3, FAdditionalBuffer);
4815
  B := Misty_D(B xor Misty_O(A, 2, FAdditionalBuffer), 3, FAdditionalBuffer);
4816
  A := Misty_D(A, 2, FAdditionalBuffer);
4817
  A := A xor Misty_O(B, 1, FAdditionalBuffer);
4818
4819
  PUInt32Array(Dest)[0] := Misty_D(A, 0, FAdditionalBuffer);
4820
  PUInt32Array(Dest)[1] := Misty_D(B xor Misty_O(A, 0, FAdditionalBuffer), 1, FAdditionalBuffer);
4821
end;
4822
4823
{ TCipher_NewDES }
4824
4825
procedure NewDES_Func(Source, Dest, Key: PByteArray);
4826
var
4827
  I: Integer;
4828
  A, B, C, D, E, F, G, H: Byte;
4829
begin
4830
  A := Source[0];
4831
  B := Source[1];
4832
  C := Source[2];
4833
  D := Source[3];
4834
  E := Source[4];
4835
  F := Source[5];
4836
  G := Source[6];
4837
  H := Source[7];
4838
4839
  for I := 0 to 7 do
4840
  begin
4841
    E := E xor NewDES_Data[A xor Key[0]];
4842
    F := F xor NewDES_Data[B xor Key[1]];
4843
    G := G xor NewDES_Data[C xor Key[2]];
4844
    H := H xor NewDES_Data[D xor Key[3]];
4845
    B := B xor NewDES_Data[E xor Key[4]];
4846
    C := C xor NewDES_Data[F xor E];
4847
    D := D xor NewDES_Data[G xor Key[5]];
4848
    A := A xor NewDES_Data[H xor Key[6]];
4849
    Key := @Key[7];
4850
  end;
4851
4852
  E := E xor NewDES_Data[A xor Key[0]];
4853
  F := F xor NewDES_Data[B xor Key[1]];
4854
  G := G xor NewDES_Data[C xor Key[2]];
4855
  H := H xor NewDES_Data[D xor Key[3]];
4856
4857
  Dest[0] := A;
4858
  Dest[1] := B;
4859
  Dest[2] := C;
4860
  Dest[3] := D;
4861
  Dest[4] := E;
4862
  Dest[5] := F;
4863
  Dest[6] := G;
4864
  Dest[7] := H;
4865
end;
4866
4867
class function TCipher_NewDES.Context: TCipherContext;
4868
begin
4869
  Result.KeySize                     := 15;
4870
  Result.BlockSize                   := 8;
4871
  Result.BufferSize                  := 8;
4872
  Result.AdditionalBufferSize        := 60 * 2;
4873
  Result.NeedsAdditionalBufferBackup := true;
4874
  Result.MinRounds                   := 1;
4875
  Result.MaxRounds                   := 1;
4876
  Result.CipherType                  := [ctSymmetric, ctBlock];
4877
end;
4878
4879
procedure TCipher_NewDES.DoInit(const Key; Size: Integer);
4880
var
4881
  K: array[0..14] of Byte;
4882
  E: PByteArray;
4883
  I: Integer;
4884
begin
4885
  FillChar(K, SizeOf(K), 0);
4886
  Move(Key, K, Size);
4887
  E := FAdditionalBuffer;
4888
  Move(K, E[ 0], 15);
4889
  Move(K, E[15], 15);
4890
  Move(K, E[30], 15);
4891
  Move(K, E[45], 15);
4892
  E := @E[60];
4893
  I := 11;
4894
4895
  repeat
4896
    E[0] := K[I]; I := (I + 1) mod 15;
4897
    E[1] := K[I]; I := (I + 1) mod 15;
4898
    E[2] := K[I]; I := (I + 1) mod 15;
4899
    E[3] := K[I]; I := (I + 9) mod 15;
4900
    if I = 12 then
4901
      Break;
4902
    E[4] := K[I]; Inc(I);
4903
    E[5] := K[I]; Inc(I);
4904
    E[6] := K[I]; I := (I + 9) mod 15;
4905
    E := @E[7];
4906
  until False;
4907
4908
  ProtectBuffer(K, SizeOf(K));
4909
4910
  inherited;
4911
end;
4912
4913
procedure TCipher_NewDES.DoEncode(Source, Dest: Pointer; Size: Integer);
4914
begin
4915
  Assert(Size = Context.BlockSize);
4916
  NewDES_Func(Source, Dest, FAdditionalBuffer);
4917
end;
4918
4919
procedure TCipher_NewDES.DoDecode(Source, Dest: Pointer; Size: Integer);
4920
begin
4921
  Assert(Size = Context.BlockSize);
4922
  NewDES_Func(Source, Dest, @PByteArray(FAdditionalBuffer)[60]);
4923
end;
4924
4925
{ TCipher_Q128 }
4926
4927
class function TCipher_Q128.Context: TCipherContext;
4928
begin
4929
  Result.KeySize                     := 16;
4930
  Result.BlockSize                   := 16;
4931
  Result.BufferSize                  := 16;
4932
  Result.AdditionalBufferSize        := 256;
4933
  Result.NeedsAdditionalBufferBackup := false;
4934
  Result.MinRounds                   := 1;
4935
  Result.MaxRounds                   := 1;
4936
  Result.CipherType                  := [ctSymmetric, ctBlock];
4937
end;
4938
4939
procedure TCipher_Q128.DoInit(const Key; Size: Integer);
4940
var
4941
  K: array[0..3] of UInt32;
4942
  D: PUInt32Array;
4943
  I: Integer;
4944
begin
4945
  FillChar(K, SizeOf(K), 0);
4946
  Move(Key, K, Size);
4947
  D := FAdditionalBuffer;
4948
4949
  for I := 19 downto 1 do
4950
  begin
4951
    K[1] := K[1] xor Q128_Data[K[0] and $03FF]; K[0] := K[0] shr 10 or K[0] shl 22;
4952
    K[2] := K[2] xor Q128_Data[K[1] and $03FF]; K[1] := K[1] shr 10 or K[1] shl 22;
4953
    K[3] := K[3] xor Q128_Data[K[2] and $03FF]; K[2] := K[2] shr 10 or K[2] shl 22;
4954
    K[0] := K[0] xor Q128_Data[K[3] and $03FF]; K[3] := K[3] shr 10 or K[3] shl 22;
4955
    if I <= 16 then
4956
    begin
4957
      D[0] := K[0];
4958
      D[1] := K[1];
4959
      D[2] := K[2];
4960
      D[3] := K[3];
4961
      D := @D[4];
4962
    end;
4963
  end;
4964
4965
  ProtectBuffer(K, SizeOf(K));
4966
4967
  inherited;
4968
end;
4969
4970
procedure TCipher_Q128.DoEncode(Source, Dest: Pointer; Size: Integer);
4971
{$IFDEF X86ASM}
4972
asm
4973
       PUSH   ESI
4974
       PUSH   EDI
4975
       PUSH   EBX
4976
       PUSH   EBP
4977
       PUSH   ECX
4978
       MOV    EDI,[EAX].TCipher_Q128.FAdditionalBuffer
4979
       MOV    EAX,[EDX +  0]  // B0
4980
       MOV    EBX,[EDX +  4]  // B1
4981
       MOV    ECX,[EDX +  8]  // B2
4982
       MOV    EDX,[EDX + 12]  // B3
4983
       MOV    EBP,16
4984
@@1:   MOV    ESI,EAX
4985
       ROL    ESI,10
4986
       AND    EAX,03FFh
4987
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
4988
       ADD    EAX,[EDI + 0]
4989
       XOR    EAX,EBX
4990
       MOV    EBX,EAX
4991
       ROL    EBX,10
4992
       AND    EAX,03FFh
4993
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
4994
       ADD    EAX,[EDI + 4]
4995
       XOR    EAX,ECX
4996
       MOV    ECX,EAX
4997
       ROL    ECX,10
4998
       AND    EAX,03FFh
4999
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5000
       ADD    EAX,[EDI + 8]
5001
       XOR    EAX,EDX
5002
       MOV    EDX,EAX
5003
       ROL    EDX,10
5004
       AND    EAX,03FFh
5005
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5006
       ADD    EAX,[EDI + 12]
5007
       XOR    EAX,ESI
5008
       DEC    EBP
5009
       LEA    EDI,[EDI + 16]
5010
       JNZ    @@1
5011
       POP    ESI
5012
       MOV    [ESI +  0],EAX  // B0
5013
       MOV    [ESI +  4],EBX  // B1
5014
       MOV    [ESI +  8],ECX  // B2
5015
       MOV    [ESI + 12],EDX  // B3
5016
       POP    EBP
5017
       POP    EBX
5018
       POP    EDI
5019
       POP    ESI
5020
end;
5021
{$ELSE !X86ASM}
5022
var
5023
  D: PUInt32Array;
5024
  B0, B1, B2, B3, I: UInt32;
5025
begin
5026
  Assert(Size = Context.BlockSize);
5027
5028
  D  := Pointer(FAdditionalBuffer);
5029
  B0 := PUInt32Array(Source)[0];
5030
  B1 := PUInt32Array(Source)[1];
5031
  B2 := PUInt32Array(Source)[2];
5032
  B3 := PUInt32Array(Source)[3];
5033
  for I := 0 to 15 do
5034
  begin
5035
    B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]); B0 := B0 shl 10 or B0 shr 22;
5036
    B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]); B1 := B1 shl 10 or B1 shr 22;
5037
    B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]); B2 := B2 shl 10 or B2 shr 22;
5038
    B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]); B3 := B3 shl 10 or B3 shr 22;
5039
    D := @D[4];
5040
  end;
5041
  PUInt32Array(Dest)[0] := B0;
5042
  PUInt32Array(Dest)[1] := B1;
5043
  PUInt32Array(Dest)[2] := B2;
5044
  PUInt32Array(Dest)[3] := B3;
5045
end;
5046
{$ENDIF !X86ASM}
5047
5048
procedure TCipher_Q128.DoDecode(Source, Dest: Pointer; Size: Integer);
5049
{$IFDEF X86ASM}
5050
asm
5051
       PUSH   ESI
5052
       PUSH   EDI
5053
       PUSH   EBX
5054
       PUSH   EBP
5055
       PUSH   ECX
5056
       MOV    EDI,[EAX].TCipher_Q128.FAdditionalBuffer
5057
       LEA    EDI,[EDI + 64 * 4]
5058
       MOV    ESI,[EDX +  0]   // B0
5059
       MOV    EBX,[EDX +  4]  // B1
5060
       MOV    ECX,[EDX +  8]  // B2
5061
       MOV    EDX,[EDX + 12]  // B3
5062
       MOV    EBP,16
5063
@@1:   SUB    EDI,16
5064
       ROR    EDX,10
5065
       MOV    EAX,EDX
5066
       AND    EAX,03FFh
5067
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5068
       ADD    EAX,[EDI + 12]
5069
       XOR    ESI,EAX
5070
       ROR    ECX,10
5071
       MOV    EAX,ECX
5072
       AND    EAX,03FFh
5073
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5074
       ADD    EAX,[EDI +  8]
5075
       XOR    EDX,EAX
5076
       ROR    EBX,10
5077
       MOV    EAX,EBX
5078
       AND    EAX,03FFh
5079
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5080
       ADD    EAX,[EDI +  4]
5081
       XOR    ECX,EAX
5082
       ROR    ESI,10
5083
       MOV    EAX,ESI
5084
       AND    EAX,03FFh
5085
       MOV    EAX,[EAX * 4 + OFFSET Q128_DATA]
5086
       ADD    EAX,[EDI]
5087
       XOR    EBX,EAX
5088
       DEC    EBP
5089
       JNZ    @@1
5090
       POP    EAX
5091
       MOV    [EAX +  0],ESI  // B0
5092
       MOV    [EAX +  4],EBX  // B1
5093
       MOV    [EAX +  8],ECX  // B2
5094
       MOV    [EAX + 12],EDX  // B3
5095
       POP    EBP
5096
       POP    EBX
5097
       POP    EDI
5098
       POP    ESI
5099
end;
5100
{$ELSE !X86ASM}
5101
var
5102
  D: PUInt32Array;
5103
  B0, B1, B2, B3, I: UInt32;
5104
begin
5105
  Assert(Size = Context.BlockSize);
5106
5107
  D  := @PUInt32Array(FAdditionalBuffer)[60];
5108
  B0 := PUInt32Array(Source)[0];
5109
  B1 := PUInt32Array(Source)[1];
5110
  B2 := PUInt32Array(Source)[2];
5111
  B3 := PUInt32Array(Source)[3];
5112
  for I := 0 to 15 do
5113
  begin
5114
    B3 := B3 shr 10 or B3 shl 22; B0 := B0 xor (Q128_Data[B3 and $03FF] + D[3]);
5115
    B2 := B2 shr 10 or B2 shl 22; B3 := B3 xor (Q128_Data[B2 and $03FF] + D[2]);
5116
    B1 := B1 shr 10 or B1 shl 22; B2 := B2 xor (Q128_Data[B1 and $03FF] + D[1]);
5117
    B0 := B0 shr 10 or B0 shl 22; B1 := B1 xor (Q128_Data[B0 and $03FF] + D[0]);
5118
    Dec(PUInt32(D), 4);
5119
  end;
5120
  PUInt32Array(Dest)[0] := B0;
5121
  PUInt32Array(Dest)[1] := B1;
5122
  PUInt32Array(Dest)[2] := B2;
5123
  PUInt32Array(Dest)[3] := B3;
5124
end;
5125
{$ENDIF !X86ASM}
5126
5127
{ TCipher_RC2 }
5128
5129
class function TCipher_RC2.Context: TCipherContext;
5130
begin
5131
  Result.KeySize                     := 128;
5132
  Result.BlockSize                   := 8;
5133
  Result.BufferSize                  := 8;
5134
  Result.AdditionalBufferSize        := 128;
5135
  Result.NeedsAdditionalBufferBackup := False;
5136
  Result.MinRounds                   := 1;
5137
  Result.MaxRounds                   := 1;
5138
  Result.CipherType                  := [ctSymmetric, ctBlock];
5139
end;
5140
5141
procedure TCipher_RC2.DoInit(const Key; Size: Integer);
5142
// New keyscheduling according to RFC2268 and it's testcases. The V3 keysetup
5143
// was using an older, inferior version. Special thanks to Brendan Bosnan for
5144
// pointing that out.
5145
var
5146
  I, L, Mask, KeyEffectiveBits: Integer;
5147
  K: PByteArray;
5148
begin
5149
  if Size <= 0 then
5150
    Exit;
5151
  KeyEffectiveBits := Size * 8;
5152
  L := KeyEffectiveBits and 7;
5153
  if L = 0 then
5154
    Mask := $FF
5155
  else
5156
    Mask := $FF shr (8 - L);
5157
  L := (KeyEffectiveBits + 7) shr 3;
5158
  K := FAdditionalBuffer;
5159
  Move(Key, K[0], Size);
5160
  for I := Size to 127 do
5161
    K[I] := RC2_Data[(K[I - Size] + K[I - 1]) and $FF];
5162
  K[128 - L] := RC2_Data[K[128 - L] and Mask];
5163
  for I := 127 - L downto 0 do
5164
     K[I] := RC2_Data[K[I + 1] xor K[I + L]];
5165
5166
  inherited;
5167
end;
5168
5169
procedure TCipher_RC2.DoEncode(Source, Dest: Pointer; Size: Integer);
5170
var
5171
  I: Integer;
5172
  K: PWordArray;
5173
  A, B, C, D: Word;
5174
begin
5175
  Assert(Size = Context.BlockSize);
5176
5177
  K := FAdditionalBuffer;
5178
  A := PWordArray(Source)[0];
5179
  B := PWordArray(Source)[1];
5180
  C := PWordArray(Source)[2];
5181
  D := PWordArray(Source)[3];
5182
  for I := 0 to 15 do
5183
  begin
5184
    Inc(A, (B and not D) + (C and D) + K[I * 4 + 0]); A := A shl 1 or A shr 15;
5185
    Inc(B, (C and not A) + (D and A) + K[I * 4 + 1]); B := B shl 2 or B shr 14;
5186
    Inc(C, (D and not B) + (A and B) + K[I * 4 + 2]); C := C shl 3 or C shr 13;
5187
    Inc(D, (A and not C) + (B and C) + K[I * 4 + 3]); D := D shl 5 or D shr 11;
5188
    if I in [4, 10] then
5189
    begin
5190
      Inc(A, K[D and $3F]);
5191
      Inc(B, K[A and $3F]);
5192
      Inc(C, K[B and $3F]);
5193
      Inc(D, K[C and $3F]);
5194
    end;
5195
  end;
5196
  PWordArray(Dest)[0] := A;
5197
  PWordArray(Dest)[1] := B;
5198
  PWordArray(Dest)[2] := C;
5199
  PWordArray(Dest)[3] := D;
5200
end;
5201
5202
procedure TCipher_RC2.DoDecode(Source, Dest: Pointer; Size: Integer);
5203
var
5204
  I: Integer;
5205
  K: PWordArray;
5206
  A, B, C, D: Word;
5207
begin
5208
  Assert(Size = Context.BlockSize);
5209
5210
  K := FAdditionalBuffer;
5211
  A := PWordArray(Source)[0];
5212
  B := PWordArray(Source)[1];
5213
  C := PWordArray(Source)[2];
5214
  D := PWordArray(Source)[3];
5215
  for I := 15 downto 0 do
5216
  begin
5217
    D := D shr 5 or D shl 11 - (A and not C) - (B and C) - K[I * 4 + 3];
5218
    C := C shr 3 or C shl 13 - (D and not B) - (A and B) - K[I * 4 + 2];
5219
    B := B shr 2 or B shl 14 - (C and not A) - (D and A) - K[I * 4 + 1];
5220
    A := A shr 1 or A shl 15 - (B and not D) - (C and D) - K[I * 4 + 0];
5221
    if I in [5, 11] then
5222
    begin
5223
      Dec(D, K[C and $3F]);
5224
      Dec(C, K[B and $3F]);
5225
      Dec(B, K[A and $3F]);
5226
      Dec(A, K[D and $3F]);
5227
    end;
5228
  end;
5229
  PWordArray(Dest)[0] := A;
5230
  PWordArray(Dest)[1] := B;
5231
  PWordArray(Dest)[2] := C;
5232
  PWordArray(Dest)[3] := D;
5233
end;
5234
5235
{ TCipher_RC5 }
5236
5237
class function TCipher_RC5.Context: TCipherContext;
5238
begin
5239
  Result.KeySize                     := 256;
5240
  Result.BlockSize                   := 8;
5241
  Result.BufferSize                  := 8;
5242
  Result.AdditionalBufferSize        := 136;
5243
  Result.NeedsAdditionalBufferBackup := false;
5244
  Result.MinRounds                   := 0;
5245
  Result.MaxRounds                   := 256;
5246
  Result.CipherType                  := [ctSymmetric, ctBlock];
5247
end;
5248
5249
procedure TCipher_RC5.SetRounds(Value: Integer);
5250
begin
5251
  if Value <> FRounds then
5252
  begin
5253
    if not (FState in [csNew, csInitialized, csDone]) then
5254
      Done;
5255
5256
    if Value < 0 then
5257
      Value := 12;
5258
5259
    if (Value > Context.MaxRounds) then
5260
      Value := Context.MaxRounds;
5261
5262
    FRounds := Value;
5263
  end;
5264
end;
5265
5266
procedure TCipher_RC5.DoInit(const Key; Size: Integer);
5267
var
5268
  K: array[0..63] of UInt32;
5269
  L, Z, I, J: Integer;
5270
  D: PUInt32Array;
5271
  A, B, T: UInt32;
5272
begin
5273
  if FRounds <= 0 then
5274
    FRounds := 12;
5275
  FillChar(K, SizeOf(K), 0);
5276
  Move(Key, K, Size);
5277
  D := FAdditionalBuffer;
5278
  L := (Size + 3) shr 2;
5279
  if L <= 0 then
5280
    L := 1;
5281
  T := $B7E15163;
5282
  for I := 0 to (FRounds + 1) * 2 do
5283
  begin
5284
    D[I] := T;
5285
    Inc(T, $9E3779B9);
5286
  end;
5287
  if L > (FRounds + 1) * 2 then
5288
    Z := L * 3
5289
  else
5290
    Z := (FRounds + 1) * 6;
5291
  I := 0;
5292
  J := 0;
5293
  A := 0;
5294
  B := 0;
5295
  for Z := Z downto 1 do
5296
  begin
5297
    A := D[I] + A + B;
5298
    A := A shl 3 or A shr 29;
5299
    D[I] := A;
5300
    T := A + B;
5301
    B := K[J] + T;
5302
    B := B shl T or B shr (32 - T);
5303
    K[J] := B;
5304
    I := (I + 1) mod ((FRounds + 1) * 2);
5305
    J := (J + 1) mod L;
5306
  end;
5307
  ProtectBuffer(K, SizeOf(K));
5308
5309
  inherited;
5310
end;
5311
5312
procedure TCipher_RC5.DoEncode(Source, Dest: Pointer; Size: Integer);
5313
var
5314
  K: PUInt32Array;
5315
  I: Integer;
5316
  A, B: UInt32;
5317
begin
5318
  Assert(Size = Context.BlockSize);
5319
5320
  K := FAdditionalBuffer;
5321
  A := PUInt32Array(Source)[0] + K[0];
5322
  B := PUInt32Array(Source)[1] + K[1];
5323
  for I := 1 to FRounds do
5324
  begin
5325
    A := A xor B; A := A shl B or A shr (32 - B) + K[I * 2 + 0];
5326
    B := B xor A; B := B shl A or B shr (32 - A) + K[I * 2 + 1];
5327
  end;
5328
  PUInt32Array(Dest)[0] := A;
5329
  PUInt32Array(Dest)[1] := B;
5330
end;
5331
5332
procedure TCipher_RC5.DoDecode(Source, Dest: Pointer; Size: Integer);
5333
var
5334
  K: PUInt32Array;
5335
  I: Integer;
5336
  A, B: UInt32;
5337
begin
5338
  Assert(Size = Context.BlockSize);
5339
5340
  K := @PUInt32Array(FAdditionalBuffer)[0];
5341
  A := PUInt32Array(Source)[0];
5342
  B := PUInt32Array(Source)[1];
5343
  for I := FRounds downto 1 do
5344
  begin
5345
    B := B - K[I * 2 + 1]; B := B shr A or B shl (32 - A) xor A;
5346
    A := A - K[I * 2 + 0]; A := A shr B or A shl (32 - B) xor B;
5347
  end;
5348
  PUInt32Array(Dest)[0] := A - K[0];
5349
  PUInt32Array(Dest)[1] := B - K[1];
5350
end;
5351
5352
{ TCipher_SAFER }
5353
5354
class function TCipher_SAFER.Context: TCipherContext;
5355
begin
5356
  Result.KeySize                     := 16;
5357
  Result.BlockSize                   := 8;
5358
  Result.BufferSize                  := 8;
5359
  Result.AdditionalBufferSize        := 768;
5360
  Result.NeedsAdditionalBufferBackup := false;
5361
  Result.MinRounds                   := 4;
5362
  Result.MaxRounds                   := 13;
5363
  Result.CipherType                  := [ctSymmetric, ctBlock];
5364
end;
5365
5366
procedure TCipher_SAFER.SetRounds(Value: Integer);
5367
begin
5368
  if not (FState in [csNew, csInitialized, csDone]) then
5369
    Done;
5370
  if (Value < 4) or (Value > 13) then
5371
    case FVersion of // Default Rounds
5372
      svK40, svSK40: Value := 5;
5373
      svK64, svSK64: Value := 6;
5374
      svK128, svSK128: Value := 10;
5375
    else
5376
      Value := 8;
5377
    end;
5378
  FRounds := Value;
5379
end;
5380
5381
procedure TCipher_SAFER.SetVersion(Value: TSAFERVersion);
5382
begin
5383
  if Value <> FVersion then
5384
  begin
5385
    if not (FState in [csNew, csInitialized, csDone]) then
5386
      Done;
5387
    FVersion := Value;
5388
    SetRounds(0);
5389
  end;
5390
end;
5391
5392
procedure TCipher_SAFER.DoInit(const Key; Size: Integer);
5393
5394
  procedure InitTab;
5395
  var
5396
    I, E: Integer;
5397
    Exp: PByteArray;
5398
    Log: PByteArray;
5399
  begin
5400
    Exp := FAdditionalBuffer;
5401
    Log := @Exp[256];
5402
    E   := 1;
5403
    for I := 0 to 255 do
5404
    begin
5405
      Exp[I] := E and $FF;
5406
      Log[E and $FF] := I;
5407
      E := (E * 45) mod 257;
5408
    end;
5409
  end;
5410
5411
  procedure InitKey;
5412
  var
5413
    D: PByte;
5414
    Exp: PByteArray;
5415
    Strong: Boolean;
5416
    K: array[Boolean, 0..8] of Byte;
5417
    I, J: Integer;
5418
  begin
5419
    Strong := FVersion in [svSK40, svSK64, svSK128];
5420
    Exp := FAdditionalBuffer;
5421
    D := @Exp[512];
5422
    FillChar(K, SizeOf(K), 0);
5423
    // Setup Key A
5424
    I := Size;
5425
    if I > 8 then
5426
      I := 8;
5427
    Move(Key, K[False], I);
5428
    // Setup the Key for K-40, SK-40
5429
    if FVersion in [svK40, svSK40] then
5430
    begin
5431
      K[False, 5] := K[False, 0] xor K[False, 2] xor 129;
5432
      K[False, 6] := K[False, 0] xor K[False, 3] xor K[False, 4] xor 66;
5433
      K[False, 7] := K[False, 1] xor K[False, 2] xor K[False, 4] xor 36;
5434
      K[False, 8] := K[False, 1] xor K[False, 3] xor 24;
5435
      Move(K[False], K[True], SizeOf(K[False]));
5436
    end
5437
    else
5438
    begin
5439
      if Size > 8 then
5440
      begin
5441
        I := Size - 8;
5442
        if I > 8 then
5443
          I := 8;
5444
        Move(TByteArray(Key)[8], K[True], I);
5445
      end
5446
      else
5447
        Move(K[False], K[True], 9);
5448
      for I := 0 to 7 do
5449
      begin
5450
        K[False, 8] := K[False, 8] xor K[False, I];
5451
        K[True, 8]  := K[True, 8]  xor K[True, I];
5452
      end;
5453
    end;
5454
    // Setup the KeyData
5455
    Move(K[True], D^, 8);
5456
    Inc(D, 8);
5457
5458
    for I := 0 to 8 do
5459
      K[False, I] := K[False, I] shr 3 or K[False, I] shl 5;
5460
5461
    for I := 1 to FRounds do
5462
    begin
5463
      for J := 0 to 8 do
5464
      begin
5465
        K[False, J] := K[False, J] shl 6 or K[False, J] shr 2;
5466
        K[True, J] := K[True, J] shl 6 or K[True, J] shr 2;
5467
      end;
5468
      for J := 0 to 7 do
5469
      begin
5470
        if Strong then
5471
          D^ := K[False, (J + I * 2 - 1) mod 9] + Exp[Exp[18 * I + J + 1]]
5472
        else
5473
          D^ := K[False, J] + Exp[Exp[18 * I + J + 1]];
5474
        Inc(D);
5475
      end;
5476
      for J := 0 to 7 do
5477
      begin
5478
        if Strong then
5479
          D^ := K[True, (J + I * 2) mod 9] + Exp[Exp[18 * I + J + 10]]
5480
        else
5481
          D^ := K[True, J] + Exp[Exp[18 * I + J + 10]];
5482
        Inc(D);
5483
      end;
5484
    end;
5485
    ProtectBuffer(K, SizeOf(K));
5486
  end;
5487
5488
begin
5489
  if (FRounds < 4) or (FRounds > 13) then
5490
    case FVersion of
5491
      svK40, svSK40:    FRounds := 5;
5492
      svK64, svSK64:    FRounds := 6;
5493
      svK128, svSK128:  FRounds := 10;
5494
    else
5495
      FRounds := 8;
5496
    end;
5497
  InitTab;
5498
  InitKey;
5499
5500
  inherited;
5501
end;
5502
5503
procedure TCipher_SAFER.DoEncode(Source, Dest: Pointer; Size: Integer);
5504
var
5505
  Exp, Log, Key: PByteArray;
5506
  I: Integer;
5507
  A, B, C, D, E, F, G, H, T: Byte;
5508
begin
5509
  Assert(Size = Context.BlockSize);
5510
5511
  Exp := FAdditionalBuffer;
5512
  Log := @Exp[256];
5513
  Key := @Exp[512];
5514
5515
  A := PByteArray(Source)[0];
5516
  B := PByteArray(Source)[1];
5517
  C := PByteArray(Source)[2];
5518
  D := PByteArray(Source)[3];
5519
  E := PByteArray(Source)[4];
5520
  F := PByteArray(Source)[5];
5521
  G := PByteArray(Source)[6];
5522
  H := PByteArray(Source)[7];
5523
5524
  for I := 0 to FRounds - 1 do
5525
  begin
5526
    A := A xor Key[0];
5527
    B := B  +  Key[1];
5528
    C := C  +  Key[2];
5529
    D := D xor Key[3];
5530
    E := E xor Key[4];
5531
    F := F  +  Key[5];
5532
    G := G  +  Key[6];
5533
    H := H xor Key[7];
5534
5535
    A := Exp[A]  +  Key[8];
5536
    B := Log[B] xor Key[9];
5537
    C := Log[C] xor Key[10];
5538
    D := Exp[D]  +  Key[11];
5539
    E := Exp[E]  +  Key[12];
5540
    F := Log[F] xor Key[13];
5541
    G := Log[G] xor Key[14];
5542
    H := Exp[H]  +  Key[15];
5543
    Inc(B, A); Inc(A, B);
5544
    Inc(D, C); Inc(C, D);
5545
    Inc(F, E); Inc(E, F);
5546
    Inc(H, G); Inc(G, H);
5547
    Inc(C, A); Inc(A, C);
5548
    Inc(G, E); Inc(E, G);
5549
    Inc(D, B); Inc(B, D);
5550
    Inc(H, F); Inc(F, H);
5551
    Inc(E, A); Inc(A, E);
5552
    Inc(F, B); Inc(B, F);
5553
    Inc(G, C); Inc(C, G);
5554
    Inc(H, D); Inc(D, H);
5555
    T := B; B := E; E := C; C := T;
5556
    T := D; D := F; F := G; G := T;
5557
    Key := @Key[16];
5558
  end;
5559
5560
  PByteArray(Dest)[0] := A xor Key[0];
5561
  PByteArray(Dest)[1] := B  +  Key[1];
5562
  PByteArray(Dest)[2] := C  +  Key[2];
5563
  PByteArray(Dest)[3] := D xor Key[3];
5564
  PByteArray(Dest)[4] := E xor Key[4];
5565
  PByteArray(Dest)[5] := F  +  Key[5];
5566
  PByteArray(Dest)[6] := G  +  Key[6];
5567
  PByteArray(Dest)[7] := H xor Key[7];
5568
end;
5569
5570
procedure TCipher_SAFER.DoDecode(Source, Dest: Pointer; Size: Integer);
5571
var
5572
  Exp, Log, Key: PByteArray;
5573
  I: Integer;
5574
  A, B, C, D, E, F, G, H, T: Byte;
5575
begin
5576
  Assert(Size = Context.BlockSize);
5577
5578
  Exp := FAdditionalBuffer;
5579
  Log := @Exp[256];
5580
  Key := @Exp[504 + 8 * (FRounds * 2 + 1)];
5581
5582
  A := PByteArray(Source)[0] xor Key[0];
5583
  B := PByteArray(Source)[1]  -  Key[1];
5584
  C := PByteArray(Source)[2]  -  Key[2];
5585
  D := PByteArray(Source)[3] xor Key[3];
5586
  E := PByteArray(Source)[4] xor Key[4];
5587
  F := PByteArray(Source)[5]  -  Key[5];
5588
  G := PByteArray(Source)[6]  -  Key[6];
5589
  H := PByteArray(Source)[7] xor Key[7];
5590
5591
  for I := 0 to FRounds - 1 do
5592
  begin
5593
    Dec(PByte(Key), 16);
5594
    T := E; E := B; B := C; C := T;
5595
    T := F; F := D; D := G; G := T;
5596
    Dec(A, E); Dec(E, A);
5597
    Dec(B, F); Dec(F, B);
5598
    Dec(C, G); Dec(G, C);
5599
    Dec(D, H); Dec(H, D);
5600
    Dec(A, C); Dec(C, A);
5601
    Dec(E, G); Dec(G, E);
5602
    Dec(B, D); Dec(D, B);
5603
    Dec(F, H); Dec(H, F);
5604
    Dec(A, B); Dec(B, A);
5605
    Dec(C, D); Dec(D, C);
5606
    Dec(E, F); Dec(F, E);
5607
    Dec(G, H); Dec(H, G);
5608
    H := H  -  Key[15];
5609
    G := G xor Key[14];
5610
    F := F xor Key[13];
5611
    E := E  -  Key[12];
5612
    D := D  -  Key[11];
5613
    C := C xor Key[10];
5614
    B := B xor Key[9];
5615
    A := A  -  Key[8];
5616
    H := Log[H] xor Key[7];
5617
    G := Exp[G]  -  Key[6];
5618
    F := Exp[F]  -  Key[5];
5619
    E := Log[E] xor Key[4];
5620
    D := Log[D] xor Key[3];
5621
    C := Exp[C]  -  Key[2];
5622
    B := Exp[B]  -  Key[1];
5623
    A := Log[A] xor Key[0];
5624
  end;
5625
5626
  PByteArray(Dest)[0] := A;
5627
  PByteArray(Dest)[1] := B;
5628
  PByteArray(Dest)[2] := C;
5629
  PByteArray(Dest)[3] := D;
5630
  PByteArray(Dest)[4] := E;
5631
  PByteArray(Dest)[5] := F;
5632
  PByteArray(Dest)[6] := G;
5633
  PByteArray(Dest)[7] := H;
5634
end;
5635
5636
{ TCipher_SharkBase }
5637
5638
const
5639
  SHARK_ROOT      = $01F5; // GF(256) polynomial x^8 + x^7 + x^6 + x^5 + x^4 + x^2 + 1
5640
  SHARK_ROUNDS    = 6;
5641
  SHARK_ROUNDKEYS = SHARK_ROUNDS + 1;
5642
5643
{$IFNDEF CPU64BITS}
5644
function TCipher_SharkBase.Shark(D: TLong64; K: PLong64): TLong64;
5645
var
5646
  R, T: Integer;
5647
begin
5648
  for R := 0 to 4 do
5649
  begin
5650
    D.L := D.L xor K.L;
5651
    D.R := D.R xor K.R;
5652
    Inc(K);
5653
    T   := Shark_CE[0, D.R shr 23 and $1FE] xor
5654
           Shark_CE[1, D.R shr 15 and $1FE] xor
5655
           Shark_CE[2, D.R shr  7 and $1FE] xor
5656
           Shark_CE[3, D.R shl  1 and $1FE] xor
5657
           Shark_CE[4, D.L shr 23 and $1FE] xor
5658
           Shark_CE[5, D.L shr 15 and $1FE] xor
5659
           Shark_CE[6, D.L shr  7 and $1FE] xor
5660
           Shark_CE[7, D.L shl  1 and $1FE];
5661
5662
    D.R := Shark_CE[0, D.R shr 23 and $1FE or 1] xor
5663
           Shark_CE[1, D.R shr 15 and $1FE or 1] xor
5664
           Shark_CE[2, D.R shr  7 and $1FE or 1] xor
5665
           Shark_CE[3, D.R shl  1 and $1FE or 1] xor
5666
           Shark_CE[4, D.L shr 23 and $1FE or 1] xor
5667
           Shark_CE[5, D.L shr 15 and $1FE or 1] xor
5668
           Shark_CE[6, D.L shr  7 and $1FE or 1] xor
5669
           Shark_CE[7, D.L shl  1 and $1FE or 1];
5670
    D.L := T;
5671
  end;
5672
  D.L := D.L xor K.L;
5673
  D.R := D.R xor K.R;
5674
  Inc(K);
5675
  D.L := UInt32(Shark_SE[D.L shr 24 and $FF]) shl 24 xor
5676
         UInt32(Shark_SE[D.L shr 16 and $FF]) shl 16 xor
5677
         UInt32(Shark_SE[D.L shr  8 and $FF]) shl  8 xor
5678
         UInt32(Shark_SE[D.L        and $FF]);
5679
  D.R := UInt32(Shark_SE[D.R shr 24 and $FF]) shl 24 xor
5680
         UInt32(Shark_SE[D.R shr 16 and $FF]) shl 16 xor
5681
         UInt32(Shark_SE[D.R shr  8 and $FF]) shl  8 xor
5682
         UInt32(Shark_SE[D.R        and $FF]);
5683
  Result.L := D.L xor K.L;
5684
  Result.R := D.R xor K.R;
5685
end;
5686
{$ENDIF}
5687
5688
{$IFNDEF CPU64BITS}
5689
function TCipher_SharkBase.Transform(A: TLong64; Log, ALog: TLogArray): TLong64;
5690
  function Mul(A, B: Integer): Byte;
5691
  begin
5692
    // GF(256) multiplication via logarithm tables
5693
    Result := ALog[(Log[A] + Log[B]) mod 255];
5694
  end;
5695
5696
var
5697
  I, J: Byte;
5698
  K, T: array[0..7] of Byte;
5699
begin
5700
  Move(A.R, K[0], 4);
5701
  Move(A.L, K[4], 4);
5702
  SwapUInt32Buffer(K, K, 2);
5703
5704
  for I := 0 to 7 do
5705
  begin
5706
    T[I] := Mul(Shark_I[I, 0], K[0]);
5707
    for J := 1 to 7 do
5708
      T[I] := T[I] xor Mul(Shark_I[I, J], K[J]);
5709
  end;
5710
5711
  Result.L := T[0];
5712
  Result.R := 0;
5713
  for I := 1 to 7 do
5714
  begin
5715
    Result.R := Result.R shl 8 or Result.L shr 24;
5716
    Result.L := Result.L shl 8 xor T[I];
5717
  end;
5718
end;
5719
5720
{$ELSE CPU64BITS}
5721
function TCipher_SharkBase.Transform(A: UInt64; Log, ALog: TLogArray): UInt64;
5722
  function Mul(A, B: Integer): Byte;
5723
  begin
5724
    // GF(256) multiplication via logarithm tables
5725
    Result := ALog[(Log[A] + Log[B]) mod 255];
5726
  end;
5727
5728
var
5729
  I, J: Byte;
5730
  K, T: array[0..7] of Byte;
5731
begin
5732
  for I := 0 to 7 do
5733
    K[I] := A shr (56 - 8 * i);
5734
5735
  for I := 0 to 7 do
5736
  begin
5737
    T[I] := Mul(Shark_I[I, 0], K[0]);
5738
    for J := 1 to 7 do
5739
      T[I] := T[I] xor Mul(Shark_I[I, J], K[J]);
5740
  end;
5741
5742
  Result := T[0];
5743
  for I := 1 to 7 do
5744
    Result := (Result shl 8) xor T[I];
5745
end;
5746
{$ENDIF}
5747
5748
class function TCipher_SharkBase.Context: TCipherContext;
5749
begin
5750
  Result.KeySize                     := 16;
5751
  Result.BlockSize                   := 8;
5752
  Result.BufferSize                  := 8;
5753
  Result.AdditionalBufferSize        := 112;
5754
  Result.NeedsAdditionalBufferBackup := False;
5755
  Result.MinRounds                   := 1;
5756
  Result.MaxRounds                   := 1;
5757
  Result.CipherType                  := [ctSymmetric, ctBlock];
5758
end;
5759
5760
5761
procedure TCipher_SharkBase.DoEncode(Source, Dest: Pointer; Size: Integer);
5762
{$IFNDEF CPU64BITS}
5763
var
5764
  I: Integer;
5765
  T, L, R: UInt32;
5766
  K: PUInt32Array;
5767
begin
5768
  Assert(Size = Context.BlockSize);
5769
5770
  K := FAdditionalBuffer;
5771
  L := PLong64(Source).L;
5772
  R := PLong64(Source).R;
5773
  for I := 0 to 4 do
5774
  begin
5775
    L := L xor K[I * 2 + 0];
5776
    R := R xor K[I * 2 + 1];
5777
    T := Shark_CE[0, R shr 23 and $1FE] xor
5778
         Shark_CE[1, R shr 15 and $1FE] xor
5779
         Shark_CE[2, R shr  7 and $1FE] xor
5780
         Shark_CE[3, R shl  1 and $1FE] xor
5781
         Shark_CE[4, L shr 23 and $1FE] xor
5782
         Shark_CE[5, L shr 15 and $1FE] xor
5783
         Shark_CE[6, L shr  7 and $1FE] xor
5784
         Shark_CE[7, L shl  1 and $1FE];
5785
    R := Shark_CE[0, R shr 23 and $1FE or 1] xor
5786
         Shark_CE[1, R shr 15 and $1FE or 1] xor
5787
         Shark_CE[2, R shr  7 and $1FE or 1] xor
5788
         Shark_CE[3, R shl  1 and $1FE or 1] xor
5789
         Shark_CE[4, L shr 23 and $1FE or 1] xor
5790
         Shark_CE[5, L shr 15 and $1FE or 1] xor
5791
         Shark_CE[6, L shr  7 and $1FE or 1] xor
5792
         Shark_CE[7, L shl  1 and $1FE or 1];
5793
    L := T;
5794
  end;
5795
  L := L xor K[10];
5796
  R := R xor K[11];
5797
  L := UInt32(Shark_SE[L shr 24        ]) shl 24 xor
5798
       UInt32(Shark_SE[L shr 16 and $FF]) shl 16 xor
5799
       UInt32(Shark_SE[L shr  8 and $FF]) shl  8 xor
5800
       UInt32(Shark_SE[L        and $FF]);
5801
  R := UInt32(Shark_SE[R shr 24        ]) shl 24 xor
5802
       UInt32(Shark_SE[R shr 16 and $FF]) shl 16 xor
5803
       UInt32(Shark_SE[R shr  8 and $FF]) shl  8 xor
5804
       UInt32(Shark_SE[R        and $FF]);
5805
  PLong64(Dest).L := L xor K[12];
5806
  PLong64(Dest).R := R xor K[13];
5807
{$ELSE CPU64BITS}
5808
begin
5809
  // 64 bit
5810
  Assert(Size = Context.BufferSize);
5811
5812
  PUInt64(Dest)^ := SharkEncode(PUInt64(Source)^, FAdditionalBuffer);
5813
{$ENDIF}
5814
end;
5815
5816
{$IFDEF CPU64BITS}
5817
function TCipher_SharkBase.SharkEncode(D: UInt64; K: PUInt64): UInt64;
5818
var
5819
  R: Integer;
5820
begin
5821
  for R := 1 to SHARK_ROUNDS - 1 do
5822
  begin
5823
    D := D xor K^;
5824
    Inc(K);
5825
    D := Shark_CE[0, D shr 56 and $FF] xor
5826
         Shark_CE[1, D shr 48 and $FF] xor
5827
         Shark_CE[2, D shr 40 and $FF] xor
5828
         Shark_CE[3, D shr 32 and $FF] xor
5829
         Shark_CE[4, D shr 24 and $FF] xor
5830
         Shark_CE[5, D shr 16 and $FF] xor
5831
         Shark_CE[6, D shr 8  and $FF] xor
5832
         Shark_CE[7, D        and $FF];
5833
  end;
5834
  D := D xor K^;
5835
  Inc(K);
5836
  D := UInt64(Shark_SE[D shr 56 and $FF]) shl 56 xor
5837
       UInt64(Shark_SE[D shr 48 and $FF]) shl 48 xor
5838
       UInt64(Shark_SE[D shr 40 and $FF]) shl 40 xor
5839
       UInt64(Shark_SE[D shr 32 and $FF]) shl 32 xor
5840
       UInt64(Shark_SE[D shr 24 and $FF]) shl 24 xor
5841
       UInt64(Shark_SE[D shr 16 and $FF]) shl 16 xor
5842
       UInt64(Shark_SE[D shr  8 and $FF]) shl  8 xor
5843
       UInt64(Shark_SE[D        and $FF]);
5844
  Result := D xor K^;
5845
end;
5846
{$ENDIF}
5847
5848
5849
{ TCipher_Shark }
5850
5851
{$IFNDEF CPU64BITS}
5852
procedure TCipher_Shark.DoInit(const Key; Size: Integer);
5853
var
5854
  Log, ALog: TLogArray;
5855
5856
  procedure InitLog;
5857
  var
5858
    I, J: Word;
5859
  begin
5860
    ALog[0] := 1;
5861
    for I := 1 to 255 do
5862
    begin
5863
      J := ALog[I - 1] shl 1;
5864
      if J and $100 <> 0 then
5865
        J := J xor SHARK_ROOT;
5866
      ALog[I] := J;
5867
    end;
5868
    Log[0] := 0;
5869
    for I := 0 to 254 do
5870
      Log[ALog[I]] := I;
5871
  end;
5872
5873
var
5874
  T: array[0..6] of TLong64;
5875
  A: array[0..6] of TLong64;
5876
  K: array[0..15] of Byte;
5877
  I, J, R: Byte;
5878
  E, D: PLong64Array;
5879
  L: TLong64;
5880
begin
5881
  FillChar(K, SizeOf(K), 0);
5882
  Move(Key, K, Size);
5883
  InitLog;
5884
  E := FAdditionalBuffer;
5885
  D := @E[7];
5886
  Move(Shark_CE[0], T, SizeOf(T));
5887
  T[6] := Transform(T[6], Log, ALog);
5888
  I := 0;
5889
  for R := 0 to 6 do
5890
  begin
5891
    A[R].L := K[I and $F];
5892
    A[R].R := 0;
5893
    Inc(I);
5894
    for J := 1 to 7 do
5895
    begin
5896
      A[R].R := A[R].R shl 8 or A[R].L shr 24;
5897
      A[R].L := A[R].L shl 8 or K[I and $F];
5898
      Inc(I);
5899
    end;
5900
  end;
5901
  L.L := 0;
5902
  L.R := 0;
5903
  L := Shark(L, @T);
5904
  E[0].L := A[0].L xor L.L;
5905
  E[0].R := A[0].R xor L.R;
5906
  for R := 1 to 6 do
5907
  begin
5908
    L := Shark(E[R - 1], @T);
5909
    E[R].L := A[R].L xor L.L;
5910
    E[R].R := A[R].R xor L.R;
5911
  end;
5912
  E[6] := Transform(E[6], Log, ALog);
5913
  D[0] := E[6];
5914
  D[6] := E[0];
5915
  for R := 1 to 5 do
5916
    D[R] := Transform(E[6-R], Log, ALog);
5917
  ProtectBuffer(T, SizeOf(T));
5918
  ProtectBuffer(A, SizeOf(A));
5919
  ProtectBuffer(K, SizeOf(K));
5920
5921
  inherited;
5922
end;
5923
{$ENDIF}
5924
5925
{$IFNDEF CPU64BITS}
5926
procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer);
5927
var
5928
  I: Integer;
5929
  T, R, L: UInt32;
5930
  K: PUInt32Array;
5931
begin
5932
  Assert(Size = Context.BlockSize);
5933
5934
  K := @PUInt32Array(FAdditionalBuffer)[14];
5935
  L := PLong64(Source).L;
5936
  R := PLong64(Source).R;
5937
  for I := 0 to 4 do
5938
  begin
5939
    L := L xor K[I * 2 + 0];
5940
    R := R xor K[I * 2 + 1];
5941
    T := Shark_CD[0, R shr 23 and $1FE] xor
5942
         Shark_CD[1, R shr 15 and $1FE] xor
5943
         Shark_CD[2, R shr  7 and $1FE] xor
5944
         Shark_CD[3, R shl  1 and $1FE] xor
5945
         Shark_CD[4, L shr 23 and $1FE] xor
5946
         Shark_CD[5, L shr 15 and $1FE] xor
5947
         Shark_CD[6, L shr  7 and $1FE] xor
5948
         Shark_CD[7, L shl  1 and $1FE];
5949
    R := Shark_CD[0, R shr 23 and $1FE or 1] xor
5950
         Shark_CD[1, R shr 15 and $1FE or 1] xor
5951
         Shark_CD[2, R shr  7 and $1FE or 1] xor
5952
         Shark_CD[3, R shl  1 and $1FE or 1] xor
5953
         Shark_CD[4, L shr 23 and $1FE or 1] xor
5954
         Shark_CD[5, L shr 15 and $1FE or 1] xor
5955
         Shark_CD[6, L shr  7 and $1FE or 1] xor
5956
         Shark_CD[7, L shl  1 and $1FE or 1];
5957
    L := T;
5958
  end;
5959
  L := L xor K[10];
5960
  R := R xor K[11];
5961
  L := UInt32(Shark_SD[L shr 24        ]) shl 24 xor
5962
       UInt32(Shark_SD[L shr 16 and $FF]) shl 16 xor
5963
       UInt32(Shark_SD[L shr  8 and $FF]) shl  8 xor
5964
       UInt32(Shark_SD[L        and $FF]);
5965
  R := UInt32(Shark_SD[R shr 24        ]) shl 24 xor
5966
       UInt32(Shark_SD[R shr 16 and $FF]) shl 16 xor
5967
       UInt32(Shark_SD[R shr  8 and $FF]) shl  8 xor
5968
       UInt32(Shark_SD[R        and $FF]);
5969
  PLong64(Dest).L := L xor K[12];
5970
  PLong64(Dest).R := R xor K[13];
5971
end;
5972
5973
{$ELSE CPU64BITS}
5974
procedure TCipher_Shark.DoInit(const Key; Size: Integer);
5975
var
5976
  Log, ALog: TLogArray;
5977
5978
  procedure InitLog;
5979
  var
5980
    I, J: Word;
5981
  begin
5982
    // Generate GF(256) anti-logarithm and logarithm tables
5983
    ALog[0] := 1;
5984
    for I := 1 to 255 do
5985
    begin
5986
      J := ALog[I - 1] shl 1;
5987
      if J and $100 <> 0 then
5988
        J := J xor SHARK_ROOT;
5989
      ALog[I] := J;
5990
    end;
5991
    Log[0] := 0;
5992
    for I := 0 to 254 do
5993
      Log[ALog[I]] := I;
5994
  end;
5995
5996
var
5997
  T: array[0..SHARK_ROUNDS] of UInt64;
5998
  A: array[0..SHARK_ROUNDKEYS-1] of UInt64;
5999
  K: array[0..15] of Byte;
6000
  I, J, R: Integer;
6001
  E, D: PUInt64Array;
6002
begin
6003
  FillChar(K, SizeOf(K), 0);
6004
  Move(Key, K, Size);
6005
  InitLog;
6006
  E := FAdditionalBuffer; // encryption round key
6007
  D := @E[SHARK_ROUNDS + 1]; // decryption round key
6008
6009
  Move(Shark_CE[0], T, SizeOf(T));
6010
  T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog);
6011
6012
  I := 0;
6013
  for R := 0 to High(A) do
6014
  begin
6015
    A[R] := K[I and $F];
6016
    Inc(I);
6017
    for J := 1 to 7 do
6018
    begin
6019
      A[R] := A[R] shl 8 or K[I and $F];
6020
      Inc(I);
6021
    end;
6022
  end;
6023
6024
  E[0] := A[0] xor SharkEncode(0, @T);
6025
  for R := 1 to High(A) do
6026
    E[R] := A[R] xor SharkEncode(E[R - 1], @T);
6027
6028
  E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog);
6029
  D[0] := E[SHARK_ROUNDS];
6030
  D[SHARK_ROUNDS] := E[0];
6031
  for R := 1 to SHARK_ROUNDS - 1 do
6032
    D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog);
6033
6034
  ProtectBuffer(T, SizeOf(T));
6035
  ProtectBuffer(A, SizeOf(A));
6036
  ProtectBuffer(K, SizeOf(K));
6037
6038
  inherited;
6039
end;
6040
6041
procedure TCipher_SharkBase.DoDecode(Source, Dest: Pointer; Size: Integer);
6042
var
6043
  R: Integer;
6044
  D: UInt64;
6045
  K: PUInt64;
6046
begin
6047
  Assert(Size = Context.BufferSize);
6048
6049
  D := PUInt64(Source)^;
6050
  K := @PUInt64Array(FAdditionalBuffer)[SHARK_ROUNDS + 1]; // decryption round key
6051
  for R := 1 to SHARK_ROUNDS - 1 do
6052
  begin
6053
    D := D xor K^;
6054
    Inc(K);
6055
    D := Shark_CD[0, D shr 56 and $FF] xor
6056
         Shark_CD[1, D shr 48 and $FF] xor
6057
         Shark_CD[2, D shr 40 and $FF] xor
6058
         Shark_CD[3, D shr 32 and $FF] xor
6059
         Shark_CD[4, D shr 24 and $FF] xor
6060
         Shark_CD[5, D shr 16 and $FF] xor
6061
         Shark_CD[6, D shr 8  and $FF] xor
6062
         Shark_CD[7, D        and $FF];
6063
  end;
6064
  D := D xor K^;
6065
  Inc(K);
6066
  D := UInt64(Shark_SD[D shr 56 and $FF]) shl 56 xor
6067
       UInt64(Shark_SD[D shr 48 and $FF]) shl 48 xor
6068
       UInt64(Shark_SD[D shr 40 and $FF]) shl 40 xor
6069
       UInt64(Shark_SD[D shr 32 and $FF]) shl 32 xor
6070
       UInt64(Shark_SD[D shr 24 and $FF]) shl 24 xor
6071
       UInt64(Shark_SD[D shr 16 and $FF]) shl 16 xor
6072
       UInt64(Shark_SD[D shr  8 and $FF]) shl  8 xor
6073
       UInt64(Shark_SD[D        and $FF]);
6074
6075
  PUInt64(Dest)^ := D xor K^;
6076
end;
6077
{$ENDIF CPU64BITS}
6078
6079
{ TCipher_Shark_DEC52 }
6080
6081
6082
procedure TCipher_Shark_DEC52.DoInit(const Key; Size: Integer);
6083
var
6084
  Log, ALog: TLogArray;
6085
6086
  procedure InitLog;
6087
  var
6088
    I, J: Word;
6089
  begin
6090
    // Generate GF(256) anti-logarithm and logarithm tables
6091
    ALog[0] := 1;
6092
    for I := 1 to 255 do
6093
    begin
6094
      J := ALog[I - 1] shl 1;
6095
      if J and $100 <> 0 then
6096
        J := J xor SHARK_ROOT;
6097
      ALog[I] := J;
6098
    end;
6099
    for I := 1 to 254 do
6100
      Log[ALog[I]] := I;
6101
  end;
6102
6103
{$IFNDEF CPU64BITS}
6104
var
6105
  T: array[0..SHARK_ROUNDS] of TLong64;
6106
  A: array[0..SHARK_ROUNDS] of TLong64;
6107
  K: array[0..15] of Byte;
6108
  I, J, R: Byte;
6109
  E, D: PLong64Array;
6110
  L: TLong64;
6111
begin
6112
  FillChar(K, SizeOf(K), 0);
6113
  Move(Key, K, Size);
6114
  InitLog;
6115
  E := FAdditionalBuffer;
6116
  D := @E[7];
6117
  Move(Shark_CE[0], T, SizeOf(T));
6118
  T[6] := Transform(T[6], Log, ALog);
6119
  I := 0;
6120
  for R := 0 to 6 do
6121
  begin
6122
    Inc(I);
6123
    A[R].L := K[I and $F];
6124
    A[R].R := 0;
6125
    for J := 1 to 7 do
6126
    begin
6127
      Inc(I);
6128
      A[R].R := A[R].R shl 8 or A[R].L shr 24;
6129
      A[R].L := A[R].L shl 8 or K[I and $F];
6130
    end;
6131
  end;
6132
  L.L := 0;
6133
  L.R := 0;
6134
  L := Shark(L, @T);
6135
  E[0].L := A[0].L xor L.L;
6136
  E[0].R := A[0].R xor L.R;
6137
  for R := 1 to 6 do
6138
  begin
6139
    L := Shark(E[R - 1], @T);
6140
    E[R].L := A[R].L xor L.L;
6141
    E[R].R := A[R].R xor L.R;
6142
  end;
6143
  E[6] := Transform(E[6], Log, ALog);
6144
  D[0] := E[6];
6145
  D[6] := E[0];
6146
  for R := 1 to 5 do
6147
    D[R] := Transform(E[6-R], Log, ALog);
6148
  ProtectBuffer(T, SizeOf(T));
6149
  ProtectBuffer(A, SizeOf(A));
6150
  ProtectBuffer(K, SizeOf(K));
6151
6152
  inherited;
6153
  {$ELSE}
6154
var
6155
  T: array[0..SHARK_ROUNDS] of UInt64;
6156
  A: array[0..SHARK_ROUNDKEYS-1] of UInt64;
6157
  K: array[0..15] of Byte;
6158
  I, J, R: Integer;
6159
  E, D: PUInt64Array;
6160
begin
6161
  FillChar(K, SizeOf(K), 0);
6162
  Move(Key, K, Size);
6163
  InitLog;
6164
  E := FAdditionalBuffer; // encryption round key
6165
  D := @E[SHARK_ROUNDS + 1]; // decryption round key
6166
6167
  Move(Shark_CE[0], T, SizeOf(T));
6168
  T[SHARK_ROUNDS] := Transform(T[SHARK_ROUNDS], Log, ALog);
6169
6170
  I := 0;
6171
  for R := 0 to High(A) do
6172
  begin
6173
    Inc(I);
6174
    A[R] := K[I and $F];
6175
    for J := 1 to 7 do
6176
    begin
6177
      Inc(I);
6178
      A[R] := A[R] shl 8 or K[I and $F];
6179
    end;
6180
  end;
6181
6182
  E[0] := A[0] xor SharkEncode(0, @T);
6183
  for R := 1 to High(A) do
6184
    E[R] := A[R] xor SharkEncode(E[R - 1], @T);
6185
6186
  E[SHARK_ROUNDS] := Transform(E[SHARK_ROUNDS], Log, ALog);
6187
  D[0] := E[SHARK_ROUNDS];
6188
  D[SHARK_ROUNDS] := E[0];
6189
  for R := 1 to SHARK_ROUNDS - 1 do
6190
    D[R] := Transform(E[SHARK_ROUNDS - R], Log, ALog);
6191
6192
  ProtectBuffer(T, SizeOf(T));
6193
  ProtectBuffer(A, SizeOf(A));
6194
  ProtectBuffer(K, SizeOf(K));
6195
6196
  inherited;
6197
  {$ENDIF}
6198
end;
6199
6200
{ TCipher_Skipjack }
6201
6202
class function TCipher_Skipjack.Context: TCipherContext;
6203
begin
6204
  Result.KeySize                     := 10;
6205
  Result.BlockSize                   := 8;
6206
  Result.BufferSize                  := 8;
6207
  Result.AdditionalBufferSize        := $A00;
6208
  Result.NeedsAdditionalBufferBackup := false;
6209
  Result.MinRounds                   := 1;
6210
  Result.MaxRounds                   := 1;
6211
  Result.CipherType                  := [ctSymmetric, ctBlock];
6212
end;
6213
6214
procedure TCipher_Skipjack.DoInit(const Key; Size: Integer);
6215
var
6216
  K: array[0..9] of Byte;
6217
  D: PByte;
6218
  I, J: Integer;
6219
begin
6220
  FillChar(K, SizeOf(K), 0);
6221
  Move(Key, K, Size);
6222
  D := FAdditionalBuffer;
6223
  for I := 0 to 9 do
6224
    for J := 0 to 255 do
6225
    begin
6226
      D^ := Skipjack_Data[J xor K[I]];
6227
      Inc(D);
6228
    end;
6229
  ProtectBuffer(K, SizeOf(K));
6230
6231
  inherited;
6232
end;
6233
6234
procedure TCipher_Skipjack.DoEncode(Source, Dest: Pointer; Size: Integer);
6235
var
6236
  Tab, Min: PSkipjackTab;
6237
  Max: PByte;
6238
  K, T, A, B, C, D: UInt32;
6239
6240
begin
6241
  Assert(Size = Context.BlockSize);
6242
6243
  Min := FAdditionalBuffer;
6244
  Max := PByte(Min) + 9 * 256; // for Pointer Math
6245
  Tab := Min;
6246
  A   := Swap(PWordArray(Source)[0]);
6247
  B   := Swap(PWordArray(Source)[1]);
6248
  C   := Swap(PWordArray(Source)[2]);
6249
  D   := Swap(PWordArray(Source)[3]);
6250
  K   := 0;
6251
6252
  repeat
6253
    Inc(K);
6254
    T := A;
6255
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6256
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6257
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6258
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6259
    A := T xor D xor K;
6260
    D := C;
6261
    C := B;
6262
    B := T;
6263
  until K = 8;
6264
6265
  repeat
6266
    Inc(K);
6267
    T := A;
6268
    A := D;
6269
    D := C;
6270
    C := T xor B xor K;
6271
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6272
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6273
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6274
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6275
    B := T;
6276
  until K = 16;
6277
6278
  repeat
6279
    Inc(K);
6280
    T := A;
6281
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6282
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6283
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6284
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6285
    A := T xor D xor K;
6286
    D := C;
6287
    C := B;
6288
    B := T;
6289
  until K = 24;
6290
6291
  repeat
6292
    Inc(K);
6293
    T := A;
6294
    A := D;
6295
    D := C;
6296
    C := T xor B xor K;
6297
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6298
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6299
    T := T xor Tab[T and $FF] shl 8;   SkipjackIncCheck(Tab, Min, Max);
6300
    T := T xor Tab[T shr 8];           SkipjackIncCheck(Tab, Min, Max);
6301
    B := T;
6302
  until K = 32;
6303
6304
  PWordArray(Dest)[0] := Swap(A);
6305
  PWordArray(Dest)[1] := Swap(B);
6306
  PWordArray(Dest)[2] := Swap(C);
6307
  PWordArray(Dest)[3] := Swap(D);
6308
end;
6309
6310
procedure TCipher_Skipjack.SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte);
6311
begin
6312
  Inc(ATab);
6313
6314
  if PByte(ATab) > AMax then
6315
    ATab := AMin;
6316
end;
6317
6318
procedure TCipher_Skipjack.DoDecode(Source, Dest: Pointer; Size: Integer);
6319
var
6320
  Tab, Max: PSkipjackTab;
6321
  Min: PByte; // for Pointer Math
6322
  K, T, A, B, C, D: UInt32;
6323
6324
begin
6325
  Assert(Size = Context.BlockSize);
6326
6327
  Min := FAdditionalBuffer;
6328
  Max := Pointer(Min + 9 * 256);
6329
  Tab := Pointer(Min + 7 * 256);
6330
  A   := Swap(PWordArray(Source)[0]); // holds an Integer, Compiler makes faster Code
6331
  B   := Swap(PWordArray(Source)[1]);
6332
  C   := Swap(PWordArray(Source)[2]);
6333
  D   := Swap(PWordArray(Source)[3]);
6334
  K   := 32;
6335
6336
  repeat
6337
    T := B;
6338
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6339
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6340
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6341
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6342
    B := T xor C xor K;
6343
    C := D;
6344
    D := A;
6345
    A := T;
6346
    Dec(K);
6347
  until K = 24;
6348
6349
  repeat
6350
    T := B;
6351
    B := C;
6352
    C := D;
6353
    D := T xor A xor K;
6354
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6355
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6356
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6357
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6358
    A := T;
6359
    Dec(K);
6360
  until K = 16;
6361
6362
  repeat
6363
    T := B;
6364
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6365
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6366
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6367
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6368
    B := C xor T xor K;
6369
    C := D;
6370
    D := A;
6371
    A := T;
6372
    Dec(K);
6373
  until K = 8;
6374
6375
  repeat
6376
    T := B;
6377
    B := C;
6378
    C := D;
6379
    D := T xor A xor K;
6380
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6381
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6382
    T := T xor Tab[T shr 8];           SkipjackDecCheck(Tab, Min, Max);
6383
    T := T xor Tab[T and $FF] shl 8;   SkipjackDecCheck(Tab, Min, Max);
6384
    A := T;
6385
    Dec(K);
6386
  until K = 0;
6387
6388
  PWordArray(Dest)[0] := Swap(A);
6389
  PWordArray(Dest)[1] := Swap(B);
6390
  PWordArray(Dest)[2] := Swap(C);
6391
  PWordArray(Dest)[3] := Swap(D);
6392
end;
6393
6394
procedure TCipher_Skipjack.SkipjackDecCheck(var ATab: PSkipjackTab; AMin: PByte; AMax: PSkipjackTab);
6395
begin
6396
  Dec(ATab);
6397
//    {$IFDEF DELPHIORBCB}
6398
//    if ATab < AMin then
6399
//    {$ELSE !DELPHIORBCB}
6400
{ TODO : Prüfen ob so korrekt, da ATab auf PByte umgestellt wurde}
6401
  if PByte(ATab) < AMin then
6402
//    {$ENDIF !DELPHIORBCB}
6403
    ATab := AMax;
6404
end;
6405
6406
{ TCipher_TEA }
6407
6408
const
6409
  TEA_Delta = $9E3779B9; // magic constant, decimal 2654435769
6410
6411
class function TCipher_TEA.Context: TCipherContext;
6412
begin
6413
  Result.KeySize                     := 16;   // 128 bits
6414
  Result.BlockSize                   := 8;    // 64 bits
6415
  Result.BufferSize                  := 8;    // 64 bits
6416
  Result.AdditionalBufferSize        := 32;   // 256 bits
6417
  Result.NeedsAdditionalBufferBackup := false;
6418
  Result.MinRounds                   := 16;
6419
  Result.MaxRounds                   := 256;
6420
  Result.CipherType                  := [ctSymmetric, ctBlock];
6421
end;
6422
6423
procedure TCipher_TEA.SetRounds(Value: Integer);
6424
begin
6425
  if not (FState in [csNew, csInitialized, csDone]) then
6426
    Done;
6427
  if Value < Context.MinRounds then
6428
    Value := Context.MinRounds
6429
  else
6430
  if Value > Context.MaxRounds then
6431
    Value := Context.MaxRounds;
6432
  FRounds := Value;
6433
end;
6434
6435
procedure TCipher_TEA.DoInit(const Key; Size: Integer);
6436
begin
6437
  Move(Key, FAdditionalBuffer^, Size);
6438
  SetRounds(FRounds);
6439
6440
  inherited;
6441
end;
6442
6443
procedure TCipher_TEA.DoEncode(Source, Dest: Pointer; Size: Integer);
6444
var
6445
  I: Integer;
6446
  Sum,
6447
  X, Y, A, B, C, D: UInt32;
6448
begin
6449
  Assert(Size = Context.BlockSize);
6450
6451
  Sum := 0;
6452
6453
  A := PUInt32Array(FAdditionalBuffer)[0];
6454
  B := PUInt32Array(FAdditionalBuffer)[1];
6455
  C := PUInt32Array(FAdditionalBuffer)[2];
6456
  D := PUInt32Array(FAdditionalBuffer)[3];
6457
  X := PUInt32Array(Source)[0];
6458
  Y := PUInt32Array(Source)[1];
6459
6460
  for I := 0 to FRounds - 1 do
6461
  begin
6462
    Inc(Sum, TEA_Delta);
6463
    Inc(X, (((Y shl 4 + A) xor Y) + Sum) xor (Y shr 5 + B));
6464
    Inc(Y, (((X shl 4 + C) xor X) + Sum) xor (X shr 5 + D));
6465
  end;
6466
6467
  PUInt32Array(Dest)[0] := X;
6468
  PUInt32Array(Dest)[1] := Y;
6469
end;
6470
6471
procedure TCipher_TEA.DoDecode(Source, Dest: Pointer; Size: Integer);
6472
var
6473
  I: Integer;
6474
  Sum,
6475
  X, Y, A, B, C, D: UInt32;
6476
begin
6477
  Assert(Size = Context.BlockSize);
6478
6479
  Sum := TEA_Delta * UInt32(FRounds);
6480
6481
  A := PUInt32Array(FAdditionalBuffer)[0];
6482
  B := PUInt32Array(FAdditionalBuffer)[1];
6483
  C := PUInt32Array(FAdditionalBuffer)[2];
6484
  D := PUInt32Array(FAdditionalBuffer)[3];
6485
  X := PUInt32Array(Source)[0];
6486
  Y := PUInt32Array(Source)[1];
6487
6488
  for I := 0 to FRounds - 1 do
6489
  begin
6490
    Dec(Y, (X shl 4 + C) xor X + Sum xor (X shr 5 + D));
6491
    Dec(X, (Y shl 4 + A) xor Y + Sum xor (Y shr 5 + B));
6492
    Dec(Sum, TEA_Delta);
6493
  end;
6494
6495
  PUInt32Array(Dest)[0] := X;
6496
  PUInt32Array(Dest)[1] := Y;
6497
end;
6498
6499
{ TCipher_XTEA }
6500
6501
procedure TCipher_XTEA.DoEncode(Source, Dest: Pointer; Size: Integer);
6502
var
6503
  Sum,
6504
  I, X, Y: UInt32;
6505
  K: PUInt32Array;
6506
begin
6507
  Assert(Size = Context.BlockSize);
6508
6509
  Sum := 0;
6510
6511
  X := PUInt32Array(Source)[0];
6512
  Y := PUInt32Array(Source)[1];
6513
  K := FAdditionalBuffer;
6514
6515
  for I := 0 to FRounds - 1 do
6516
  begin
6517
    Inc(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3]));
6518
    Inc(Sum, TEA_Delta);
6519
    Inc(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3]));
6520
  end;
6521
6522
  PUInt32Array(Dest)[0] := X;
6523
  PUInt32Array(Dest)[1] := Y;
6524
end;
6525
6526
procedure TCipher_XTEA.DoDecode(Source, Dest: Pointer; Size: Integer);
6527
var
6528
  I: Integer;
6529
  Sum,
6530
  X, Y: UInt32;
6531
  K: PUInt32Array;
6532
begin
6533
  Assert(Size = Context.BlockSize);
6534
6535
  Sum := TEA_Delta * UInt32(FRounds);
6536
6537
  X := PUInt32Array(Source)[0];
6538
  Y := PUInt32Array(Source)[1];
6539
  K := FAdditionalBuffer;
6540
6541
  for I := 0 to FRounds - 1 do
6542
  begin
6543
    Dec(Y, (((X shl 4) xor (X shr 5)) + X) xor (Sum + K[Sum shr 11 and 3]));
6544
    Dec(Sum, TEA_Delta);
6545
    Dec(X, (((Y shl 4) xor (Y shr 5)) + Y) xor (Sum + K[Sum and 3]));
6546
  end;
6547
6548
  PUInt32Array(Dest)[0] := X;
6549
  PUInt32Array(Dest)[1] := Y;
6550
end;
6551
6552
{ TCipher_XTEA_DEC52 }
6553
6554
procedure TCipher_XTEA_DEC52.DoEncode(Source, Dest: Pointer; Size: Integer);
6555
var
6556
  Sum,
6557
  I, X, Y: UInt32;
6558
  K: PUInt32Array;
6559
begin
6560
  Assert(Size = Context.BlockSize);
6561
6562
  Sum := 0;
6563
6564
  X := PUInt32Array(Source)[0];
6565
  Y := PUInt32Array(Source)[1];
6566
  K := FAdditionalBuffer;
6567
6568
  for I := 0 to FRounds - 1 do
6569
  begin
6570
    Inc(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]);
6571
    Inc(Sum, TEA_Delta);
6572
    Inc(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]);
6573
  end;
6574
6575
  PUInt32Array(Dest)[0] := X;
6576
  PUInt32Array(Dest)[1] := Y;
6577
end;
6578
6579
procedure TCipher_XTEA_DEC52.DoDecode(Source, Dest: Pointer; Size: Integer);
6580
var
6581
  I: Integer;
6582
  Sum,
6583
  X, Y: UInt32;
6584
  K: PUInt32Array;
6585
begin
6586
  Assert(Size = Context.BlockSize);
6587
6588
  Sum := TEA_Delta * UInt32(FRounds);
6589
6590
  X := PUInt32Array(Source)[0];
6591
  Y := PUInt32Array(Source)[1];
6592
  K := FAdditionalBuffer;
6593
6594
  for I := 0 to FRounds - 1 do
6595
  begin
6596
    Dec(Y, (X shl 4 xor X shr 5) + (X xor Sum) + K[Sum shr 11 and 3]);
6597
    Dec(Sum, TEA_Delta);
6598
    Dec(X, (Y shl 4 xor Y shr 5) + (Y xor Sum) + K[Sum and 3]);
6599
  end;
6600
6601
  PUInt32Array(Dest)[0] := X;
6602
  PUInt32Array(Dest)[1] := Y;
6603
end;
6604
6605
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
6606
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
6607
6608
initialization
6609
  SetDefaultCipherClass(TCipher_Null);
6610
6611
  {$IFNDEF ManualRegisterCipherClasses}
6612
  TCipher_Null.RegisterClass(TDECCipher.ClassList);
6613
  TCipher_Blowfish.RegisterClass(TDECCipher.ClassList);
6614
  TCipher_Twofish.RegisterClass(TDECCipher.ClassList);
6615
  TCipher_IDEA.RegisterClass(TDECCipher.ClassList);
6616
  TCipher_Cast256.RegisterClass(TDECCipher.ClassList);
6617
  TCipher_Mars.RegisterClass(TDECCipher.ClassList);
6618
  TCipher_RC4.RegisterClass(TDECCipher.ClassList);
6619
  TCipher_RC6.RegisterClass(TDECCipher.ClassList);
6620
// Explicitely not registered, as Rijndael is 1:1 the same as AES and AES is the
6621
// more common name
6622
//  TCipher_Rijndael.RegisterClass(TDECCipher.ClassList);
6623
  TCipher_AES.RegisterClass(TDECCipher.ClassList);
6624
  TCipher_Square.RegisterClass(TDECCipher.ClassList);
6625
  TCipher_SCOP.RegisterClass(TDECCipher.ClassList);
6626
  TCipher_Sapphire.RegisterClass(TDECCipher.ClassList);
6627
  TCipher_1DES.RegisterClass(TDECCipher.ClassList);
6628
  TCipher_2DES.RegisterClass(TDECCipher.ClassList);
6629
  TCipher_3DES.RegisterClass(TDECCipher.ClassList);
6630
  TCipher_2DDES.RegisterClass(TDECCipher.ClassList);
6631
  TCipher_3DDES.RegisterClass(TDECCipher.ClassList);
6632
  TCipher_3TDES.RegisterClass(TDECCipher.ClassList);
6633
  TCipher_3Way.RegisterClass(TDECCipher.ClassList);
6634
  TCipher_Cast128.RegisterClass(TDECCipher.ClassList);
6635
  TCipher_Gost.RegisterClass(TDECCipher.ClassList);
6636
// Explicitely not registered, as this is an alias for Gost only
6637
//  TCipher_Magma.RegisterClass(TDECCipher.ClassList);
6638
  TCipher_Misty.RegisterClass(TDECCipher.ClassList);
6639
  TCipher_NewDES.RegisterClass(TDECCipher.ClassList);
6640
  TCipher_Q128.RegisterClass(TDECCipher.ClassList);
6641
  TCipher_RC2.RegisterClass(TDECCipher.ClassList);
6642
  TCipher_RC5.RegisterClass(TDECCipher.ClassList);
6643
  TCipher_SAFER.RegisterClass(TDECCipher.ClassList);
6644
  TCipher_Shark.RegisterClass(TDECCipher.ClassList);
6645
  TCipher_Skipjack.RegisterClass(TDECCipher.ClassList);
6646
  TCipher_TEA.RegisterClass(TDECCipher.ClassList);
6647
  TCipher_XTEA.RegisterClass(TDECCipher.ClassList);
6648
  TCipher_TEAN.RegisterClass(TDECCipher.ClassList);
6649
6650
    {$IFDEF OLD_REGISTER_FAULTY_CIPHERS}
6651
    // Those classes are only there for those who might have relied on the
6652
    // faulty implementation
6653
    TCipher_SCOP_DEC52.RegisterClass(TDECCipher.ClassList);
6654
    TCipher_Shark_DEC52.RegisterClass(TDECCipher.ClassList);
6655
    TCipher_XTEA_DEC52.RegisterClass(TDECCipher.ClassList);
6656
    {$ENDIF}
6657
  {$ENDIF}
6658
6659
finalization
6660
6661
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECFormat(DECFormat.pas).html b/Unit Tests/CodeCoverage/U/DECFormat(DECFormat.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECFormat(DECFormat.pas).html rename to Unit Tests/CodeCoverage/U/DECFormat(DECFormat.pas).html index 382911f5..0b885e10 100644 --- a/Unit Tests/CodeCoverage/DECFormat(DECFormat.pas).html +++ b/Unit Tests/CodeCoverage/U/DECFormat(DECFormat.pas).html @@ -1,1932 +1,1932 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECFormat (D:\Projekte\DECGitMaster\Source\DECFormat.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECFormat.pas

-
Number of lines covered578
Number of lines with code gen592
Line coverage97%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   This unit provides a standardisized way for applying format conversions
20
///   to data
21
/// </summary>
22
unit DECFormat;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECBaseClass, DECFormatBase, DECUtil;
35
36
type
37
  /// <summary>
38
  ///   wrapper (allows omitting DECFormatBase in user code)
39
  /// </summary>
40
  TDECFormat          = DECFormatBase.TDECFormat;
41
  /// <summary>
42
  ///   wrapper (allows omitting DECFormatBase in user code)
43
  /// </summary>
44
  TDECFormatClass     = DECFormatBase.TDECFormatClass;
45
  /// <summary>
46
  ///   wrapper (allows omitting DECFormatBase in user code)
47
  /// </summary>
48
  TFormat_Copy        = DECFormatBase.TFormat_Copy;
49
50
  TFormat_HEX         = class;
51
  TFormat_HEXL        = class;
52
53
  TFormat_Base16      = class;
54
  TFormat_Base16L     = class;
55
56
  TFormat_DECMIME32   = class;
57
58
  TFormat_Base64      = class;
59
  TFormat_MIME64      = class;
60
61
  TFormat_Radix64     = class;
62
  TFormat_PGP         = class;
63
64
  TFormat_UU          = class;
65
  TFormat_XX          = class;
66
  TFormat_ESCAPE      = class;
67
68
  TFormat_BigEndian16 = class;
69
  TFormat_BigEndian32 = class;
70
71
  /// <summary>
72
  ///   Hexadecimal in Uppercase, Base16, see http://tools.ietf.org/html/rfc4648
73
  /// </summary>
74
  TFormat_HEX = class(TDECFormat)
75
  protected
76
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
77
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
78
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
79
  public
80
    class function CharTableBinary: TBytes; virtual;
81
  end;
82
83
  /// <summary>
84
  ///   Hexadecimal in lowercase, Base16, see http://tools.ietf.org/html/rfc4648
85
  /// </summary>
86
  TFormat_HEXL = class(TFormat_HEX)
87
  public
88
    class function CharTableBinary: TBytes; override;
89
  end;
90
91
  /// <summary>
92
  ///   Same as TFormat_HEX, use TFormat_HEX instead
93
  /// </summary>
94
  TFormat_Base16 = class(TFormat_HEX)
95
  end deprecated 'Use TFormat_HEX instead';
96
97
  /// <summary>
98
  ///   Same as TFormat_HEXL, use TFormat_HEXL instead
99
  /// </summary>
100
  TFormat_Base16L = class(TFormat_HEXL)
101
  end deprecated 'Use TFormat_HEXL instead';
102
103
  /// <summary>
104
  ///   Proprietary variant of MINE32, kept for backwards compatibility with old
105
  ///   DEC versions
106
  /// </summary>
107
  /// <remarks>
108
  ///   This formatting should only be used for supporting legacy projects which
109
  ///   already use this format. It is being considered to be more or less deprecated.
110
  /// </remarks>
111
  TFormat_DECMIME32 = class(TFormat_HEX)
112
  protected
113
    /// <summary>
114
    ///   Encodes data passed to this method in the proprietary DECMIME32 format.
115
    /// </summary>
116
    /// <remarks>
117
    ///   This formatting should only be used for supporting legacy projects which
118
    ///   already use this format. It is being considered to be more or less deprecated.
119
    /// </remarks>
120
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
121
    /// <summary>
122
    ///   Decodes data passed to this method in the proprietary DECMIME32 format
123
    ///   into an array of normal bytes.
124
    /// </summary>
125
    /// <remarks>
126
    ///   This formatting should only be used for supporting legacy projects which
127
    ///   already use this format. It is being considered to be more or less deprecated.
128
    /// </remarks>
129
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
130
    /// <summary>
131
    ///   Checks if certain data adheres to the rules for this formatting.
132
    /// </summary>
133
    /// <remarks>
134
    ///   This formatting should only be used for supporting legacy projects which
135
    ///   already use this format. It is being considered to be more or less deprecated.
136
    /// </remarks>
137
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
138
139
  public
140
    class function CharTableBinary: TBytes; override;
141
  end;
142
143
  /// <summary>
144
  ///   Same as DECMIME32, which itsself should only be used for legacy projects
145
  /// </summary>
146
  TFormat_MIME32 = class(TFormat_DECMIME32)
147
  end deprecated 'Use TFormat_DECMIME32 instead';
148
149
  /// <summary>
150
  ///   Base64 (without soft wraps), see http://tools.ietf.org/html/rfc4648
151
  /// </summary>
152
  TFormat_Base64 = class(TFormat_HEX)
153
  protected
154
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
155
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
156
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
157
  public
158
    class function CharTableBinary: TBytes; override;
159
  end;
160
161
  /// <summary>
162
  ///   Same as TFormat_Base64, use TFormat_Base64 instead, kept for backwards
163
  ///   compatibility only
164
  /// </summary>
165
  TFormat_MIME64 = class(TFormat_Base64)
166
  end deprecated 'Use TFormat_Base64 instead';
167
168
  /// <summary>
169
  ///   OpenPGP/PGP Base64 with 24-bit Checksums, see http://tools.ietf.org/html/rfc4880
170
  /// </summary>
171
  TFormat_Radix64 = class(TFormat_Base64)
172
  /// <summary>
173
  ///   Here the section needs to be private so that the variable can be accessed
174
  ///   for initialization in the initialization section, which is needed since
175
  ///   all functionality of the class is implemented as class methods
176
  /// </summary>
177
  private
178
    /// <summary>
179
    ///   Maximum number of chars for one line of message text
180
    /// </summary>
181
    class var FCharsPerLine : UInt32;
182
  protected
183
    /// <summary>
184
    ///   Extracts the CRC24 checksum from Radix64 encoded data
185
    /// </summary>
186
    /// <param name="Data">
187
    ///   Data to extract the checksum from
188
    /// </param>
189
    /// <param name="Size">
190
    ///   Size of the data in byte
191
    /// </param>
192
    /// <returns>
193
    ///   CRC24 checksum if present, otherwise $FFFFFFFF
194
    /// </returns>
195
    class function DoExtractCRC(const Data; var Size: Integer): UInt32;
196
    /// <summary>
197
    ///   If the data given exceeds FCharsPerLine, means the maximum allowed
198
    ///   line lenth, a CR/LF pair needs to be inserted at that position.
199
    /// </summary>
200
    /// <param name="Source">
201
    ///   Data to insert a CR/LF into if necessary
202
    /// </param>
203
    /// <param name="Dest">
204
    ///   In this byte array the processed data will be returned
205
    /// </param>
206
    /// <param name="LineLength">
207
    ///   Maximum length of a line in byte. At this position the CR/LF will be
208
    ///   inserted if the source passed in exceeds this length.
209
    /// </param>
210
    class procedure InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer);
211
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
212
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
213
214
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
215
  public
216
    /// <summary>
217
    ///   Changes the number of chars after which a line break is being added
218
    /// </summary>
219
    /// <param name="Value">
220
    ///   Maximum number of chars for a single line. Values < 1 result in an
221
    ///   EArgumentOutOfRangeException being raised
222
    /// </param>
223
    class procedure SetCharsPerLine(const Value: UInt32);
224
    /// <summary>
225
    ///   Returns the number of chars after which a line break will be introduced
226
    /// </summary>
227
    /// <returns>
228
    ///   Maximum number of chars per line
229
    /// </returns>
230
    /// <remarks>
231
    ///   Cannot be a property, as properties cannot access class vars
232
    /// </remarks>
233
    class function GetCharsPerLine: UInt32;
234
  end;
235
236
  /// <summary>
237
  ///   Same as TFormat_Radix64, use TFormat_Radix64 instead, kept for backwards
238
  ///   compatibility only
239
  /// </summary>
240
  TFormat_PGP = class(TFormat_Radix64)
241
  end deprecated 'Use TFormat_Radix64 instead';
242
243
  /// <summary>
244
  ///   Unix UU format
245
  /// </summary>
246
  TFormat_UU = class(TDECFormat)
247
  protected
248
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
249
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
250
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
251
  public
252
    class function CharTableBinary: TBytes; virtual;
253
  end;
254
255
  /// <summary>
256
  ///   Unix XX format
257
  /// </summary>
258
  TFormat_XX = class(TFormat_UU)
259
  public
260
    class function CharTableBinary: TBytes; override;
261
  end;
262
263
  /// <summary>
264
  ///   Escaped format
265
  /// </summary>
266
  TFormat_ESCAPE = class(TDECFormat)
267
  protected
268
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
269
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
270
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
271
  public
272
    class function CharTableBinary: TBytes; virtual;
273
  end;
274
275
  /// <summary>
276
  ///   Conversion from/to 16 bit big endian
277
  /// </summary>
278
  TFormat_BigEndian16 = class(TDECFormat)
279
  private
280
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
281
  protected
282
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
283
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
284
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
285
  public
286
  end;
287
288
  /// <summary>
289
  ///   Conversion from/to 32 bit big endian
290
  /// </summary>
291
  TFormat_BigEndian32 = class(TDECFormat)
292
  private
293
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
294
  protected
295
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
296
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
297
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
298
  public
299
  end;
300
301
  /// <summary>
302
  ///   Conversion from/to 64 bit big endian
303
  /// </summary>
304
  TFormat_BigEndian64 = class(TDECFormat)
305
  private
306
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
307
  protected
308
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
309
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
310
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
311
  public
312
  end;
313
314
implementation
315
316
uses
317
  DECTypes, DECCRC; // needed by TFormat_Radix64
318
319
resourcestring
320
  sInvalidStringFormat  = 'Input is not an valid %s format';
321
322
class function TFormat_HEX.CharTableBinary: TBytes;
323
begin
324
  SetLength(result, 48);
325
  // special and skipped chars
326
  // '0123456789ABCDEFX$ abcdefhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13);
327
328
  {$IF CompilerVersion >= 28.0}
329
  result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, $43,
330
             $44, $45, $46, $58, $24, $20, $61, $62, $63, $64, $65, $66, $68,
331
             $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
332
             $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D];
333
  {$ELSE}
334
  // Remove this initialisation variant as soon as XE7+ is the new minimum
335
  // supported Delphi version
336
  result[ 0]:=$30;
337
  result[ 1]:=$31;
338
  result[ 2]:=$32;
339
  result[ 3]:=$33;
340
  result[ 4]:=$34;
341
  result[ 5]:=$35;
342
  result[ 6]:=$36;
343
  result[ 7]:=$37;
344
  result[ 8]:=$38;
345
  result[ 9]:=$39;
346
  result[10]:=$41;
347
  result[11]:=$42;
348
  result[12]:=$43;
349
  result[13]:=$44;
350
  result[14]:=$45;
351
  result[15]:=$46;
352
  result[16]:=$58;
353
  result[17]:=$24;
354
  result[18]:=$20;
355
  result[19]:=$61;
356
  result[20]:=$62;
357
  result[21]:=$63;
358
  result[22]:=$64;
359
  result[23]:=$65;
360
  result[24]:=$66;
361
  result[25]:=$68;
362
  result[26]:=$48;
363
  result[27]:=$78;
364
  result[28]:=$28;
365
  result[29]:=$29;
366
  result[30]:=$5B;
367
  result[31]:=$5D;
368
  result[32]:=$7B;
369
  result[33]:=$7D;
370
  result[34]:=$2C;
371
  result[35]:=$3B;
372
  result[36]:=$3A;
373
  result[37]:=$2D;
374
  result[38]:=$5F;
375
  result[39]:=$2F;
376
  result[40]:=$5C;
377
  result[41]:=$2A;
378
  result[42]:=$2B;
379
  result[43]:=$22;
380
  result[44]:=$27;
381
  result[45]:=$09;
382
  result[46]:=$0A;
383
  result[47]:=$0D;
384
  {$IFEND}
385
end;
386
387
class procedure TFormat_HEX.DoEncode(const Source; var Dest: TBytes; Size: Integer);
388
var
389
  S     : PByte;
390
  Table : TBytes;
391
  i     : Integer;
392
begin
393
  if Size <= 0 then Exit;
394
  SetLength(Dest, Size * 2);
395
396
  Table := CharTableBinary;
397
398
  S     := PByte(@Source);
399
  i     := 0;
400
401
  while Size > 0 do
402
  begin
403
    Dest[i]     := Table[S^ shr  4];
404
    Dest[i + 1] := Table[S^ and $F];
405
406
    Inc(S);
407
    Dec(Size);
408
    Inc(i, 2);
409
  end;
410
end;
411
412
class procedure TFormat_HEX.DoDecode(const Source; var Dest: TBytes; Size: Integer);
413
var
414
  S: PByte;
415
  D: PByte;
416
  T: TBytes;
417
  I,P: Integer;
418
419
  HasIdent: Boolean;
420
begin
421
  SetLength(Dest, 0);
422
  if Size <= 0 then Exit;
423
  SetLength(Dest, Size div 2); //  + 1);
424
425
  T := CharTableBinary;
426
427
  D := PByte(Dest);
428
  S := PByte(@Source);
429
  I := 0;
430
  HasIdent := False;
431
  while Size > 0 do
432
  begin
433
    P := TableFindBinary(S^, T, 18);
434
    if P < 0 then P := TableFindBinary(UpCaseBinary(S^), T, 16);
435
    if P < 0 then
436
      raise EDECException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
437
    Inc(S);
438
    if P >= 0 then
439
      if P > 16 then
440
      begin
441
        if not HasIdent then
442
        begin
443
          HasIdent := True;
444
          I := 0;
445
          D := PByte(Dest);
446
        end;
447
      end
448
      else
449
      begin
450
        if Odd(I) then
451
        begin
452
          D^ := D^ or P;
453
          Inc(D);
454
        end
455
        else
456
          D^ := P shl 4;
457
        Inc(I);
458
      end;
459
    Dec(Size);
460
  end;
461
end;
462
463
class function TFormat_HEX.DoIsValid(const Data; Size: Integer): Boolean;
464
var
465
  T: TBytes;
466
  S: PByte;
467
begin
468
  if not odd(Size) then
469
  begin
470
    Result := True;
471
    T := CharTableBinary;
472
    S := @Data;
473
    while Result and (Size > 0) do
474
    begin
475
      if TableFindBinary(S^, T, length(T)) >= 0 then
476
      begin
477
        Inc(S);
478
        Dec(Size);
479
      end
480
      else
481
        Result := False;
482
    end;
483
  end
484
  else
485
    result := false;
486
end;
487
488
class function TFormat_HEXL.CharTableBinary: TBytes;
489
begin
490
  SetLength(result, 48);
491
  // special and skipped chars
492
  // '0123456789abcdefX$ ABCDEFhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13);
493
494
  {$IF CompilerVersion >= 28.0}
495
  result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $61, $62, $63,
496
             $64, $65, $66, $68, $58, $24, $20, $41, $42, $43, $44, $45, $46,
497
             $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
498
             $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D];
499
  {$ELSE}
500
  // Remove this initialisation variant as soon as XE7+ is the new minimum
501
  // supported Delphi version
502
  result[ 0]:=$30;
503
  result[ 1]:=$31;
504
  result[ 2]:=$32;
505
  result[ 3]:=$33;
506
  result[ 4]:=$34;
507
  result[ 5]:=$35;
508
  result[ 6]:=$36;
509
  result[ 7]:=$37;
510
  result[ 8]:=$38;
511
  result[ 9]:=$39;
512
  result[10]:=$61;
513
  result[11]:=$62;
514
  result[12]:=$63;
515
  result[13]:=$64;
516
  result[14]:=$65;
517
  result[15]:=$66;
518
  result[16]:=$68;
519
  result[17]:=$58;
520
  result[18]:=$24;
521
  result[19]:=$20;
522
  result[20]:=$41;
523
  result[21]:=$42;
524
  result[22]:=$43;
525
  result[23]:=$44;
526
  result[24]:=$45;
527
  result[25]:=$46;
528
  result[26]:=$48;
529
  result[27]:=$78;
530
  result[28]:=$28;
531
  result[29]:=$29;
532
  result[30]:=$5B;
533
  result[31]:=$5D;
534
  result[32]:=$7B;
535
  result[33]:=$7D;
536
  result[34]:=$2C;
537
  result[35]:=$3B;
538
  result[36]:=$3A;
539
  result[37]:=$2D;
540
  result[38]:=$5F;
541
  result[39]:=$2F;
542
  result[40]:=$5C;
543
  result[41]:=$2A;
544
  result[42]:=$2B;
545
  result[43]:=$22;
546
  result[44]:=$27;
547
  result[45]:=$09;
548
  result[46]:=$0A;
549
  result[47]:=$0D;
550
  {$IFEND}
551
end;
552
553
class function TFormat_DECMIME32.CharTableBinary: TBytes;
554
begin
555
  // special and skipped chars
556
  // 'abcdefghijklnpqrstuwxyz123456789 =$()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13);
557
  SetLength(result, 53);
558
  {$IF CompilerVersion >= 28.0}
559
  result := [$61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6E, $70,
560
             $71, $72, $73, $74, $75, $77, $78, $79, $7A, $31, $32, $33, $34, $35,
561
             $36, $37, $38, $39, $20, $3D, $24, $28, $29, $5B, $5D, $7B, $7D, $2C,
562
             $3B, $3A, $2D, $5F, $5C, $2A, $22, $27, $09, $0A, $0D];
563
  {$ELSE}
564
  // Remove this initialisation variant as soon as XE7+ is the new minimum
565
  // supported Delphi version
566
  result[ 0]:=$61;
567
  result[ 1]:=$62;
568
  result[ 2]:=$63;
569
  result[ 3]:=$64;
570
  result[ 4]:=$65;
571
  result[ 5]:=$66;
572
  result[ 6]:=$67;
573
  result[ 7]:=$68;
574
  result[ 8]:=$69;
575
  result[ 9]:=$6A;
576
  result[10]:=$6B;
577
  result[11]:=$6C;
578
  result[12]:=$6E;
579
  result[13]:=$70;
580
581
  result[14]:=$71;
582
  result[15]:=$72;
583
  result[16]:=$73;
584
  result[17]:=$74;
585
  result[18]:=$75;
586
  result[19]:=$77;
587
  result[20]:=$78;
588
  result[21]:=$79;
589
  result[22]:=$7A;
590
  result[23]:=$31;
591
  result[24]:=$32;
592
  result[25]:=$33;
593
  result[26]:=$34;
594
  result[27]:=$35;
595
596
  result[28]:=$36;
597
  result[29]:=$37;
598
  result[30]:=$38;
599
  result[31]:=$39;
600
  result[32]:=$20;
601
  result[33]:=$3D;
602
  result[34]:=$24;
603
  result[35]:=$28;
604
  result[36]:=$29;
605
  result[37]:=$5B;
606
  result[38]:=$5D;
607
  result[39]:=$7B;
608
  result[40]:=$7D;
609
  result[41]:=$2C;
610
611
  result[42]:=$3B;
612
  result[43]:=$3A;
613
  result[44]:=$2D;
614
  result[45]:=$5F;
615
  result[46]:=$5C;
616
  result[47]:=$2A;
617
  result[48]:=$22;
618
  result[49]:=$27;
619
  result[50]:=$09;
620
  result[51]:=$0A;
621
  result[52]:=$0D;
622
  {$IFEND}
623
end;
624
625
class procedure TFormat_DECMIME32.DoEncode(const Source; var Dest: TBytes; Size: Integer);
626
var
627
  T   : TBytes;
628
  Src : TBytes;
629
  S, D: PByte;
630
  i, n: Integer;
631
begin
632
  SetLength(Dest, 0);
633
  if Size <= 0 then
634
    Exit;
635
636
  // The passed in source parameter has to be converted into an array with
637
  // added additional 0 value. This is because in the original form a string was
638
  // being passed in as source parameter, which automatically contained a #00 at
639
  // the end and depending on length of the data passed in, the @S[i shr 3] index
640
  // calculation can result in an index which represents the last byte of the
641
  // source parameter. That one is accessed as PWord then which results in
642
  // reading the first byte behind that source parameter as well! This led to
643
  // wrong data errors in the unit tests.
644
  SetLength(Src, Size + 1);
645
  Move(Source, Src[0], Size);
646
  Src[length(Src)-1] := 0;
647
648
  Size := Size * 8;
649
  SetLength(Dest, Size div 5 + 5);
650
651
  D := @Dest[0];
652
  T := CharTableBinary;
653
  S := @Src[0];
654
655
  i := 0; n := 0;
656
  while i < Size do
657
  begin
658
    D^ := T[PWord(@S[i shr 3])^ shr (i and $7) and $1F];
659
660
    Inc(D);
661
    Inc(i, 5);
662
663
    Inc(n);
664
  end;
665
666
  SetLength(Dest, n);
667
  SetLength(Src, 0);
668
end;
669
670
class function TFormat_DECMIME32.DoIsValid(const Data; Size: Integer): Boolean;
671
var
672
  T: TBytes;
673
  S: PByte;
674
begin
675
  Result := True;
676
  T := CharTableBinary;
677
  S := @Data;
678
  while Result and (Size > 0) do
679
  begin
680
    if TableFindBinary(S^, T, length(T)) >= 0 then
681
    begin
682
      Inc(S);
683
      Dec(Size);
684
    end
685
    else
686
      Result := False;
687
  end;
688
end;
689
690
class procedure TFormat_DECMIME32.DoDecode(const Source; var Dest: TBytes; Size: Integer);
691
var
692
  T: TBytes;
693
  S: PByte;
694
  D: PByte;
695
  i, V: Integer;
696
begin
697
  SetLength(Dest, 0);
698
  if Size <= 0 then
699
    Exit;
700
701
  Size := Size * 5;
702
  SetLength(Dest, Size div 8);
703
704
  T := CharTableBinary;
705
  S := @Source;
706
  D := @Dest[0];
707
708
  FillChar(D^, Length(Dest), 0);
709
  i := 0;
710
711
  while i < Size do
712
  begin
713
    V := TableFindBinary(S^, T, 32);
714
    if V < 0 then
715
      V := TableFindBinary(UpCaseBinary(S^), T, 32);
716
    if V >= 0 then
717
    begin
718
      PWord(@D[i shr 3])^ := PWord(@D[i shr 3])^ or (V shl (i and $7));
719
      Inc(i, 5);
720
    end
721
    else
722
      Dec(Size, 5);
723
    Inc(S);
724
  end;
725
726
  SetLength(Dest, Size div 8);
727
end;
728
729
class function TFormat_Base64.CharTableBinary: TBytes;
730
begin
731
  //  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' +
732
  //  ' $()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13); // special and skipped chars
733
  SetLength(result, 85);
734
735
  {$IF CompilerVersion >= 28.0}
736
  result := [$41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D,
737
             $4E, $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A,
738
             $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D,
739
             $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A,
740
             $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $2B, $2F, $3D,
741
             $20, $24, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
742
             $5C, $2A, $22, $27, $09, $0A, $0D];
743
  {$ELSE}
744
  // Remove this initialisation variant as soon as XE7+ is the new minimum
745
  // supported Delphi version
746
  result[0 ]:=$41;
747
  result[1 ]:=$42;
748
  result[2 ]:=$43;
749
  result[3 ]:=$44;
750
  result[4 ]:=$45;
751
  result[5 ]:=$46;
752
  result[6 ]:=$47;
753
  result[7 ]:=$48;
754
  result[8 ]:=$49;
755
  result[9 ]:=$4A;
756
  result[10]:=$4B;
757
  result[11]:=$4C;
758
  result[12]:=$4D;
759
760
  result[13]:=$4E;
761
  result[14]:=$4F;
762
  result[15]:=$50;
763
  result[16]:=$51;
764
  result[17]:=$52;
765
  result[18]:=$53;
766
  result[19]:=$54;
767
  result[20]:=$55;
768
  result[21]:=$56;
769
  result[22]:=$57;
770
  result[23]:=$58;
771
  result[24]:=$59;
772
  result[25]:=$5A;
773
774
  result[26]:=$61;
775
  result[27]:=$62;
776
  result[28]:=$63;
777
  result[29]:=$64;
778
  result[30]:=$65;
779
  result[31]:=$66;
780
  result[32]:=$67;
781
  result[33]:=$68;
782
  result[34]:=$69;
783
  result[35]:=$6A;
784
  result[36]:=$6B;
785
  result[37]:=$6C;
786
  result[38]:=$6D;
787
788
  result[39]:=$6E;
789
  result[40]:=$6F;
790
  result[41]:=$70;
791
  result[42]:=$71;
792
  result[43]:=$72;
793
  result[44]:=$73;
794
  result[45]:=$74;
795
  result[46]:=$75;
796
  result[47]:=$76;
797
  result[48]:=$77;
798
  result[49]:=$78;
799
  result[50]:=$79;
800
  result[51]:=$7A;
801
802
  result[52]:=$30;
803
  result[53]:=$31;
804
  result[54]:=$32;
805
  result[55]:=$33;
806
  result[56]:=$34;
807
  result[57]:=$35;
808
  result[58]:=$36;
809
  result[59]:=$37;
810
  result[60]:=$38;
811
  result[61]:=$39;
812
  result[62]:=$2B;
813
  result[63]:=$2F;
814
  result[64]:=$3D;
815
816
  result[65]:=$20;
817
  result[66]:=$24;
818
  result[67]:=$28;
819
  result[68]:=$29;
820
  result[69]:=$5B;
821
  result[70]:=$5D;
822
  result[71]:=$7B;
823
  result[72]:=$7D;
824
  result[73]:=$2C;
825
  result[74]:=$3B;
826
  result[75]:=$3A;
827
  result[76]:=$2D;
828
  result[77]:=$5F;
829
830
  result[78]:=$5C;
831
  result[79]:=$2A;
832
  result[80]:=$22;
833
  result[81]:=$27;
834
  result[82]:=$09;
835
  result[83]:=$0A;
836
  result[84]:=$0D;
837
  {$IFEND}
838
end;
839
840
class procedure TFormat_Base64.DoEncode(const Source; var Dest: TBytes; Size: Integer);
841
var
842
  T: TBytes;
843
  S: PByte;
844
  D: PByte;
845
  B: UInt32;
846
  i: Integer;
847
  n: Integer;
848
begin
849
  SetLength(Dest, 0);
850
  if Size <= 0 then
851
    Exit;
852
853
  SetLength(Dest, Size * 4 div 3 + 4);
854
855
  T := CharTableBinary;
856
  S := @Source;
857
  D := @Dest[0];
858
859
  n := 0;
860
  while Size >= 3 do
861
  begin
862
    Dec(Size, 3);
863
    B := Byte(S[0]) shl 16 or Byte(S[1]) shl 8 or Byte(S[2]);
864
    D[0] := T[B shr 18 and $3F];
865
    D[1] := T[B shr 12 and $3F];
866
    D[2] := T[B shr  6 and $3F];
867
    D[3] := T[B        and $3F];
868
    Inc(D, 4);
869
    S := @S[3];
870
    Inc(n, 4);
871
  end;
872
873
  while Size > 0 do
874
  begin
875
    B := 0;
876
    for i := 0 to 2 do
877
    begin
878
      B := B shl 8;
879
      if Size > 0 then
880
      begin
881
        B := B or Byte(S[0]);
882
        S := @S[1];
883
      end;
884
      Dec(Size);
885
    end;
886
    for i := 3 downto 0 do
887
    begin
888
      if Size < 0 then
889
      begin
890
        D[i] := T[64];
891
        Inc(Size);
892
      end
893
      else
894
        D[i] := T[B and $3F];
895
      B := B shr 6;
896
    end;
897
    Inc(D, 4);
898
    Inc(n, 4);
899
  end;
900
901
  // original calculation was substract dest ptr d - start of dest
902
  SetLength(Dest, n);
903
end;
904
905
class procedure TFormat_Base64.DoDecode(const Source; var Dest: TBytes; Size: Integer);
906
var
907
  T: TBytes;
908
  S: PByte;
909
  D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
910
  B: UInt32;
911
  i, j, n: Integer;
912
begin
913
  SetLength(Dest, 0);
914
  if Size <= 0 then
915
    Exit;
916
917
  SetLength(Dest, Size);
918
919
  T := CharTableBinary;
920
  S := @Source;
921
  D := @Dest[0];
922
923
  Move(Source, Dest[0], Size);
924
925
  L := S + Size;
926
  j := 0;
927
  n := 0;
928
  while S < L do
929
  begin
930
    B := 0;
931
    j := 4;
932
    while (j > 0) and (S < L) do
933
    begin
934
      i := TableFindBinary(S^, T, 65);
935
      Inc(S);
936
      if i >= 0 then
937
      begin
938
        if i < 64 then
939
        begin
940
          B := B shl 6 or Byte(i);
941
          Dec(j);
942
        end
943
        else
944
          L := S;
945
      end;
946
    end;
947
    if j > 0 then
948
    begin
949
      if j >= 4 then
950
      begin
951
        j := 0;
952
        Break;
953
      end
954
      else
955
        B := B shl (6 * j);
956
    end;
957
    i := 2;
958
    while i >= 0 do
959
    begin
960
      D[i] := Byte(B);
961
      B := B shr 8;
962
      Dec(i);
963
    end;
964
    Inc(D, 3);
965
    Inc(n, 3);
966
  end;
967
968
  SetLength(Dest, n-j);
969
end;
970
971
class function TFormat_Base64.DoIsValid(const Data; Size: Integer): Boolean;
972
var
973
  T: TBytes;
974
  S: PByte;
975
begin
976
  Result := True;
977
  T := CharTableBinary;
978
  S := @Data;
979
  while Result and (Size > 0) do
980
  begin
981
    // A-Z, a-z, 0-9, + and / and CR/LF
982
    if S^ in [$41..$5A, $61..$7A, $2B, $2F..$39, $3D, $0D, $0A] then
983
    begin
984
      Inc(S);
985
      Dec(Size);
986
    end
987
    else
988
      Result := False;
989
  end;
990
end;
991
992
class function TFormat_Radix64.DoExtractCRC(const Data; var Size: Integer): UInt32;
993
var
994
  L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
995
  C: Byte;
996
  R: TBytes;
997
begin
998
  Result := $FFFFFFFF;
999
  C := CharTableBinary[64]; // get padding char, per default '='
1000
  L := PByte(@Data) + Size;
1001
  while L <> @Data do
1002
  begin
1003
    if L^ = C then
1004
      Break
1005
    else
1006
      Dec(L); // scan reverse for padding char
1007
  end;
1008
  if L - PByte(@Data) >= Size - 5 then // remaining chars must be > 4, e.g. '=XQRT'
1009
  try
1010
    Inc(L);
1011
    inherited DoDecode(L^, R, Size - (L - PByte(@Data)));
1012
    if Length(R) >= 3 then
1013
    begin
1014
      Result := 0;
1015
      Move(R[0], Result, 3);
1016
      Size := L - PByte(@Data);
1017
    end;
1018
  except
1019
  end;
1020
end;
1021
1022
class function TFormat_Radix64.DoIsValid(const Data; Size: Integer): Boolean;
1023
var
1024
  crc24 : UInt32;
1025
  Dest  : TBytes;
1026
begin
1027
  // Radix64 is like Base64 but with additional CRC24 checksum
1028
  result := TFormat_Base64.IsValid(Data, Size);
1029
1030
  // Check contained checksum as well
1031
  if result then
1032
  begin
1033
    crc24 := DoExtractCRC(Data, Size);
1034
    // we need to decode, because it removes the CR/LF linebreaks which would
1035
    // invalidate the checksum
1036
    inherited DoDecode(Data, Dest, Size);
1037
1038
    if crc24 <> $FFFFFFFF then
1039
    begin
1040
      // recalc CRC and compare
1041
      SwapBytes(crc24, 3);
1042
      result := crc24 = CRCCalc(CRC_24, Dest[0], Length(Dest));
1043
    end
1044
    else
1045
      result := false;
1046
  end;
1047
end;
1048
1049
class function TFormat_Radix64.GetCharsPerLine: UInt32;
1050
begin
1051
  result := FCharsPerLine;
1052
end;
1053
1054
class procedure TFormat_Radix64.InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer);
1055
var
1056
  S, D: PByte;
1057
  i: Integer;
1058
begin
1059
  i := Length(Source);
1060
  if (LineLength <= 0) or (i <= LineLength) then
1061
  begin
1062
    SetLength(Dest, i);
1063
    Move(Source[0], Dest[0], i);
1064
    Exit;
1065
  end;
1066
1067
  SetLength(Dest, i + i * 2 div LineLength + 2);
1068
1069
  S := @Source[0];
1070
  D := @Dest[0];
1071
1072
  repeat
1073
    Move(S^, D^, LineLength);
1074
    Inc(S, LineLength);
1075
    Inc(D, LineLength);
1076
    D^ := Ord(#13);
1077
    Inc(D);
1078
    D^ := Ord(#10);
1079
    Inc(D);
1080
    Dec(i, LineLength);
1081
  until i < LineLength;
1082
1083
  Move(S^, D^, i);
1084
  Inc(D, i);
1085
1086
  SetLength(Dest, PByte(D) - PByte(Dest));
1087
end;
1088
1089
class procedure TFormat_Radix64.SetCharsPerLine(const Value: UInt32);
1090
begin
1091
  if (Value > 0) then
1092
    FCharsPerLine := Value
1093
  else
1094
    raise EArgumentOutOfRangeException.Create('Invalid number of chars per line: ' +
1095
                                              IntToStr(Value));
1096
end;
1097
1098
class procedure TFormat_Radix64.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1099
var
1100
  TempData : TBytes;
1101
  CRC      : UInt32;
1102
  CRCData  : TBytes;
1103
  Position : Integer;
1104
begin
1105
  SetLength(Dest, 0);
1106
  if Size <= 0 then
1107
    Exit;
1108
1109
  // use Base64
1110
  inherited DoEncode(Source, TempData, Size);
1111
1112
  // split lines
1113
  InsertCRLF(TempData, Dest, FCharsPerLine);
1114
  SetLength(TempData, 0);
1115
1116
  CRC := CRCCalc(CRC_24, Source, Size); // calculate 24-bit Checksum
1117
  SwapBytes(CRC, 3); // PGP use Big Endian
1118
1119
  // check and insert LF if needed
1120
  Position := Length(Dest) - 1; // last char
1121
  if Dest[Position] <> $0A then
1122
  begin
1123
    // insert CR needed, CRC must be in the next line
1124
    Position := Length(Dest);
1125
    SetLength(Dest, Position + 2);
1126
    Dest[Position]   := $0D; // append CR
1127
    Dest[Position+1] := $0A; // append LF
1128
  end;
1129
1130
  // encode CRC with Base64 too
1131
  inherited DoEncode(CRC, CRCData, 3);
1132
1133
  // if CRC is too long insert CRLF. -1 to compensate the later added = char
1134
  InsertCRLF(CRCData, TempData, FCharsPerLine - 1);
1135
  CRCData := TempData;
1136
1137
  // append encoded CRC
1138
  Position := Length(Dest);
1139
  SetLength(Dest, Position + 1 + Length(CRCData));
1140
  Dest[Position] := Ord('=');
1141
  Move(CRCData[0], Dest[Position + 1], Length(CRCData));
1142
end;
1143
1144
class procedure TFormat_Radix64.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1145
var
1146
  CRC: UInt32;
1147
begin
1148
  SetLength(Dest, 0);
1149
  if Size <= 0 then
1150
    Exit;
1151
1152
  CRC := DoExtractCRC(Source, Size);
1153
  inherited DoDecode(Source, Dest, Size);
1154
1155
  if CRC <> $FFFFFFFF then // check CRC if found
1156
  begin
1157
    SwapBytes(CRC, 3);
1158
    if CRC <> CRCCalc(CRC_24, Dest[0], Length(Dest)) then
1159
      raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1160
  end;
1161
end;
1162
1163
class function TFormat_UU.CharTableBinary: TBytes;
1164
begin
1165
  // '`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_' +
1166
  // ' '+CHR(9)+CHR(10)+CHR(13);
1167
1168
  SetLength(result, 68);
1169
  {$IF CompilerVersion >= 28.0}
1170
  result := [$60, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2A, $2B, $2C,
1171
             $2D, $2E, $2F, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39,
1172
             $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43, $44, $45, $46,
1173
             $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53,
1174
             $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $20,
1175
             $09, $0A, $0D];
1176
  {$ELSE}
1177
  // Remove this initialisation variant as soon as XE7+ is the new minimum
1178
  // supported Delphi version
1179
  result[ 0]:=$60;
1180
  result[ 1]:=$21;
1181
  result[ 2]:=$22;
1182
  result[ 3]:=$23;
1183
  result[ 4]:=$24;
1184
  result[ 5]:=$25;
1185
  result[ 6]:=$26;
1186
  result[ 7]:=$27;
1187
  result[ 8]:=$28;
1188
  result[ 9]:=$29;
1189
  result[10]:=$2A;
1190
  result[11]:=$2B;
1191
  result[12]:=$2C;
1192
1193
  result[13]:=$2D;
1194
  result[14]:=$2E;
1195
  result[15]:=$2F;
1196
  result[16]:=$30;
1197
  result[17]:=$31;
1198
  result[18]:=$32;
1199
  result[19]:=$33;
1200
  result[20]:=$34;
1201
  result[21]:=$35;
1202
  result[22]:=$36;
1203
  result[23]:=$37;
1204
  result[24]:=$38;
1205
  result[25]:=$39;
1206
1207
  result[26]:=$3A;
1208
  result[27]:=$3B;
1209
  result[28]:=$3C;
1210
  result[29]:=$3D;
1211
  result[30]:=$3E;
1212
  result[31]:=$3F;
1213
  result[32]:=$40;
1214
  result[33]:=$41;
1215
  result[34]:=$42;
1216
  result[35]:=$43;
1217
  result[36]:=$44;
1218
  result[37]:=$45;
1219
  result[38]:=$46;
1220
1221
  result[39]:=$47;
1222
  result[40]:=$48;
1223
  result[41]:=$49;
1224
  result[42]:=$4A;
1225
  result[43]:=$4B;
1226
  result[44]:=$4C;
1227
  result[45]:=$4D;
1228
  result[46]:=$4E;
1229
  result[47]:=$4F;
1230
  result[48]:=$50;
1231
  result[49]:=$51;
1232
  result[50]:=$52;
1233
  result[51]:=$53;
1234
1235
  result[52]:=$54;
1236
  result[53]:=$55;
1237
  result[54]:=$56;
1238
  result[55]:=$57;
1239
  result[56]:=$58;
1240
  result[57]:=$59;
1241
  result[58]:=$5A;
1242
  result[59]:=$5B;
1243
  result[60]:=$5C;
1244
  result[61]:=$5D;
1245
  result[62]:=$5E;
1246
  result[63]:=$5F;
1247
  result[64]:=$20;
1248
1249
  result[65]:=$09;
1250
  result[66]:=$0A;
1251
  result[67]:=$0D;
1252
  {$IFEND}
1253
end;
1254
1255
class procedure TFormat_UU.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1256
var
1257
  T: TBytes;
1258
  S: PByte;
1259
  D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1260
  L, i: Integer;
1261
  B: Cardinal;
1262
begin
1263
  SetLength(Dest, 0);
1264
  if Size <= 0 then
1265
    Exit;
1266
1267
  SetLength(Dest, Size * 4 div 3 + Size div 45 + 10);
1268
1269
  T := CharTableBinary;
1270
  S := @Source;
1271
  D := @Dest[0];
1272
1273
  while Size > 0 do
1274
  begin
1275
    L := Size;
1276
    if L > 45 then
1277
      L := 45;
1278
    Dec(Size, L);
1279
    D^ := T[L];
1280
    while L > 0 do
1281
    begin
1282
      B := 0;
1283
      for i := 0 to 2 do
1284
      begin
1285
        B := B shl 8;
1286
        if L > 0 then
1287
        begin
1288
          B := B or S^;
1289
          Inc(S);
1290
        end;
1291
        Dec(L);
1292
      end;
1293
      for i := 4 downto 1 do
1294
      begin
1295
        D[i] := T[B and $3F];
1296
        B := B shr 6;
1297
      end;
1298
      Inc(D, 4);
1299
    end;
1300
    Inc(D);
1301
  end;
1302
1303
  SetLength(Dest, PByte(D) - PByte(Dest));
1304
end;
1305
1306
class procedure TFormat_UU.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1307
var
1308
  T: TBytes;
1309
  S: PByte;
1310
  D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1311
  i, E: Integer;
1312
  B: UInt32;
1313
begin
1314
  SetLength(Dest, 0);
1315
  if Size <= 0 then
1316
    Exit;
1317
1318
  SetLength(Dest, Size);
1319
1320
  T := CharTableBinary;
1321
  S := @Source;
1322
  D := @Dest[0];
1323
1324
  L := PByte(S) + Size;
1325
1326
  repeat
1327
    Size := TableFindBinary(S^, T, 64);
1328
    if (Size < 0) or (Size > 45) then
1329
      raise EDECException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1330
    Inc(S);
1331
    while Size > 0 do
1332
    begin
1333
      B := 0;
1334
      i := 4;
1335
      while (i > 0) and (S <= L) do
1336
      begin
1337
        E := TableFindBinary(S^, T, 64);
1338
        if E >= 0 then
1339
        begin
1340
          B := B shl 6 or Byte(E);
1341
          Dec(i);
1342
        end;
1343
        Inc(S);
1344
      end;
1345
      i := 2;
1346
      repeat
1347
        D[i] := Byte(B);
1348
        B    := B shr 8;
1349
        Dec(i);
1350
      until i < 0;
1351
      if Size > 3 then
1352
        Inc(D, 3)
1353
      else
1354
        Inc(D, Size);
1355
      Dec(Size, 3);
1356
    end;
1357
  until S >= L;
1358
1359
  SetLength(Dest, PByte(D) - PByte(Dest));
1360
end;
1361
1362
class function TFormat_UU.DoIsValid(const Data; Size: Integer): Boolean;
1363
var
1364
  T: TBytes;
1365
  S: PByte;
1366
  Len, P, i: Integer;
1367
begin
1368
  Result := False;
1369
  T := CharTableBinary;
1370
  Len := Length(T);
1371
  S := @Data;
1372
  P := 0;
1373
1374
  while Size > 0 do
1375
  begin
1376
    i := TableFindBinary(S^, T, Len);
1377
    if i >= 0 then
1378
    begin
1379
      Dec(Size);
1380
      Inc(S);
1381
      if P = 0 then
1382
      begin
1383
        if i > 45 then
1384
          Exit;
1385
        P := (i * 4 + 2) div 3;
1386
      end
1387
      else
1388
        if i < 64 then
1389
          Dec(P);
1390
    end
1391
    else
1392
      Exit;
1393
  end;
1394
1395
  if P <> 0 then
1396
    Exit;
1397
1398
  Result := True;
1399
end;
1400
1401
class function TFormat_XX.CharTableBinary: TBytes;
1402
begin
1403
  // '+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' +
1404
  // ' "()[]'''+CHR(9)+CHR(10)+CHR(13);
1405
  SetLength(result, 74);
1406
  {$IF CompilerVersion >= 28.0}
1407
  result := [$2B, $2D, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41,
1408
             $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E,
1409
             $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, $61,
1410
             $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, $6E,
1411
             $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A, $20,
1412
             $22, $28, $29, $5B, $5D, $27, $09, $0A, $0D];
1413
  {$ELSE}
1414
  // Remove this initialisation variant as soon as XE7+ is the new minimum
1415
  // supported Delphi version
1416
  result[ 0]:=$2B;
1417
  result[ 1]:=$2D;
1418
  result[ 2]:=$30;
1419
  result[ 3]:=$31;
1420
  result[ 4]:=$32;
1421
  result[ 5]:=$33;
1422
  result[ 6]:=$34;
1423
  result[ 7]:=$35;
1424
  result[ 8]:=$36;
1425
  result[ 9]:=$37;
1426
  result[10]:=$38;
1427
  result[11]:=$39;
1428
  result[12]:=$41;
1429
1430
  result[13]:=$42;
1431
  result[14]:=$43;
1432
  result[15]:=$44;
1433
  result[16]:=$45;
1434
  result[17]:=$46;
1435
  result[18]:=$47;
1436
  result[19]:=$48;
1437
  result[20]:=$49;
1438
  result[21]:=$4A;
1439
  result[22]:=$4B;
1440
  result[23]:=$4C;
1441
  result[24]:=$4D;
1442
  result[25]:=$4E;
1443
1444
  result[26]:=$4F;
1445
  result[27]:=$50;
1446
  result[28]:=$51;
1447
  result[29]:=$52;
1448
  result[30]:=$53;
1449
  result[31]:=$54;
1450
  result[32]:=$55;
1451
  result[33]:=$56;
1452
  result[34]:=$57;
1453
  result[35]:=$58;
1454
  result[36]:=$59;
1455
  result[37]:=$5A;
1456
  result[38]:=$61;
1457
1458
  result[39]:=$62;
1459
  result[40]:=$63;
1460
  result[41]:=$64;
1461
  result[42]:=$65;
1462
  result[43]:=$66;
1463
  result[44]:=$67;
1464
  result[45]:=$68;
1465
  result[46]:=$69;
1466
  result[47]:=$6A;
1467
  result[48]:=$6B;
1468
  result[49]:=$6C;
1469
  result[50]:=$6D;
1470
  result[51]:=$6E;
1471
1472
  result[52]:=$6F;
1473
  result[53]:=$70;
1474
  result[54]:=$71;
1475
  result[55]:=$72;
1476
  result[56]:=$73;
1477
  result[57]:=$74;
1478
  result[58]:=$75;
1479
  result[59]:=$76;
1480
  result[60]:=$77;
1481
  result[61]:=$78;
1482
  result[62]:=$79;
1483
  result[63]:=$7A;
1484
  result[64]:=$20;
1485
1486
  result[65]:=$22;
1487
  result[66]:=$28;
1488
  result[67]:=$29;
1489
  result[68]:=$5B;
1490
  result[69]:=$5D;
1491
  result[70]:=$27;
1492
  result[71]:=$09;
1493
  result[72]:=$0A;
1494
  result[73]:=$0D;
1495
  {$IFEND}
1496
end;
1497
1498
var
1499
  // Initlialized in initialization section, cannot be const because of the
1500
  // TBytes requirement
1501
  ESCAPE_CodesL: TBytes; //array[0..6] of Byte = ($61, $62, $74, $6E, $76, $66, $72);
1502
  ESCAPE_CodesU: TBytes; //array[0..6] of Byte = ($41, $42, $54, $4E, $56, $46, $52);
1503
1504
class function TFormat_ESCAPE.CharTableBinary: TBytes;
1505
begin
1506
  Result := TFormat_HEX.CharTableBinary;
1507
end;
1508
1509
class procedure TFormat_ESCAPE.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1510
var
1511
  T: TBytes;
1512
  S: PByte;
1513
  D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1514
  i: Integer;
1515
begin
1516
  SetLength(Dest, 0);
1517
  if Size <= 0 then
1518
    Exit;
1519
1520
  SetLength(Dest, Size + 8);
1521
1522
  T := CharTableBinary;
1523
  S := @Source;
1524
  D := @Dest[0];
1525
1526
  i := Size;
1527
1528
  while Size > 0 do
1529
  begin
1530
    if i <= 0 then
1531
    begin
1532
      i := D - PByte(Dest);
1533
      SetLength(Dest, i + Size + 8);
1534
      D := PByte(Dest) + i;
1535
      i := Size;
1536
    end;
1537
    if (S^ < 32) or (S^ > $7F) then
1538
    begin
1539
      if (S^ >= 7) and (S^ <= 13) then
1540
      begin
1541
        D^ := $5C; // \ char
1542
        Inc(D);
1543
        D^ := ESCAPE_CodesL[S^ - 7];
1544
        Inc(D);
1545
        Dec(i, 2);
1546
      end
1547
      else
1548
      begin
1549
        D^ := $5C; // \ char
1550
        Inc(D);
1551
        D^ := $78; // x
1552
        Inc(D);
1553
        D^ := T[S^ shr 4];
1554
        Inc(D);
1555
        D^ := T[S^ and $F];
1556
        Inc(D);
1557
        Dec(i, 4);
1558
      end
1559
    end
1560
    else
1561
    begin
1562
      // S^is \ char?
1563
      if S^ = $5C then
1564
      begin
1565
        D^ := $5C; // \ char
1566
        Inc(D);
1567
        D^ := $5C; // \ char
1568
        Inc(D);
1569
        Dec(i, 2);
1570
      end
1571
      else
1572
      // S^ is " char?
1573
      if S^ = $22 then
1574
      begin
1575
        D^ := $5C; // \ char
1576
        Inc(D);
1577
        D^ := $22; // " char
1578
        Inc(D);
1579
        Dec(i, 2);
1580
      end
1581
      else
1582
      begin
1583
        D^ := S^;
1584
        Inc(D);
1585
        Dec(i);
1586
      end;
1587
    end;
1588
    Dec(Size);
1589
    Inc(S);
1590
  end;
1591
1592
  SetLength(Dest, PByte(D) - PByte(Dest));
1593
end;
1594
1595
class function TFormat_ESCAPE.DoIsValid(const Data; Size: Integer): Boolean;
1596
var
1597
  T: TBytes;
1598
  S: PByte;
1599
begin
1600
  Result := False;
1601
  T := CharTableBinary;
1602
  S := @Data;
1603
1604
  while Size > 0 do
1605
  begin
1606
    if (S^ > $7F) or (S^ < 32) then
1607
      Exit;
1608
1609
    // start of an escape sequence
1610
    if S^ = $5C then
1611
    begin
1612
      Dec(Size);
1613
      Inc(S);
1614
1615
      // \ at the end
1616
      if Size <= 0 then
1617
        Exit;
1618
1619
      // X for hex notation
1620
      if UpCaseBinary(S^) = $58 then
1621
      begin
1622
        Inc(S);
1623
        Dec(Size);
1624
1625
        // incomplete hex notation follows?
1626
        if (Size < 2) or (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then
1627
          Exit;
1628
1629
        Inc(S);
1630
        Dec(Size);
1631
1632
        if (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then
1633
          Exit;
1634
1635
        Inc(S);
1636
        Dec(Size);
1637
      end
1638
      else
1639
      begin
1640
        // \ with invalid following char?
1641
        if TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7) < 0 then
1642
          Exit;
1643
1644
        Dec(Size);
1645
        Inc(S);
1646
      end;
1647
    end
1648
    else
1649
    begin
1650
      Dec(Size);
1651
      Inc(S);
1652
    end;
1653
  end;
1654
1655
  Result := True;
1656
end;
1657
1658
class procedure TFormat_ESCAPE.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1659
var
1660
  T: TBytes;
1661
  S: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1662
  D: PByte;
1663
  L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1664
  i: Integer;
1665
begin
1666
  if Size <= 0 then
1667
    Exit;
1668
  SetLength(Dest, Size);
1669
1670
  T := CharTableBinary;
1671
  S := @Source;
1672
  D := @Dest[0];
1673
1674
  L := S + Size;
1675
1676
  while S < L do
1677
  begin
1678
    // S^ is \ char?
1679
    if S^ = $5C then
1680
    begin
1681
      Inc(S);
1682
      if S > L then Break;
1683
      // S^ is X char?
1684
      if UpCaseBinary(S^) = $58 then
1685
      begin
1686
        if S + 2 > L then
1687
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1688
        Inc(S);
1689
        i := TableFindBinary(UpCaseBinary(S^), T, 16);
1690
        if i < 0 then
1691
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1692
        D^ := i shl 4;
1693
        Inc(S);
1694
        i := TableFindBinary(UpCaseBinary(S^), T, 16);
1695
        if i < 0 then
1696
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1697
        D^ := D^ or i;
1698
      end
1699
      else
1700
      begin
1701
        i := TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7);
1702
        if i >= 0 then
1703
          D^ := i + 7
1704
        else
1705
          D^ := S^;
1706
      end;
1707
    end
1708
    else
1709
      D^ := S^;
1710
    Inc(D);
1711
    Inc(S);
1712
  end;
1713
1714
  SetLength(Dest, PByte(D) - PByte(Dest));
1715
end;
1716
1717
{ TFormat_BigEndian16 }
1718
1719
class procedure TFormat_BigEndian16.DoDecode(const Source; var Dest: TBytes;
1720
  Size: Integer);
1721
begin
1722
  DoSawp(Source, Dest, Size);
1723
end;
1724
1725
class procedure TFormat_BigEndian16.DoEncode(const Source; var Dest: TBytes;
1726
  Size: Integer);
1727
begin
1728
  DoSawp(Source, Dest, Size);
1729
end;
1730
1731
class function TFormat_BigEndian16.DoIsValid(const Data;
1732
  Size: Integer): Boolean;
1733
begin
1734
  // swapping bytes in 16 bit mode requires even number of bytes
1735
  result := not Odd(Size);
1736
end;
1737
1738
class procedure TFormat_BigEndian16.DoSawp(const Source; var Dest: TBytes;
1739
  Size: Integer);
1740
var
1741
  i : Integer;
1742
begin
1743
  if (Size < 0) or Odd(Size) then
1744
    Exit;
1745
  SetLength(Dest, Size);
1746
1747
  if (Size > 0) then
1748
  begin
1749
    Move(Source, Dest[0], Size);
1750
1751
    i := 0;
1752
    while (i < length(Dest)) do
1753
    begin
1754
      DECUtil.SwapBytes(Dest[i], 2);
1755
      inc(i, 2);
1756
    end;
1757
  end;
1758
end;
1759
1760
{ TFormat_BigEndian32 }
1761
1762
class procedure TFormat_BigEndian32.DoDecode(const Source; var Dest: TBytes;
1763
  Size: Integer);
1764
begin
1765
  DoSawp(Source, Dest, Size);
1766
end;
1767
1768
class procedure TFormat_BigEndian32.DoEncode(const Source; var Dest: TBytes;
1769
  Size: Integer);
1770
begin
1771
  DoSawp(Source, Dest, Size);
1772
end;
1773
1774
class function TFormat_BigEndian32.DoIsValid(const Data;
1775
  Size: Integer): Boolean;
1776
begin
1777
  result := (Size mod 4) = 0;
1778
end;
1779
1780
class procedure TFormat_BigEndian32.DoSawp(const Source; var Dest: TBytes;
1781
  Size: Integer);
1782
var
1783
  i       : Integer;
1784
  SwapRes : UInt32;
1785
begin
1786
  if (Size < 0) or ((Size mod 4) <> 0) then
1787
    Exit;
1788
  SetLength(Dest, Size);
1789
1790
  if (Size > 0) then
1791
  begin
1792
    Move(Source, Dest[0], Size);
1793
1794
    i := 0;
1795
    while (i < length(Dest)) do
1796
    begin
1797
      Move(Dest[i], SwapRes, 4);
1798
      SwapRes := DECUtil.SwapUInt32(SwapRes);
1799
      Move(SwapRes, Dest[i], 4);
1800
      inc(i, 4);
1801
    end;
1802
  end;
1803
end;
1804
1805
{ TFormat_BigEndian64 }
1806
1807
class procedure TFormat_BigEndian64.DoDecode(const Source; var Dest: TBytes;
1808
  Size: Integer);
1809
begin
1810
  DoSawp(Source, Dest, Size);
1811
end;
1812
1813
class procedure TFormat_BigEndian64.DoEncode(const Source; var Dest: TBytes;
1814
  Size: Integer);
1815
begin
1816
  DoSawp(Source, Dest, Size);
1817
end;
1818
1819
class function TFormat_BigEndian64.DoIsValid(const Data;
1820
  Size: Integer): Boolean;
1821
begin
1822
  result := (Size mod 8) = 0;
1823
end;
1824
1825
class procedure TFormat_BigEndian64.DoSawp(const Source; var Dest: TBytes;
1826
  Size: Integer);
1827
var
1828
  i       : Integer;
1829
  SwapRes : Int64;
1830
begin
1831
  if (Size < 0) or ((Size mod 8) <> 0) then
1832
    Exit;
1833
  SetLength(Dest, Size);
1834
1835
  if (Size > 0) then
1836
  begin
1837
    Move(Source, Dest[0], Size);
1838
1839
    i := 0;
1840
    while (i < length(Dest)) do
1841
    begin
1842
      Move(Dest[i], SwapRes, 8);
1843
      SwapRes := DECUtil.SwapInt64(SwapRes);
1844
      Move(SwapRes, Dest[i], 8);
1845
      inc(i, 8);
1846
    end;
1847
  end;
1848
end;
1849
1850
initialization
1851
  SetLength(ESCAPE_CodesL, 7);
1852
  ESCAPE_CodesL[0] := $61;
1853
  ESCAPE_CodesL[1] := $62;
1854
  ESCAPE_CodesL[2] := $74;
1855
  ESCAPE_CodesL[3] := $6E;
1856
  ESCAPE_CodesL[4] := $76;
1857
  ESCAPE_CodesL[5] := $66;
1858
  ESCAPE_CodesL[6] := $72;
1859
1860
  SetLength(ESCAPE_CodesU, 7);
1861
  ESCAPE_CodesU[0] := $41;
1862
  ESCAPE_CodesU[1] := $42;
1863
  ESCAPE_CodesU[2] := $54;
1864
  ESCAPE_CodesU[3] := $4E;
1865
  ESCAPE_CodesU[4] := $56;
1866
  ESCAPE_CodesU[5] := $46;
1867
  ESCAPE_CodesU[6] := $52;
1868
1869
  {$IFNDEF BCB}
1870
    {$IFNDEF ManualRegisterFormatClasses}
1871
    TFormat_HEX.RegisterClass(TDECFormat.ClassList);
1872
    TFormat_HEXL.RegisterClass(TDECFormat.ClassList);
1873
    TFormat_DECMIME32.RegisterClass(TDECFormat.ClassList);
1874
    TFormat_Base64.RegisterClass(TDECFormat.ClassList);
1875
    TFormat_Radix64.RegisterClass(TDECFormat.ClassList);
1876
    TFormat_UU.RegisterClass(TDECFormat.ClassList);
1877
    TFormat_XX.RegisterClass(TDECFormat.ClassList);
1878
    TFormat_ESCAPE.RegisterClass(TDECFormat.ClassList);
1879
    TFormat_BigEndian16.RegisterClass(TDECFormat.ClassList);
1880
    TFormat_BigEndian32.RegisterClass(TDECFormat.ClassList);
1881
    TFormat_BigEndian64.RegisterClass(TDECFormat.ClassList);
1882
    {$ENDIF}
1883
  {$ENDIF}
1884
1885
  // Init the number of chars per line as per RFC 4880 to 76 chars
1886
  TFormat_Radix64.FCharsPerLine := 76;
1887
1888
finalization
1889
1890
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECFormat (D:\Projekte\DECGitMaster\Source\DECFormat.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECFormat.pas

+
Number of lines covered578
Number of lines with code gen592
Line coverage97%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   This unit provides a standardisized way for applying format conversions
20
///   to data
21
/// </summary>
22
unit DECFormat;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECBaseClass, DECFormatBase, DECUtil;
35
36
type
37
  /// <summary>
38
  ///   wrapper (allows omitting DECFormatBase in user code)
39
  /// </summary>
40
  TDECFormat          = DECFormatBase.TDECFormat;
41
  /// <summary>
42
  ///   wrapper (allows omitting DECFormatBase in user code)
43
  /// </summary>
44
  TDECFormatClass     = DECFormatBase.TDECFormatClass;
45
  /// <summary>
46
  ///   wrapper (allows omitting DECFormatBase in user code)
47
  /// </summary>
48
  TFormat_Copy        = DECFormatBase.TFormat_Copy;
49
50
  TFormat_HEX         = class;
51
  TFormat_HEXL        = class;
52
53
  TFormat_Base16      = class;
54
  TFormat_Base16L     = class;
55
56
  TFormat_DECMIME32   = class;
57
58
  TFormat_Base64      = class;
59
  TFormat_MIME64      = class;
60
61
  TFormat_Radix64     = class;
62
  TFormat_PGP         = class;
63
64
  TFormat_UU          = class;
65
  TFormat_XX          = class;
66
  TFormat_ESCAPE      = class;
67
68
  TFormat_BigEndian16 = class;
69
  TFormat_BigEndian32 = class;
70
71
  /// <summary>
72
  ///   Hexadecimal in Uppercase, Base16, see http://tools.ietf.org/html/rfc4648
73
  /// </summary>
74
  TFormat_HEX = class(TDECFormat)
75
  protected
76
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
77
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
78
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
79
  public
80
    class function CharTableBinary: TBytes; virtual;
81
  end;
82
83
  /// <summary>
84
  ///   Hexadecimal in lowercase, Base16, see http://tools.ietf.org/html/rfc4648
85
  /// </summary>
86
  TFormat_HEXL = class(TFormat_HEX)
87
  public
88
    class function CharTableBinary: TBytes; override;
89
  end;
90
91
  /// <summary>
92
  ///   Same as TFormat_HEX, use TFormat_HEX instead
93
  /// </summary>
94
  TFormat_Base16 = class(TFormat_HEX)
95
  end deprecated 'Use TFormat_HEX instead';
96
97
  /// <summary>
98
  ///   Same as TFormat_HEXL, use TFormat_HEXL instead
99
  /// </summary>
100
  TFormat_Base16L = class(TFormat_HEXL)
101
  end deprecated 'Use TFormat_HEXL instead';
102
103
  /// <summary>
104
  ///   Proprietary variant of MINE32, kept for backwards compatibility with old
105
  ///   DEC versions
106
  /// </summary>
107
  /// <remarks>
108
  ///   This formatting should only be used for supporting legacy projects which
109
  ///   already use this format. It is being considered to be more or less deprecated.
110
  /// </remarks>
111
  TFormat_DECMIME32 = class(TFormat_HEX)
112
  protected
113
    /// <summary>
114
    ///   Encodes data passed to this method in the proprietary DECMIME32 format.
115
    /// </summary>
116
    /// <remarks>
117
    ///   This formatting should only be used for supporting legacy projects which
118
    ///   already use this format. It is being considered to be more or less deprecated.
119
    /// </remarks>
120
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
121
    /// <summary>
122
    ///   Decodes data passed to this method in the proprietary DECMIME32 format
123
    ///   into an array of normal bytes.
124
    /// </summary>
125
    /// <remarks>
126
    ///   This formatting should only be used for supporting legacy projects which
127
    ///   already use this format. It is being considered to be more or less deprecated.
128
    /// </remarks>
129
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
130
    /// <summary>
131
    ///   Checks if certain data adheres to the rules for this formatting.
132
    /// </summary>
133
    /// <remarks>
134
    ///   This formatting should only be used for supporting legacy projects which
135
    ///   already use this format. It is being considered to be more or less deprecated.
136
    /// </remarks>
137
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
138
139
  public
140
    class function CharTableBinary: TBytes; override;
141
  end;
142
143
  /// <summary>
144
  ///   Same as DECMIME32, which itsself should only be used for legacy projects
145
  /// </summary>
146
  TFormat_MIME32 = class(TFormat_DECMIME32)
147
  end deprecated 'Use TFormat_DECMIME32 instead';
148
149
  /// <summary>
150
  ///   Base64 (without soft wraps), see http://tools.ietf.org/html/rfc4648
151
  /// </summary>
152
  TFormat_Base64 = class(TFormat_HEX)
153
  protected
154
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
155
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
156
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
157
  public
158
    class function CharTableBinary: TBytes; override;
159
  end;
160
161
  /// <summary>
162
  ///   Same as TFormat_Base64, use TFormat_Base64 instead, kept for backwards
163
  ///   compatibility only
164
  /// </summary>
165
  TFormat_MIME64 = class(TFormat_Base64)
166
  end deprecated 'Use TFormat_Base64 instead';
167
168
  /// <summary>
169
  ///   OpenPGP/PGP Base64 with 24-bit Checksums, see http://tools.ietf.org/html/rfc4880
170
  /// </summary>
171
  TFormat_Radix64 = class(TFormat_Base64)
172
  /// <summary>
173
  ///   Here the section needs to be private so that the variable can be accessed
174
  ///   for initialization in the initialization section, which is needed since
175
  ///   all functionality of the class is implemented as class methods
176
  /// </summary>
177
  private
178
    /// <summary>
179
    ///   Maximum number of chars for one line of message text
180
    /// </summary>
181
    class var FCharsPerLine : UInt32;
182
  protected
183
    /// <summary>
184
    ///   Extracts the CRC24 checksum from Radix64 encoded data
185
    /// </summary>
186
    /// <param name="Data">
187
    ///   Data to extract the checksum from
188
    /// </param>
189
    /// <param name="Size">
190
    ///   Size of the data in byte
191
    /// </param>
192
    /// <returns>
193
    ///   CRC24 checksum if present, otherwise $FFFFFFFF
194
    /// </returns>
195
    class function DoExtractCRC(const Data; var Size: Integer): UInt32;
196
    /// <summary>
197
    ///   If the data given exceeds FCharsPerLine, means the maximum allowed
198
    ///   line lenth, a CR/LF pair needs to be inserted at that position.
199
    /// </summary>
200
    /// <param name="Source">
201
    ///   Data to insert a CR/LF into if necessary
202
    /// </param>
203
    /// <param name="Dest">
204
    ///   In this byte array the processed data will be returned
205
    /// </param>
206
    /// <param name="LineLength">
207
    ///   Maximum length of a line in byte. At this position the CR/LF will be
208
    ///   inserted if the source passed in exceeds this length.
209
    /// </param>
210
    class procedure InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer);
211
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
212
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
213
214
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
215
  public
216
    /// <summary>
217
    ///   Changes the number of chars after which a line break is being added
218
    /// </summary>
219
    /// <param name="Value">
220
    ///   Maximum number of chars for a single line. Values < 1 result in an
221
    ///   EArgumentOutOfRangeException being raised
222
    /// </param>
223
    class procedure SetCharsPerLine(const Value: UInt32);
224
    /// <summary>
225
    ///   Returns the number of chars after which a line break will be introduced
226
    /// </summary>
227
    /// <returns>
228
    ///   Maximum number of chars per line
229
    /// </returns>
230
    /// <remarks>
231
    ///   Cannot be a property, as properties cannot access class vars
232
    /// </remarks>
233
    class function GetCharsPerLine: UInt32;
234
  end;
235
236
  /// <summary>
237
  ///   Same as TFormat_Radix64, use TFormat_Radix64 instead, kept for backwards
238
  ///   compatibility only
239
  /// </summary>
240
  TFormat_PGP = class(TFormat_Radix64)
241
  end deprecated 'Use TFormat_Radix64 instead';
242
243
  /// <summary>
244
  ///   Unix UU format
245
  /// </summary>
246
  TFormat_UU = class(TDECFormat)
247
  protected
248
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
249
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
250
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
251
  public
252
    class function CharTableBinary: TBytes; virtual;
253
  end;
254
255
  /// <summary>
256
  ///   Unix XX format
257
  /// </summary>
258
  TFormat_XX = class(TFormat_UU)
259
  public
260
    class function CharTableBinary: TBytes; override;
261
  end;
262
263
  /// <summary>
264
  ///   Escaped format
265
  /// </summary>
266
  TFormat_ESCAPE = class(TDECFormat)
267
  protected
268
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
269
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
270
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
271
  public
272
    class function CharTableBinary: TBytes; virtual;
273
  end;
274
275
  /// <summary>
276
  ///   Conversion from/to 16 bit big endian
277
  /// </summary>
278
  TFormat_BigEndian16 = class(TDECFormat)
279
  private
280
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
281
  protected
282
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
283
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
284
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
285
  public
286
  end;
287
288
  /// <summary>
289
  ///   Conversion from/to 32 bit big endian
290
  /// </summary>
291
  TFormat_BigEndian32 = class(TDECFormat)
292
  private
293
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
294
  protected
295
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
296
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
297
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
298
  public
299
  end;
300
301
  /// <summary>
302
  ///   Conversion from/to 64 bit big endian
303
  /// </summary>
304
  TFormat_BigEndian64 = class(TDECFormat)
305
  private
306
    class procedure DoSawp(const Source; var Dest: TBytes; Size: Integer); inline;
307
  protected
308
    class procedure DoEncode(const Source; var Dest: TBytes; Size: Integer); override;
309
    class procedure DoDecode(const Source; var Dest: TBytes; Size: Integer); override;
310
    class function  DoIsValid(const Data; Size: Integer): Boolean; override;
311
  public
312
  end;
313
314
implementation
315
316
uses
317
  DECTypes, DECCRC; // needed by TFormat_Radix64
318
319
resourcestring
320
  sInvalidStringFormat  = 'Input is not an valid %s format';
321
322
class function TFormat_HEX.CharTableBinary: TBytes;
323
begin
324
  SetLength(result, 48);
325
  // special and skipped chars
326
  // '0123456789ABCDEFX$ abcdefhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13);
327
328
  {$IF CompilerVersion >= 28.0}
329
  result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, $43,
330
             $44, $45, $46, $58, $24, $20, $61, $62, $63, $64, $65, $66, $68,
331
             $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
332
             $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D];
333
  {$ELSE}
334
  // Remove this initialisation variant as soon as XE7+ is the new minimum
335
  // supported Delphi version
336
  result[ 0]:=$30;
337
  result[ 1]:=$31;
338
  result[ 2]:=$32;
339
  result[ 3]:=$33;
340
  result[ 4]:=$34;
341
  result[ 5]:=$35;
342
  result[ 6]:=$36;
343
  result[ 7]:=$37;
344
  result[ 8]:=$38;
345
  result[ 9]:=$39;
346
  result[10]:=$41;
347
  result[11]:=$42;
348
  result[12]:=$43;
349
  result[13]:=$44;
350
  result[14]:=$45;
351
  result[15]:=$46;
352
  result[16]:=$58;
353
  result[17]:=$24;
354
  result[18]:=$20;
355
  result[19]:=$61;
356
  result[20]:=$62;
357
  result[21]:=$63;
358
  result[22]:=$64;
359
  result[23]:=$65;
360
  result[24]:=$66;
361
  result[25]:=$68;
362
  result[26]:=$48;
363
  result[27]:=$78;
364
  result[28]:=$28;
365
  result[29]:=$29;
366
  result[30]:=$5B;
367
  result[31]:=$5D;
368
  result[32]:=$7B;
369
  result[33]:=$7D;
370
  result[34]:=$2C;
371
  result[35]:=$3B;
372
  result[36]:=$3A;
373
  result[37]:=$2D;
374
  result[38]:=$5F;
375
  result[39]:=$2F;
376
  result[40]:=$5C;
377
  result[41]:=$2A;
378
  result[42]:=$2B;
379
  result[43]:=$22;
380
  result[44]:=$27;
381
  result[45]:=$09;
382
  result[46]:=$0A;
383
  result[47]:=$0D;
384
  {$IFEND}
385
end;
386
387
class procedure TFormat_HEX.DoEncode(const Source; var Dest: TBytes; Size: Integer);
388
var
389
  S     : PByte;
390
  Table : TBytes;
391
  i     : Integer;
392
begin
393
  if Size <= 0 then Exit;
394
  SetLength(Dest, Size * 2);
395
396
  Table := CharTableBinary;
397
398
  S     := PByte(@Source);
399
  i     := 0;
400
401
  while Size > 0 do
402
  begin
403
    Dest[i]     := Table[S^ shr  4];
404
    Dest[i + 1] := Table[S^ and $F];
405
406
    Inc(S);
407
    Dec(Size);
408
    Inc(i, 2);
409
  end;
410
end;
411
412
class procedure TFormat_HEX.DoDecode(const Source; var Dest: TBytes; Size: Integer);
413
var
414
  S: PByte;
415
  D: PByte;
416
  T: TBytes;
417
  I,P: Integer;
418
419
  HasIdent: Boolean;
420
begin
421
  SetLength(Dest, 0);
422
  if Size <= 0 then Exit;
423
  SetLength(Dest, Size div 2); //  + 1);
424
425
  T := CharTableBinary;
426
427
  D := PByte(Dest);
428
  S := PByte(@Source);
429
  I := 0;
430
  HasIdent := False;
431
  while Size > 0 do
432
  begin
433
    P := TableFindBinary(S^, T, 18);
434
    if P < 0 then P := TableFindBinary(UpCaseBinary(S^), T, 16);
435
    if P < 0 then
436
      raise EDECException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
437
    Inc(S);
438
    if P >= 0 then
439
      if P > 16 then
440
      begin
441
        if not HasIdent then
442
        begin
443
          HasIdent := True;
444
          I := 0;
445
          D := PByte(Dest);
446
        end;
447
      end
448
      else
449
      begin
450
        if Odd(I) then
451
        begin
452
          D^ := D^ or P;
453
          Inc(D);
454
        end
455
        else
456
          D^ := P shl 4;
457
        Inc(I);
458
      end;
459
    Dec(Size);
460
  end;
461
end;
462
463
class function TFormat_HEX.DoIsValid(const Data; Size: Integer): Boolean;
464
var
465
  T: TBytes;
466
  S: PByte;
467
begin
468
  if not odd(Size) then
469
  begin
470
    Result := True;
471
    T := CharTableBinary;
472
    S := @Data;
473
    while Result and (Size > 0) do
474
    begin
475
      if TableFindBinary(S^, T, length(T)) >= 0 then
476
      begin
477
        Inc(S);
478
        Dec(Size);
479
      end
480
      else
481
        Result := False;
482
    end;
483
  end
484
  else
485
    result := false;
486
end;
487
488
class function TFormat_HEXL.CharTableBinary: TBytes;
489
begin
490
  SetLength(result, 48);
491
  // special and skipped chars
492
  // '0123456789abcdefX$ ABCDEFhHx()[]{},;:-_/\*+"'''+CHR(9)+CHR(10)+CHR(13);
493
494
  {$IF CompilerVersion >= 28.0}
495
  result := [$30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $61, $62, $63,
496
             $64, $65, $66, $68, $58, $24, $20, $41, $42, $43, $44, $45, $46,
497
             $48, $78, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
498
             $2F, $5C, $2A, $2B, $22, $27, $09, $0A, $0D];
499
  {$ELSE}
500
  // Remove this initialisation variant as soon as XE7+ is the new minimum
501
  // supported Delphi version
502
  result[ 0]:=$30;
503
  result[ 1]:=$31;
504
  result[ 2]:=$32;
505
  result[ 3]:=$33;
506
  result[ 4]:=$34;
507
  result[ 5]:=$35;
508
  result[ 6]:=$36;
509
  result[ 7]:=$37;
510
  result[ 8]:=$38;
511
  result[ 9]:=$39;
512
  result[10]:=$61;
513
  result[11]:=$62;
514
  result[12]:=$63;
515
  result[13]:=$64;
516
  result[14]:=$65;
517
  result[15]:=$66;
518
  result[16]:=$68;
519
  result[17]:=$58;
520
  result[18]:=$24;
521
  result[19]:=$20;
522
  result[20]:=$41;
523
  result[21]:=$42;
524
  result[22]:=$43;
525
  result[23]:=$44;
526
  result[24]:=$45;
527
  result[25]:=$46;
528
  result[26]:=$48;
529
  result[27]:=$78;
530
  result[28]:=$28;
531
  result[29]:=$29;
532
  result[30]:=$5B;
533
  result[31]:=$5D;
534
  result[32]:=$7B;
535
  result[33]:=$7D;
536
  result[34]:=$2C;
537
  result[35]:=$3B;
538
  result[36]:=$3A;
539
  result[37]:=$2D;
540
  result[38]:=$5F;
541
  result[39]:=$2F;
542
  result[40]:=$5C;
543
  result[41]:=$2A;
544
  result[42]:=$2B;
545
  result[43]:=$22;
546
  result[44]:=$27;
547
  result[45]:=$09;
548
  result[46]:=$0A;
549
  result[47]:=$0D;
550
  {$IFEND}
551
end;
552
553
class function TFormat_DECMIME32.CharTableBinary: TBytes;
554
begin
555
  // special and skipped chars
556
  // 'abcdefghijklnpqrstuwxyz123456789 =$()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13);
557
  SetLength(result, 53);
558
  {$IF CompilerVersion >= 28.0}
559
  result := [$61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6E, $70,
560
             $71, $72, $73, $74, $75, $77, $78, $79, $7A, $31, $32, $33, $34, $35,
561
             $36, $37, $38, $39, $20, $3D, $24, $28, $29, $5B, $5D, $7B, $7D, $2C,
562
             $3B, $3A, $2D, $5F, $5C, $2A, $22, $27, $09, $0A, $0D];
563
  {$ELSE}
564
  // Remove this initialisation variant as soon as XE7+ is the new minimum
565
  // supported Delphi version
566
  result[ 0]:=$61;
567
  result[ 1]:=$62;
568
  result[ 2]:=$63;
569
  result[ 3]:=$64;
570
  result[ 4]:=$65;
571
  result[ 5]:=$66;
572
  result[ 6]:=$67;
573
  result[ 7]:=$68;
574
  result[ 8]:=$69;
575
  result[ 9]:=$6A;
576
  result[10]:=$6B;
577
  result[11]:=$6C;
578
  result[12]:=$6E;
579
  result[13]:=$70;
580
581
  result[14]:=$71;
582
  result[15]:=$72;
583
  result[16]:=$73;
584
  result[17]:=$74;
585
  result[18]:=$75;
586
  result[19]:=$77;
587
  result[20]:=$78;
588
  result[21]:=$79;
589
  result[22]:=$7A;
590
  result[23]:=$31;
591
  result[24]:=$32;
592
  result[25]:=$33;
593
  result[26]:=$34;
594
  result[27]:=$35;
595
596
  result[28]:=$36;
597
  result[29]:=$37;
598
  result[30]:=$38;
599
  result[31]:=$39;
600
  result[32]:=$20;
601
  result[33]:=$3D;
602
  result[34]:=$24;
603
  result[35]:=$28;
604
  result[36]:=$29;
605
  result[37]:=$5B;
606
  result[38]:=$5D;
607
  result[39]:=$7B;
608
  result[40]:=$7D;
609
  result[41]:=$2C;
610
611
  result[42]:=$3B;
612
  result[43]:=$3A;
613
  result[44]:=$2D;
614
  result[45]:=$5F;
615
  result[46]:=$5C;
616
  result[47]:=$2A;
617
  result[48]:=$22;
618
  result[49]:=$27;
619
  result[50]:=$09;
620
  result[51]:=$0A;
621
  result[52]:=$0D;
622
  {$IFEND}
623
end;
624
625
class procedure TFormat_DECMIME32.DoEncode(const Source; var Dest: TBytes; Size: Integer);
626
var
627
  T   : TBytes;
628
  Src : TBytes;
629
  S, D: PByte;
630
  i, n: Integer;
631
begin
632
  SetLength(Dest, 0);
633
  if Size <= 0 then
634
    Exit;
635
636
  // The passed in source parameter has to be converted into an array with
637
  // added additional 0 value. This is because in the original form a string was
638
  // being passed in as source parameter, which automatically contained a #00 at
639
  // the end and depending on length of the data passed in, the @S[i shr 3] index
640
  // calculation can result in an index which represents the last byte of the
641
  // source parameter. That one is accessed as PWord then which results in
642
  // reading the first byte behind that source parameter as well! This led to
643
  // wrong data errors in the unit tests.
644
  SetLength(Src, Size + 1);
645
  Move(Source, Src[0], Size);
646
  Src[length(Src)-1] := 0;
647
648
  Size := Size * 8;
649
  SetLength(Dest, Size div 5 + 5);
650
651
  D := @Dest[0];
652
  T := CharTableBinary;
653
  S := @Src[0];
654
655
  i := 0; n := 0;
656
  while i < Size do
657
  begin
658
    D^ := T[PWord(@S[i shr 3])^ shr (i and $7) and $1F];
659
660
    Inc(D);
661
    Inc(i, 5);
662
663
    Inc(n);
664
  end;
665
666
  SetLength(Dest, n);
667
  SetLength(Src, 0);
668
end;
669
670
class function TFormat_DECMIME32.DoIsValid(const Data; Size: Integer): Boolean;
671
var
672
  T: TBytes;
673
  S: PByte;
674
begin
675
  Result := True;
676
  T := CharTableBinary;
677
  S := @Data;
678
  while Result and (Size > 0) do
679
  begin
680
    if TableFindBinary(S^, T, length(T)) >= 0 then
681
    begin
682
      Inc(S);
683
      Dec(Size);
684
    end
685
    else
686
      Result := False;
687
  end;
688
end;
689
690
class procedure TFormat_DECMIME32.DoDecode(const Source; var Dest: TBytes; Size: Integer);
691
var
692
  T: TBytes;
693
  S: PByte;
694
  D: PByte;
695
  i, V: Integer;
696
begin
697
  SetLength(Dest, 0);
698
  if Size <= 0 then
699
    Exit;
700
701
  Size := Size * 5;
702
  SetLength(Dest, Size div 8);
703
704
  T := CharTableBinary;
705
  S := @Source;
706
  D := @Dest[0];
707
708
  FillChar(D^, Length(Dest), 0);
709
  i := 0;
710
711
  while i < Size do
712
  begin
713
    V := TableFindBinary(S^, T, 32);
714
    if V < 0 then
715
      V := TableFindBinary(UpCaseBinary(S^), T, 32);
716
    if V >= 0 then
717
    begin
718
      PWord(@D[i shr 3])^ := PWord(@D[i shr 3])^ or (V shl (i and $7));
719
      Inc(i, 5);
720
    end
721
    else
722
      Dec(Size, 5);
723
    Inc(S);
724
  end;
725
726
  SetLength(Dest, Size div 8);
727
end;
728
729
class function TFormat_Base64.CharTableBinary: TBytes;
730
begin
731
  //  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' +
732
  //  ' $()[]{},;:-_\*"'''+CHR(9)+CHR(10)+CHR(13); // special and skipped chars
733
  SetLength(result, 85);
734
735
  {$IF CompilerVersion >= 28.0}
736
  result := [$41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D,
737
             $4E, $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A,
738
             $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D,
739
             $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A,
740
             $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $2B, $2F, $3D,
741
             $20, $24, $28, $29, $5B, $5D, $7B, $7D, $2C, $3B, $3A, $2D, $5F,
742
             $5C, $2A, $22, $27, $09, $0A, $0D];
743
  {$ELSE}
744
  // Remove this initialisation variant as soon as XE7+ is the new minimum
745
  // supported Delphi version
746
  result[0 ]:=$41;
747
  result[1 ]:=$42;
748
  result[2 ]:=$43;
749
  result[3 ]:=$44;
750
  result[4 ]:=$45;
751
  result[5 ]:=$46;
752
  result[6 ]:=$47;
753
  result[7 ]:=$48;
754
  result[8 ]:=$49;
755
  result[9 ]:=$4A;
756
  result[10]:=$4B;
757
  result[11]:=$4C;
758
  result[12]:=$4D;
759
760
  result[13]:=$4E;
761
  result[14]:=$4F;
762
  result[15]:=$50;
763
  result[16]:=$51;
764
  result[17]:=$52;
765
  result[18]:=$53;
766
  result[19]:=$54;
767
  result[20]:=$55;
768
  result[21]:=$56;
769
  result[22]:=$57;
770
  result[23]:=$58;
771
  result[24]:=$59;
772
  result[25]:=$5A;
773
774
  result[26]:=$61;
775
  result[27]:=$62;
776
  result[28]:=$63;
777
  result[29]:=$64;
778
  result[30]:=$65;
779
  result[31]:=$66;
780
  result[32]:=$67;
781
  result[33]:=$68;
782
  result[34]:=$69;
783
  result[35]:=$6A;
784
  result[36]:=$6B;
785
  result[37]:=$6C;
786
  result[38]:=$6D;
787
788
  result[39]:=$6E;
789
  result[40]:=$6F;
790
  result[41]:=$70;
791
  result[42]:=$71;
792
  result[43]:=$72;
793
  result[44]:=$73;
794
  result[45]:=$74;
795
  result[46]:=$75;
796
  result[47]:=$76;
797
  result[48]:=$77;
798
  result[49]:=$78;
799
  result[50]:=$79;
800
  result[51]:=$7A;
801
802
  result[52]:=$30;
803
  result[53]:=$31;
804
  result[54]:=$32;
805
  result[55]:=$33;
806
  result[56]:=$34;
807
  result[57]:=$35;
808
  result[58]:=$36;
809
  result[59]:=$37;
810
  result[60]:=$38;
811
  result[61]:=$39;
812
  result[62]:=$2B;
813
  result[63]:=$2F;
814
  result[64]:=$3D;
815
816
  result[65]:=$20;
817
  result[66]:=$24;
818
  result[67]:=$28;
819
  result[68]:=$29;
820
  result[69]:=$5B;
821
  result[70]:=$5D;
822
  result[71]:=$7B;
823
  result[72]:=$7D;
824
  result[73]:=$2C;
825
  result[74]:=$3B;
826
  result[75]:=$3A;
827
  result[76]:=$2D;
828
  result[77]:=$5F;
829
830
  result[78]:=$5C;
831
  result[79]:=$2A;
832
  result[80]:=$22;
833
  result[81]:=$27;
834
  result[82]:=$09;
835
  result[83]:=$0A;
836
  result[84]:=$0D;
837
  {$IFEND}
838
end;
839
840
class procedure TFormat_Base64.DoEncode(const Source; var Dest: TBytes; Size: Integer);
841
var
842
  T: TBytes;
843
  S: PByte;
844
  D: PByte;
845
  B: UInt32;
846
  i: Integer;
847
  n: Integer;
848
begin
849
  SetLength(Dest, 0);
850
  if Size <= 0 then
851
    Exit;
852
853
  SetLength(Dest, Size * 4 div 3 + 4);
854
855
  T := CharTableBinary;
856
  S := @Source;
857
  D := @Dest[0];
858
859
  n := 0;
860
  while Size >= 3 do
861
  begin
862
    Dec(Size, 3);
863
    B := Byte(S[0]) shl 16 or Byte(S[1]) shl 8 or Byte(S[2]);
864
    D[0] := T[B shr 18 and $3F];
865
    D[1] := T[B shr 12 and $3F];
866
    D[2] := T[B shr  6 and $3F];
867
    D[3] := T[B        and $3F];
868
    Inc(D, 4);
869
    S := @S[3];
870
    Inc(n, 4);
871
  end;
872
873
  while Size > 0 do
874
  begin
875
    B := 0;
876
    for i := 0 to 2 do
877
    begin
878
      B := B shl 8;
879
      if Size > 0 then
880
      begin
881
        B := B or Byte(S[0]);
882
        S := @S[1];
883
      end;
884
      Dec(Size);
885
    end;
886
    for i := 3 downto 0 do
887
    begin
888
      if Size < 0 then
889
      begin
890
        D[i] := T[64];
891
        Inc(Size);
892
      end
893
      else
894
        D[i] := T[B and $3F];
895
      B := B shr 6;
896
    end;
897
    Inc(D, 4);
898
    Inc(n, 4);
899
  end;
900
901
  // original calculation was substract dest ptr d - start of dest
902
  SetLength(Dest, n);
903
end;
904
905
class procedure TFormat_Base64.DoDecode(const Source; var Dest: TBytes; Size: Integer);
906
var
907
  T: TBytes;
908
  S: PByte;
909
  D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
910
  B: UInt32;
911
  i, j, n: Integer;
912
begin
913
  SetLength(Dest, 0);
914
  if Size <= 0 then
915
    Exit;
916
917
  SetLength(Dest, Size);
918
919
  T := CharTableBinary;
920
  S := @Source;
921
  D := @Dest[0];
922
923
  Move(Source, Dest[0], Size);
924
925
  L := S + Size;
926
  j := 0;
927
  n := 0;
928
  while S < L do
929
  begin
930
    B := 0;
931
    j := 4;
932
    while (j > 0) and (S < L) do
933
    begin
934
      i := TableFindBinary(S^, T, 65);
935
      Inc(S);
936
      if i >= 0 then
937
      begin
938
        if i < 64 then
939
        begin
940
          B := B shl 6 or Byte(i);
941
          Dec(j);
942
        end
943
        else
944
          L := S;
945
      end;
946
    end;
947
    if j > 0 then
948
    begin
949
      if j >= 4 then
950
      begin
951
        j := 0;
952
        Break;
953
      end
954
      else
955
        B := B shl (6 * j);
956
    end;
957
    i := 2;
958
    while i >= 0 do
959
    begin
960
      D[i] := Byte(B);
961
      B := B shr 8;
962
      Dec(i);
963
    end;
964
    Inc(D, 3);
965
    Inc(n, 3);
966
  end;
967
968
  SetLength(Dest, n-j);
969
end;
970
971
class function TFormat_Base64.DoIsValid(const Data; Size: Integer): Boolean;
972
var
973
  T: TBytes;
974
  S: PByte;
975
begin
976
  Result := True;
977
  T := CharTableBinary;
978
  S := @Data;
979
  while Result and (Size > 0) do
980
  begin
981
    // A-Z, a-z, 0-9, + and / and CR/LF
982
    if S^ in [$41..$5A, $61..$7A, $2B, $2F..$39, $3D, $0D, $0A] then
983
    begin
984
      Inc(S);
985
      Dec(Size);
986
    end
987
    else
988
      Result := False;
989
  end;
990
end;
991
992
class function TFormat_Radix64.DoExtractCRC(const Data; var Size: Integer): UInt32;
993
var
994
  L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
995
  C: Byte;
996
  R: TBytes;
997
begin
998
  Result := $FFFFFFFF;
999
  C := CharTableBinary[64]; // get padding char, per default '='
1000
  L := PByte(@Data) + Size;
1001
  while L <> @Data do
1002
  begin
1003
    if L^ = C then
1004
      Break
1005
    else
1006
      Dec(L); // scan reverse for padding char
1007
  end;
1008
  if L - PByte(@Data) >= Size - 5 then // remaining chars must be > 4, e.g. '=XQRT'
1009
  try
1010
    Inc(L);
1011
    inherited DoDecode(L^, R, Size - (L - PByte(@Data)));
1012
    if Length(R) >= 3 then
1013
    begin
1014
      Result := 0;
1015
      Move(R[0], Result, 3);
1016
      Size := L - PByte(@Data);
1017
    end;
1018
  except
1019
  end;
1020
end;
1021
1022
class function TFormat_Radix64.DoIsValid(const Data; Size: Integer): Boolean;
1023
var
1024
  crc24 : UInt32;
1025
  Dest  : TBytes;
1026
begin
1027
  // Radix64 is like Base64 but with additional CRC24 checksum
1028
  result := TFormat_Base64.IsValid(Data, Size);
1029
1030
  // Check contained checksum as well
1031
  if result then
1032
  begin
1033
    crc24 := DoExtractCRC(Data, Size);
1034
    // we need to decode, because it removes the CR/LF linebreaks which would
1035
    // invalidate the checksum
1036
    inherited DoDecode(Data, Dest, Size);
1037
1038
    if crc24 <> $FFFFFFFF then
1039
    begin
1040
      // recalc CRC and compare
1041
      SwapBytes(crc24, 3);
1042
      result := crc24 = CRCCalc(CRC_24, Dest[0], Length(Dest));
1043
    end
1044
    else
1045
      result := false;
1046
  end;
1047
end;
1048
1049
class function TFormat_Radix64.GetCharsPerLine: UInt32;
1050
begin
1051
  result := FCharsPerLine;
1052
end;
1053
1054
class procedure TFormat_Radix64.InsertCRLF(const Source: TBytes; var Dest: TBytes; LineLength: Integer);
1055
var
1056
  S, D: PByte;
1057
  i: Integer;
1058
begin
1059
  i := Length(Source);
1060
  if (LineLength <= 0) or (i <= LineLength) then
1061
  begin
1062
    SetLength(Dest, i);
1063
    Move(Source[0], Dest[0], i);
1064
    Exit;
1065
  end;
1066
1067
  SetLength(Dest, i + i * 2 div LineLength + 2);
1068
1069
  S := @Source[0];
1070
  D := @Dest[0];
1071
1072
  repeat
1073
    Move(S^, D^, LineLength);
1074
    Inc(S, LineLength);
1075
    Inc(D, LineLength);
1076
    D^ := Ord(#13);
1077
    Inc(D);
1078
    D^ := Ord(#10);
1079
    Inc(D);
1080
    Dec(i, LineLength);
1081
  until i < LineLength;
1082
1083
  Move(S^, D^, i);
1084
  Inc(D, i);
1085
1086
  SetLength(Dest, PByte(D) - PByte(Dest));
1087
end;
1088
1089
class procedure TFormat_Radix64.SetCharsPerLine(const Value: UInt32);
1090
begin
1091
  if (Value > 0) then
1092
    FCharsPerLine := Value
1093
  else
1094
    raise EArgumentOutOfRangeException.Create('Invalid number of chars per line: ' +
1095
                                              IntToStr(Value));
1096
end;
1097
1098
class procedure TFormat_Radix64.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1099
var
1100
  TempData : TBytes;
1101
  CRC      : UInt32;
1102
  CRCData  : TBytes;
1103
  Position : Integer;
1104
begin
1105
  SetLength(Dest, 0);
1106
  if Size <= 0 then
1107
    Exit;
1108
1109
  // use Base64
1110
  inherited DoEncode(Source, TempData, Size);
1111
1112
  // split lines
1113
  InsertCRLF(TempData, Dest, FCharsPerLine);
1114
  SetLength(TempData, 0);
1115
1116
  CRC := CRCCalc(CRC_24, Source, Size); // calculate 24-bit Checksum
1117
  SwapBytes(CRC, 3); // PGP use Big Endian
1118
1119
  // check and insert LF if needed
1120
  Position := Length(Dest) - 1; // last char
1121
  if Dest[Position] <> $0A then
1122
  begin
1123
    // insert CR needed, CRC must be in the next line
1124
    Position := Length(Dest);
1125
    SetLength(Dest, Position + 2);
1126
    Dest[Position]   := $0D; // append CR
1127
    Dest[Position+1] := $0A; // append LF
1128
  end;
1129
1130
  // encode CRC with Base64 too
1131
  inherited DoEncode(CRC, CRCData, 3);
1132
1133
  // if CRC is too long insert CRLF. -1 to compensate the later added = char
1134
  InsertCRLF(CRCData, TempData, FCharsPerLine - 1);
1135
  CRCData := TempData;
1136
1137
  // append encoded CRC
1138
  Position := Length(Dest);
1139
  SetLength(Dest, Position + 1 + Length(CRCData));
1140
  Dest[Position] := Ord('=');
1141
  Move(CRCData[0], Dest[Position + 1], Length(CRCData));
1142
end;
1143
1144
class procedure TFormat_Radix64.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1145
var
1146
  CRC: UInt32;
1147
begin
1148
  SetLength(Dest, 0);
1149
  if Size <= 0 then
1150
    Exit;
1151
1152
  CRC := DoExtractCRC(Source, Size);
1153
  inherited DoDecode(Source, Dest, Size);
1154
1155
  if CRC <> $FFFFFFFF then // check CRC if found
1156
  begin
1157
    SwapBytes(CRC, 3);
1158
    if CRC <> CRCCalc(CRC_24, Dest[0], Length(Dest)) then
1159
      raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1160
  end;
1161
end;
1162
1163
class function TFormat_UU.CharTableBinary: TBytes;
1164
begin
1165
  // '`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_' +
1166
  // ' '+CHR(9)+CHR(10)+CHR(13);
1167
1168
  SetLength(result, 68);
1169
  {$IF CompilerVersion >= 28.0}
1170
  result := [$60, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2A, $2B, $2C,
1171
             $2D, $2E, $2F, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39,
1172
             $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43, $44, $45, $46,
1173
             $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53,
1174
             $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $20,
1175
             $09, $0A, $0D];
1176
  {$ELSE}
1177
  // Remove this initialisation variant as soon as XE7+ is the new minimum
1178
  // supported Delphi version
1179
  result[ 0]:=$60;
1180
  result[ 1]:=$21;
1181
  result[ 2]:=$22;
1182
  result[ 3]:=$23;
1183
  result[ 4]:=$24;
1184
  result[ 5]:=$25;
1185
  result[ 6]:=$26;
1186
  result[ 7]:=$27;
1187
  result[ 8]:=$28;
1188
  result[ 9]:=$29;
1189
  result[10]:=$2A;
1190
  result[11]:=$2B;
1191
  result[12]:=$2C;
1192
1193
  result[13]:=$2D;
1194
  result[14]:=$2E;
1195
  result[15]:=$2F;
1196
  result[16]:=$30;
1197
  result[17]:=$31;
1198
  result[18]:=$32;
1199
  result[19]:=$33;
1200
  result[20]:=$34;
1201
  result[21]:=$35;
1202
  result[22]:=$36;
1203
  result[23]:=$37;
1204
  result[24]:=$38;
1205
  result[25]:=$39;
1206
1207
  result[26]:=$3A;
1208
  result[27]:=$3B;
1209
  result[28]:=$3C;
1210
  result[29]:=$3D;
1211
  result[30]:=$3E;
1212
  result[31]:=$3F;
1213
  result[32]:=$40;
1214
  result[33]:=$41;
1215
  result[34]:=$42;
1216
  result[35]:=$43;
1217
  result[36]:=$44;
1218
  result[37]:=$45;
1219
  result[38]:=$46;
1220
1221
  result[39]:=$47;
1222
  result[40]:=$48;
1223
  result[41]:=$49;
1224
  result[42]:=$4A;
1225
  result[43]:=$4B;
1226
  result[44]:=$4C;
1227
  result[45]:=$4D;
1228
  result[46]:=$4E;
1229
  result[47]:=$4F;
1230
  result[48]:=$50;
1231
  result[49]:=$51;
1232
  result[50]:=$52;
1233
  result[51]:=$53;
1234
1235
  result[52]:=$54;
1236
  result[53]:=$55;
1237
  result[54]:=$56;
1238
  result[55]:=$57;
1239
  result[56]:=$58;
1240
  result[57]:=$59;
1241
  result[58]:=$5A;
1242
  result[59]:=$5B;
1243
  result[60]:=$5C;
1244
  result[61]:=$5D;
1245
  result[62]:=$5E;
1246
  result[63]:=$5F;
1247
  result[64]:=$20;
1248
1249
  result[65]:=$09;
1250
  result[66]:=$0A;
1251
  result[67]:=$0D;
1252
  {$IFEND}
1253
end;
1254
1255
class procedure TFormat_UU.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1256
var
1257
  T: TBytes;
1258
  S: PByte;
1259
  D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1260
  L, i: Integer;
1261
  B: Cardinal;
1262
begin
1263
  SetLength(Dest, 0);
1264
  if Size <= 0 then
1265
    Exit;
1266
1267
  SetLength(Dest, Size * 4 div 3 + Size div 45 + 10);
1268
1269
  T := CharTableBinary;
1270
  S := @Source;
1271
  D := @Dest[0];
1272
1273
  while Size > 0 do
1274
  begin
1275
    L := Size;
1276
    if L > 45 then
1277
      L := 45;
1278
    Dec(Size, L);
1279
    D^ := T[L];
1280
    while L > 0 do
1281
    begin
1282
      B := 0;
1283
      for i := 0 to 2 do
1284
      begin
1285
        B := B shl 8;
1286
        if L > 0 then
1287
        begin
1288
          B := B or S^;
1289
          Inc(S);
1290
        end;
1291
        Dec(L);
1292
      end;
1293
      for i := 4 downto 1 do
1294
      begin
1295
        D[i] := T[B and $3F];
1296
        B := B shr 6;
1297
      end;
1298
      Inc(D, 4);
1299
    end;
1300
    Inc(D);
1301
  end;
1302
1303
  SetLength(Dest, PByte(D) - PByte(Dest));
1304
end;
1305
1306
class procedure TFormat_UU.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1307
var
1308
  T: TBytes;
1309
  S: PByte;
1310
  D, L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1311
  i, E: Integer;
1312
  B: UInt32;
1313
begin
1314
  SetLength(Dest, 0);
1315
  if Size <= 0 then
1316
    Exit;
1317
1318
  SetLength(Dest, Size);
1319
1320
  T := CharTableBinary;
1321
  S := @Source;
1322
  D := @Dest[0];
1323
1324
  L := PByte(S) + Size;
1325
1326
  repeat
1327
    Size := TableFindBinary(S^, T, 64);
1328
    if (Size < 0) or (Size > 45) then
1329
      raise EDECException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1330
    Inc(S);
1331
    while Size > 0 do
1332
    begin
1333
      B := 0;
1334
      i := 4;
1335
      while (i > 0) and (S <= L) do
1336
      begin
1337
        E := TableFindBinary(S^, T, 64);
1338
        if E >= 0 then
1339
        begin
1340
          B := B shl 6 or Byte(E);
1341
          Dec(i);
1342
        end;
1343
        Inc(S);
1344
      end;
1345
      i := 2;
1346
      repeat
1347
        D[i] := Byte(B);
1348
        B    := B shr 8;
1349
        Dec(i);
1350
      until i < 0;
1351
      if Size > 3 then
1352
        Inc(D, 3)
1353
      else
1354
        Inc(D, Size);
1355
      Dec(Size, 3);
1356
    end;
1357
  until S >= L;
1358
1359
  SetLength(Dest, PByte(D) - PByte(Dest));
1360
end;
1361
1362
class function TFormat_UU.DoIsValid(const Data; Size: Integer): Boolean;
1363
var
1364
  T: TBytes;
1365
  S: PByte;
1366
  Len, P, i: Integer;
1367
begin
1368
  Result := False;
1369
  T := CharTableBinary;
1370
  Len := Length(T);
1371
  S := @Data;
1372
  P := 0;
1373
1374
  while Size > 0 do
1375
  begin
1376
    i := TableFindBinary(S^, T, Len);
1377
    if i >= 0 then
1378
    begin
1379
      Dec(Size);
1380
      Inc(S);
1381
      if P = 0 then
1382
      begin
1383
        if i > 45 then
1384
          Exit;
1385
        P := (i * 4 + 2) div 3;
1386
      end
1387
      else
1388
        if i < 64 then
1389
          Dec(P);
1390
    end
1391
    else
1392
      Exit;
1393
  end;
1394
1395
  if P <> 0 then
1396
    Exit;
1397
1398
  Result := True;
1399
end;
1400
1401
class function TFormat_XX.CharTableBinary: TBytes;
1402
begin
1403
  // '+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' +
1404
  // ' "()[]'''+CHR(9)+CHR(10)+CHR(13);
1405
  SetLength(result, 74);
1406
  {$IF CompilerVersion >= 28.0}
1407
  result := [$2B, $2D, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41,
1408
             $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E,
1409
             $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, $61,
1410
             $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, $6E,
1411
             $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A, $20,
1412
             $22, $28, $29, $5B, $5D, $27, $09, $0A, $0D];
1413
  {$ELSE}
1414
  // Remove this initialisation variant as soon as XE7+ is the new minimum
1415
  // supported Delphi version
1416
  result[ 0]:=$2B;
1417
  result[ 1]:=$2D;
1418
  result[ 2]:=$30;
1419
  result[ 3]:=$31;
1420
  result[ 4]:=$32;
1421
  result[ 5]:=$33;
1422
  result[ 6]:=$34;
1423
  result[ 7]:=$35;
1424
  result[ 8]:=$36;
1425
  result[ 9]:=$37;
1426
  result[10]:=$38;
1427
  result[11]:=$39;
1428
  result[12]:=$41;
1429
1430
  result[13]:=$42;
1431
  result[14]:=$43;
1432
  result[15]:=$44;
1433
  result[16]:=$45;
1434
  result[17]:=$46;
1435
  result[18]:=$47;
1436
  result[19]:=$48;
1437
  result[20]:=$49;
1438
  result[21]:=$4A;
1439
  result[22]:=$4B;
1440
  result[23]:=$4C;
1441
  result[24]:=$4D;
1442
  result[25]:=$4E;
1443
1444
  result[26]:=$4F;
1445
  result[27]:=$50;
1446
  result[28]:=$51;
1447
  result[29]:=$52;
1448
  result[30]:=$53;
1449
  result[31]:=$54;
1450
  result[32]:=$55;
1451
  result[33]:=$56;
1452
  result[34]:=$57;
1453
  result[35]:=$58;
1454
  result[36]:=$59;
1455
  result[37]:=$5A;
1456
  result[38]:=$61;
1457
1458
  result[39]:=$62;
1459
  result[40]:=$63;
1460
  result[41]:=$64;
1461
  result[42]:=$65;
1462
  result[43]:=$66;
1463
  result[44]:=$67;
1464
  result[45]:=$68;
1465
  result[46]:=$69;
1466
  result[47]:=$6A;
1467
  result[48]:=$6B;
1468
  result[49]:=$6C;
1469
  result[50]:=$6D;
1470
  result[51]:=$6E;
1471
1472
  result[52]:=$6F;
1473
  result[53]:=$70;
1474
  result[54]:=$71;
1475
  result[55]:=$72;
1476
  result[56]:=$73;
1477
  result[57]:=$74;
1478
  result[58]:=$75;
1479
  result[59]:=$76;
1480
  result[60]:=$77;
1481
  result[61]:=$78;
1482
  result[62]:=$79;
1483
  result[63]:=$7A;
1484
  result[64]:=$20;
1485
1486
  result[65]:=$22;
1487
  result[66]:=$28;
1488
  result[67]:=$29;
1489
  result[68]:=$5B;
1490
  result[69]:=$5D;
1491
  result[70]:=$27;
1492
  result[71]:=$09;
1493
  result[72]:=$0A;
1494
  result[73]:=$0D;
1495
  {$IFEND}
1496
end;
1497
1498
var
1499
  // Initlialized in initialization section, cannot be const because of the
1500
  // TBytes requirement
1501
  ESCAPE_CodesL: TBytes; //array[0..6] of Byte = ($61, $62, $74, $6E, $76, $66, $72);
1502
  ESCAPE_CodesU: TBytes; //array[0..6] of Byte = ($41, $42, $54, $4E, $56, $46, $52);
1503
1504
class function TFormat_ESCAPE.CharTableBinary: TBytes;
1505
begin
1506
  Result := TFormat_HEX.CharTableBinary;
1507
end;
1508
1509
class procedure TFormat_ESCAPE.DoEncode(const Source; var Dest: TBytes; Size: Integer);
1510
var
1511
  T: TBytes;
1512
  S: PByte;
1513
  D: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1514
  i: Integer;
1515
begin
1516
  SetLength(Dest, 0);
1517
  if Size <= 0 then
1518
    Exit;
1519
1520
  SetLength(Dest, Size + 8);
1521
1522
  T := CharTableBinary;
1523
  S := @Source;
1524
  D := @Dest[0];
1525
1526
  i := Size;
1527
1528
  while Size > 0 do
1529
  begin
1530
    if i <= 0 then
1531
    begin
1532
      i := D - PByte(Dest);
1533
      SetLength(Dest, i + Size + 8);
1534
      D := PByte(Dest) + i;
1535
      i := Size;
1536
    end;
1537
    if (S^ < 32) or (S^ > $7F) then
1538
    begin
1539
      if (S^ >= 7) and (S^ <= 13) then
1540
      begin
1541
        D^ := $5C; // \ char
1542
        Inc(D);
1543
        D^ := ESCAPE_CodesL[S^ - 7];
1544
        Inc(D);
1545
        Dec(i, 2);
1546
      end
1547
      else
1548
      begin
1549
        D^ := $5C; // \ char
1550
        Inc(D);
1551
        D^ := $78; // x
1552
        Inc(D);
1553
        D^ := T[S^ shr 4];
1554
        Inc(D);
1555
        D^ := T[S^ and $F];
1556
        Inc(D);
1557
        Dec(i, 4);
1558
      end
1559
    end
1560
    else
1561
    begin
1562
      // S^is \ char?
1563
      if S^ = $5C then
1564
      begin
1565
        D^ := $5C; // \ char
1566
        Inc(D);
1567
        D^ := $5C; // \ char
1568
        Inc(D);
1569
        Dec(i, 2);
1570
      end
1571
      else
1572
      // S^ is " char?
1573
      if S^ = $22 then
1574
      begin
1575
        D^ := $5C; // \ char
1576
        Inc(D);
1577
        D^ := $22; // " char
1578
        Inc(D);
1579
        Dec(i, 2);
1580
      end
1581
      else
1582
      begin
1583
        D^ := S^;
1584
        Inc(D);
1585
        Dec(i);
1586
      end;
1587
    end;
1588
    Dec(Size);
1589
    Inc(S);
1590
  end;
1591
1592
  SetLength(Dest, PByte(D) - PByte(Dest));
1593
end;
1594
1595
class function TFormat_ESCAPE.DoIsValid(const Data; Size: Integer): Boolean;
1596
var
1597
  T: TBytes;
1598
  S: PByte;
1599
begin
1600
  Result := False;
1601
  T := CharTableBinary;
1602
  S := @Data;
1603
1604
  while Size > 0 do
1605
  begin
1606
    if (S^ > $7F) or (S^ < 32) then
1607
      Exit;
1608
1609
    // start of an escape sequence
1610
    if S^ = $5C then
1611
    begin
1612
      Dec(Size);
1613
      Inc(S);
1614
1615
      // \ at the end
1616
      if Size <= 0 then
1617
        Exit;
1618
1619
      // X for hex notation
1620
      if UpCaseBinary(S^) = $58 then
1621
      begin
1622
        Inc(S);
1623
        Dec(Size);
1624
1625
        // incomplete hex notation follows?
1626
        if (Size < 2) or (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then
1627
          Exit;
1628
1629
        Inc(S);
1630
        Dec(Size);
1631
1632
        if (TableFindBinary(UpCaseBinary(S^), T, 16) < 0) then
1633
          Exit;
1634
1635
        Inc(S);
1636
        Dec(Size);
1637
      end
1638
      else
1639
      begin
1640
        // \ with invalid following char?
1641
        if TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7) < 0 then
1642
          Exit;
1643
1644
        Dec(Size);
1645
        Inc(S);
1646
      end;
1647
    end
1648
    else
1649
    begin
1650
      Dec(Size);
1651
      Inc(S);
1652
    end;
1653
  end;
1654
1655
  Result := True;
1656
end;
1657
1658
class procedure TFormat_ESCAPE.DoDecode(const Source; var Dest: TBytes; Size: Integer);
1659
var
1660
  T: TBytes;
1661
  S: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1662
  D: PByte;
1663
  L: PByte; // 1) to make pointer arithmetic work 2) P/TByteArray is limited to 32768 bytes
1664
  i: Integer;
1665
begin
1666
  if Size <= 0 then
1667
    Exit;
1668
  SetLength(Dest, Size);
1669
1670
  T := CharTableBinary;
1671
  S := @Source;
1672
  D := @Dest[0];
1673
1674
  L := S + Size;
1675
1676
  while S < L do
1677
  begin
1678
    // S^ is \ char?
1679
    if S^ = $5C then
1680
    begin
1681
      Inc(S);
1682
      if S > L then Break;
1683
      // S^ is X char?
1684
      if UpCaseBinary(S^) = $58 then
1685
      begin
1686
        if S + 2 > L then
1687
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1688
        Inc(S);
1689
        i := TableFindBinary(UpCaseBinary(S^), T, 16);
1690
        if i < 0 then
1691
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1692
        D^ := i shl 4;
1693
        Inc(S);
1694
        i := TableFindBinary(UpCaseBinary(S^), T, 16);
1695
        if i < 0 then
1696
          raise EDECFormatException.CreateResFmt(@sInvalidStringFormat, [self.GetShortClassName]);
1697
        D^ := D^ or i;
1698
      end
1699
      else
1700
      begin
1701
        i := TableFindBinary(UpCaseBinary(S^), TBytes(ESCAPE_CodesU), 7);
1702
        if i >= 0 then
1703
          D^ := i + 7
1704
        else
1705
          D^ := S^;
1706
      end;
1707
    end
1708
    else
1709
      D^ := S^;
1710
    Inc(D);
1711
    Inc(S);
1712
  end;
1713
1714
  SetLength(Dest, PByte(D) - PByte(Dest));
1715
end;
1716
1717
{ TFormat_BigEndian16 }
1718
1719
class procedure TFormat_BigEndian16.DoDecode(const Source; var Dest: TBytes;
1720
  Size: Integer);
1721
begin
1722
  DoSawp(Source, Dest, Size);
1723
end;
1724
1725
class procedure TFormat_BigEndian16.DoEncode(const Source; var Dest: TBytes;
1726
  Size: Integer);
1727
begin
1728
  DoSawp(Source, Dest, Size);
1729
end;
1730
1731
class function TFormat_BigEndian16.DoIsValid(const Data;
1732
  Size: Integer): Boolean;
1733
begin
1734
  // swapping bytes in 16 bit mode requires even number of bytes
1735
  result := not Odd(Size);
1736
end;
1737
1738
class procedure TFormat_BigEndian16.DoSawp(const Source; var Dest: TBytes;
1739
  Size: Integer);
1740
var
1741
  i : Integer;
1742
begin
1743
  if (Size < 0) or Odd(Size) then
1744
    Exit;
1745
  SetLength(Dest, Size);
1746
1747
  if (Size > 0) then
1748
  begin
1749
    Move(Source, Dest[0], Size);
1750
1751
    i := 0;
1752
    while (i < length(Dest)) do
1753
    begin
1754
      DECUtil.SwapBytes(Dest[i], 2);
1755
      inc(i, 2);
1756
    end;
1757
  end;
1758
end;
1759
1760
{ TFormat_BigEndian32 }
1761
1762
class procedure TFormat_BigEndian32.DoDecode(const Source; var Dest: TBytes;
1763
  Size: Integer);
1764
begin
1765
  DoSawp(Source, Dest, Size);
1766
end;
1767
1768
class procedure TFormat_BigEndian32.DoEncode(const Source; var Dest: TBytes;
1769
  Size: Integer);
1770
begin
1771
  DoSawp(Source, Dest, Size);
1772
end;
1773
1774
class function TFormat_BigEndian32.DoIsValid(const Data;
1775
  Size: Integer): Boolean;
1776
begin
1777
  result := (Size mod 4) = 0;
1778
end;
1779
1780
class procedure TFormat_BigEndian32.DoSawp(const Source; var Dest: TBytes;
1781
  Size: Integer);
1782
var
1783
  i       : Integer;
1784
  SwapRes : UInt32;
1785
begin
1786
  if (Size < 0) or ((Size mod 4) <> 0) then
1787
    Exit;
1788
  SetLength(Dest, Size);
1789
1790
  if (Size > 0) then
1791
  begin
1792
    Move(Source, Dest[0], Size);
1793
1794
    i := 0;
1795
    while (i < length(Dest)) do
1796
    begin
1797
      Move(Dest[i], SwapRes, 4);
1798
      SwapRes := DECUtil.SwapUInt32(SwapRes);
1799
      Move(SwapRes, Dest[i], 4);
1800
      inc(i, 4);
1801
    end;
1802
  end;
1803
end;
1804
1805
{ TFormat_BigEndian64 }
1806
1807
class procedure TFormat_BigEndian64.DoDecode(const Source; var Dest: TBytes;
1808
  Size: Integer);
1809
begin
1810
  DoSawp(Source, Dest, Size);
1811
end;
1812
1813
class procedure TFormat_BigEndian64.DoEncode(const Source; var Dest: TBytes;
1814
  Size: Integer);
1815
begin
1816
  DoSawp(Source, Dest, Size);
1817
end;
1818
1819
class function TFormat_BigEndian64.DoIsValid(const Data;
1820
  Size: Integer): Boolean;
1821
begin
1822
  result := (Size mod 8) = 0;
1823
end;
1824
1825
class procedure TFormat_BigEndian64.DoSawp(const Source; var Dest: TBytes;
1826
  Size: Integer);
1827
var
1828
  i       : Integer;
1829
  SwapRes : Int64;
1830
begin
1831
  if (Size < 0) or ((Size mod 8) <> 0) then
1832
    Exit;
1833
  SetLength(Dest, Size);
1834
1835
  if (Size > 0) then
1836
  begin
1837
    Move(Source, Dest[0], Size);
1838
1839
    i := 0;
1840
    while (i < length(Dest)) do
1841
    begin
1842
      Move(Dest[i], SwapRes, 8);
1843
      SwapRes := DECUtil.SwapInt64(SwapRes);
1844
      Move(SwapRes, Dest[i], 8);
1845
      inc(i, 8);
1846
    end;
1847
  end;
1848
end;
1849
1850
initialization
1851
  SetLength(ESCAPE_CodesL, 7);
1852
  ESCAPE_CodesL[0] := $61;
1853
  ESCAPE_CodesL[1] := $62;
1854
  ESCAPE_CodesL[2] := $74;
1855
  ESCAPE_CodesL[3] := $6E;
1856
  ESCAPE_CodesL[4] := $76;
1857
  ESCAPE_CodesL[5] := $66;
1858
  ESCAPE_CodesL[6] := $72;
1859
1860
  SetLength(ESCAPE_CodesU, 7);
1861
  ESCAPE_CodesU[0] := $41;
1862
  ESCAPE_CodesU[1] := $42;
1863
  ESCAPE_CodesU[2] := $54;
1864
  ESCAPE_CodesU[3] := $4E;
1865
  ESCAPE_CodesU[4] := $56;
1866
  ESCAPE_CodesU[5] := $46;
1867
  ESCAPE_CodesU[6] := $52;
1868
1869
  {$IFNDEF BCB}
1870
    {$IFNDEF ManualRegisterFormatClasses}
1871
    TFormat_HEX.RegisterClass(TDECFormat.ClassList);
1872
    TFormat_HEXL.RegisterClass(TDECFormat.ClassList);
1873
    TFormat_DECMIME32.RegisterClass(TDECFormat.ClassList);
1874
    TFormat_Base64.RegisterClass(TDECFormat.ClassList);
1875
    TFormat_Radix64.RegisterClass(TDECFormat.ClassList);
1876
    TFormat_UU.RegisterClass(TDECFormat.ClassList);
1877
    TFormat_XX.RegisterClass(TDECFormat.ClassList);
1878
    TFormat_ESCAPE.RegisterClass(TDECFormat.ClassList);
1879
    TFormat_BigEndian16.RegisterClass(TDECFormat.ClassList);
1880
    TFormat_BigEndian32.RegisterClass(TDECFormat.ClassList);
1881
    TFormat_BigEndian64.RegisterClass(TDECFormat.ClassList);
1882
    {$ENDIF}
1883
  {$ENDIF}
1884
1885
  // Init the number of chars per line as per RFC 4880 to 76 chars
1886
  TFormat_Radix64.FCharsPerLine := 76;
1887
1888
finalization
1889
1890
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECFormatBase(DECFormatBase.pas).html b/Unit Tests/CodeCoverage/U/DECFormatBase(DECFormatBase.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECFormatBase(DECFormatBase.pas).html rename to Unit Tests/CodeCoverage/U/DECFormatBase(DECFormatBase.pas).html index 87fb58cc..8b71549d 100644 --- a/Unit Tests/CodeCoverage/DECFormatBase(DECFormatBase.pas).html +++ b/Unit Tests/CodeCoverage/U/DECFormatBase(DECFormatBase.pas).html @@ -1,687 +1,687 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECFormatBase (D:\Projekte\DECGitMaster\Source\DECFormatBase.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECFormatBase.pas

-
Number of lines covered97
Number of lines with code gen114
Line coverage85%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{ *****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
  http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
  ***************************************************************************** }
17
18
/// <summary>
19
/// Contains the base class for all the formatting classes
20
/// </summary>
21
unit DECFormatBase;
22
23
interface
24
25
{$INCLUDE DECOptions.inc}
26
27
uses
28
{$IFDEF FPC}
29
  SysUtils, Classes,
30
{$ELSE}
31
  System.SysUtils, System.Classes, Generics.Collections,
32
{$ENDIF}
33
  DECBaseClass, DECUtil;
34
35
type
36
  /// <summary>
37
  /// Class reference type of the TDECFormat base class. This is used for
38
  /// passing formatting classes as parameters or returning those. This is
39
  /// especially useful for the formatting classes, as they only contain
40
  /// class functions.
41
  /// </summary>
42
  TDECFormatClass = class of TDECFormat;
43
44
  /// <summary>
45
  /// copy input to output (default format)
46
  /// </summary>
47
  TFormat_Copy = class;
48
49
  /// <summary>
50
  /// Basis for all formatting classes. Not to be instantiated directly.
51
  /// </summary>
52
  TDECFormat = class(TDECObject)
53
  protected
54
    /// <summary>
55
    /// Internal method for the actual format conversion. This method needs to
56
    /// be overridden in all the child classes. Converts into the format.
57
    /// </summary>
58
    /// <param name="Source">
59
    /// Data to be converted
60
    /// </param>
61
    /// <param name="Dest">
62
    /// Into this parameter the converted data will be written into.
63
    /// </param>
64
    /// <param name="Size">
65
    /// Number of bytes from source which will get converted.
66
    /// </param>
67
    class procedure DoEncode(const Source; var Dest: TBytes;
68
      Size: Integer); virtual;
69
    /// <summary>
70
    /// Internal method for the actual format conversion. This method needs to
71
    /// be overridden in all the child classes. Converts from the format into
72
    /// the format the data had before encoding it.
73
    /// </summary>
74
    /// <param name="Source">
75
    /// Data to be converted
76
    /// </param>
77
    /// <param name="Dest">
78
    /// Into this parameter the converted data will be written into.
79
    /// </param>
80
    /// <param name="Size">
81
    /// Number of bytes from source which will get converted.
82
    /// </param>
83
    class procedure DoDecode(const Source; var Dest: TBytes;
84
      Size: Integer); virtual;
85
    /// <summary>
86
    /// Internal method for checking whether all bytes of the data to be
87
    /// processed are valid for this particular formatting. This method needs
88
    /// to be overridden in all the child classes.
89
    /// </summary>
90
    /// <param name="Data">
91
    /// Data to be checked
92
    /// </param>
93
    /// <param name="Size">
94
    /// Number of bytes from data which will get checked.
95
    /// </param>
96
    class function DoIsValid(const Data; Size: Integer): Boolean; virtual;
97
  public
98
    /// <summary>
99
    /// List of registered DEC classes. Key is the Identity of the class.
100
    /// </summary>
101
    class var ClassList: TDECClassList;
102
103
    /// <summary>
104
    /// Tries to find a class type by its name in the list of registered
105
    /// formatting classes
106
    /// </summary>
107
    /// <param name="Name">
108
    /// Name to look for in the list
109
    /// </param>
110
    /// <returns>
111
    /// Returns the class type if found. if it could not be found a
112
    /// EDECClassNotRegisteredException will be thrown
113
    /// </returns>
114
    class function ClassByName(const Name: string): TDECFormatClass;
115
116
    /// <summary>
117
    /// Tries to find a class type by its numeric identity DEC assigned to it.
118
    /// Useful for file headers, so they can easily encode numerically which
119
    /// cipher class was being used.
120
    /// </summary>
121
    /// <param name="Identity">
122
    /// Identity to look for
123
    /// </param>
124
    /// <returns>
125
    /// Returns the class type of the class with the specified identity value
126
    /// or throws an EDECClassNotRegisteredException exception if no class
127
    /// with the given identity has been found
128
    /// </returns>
129
    class function ClassByIdentity(Identity: Int64): TDECFormatClass;
130
131
    /// <summary>
132
    /// Calls the internal method which actually does the format conversion.
133
    /// </summary>
134
    /// <param name="Data">
135
    /// Source data to be converted into the format of this class as
136
    /// RawByteString. Empty strings are allowed. They will simply lead to
137
    // empty return arrays as well.
138
    /// </param>
139
    /// <returns>
140
    /// Data in the format of this formatting algorithm as RawByteString
141
    /// </returns>
142
    class function Encode(const Data: RawByteString): RawByteString; overload;
143
144
    /// <summary>
145
    /// Calls the internal method which actually does the format conversion.
146
    /// </summary>
147
    /// <param name="Data">
148
    /// Source data to be converted into the format of this class as untyped
149
    /// parameter. Empty data is allowed. It will simply lead to empty return
150
    // values as well.
151
    /// </param>
152
    /// <param name="Size">
153
    /// Size of the data passed via data in bytes.
154
    /// </param>
155
    /// <returns>
156
    /// Data in the format of this formatting algorithm as RawByteString
157
    /// </returns>
158
    class function Encode(const Data; Size: Integer): RawByteString; overload;
159
160
    /// <summary>
161
    /// Calls the internal method which actually does the format conversion.
162
    /// </summary>
163
    /// <param name="Data">
164
    /// Source data to be converted into the format of this class as Byte Array.
165
    /// Empty arrays of size 0 are allowed. They will simply lead to empty return
166
    // arrays as well.
167
    /// </param>
168
    /// <returns>
169
    /// Data in the format of this formatting algorithm as byte array.
170
    /// </returns>
171
    class function Encode(const Data: TBytes): TBytes; overload;
172
173
    /// <summary>
174
    /// Calls the internal method which actually does the format conversion.
175
    /// </summary>
176
    /// <param name="Data">
177
    /// Source data to be converted from the format of this class as byte array
178
    /// into the original byte representation. Empty arrays of size 0 are allowed.
179
    // They will simply lead to empty return arrays as well.
180
    /// </param>
181
    /// <returns>
182
    /// Data in the original byte format it had before getting encoded with
183
    /// this formatting.
184
    /// </returns>
185
    class function Decode(const Data: TBytes): TBytes; overload;
186
187
    /// <summary>
188
    /// Calls the internal method which actually does the format conversion.
189
    /// </summary>
190
    /// <param name="Data">
191
    /// Source data to be converted from the format of this class as
192
    /// RawByteString into the original representation. Empty strings are allowed.
193
    /// They will simply lead to empty return arrays as well.
194
    /// </param>
195
    /// <returns>
196
    /// Data in the format of this formatting algorithm as RawByteString
197
    /// </returns>
198
    class function Decode(const Data: RawByteString): RawByteString; overload;
199
200
    /// <summary>
201
    /// Calls the internal method which actually does the format conversion.
202
    /// </summary>
203
    /// <param name="Data">
204
    /// Source data to be converted from the format of this class as untyped
205
    /// parameter into the original representation. Empty data is allowed.
206
    /// It will simply lead to empty return values as well.
207
    /// </param>
208
    /// <param name="Size">
209
    /// Size of the data passed via data in bytes.
210
    /// </param>
211
    /// <returns>
212
    /// Data in the format of this formatting algorithm as RawByteString
213
    /// </returns>
214
    class function Decode(const Data; Size: Integer): RawByteString; overload;
215
216
    /// <summary>
217
    /// Checks whether the data passed to this method only contains chars
218
    /// valid for this specific formatting.
219
    /// </summary>
220
    /// <param name="Data">
221
    /// Untyped parameter with the data to be checked
222
    /// </param>
223
    /// <param name="Size">
224
    /// Size of the data to be checked in bytes
225
    /// </param>
226
    /// <returns>
227
    /// true, if the input data contains only characters valid for this format
228
    /// </returns>
229
    class function IsValid(const Data; Size: Integer): Boolean; overload;
230
231
    /// <summary>
232
    /// Checks whether the data passed to this method only contains chars
233
    /// valid for this specific formatting.
234
    /// </summary>
235
    /// <param name="Data">
236
    /// Byte array with the data to be checked
237
    /// </param>
238
    /// <returns>
239
    /// true, if the input data contains only characters valid for this format
240
    /// </returns>
241
    class function IsValid(const Data: TBytes): Boolean; overload;
242
243
    /// <summary>
244
    /// Checks whether the data passed to this method only contains chars
245
    /// valid for this specific formatting.
246
    /// </summary>
247
    /// <param name="Text">
248
    /// RawByteString with the data to be checked
249
    /// </param>
250
    /// <returns>
251
    /// true, if the input data contains only characters valid for this format
252
    /// </returns>
253
    class function IsValid(const Text: RawByteString): Boolean; overload;
254
255
    /// <summary>
256
    /// Converts the ordinal number of an ASCII char given as byte into the
257
    /// ordinal number of the corresponding upper case ASCII char. Works only
258
    /// on a-z and works like the System.Pas variant just on bytes instead of chars
259
    /// </summary>
260
    /// <param name="b">
261
    /// Ordinal ASCII char value to be converted to upper case
262
    /// </param>
263
    /// <returns>
264
    /// Uppercase ordinal number if the number passed in as parameter belongs to
265
    /// a char in the a-z range. Otherwise the number passed in will be returned.
266
    /// </returns>
267
    class function UpCaseBinary(b: Byte): Byte;
268
269
    /// <summary>
270
    /// Looks for the index of a given byte in a byte-array.
271
    /// </summary>
272
    /// <param name="Value">
273
    /// Byte value to be searched in the array
274
    /// </param>
275
    /// <param name="Table">
276
    /// Byte-array where the value is searched in
277
    /// </param>
278
    /// <param name="Len">
279
    /// Maximum index until which the search will be performed. If Len is higher
280
    /// than length(Table) the latter will be used as maximum
281
    /// </param>
282
    /// <returns>
283
    /// Index of the first appearance of the searched value. If it cannot be found
284
    /// the result will be -1. The index is 0 based.
285
    /// </returns>
286
    class function TableFindBinary(Value: Byte; Table: TBytes;
287
      Len: Integer): Integer;
288
  end;
289
290
  /// <summary>
291
  /// Formatting class which doesn't apply any transformation to the data
292
  /// passed in. It simply copies it from Source to Dest.
293
  /// </summary>
294
  TFormat_Copy = class(TDECFormat)
295
  protected
296
    /// <summary>
297
    /// Copies the data contained in Source into Dest without any conversion
298
    /// </summary>
299
    /// <param name="Source">
300
    /// Variable from which Size bytes will be copied to Dest
301
    /// </param>
302
    /// <param name="Dest">
303
    /// Byte-array where Source will be copied into. It will be dimensioned
304
    /// to a length of Size internally.
305
    /// </param>
306
    /// <param name="Size">
307
    /// Number of bytes to copy from Soruce to Dest
308
    /// </param>
309
    class procedure DoEncode(const Source; var Dest: TBytes;
310
      Size: Integer); override;
311
    /// <summary>
312
    /// Copies the data contained in Source into Dest without any conversion
313
    /// </summary>
314
    /// <param name="Source">
315
    /// Variable from which Size bytes will be copied to Dest
316
    /// </param>
317
    /// <param name="Dest">
318
    /// Byte-array where Source will be copied into. It will be dimensioned
319
    /// to a length of Size internally.
320
    /// </param>
321
    /// <param name="Size">
322
    /// Number of bytes to copy from Soruce to Dest
323
    /// </param>
324
    class procedure DoDecode(const Source; var Dest: TBytes;
325
      Size: Integer); override;
326
    /// <summary>
327
    /// Dummy function to check if Source is valid for this particular format
328
    /// </summary>
329
    /// <param name="Data">
330
    /// Data to be checked for validity. In this dummy case it will only be
331
    /// checked for Size >= 0
332
    /// </param>
333
    /// <param name="Size">
334
    /// Number of bytes the Source to be checked contains
335
    /// </param>
336
    /// <returns>
337
    /// true if Size >= 0
338
    /// </returns>
339
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
340
  public
341
  end;
342
343
  /// <summary>
344
  /// Returns the passed class type if it is not nil. Otherwise the class type
345
  /// of the TFormat_Copy class is being returned.
346
  /// </summary>
347
  /// <param name="FormatClass">
348
  /// Class type of a formatting class like TFormat_HEX or nil, if no formatting
349
  /// is desired.
350
  /// </param>
351
  /// <returns>
352
  /// Passed class type or TFormat_Copy class type, depending on FormatClass
353
  /// parameter value.
354
  /// </returns>
355
function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass;
356
357
/// <summary>
358
/// Searches a registered formatting class by name.
359
/// </summary>
360
/// <param name="Name">
361
/// Unique long (TFormat_HEXL) or short (HEXL) name of the class to be searched.
362
/// </param>
363
/// <returns>
364
/// Class type, which can be used to create an object isntance from. Raises an
365
/// EDECClassNotRegisteredException exception if the class cannot be found in
366
/// the list of registered format classes.
367
/// </returns>
368
function FormatByName(const Name: string): TDECFormatClass;
369
370
/// <summary>
371
/// Searches a registered formatting class by identity. The identity is some
372
/// integer value calculated on the basis of the class name, the length of the
373
/// name and a fixed prefix and by calculating a CRC32 checksum of this.
374
/// </summary>
375
/// <param name="Identity">
376
/// Unique identity of the class to be searched.
377
/// </param>
378
/// <returns>
379
/// Class type, which can be used to create an object isntance from. Raises an
380
/// EDECClassNotRegisteredException exception if the class cannot be found in
381
/// the list of registered format classes.
382
/// </returns>
383
function FormatByIdentity(Identity: Int64): TDECFormatClass;
384
385
implementation
386
387
uses
388
  DECTypes;
389
390
function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass;
391
begin
392
  if FormatClass <> nil then
393
    Result := FormatClass
394
  else
395
    Result := TFormat_Copy;
396
end;
397
398
function FormatByName(const Name: string): TDECFormatClass;
399
begin
400
  Result := TDECFormatClass(TDECFormat.ClassList.ClassByName(Name));
401
end;
402
403
function FormatByIdentity(Identity: Int64): TDECFormatClass;
404
begin
405
  Result := TDECFormatClass(TDECFormat.ClassList.ClassByIdentity(Identity));
406
end;
407
408
{ TDECFormat }
409
410
class procedure TDECFormat.DoEncode(const Source; var Dest: TBytes;
411
  Size: Integer);
412
begin
413
  // C++ does not support virtual static functions thus the base cannot be
414
  // marked 'abstract'. This is our workaround:
415
  raise EDECAbstractError.Create(GetShortClassName);
416
end;
417
418
class procedure TDECFormat.DoDecode(const Source; var Dest: TBytes;
419
  Size: Integer);
420
begin
421
  // C++ does not support virtual static functions thus the base cannot be
422
  // marked 'abstract'. This is our workaround:
423
  raise EDECAbstractError.Create(GetShortClassName);
424
end;
425
426
class function TDECFormat.DoIsValid(const Data; Size: Integer): Boolean;
427
begin
428
{$IFDEF FPC}
429
  Result := False; // suppress FPC compiler warning
430
{$ENDIF FPC}
431
  // C++ does not support virtual static functions thus the base cannot be
432
  // marked 'abstract'. This is our workaround:
433
  raise EDECAbstractError.Create(GetShortClassName);
434
end;
435
436
class function TDECFormat.Encode(const Data: RawByteString): RawByteString;
437
var
438
  b: TBytes;
439
begin
440
  if Length(Data) > 0 then
441
  begin
442
    {$IF CompilerVersion >= 24.0}
443
    DoEncode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)]));
444
    {$ELSE}
445
    DoEncode(Data[1], b, Length(Data) * SizeOf(Data[1]));
446
    {$IFEND}
447
    Result := BytesToRawString(b);
448
  end
449
  else
450
    SetLength(Result, 0);
451
end;
452
453
class function TDECFormat.Encode(const Data: TBytes): TBytes;
454
var
455
  b: TBytes;
456
begin
457
  if Length(Data) > 0 then
458
  begin
459
    DoEncode(Data[0], b, Length(Data));
460
    Result := b;
461
  end
462
  else
463
    SetLength(Result, 0);
464
end;
465
466
class function TDECFormat.ClassByIdentity(Identity: Int64): TDECFormatClass;
467
begin
468
  Result := TDECFormatClass(ClassList.ClassByIdentity(Identity));
469
end;
470
471
class function TDECFormat.ClassByName(const Name: string): TDECFormatClass;
472
begin
473
  Result := TDECFormatClass(ClassList.ClassByName(Name));
474
end;
475
476
class function TDECFormat.Decode(const Data: TBytes): TBytes;
477
var
478
  b: TBytes;
479
begin
480
  if Length(Data) > 0 then
481
  begin
482
    DoDecode(Data[0], b, Length(Data));
483
    Result := b;
484
  end
485
  else
486
    SetLength(Result, 0);
487
end;
488
489
class function TDECFormat.Decode(const Data: RawByteString): RawByteString;
490
var
491
  b: TBytes;
492
begin
493
  if Length(Data) > 0 then
494
  begin
495
    {$IF CompilerVersion >= 24.0}
496
    DoDecode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)]));
497
    {$ELSE}
498
    DoDecode(Data[1], b, Length(Data) * SizeOf(Data[1]));
499
    {$IFEND}
500
    Result := BytesToRawString(b);
501
  end
502
  else
503
    SetLength(Result, 0);
504
end;
505
506
class function TDECFormat.Decode(const Data; Size: Integer): RawByteString;
507
var
508
  b: TBytes;
509
begin
510
  if Size > 0 then
511
  begin
512
    DoDecode(Data, b, Size);
513
    Result := BytesToRawString(b);
514
  end
515
  else
516
    SetLength(Result, 0);
517
end;
518
519
class function TDECFormat.Encode(const Data; Size: Integer): RawByteString;
520
var
521
  b: TBytes;
522
begin
523
  if Size > 0 then
524
  begin
525
    DoEncode(Data, b, Size);
526
    Result := BytesToRawString(b);
527
  end
528
  else
529
    SetLength(Result, 0);
530
end;
531
532
class function TDECFormat.IsValid(const Data; Size: Integer): Boolean;
533
begin
534
  Result := DoIsValid(Data, Size);
535
end;
536
537
class function TDECFormat.IsValid(const Data: TBytes): Boolean;
538
begin
539
  Result := (Length(Data) = 0) or (DoIsValid(Data[0], Length(Data)));
540
end;
541
542
class function TDECFormat.IsValid(const Text: RawByteString): Boolean;
543
begin
544
  {$IF CompilerVersion >= 24.0}
545
  Result := (Length(Text) = 0) or
546
    (DoIsValid(Text[Low(Text)], Length(Text) * SizeOf(Text[Low(Text)])));
547
  {$ELSE}
548
  Result := (Length(Text) = 0) or
549
    (DoIsValid(Text[1], Length(Text) * SizeOf(Text[1])));
550
  {$IFEND}
551
end;
552
553
class function TDECFormat.UpCaseBinary(b: Byte): Byte;
554
begin
555
  Result := b;
556
  if Result in [$61 .. $7A] then
557
    Dec(Result, $61 - $41);
558
end;
559
560
class function TDECFormat.TableFindBinary(Value: Byte; Table: TBytes;
561
  Len: Integer): Integer;
562
var
563
  i: Integer;
564
begin
565
  Result := -1;
566
  i := 0;
567
  while (i <= Len) and (i < Length(Table)) do
568
  begin
569
    if (Table[i] = Value) then
570
    begin
571
      Result := i;
572
      break;
573
    end;
574
575
    inc(i);
576
  end;
577
end;
578
579
{ TFormat_Copy }
580
581
class procedure TFormat_Copy.DoEncode(const Source; var Dest: TBytes;
582
  Size: Integer);
583
begin
584
  SetLength(Dest, Size);
585
  if Size <> 0 then
586
    Move(Source, Dest[0], Size);
587
end;
588
589
class procedure TFormat_Copy.DoDecode(const Source; var Dest: TBytes;
590
  Size: Integer);
591
begin
592
  SetLength(Dest, Size);
593
  if Size <> 0 then
594
    Move(Source, Dest[0], Size);
595
end;
596
597
class function TFormat_Copy.DoIsValid(const Data; Size: Integer): Boolean;
598
begin
599
  Result := Size >= 0;
600
end;
601
602
{$IFDEF DELPHIORBCB}
603
procedure ModuleUnload(Instance: NativeUInt);
604
var // automaticaly deregistration/releasing
605
  i: Integer;
606
  Items: TArray<TPair<Int64, TDECCLass>>;
607
begin
608
  // C++Builder calls this function for our own module, but we destroy the ClassList
609
  // in that case in the finalization section anyway.
610
  if (Instance <> HInstance) and
611
     (TDECFormat.ClassList <> nil) and (TDECFormat.ClassList.Count > 0) then
612
  begin
613
    Items := TDECFormat.ClassList.ToArray;
614
    for i := Length(Items) - 1 downto 0 do
615
    begin
616
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
617
        TDECFormat.ClassList.Remove(Items[i].Key);
618
    end;
619
  end;
620
end;
621
{$ENDIF DELPHIORBCB}
622
623
initialization
624
625
  // Code for packages and dynamic extension of the class registration list
626
  {$IFDEF DELPHIORBCB}
627
    AddModuleUnloadProc(ModuleUnload);
628
  {$ENDIF DELPHIORBCB}
629
  TDECFormat.ClassList := TDECClassList.Create;
630
631
  TFormat_Copy.RegisterClass(TDECFormat.ClassList);
632
633
finalization
634
635
{$IFNDEF BCB}
636
  // Ensure no further instances of classes registered in the registration list
637
  // are possible through the list after this unit has been unloaded by unloding
638
  // the package this unit is in
639
  {$IFDEF DELPHIORBCB}
640
    RemoveModuleUnloadProc(ModuleUnload);
641
  {$ENDIF DELPHIORBCB}
642
{$ENDIF}
643
644
  TDECFormat.ClassList.Free;
645
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECFormatBase (D:\Projekte\DECGitMaster\Source\DECFormatBase.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECFormatBase.pas

+
Number of lines covered97
Number of lines with code gen114
Line coverage85%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{ *****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
  http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
  ***************************************************************************** }
17
18
/// <summary>
19
/// Contains the base class for all the formatting classes
20
/// </summary>
21
unit DECFormatBase;
22
23
interface
24
25
{$INCLUDE DECOptions.inc}
26
27
uses
28
{$IFDEF FPC}
29
  SysUtils, Classes,
30
{$ELSE}
31
  System.SysUtils, System.Classes, Generics.Collections,
32
{$ENDIF}
33
  DECBaseClass, DECUtil;
34
35
type
36
  /// <summary>
37
  /// Class reference type of the TDECFormat base class. This is used for
38
  /// passing formatting classes as parameters or returning those. This is
39
  /// especially useful for the formatting classes, as they only contain
40
  /// class functions.
41
  /// </summary>
42
  TDECFormatClass = class of TDECFormat;
43
44
  /// <summary>
45
  /// copy input to output (default format)
46
  /// </summary>
47
  TFormat_Copy = class;
48
49
  /// <summary>
50
  /// Basis for all formatting classes. Not to be instantiated directly.
51
  /// </summary>
52
  TDECFormat = class(TDECObject)
53
  protected
54
    /// <summary>
55
    /// Internal method for the actual format conversion. This method needs to
56
    /// be overridden in all the child classes. Converts into the format.
57
    /// </summary>
58
    /// <param name="Source">
59
    /// Data to be converted
60
    /// </param>
61
    /// <param name="Dest">
62
    /// Into this parameter the converted data will be written into.
63
    /// </param>
64
    /// <param name="Size">
65
    /// Number of bytes from source which will get converted.
66
    /// </param>
67
    class procedure DoEncode(const Source; var Dest: TBytes;
68
      Size: Integer); virtual;
69
    /// <summary>
70
    /// Internal method for the actual format conversion. This method needs to
71
    /// be overridden in all the child classes. Converts from the format into
72
    /// the format the data had before encoding it.
73
    /// </summary>
74
    /// <param name="Source">
75
    /// Data to be converted
76
    /// </param>
77
    /// <param name="Dest">
78
    /// Into this parameter the converted data will be written into.
79
    /// </param>
80
    /// <param name="Size">
81
    /// Number of bytes from source which will get converted.
82
    /// </param>
83
    class procedure DoDecode(const Source; var Dest: TBytes;
84
      Size: Integer); virtual;
85
    /// <summary>
86
    /// Internal method for checking whether all bytes of the data to be
87
    /// processed are valid for this particular formatting. This method needs
88
    /// to be overridden in all the child classes.
89
    /// </summary>
90
    /// <param name="Data">
91
    /// Data to be checked
92
    /// </param>
93
    /// <param name="Size">
94
    /// Number of bytes from data which will get checked.
95
    /// </param>
96
    class function DoIsValid(const Data; Size: Integer): Boolean; virtual;
97
  public
98
    /// <summary>
99
    /// List of registered DEC classes. Key is the Identity of the class.
100
    /// </summary>
101
    class var ClassList: TDECClassList;
102
103
    /// <summary>
104
    /// Tries to find a class type by its name in the list of registered
105
    /// formatting classes
106
    /// </summary>
107
    /// <param name="Name">
108
    /// Name to look for in the list
109
    /// </param>
110
    /// <returns>
111
    /// Returns the class type if found. if it could not be found a
112
    /// EDECClassNotRegisteredException will be thrown
113
    /// </returns>
114
    class function ClassByName(const Name: string): TDECFormatClass;
115
116
    /// <summary>
117
    /// Tries to find a class type by its numeric identity DEC assigned to it.
118
    /// Useful for file headers, so they can easily encode numerically which
119
    /// cipher class was being used.
120
    /// </summary>
121
    /// <param name="Identity">
122
    /// Identity to look for
123
    /// </param>
124
    /// <returns>
125
    /// Returns the class type of the class with the specified identity value
126
    /// or throws an EDECClassNotRegisteredException exception if no class
127
    /// with the given identity has been found
128
    /// </returns>
129
    class function ClassByIdentity(Identity: Int64): TDECFormatClass;
130
131
    /// <summary>
132
    /// Calls the internal method which actually does the format conversion.
133
    /// </summary>
134
    /// <param name="Data">
135
    /// Source data to be converted into the format of this class as
136
    /// RawByteString. Empty strings are allowed. They will simply lead to
137
    // empty return arrays as well.
138
    /// </param>
139
    /// <returns>
140
    /// Data in the format of this formatting algorithm as RawByteString
141
    /// </returns>
142
    class function Encode(const Data: RawByteString): RawByteString; overload;
143
144
    /// <summary>
145
    /// Calls the internal method which actually does the format conversion.
146
    /// </summary>
147
    /// <param name="Data">
148
    /// Source data to be converted into the format of this class as untyped
149
    /// parameter. Empty data is allowed. It will simply lead to empty return
150
    // values as well.
151
    /// </param>
152
    /// <param name="Size">
153
    /// Size of the data passed via data in bytes.
154
    /// </param>
155
    /// <returns>
156
    /// Data in the format of this formatting algorithm as RawByteString
157
    /// </returns>
158
    class function Encode(const Data; Size: Integer): RawByteString; overload;
159
160
    /// <summary>
161
    /// Calls the internal method which actually does the format conversion.
162
    /// </summary>
163
    /// <param name="Data">
164
    /// Source data to be converted into the format of this class as Byte Array.
165
    /// Empty arrays of size 0 are allowed. They will simply lead to empty return
166
    // arrays as well.
167
    /// </param>
168
    /// <returns>
169
    /// Data in the format of this formatting algorithm as byte array.
170
    /// </returns>
171
    class function Encode(const Data: TBytes): TBytes; overload;
172
173
    /// <summary>
174
    /// Calls the internal method which actually does the format conversion.
175
    /// </summary>
176
    /// <param name="Data">
177
    /// Source data to be converted from the format of this class as byte array
178
    /// into the original byte representation. Empty arrays of size 0 are allowed.
179
    // They will simply lead to empty return arrays as well.
180
    /// </param>
181
    /// <returns>
182
    /// Data in the original byte format it had before getting encoded with
183
    /// this formatting.
184
    /// </returns>
185
    class function Decode(const Data: TBytes): TBytes; overload;
186
187
    /// <summary>
188
    /// Calls the internal method which actually does the format conversion.
189
    /// </summary>
190
    /// <param name="Data">
191
    /// Source data to be converted from the format of this class as
192
    /// RawByteString into the original representation. Empty strings are allowed.
193
    /// They will simply lead to empty return arrays as well.
194
    /// </param>
195
    /// <returns>
196
    /// Data in the format of this formatting algorithm as RawByteString
197
    /// </returns>
198
    class function Decode(const Data: RawByteString): RawByteString; overload;
199
200
    /// <summary>
201
    /// Calls the internal method which actually does the format conversion.
202
    /// </summary>
203
    /// <param name="Data">
204
    /// Source data to be converted from the format of this class as untyped
205
    /// parameter into the original representation. Empty data is allowed.
206
    /// It will simply lead to empty return values as well.
207
    /// </param>
208
    /// <param name="Size">
209
    /// Size of the data passed via data in bytes.
210
    /// </param>
211
    /// <returns>
212
    /// Data in the format of this formatting algorithm as RawByteString
213
    /// </returns>
214
    class function Decode(const Data; Size: Integer): RawByteString; overload;
215
216
    /// <summary>
217
    /// Checks whether the data passed to this method only contains chars
218
    /// valid for this specific formatting.
219
    /// </summary>
220
    /// <param name="Data">
221
    /// Untyped parameter with the data to be checked
222
    /// </param>
223
    /// <param name="Size">
224
    /// Size of the data to be checked in bytes
225
    /// </param>
226
    /// <returns>
227
    /// true, if the input data contains only characters valid for this format
228
    /// </returns>
229
    class function IsValid(const Data; Size: Integer): Boolean; overload;
230
231
    /// <summary>
232
    /// Checks whether the data passed to this method only contains chars
233
    /// valid for this specific formatting.
234
    /// </summary>
235
    /// <param name="Data">
236
    /// Byte array with the data to be checked
237
    /// </param>
238
    /// <returns>
239
    /// true, if the input data contains only characters valid for this format
240
    /// </returns>
241
    class function IsValid(const Data: TBytes): Boolean; overload;
242
243
    /// <summary>
244
    /// Checks whether the data passed to this method only contains chars
245
    /// valid for this specific formatting.
246
    /// </summary>
247
    /// <param name="Text">
248
    /// RawByteString with the data to be checked
249
    /// </param>
250
    /// <returns>
251
    /// true, if the input data contains only characters valid for this format
252
    /// </returns>
253
    class function IsValid(const Text: RawByteString): Boolean; overload;
254
255
    /// <summary>
256
    /// Converts the ordinal number of an ASCII char given as byte into the
257
    /// ordinal number of the corresponding upper case ASCII char. Works only
258
    /// on a-z and works like the System.Pas variant just on bytes instead of chars
259
    /// </summary>
260
    /// <param name="b">
261
    /// Ordinal ASCII char value to be converted to upper case
262
    /// </param>
263
    /// <returns>
264
    /// Uppercase ordinal number if the number passed in as parameter belongs to
265
    /// a char in the a-z range. Otherwise the number passed in will be returned.
266
    /// </returns>
267
    class function UpCaseBinary(b: Byte): Byte;
268
269
    /// <summary>
270
    /// Looks for the index of a given byte in a byte-array.
271
    /// </summary>
272
    /// <param name="Value">
273
    /// Byte value to be searched in the array
274
    /// </param>
275
    /// <param name="Table">
276
    /// Byte-array where the value is searched in
277
    /// </param>
278
    /// <param name="Len">
279
    /// Maximum index until which the search will be performed. If Len is higher
280
    /// than length(Table) the latter will be used as maximum
281
    /// </param>
282
    /// <returns>
283
    /// Index of the first appearance of the searched value. If it cannot be found
284
    /// the result will be -1. The index is 0 based.
285
    /// </returns>
286
    class function TableFindBinary(Value: Byte; Table: TBytes;
287
      Len: Integer): Integer;
288
  end;
289
290
  /// <summary>
291
  /// Formatting class which doesn't apply any transformation to the data
292
  /// passed in. It simply copies it from Source to Dest.
293
  /// </summary>
294
  TFormat_Copy = class(TDECFormat)
295
  protected
296
    /// <summary>
297
    /// Copies the data contained in Source into Dest without any conversion
298
    /// </summary>
299
    /// <param name="Source">
300
    /// Variable from which Size bytes will be copied to Dest
301
    /// </param>
302
    /// <param name="Dest">
303
    /// Byte-array where Source will be copied into. It will be dimensioned
304
    /// to a length of Size internally.
305
    /// </param>
306
    /// <param name="Size">
307
    /// Number of bytes to copy from Soruce to Dest
308
    /// </param>
309
    class procedure DoEncode(const Source; var Dest: TBytes;
310
      Size: Integer); override;
311
    /// <summary>
312
    /// Copies the data contained in Source into Dest without any conversion
313
    /// </summary>
314
    /// <param name="Source">
315
    /// Variable from which Size bytes will be copied to Dest
316
    /// </param>
317
    /// <param name="Dest">
318
    /// Byte-array where Source will be copied into. It will be dimensioned
319
    /// to a length of Size internally.
320
    /// </param>
321
    /// <param name="Size">
322
    /// Number of bytes to copy from Soruce to Dest
323
    /// </param>
324
    class procedure DoDecode(const Source; var Dest: TBytes;
325
      Size: Integer); override;
326
    /// <summary>
327
    /// Dummy function to check if Source is valid for this particular format
328
    /// </summary>
329
    /// <param name="Data">
330
    /// Data to be checked for validity. In this dummy case it will only be
331
    /// checked for Size >= 0
332
    /// </param>
333
    /// <param name="Size">
334
    /// Number of bytes the Source to be checked contains
335
    /// </param>
336
    /// <returns>
337
    /// true if Size >= 0
338
    /// </returns>
339
    class function DoIsValid(const Data; Size: Integer): Boolean; override;
340
  public
341
  end;
342
343
  /// <summary>
344
  /// Returns the passed class type if it is not nil. Otherwise the class type
345
  /// of the TFormat_Copy class is being returned.
346
  /// </summary>
347
  /// <param name="FormatClass">
348
  /// Class type of a formatting class like TFormat_HEX or nil, if no formatting
349
  /// is desired.
350
  /// </param>
351
  /// <returns>
352
  /// Passed class type or TFormat_Copy class type, depending on FormatClass
353
  /// parameter value.
354
  /// </returns>
355
function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass;
356
357
/// <summary>
358
/// Searches a registered formatting class by name.
359
/// </summary>
360
/// <param name="Name">
361
/// Unique long (TFormat_HEXL) or short (HEXL) name of the class to be searched.
362
/// </param>
363
/// <returns>
364
/// Class type, which can be used to create an object isntance from. Raises an
365
/// EDECClassNotRegisteredException exception if the class cannot be found in
366
/// the list of registered format classes.
367
/// </returns>
368
function FormatByName(const Name: string): TDECFormatClass;
369
370
/// <summary>
371
/// Searches a registered formatting class by identity. The identity is some
372
/// integer value calculated on the basis of the class name, the length of the
373
/// name and a fixed prefix and by calculating a CRC32 checksum of this.
374
/// </summary>
375
/// <param name="Identity">
376
/// Unique identity of the class to be searched.
377
/// </param>
378
/// <returns>
379
/// Class type, which can be used to create an object isntance from. Raises an
380
/// EDECClassNotRegisteredException exception if the class cannot be found in
381
/// the list of registered format classes.
382
/// </returns>
383
function FormatByIdentity(Identity: Int64): TDECFormatClass;
384
385
implementation
386
387
uses
388
  DECTypes;
389
390
function ValidFormat(FormatClass: TDECFormatClass = nil): TDECFormatClass;
391
begin
392
  if FormatClass <> nil then
393
    Result := FormatClass
394
  else
395
    Result := TFormat_Copy;
396
end;
397
398
function FormatByName(const Name: string): TDECFormatClass;
399
begin
400
  Result := TDECFormatClass(TDECFormat.ClassList.ClassByName(Name));
401
end;
402
403
function FormatByIdentity(Identity: Int64): TDECFormatClass;
404
begin
405
  Result := TDECFormatClass(TDECFormat.ClassList.ClassByIdentity(Identity));
406
end;
407
408
{ TDECFormat }
409
410
class procedure TDECFormat.DoEncode(const Source; var Dest: TBytes;
411
  Size: Integer);
412
begin
413
  // C++ does not support virtual static functions thus the base cannot be
414
  // marked 'abstract'. This is our workaround:
415
  raise EDECAbstractError.Create(GetShortClassName);
416
end;
417
418
class procedure TDECFormat.DoDecode(const Source; var Dest: TBytes;
419
  Size: Integer);
420
begin
421
  // C++ does not support virtual static functions thus the base cannot be
422
  // marked 'abstract'. This is our workaround:
423
  raise EDECAbstractError.Create(GetShortClassName);
424
end;
425
426
class function TDECFormat.DoIsValid(const Data; Size: Integer): Boolean;
427
begin
428
{$IFDEF FPC}
429
  Result := False; // suppress FPC compiler warning
430
{$ENDIF FPC}
431
  // C++ does not support virtual static functions thus the base cannot be
432
  // marked 'abstract'. This is our workaround:
433
  raise EDECAbstractError.Create(GetShortClassName);
434
end;
435
436
class function TDECFormat.Encode(const Data: RawByteString): RawByteString;
437
var
438
  b: TBytes;
439
begin
440
  if Length(Data) > 0 then
441
  begin
442
    {$IF CompilerVersion >= 24.0}
443
    DoEncode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)]));
444
    {$ELSE}
445
    DoEncode(Data[1], b, Length(Data) * SizeOf(Data[1]));
446
    {$IFEND}
447
    Result := BytesToRawString(b);
448
  end
449
  else
450
    SetLength(Result, 0);
451
end;
452
453
class function TDECFormat.Encode(const Data: TBytes): TBytes;
454
var
455
  b: TBytes;
456
begin
457
  if Length(Data) > 0 then
458
  begin
459
    DoEncode(Data[0], b, Length(Data));
460
    Result := b;
461
  end
462
  else
463
    SetLength(Result, 0);
464
end;
465
466
class function TDECFormat.ClassByIdentity(Identity: Int64): TDECFormatClass;
467
begin
468
  Result := TDECFormatClass(ClassList.ClassByIdentity(Identity));
469
end;
470
471
class function TDECFormat.ClassByName(const Name: string): TDECFormatClass;
472
begin
473
  Result := TDECFormatClass(ClassList.ClassByName(Name));
474
end;
475
476
class function TDECFormat.Decode(const Data: TBytes): TBytes;
477
var
478
  b: TBytes;
479
begin
480
  if Length(Data) > 0 then
481
  begin
482
    DoDecode(Data[0], b, Length(Data));
483
    Result := b;
484
  end
485
  else
486
    SetLength(Result, 0);
487
end;
488
489
class function TDECFormat.Decode(const Data: RawByteString): RawByteString;
490
var
491
  b: TBytes;
492
begin
493
  if Length(Data) > 0 then
494
  begin
495
    {$IF CompilerVersion >= 24.0}
496
    DoDecode(Data[Low(Data)], b, Length(Data) * SizeOf(Data[Low(Data)]));
497
    {$ELSE}
498
    DoDecode(Data[1], b, Length(Data) * SizeOf(Data[1]));
499
    {$IFEND}
500
    Result := BytesToRawString(b);
501
  end
502
  else
503
    SetLength(Result, 0);
504
end;
505
506
class function TDECFormat.Decode(const Data; Size: Integer): RawByteString;
507
var
508
  b: TBytes;
509
begin
510
  if Size > 0 then
511
  begin
512
    DoDecode(Data, b, Size);
513
    Result := BytesToRawString(b);
514
  end
515
  else
516
    SetLength(Result, 0);
517
end;
518
519
class function TDECFormat.Encode(const Data; Size: Integer): RawByteString;
520
var
521
  b: TBytes;
522
begin
523
  if Size > 0 then
524
  begin
525
    DoEncode(Data, b, Size);
526
    Result := BytesToRawString(b);
527
  end
528
  else
529
    SetLength(Result, 0);
530
end;
531
532
class function TDECFormat.IsValid(const Data; Size: Integer): Boolean;
533
begin
534
  Result := DoIsValid(Data, Size);
535
end;
536
537
class function TDECFormat.IsValid(const Data: TBytes): Boolean;
538
begin
539
  Result := (Length(Data) = 0) or (DoIsValid(Data[0], Length(Data)));
540
end;
541
542
class function TDECFormat.IsValid(const Text: RawByteString): Boolean;
543
begin
544
  {$IF CompilerVersion >= 24.0}
545
  Result := (Length(Text) = 0) or
546
    (DoIsValid(Text[Low(Text)], Length(Text) * SizeOf(Text[Low(Text)])));
547
  {$ELSE}
548
  Result := (Length(Text) = 0) or
549
    (DoIsValid(Text[1], Length(Text) * SizeOf(Text[1])));
550
  {$IFEND}
551
end;
552
553
class function TDECFormat.UpCaseBinary(b: Byte): Byte;
554
begin
555
  Result := b;
556
  if Result in [$61 .. $7A] then
557
    Dec(Result, $61 - $41);
558
end;
559
560
class function TDECFormat.TableFindBinary(Value: Byte; Table: TBytes;
561
  Len: Integer): Integer;
562
var
563
  i: Integer;
564
begin
565
  Result := -1;
566
  i := 0;
567
  while (i <= Len) and (i < Length(Table)) do
568
  begin
569
    if (Table[i] = Value) then
570
    begin
571
      Result := i;
572
      break;
573
    end;
574
575
    inc(i);
576
  end;
577
end;
578
579
{ TFormat_Copy }
580
581
class procedure TFormat_Copy.DoEncode(const Source; var Dest: TBytes;
582
  Size: Integer);
583
begin
584
  SetLength(Dest, Size);
585
  if Size <> 0 then
586
    Move(Source, Dest[0], Size);
587
end;
588
589
class procedure TFormat_Copy.DoDecode(const Source; var Dest: TBytes;
590
  Size: Integer);
591
begin
592
  SetLength(Dest, Size);
593
  if Size <> 0 then
594
    Move(Source, Dest[0], Size);
595
end;
596
597
class function TFormat_Copy.DoIsValid(const Data; Size: Integer): Boolean;
598
begin
599
  Result := Size >= 0;
600
end;
601
602
{$IFDEF DELPHIORBCB}
603
procedure ModuleUnload(Instance: NativeUInt);
604
var // automaticaly deregistration/releasing
605
  i: Integer;
606
  Items: TArray<TPair<Int64, TDECCLass>>;
607
begin
608
  // C++Builder calls this function for our own module, but we destroy the ClassList
609
  // in that case in the finalization section anyway.
610
  if (Instance <> HInstance) and
611
     (TDECFormat.ClassList <> nil) and (TDECFormat.ClassList.Count > 0) then
612
  begin
613
    Items := TDECFormat.ClassList.ToArray;
614
    for i := Length(Items) - 1 downto 0 do
615
    begin
616
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
617
        TDECFormat.ClassList.Remove(Items[i].Key);
618
    end;
619
  end;
620
end;
621
{$ENDIF DELPHIORBCB}
622
623
initialization
624
625
  // Code for packages and dynamic extension of the class registration list
626
  {$IFDEF DELPHIORBCB}
627
    AddModuleUnloadProc(ModuleUnload);
628
  {$ENDIF DELPHIORBCB}
629
  TDECFormat.ClassList := TDECClassList.Create;
630
631
  TFormat_Copy.RegisterClass(TDECFormat.ClassList);
632
633
finalization
634
635
{$IFNDEF BCB}
636
  // Ensure no further instances of classes registered in the registration list
637
  // are possible through the list after this unit has been unloaded by unloding
638
  // the package this unit is in
639
  {$IFDEF DELPHIORBCB}
640
    RemoveModuleUnloadProc(ModuleUnload);
641
  {$ENDIF DELPHIORBCB}
642
{$ENDIF}
643
644
  TDECFormat.ClassList.Free;
645
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECHash(DECHash.asm86.inc).html b/Unit Tests/CodeCoverage/U/DECHash(DECHash.asm86.inc).html similarity index 99% rename from Unit Tests/CodeCoverage/DECHash(DECHash.asm86.inc).html rename to Unit Tests/CodeCoverage/U/DECHash(DECHash.asm86.inc).html index 2752b56a..aabd044f 100644 --- a/Unit Tests/CodeCoverage/DECHash(DECHash.asm86.inc).html +++ b/Unit Tests/CodeCoverage/U/DECHash(DECHash.asm86.inc).html @@ -1,29571 +1,29571 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.asm86.inc).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.asm86.inc

-
Number of lines covered28308
Number of lines with code gen28308
Line coverage100%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{
19
  x86 Assembler optimized hash functions
20
}
21
22
{$IFDEF INCLUDED}
23
24
{$IFDEF THash_MD2_asm}
25
procedure THash_MD2.DoTransform(Buffer: PUInt32Array);
26
asm
27
                push    ebx
28
                push    esi
29
                push    edi
30
                push    ebp
31
32
                lea  esi, [eax].THash_MD2.FDigest
33
34
                // copying incoming buffer into work buffer
35
                mov  eax, [edx]
36
                mov  ecx, [edx + 4]
37
                mov  ebx, [edx + 8]
38
                mov  edi, [edx + 12]
39
                mov  [esi + 16], eax
40
                mov  [esi + 16 + 4], ecx
41
                mov  [esi + 16 + 8], ebx
42
                mov  [esi + 16 + 12], edi
43
44
                // recalculating message checksum
45
                //  loop unrolled to 4 iterations,
46
                // combined with
47
                //  xor first 16 bytes with second 16 and move res to third
48
                mov   ecx, dword ptr [esi + 60]
49
                mov   edi, -16
50
                shr   ecx, 24
51
52
            @checksumloop:
53
54
                mov  edx, dword ptr [esi + edi + 16]       // digest
55
                mov  ebp, dword ptr [esi + edi + 16 + 16]  // source data
56
                mov  ebx, dword ptr [esi + edi + 16 + 48]  // checksum
57
58
                xor  ecx, ebp
59
                xor  edx, ebp
60
                and  ecx, 0ffh
61
                xor  eax, eax
62
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
63
                shr  ebp, 8
64
                xor  ecx, ebx
65
                mov  dword ptr [esi + edi + 16 + 32], edx
66
                and  ecx, 0ffh
67
                shr  ebx, 8
68
                or   eax, ecx
69
                shl  eax, 24
70
71
                xor  ecx, ebp
72
                and  ecx, 0ffh
73
                shr  ebp, 8
74
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
75
                xor  ecx, ebx
76
                and  ecx, 0ffh
77
                shr  ebx, 8
78
                or   eax, ecx
79
                ror  eax, 8
80
81
                xor  ecx, ebp
82
                and  ecx, 0ffh
83
                shr  ebp, 8
84
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
85
                xor  ecx, ebx
86
                and  ecx, 0ffh
87
                shr  ebx, 8
88
                or   eax, ecx
89
                ror  eax, 8
90
91
                xor  ecx, ebp
92
                and  ecx, 0ffh
93
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
94
                xor  ecx, ebx
95
                or   eax, ecx
96
                ror  eax, 8
97
98
                mov  dword ptr [esi + edi + 16 + 48], eax
99
100
                add  edi, 4
101
                jnz  @checksumloop
102
103
                // do 18 rounds of transformation
104
                //  internal loop unrolled
105
106
                lea  edi, MD2_PiSubst  // MD2 permutation array pointer
107
                xor  ecx, ecx       // T variable
108
                xor  ebp, ebp       // external 18 rounds loop
109
                mov  ebx, 0ffh      // mask constant
110
111
            @roundsloop:
112
113
                // part 1
114
                mov  edx, dword ptr [esi]
115
                mov  ecx, dword ptr [edi + ecx*4]
116
                xor  eax, eax
117
                xor  ecx, edx
118
                shr  edx, 8
119
                and  ecx, ebx
120
                or   eax, ecx
121
122
                mov  ecx, dword ptr [edi + ecx*4]
123
                shl  eax, 24
124
                xor  ecx, edx
125
                shr  edx, 8
126
                and  ecx, ebx
127
                or   eax, ecx
128
129
                mov  ecx, dword ptr [edi + ecx*4]
130
                ror  eax, 8
131
                xor  ecx, edx
132
                shr  edx, 8
133
                and  ecx, ebx
134
                or   eax, ecx
135
136
                mov  ecx, dword ptr [edi + ecx*4]
137
                ror  eax, 8
138
                xor  ecx, edx
139
                or   eax, ecx
140
                ror  eax, 8
141
                mov  dword ptr [esi], eax
142
143
                // part 2
144
                mov  edx, dword ptr [esi + 4]
145
                mov  ecx, dword ptr [edi + ecx*4]
146
                xor  eax, eax
147
                xor  ecx, edx
148
                shr  edx, 8
149
                and  ecx, ebx
150
                or   eax, ecx
151
152
                mov  ecx, dword ptr [edi + ecx*4]
153
                shl  eax, 24
154
                xor  ecx, edx
155
                shr  edx, 8
156
                and  ecx, ebx
157
                or   eax, ecx
158
159
                mov  ecx, dword ptr [edi + ecx*4]
160
                ror  eax, 8
161
                xor  ecx, edx
162
                shr  edx, 8
163
                and  ecx, ebx
164
                or   eax, ecx
165
166
                mov  ecx, dword ptr [edi + ecx*4]
167
                ror  eax, 8
168
                xor  ecx, edx
169
                or   eax, ecx
170
                ror  eax, 8
171
                mov  dword ptr [esi + 4], eax
172
173
                // part 3
174
                mov  edx, dword ptr [esi + 8]
175
                mov  ecx, dword ptr [edi + ecx*4]
176
                xor  eax, eax
177
                xor  ecx, edx
178
                shr  edx, 8
179
                and  ecx, ebx
180
                or   eax, ecx
181
182
                mov  ecx, dword ptr [edi + ecx*4]
183
                shl  eax, 24
184
                xor  ecx, edx
185
                shr  edx, 8
186
                and  ecx, ebx
187
                or   eax, ecx
188
189
                mov  ecx, dword ptr [edi + ecx*4]
190
                ror  eax, 8
191
                xor  ecx, edx
192
                shr  edx, 8
193
                and  ecx, ebx
194
                or   eax, ecx
195
196
                mov  ecx, dword ptr [edi + ecx*4]
197
                ror  eax, 8
198
                xor  ecx, edx
199
                or   eax, ecx
200
                ror  eax, 8
201
                mov  dword ptr [esi + 8], eax
202
203
                // part 4
204
                mov  edx, dword ptr [esi + 12]
205
                mov  ecx, dword ptr [edi + ecx*4]
206
                xor  eax, eax
207
                xor  ecx, edx
208
                shr  edx, 8
209
                and  ecx, ebx
210
                or   eax, ecx
211
212
                mov  ecx, dword ptr [edi + ecx*4]
213
                shl  eax, 24
214
                xor  ecx, edx
215
                shr  edx, 8
216
                and  ecx, ebx
217
                or   eax, ecx
218
219
                mov  ecx, dword ptr [edi + ecx*4]
220
                ror  eax, 8
221
                xor  ecx, edx
222
                shr  edx, 8
223
                and  ecx, ebx
224
                or   eax, ecx
225
226
                mov  ecx, dword ptr [edi + ecx*4]
227
                ror  eax, 8
228
                xor  ecx, edx
229
                or   eax, ecx
230
                ror  eax, 8
231
                mov  dword ptr [esi + 12], eax
232
233
                // part 5
234
                mov  edx, dword ptr [esi + 16]
235
                mov  ecx, dword ptr [edi + ecx*4]
236
                xor  eax, eax
237
                xor  ecx, edx
238
                shr  edx, 8
239
                and  ecx, ebx
240
                or   eax, ecx
241
242
                mov  ecx, dword ptr [edi + ecx*4]
243
                shl  eax, 24
244
                xor  ecx, edx
245
                shr  edx, 8
246
                and  ecx, ebx
247
                or   eax, ecx
248
249
                mov  ecx, dword ptr [edi + ecx*4]
250
                ror  eax, 8
251
                xor  ecx, edx
252
                shr  edx, 8
253
                and  ecx, ebx
254
                or   eax, ecx
255
256
                mov  ecx, dword ptr [edi + ecx*4]
257
                ror  eax, 8
258
                xor  ecx, edx
259
                or   eax, ecx
260
                ror  eax, 8
261
                mov  dword ptr [esi + 16], eax
262
263
                // part 6
264
                mov  edx, dword ptr [esi + 20]
265
                mov  ecx, dword ptr [edi + ecx*4]
266
                xor  eax, eax
267
                xor  ecx, edx
268
                shr  edx, 8
269
                and  ecx, ebx
270
                or   eax, ecx
271
272
                mov  ecx, dword ptr [edi + ecx*4]
273
                shl  eax, 24
274
                xor  ecx, edx
275
                shr  edx, 8
276
                and  ecx, ebx
277
                or   eax, ecx
278
279
                mov  ecx, dword ptr [edi + ecx*4]
280
                ror  eax, 8
281
                xor  ecx, edx
282
                shr  edx, 8
283
                and  ecx, ebx
284
                or   eax, ecx
285
286
                mov  ecx, dword ptr [edi + ecx*4]
287
                ror  eax, 8
288
                xor  ecx, edx
289
                or   eax, ecx
290
                ror  eax, 8
291
                mov  dword ptr [esi + 20], eax
292
293
                // part 7
294
                mov  edx, dword ptr [esi + 24]
295
                mov  ecx, dword ptr [edi + ecx*4]
296
                xor  eax, eax
297
                xor  ecx, edx
298
                shr  edx, 8
299
                and  ecx, ebx
300
                or   eax, ecx
301
302
                mov  ecx, dword ptr [edi + ecx*4]
303
                shl  eax, 24
304
                xor  ecx, edx
305
                shr  edx, 8
306
                and  ecx, ebx
307
                or   eax, ecx
308
309
                mov  ecx, dword ptr [edi + ecx*4]
310
                ror  eax, 8
311
                xor  ecx, edx
312
                shr  edx, 8
313
                and  ecx, ebx
314
                or   eax, ecx
315
316
                mov  ecx, dword ptr [edi + ecx*4]
317
                ror  eax, 8
318
                xor  ecx, edx
319
                or   eax, ecx
320
                ror  eax, 8
321
                mov  dword ptr [esi + 24], eax
322
323
                // part 8
324
                mov  edx, dword ptr [esi + 28]
325
                mov  ecx, dword ptr [edi + ecx*4]
326
                xor  eax, eax
327
                xor  ecx, edx
328
                shr  edx, 8
329
                and  ecx, ebx
330
                or   eax, ecx
331
332
                mov  ecx, dword ptr [edi + ecx*4]
333
                shl  eax, 24
334
                xor  ecx, edx
335
                shr  edx, 8
336
                and  ecx, ebx
337
                or   eax, ecx
338
339
                mov  ecx, dword ptr [edi + ecx*4]
340
                ror  eax, 8
341
                xor  ecx, edx
342
                shr  edx, 8
343
                and  ecx, ebx
344
                or   eax, ecx
345
346
                mov  ecx, dword ptr [edi + ecx*4]
347
                ror  eax, 8
348
                xor  ecx, edx
349
                or   eax, ecx
350
                ror  eax, 8
351
                mov  dword ptr [esi + 28], eax
352
353
                // part 9
354
                mov  edx, dword ptr [esi + 32]
355
                mov  ecx, dword ptr [edi + ecx*4]
356
                xor  eax, eax
357
                xor  ecx, edx
358
                shr  edx, 8
359
                and  ecx, ebx
360
                or   eax, ecx
361
362
                mov  ecx, dword ptr [edi + ecx*4]
363
                shl  eax, 24
364
                xor  ecx, edx
365
                shr  edx, 8
366
                and  ecx, ebx
367
                or   eax, ecx
368
369
                mov  ecx, dword ptr [edi + ecx*4]
370
                ror  eax, 8
371
                xor  ecx, edx
372
                shr  edx, 8
373
                and  ecx, ebx
374
                or   eax, ecx
375
376
                mov  ecx, dword ptr [edi + ecx*4]
377
                ror  eax, 8
378
                xor  ecx, edx
379
                or   eax, ecx
380
                ror  eax, 8
381
                mov  dword ptr [esi + 32], eax
382
383
                // part 10
384
                mov  edx, dword ptr [esi + 36]
385
                mov  ecx, dword ptr [edi + ecx*4]
386
                xor  eax, eax
387
                xor  ecx, edx
388
                shr  edx, 8
389
                and  ecx, ebx
390
                or   eax, ecx
391
392
                mov  ecx, dword ptr [edi + ecx*4]
393
                shl  eax, 24
394
                xor  ecx, edx
395
                shr  edx, 8
396
                and  ecx, ebx
397
                or   eax, ecx
398
399
                mov  ecx, dword ptr [edi + ecx*4]
400
                ror  eax, 8
401
                xor  ecx, edx
402
                shr  edx, 8
403
                and  ecx, ebx
404
                or   eax, ecx
405
406
                mov  ecx, dword ptr [edi + ecx*4]
407
                ror  eax, 8
408
                xor  ecx, edx
409
                or   eax, ecx
410
                ror  eax, 8
411
                mov  dword ptr [esi + 36], eax
412
413
                // part 11
414
                mov  edx, dword ptr [esi + 40]
415
                mov  ecx, dword ptr [edi + ecx*4]
416
                xor  eax, eax
417
                xor  ecx, edx
418
                shr  edx, 8
419
                and  ecx, ebx
420
                or   eax, ecx
421
422
                mov  ecx, dword ptr [edi + ecx*4]
423
                shl  eax, 24
424
                xor  ecx, edx
425
                shr  edx, 8
426
                and  ecx, ebx
427
                or   eax, ecx
428
429
                mov  ecx, dword ptr [edi + ecx*4]
430
                ror  eax, 8
431
                xor  ecx, edx
432
                shr  edx, 8
433
                and  ecx, ebx
434
                or   eax, ecx
435
436
                mov  ecx, dword ptr [edi + ecx*4]
437
                ror  eax, 8
438
                xor  ecx, edx
439
                or   eax, ecx
440
                ror  eax, 8
441
                mov  dword ptr [esi + 40], eax
442
443
                // part 12
444
                mov  edx, dword ptr [esi + 44]
445
                mov  ecx, dword ptr [edi + ecx*4]
446
                xor  eax, eax
447
                xor  ecx, edx
448
                shr  edx, 8
449
                and  ecx, ebx
450
                or   eax, ecx
451
452
                mov  ecx, dword ptr [edi + ecx*4]
453
                shl  eax, 24
454
                xor  ecx, edx
455
                shr  edx, 8
456
                and  ecx, ebx
457
                or   eax, ecx
458
459
                mov  ecx, dword ptr [edi + ecx*4]
460
                ror  eax, 8
461
                xor  ecx, edx
462
                shr  edx, 8
463
                and  ecx, ebx
464
                or   eax, ecx
465
466
                mov  ecx, dword ptr [edi + ecx*4]
467
                ror  eax, 8
468
                xor  ecx, edx
469
                or   eax, ecx
470
                ror  eax, 8
471
                mov  dword ptr [esi + 44], eax
472
473
                add  ecx, ebp
474
                inc  ebp
475
                and  ecx, ebx
476
                cmp  ebp, 18
477
                jnz  @roundsloop
478
479
                pop  ebp
480
                pop  edi
481
                pop  esi
482
                pop  ebx
483
end;
484
{$ENDIF}
485
486
{$IFDEF THash_MD4_asm}
487
procedure THash_MD4.DoTransform(Buffer: PUInt32Array);
488
asm
489
                push    ebx
490
                push    esi
491
                push    edi
492
                lea     edi, [eax].THash_MD4.FDigest  // let edi points to A,B ..
493
                mov     esi, edx                      // let esi points to Buffer
494
                push    ebp
495
496
                mov     eax, [edi]
497
                mov     ebx, [edi+4]
498
                push    edi
499
                mov     ecx, [edi+8]
500
                mov     edx, [edi+0Ch]
501
                mov     edi, ecx
502
                xor     edi, edx
503
                and     edi, ebx
504
                mov     ebp, [esi]
505
                xor     edi, edx
506
                add     eax, ebp
507
                mov     ebp, ebx
508
                add     eax, edi
509
                rol     eax, 3
510
                xor     ebp, ecx
511
                mov     edi, [esi+4]
512
                and     ebp, eax
513
                add     edx, edi
514
                xor     ebp, ecx
515
                mov     edi, eax
516
                add     edx, ebp
517
                xor     edi, ebx
518
                rol     edx, 7
519
                and     edi, edx
520
                mov     ebp, [esi+8]
521
                xor     edi, ebx
522
                add     ecx, ebp
523
                mov     ebp, edx
524
                add     ecx, edi
525
                rol     ecx, 0Bh
526
                xor     ebp, eax
527
                mov     edi, [esi+0Ch]
528
                and     ebp, ecx
529
                add     ebx, edi
530
                xor     ebp, eax
531
                mov     edi, ecx
532
                add     ebx, ebp
533
                xor     edi, edx
534
                ror     ebx, 0Dh
535
                and     edi, ebx
536
                mov     ebp, [esi+10h]
537
                xor     edi, edx
538
                add     eax, ebp
539
                mov     ebp, ebx
540
                add     eax, edi
541
                rol     eax, 3
542
                xor     ebp, ecx
543
                mov     edi, [esi+14h]
544
                and     ebp, eax
545
                add     edx, edi
546
                xor     ebp, ecx
547
                mov     edi, eax
548
                add     edx, ebp
549
                xor     edi, ebx
550
                rol     edx, 7
551
                and     edi, edx
552
                mov     ebp, [esi+18h]
553
                xor     edi, ebx
554
                add     ecx, ebp
555
                mov     ebp, edx
556
                add     ecx, edi
557
                rol     ecx, 0Bh
558
                xor     ebp, eax
559
                mov     edi, [esi+1Ch]
560
                and     ebp, ecx
561
                add     ebx, edi
562
                xor     ebp, eax
563
                mov     edi, ecx
564
                add     ebx, ebp
565
                xor     edi, edx
566
                ror     ebx, 0Dh
567
                and     edi, ebx
568
                mov     ebp, [esi+20h]
569
                xor     edi, edx
570
                add     eax, ebp
571
                mov     ebp, ebx
572
                add     eax, edi
573
                rol     eax, 3
574
                xor     ebp, ecx
575
                mov     edi, [esi+24h]
576
                and     ebp, eax
577
                add     edx, edi
578
                xor     ebp, ecx
579
                mov     edi, eax
580
                add     edx, ebp
581
                xor     edi, ebx
582
                rol     edx, 7
583
                and     edi, edx
584
                mov     ebp, [esi+28h]
585
                xor     edi, ebx
586
                add     ecx, ebp
587
                mov     ebp, edx
588
                add     ecx, edi
589
                rol     ecx, 0Bh
590
                xor     ebp, eax
591
                mov     edi, [esi+2Ch]
592
                and     ebp, ecx
593
                add     ebx, edi
594
                xor     ebp, eax
595
                mov     edi, ecx
596
                add     ebx, ebp
597
                xor     edi, edx
598
                ror     ebx, 0Dh
599
                and     edi, ebx
600
                mov     ebp, [esi+30h]
601
                xor     edi, edx
602
                add     eax, ebp
603
                mov     ebp, ebx
604
                add     eax, edi
605
                rol     eax, 3
606
                xor     ebp, ecx
607
                mov     edi, [esi+34h]
608
                and     ebp, eax
609
                add     edx, edi
610
                xor     ebp, ecx
611
                mov     edi, eax
612
                add     edx, ebp
613
                xor     edi, ebx
614
                rol     edx, 7
615
                and     edi, edx
616
                mov     ebp, [esi+38h]
617
                xor     edi, ebx
618
                add     ecx, ebp
619
                mov     ebp, edx
620
                add     ecx, edi
621
                rol     ecx, 0Bh
622
                xor     ebp, eax
623
                mov     edi, [esi+3Ch]
624
                and     ebp, ecx
625
                add     ebx, edi
626
                xor     ebp, eax
627
                mov     edi, edx
628
                add     ebx, ebp
629
                mov     ebp, edx
630
                ror     ebx, 0Dh
631
                or      edi, ecx
632
                and     ebp, ecx
633
                and     edi, ebx
634
                add     eax, [esi]
635
                or      edi, ebp
636
                mov     ebp, ecx
637
                lea     eax, [eax+edi+5A827999h]
638
                mov     edi, ecx
639
                rol     eax, 3
640
                or      edi, ebx
641
                and     ebp, ebx
642
                and     edi, eax
643
                add     edx, [esi+10h]
644
                or      edi, ebp
645
                mov     ebp, ebx
646
                lea     edx, [edx+edi+5A827999h]
647
                mov     edi, ebx
648
                rol     edx, 5
649
                or      edi, eax
650
                and     ebp, eax
651
                and     edi, edx
652
                add     ecx, [esi+20h]
653
                or      edi, ebp
654
                mov     ebp, eax
655
                lea     ecx, [ecx+edi+5A827999h]
656
                mov     edi, eax
657
                rol     ecx, 9
658
                or      edi, edx
659
                and     ebp, edx
660
                and     edi, ecx
661
                add     ebx, [esi+30h]
662
                or      edi, ebp
663
                mov     ebp, edx
664
                lea     ebx, [ebx+edi+5A827999h]
665
                mov     edi, edx
666
                rol     ebx, 0Dh
667
                or      edi, ecx
668
                and     ebp, ecx
669
                and     edi, ebx
670
                add     eax, [esi+4]
671
                or      edi, ebp
672
                mov     ebp, ecx
673
                lea     eax, [eax+edi+5A827999h]
674
                mov     edi, ecx
675
                rol     eax, 3
676
                or      edi, ebx
677
                and     ebp, ebx
678
                and     edi, eax
679
                add     edx, [esi+14h]
680
                or      edi, ebp
681
                mov     ebp, ebx
682
                lea     edx, [edx+edi+5A827999h]
683
                mov     edi, ebx
684
                rol     edx, 5
685
                or      edi, eax
686
                and     ebp, eax
687
                and     edi, edx
688
                add     ecx, [esi+24h]
689
                or      edi, ebp
690
                mov     ebp, eax
691
                lea     ecx, [ecx+edi+5A827999h]
692
                mov     edi, eax
693
                rol     ecx, 9
694
                or      edi, edx
695
                and     ebp, edx
696
                and     edi, ecx
697
                add     ebx, [esi+34h]
698
                or      edi, ebp
699
                mov     ebp, edx
700
                lea     ebx, [ebx+edi+5A827999h]
701
                mov     edi, edx
702
                rol     ebx, 0Dh
703
                or      edi, ecx
704
                and     ebp, ecx
705
                and     edi, ebx
706
                add     eax, [esi+8]
707
                or      edi, ebp
708
                mov     ebp, ecx
709
                lea     eax, [eax+edi+5A827999h]
710
                mov     edi, ecx
711
                rol     eax, 3
712
                or      edi, ebx
713
                and     ebp, ebx
714
                and     edi, eax
715
                add     edx, [esi+18h]
716
                or      edi, ebp
717
                mov     ebp, ebx
718
                lea     edx, [edx+edi+5A827999h]
719
                mov     edi, ebx
720
                rol     edx, 5
721
                or      edi, eax
722
                and     ebp, eax
723
                and     edi, edx
724
                add     ecx, [esi+28h]
725
                or      edi, ebp
726
                mov     ebp, eax
727
                lea     ecx, [ecx+edi+5A827999h]
728
                mov     edi, eax
729
                rol     ecx, 9
730
                or      edi, edx
731
                and     ebp, edx
732
                and     edi, ecx
733
                add     ebx, [esi+38h]
734
                or      edi, ebp
735
                mov     ebp, edx
736
                lea     ebx, [ebx+edi+5A827999h]
737
                mov     edi, edx
738
                rol     ebx, 0Dh
739
                or      edi, ecx
740
                and     ebp, ecx
741
                and     edi, ebx
742
                add     eax, [esi+0Ch]
743
                or      edi, ebp
744
                mov     ebp, ecx
745
                lea     eax, [eax+edi+5A827999h]
746
                mov     edi, ecx
747
                rol     eax, 3
748
                or      edi, ebx
749
                and     ebp, ebx
750
                and     edi, eax
751
                add     edx, [esi+1Ch]
752
                or      edi, ebp
753
                mov     ebp, ebx
754
                lea     edx, [edx+edi+5A827999h]
755
                mov     edi, ebx
756
                rol     edx, 5
757
                or      edi, eax
758
                and     ebp, eax
759
                and     edi, edx
760
                add     ecx, [esi+2Ch]
761
                or      edi, ebp
762
                mov     ebp, eax
763
                lea     ecx, [ecx+edi+5A827999h]
764
                mov     edi, eax
765
                rol     ecx, 9
766
                or      edi, edx
767
                and     ebp, edx
768
                and     edi, ecx
769
                add     ebx, [esi+3Ch]
770
                or      edi, ebp
771
                mov     ebp, edx
772
                lea     ebx, [ebx+edi+5A827999h]
773
                mov     edi, edx
774
                rol     ebx, 0Dh
775
                xor     edi, ecx
776
                mov     ebp, [esi]
777
                xor     edi, ebx
778
                add     eax, ebp
779
                lea     eax, [eax+edi+6ED9EBA1h]
780
                mov     ebp, ecx
781
                rol     eax, 3
782
                xor     ebp, ebx
783
                mov     edi, [esi+20h]
784
                xor     ebp, eax
785
                add     edx, edi
786
                lea     edx, [edx+ebp+6ED9EBA1h]
787
                mov     edi, ebx
788
                rol     edx, 9
789
                xor     edi, eax
790
                mov     ebp, [esi+10h]
791
                xor     edi, edx
792
                add     ecx, ebp
793
                lea     ecx, [ecx+edi+6ED9EBA1h]
794
                mov     ebp, eax
795
                rol     ecx, 0Bh
796
                xor     ebp, edx
797
                mov     edi, [esi+30h]
798
                xor     ebp, ecx
799
                add     ebx, edi
800
                lea     ebx, [ebx+ebp+6ED9EBA1h]
801
                mov     edi, edx
802
                rol     ebx, 0Fh
803
                xor     edi, ecx
804
                mov     ebp, [esi+8]
805
                xor     edi, ebx
806
                add     eax, ebp
807
                lea     eax, [eax+edi+6ED9EBA1h]
808
                mov     ebp, ecx
809
                rol     eax, 3
810
                xor     ebp, ebx
811
                mov     edi, [esi+28h]
812
                xor     ebp, eax
813
                add     edx, edi
814
                lea     edx, [edx+ebp+6ED9EBA1h]
815
                mov     edi, ebx
816
                rol     edx, 9
817
                xor     edi, eax
818
                mov     ebp, [esi+18h]
819
                xor     edi, edx
820
                add     ecx, ebp
821
                lea     ecx, [ecx+edi+6ED9EBA1h]
822
                mov     ebp, eax
823
                rol     ecx, 0Bh
824
                xor     ebp, edx
825
                mov     edi, [esi+38h]
826
                xor     ebp, ecx
827
                add     ebx, edi
828
                lea     ebx, [ebx+ebp+6ED9EBA1h]
829
                mov     edi, edx
830
                rol     ebx, 0Fh
831
                xor     edi, ecx
832
                mov     ebp, [esi+4]
833
                xor     edi, ebx
834
                add     eax, ebp
835
                lea     eax, [eax+edi+6ED9EBA1h]
836
                mov     ebp, ecx
837
                rol     eax, 3
838
                xor     ebp, ebx
839
                mov     edi, [esi+24h]
840
                xor     ebp, eax
841
                add     edx, edi
842
                lea     edx, [edx+ebp+6ED9EBA1h]
843
                mov     edi, ebx
844
                rol     edx, 9
845
                xor     edi, eax
846
                mov     ebp, [esi+14h]
847
                xor     edi, edx
848
                add     ecx, ebp
849
                lea     ecx, [ecx+edi+6ED9EBA1h]
850
                mov     ebp, eax
851
                rol     ecx, 0Bh
852
                xor     ebp, edx
853
                mov     edi, [esi+34h]
854
                xor     ebp, ecx
855
                add     ebx, edi
856
                lea     ebx, [ebx+ebp+6ED9EBA1h]
857
                mov     edi, edx
858
                rol     ebx, 0Fh
859
                xor     edi, ecx
860
                mov     ebp, [esi+0Ch]
861
                xor     edi, ebx
862
                add     eax, ebp
863
                lea     eax, [eax+edi+6ED9EBA1h]
864
                mov     ebp, ecx
865
                rol     eax, 3
866
                xor     ebp, ebx
867
                mov     edi, [esi+2Ch]
868
                xor     ebp, eax
869
                add     edx, edi
870
                lea     edx, [edx+ebp+6ED9EBA1h]
871
                mov     edi, ebx
872
                rol     edx, 9
873
                xor     edi, eax
874
                mov     ebp, [esi+1Ch]
875
                xor     edi, edx
876
                add     ecx, ebp
877
                lea     ecx, [ecx+edi+6ED9EBA1h]
878
                mov     ebp, eax
879
                rol     ecx, 0Bh
880
                xor     ebp, edx
881
                mov     edi, [esi+3Ch]
882
                xor     ebp, ecx
883
                add     ebx, edi
884
                lea     ebx, [ebx+ebp+6ED9EBA1h]
885
                rol     ebx, 0Fh
886
                pop     edi
887
                add     [edi], eax
888
                add     [edi+4], ebx
889
                add     [edi+8], ecx
890
                add     [edi+0Ch], edx
891
892
                pop     ebp
893
                pop     edi
894
                pop     esi
895
                pop     ebx
896
end;
897
{$ENDIF}
898
899
{$IFDEF THash_MD5_asm}
900
procedure THash_MD5.DoTransform(Buffer: PUInt32Array);
901
asm
902
                push    ebx
903
                push    esi
904
                push    edi
905
                lea     edi, [eax].THash_MD5.FDigest   // let edi points to A,B ..
906
                mov     esi, edx                       // let esi points to Buffer
907
                push    ebp
908
                mov     eax, [edi]
909
                mov     ebx, [edi+4]
910
                push    edi
911
                mov     ecx, [edi+8]
912
                mov     edx, [edi+0Ch]
913
                mov     edi, ecx
914
                mov     ebp, [esi]
915
                xor     edi, edx
916
                lea     eax, [eax+ebp-28955B88h]
917
                and     edi, ebx
918
                mov     ebp, [esi+4]
919
                xor     edi, edx
920
                add     eax, edi
921
                mov     edi, ebx
922
                rol     eax, 7
923
                xor     edi, ecx
924
                add     eax, ebx
925
                lea     edx, [edx+ebp-173848AAh]
926
                and     edi, eax
927
                mov     ebp, [esi+8]
928
                xor     edi, ecx
929
                add     edx, edi
930
                mov     edi, eax
931
                rol     edx, 0Ch
932
                xor     edi, ebx
933
                add     edx, eax
934
                lea     ecx, [ecx+ebp+242070DBh]
935
                and     edi, edx
936
                mov     ebp, [esi+0Ch]
937
                xor     edi, ebx
938
                add     ecx, edi
939
                mov     edi, edx
940
                ror     ecx, 0Fh
941
                xor     edi, eax
942
                add     ecx, edx
943
                lea     ebx, [ebx+ebp-3E423112h]
944
                and     edi, ecx
945
                mov     ebp, [esi+10h]
946
                xor     edi, eax
947
                add     ebx, edi
948
                mov     edi, ecx
949
                ror     ebx, 0Ah
950
                xor     edi, edx
951
                add     ebx, ecx
952
                lea     eax, [eax+ebp-0A83F051h]
953
                and     edi, ebx
954
                mov     ebp, [esi+14h]
955
                xor     edi, edx
956
                add     eax, edi
957
                mov     edi, ebx
958
                rol     eax, 7
959
                xor     edi, ecx
960
                add     eax, ebx
961
                lea     edx, [edx+ebp+4787C62Ah]
962
                and     edi, eax
963
                mov     ebp, [esi+18h]
964
                xor     edi, ecx
965
                add     edx, edi
966
                mov     edi, eax
967
                rol     edx, 0Ch
968
                xor     edi, ebx
969
                add     edx, eax
970
                lea     ecx, [ecx+ebp-57CFB9EDh]
971
                and     edi, edx
972
                mov     ebp, [esi+1Ch]
973
                xor     edi, ebx
974
                add     ecx, edi
975
                mov     edi, edx
976
                ror     ecx, 0Fh
977
                xor     edi, eax
978
                add     ecx, edx
979
                lea     ebx, [ebx+ebp-2B96AFFh]
980
                and     edi, ecx
981
                mov     ebp, [esi+20h]
982
                xor     edi, eax
983
                add     ebx, edi
984
                mov     edi, ecx
985
                ror     ebx, 0Ah
986
                xor     edi, edx
987
                add     ebx, ecx
988
                lea     eax, [eax+ebp+698098D8h]
989
                and     edi, ebx
990
                mov     ebp, [esi+24h]
991
                xor     edi, edx
992
                add     eax, edi
993
                mov     edi, ebx
994
                rol     eax, 7
995
                xor     edi, ecx
996
                add     eax, ebx
997
                lea     edx, [edx+ebp-74BB0851h]
998
                and     edi, eax
999
                mov     ebp, [esi+28h]
1000
                xor     edi, ecx
1001
                add     edx, edi
1002
                mov     edi, eax
1003
                rol     edx, 0Ch
1004
                xor     edi, ebx
1005
                add     edx, eax
1006
                lea     ecx, [ecx+ebp-0A44Fh]
1007
                and     edi, edx
1008
                mov     ebp, [esi+2Ch]
1009
                xor     edi, ebx
1010
                add     ecx, edi
1011
                mov     edi, edx
1012
                ror     ecx, 0Fh
1013
                xor     edi, eax
1014
                add     ecx, edx
1015
                lea     ebx, [ebx+ebp-76A32842h]
1016
                and     edi, ecx
1017
                mov     ebp, [esi+30h]
1018
                xor     edi, eax
1019
                add     ebx, edi
1020
                mov     edi, ecx
1021
                ror     ebx, 0Ah
1022
                xor     edi, edx
1023
                add     ebx, ecx
1024
                lea     eax, [eax+ebp+6B901122h]
1025
                and     edi, ebx
1026
                mov     ebp, [esi+34h]
1027
                xor     edi, edx
1028
                add     eax, edi
1029
                mov     edi, ebx
1030
                rol     eax, 7
1031
                xor     edi, ecx
1032
                add     eax, ebx
1033
                lea     edx, [edx+ebp-2678E6Dh]
1034
                and     edi, eax
1035
                mov     ebp, [esi+38h]
1036
                xor     edi, ecx
1037
                add     edx, edi
1038
                mov     edi, eax
1039
                rol     edx, 0Ch
1040
                xor     edi, ebx
1041
                add     edx, eax
1042
                lea     ecx, [ecx+ebp-5986BC72h]
1043
                and     edi, edx
1044
                mov     ebp, [esi+3Ch]
1045
                xor     edi, ebx
1046
                add     ecx, edi
1047
                mov     edi, edx
1048
                ror     ecx, 0Fh
1049
                xor     edi, eax
1050
                add     ecx, edx
1051
                lea     ebx, [ebx+ebp+49B40821h]
1052
                and     edi, ecx
1053
                mov     ebp, [esi+4]
1054
                xor     edi, eax
1055
                add     ebx, edi
1056
                mov     edi, ecx
1057
                ror     ebx, 0Ah
1058
                xor     edi, edx
1059
                add     ebx, ecx
1060
                mov     edi, ecx
1061
                xor     edi, ebx
1062
                lea     eax, [eax+ebp-9E1DA9Eh]
1063
                and     edi, edx
1064
                mov     ebp, [esi+18h]
1065
                xor     edi, ecx
1066
                add     eax, edi
1067
                mov     edi, ebx
1068
                rol     eax, 5
1069
                add     eax, ebx
1070
                xor     edi, eax
1071
                lea     edx, [edx+ebp-3FBF4CC0h]
1072
                and     edi, ecx
1073
                mov     ebp, [esi+2Ch]
1074
                xor     edi, ebx
1075
                add     edx, edi
1076
                mov     edi, eax
1077
                rol     edx, 9
1078
                add     edx, eax
1079
                xor     edi, edx
1080
                lea     ecx, [ecx+ebp+265E5A51h]
1081
                and     edi, ebx
1082
                mov     ebp, [esi]
1083
                xor     edi, eax
1084
                add     ecx, edi
1085
                mov     edi, edx
1086
                rol     ecx, 0Eh
1087
                add     ecx, edx
1088
                xor     edi, ecx
1089
                lea     ebx, [ebx+ebp-16493856h]
1090
                and     edi, eax
1091
                mov     ebp, [esi+14h]
1092
                xor     edi, edx
1093
                add     ebx, edi
1094
                mov     edi, ecx
1095
                ror     ebx, 0Ch
1096
                add     ebx, ecx
1097
                xor     edi, ebx
1098
                lea     eax, [eax+ebp-29D0EFA3h]
1099
                and     edi, edx
1100
                mov     ebp, [esi+28h]
1101
                xor     edi, ecx
1102
                add     eax, edi
1103
                mov     edi, ebx
1104
                rol     eax, 5
1105
                add     eax, ebx
1106
                xor     edi, eax
1107
                lea     edx, [edx+ebp+2441453h]
1108
                and     edi, ecx
1109
                mov     ebp, [esi+3Ch]
1110
                xor     edi, ebx
1111
                add     edx, edi
1112
                mov     edi, eax
1113
                rol     edx, 9
1114
                add     edx, eax
1115
                xor     edi, edx
1116
                lea     ecx, [ecx+ebp-275E197Fh]
1117
                and     edi, ebx
1118
                mov     ebp, [esi+10h]
1119
                xor     edi, eax
1120
                add     ecx, edi
1121
                mov     edi, edx
1122
                rol     ecx, 0Eh
1123
                add     ecx, edx
1124
                xor     edi, ecx
1125
                lea     ebx, [ebx+ebp-182C0438h]
1126
                and     edi, eax
1127
                mov     ebp, [esi+24h]
1128
                xor     edi, edx
1129
                add     ebx, edi
1130
                mov     edi, ecx
1131
                ror     ebx, 0Ch
1132
                add     ebx, ecx
1133
                xor     edi, ebx
1134
                lea     eax, [eax+ebp+21E1CDE6h]
1135
                and     edi, edx
1136
                mov     ebp, [esi+38h]
1137
                xor     edi, ecx
1138
                add     eax, edi
1139
                mov     edi, ebx
1140
                rol     eax, 5
1141
                add     eax, ebx
1142
                xor     edi, eax
1143
                lea     edx, [edx+ebp-3CC8F82Ah]
1144
                and     edi, ecx
1145
                mov     ebp, [esi+0Ch]
1146
                xor     edi, ebx
1147
                add     edx, edi
1148
                mov     edi, eax
1149
                rol     edx, 9
1150
                add     edx, eax
1151
                xor     edi, edx
1152
                lea     ecx, [ecx+ebp-0B2AF279h]
1153
                and     edi, ebx
1154
                mov     ebp, [esi+20h]
1155
                xor     edi, eax
1156
                add     ecx, edi
1157
                mov     edi, edx
1158
                rol     ecx, 0Eh
1159
                add     ecx, edx
1160
                xor     edi, ecx
1161
                lea     ebx, [ebx+ebp+455A14EDh]
1162
                and     edi, eax
1163
                mov     ebp, [esi+34h]
1164
                xor     edi, edx
1165
                add     ebx, edi
1166
                mov     edi, ecx
1167
                ror     ebx, 0Ch
1168
                add     ebx, ecx
1169
                xor     edi, ebx
1170
                lea     eax, [eax+ebp-561C16FBh]
1171
                and     edi, edx
1172
                mov     ebp, [esi+8]
1173
                xor     edi, ecx
1174
                add     eax, edi
1175
                mov     edi, ebx
1176
                rol     eax, 5
1177
                add     eax, ebx
1178
                xor     edi, eax
1179
                lea     edx, [edx+ebp-3105C08h]
1180
                and     edi, ecx
1181
                mov     ebp, [esi+1Ch]
1182
                xor     edi, ebx
1183
                add     edx, edi
1184
                mov     edi, eax
1185
                rol     edx, 9
1186
                add     edx, eax
1187
                xor     edi, edx
1188
                lea     ecx, [ecx+ebp+676F02D9h]
1189
                and     edi, ebx
1190
                mov     ebp, [esi+30h]
1191
                xor     edi, eax
1192
                add     ecx, edi
1193
                mov     edi, edx
1194
                rol     ecx, 0Eh
1195
                add     ecx, edx
1196
                xor     edi, ecx
1197
                lea     ebx, [ebx+ebp-72D5B376h]
1198
                and     edi, eax
1199
                mov     ebp, [esi+14h]
1200
                xor     edi, edx
1201
                add     ebx, edi
1202
                mov     edi, ecx
1203
                ror     ebx, 0Ch
1204
                add     ebx, ecx
1205
                xor     edi, edx
1206
                lea     eax, [eax+ebp-5C6BEh]
1207
                xor     edi, ebx
1208
                mov     ebp, [esi+20h]
1209
                add     eax, edi
1210
                rol     eax, 4
1211
                lea     edx, [edx+ebp-788E097Fh]
1212
                mov     edi, ebx
1213
                add     eax, ebx
1214
                xor     edi, ecx
1215
                mov     ebp, [esi+2Ch]
1216
                xor     edi, eax
1217
                add     edx, edi
1218
                mov     edi, eax
1219
                rol     edx, 0Bh
1220
                add     edx, eax
1221
                xor     edi, ebx
1222
                lea     ecx, [ecx+ebp+6D9D6122h]
1223
                xor     edi, edx
1224
                mov     ebp, [esi+38h]
1225
                add     ecx, edi
1226
                rol     ecx, 10h
1227
                lea     ebx, [ebx+ebp-21AC7F4h]
1228
                mov     edi, edx
1229
                add     ecx, edx
1230
                xor     edi, eax
1231
                mov     ebp, [esi+4]
1232
                xor     edi, ecx
1233
                add     ebx, edi
1234
                mov     edi, ecx
1235
                ror     ebx, 9
1236
                add     ebx, ecx
1237
                xor     edi, edx
1238
                lea     eax, [eax+ebp-5B4115BCh]
1239
                xor     edi, ebx
1240
                mov     ebp, [esi+10h]
1241
                add     eax, edi
1242
                rol     eax, 4
1243
                lea     edx, [edx+ebp+4BDECFA9h]
1244
                mov     edi, ebx
1245
                add     eax, ebx
1246
                xor     edi, ecx
1247
                mov     ebp, [esi+1Ch]
1248
                xor     edi, eax
1249
                add     edx, edi
1250
                mov     edi, eax
1251
                rol     edx, 0Bh
1252
                add     edx, eax
1253
                xor     edi, ebx
1254
                lea     ecx, [ecx+ebp-944B4A0h]
1255
                xor     edi, edx
1256
                mov     ebp, [esi+28h]
1257
                add     ecx, edi
1258
                rol     ecx, 10h
1259
                lea     ebx, [ebx+ebp-41404390h]
1260
                mov     edi, edx
1261
                add     ecx, edx
1262
                xor     edi, eax
1263
                mov     ebp, [esi+34h]
1264
                xor     edi, ecx
1265
                add     ebx, edi
1266
                mov     edi, ecx
1267
                ror     ebx, 9
1268
                add     ebx, ecx
1269
                xor     edi, edx
1270
                lea     eax, [eax+ebp+289B7EC6h]
1271
                xor     edi, ebx
1272
                mov     ebp, [esi]
1273
                add     eax, edi
1274
                rol     eax, 4
1275
                lea     edx, [edx+ebp-155ED806h]
1276
                mov     edi, ebx
1277
                add     eax, ebx
1278
                xor     edi, ecx
1279
                mov     ebp, [esi+0Ch]
1280
                xor     edi, eax
1281
                add     edx, edi
1282
                mov     edi, eax
1283
                rol     edx, 0Bh
1284
                add     edx, eax
1285
                xor     edi, ebx
1286
                lea     ecx, [ecx+ebp-2B10CF7Bh]
1287
                xor     edi, edx
1288
                mov     ebp, [esi+18h]
1289
                add     ecx, edi
1290
                rol     ecx, 10h
1291
                lea     ebx, [ebx+ebp+4881D05h]
1292
                mov     edi, edx
1293
                add     ecx, edx
1294
                xor     edi, eax
1295
                mov     ebp, [esi+24h]
1296
                xor     edi, ecx
1297
                add     ebx, edi
1298
                mov     edi, ecx
1299
                ror     ebx, 9
1300
                add     ebx, ecx
1301
                xor     edi, edx
1302
                lea     eax, [eax+ebp-262B2FC7h]
1303
                xor     edi, ebx
1304
                mov     ebp, [esi+30h]
1305
                add     eax, edi
1306
                rol     eax, 4
1307
                lea     edx, [edx+ebp-1924661Bh]
1308
                mov     edi, ebx
1309
                add     eax, ebx
1310
                xor     edi, ecx
1311
                mov     ebp, [esi+3Ch]
1312
                xor     edi, eax
1313
                add     edx, edi
1314
                mov     edi, eax
1315
                rol     edx, 0Bh
1316
                add     edx, eax
1317
                xor     edi, ebx
1318
                lea     ecx, [ecx+ebp+1FA27CF8h]
1319
                xor     edi, edx
1320
                mov     ebp, [esi+8]
1321
                add     ecx, edi
1322
                rol     ecx, 10h
1323
                lea     ebx, [ebx+ebp-3B53A99Bh]
1324
                mov     edi, edx
1325
                add     ecx, edx
1326
                xor     edi, eax
1327
                mov     ebp, [esi]
1328
                xor     edi, ecx
1329
                add     ebx, edi
1330
                mov     edi, edx
1331
                ror     ebx, 9
1332
                add     ebx, ecx
1333
                xor     edi, 0FFFFFFFFh
1334
                lea     eax, [eax+ebp-0BD6DDBCh]
1335
                or      edi, ebx
1336
                mov     ebp, [esi+1Ch]
1337
                xor     edi, ecx
1338
                add     eax, edi
1339
                mov     edi, ecx
1340
                rol     eax, 6
1341
                add     eax, ebx
1342
                xor     edi, 0FFFFFFFFh
1343
                lea     edx, [edx+ebp+432AFF97h]
1344
                or      edi, eax
1345
                mov     ebp, [esi+38h]
1346
                xor     edi, ebx
1347
                add     edx, edi
1348
                mov     edi, ebx
1349
                rol     edx, 0Ah
1350
                add     edx, eax
1351
                xor     edi, 0FFFFFFFFh
1352
                lea     ecx, [ecx+ebp-546BDC59h]
1353
                or      edi, edx
1354
                mov     ebp, [esi+14h]
1355
                xor     edi, eax
1356
                add     ecx, edi
1357
                mov     edi, eax
1358
                rol     ecx, 0Fh
1359
                add     ecx, edx
1360
                xor     edi, 0FFFFFFFFh
1361
                lea     ebx, [ebx+ebp-36C5FC7h]
1362
                or      edi, ecx
1363
                mov     ebp, [esi+30h]
1364
                xor     edi, edx
1365
                add     ebx, edi
1366
                mov     edi, edx
1367
                ror     ebx, 0Bh
1368
                add     ebx, ecx
1369
                xor     edi, 0FFFFFFFFh
1370
                lea     eax, [eax+ebp+655B59C3h]
1371
                or      edi, ebx
1372
                mov     ebp, [esi+0Ch]
1373
                xor     edi, ecx
1374
                add     eax, edi
1375
                mov     edi, ecx
1376
                rol     eax, 6
1377
                add     eax, ebx
1378
                xor     edi, 0FFFFFFFFh
1379
                lea     edx, [edx+ebp-70F3336Eh]
1380
                or      edi, eax
1381
                mov     ebp, [esi+28h]
1382
                xor     edi, ebx
1383
                add     edx, edi
1384
                mov     edi, ebx
1385
                rol     edx, 0Ah
1386
                add     edx, eax
1387
                xor     edi, 0FFFFFFFFh
1388
                lea     ecx, [ecx+ebp-100B83h]
1389
                or      edi, edx
1390
                mov     ebp, [esi+4]
1391
                xor     edi, eax
1392
                add     ecx, edi
1393
                mov     edi, eax
1394
                rol     ecx, 0Fh
1395
                add     ecx, edx
1396
                xor     edi, 0FFFFFFFFh
1397
                lea     ebx, [ebx+ebp-7A7BA22Fh]
1398
                or      edi, ecx
1399
                mov     ebp, [esi+20h]
1400
                xor     edi, edx
1401
                add     ebx, edi
1402
                mov     edi, edx
1403
                ror     ebx, 0Bh
1404
                add     ebx, ecx
1405
                xor     edi, 0FFFFFFFFh
1406
                lea     eax, [eax+ebp+6FA87E4Fh]
1407
                or      edi, ebx
1408
                mov     ebp, [esi+3Ch]
1409
                xor     edi, ecx
1410
                add     eax, edi
1411
                mov     edi, ecx
1412
                rol     eax, 6
1413
                add     eax, ebx
1414
                xor     edi, 0FFFFFFFFh
1415
                lea     edx, [edx+ebp-1D31920h]
1416
                or      edi, eax
1417
                mov     ebp, [esi+18h]
1418
                xor     edi, ebx
1419
                add     edx, edi
1420
                mov     edi, ebx
1421
                rol     edx, 0Ah
1422
                add     edx, eax
1423
                xor     edi, 0FFFFFFFFh
1424
                lea     ecx, [ecx+ebp-5CFEBCECh]
1425
                or      edi, edx
1426
                mov     ebp, [esi+34h]
1427
                xor     edi, eax
1428
                add     ecx, edi
1429
                mov     edi, eax
1430
                rol     ecx, 0Fh
1431
                add     ecx, edx
1432
                xor     edi, 0FFFFFFFFh
1433
                lea     ebx, [ebx+ebp+4E0811A1h]
1434
                or      edi, ecx
1435
                mov     ebp, [esi+10h]
1436
                xor     edi, edx
1437
                add     ebx, edi
1438
                mov     edi, edx
1439
                ror     ebx, 0Bh
1440
                add     ebx, ecx
1441
                xor     edi, 0FFFFFFFFh
1442
                lea     eax, [eax+ebp-8AC817Eh]
1443
                or      edi, ebx
1444
                mov     ebp, [esi+2Ch]
1445
                xor     edi, ecx
1446
                add     eax, edi
1447
                mov     edi, ecx
1448
                rol     eax, 6
1449
                add     eax, ebx
1450
                xor     edi, 0FFFFFFFFh
1451
                lea     edx, [edx+ebp-42C50DCBh]
1452
                or      edi, eax
1453
                mov     ebp, [esi+8]
1454
                xor     edi, ebx
1455
                add     edx, edi
1456
                mov     edi, ebx
1457
                rol     edx, 0Ah
1458
                add     edx, eax
1459
                xor     edi, 0FFFFFFFFh
1460
                lea     ecx, [ecx+ebp+2AD7D2BBh]
1461
                or      edi, edx
1462
                mov     ebp, [esi+24h]
1463
                xor     edi, eax
1464
                add     ecx, edi
1465
                mov     edi, eax
1466
                rol     ecx, 0Fh
1467
                add     ecx, edx
1468
                xor     edi, 0FFFFFFFFh
1469
                lea     ebx, [ebx+ebp-14792C6Fh]
1470
                or      edi, ecx
1471
                xor     edi, edx
1472
                add     ebx, edi
1473
                ror     ebx, 0Bh
1474
                add     ebx, ecx
1475
                pop     edi
1476
                add     [edi], eax
1477
                add     [edi+4], ebx
1478
                add     [edi+8], ecx
1479
                add     [edi+0Ch], edx
1480
1481
                pop     ebp
1482
                pop     edi
1483
                pop     esi
1484
                pop     ebx
1485
end;
1486
{$ENDIF}
1487
1488
{$IFDEF THash_RipeMD128_asm}
1489
procedure THash_RipeMD128.DoTransform(Buffer: PUInt32Array);
1490
asm
1491
                push    ebx
1492
                push    esi
1493
                push    edi
1494
                lea     edi, [eax].THash_RipeMD128.FDigest
1495
                mov     esi, edx
1496
                push    ebp
1497
1498
                mov     eax, [edi]
1499
                mov     ebx, [edi+4]
1500
                push    edi
1501
                mov     ecx, [edi+8]
1502
                mov     edx, [edi+0Ch]
1503
                add     esp, 0FFFFFFF0h
1504
                mov     edi, edx
1505
                xor     edi, ecx
1506
                mov     ebp, [esi]
1507
                xor     edi, ebx
1508
                add     eax, ebp
1509
                add     eax, edi
1510
                mov     edi, ecx
1511
                rol     eax, 0Bh
1512
                xor     edi, ebx
1513
                mov     ebp, [esi+4]
1514
                xor     edi, eax
1515
                add     edx, ebp
1516
                add     edx, edi
1517
                mov     edi, ebx
1518
                rol     edx, 0Eh
1519
                xor     edi, eax
1520
                mov     ebp, [esi+8]
1521
                xor     edi, edx
1522
                add     ecx, ebp
1523
                add     ecx, edi
1524
                mov     edi, eax
1525
                rol     ecx, 0Fh
1526
                xor     edi, edx
1527
                mov     ebp, [esi+0Ch]
1528
                xor     edi, ecx
1529
                add     ebx, ebp
1530
                add     ebx, edi
1531
                mov     edi, edx
1532
                rol     ebx, 0Ch
1533
                xor     edi, ecx
1534
                mov     ebp, [esi+10h]
1535
                xor     edi, ebx
1536
                add     eax, ebp
1537
                add     eax, edi
1538
                mov     edi, ecx
1539
                rol     eax, 5
1540
                xor     edi, ebx
1541
                mov     ebp, [esi+14h]
1542
                xor     edi, eax
1543
                add     edx, ebp
1544
                add     edx, edi
1545
                mov     edi, ebx
1546
                rol     edx, 8
1547
                xor     edi, eax
1548
                mov     ebp, [esi+18h]
1549
                xor     edi, edx
1550
                add     ecx, ebp
1551
                add     ecx, edi
1552
                mov     edi, eax
1553
                rol     ecx, 7
1554
                xor     edi, edx
1555
                mov     ebp, [esi+1Ch]
1556
                xor     edi, ecx
1557
                add     ebx, ebp
1558
                add     ebx, edi
1559
                mov     edi, edx
1560
                rol     ebx, 9
1561
                xor     edi, ecx
1562
                mov     ebp, [esi+20h]
1563
                xor     edi, ebx
1564
                add     eax, ebp
1565
                add     eax, edi
1566
                mov     edi, ecx
1567
                rol     eax, 0Bh
1568
                xor     edi, ebx
1569
                mov     ebp, [esi+24h]
1570
                xor     edi, eax
1571
                add     edx, ebp
1572
                add     edx, edi
1573
                mov     edi, ebx
1574
                rol     edx, 0Dh
1575
                xor     edi, eax
1576
                mov     ebp, [esi+28h]
1577
                xor     edi, edx
1578
                add     ecx, ebp
1579
                add     ecx, edi
1580
                mov     edi, eax
1581
                rol     ecx, 0Eh
1582
                xor     edi, edx
1583
                mov     ebp, [esi+2Ch]
1584
                xor     edi, ecx
1585
                add     ebx, ebp
1586
                add     ebx, edi
1587
                mov     edi, edx
1588
                rol     ebx, 0Fh
1589
                xor     edi, ecx
1590
                mov     ebp, [esi+30h]
1591
                xor     edi, ebx
1592
                add     eax, ebp
1593
                add     eax, edi
1594
                mov     edi, ecx
1595
                rol     eax, 6
1596
                xor     edi, ebx
1597
                mov     ebp, [esi+34h]
1598
                xor     edi, eax
1599
                add     edx, ebp
1600
                add     edx, edi
1601
                mov     edi, ebx
1602
                rol     edx, 7
1603
                xor     edi, eax
1604
                mov     ebp, [esi+38h]
1605
                xor     edi, edx
1606
                add     ecx, ebp
1607
                add     ecx, edi
1608
                mov     edi, eax
1609
                rol     ecx, 9
1610
                xor     edi, edx
1611
                mov     ebp, [esi+3Ch]
1612
                xor     edi, ecx
1613
                add     ebx, ebp
1614
                add     ebx, edi
1615
                rol     ebx, 8
1616
                mov     ebp, [esi+1Ch]
1617
                mov     edi, ecx
1618
                xor     edi, edx
1619
                lea     eax, [eax+ebp+5A827999h]
1620
                and     edi, ebx
1621
                mov     ebp, ebx
1622
                xor     edi, edx
1623
                xor     ebp, ecx
1624
                add     eax, edi
1625
                mov     edi, [esi+10h]
1626
                rol     eax, 7
1627
                and     ebp, eax
1628
                lea     edx, [edx+edi+5A827999h]
1629
                xor     ebp, ecx
1630
                mov     edi, eax
1631
                add     edx, ebp
1632
                mov     ebp, [esi+34h]
1633
                rol     edx, 6
1634
                xor     edi, ebx
1635
                lea     ecx, [ecx+ebp+5A827999h]
1636
                and     edi, edx
1637
                mov     ebp, edx
1638
                xor     edi, ebx
1639
                xor     ebp, eax
1640
                add     ecx, edi
1641
                mov     edi, [esi+4]
1642
                rol     ecx, 8
1643
                and     ebp, ecx
1644
                lea     ebx, [ebx+edi+5A827999h]
1645
                xor     ebp, eax
1646
                mov     edi, ecx
1647
                add     ebx, ebp
1648
                mov     ebp, [esi+28h]
1649
                rol     ebx, 0Dh
1650
                xor     edi, edx
1651
                lea     eax, [eax+ebp+5A827999h]
1652
                and     edi, ebx
1653
                mov     ebp, ebx
1654
                xor     edi, edx
1655
                xor     ebp, ecx
1656
                add     eax, edi
1657
                mov     edi, [esi+18h]
1658
                rol     eax, 0Bh
1659
                and     ebp, eax
1660
                lea     edx, [edx+edi+5A827999h]
1661
                xor     ebp, ecx
1662
                mov     edi, eax
1663
                add     edx, ebp
1664
                mov     ebp, [esi+3Ch]
1665
                rol     edx, 9
1666
                xor     edi, ebx
1667
                lea     ecx, [ecx+ebp+5A827999h]
1668
                and     edi, edx
1669
                mov     ebp, edx
1670
                xor     edi, ebx
1671
                xor     ebp, eax
1672
                add     ecx, edi
1673
                mov     edi, [esi+0Ch]
1674
                rol     ecx, 7
1675
                and     ebp, ecx
1676
                lea     ebx, [ebx+edi+5A827999h]
1677
                xor     ebp, eax
1678
                mov     edi, ecx
1679
                add     ebx, ebp
1680
                mov     ebp, [esi+30h]
1681
                rol     ebx, 0Fh
1682
                xor     edi, edx
1683
                lea     eax, [eax+ebp+5A827999h]
1684
                and     edi, ebx
1685
                mov     ebp, ebx
1686
                xor     edi, edx
1687
                xor     ebp, ecx
1688
                add     eax, edi
1689
                mov     edi, [esi]
1690
                rol     eax, 7
1691
                and     ebp, eax
1692
                lea     edx, [edx+edi+5A827999h]
1693
                xor     ebp, ecx
1694
                mov     edi, eax
1695
                add     edx, ebp
1696
                mov     ebp, [esi+24h]
1697
                rol     edx, 0Ch
1698
                xor     edi, ebx
1699
                lea     ecx, [ecx+ebp+5A827999h]
1700
                and     edi, edx
1701
                mov     ebp, edx
1702
                xor     edi, ebx
1703
                xor     ebp, eax
1704
                add     ecx, edi
1705
                mov     edi, [esi+14h]
1706
                rol     ecx, 0Fh
1707
                and     ebp, ecx
1708
                lea     ebx, [ebx+edi+5A827999h]
1709
                xor     ebp, eax
1710
                mov     edi, ecx
1711
                add     ebx, ebp
1712
                mov     ebp, [esi+8]
1713
                rol     ebx, 9
1714
                xor     edi, edx
1715
                lea     eax, [eax+ebp+5A827999h]
1716
                and     edi, ebx
1717
                mov     ebp, ebx
1718
                xor     edi, edx
1719
                xor     ebp, ecx
1720
                add     eax, edi
1721
                mov     edi, [esi+38h]
1722
                rol     eax, 0Bh
1723
                and     ebp, eax
1724
                lea     edx, [edx+edi+5A827999h]
1725
                xor     ebp, ecx
1726
                mov     edi, eax
1727
                add     edx, ebp
1728
                mov     ebp, [esi+2Ch]
1729
                rol     edx, 7
1730
                xor     edi, ebx
1731
                lea     ecx, [ecx+ebp+5A827999h]
1732
                and     edi, edx
1733
                mov     ebp, edx
1734
                xor     edi, ebx
1735
                xor     ebp, eax
1736
                add     ecx, edi
1737
                mov     edi, [esi+20h]
1738
                rol     ecx, 0Dh
1739
                and     ebp, ecx
1740
                lea     ebx, [ebx+edi+5A827999h]
1741
                xor     ebp, eax
1742
                add     ebx, ebp
1743
                rol     ebx, 0Ch
1744
                mov     edi, ecx
1745
                mov     ebp, [esi+0Ch]
1746
                xor     edi, 0FFFFFFFFh
1747
                lea     eax, [eax+ebp+6ED9EBA1h]
1748
                or      edi, ebx
1749
                mov     ebp, ebx
1750
                xor     edi, edx
1751
                xor     ebp, 0FFFFFFFFh
1752
                add     eax, edi
1753
                mov     edi, [esi+28h]
1754
                rol     eax, 0Bh
1755
                or      ebp, eax
1756
                lea     edx, [edx+edi+6ED9EBA1h]
1757
                xor     ebp, ecx
1758
                mov     edi, eax
1759
                add     edx, ebp
1760
                mov     ebp, [esi+38h]
1761
                rol     edx, 0Dh
1762
                xor     edi, 0FFFFFFFFh
1763
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1764
                or      edi, edx
1765
                mov     ebp, edx
1766
                xor     edi, ebx
1767
                xor     ebp, 0FFFFFFFFh
1768
                add     ecx, edi
1769
                mov     edi, [esi+10h]
1770
                rol     ecx, 6
1771
                or      ebp, ecx
1772
                lea     ebx, [ebx+edi+6ED9EBA1h]
1773
                xor     ebp, eax
1774
                mov     edi, ecx
1775
                add     ebx, ebp
1776
                mov     ebp, [esi+24h]
1777
                rol     ebx, 7
1778
                xor     edi, 0FFFFFFFFh
1779
                lea     eax, [eax+ebp+6ED9EBA1h]
1780
                or      edi, ebx
1781
                mov     ebp, ebx
1782
                xor     edi, edx
1783
                xor     ebp, 0FFFFFFFFh
1784
                add     eax, edi
1785
                mov     edi, [esi+3Ch]
1786
                rol     eax, 0Eh
1787
                or      ebp, eax
1788
                lea     edx, [edx+edi+6ED9EBA1h]
1789
                xor     ebp, ecx
1790
                mov     edi, eax
1791
                add     edx, ebp
1792
                mov     ebp, [esi+20h]
1793
                rol     edx, 9
1794
                xor     edi, 0FFFFFFFFh
1795
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1796
                or      edi, edx
1797
                mov     ebp, edx
1798
                xor     edi, ebx
1799
                xor     ebp, 0FFFFFFFFh
1800
                add     ecx, edi
1801
                mov     edi, [esi+4]
1802
                rol     ecx, 0Dh
1803
                or      ebp, ecx
1804
                lea     ebx, [ebx+edi+6ED9EBA1h]
1805
                xor     ebp, eax
1806
                mov     edi, ecx
1807
                add     ebx, ebp
1808
                mov     ebp, [esi+8]
1809
                rol     ebx, 0Fh
1810
                xor     edi, 0FFFFFFFFh
1811
                lea     eax, [eax+ebp+6ED9EBA1h]
1812
                or      edi, ebx
1813
                mov     ebp, ebx
1814
                xor     edi, edx
1815
                xor     ebp, 0FFFFFFFFh
1816
                add     eax, edi
1817
                mov     edi, [esi+1Ch]
1818
                rol     eax, 0Eh
1819
                or      ebp, eax
1820
                lea     edx, [edx+edi+6ED9EBA1h]
1821
                xor     ebp, ecx
1822
                mov     edi, eax
1823
                add     edx, ebp
1824
                mov     ebp, [esi]
1825
                rol     edx, 8
1826
                xor     edi, 0FFFFFFFFh
1827
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1828
                or      edi, edx
1829
                mov     ebp, edx
1830
                xor     edi, ebx
1831
                xor     ebp, 0FFFFFFFFh
1832
                add     ecx, edi
1833
                mov     edi, [esi+18h]
1834
                rol     ecx, 0Dh
1835
                or      ebp, ecx
1836
                lea     ebx, [ebx+edi+6ED9EBA1h]
1837
                xor     ebp, eax
1838
                mov     edi, ecx
1839
                add     ebx, ebp
1840
                mov     ebp, [esi+34h]
1841
                rol     ebx, 6
1842
                xor     edi, 0FFFFFFFFh
1843
                lea     eax, [eax+ebp+6ED9EBA1h]
1844
                or      edi, ebx
1845
                mov     ebp, ebx
1846
                xor     edi, edx
1847
                xor     ebp, 0FFFFFFFFh
1848
                add     eax, edi
1849
                mov     edi, [esi+2Ch]
1850
                rol     eax, 5
1851
                or      ebp, eax
1852
                lea     edx, [edx+edi+6ED9EBA1h]
1853
                xor     ebp, ecx
1854
                mov     edi, eax
1855
                add     edx, ebp
1856
                mov     ebp, [esi+14h]
1857
                rol     edx, 0Ch
1858
                xor     edi, 0FFFFFFFFh
1859
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1860
                or      edi, edx
1861
                mov     ebp, edx
1862
                xor     edi, ebx
1863
                xor     ebp, 0FFFFFFFFh
1864
                add     ecx, edi
1865
                mov     edi, [esi+30h]
1866
                rol     ecx, 7
1867
                or      ebp, ecx
1868
                lea     ebx, [ebx+edi+6ED9EBA1h]
1869
                xor     ebp, eax
1870
                mov     edi, ecx
1871
                add     ebx, ebp
1872
                mov     ebp, [esi+4]
1873
                rol     ebx, 5
1874
                xor     edi, ebx
1875
                lea     eax, [eax+ebp-70E44324h]
1876
                and     edi, edx
1877
                mov     ebp, [esi+24h]
1878
                xor     edi, ecx
1879
                add     eax, edi
1880
                mov     edi, ebx
1881
                rol     eax, 0Bh
1882
                xor     edi, eax
1883
                lea     edx, [edx+ebp-70E44324h]
1884
                and     edi, ecx
1885
                mov     ebp, [esi+2Ch]
1886
                xor     edi, ebx
1887
                add     edx, edi
1888
                mov     edi, eax
1889
                rol     edx, 0Ch
1890
                xor     edi, edx
1891
                lea     ecx, [ecx+ebp-70E44324h]
1892
                and     edi, ebx
1893
                mov     ebp, [esi+28h]
1894
                xor     edi, eax
1895
                add     ecx, edi
1896
                mov     edi, edx
1897
                rol     ecx, 0Eh
1898
                xor     edi, ecx
1899
                lea     ebx, [ebx+ebp-70E44324h]
1900
                and     edi, eax
1901
                mov     ebp, [esi]
1902
                xor     edi, edx
1903
                add     ebx, edi
1904
                mov     edi, ecx
1905
                rol     ebx, 0Fh
1906
                xor     edi, ebx
1907
                lea     eax, [eax+ebp-70E44324h]
1908
                and     edi, edx
1909
                mov     ebp, [esi+20h]
1910
                xor     edi, ecx
1911
                add     eax, edi
1912
                mov     edi, ebx
1913
                rol     eax, 0Eh
1914
                xor     edi, eax
1915
                lea     edx, [edx+ebp-70E44324h]
1916
                and     edi, ecx
1917
                mov     ebp, [esi+30h]
1918
                xor     edi, ebx
1919
                add     edx, edi
1920
                mov     edi, eax
1921
                rol     edx, 0Fh
1922
                xor     edi, edx
1923
                lea     ecx, [ecx+ebp-70E44324h]
1924
                and     edi, ebx
1925
                mov     ebp, [esi+10h]
1926
                xor     edi, eax
1927
                add     ecx, edi
1928
                mov     edi, edx
1929
                rol     ecx, 9
1930
                xor     edi, ecx
1931
                lea     ebx, [ebx+ebp-70E44324h]
1932
                and     edi, eax
1933
                mov     ebp, [esi+34h]
1934
                xor     edi, edx
1935
                add     ebx, edi
1936
                mov     edi, ecx
1937
                rol     ebx, 8
1938
                xor     edi, ebx
1939
                lea     eax, [eax+ebp-70E44324h]
1940
                and     edi, edx
1941
                mov     ebp, [esi+0Ch]
1942
                xor     edi, ecx
1943
                add     eax, edi
1944
                mov     edi, ebx
1945
                rol     eax, 9
1946
                xor     edi, eax
1947
                lea     edx, [edx+ebp-70E44324h]
1948
                and     edi, ecx
1949
                mov     ebp, [esi+1Ch]
1950
                xor     edi, ebx
1951
                add     edx, edi
1952
                mov     edi, eax
1953
                rol     edx, 0Eh
1954
                xor     edi, edx
1955
                lea     ecx, [ecx+ebp-70E44324h]
1956
                and     edi, ebx
1957
                mov     ebp, [esi+3Ch]
1958
                xor     edi, eax
1959
                add     ecx, edi
1960
                mov     edi, edx
1961
                rol     ecx, 5
1962
                xor     edi, ecx
1963
                lea     ebx, [ebx+ebp-70E44324h]
1964
                and     edi, eax
1965
                mov     ebp, [esi+38h]
1966
                xor     edi, edx
1967
                add     ebx, edi
1968
                mov     edi, ecx
1969
                rol     ebx, 6
1970
                xor     edi, ebx
1971
                lea     eax, [eax+ebp-70E44324h]
1972
                and     edi, edx
1973
                mov     ebp, [esi+14h]
1974
                xor     edi, ecx
1975
                add     eax, edi
1976
                mov     edi, ebx
1977
                rol     eax, 8
1978
                xor     edi, eax
1979
                lea     edx, [edx+ebp-70E44324h]
1980
                and     edi, ecx
1981
                mov     ebp, [esi+18h]
1982
                xor     edi, ebx
1983
                add     edx, edi
1984
                mov     edi, eax
1985
                rol     edx, 6
1986
                xor     edi, edx
1987
                lea     ecx, [ecx+ebp-70E44324h]
1988
                and     edi, ebx
1989
                mov     ebp, [esi+8]
1990
                xor     edi, eax
1991
                add     ecx, edi
1992
                mov     edi, edx
1993
                rol     ecx, 5
1994
                xor     edi, ecx
1995
                lea     ebx, [ebx+ebp-70E44324h]
1996
                and     edi, eax
1997
                xor     edi, edx
1998
                add     ebx, edi
1999
                rol     ebx, 0Ch
2000
                mov     edi, [esp+10h]
2001
                mov     [esp], eax
2002
                mov     [esp+4], ebx
2003
                mov     eax, [edi]
2004
                mov     ebx, [edi+4]
2005
                mov     [esp+8], ecx
2006
                mov     ecx, [edi+8]
2007
                mov     ebp, [esi+14h]
2008
                mov     [esp+0Ch], edx
2009
                mov     edx, [edi+0Ch]
2010
                mov     edi, ecx
2011
                xor     edi, ebx
2012
                lea     eax, [eax+ebp+50A28BE6h]
2013
                and     edi, edx
2014
                mov     ebp, [esi+38h]
2015
                xor     edi, ecx
2016
                add     eax, edi
2017
                mov     edi, ebx
2018
                rol     eax, 8
2019
                xor     edi, eax
2020
                lea     edx, [edx+ebp+50A28BE6h]
2021
                and     edi, ecx
2022
                mov     ebp, [esi+1Ch]
2023
                xor     edi, ebx
2024
                add     edx, edi
2025
                mov     edi, eax
2026
                rol     edx, 9
2027
                xor     edi, edx
2028
                lea     ecx, [ecx+ebp+50A28BE6h]
2029
                and     edi, ebx
2030
                mov     ebp, [esi]
2031
                xor     edi, eax
2032
                add     ecx, edi
2033
                mov     edi, edx
2034
                rol     ecx, 9
2035
                xor     edi, ecx
2036
                lea     ebx, [ebx+ebp+50A28BE6h]
2037
                and     edi, eax
2038
                mov     ebp, [esi+24h]
2039
                xor     edi, edx
2040
                add     ebx, edi
2041
                mov     edi, ecx
2042
                rol     ebx, 0Bh
2043
                xor     edi, ebx
2044
                lea     eax, [eax+ebp+50A28BE6h]
2045
                and     edi, edx
2046
                mov     ebp, [esi+8]
2047
                xor     edi, ecx
2048
                add     eax, edi
2049
                mov     edi, ebx
2050
                rol     eax, 0Dh
2051
                xor     edi, eax
2052
                lea     edx, [edx+ebp+50A28BE6h]
2053
                and     edi, ecx
2054
                mov     ebp, [esi+2Ch]
2055
                xor     edi, ebx
2056
                add     edx, edi
2057
                mov     edi, eax
2058
                rol     edx, 0Fh
2059
                xor     edi, edx
2060
                lea     ecx, [ecx+ebp+50A28BE6h]
2061
                and     edi, ebx
2062
                mov     ebp, [esi+10h]
2063
                xor     edi, eax
2064
                add     ecx, edi
2065
                mov     edi, edx
2066
                rol     ecx, 0Fh
2067
                xor     edi, ecx
2068
                lea     ebx, [ebx+ebp+50A28BE6h]
2069
                and     edi, eax
2070
                mov     ebp, [esi+34h]
2071
                xor     edi, edx
2072
                add     ebx, edi
2073
                mov     edi, ecx
2074
                rol     ebx, 5
2075
                xor     edi, ebx
2076
                lea     eax, [eax+ebp+50A28BE6h]
2077
                and     edi, edx
2078
                mov     ebp, [esi+18h]
2079
                xor     edi, ecx
2080
                add     eax, edi
2081
                mov     edi, ebx
2082
                rol     eax, 7
2083
                xor     edi, eax
2084
                lea     edx, [edx+ebp+50A28BE6h]
2085
                and     edi, ecx
2086
                mov     ebp, [esi+3Ch]
2087
                xor     edi, ebx
2088
                add     edx, edi
2089
                mov     edi, eax
2090
                rol     edx, 7
2091
                xor     edi, edx
2092
                lea     ecx, [ecx+ebp+50A28BE6h]
2093
                and     edi, ebx
2094
                mov     ebp, [esi+20h]
2095
                xor     edi, eax
2096
                add     ecx, edi
2097
                mov     edi, edx
2098
                rol     ecx, 8
2099
                xor     edi, ecx
2100
                lea     ebx, [ebx+ebp+50A28BE6h]
2101
                and     edi, eax
2102
                mov     ebp, [esi+4]
2103
                xor     edi, edx
2104
                add     ebx, edi
2105
                mov     edi, ecx
2106
                rol     ebx, 0Bh
2107
                xor     edi, ebx
2108
                lea     eax, [eax+ebp+50A28BE6h]
2109
                and     edi, edx
2110
                mov     ebp, [esi+28h]
2111
                xor     edi, ecx
2112
                add     eax, edi
2113
                mov     edi, ebx
2114
                rol     eax, 0Eh
2115
                xor     edi, eax
2116
                lea     edx, [edx+ebp+50A28BE6h]
2117
                and     edi, ecx
2118
                mov     ebp, [esi+0Ch]
2119
                xor     edi, ebx
2120
                add     edx, edi
2121
                mov     edi, eax
2122
                rol     edx, 0Eh
2123
                xor     edi, edx
2124
                lea     ecx, [ecx+ebp+50A28BE6h]
2125
                and     edi, ebx
2126
                mov     ebp, [esi+30h]
2127
                xor     edi, eax
2128
                add     ecx, edi
2129
                mov     edi, edx
2130
                rol     ecx, 0Ch
2131
                xor     edi, ecx
2132
                lea     ebx, [ebx+ebp+50A28BE6h]
2133
                and     edi, eax
2134
                mov     ebp, [esi+18h]
2135
                xor     edi, edx
2136
                add     ebx, edi
2137
                mov     edi, ecx
2138
                rol     ebx, 6
2139
                xor     edi, 0FFFFFFFFh
2140
                lea     eax, [eax+ebp+5C4DD124h]
2141
                or      edi, ebx
2142
                mov     ebp, ebx
2143
                xor     edi, edx
2144
                xor     ebp, 0FFFFFFFFh
2145
                add     eax, edi
2146
                mov     edi, [esi+2Ch]
2147
                rol     eax, 9
2148
                or      ebp, eax
2149
                lea     edx, [edx+edi+5C4DD124h]
2150
                xor     ebp, ecx
2151
                mov     edi, eax
2152
                add     edx, ebp
2153
                mov     ebp, [esi+0Ch]
2154
                rol     edx, 0Dh
2155
                xor     edi, 0FFFFFFFFh
2156
                lea     ecx, [ecx+ebp+5C4DD124h]
2157
                or      edi, edx
2158
                mov     ebp, edx
2159
                xor     edi, ebx
2160
                xor     ebp, 0FFFFFFFFh
2161
                add     ecx, edi
2162
                mov     edi, [esi+1Ch]
2163
                rol     ecx, 0Fh
2164
                or      ebp, ecx
2165
                lea     ebx, [ebx+edi+5C4DD124h]
2166
                xor     ebp, eax
2167
                mov     edi, ecx
2168
                add     ebx, ebp
2169
                mov     ebp, [esi]
2170
                rol     ebx, 7
2171
                xor     edi, 0FFFFFFFFh
2172
                lea     eax, [eax+ebp+5C4DD124h]
2173
                or      edi, ebx
2174
                mov     ebp, ebx
2175
                xor     edi, edx
2176
                xor     ebp, 0FFFFFFFFh
2177
                add     eax, edi
2178
                mov     edi, [esi+34h]
2179
                rol     eax, 0Ch
2180
                or      ebp, eax
2181
                lea     edx, [edx+edi+5C4DD124h]
2182
                xor     ebp, ecx
2183
                mov     edi, eax
2184
                add     edx, ebp
2185
                mov     ebp, [esi+14h]
2186
                rol     edx, 8
2187
                xor     edi, 0FFFFFFFFh
2188
                lea     ecx, [ecx+ebp+5C4DD124h]
2189
                or      edi, edx
2190
                mov     ebp, edx
2191
                xor     edi, ebx
2192
                xor     ebp, 0FFFFFFFFh
2193
                add     ecx, edi
2194
                mov     edi, [esi+28h]
2195
                rol     ecx, 9
2196
                or      ebp, ecx
2197
                lea     ebx, [ebx+edi+5C4DD124h]
2198
                xor     ebp, eax
2199
                mov     edi, ecx
2200
                add     ebx, ebp
2201
                mov     ebp, [esi+38h]
2202
                rol     ebx, 0Bh
2203
                xor     edi, 0FFFFFFFFh
2204
                lea     eax, [eax+ebp+5C4DD124h]
2205
                or      edi, ebx
2206
                mov     ebp, ebx
2207
                xor     edi, edx
2208
                xor     ebp, 0FFFFFFFFh
2209
                add     eax, edi
2210
                mov     edi, [esi+3Ch]
2211
                rol     eax, 7
2212
                or      ebp, eax
2213
                lea     edx, [edx+edi+5C4DD124h]
2214
                xor     ebp, ecx
2215
                mov     edi, eax
2216
                add     edx, ebp
2217
                mov     ebp, [esi+20h]
2218
                rol     edx, 7
2219
                xor     edi, 0FFFFFFFFh
2220
                lea     ecx, [ecx+ebp+5C4DD124h]
2221
                or      edi, edx
2222
                mov     ebp, edx
2223
                xor     edi, ebx
2224
                xor     ebp, 0FFFFFFFFh
2225
                add     ecx, edi
2226
                mov     edi, [esi+30h]
2227
                rol     ecx, 0Ch
2228
                or      ebp, ecx
2229
                lea     ebx, [ebx+edi+5C4DD124h]
2230
                xor     ebp, eax
2231
                mov     edi, ecx
2232
                add     ebx, ebp
2233
                mov     ebp, [esi+10h]
2234
                rol     ebx, 7
2235
                xor     edi, 0FFFFFFFFh
2236
                lea     eax, [eax+ebp+5C4DD124h]
2237
                or      edi, ebx
2238
                mov     ebp, ebx
2239
                xor     edi, edx
2240
                xor     ebp, 0FFFFFFFFh
2241
                add     eax, edi
2242
                mov     edi, [esi+24h]
2243
                rol     eax, 6
2244
                or      ebp, eax
2245
                lea     edx, [edx+edi+5C4DD124h]
2246
                xor     ebp, ecx
2247
                mov     edi, eax
2248
                add     edx, ebp
2249
                mov     ebp, [esi+4]
2250
                rol     edx, 0Fh
2251
                xor     edi, 0FFFFFFFFh
2252
                lea     ecx, [ecx+ebp+5C4DD124h]
2253
                or      edi, edx
2254
                mov     ebp, edx
2255
                xor     edi, ebx
2256
                xor     ebp, 0FFFFFFFFh
2257
                add     ecx, edi
2258
                mov     edi, [esi+8]
2259
                rol     ecx, 0Dh
2260
                or      ebp, ecx
2261
                lea     ebx, [ebx+edi+5C4DD124h]
2262
                xor     ebp, eax
2263
                mov     edi, ecx
2264
                add     ebx, ebp
2265
                mov     ebp, [esi+3Ch]
2266
                rol     ebx, 0Bh
2267
                xor     edi, edx
2268
                lea     eax, [eax+ebp+6D703EF3h]
2269
                and     edi, ebx
2270
                mov     ebp, ebx
2271
                xor     edi, edx
2272
                xor     ebp, ecx
2273
                add     eax, edi
2274
                mov     edi, [esi+14h]
2275
                rol     eax, 9
2276
                and     ebp, eax
2277
                lea     edx, [edx+edi+6D703EF3h]
2278
                xor     ebp, ecx
2279
                mov     edi, eax
2280
                add     edx, ebp
2281
                mov     ebp, [esi+4]
2282
                rol     edx, 7
2283
                xor     edi, ebx
2284
                lea     ecx, [ecx+ebp+6D703EF3h]
2285
                and     edi, edx
2286
                mov     ebp, edx
2287
                xor     edi, ebx
2288
                xor     ebp, eax
2289
                add     ecx, edi
2290
                mov     edi, [esi+0Ch]
2291
                rol     ecx, 0Fh
2292
                and     ebp, ecx
2293
                lea     ebx, [ebx+edi+6D703EF3h]
2294
                xor     ebp, eax
2295
                mov     edi, ecx
2296
                add     ebx, ebp
2297
                mov     ebp, [esi+1Ch]
2298
                rol     ebx, 0Bh
2299
                xor     edi, edx
2300
                lea     eax, [eax+ebp+6D703EF3h]
2301
                and     edi, ebx
2302
                mov     ebp, ebx
2303
                xor     edi, edx
2304
                xor     ebp, ecx
2305
                add     eax, edi
2306
                mov     edi, [esi+38h]
2307
                rol     eax, 8
2308
                and     ebp, eax
2309
                lea     edx, [edx+edi+6D703EF3h]
2310
                xor     ebp, ecx
2311
                mov     edi, eax
2312
                add     edx, ebp
2313
                mov     ebp, [esi+18h]
2314
                rol     edx, 6
2315
                xor     edi, ebx
2316
                lea     ecx, [ecx+ebp+6D703EF3h]
2317
                and     edi, edx
2318
                mov     ebp, edx
2319
                xor     edi, ebx
2320
                xor     ebp, eax
2321
                add     ecx, edi
2322
                mov     edi, [esi+24h]
2323
                rol     ecx, 6
2324
                and     ebp, ecx
2325
                lea     ebx, [ebx+edi+6D703EF3h]
2326
                xor     ebp, eax
2327
                mov     edi, ecx
2328
                add     ebx, ebp
2329
                mov     ebp, [esi+2Ch]
2330
                rol     ebx, 0Eh
2331
                xor     edi, edx
2332
                lea     eax, [eax+ebp+6D703EF3h]
2333
                and     edi, ebx
2334
                mov     ebp, ebx
2335
                xor     edi, edx
2336
                xor     ebp, ecx
2337
                add     eax, edi
2338
                mov     edi, [esi+20h]
2339
                rol     eax, 0Ch
2340
                and     ebp, eax
2341
                lea     edx, [edx+edi+6D703EF3h]
2342
                xor     ebp, ecx
2343
                mov     edi, eax
2344
                add     edx, ebp
2345
                mov     ebp, [esi+30h]
2346
                rol     edx, 0Dh
2347
                xor     edi, ebx
2348
                lea     ecx, [ecx+ebp+6D703EF3h]
2349
                and     edi, edx
2350
                mov     ebp, edx
2351
                xor     edi, ebx
2352
                xor     ebp, eax
2353
                add     ecx, edi
2354
                mov     edi, [esi+8]
2355
                rol     ecx, 5
2356
                and     ebp, ecx
2357
                lea     ebx, [ebx+edi+6D703EF3h]
2358
                xor     ebp, eax
2359
                mov     edi, ecx
2360
                add     ebx, ebp
2361
                mov     ebp, [esi+28h]
2362
                rol     ebx, 0Eh
2363
                xor     edi, edx
2364
                lea     eax, [eax+ebp+6D703EF3h]
2365
                and     edi, ebx
2366
                mov     ebp, ebx
2367
                xor     edi, edx
2368
                xor     ebp, ecx
2369
                add     eax, edi
2370
                mov     edi, [esi]
2371
                rol     eax, 0Dh
2372
                and     ebp, eax
2373
                lea     edx, [edx+edi+6D703EF3h]
2374
                xor     ebp, ecx
2375
                mov     edi, eax
2376
                add     edx, ebp
2377
                mov     ebp, [esi+10h]
2378
                rol     edx, 0Dh
2379
                xor     edi, ebx
2380
                lea     ecx, [ecx+ebp+6D703EF3h]
2381
                and     edi, edx
2382
                mov     ebp, edx
2383
                xor     edi, ebx
2384
                xor     ebp, eax
2385
                add     ecx, edi
2386
                mov     edi, [esi+34h]
2387
                rol     ecx, 7
2388
                and     ebp, ecx
2389
                lea     ebx, [ebx+edi+6D703EF3h]
2390
                xor     ebp, eax
2391
                add     ebx, ebp
2392
                rol     ebx, 5
2393
                mov     edi, edx
2394
                xor     edi, ecx
2395
                mov     ebp, [esi+20h]
2396
                xor     edi, ebx
2397
                add     eax, ebp
2398
                add     eax, edi
2399
                mov     edi, ecx
2400
                rol     eax, 0Fh
2401
                xor     edi, ebx
2402
                mov     ebp, [esi+18h]
2403
                xor     edi, eax
2404
                add     edx, ebp
2405
                add     edx, edi
2406
                mov     edi, ebx
2407
                rol     edx, 5
2408
                xor     edi, eax
2409
                mov     ebp, [esi+10h]
2410
                xor     edi, edx
2411
                add     ecx, ebp
2412
                add     ecx, edi
2413
                mov     edi, eax
2414
                rol     ecx, 8
2415
                xor     edi, edx
2416
                mov     ebp, [esi+4]
2417
                xor     edi, ecx
2418
                add     ebx, ebp
2419
                add     ebx, edi
2420
                mov     edi, edx
2421
                rol     ebx, 0Bh
2422
                xor     edi, ecx
2423
                mov     ebp, [esi+0Ch]
2424
                xor     edi, ebx
2425
                add     eax, ebp
2426
                add     eax, edi
2427
                mov     edi, ecx
2428
                rol     eax, 0Eh
2429
                xor     edi, ebx
2430
                mov     ebp, [esi+2Ch]
2431
                xor     edi, eax
2432
                add     edx, ebp
2433
                add     edx, edi
2434
                mov     edi, ebx
2435
                rol     edx, 0Eh
2436
                xor     edi, eax
2437
                mov     ebp, [esi+3Ch]
2438
                xor     edi, edx
2439
                add     ecx, ebp
2440
                add     ecx, edi
2441
                mov     edi, eax
2442
                rol     ecx, 6
2443
                xor     edi, edx
2444
                mov     ebp, [esi]
2445
                xor     edi, ecx
2446
                add     ebx, ebp
2447
                add     ebx, edi
2448
                mov     edi, edx
2449
                rol     ebx, 0Eh
2450
                xor     edi, ecx
2451
                mov     ebp, [esi+14h]
2452
                xor     edi, ebx
2453
                add     eax, ebp
2454
                add     eax, edi
2455
                mov     edi, ecx
2456
                rol     eax, 6
2457
                xor     edi, ebx
2458
                mov     ebp, [esi+30h]
2459
                xor     edi, eax
2460
                add     edx, ebp
2461
                add     edx, edi
2462
                mov     edi, ebx
2463
                rol     edx, 9
2464
                xor     edi, eax
2465
                mov     ebp, [esi+8]
2466
                xor     edi, edx
2467
                add     ecx, ebp
2468
                add     ecx, edi
2469
                mov     edi, eax
2470
                rol     ecx, 0Ch
2471
                xor     edi, edx
2472
                mov     ebp, [esi+34h]
2473
                xor     edi, ecx
2474
                add     ebx, ebp
2475
                add     ebx, edi
2476
                mov     edi, edx
2477
                rol     ebx, 9
2478
                xor     edi, ecx
2479
                mov     ebp, [esi+24h]
2480
                xor     edi, ebx
2481
                add     eax, ebp
2482
                add     eax, edi
2483
                mov     edi, ecx
2484
                rol     eax, 0Ch
2485
                xor     edi, ebx
2486
                mov     ebp, [esi+1Ch]
2487
                xor     edi, eax
2488
                add     edx, ebp
2489
                add     edx, edi
2490
                mov     edi, ebx
2491
                rol     edx, 5
2492
                xor     edi, eax
2493
                mov     ebp, [esi+28h]
2494
                xor     edi, edx
2495
                add     ecx, ebp
2496
                add     ecx, edi
2497
                mov     edi, eax
2498
                rol     ecx, 0Fh
2499
                xor     edi, edx
2500
                mov     ebp, [esi+38h]
2501
                xor     edi, ecx
2502
                add     ebx, ebp
2503
                add     ebx, edi
2504
                rol     ebx, 8
2505
                mov     edi, [esp+10h]
2506
                mov     ebp, [esp+8]
2507
                mov     esi, [esp+0Ch]
2508
                add     edx, ebp
2509
                add     eax, esi
2510
                mov     ebp, [edi+4]
2511
                mov     esi, [edi+8]
2512
                add     edx, ebp
2513
                add     eax, esi
2514
                mov     [edi+4], eax
2515
                mov     ebp, [esp]
2516
                mov     esi, [esp+4]
2517
                add     ebx, ebp
2518
                add     ecx, esi
2519
                mov     ebp, [edi+0Ch]
2520
                mov     esi, [edi]
2521
                add     ebx, ebp
2522
                add     ecx, esi
2523
                mov     [edi+8], ebx
2524
                add     esp, 14h
2525
                mov     [edi+0Ch], ecx
2526
                mov     [edi], edx
2527
2528
                pop     ebp
2529
                pop     edi
2530
                pop     esi
2531
                pop     ebx
2532
end;
2533
{$ENDIF}
2534
2535
{$IFDEF THash_RipeMD160_asm}
2536
procedure THash_RipeMD160.DoTransform(Buffer: PUInt32Array);
2537
asm
2538
                push    ebx
2539
                push    esi
2540
                push    edi
2541
                lea     edi, [eax].THash_RipeMD160.FDigest
2542
                mov     esi, edx
2543
                push    ebp
2544
2545
                mov     eax, [edi]
2546
                mov     ebx, [edi+4]
2547
                push    edi
2548
                mov     ecx, [edi+8]
2549
                mov     edx, [edi+0Ch]
2550
                mov     ebp, [edi+10h]
2551
                add     esp, 0FFFFFFECh
2552
                mov     edi, edx
2553
                xor     edi, ecx
2554
                xor     edi, ebx
2555
                add     eax, [esi]
2556
                rol     ecx, 0Ah
2557
                add     eax, edi
2558
                mov     edi, ecx
2559
                rol     eax, 0Bh
2560
                add     eax, ebp
2561
                xor     edi, ebx
2562
                xor     edi, eax
2563
                add     ebp, [esi+4]
2564
                rol     ebx, 0Ah
2565
                add     ebp, edi
2566
                mov     edi, ebx
2567
                rol     ebp, 0Eh
2568
                add     ebp, edx
2569
                xor     edi, eax
2570
                xor     edi, ebp
2571
                add     edx, [esi+8]
2572
                rol     eax, 0Ah
2573
                add     edx, edi
2574
                mov     edi, eax
2575
                rol     edx, 0Fh
2576
                add     edx, ecx
2577
                xor     edi, ebp
2578
                xor     edi, edx
2579
                add     ecx, [esi+0Ch]
2580
                rol     ebp, 0Ah
2581
                add     ecx, edi
2582
                mov     edi, ebp
2583
                rol     ecx, 0Ch
2584
                add     ecx, ebx
2585
                xor     edi, edx
2586
                xor     edi, ecx
2587
                add     ebx, [esi+10h]
2588
                rol     edx, 0Ah
2589
                add     ebx, edi
2590
                mov     edi, edx
2591
                rol     ebx, 5
2592
                add     ebx, eax
2593
                xor     edi, ecx
2594
                xor     edi, ebx
2595
                add     eax, [esi+14h]
2596
                rol     ecx, 0Ah
2597
                add     eax, edi
2598
                mov     edi, ecx
2599
                rol     eax, 8
2600
                add     eax, ebp
2601
                xor     edi, ebx
2602
                xor     edi, eax
2603
                add     ebp, [esi+18h]
2604
                rol     ebx, 0Ah
2605
                add     ebp, edi
2606
                mov     edi, ebx
2607
                rol     ebp, 7
2608
                add     ebp, edx
2609
                xor     edi, eax
2610
                xor     edi, ebp
2611
                add     edx, [esi+1Ch]
2612
                rol     eax, 0Ah
2613
                add     edx, edi
2614
                mov     edi, eax
2615
                rol     edx, 9
2616
                add     edx, ecx
2617
                xor     edi, ebp
2618
                xor     edi, edx
2619
                add     ecx, [esi+20h]
2620
                rol     ebp, 0Ah
2621
                add     ecx, edi
2622
                mov     edi, ebp
2623
                rol     ecx, 0Bh
2624
                add     ecx, ebx
2625
                xor     edi, edx
2626
                xor     edi, ecx
2627
                add     ebx, [esi+24h]
2628
                rol     edx, 0Ah
2629
                add     ebx, edi
2630
                mov     edi, edx
2631
                rol     ebx, 0Dh
2632
                add     ebx, eax
2633
                xor     edi, ecx
2634
                xor     edi, ebx
2635
                add     eax, [esi+28h]
2636
                rol     ecx, 0Ah
2637
                add     eax, edi
2638
                mov     edi, ecx
2639
                rol     eax, 0Eh
2640
                add     eax, ebp
2641
                xor     edi, ebx
2642
                xor     edi, eax
2643
                add     ebp, [esi+2Ch]
2644
                rol     ebx, 0Ah
2645
                add     ebp, edi
2646
                mov     edi, ebx
2647
                rol     ebp, 0Fh
2648
                add     ebp, edx
2649
                xor     edi, eax
2650
                xor     edi, ebp
2651
                add     edx, [esi+30h]
2652
                rol     eax, 0Ah
2653
                add     edx, edi
2654
                mov     edi, eax
2655
                rol     edx, 6
2656
                add     edx, ecx
2657
                xor     edi, ebp
2658
                xor     edi, edx
2659
                add     ecx, [esi+34h]
2660
                rol     ebp, 0Ah
2661
                add     ecx, edi
2662
                mov     edi, ebp
2663
                rol     ecx, 7
2664
                add     ecx, ebx
2665
                xor     edi, edx
2666
                xor     edi, ecx
2667
                add     ebx, [esi+38h]
2668
                rol     edx, 0Ah
2669
                add     ebx, edi
2670
                mov     edi, edx
2671
                rol     ebx, 9
2672
                add     ebx, eax
2673
                xor     edi, ecx
2674
                xor     edi, ebx
2675
                add     eax, [esi+3Ch]
2676
                rol     ecx, 0Ah
2677
                add     eax, edi
2678
                mov     edi, ecx
2679
                rol     eax, 8
2680
                add     eax, ebp
2681
                xor     edi, ebx
2682
                add     ebp, [esi+1Ch]
2683
                and     edi, eax
2684
                xor     edi, ecx
2685
                rol     ebx, 0Ah
2686
                lea     ebp, [ebp+edi+5A827999h]
2687
                mov     edi, ebx
2688
                rol     ebp, 7
2689
                add     ebp, edx
2690
                xor     edi, eax
2691
                add     edx, [esi+10h]
2692
                and     edi, ebp
2693
                xor     edi, ebx
2694
                rol     eax, 0Ah
2695
                lea     edx, [edx+edi+5A827999h]
2696
                mov     edi, eax
2697
                rol     edx, 6
2698
                add     edx, ecx
2699
                xor     edi, ebp
2700
                add     ecx, [esi+34h]
2701
                and     edi, edx
2702
                xor     edi, eax
2703
                rol     ebp, 0Ah
2704
                lea     ecx, [ecx+edi+5A827999h]
2705
                mov     edi, ebp
2706
                rol     ecx, 8
2707
                add     ecx, ebx
2708
                xor     edi, edx
2709
                add     ebx, [esi+4]
2710
                and     edi, ecx
2711
                xor     edi, ebp
2712
                rol     edx, 0Ah
2713
                lea     ebx, [ebx+edi+5A827999h]
2714
                mov     edi, edx
2715
                rol     ebx, 0Dh
2716
                add     ebx, eax
2717
                xor     edi, ecx
2718
                add     eax, [esi+28h]
2719
                and     edi, ebx
2720
                xor     edi, edx
2721
                rol     ecx, 0Ah
2722
                lea     eax, [eax+edi+5A827999h]
2723
                mov     edi, ecx
2724
                rol     eax, 0Bh
2725
                add     eax, ebp
2726
                xor     edi, ebx
2727
                add     ebp, [esi+18h]
2728
                and     edi, eax
2729
                xor     edi, ecx
2730
                rol     ebx, 0Ah
2731
                lea     ebp, [ebp+edi+5A827999h]
2732
                mov     edi, ebx
2733
                rol     ebp, 9
2734
                add     ebp, edx
2735
                xor     edi, eax
2736
                add     edx, [esi+3Ch]
2737
                and     edi, ebp
2738
                xor     edi, ebx
2739
                rol     eax, 0Ah
2740
                lea     edx, [edx+edi+5A827999h]
2741
                mov     edi, eax
2742
                rol     edx, 7
2743
                add     edx, ecx
2744
                xor     edi, ebp
2745
                add     ecx, [esi+0Ch]
2746
                and     edi, edx
2747
                xor     edi, eax
2748
                rol     ebp, 0Ah
2749
                lea     ecx, [ecx+edi+5A827999h]
2750
                mov     edi, ebp
2751
                rol     ecx, 0Fh
2752
                add     ecx, ebx
2753
                xor     edi, edx
2754
                add     ebx, [esi+30h]
2755
                and     edi, ecx
2756
                xor     edi, ebp
2757
                rol     edx, 0Ah
2758
                lea     ebx, [ebx+edi+5A827999h]
2759
                mov     edi, edx
2760
                rol     ebx, 7
2761
                add     ebx, eax
2762
                xor     edi, ecx
2763
                add     eax, [esi]
2764
                and     edi, ebx
2765
                xor     edi, edx
2766
                rol     ecx, 0Ah
2767
                lea     eax, [eax+edi+5A827999h]
2768
                mov     edi, ecx
2769
                rol     eax, 0Ch
2770
                add     eax, ebp
2771
                xor     edi, ebx
2772
                add     ebp, [esi+24h]
2773
                and     edi, eax
2774
                xor     edi, ecx
2775
                rol     ebx, 0Ah
2776
                lea     ebp, [ebp+edi+5A827999h]
2777
                mov     edi, ebx
2778
                rol     ebp, 0Fh
2779
                add     ebp, edx
2780
                xor     edi, eax
2781
                add     edx, [esi+14h]
2782
                and     edi, ebp
2783
                xor     edi, ebx
2784
                rol     eax, 0Ah
2785
                lea     edx, [edx+edi+5A827999h]
2786
                mov     edi, eax
2787
                rol     edx, 9
2788
                add     edx, ecx
2789
                xor     edi, ebp
2790
                add     ecx, [esi+8]
2791
                and     edi, edx
2792
                xor     edi, eax
2793
                rol     ebp, 0Ah
2794
                lea     ecx, [ecx+edi+5A827999h]
2795
                mov     edi, ebp
2796
                rol     ecx, 0Bh
2797
                add     ecx, ebx
2798
                xor     edi, edx
2799
                add     ebx, [esi+38h]
2800
                and     edi, ecx
2801
                xor     edi, ebp
2802
                rol     edx, 0Ah
2803
                lea     ebx, [ebx+edi+5A827999h]
2804
                mov     edi, edx
2805
                rol     ebx, 7
2806
                add     ebx, eax
2807
                xor     edi, ecx
2808
                add     eax, [esi+2Ch]
2809
                and     edi, ebx
2810
                xor     edi, edx
2811
                rol     ecx, 0Ah
2812
                lea     eax, [eax+edi+5A827999h]
2813
                mov     edi, ecx
2814
                rol     eax, 0Dh
2815
                add     eax, ebp
2816
                xor     edi, ebx
2817
                add     ebp, [esi+20h]
2818
                and     edi, eax
2819
                xor     edi, ecx
2820
                rol     ebx, 0Ah
2821
                lea     ebp, [ebp+edi+5A827999h]
2822
                mov     edi, ebx
2823
                rol     ebp, 0Ch
2824
                add     ebp, edx
2825
                mov     edi, eax
2826
                xor     edi, 0FFFFFFFFh
2827
                or      edi, ebp
2828
                add     edx, [esi+0Ch]
2829
                xor     edi, ebx
2830
                rol     eax, 0Ah
2831
                lea     edx, [edx+edi+6ED9EBA1h]
2832
                mov     edi, ebp
2833
                rol     edx, 0Bh
2834
                xor     edi, 0FFFFFFFFh
2835
                add     edx, ecx
2836
                or      edi, edx
2837
                add     ecx, [esi+28h]
2838
                xor     edi, eax
2839
                rol     ebp, 0Ah
2840
                lea     ecx, [ecx+edi+6ED9EBA1h]
2841
                mov     edi, edx
2842
                rol     ecx, 0Dh
2843
                xor     edi, 0FFFFFFFFh
2844
                add     ecx, ebx
2845
                or      edi, ecx
2846
                add     ebx, [esi+38h]
2847
                xor     edi, ebp
2848
                rol     edx, 0Ah
2849
                lea     ebx, [ebx+edi+6ED9EBA1h]
2850
                mov     edi, ecx
2851
                rol     ebx, 6
2852
                xor     edi, 0FFFFFFFFh
2853
                add     ebx, eax
2854
                or      edi, ebx
2855
                add     eax, [esi+10h]
2856
                xor     edi, edx
2857
                rol     ecx, 0Ah
2858
                lea     eax, [eax+edi+6ED9EBA1h]
2859
                mov     edi, ebx
2860
                rol     eax, 7
2861
                xor     edi, 0FFFFFFFFh
2862
                add     eax, ebp
2863
                or      edi, eax
2864
                add     ebp, [esi+24h]
2865
                xor     edi, ecx
2866
                rol     ebx, 0Ah
2867
                lea     ebp, [ebp+edi+6ED9EBA1h]
2868
                mov     edi, eax
2869
                rol     ebp, 0Eh
2870
                xor     edi, 0FFFFFFFFh
2871
                add     ebp, edx
2872
                or      edi, ebp
2873
                add     edx, [esi+3Ch]
2874
                xor     edi, ebx
2875
                rol     eax, 0Ah
2876
                lea     edx, [edx+edi+6ED9EBA1h]
2877
                mov     edi, ebp
2878
                rol     edx, 9
2879
                xor     edi, 0FFFFFFFFh
2880
                add     edx, ecx
2881
                or      edi, edx
2882
                add     ecx, [esi+20h]
2883
                xor     edi, eax
2884
                rol     ebp, 0Ah
2885
                lea     ecx, [ecx+edi+6ED9EBA1h]
2886
                mov     edi, edx
2887
                rol     ecx, 0Dh
2888
                xor     edi, 0FFFFFFFFh
2889
                add     ecx, ebx
2890
                or      edi, ecx
2891
                add     ebx, [esi+4]
2892
                xor     edi, ebp
2893
                rol     edx, 0Ah
2894
                lea     ebx, [ebx+edi+6ED9EBA1h]
2895
                mov     edi, ecx
2896
                rol     ebx, 0Fh
2897
                xor     edi, 0FFFFFFFFh
2898
                add     ebx, eax
2899
                or      edi, ebx
2900
                add     eax, [esi+8]
2901
                xor     edi, edx
2902
                rol     ecx, 0Ah
2903
                lea     eax, [eax+edi+6ED9EBA1h]
2904
                mov     edi, ebx
2905
                rol     eax, 0Eh
2906
                xor     edi, 0FFFFFFFFh
2907
                add     eax, ebp
2908
                or      edi, eax
2909
                add     ebp, [esi+1Ch]
2910
                xor     edi, ecx
2911
                rol     ebx, 0Ah
2912
                lea     ebp, [ebp+edi+6ED9EBA1h]
2913
                mov     edi, eax
2914
                rol     ebp, 8
2915
                xor     edi, 0FFFFFFFFh
2916
                add     ebp, edx
2917
                or      edi, ebp
2918
                add     edx, [esi]
2919
                xor     edi, ebx
2920
                rol     eax, 0Ah
2921
                lea     edx, [edx+edi+6ED9EBA1h]
2922
                mov     edi, ebp
2923
                rol     edx, 0Dh
2924
                xor     edi, 0FFFFFFFFh
2925
                add     edx, ecx
2926
                or      edi, edx
2927
                add     ecx, [esi+18h]
2928
                xor     edi, eax
2929
                rol     ebp, 0Ah
2930
                lea     ecx, [ecx+edi+6ED9EBA1h]
2931
                mov     edi, edx
2932
                rol     ecx, 6
2933
                xor     edi, 0FFFFFFFFh
2934
                add     ecx, ebx
2935
                or      edi, ecx
2936
                add     ebx, [esi+34h]
2937
                xor     edi, ebp
2938
                rol     edx, 0Ah
2939
                lea     ebx, [ebx+edi+6ED9EBA1h]
2940
                mov     edi, ecx
2941
                rol     ebx, 5
2942
                xor     edi, 0FFFFFFFFh
2943
                add     ebx, eax
2944
                or      edi, ebx
2945
                add     eax, [esi+2Ch]
2946
                xor     edi, edx
2947
                rol     ecx, 0Ah
2948
                lea     eax, [eax+edi+6ED9EBA1h]
2949
                mov     edi, ebx
2950
                rol     eax, 0Ch
2951
                xor     edi, 0FFFFFFFFh
2952
                add     eax, ebp
2953
                or      edi, eax
2954
                add     ebp, [esi+14h]
2955
                xor     edi, ecx
2956
                rol     ebx, 0Ah
2957
                lea     ebp, [ebp+edi+6ED9EBA1h]
2958
                mov     edi, eax
2959
                rol     ebp, 7
2960
                xor     edi, 0FFFFFFFFh
2961
                add     ebp, edx
2962
                or      edi, ebp
2963
                add     edx, [esi+30h]
2964
                xor     edi, ebx
2965
                rol     eax, 0Ah
2966
                lea     edx, [edx+edi+6ED9EBA1h]
2967
                mov     edi, ebp
2968
                rol     edx, 5
2969
                xor     edi, 0FFFFFFFFh
2970
                add     edx, ecx
2971
                mov     edi, ebp
2972
                xor     edi, edx
2973
                and     edi, eax
2974
                add     ecx, [esi+4]
2975
                xor     edi, ebp
2976
                rol     ebp, 0Ah
2977
                lea     ecx, [ecx+edi-70E44324h]
2978
                mov     edi, edx
2979
                rol     ecx, 0Bh
2980
                add     ecx, ebx
2981
                xor     edi, ecx
2982
                and     edi, ebp
2983
                add     ebx, [esi+24h]
2984
                xor     edi, edx
2985
                rol     edx, 0Ah
2986
                lea     ebx, [ebx+edi-70E44324h]
2987
                mov     edi, ecx
2988
                rol     ebx, 0Ch
2989
                add     ebx, eax
2990
                xor     edi, ebx
2991
                and     edi, edx
2992
                add     eax, [esi+2Ch]
2993
                xor     edi, ecx
2994
                rol     ecx, 0Ah
2995
                lea     eax, [eax+edi-70E44324h]
2996
                mov     edi, ebx
2997
                rol     eax, 0Eh
2998
                add     eax, ebp
2999
                xor     edi, eax
3000
                and     edi, ecx
3001
                add     ebp, [esi+28h]
3002
                xor     edi, ebx
3003
                rol     ebx, 0Ah
3004
                lea     ebp, [ebp+edi-70E44324h]
3005
                mov     edi, eax
3006
                rol     ebp, 0Fh
3007
                add     ebp, edx
3008
                xor     edi, ebp
3009
                and     edi, ebx
3010
                add     edx, [esi]
3011
                xor     edi, eax
3012
                rol     eax, 0Ah
3013
                lea     edx, [edx+edi-70E44324h]
3014
                mov     edi, ebp
3015
                rol     edx, 0Eh
3016
                add     edx, ecx
3017
                xor     edi, edx
3018
                and     edi, eax
3019
                add     ecx, [esi+20h]
3020
                xor     edi, ebp
3021
                rol     ebp, 0Ah
3022
                lea     ecx, [ecx+edi-70E44324h]
3023
                mov     edi, edx
3024
                rol     ecx, 0Fh
3025
                add     ecx, ebx
3026
                xor     edi, ecx
3027
                and     edi, ebp
3028
                add     ebx, [esi+30h]
3029
                xor     edi, edx
3030
                rol     edx, 0Ah
3031
                lea     ebx, [ebx+edi-70E44324h]
3032
                mov     edi, ecx
3033
                rol     ebx, 9
3034
                add     ebx, eax
3035
                xor     edi, ebx
3036
                and     edi, edx
3037
                add     eax, [esi+10h]
3038
                xor     edi, ecx
3039
                rol     ecx, 0Ah
3040
                lea     eax, [eax+edi-70E44324h]
3041
                mov     edi, ebx
3042
                rol     eax, 8
3043
                add     eax, ebp
3044
                xor     edi, eax
3045
                and     edi, ecx
3046
                add     ebp, [esi+34h]
3047
                xor     edi, ebx
3048
                rol     ebx, 0Ah
3049
                lea     ebp, [ebp+edi-70E44324h]
3050
                mov     edi, eax
3051
                rol     ebp, 9
3052
                add     ebp, edx
3053
                xor     edi, ebp
3054
                and     edi, ebx
3055
                add     edx, [esi+0Ch]
3056
                xor     edi, eax
3057
                rol     eax, 0Ah
3058
                lea     edx, [edx+edi-70E44324h]
3059
                mov     edi, ebp
3060
                rol     edx, 0Eh
3061
                add     edx, ecx
3062
                xor     edi, edx
3063
                and     edi, eax
3064
                add     ecx, [esi+1Ch]
3065
                xor     edi, ebp
3066
                rol     ebp, 0Ah
3067
                lea     ecx, [ecx+edi-70E44324h]
3068
                mov     edi, edx
3069
                rol     ecx, 5
3070
                add     ecx, ebx
3071
                xor     edi, ecx
3072
                and     edi, ebp
3073
                add     ebx, [esi+3Ch]
3074
                xor     edi, edx
3075
                rol     edx, 0Ah
3076
                lea     ebx, [ebx+edi-70E44324h]
3077
                mov     edi, ecx
3078
                rol     ebx, 6
3079
                add     ebx, eax
3080
                xor     edi, ebx
3081
                and     edi, edx
3082
                add     eax, [esi+38h]
3083
                xor     edi, ecx
3084
                rol     ecx, 0Ah
3085
                lea     eax, [eax+edi-70E44324h]
3086
                mov     edi, ebx
3087
                rol     eax, 8
3088
                add     eax, ebp
3089
                xor     edi, eax
3090
                and     edi, ecx
3091
                add     ebp, [esi+14h]
3092
                xor     edi, ebx
3093
                rol     ebx, 0Ah
3094
                lea     ebp, [ebp+edi-70E44324h]
3095
                mov     edi, eax
3096
                rol     ebp, 6
3097
                add     ebp, edx
3098
                xor     edi, ebp
3099
                and     edi, ebx
3100
                add     edx, [esi+18h]
3101
                xor     edi, eax
3102
                rol     eax, 0Ah
3103
                lea     edx, [edx+edi-70E44324h]
3104
                mov     edi, ebp
3105
                rol     edx, 5
3106
                add     edx, ecx
3107
                xor     edi, edx
3108
                and     edi, eax
3109
                add     ecx, [esi+8]
3110
                xor     edi, ebp
3111
                rol     ebp, 0Ah
3112
                lea     ecx, [ecx+edi-70E44324h]
3113
                mov     edi, edx
3114
                rol     ecx, 0Ch
3115
                add     ecx, ebx
3116
                mov     edi, ebp
3117
                xor     edi, 0FFFFFFFFh
3118
                or      edi, edx
3119
                add     ebx, [esi+10h]
3120
                xor     edi, ecx
3121
                rol     edx, 0Ah
3122
                lea     ebx, [ebx+edi-56AC02B2h]
3123
                mov     edi, edx
3124
                rol     ebx, 9
3125
                add     ebx, eax
3126
                xor     edi, 0FFFFFFFFh
3127
                or      edi, ecx
3128
                add     eax, [esi]
3129
                xor     edi, ebx
3130
                rol     ecx, 0Ah
3131
                lea     eax, [eax+edi-56AC02B2h]
3132
                mov     edi, ecx
3133
                rol     eax, 0Fh
3134
                add     eax, ebp
3135
                xor     edi, 0FFFFFFFFh
3136
                or      edi, ebx
3137
                add     ebp, [esi+14h]
3138
                xor     edi, eax
3139
                rol     ebx, 0Ah
3140
                lea     ebp, [ebp+edi-56AC02B2h]
3141
                mov     edi, ebx
3142
                rol     ebp, 5
3143
                add     ebp, edx
3144
                xor     edi, 0FFFFFFFFh
3145
                or      edi, eax
3146
                add     edx, [esi+24h]
3147
                xor     edi, ebp
3148
                rol     eax, 0Ah
3149
                lea     edx, [edx+edi-56AC02B2h]
3150
                mov     edi, eax
3151
                rol     edx, 0Bh
3152
                add     edx, ecx
3153
                xor     edi, 0FFFFFFFFh
3154
                or      edi, ebp
3155
                add     ecx, [esi+1Ch]
3156
                xor     edi, edx
3157
                rol     ebp, 0Ah
3158
                lea     ecx, [ecx+edi-56AC02B2h]
3159
                mov     edi, ebp
3160
                rol     ecx, 6
3161
                add     ecx, ebx
3162
                xor     edi, 0FFFFFFFFh
3163
                or      edi, edx
3164
                add     ebx, [esi+30h]
3165
                xor     edi, ecx
3166
                rol     edx, 0Ah
3167
                lea     ebx, [ebx+edi-56AC02B2h]
3168
                mov     edi, edx
3169
                rol     ebx, 8
3170
                add     ebx, eax
3171
                xor     edi, 0FFFFFFFFh
3172
                or      edi, ecx
3173
                add     eax, [esi+8]
3174
                xor     edi, ebx
3175
                rol     ecx, 0Ah
3176
                lea     eax, [eax+edi-56AC02B2h]
3177
                mov     edi, ecx
3178
                rol     eax, 0Dh
3179
                add     eax, ebp
3180
                xor     edi, 0FFFFFFFFh
3181
                or      edi, ebx
3182
                add     ebp, [esi+28h]
3183
                xor     edi, eax
3184
                rol     ebx, 0Ah
3185
                lea     ebp, [ebp+edi-56AC02B2h]
3186
                mov     edi, ebx
3187
                rol     ebp, 0Ch
3188
                add     ebp, edx
3189
                xor     edi, 0FFFFFFFFh
3190
                or      edi, eax
3191
                add     edx, [esi+38h]
3192
                xor     edi, ebp
3193
                rol     eax, 0Ah
3194
                lea     edx, [edx+edi-56AC02B2h]
3195
                mov     edi, eax
3196
                rol     edx, 5
3197
                add     edx, ecx
3198
                xor     edi, 0FFFFFFFFh
3199
                or      edi, ebp
3200
                add     ecx, [esi+4]
3201
                xor     edi, edx
3202
                rol     ebp, 0Ah
3203
                lea     ecx, [ecx+edi-56AC02B2h]
3204
                mov     edi, ebp
3205
                rol     ecx, 0Ch
3206
                add     ecx, ebx
3207
                xor     edi, 0FFFFFFFFh
3208
                or      edi, edx
3209
                add     ebx, [esi+0Ch]
3210
                xor     edi, ecx
3211
                rol     edx, 0Ah
3212
                lea     ebx, [ebx+edi-56AC02B2h]
3213
                mov     edi, edx
3214
                rol     ebx, 0Dh
3215
                add     ebx, eax
3216
                xor     edi, 0FFFFFFFFh
3217
                or      edi, ecx
3218
                add     eax, [esi+20h]
3219
                xor     edi, ebx
3220
                rol     ecx, 0Ah
3221
                lea     eax, [eax+edi-56AC02B2h]
3222
                mov     edi, ecx
3223
                rol     eax, 0Eh
3224
                add     eax, ebp
3225
                xor     edi, 0FFFFFFFFh
3226
                or      edi, ebx
3227
                add     ebp, [esi+2Ch]
3228
                xor     edi, eax
3229
                rol     ebx, 0Ah
3230
                lea     ebp, [ebp+edi-56AC02B2h]
3231
                mov     edi, ebx
3232
                rol     ebp, 0Bh
3233
                add     ebp, edx
3234
                xor     edi, 0FFFFFFFFh
3235
                or      edi, eax
3236
                add     edx, [esi+18h]
3237
                xor     edi, ebp
3238
                rol     eax, 0Ah
3239
                lea     edx, [edx+edi-56AC02B2h]
3240
                mov     edi, eax
3241
                rol     edx, 8
3242
                add     edx, ecx
3243
                xor     edi, 0FFFFFFFFh
3244
                or      edi, ebp
3245
                add     ecx, [esi+3Ch]
3246
                xor     edi, edx
3247
                rol     ebp, 0Ah
3248
                lea     ecx, [ecx+edi-56AC02B2h]
3249
                mov     edi, ebp
3250
                rol     ecx, 5
3251
                add     ecx, ebx
3252
                xor     edi, 0FFFFFFFFh
3253
                or      edi, edx
3254
                add     ebx, [esi+34h]
3255
                xor     edi, ecx
3256
                rol     edx, 0Ah
3257
                lea     ebx, [ebx+edi-56AC02B2h]
3258
                mov     edi, edx
3259
                rol     ebx, 6
3260
                add     ebx, eax
3261
                mov     edi, [esp+14h]
3262
                mov     [esp], eax
3263
                mov     [esp+4], ebx
3264
                mov     eax, [edi]
3265
                mov     ebx, [edi+4]
3266
                mov     [esp+8], ecx
3267
                mov     [esp+0Ch], edx
3268
                mov     ecx, [edi+8]
3269
                mov     edx, [edi+0Ch]
3270
                mov     [esp+10h], ebp
3271
                mov     ebp, [edi+10h]
3272
                mov     edi, edx
3273
                xor     edi, 0FFFFFFFFh
3274
                or      edi, ecx
3275
                add     eax, [esi+14h]
3276
                xor     edi, ebx
3277
                rol     ecx, 0Ah
3278
                lea     eax, [eax+edi+50A28BE6h]
3279
                mov     edi, ecx
3280
                rol     eax, 8
3281
                add     eax, ebp
3282
                xor     edi, 0FFFFFFFFh
3283
                or      edi, ebx
3284
                add     ebp, [esi+38h]
3285
                xor     edi, eax
3286
                rol     ebx, 0Ah
3287
                lea     ebp, [ebp+edi+50A28BE6h]
3288
                mov     edi, ebx
3289
                rol     ebp, 9
3290
                add     ebp, edx
3291
                xor     edi, 0FFFFFFFFh
3292
                or      edi, eax
3293
                add     edx, [esi+1Ch]
3294
                xor     edi, ebp
3295
                rol     eax, 0Ah
3296
                lea     edx, [edx+edi+50A28BE6h]
3297
                mov     edi, eax
3298
                rol     edx, 9
3299
                add     edx, ecx
3300
                xor     edi, 0FFFFFFFFh
3301
                or      edi, ebp
3302
                add     ecx, [esi]
3303
                xor     edi, edx
3304
                rol     ebp, 0Ah
3305
                lea     ecx, [ecx+edi+50A28BE6h]
3306
                mov     edi, ebp
3307
                rol     ecx, 0Bh
3308
                add     ecx, ebx
3309
                xor     edi, 0FFFFFFFFh
3310
                or      edi, edx
3311
                add     ebx, [esi+24h]
3312
                xor     edi, ecx
3313
                rol     edx, 0Ah
3314
                lea     ebx, [ebx+edi+50A28BE6h]
3315
                mov     edi, edx
3316
                rol     ebx, 0Dh
3317
                add     ebx, eax
3318
                xor     edi, 0FFFFFFFFh
3319
                or      edi, ecx
3320
                add     eax, [esi+8]
3321
                xor     edi, ebx
3322
                rol     ecx, 0Ah
3323
                lea     eax, [eax+edi+50A28BE6h]
3324
                mov     edi, ecx
3325
                rol     eax, 0Fh
3326
                add     eax, ebp
3327
                xor     edi, 0FFFFFFFFh
3328
                or      edi, ebx
3329
                add     ebp, [esi+2Ch]
3330
                xor     edi, eax
3331
                rol     ebx, 0Ah
3332
                lea     ebp, [ebp+edi+50A28BE6h]
3333
                mov     edi, ebx
3334
                rol     ebp, 0Fh
3335
                add     ebp, edx
3336
                xor     edi, 0FFFFFFFFh
3337
                or      edi, eax
3338
                add     edx, [esi+10h]
3339
                xor     edi, ebp
3340
                rol     eax, 0Ah
3341
                lea     edx, [edx+edi+50A28BE6h]
3342
                mov     edi, eax
3343
                rol     edx, 5
3344
                add     edx, ecx
3345
                xor     edi, 0FFFFFFFFh
3346
                or      edi, ebp
3347
                add     ecx, [esi+34h]
3348
                xor     edi, edx
3349
                rol     ebp, 0Ah
3350
                lea     ecx, [ecx+edi+50A28BE6h]
3351
                mov     edi, ebp
3352
                rol     ecx, 7
3353
                add     ecx, ebx
3354
                xor     edi, 0FFFFFFFFh
3355
                or      edi, edx
3356
                add     ebx, [esi+18h]
3357
                xor     edi, ecx
3358
                rol     edx, 0Ah
3359
                lea     ebx, [ebx+edi+50A28BE6h]
3360
                mov     edi, edx
3361
                rol     ebx, 7
3362
                add     ebx, eax
3363
                xor     edi, 0FFFFFFFFh
3364
                or      edi, ecx
3365
                add     eax, [esi+3Ch]
3366
                xor     edi, ebx
3367
                rol     ecx, 0Ah
3368
                lea     eax, [eax+edi+50A28BE6h]
3369
                mov     edi, ecx
3370
                rol     eax, 8
3371
                add     eax, ebp
3372
                xor     edi, 0FFFFFFFFh
3373
                or      edi, ebx
3374
                add     ebp, [esi+20h]
3375
                xor     edi, eax
3376
                rol     ebx, 0Ah
3377
                lea     ebp, [ebp+edi+50A28BE6h]
3378
                mov     edi, ebx
3379
                rol     ebp, 0Bh
3380
                add     ebp, edx
3381
                xor     edi, 0FFFFFFFFh
3382
                or      edi, eax
3383
                add     edx, [esi+4]
3384
                xor     edi, ebp
3385
                rol     eax, 0Ah
3386
                lea     edx, [edx+edi+50A28BE6h]
3387
                mov     edi, eax
3388
                rol     edx, 0Eh
3389
                add     edx, ecx
3390
                xor     edi, 0FFFFFFFFh
3391
                or      edi, ebp
3392
                add     ecx, [esi+28h]
3393
                xor     edi, edx
3394
                rol     ebp, 0Ah
3395
                lea     ecx, [ecx+edi+50A28BE6h]
3396
                mov     edi, ebp
3397
                rol     ecx, 0Eh
3398
                add     ecx, ebx
3399
                xor     edi, 0FFFFFFFFh
3400
                or      edi, edx
3401
                add     ebx, [esi+0Ch]
3402
                xor     edi, ecx
3403
                rol     edx, 0Ah
3404
                lea     ebx, [ebx+edi+50A28BE6h]
3405
                mov     edi, edx
3406
                rol     ebx, 0Ch
3407
                add     ebx, eax
3408
                xor     edi, 0FFFFFFFFh
3409
                or      edi, ecx
3410
                add     eax, [esi+30h]
3411
                xor     edi, ebx
3412
                rol     ecx, 0Ah
3413
                lea     eax, [eax+edi+50A28BE6h]
3414
                mov     edi, ecx
3415
                rol     eax, 6
3416
                add     eax, ebp
3417
                mov     edi, ebx
3418
                xor     edi, eax
3419
                and     edi, ecx
3420
                add     ebp, [esi+18h]
3421
                xor     edi, ebx
3422
                rol     ebx, 0Ah
3423
                lea     ebp, [ebp+edi+5C4DD124h]
3424
                mov     edi, eax
3425
                rol     ebp, 9
3426
                add     ebp, edx
3427
                xor     edi, ebp
3428
                and     edi, ebx
3429
                add     edx, [esi+2Ch]
3430
                xor     edi, eax
3431
                rol     eax, 0Ah
3432
                lea     edx, [edx+edi+5C4DD124h]
3433
                mov     edi, ebp
3434
                rol     edx, 0Dh
3435
                add     edx, ecx
3436
                xor     edi, edx
3437
                and     edi, eax
3438
                add     ecx, [esi+0Ch]
3439
                xor     edi, ebp
3440
                rol     ebp, 0Ah
3441
                lea     ecx, [ecx+edi+5C4DD124h]
3442
                mov     edi, edx
3443
                rol     ecx, 0Fh
3444
                add     ecx, ebx
3445
                xor     edi, ecx
3446
                and     edi, ebp
3447
                add     ebx, [esi+1Ch]
3448
                xor     edi, edx
3449
                rol     edx, 0Ah
3450
                lea     ebx, [ebx+edi+5C4DD124h]
3451
                mov     edi, ecx
3452
                rol     ebx, 7
3453
                add     ebx, eax
3454
                xor     edi, ebx
3455
                and     edi, edx
3456
                add     eax, [esi]
3457
                xor     edi, ecx
3458
                rol     ecx, 0Ah
3459
                lea     eax, [eax+edi+5C4DD124h]
3460
                mov     edi, ebx
3461
                rol     eax, 0Ch
3462
                add     eax, ebp
3463
                xor     edi, eax
3464
                and     edi, ecx
3465
                add     ebp, [esi+34h]
3466
                xor     edi, ebx
3467
                rol     ebx, 0Ah
3468
                lea     ebp, [ebp+edi+5C4DD124h]
3469
                mov     edi, eax
3470
                rol     ebp, 8
3471
                add     ebp, edx
3472
                xor     edi, ebp
3473
                and     edi, ebx
3474
                add     edx, [esi+14h]
3475
                xor     edi, eax
3476
                rol     eax, 0Ah
3477
                lea     edx, [edx+edi+5C4DD124h]
3478
                mov     edi, ebp
3479
                rol     edx, 9
3480
                add     edx, ecx
3481
                xor     edi, edx
3482
                and     edi, eax
3483
                add     ecx, [esi+28h]
3484
                xor     edi, ebp
3485
                rol     ebp, 0Ah
3486
                lea     ecx, [ecx+edi+5C4DD124h]
3487
                mov     edi, edx
3488
                rol     ecx, 0Bh
3489
                add     ecx, ebx
3490
                xor     edi, ecx
3491
                and     edi, ebp
3492
                add     ebx, [esi+38h]
3493
                xor     edi, edx
3494
                rol     edx, 0Ah
3495
                lea     ebx, [ebx+edi+5C4DD124h]
3496
                mov     edi, ecx
3497
                rol     ebx, 7
3498
                add     ebx, eax
3499
                xor     edi, ebx
3500
                and     edi, edx
3501
                add     eax, [esi+3Ch]
3502
                xor     edi, ecx
3503
                rol     ecx, 0Ah
3504
                lea     eax, [eax+edi+5C4DD124h]
3505
                mov     edi, ebx
3506
                rol     eax, 7
3507
                add     eax, ebp
3508
                xor     edi, eax
3509
                and     edi, ecx
3510
                add     ebp, [esi+20h]
3511
                xor     edi, ebx
3512
                rol     ebx, 0Ah
3513
                lea     ebp, [ebp+edi+5C4DD124h]
3514
                mov     edi, eax
3515
                rol     ebp, 0Ch
3516
                add     ebp, edx
3517
                xor     edi, ebp
3518
                and     edi, ebx
3519
                add     edx, [esi+30h]
3520
                xor     edi, eax
3521
                rol     eax, 0Ah
3522
                lea     edx, [edx+edi+5C4DD124h]
3523
                mov     edi, ebp
3524
                rol     edx, 7
3525
                add     edx, ecx
3526
                xor     edi, edx
3527
                and     edi, eax
3528
                add     ecx, [esi+10h]
3529
                xor     edi, ebp
3530
                rol     ebp, 0Ah
3531
                lea     ecx, [ecx+edi+5C4DD124h]
3532
                mov     edi, edx
3533
                rol     ecx, 6
3534
                add     ecx, ebx
3535
                xor     edi, ecx
3536
                and     edi, ebp
3537
                add     ebx, [esi+24h]
3538
                xor     edi, edx
3539
                rol     edx, 0Ah
3540
                lea     ebx, [ebx+edi+5C4DD124h]
3541
                mov     edi, ecx
3542
                rol     ebx, 0Fh
3543
                add     ebx, eax
3544
                xor     edi, ebx
3545
                and     edi, edx
3546
                add     eax, [esi+4]
3547
                xor     edi, ecx
3548
                rol     ecx, 0Ah
3549
                lea     eax, [eax+edi+5C4DD124h]
3550
                mov     edi, ebx
3551
                rol     eax, 0Dh
3552
                add     eax, ebp
3553
                xor     edi, eax
3554
                and     edi, ecx
3555
                add     ebp, [esi+8]
3556
                xor     edi, ebx
3557
                rol     ebx, 0Ah
3558
                lea     ebp, [ebp+edi+5C4DD124h]
3559
                mov     edi, eax
3560
                rol     ebp, 0Bh
3561
                add     ebp, edx
3562
                mov     edi, eax
3563
                xor     edi, 0FFFFFFFFh
3564
                or      edi, ebp
3565
                add     edx, [esi+3Ch]
3566
                xor     edi, ebx
3567
                rol     eax, 0Ah
3568
                lea     edx, [edx+edi+6D703EF3h]
3569
                mov     edi, ebp
3570
                rol     edx, 9
3571
                xor     edi, 0FFFFFFFFh
3572
                add     edx, ecx
3573
                or      edi, edx
3574
                add     ecx, [esi+14h]
3575
                xor     edi, eax
3576
                rol     ebp, 0Ah
3577
                lea     ecx, [ecx+edi+6D703EF3h]
3578
                mov     edi, edx
3579
                rol     ecx, 7
3580
                xor     edi, 0FFFFFFFFh
3581
                add     ecx, ebx
3582
                or      edi, ecx
3583
                add     ebx, [esi+4]
3584
                xor     edi, ebp
3585
                rol     edx, 0Ah
3586
                lea     ebx, [ebx+edi+6D703EF3h]
3587
                mov     edi, ecx
3588
                rol     ebx, 0Fh
3589
                xor     edi, 0FFFFFFFFh
3590
                add     ebx, eax
3591
                or      edi, ebx
3592
                add     eax, [esi+0Ch]
3593
                xor     edi, edx
3594
                rol     ecx, 0Ah
3595
                lea     eax, [eax+edi+6D703EF3h]
3596
                mov     edi, ebx
3597
                rol     eax, 0Bh
3598
                xor     edi, 0FFFFFFFFh
3599
                add     eax, ebp
3600
                or      edi, eax
3601
                add     ebp, [esi+1Ch]
3602
                xor     edi, ecx
3603
                rol     ebx, 0Ah
3604
                lea     ebp, [ebp+edi+6D703EF3h]
3605
                mov     edi, eax
3606
                rol     ebp, 8
3607
                xor     edi, 0FFFFFFFFh
3608
                add     ebp, edx
3609
                or      edi, ebp
3610
                add     edx, [esi+38h]
3611
                xor     edi, ebx
3612
                rol     eax, 0Ah
3613
                lea     edx, [edx+edi+6D703EF3h]
3614
                mov     edi, ebp
3615
                rol     edx, 6
3616
                xor     edi, 0FFFFFFFFh
3617
                add     edx, ecx
3618
                or      edi, edx
3619
                add     ecx, [esi+18h]
3620
                xor     edi, eax
3621
                rol     ebp, 0Ah
3622
                lea     ecx, [ecx+edi+6D703EF3h]
3623
                mov     edi, edx
3624
                rol     ecx, 6
3625
                xor     edi, 0FFFFFFFFh
3626
                add     ecx, ebx
3627
                or      edi, ecx
3628
                add     ebx, [esi+24h]
3629
                xor     edi, ebp
3630
                rol     edx, 0Ah
3631
                lea     ebx, [ebx+edi+6D703EF3h]
3632
                mov     edi, ecx
3633
                rol     ebx, 0Eh
3634
                xor     edi, 0FFFFFFFFh
3635
                add     ebx, eax
3636
                or      edi, ebx
3637
                add     eax, [esi+2Ch]
3638
                xor     edi, edx
3639
                rol     ecx, 0Ah
3640
                lea     eax, [eax+edi+6D703EF3h]
3641
                mov     edi, ebx
3642
                rol     eax, 0Ch
3643
                xor     edi, 0FFFFFFFFh
3644
                add     eax, ebp
3645
                or      edi, eax
3646
                add     ebp, [esi+20h]
3647
                xor     edi, ecx
3648
                rol     ebx, 0Ah
3649
                lea     ebp, [ebp+edi+6D703EF3h]
3650
                mov     edi, eax
3651
                rol     ebp, 0Dh
3652
                xor     edi, 0FFFFFFFFh
3653
                add     ebp, edx
3654
                or      edi, ebp
3655
                add     edx, [esi+30h]
3656
                xor     edi, ebx
3657
                rol     eax, 0Ah
3658
                lea     edx, [edx+edi+6D703EF3h]
3659
                mov     edi, ebp
3660
                rol     edx, 5
3661
                xor     edi, 0FFFFFFFFh
3662
                add     edx, ecx
3663
                or      edi, edx
3664
                add     ecx, [esi+8]
3665
                xor     edi, eax
3666
                rol     ebp, 0Ah
3667
                lea     ecx, [ecx+edi+6D703EF3h]
3668
                mov     edi, edx
3669
                rol     ecx, 0Eh
3670
                xor     edi, 0FFFFFFFFh
3671
                add     ecx, ebx
3672
                or      edi, ecx
3673
                add     ebx, [esi+28h]
3674
                xor     edi, ebp
3675
                rol     edx, 0Ah
3676
                lea     ebx, [ebx+edi+6D703EF3h]
3677
                mov     edi, ecx
3678
                rol     ebx, 0Dh
3679
                xor     edi, 0FFFFFFFFh
3680
                add     ebx, eax
3681
                or      edi, ebx
3682
                add     eax, [esi]
3683
                xor     edi, edx
3684
                rol     ecx, 0Ah
3685
                lea     eax, [eax+edi+6D703EF3h]
3686
                mov     edi, ebx
3687
                rol     eax, 0Dh
3688
                xor     edi, 0FFFFFFFFh
3689
                add     eax, ebp
3690
                or      edi, eax
3691
                add     ebp, [esi+10h]
3692
                xor     edi, ecx
3693
                rol     ebx, 0Ah
3694
                lea     ebp, [ebp+edi+6D703EF3h]
3695
                mov     edi, eax
3696
                rol     ebp, 7
3697
                xor     edi, 0FFFFFFFFh
3698
                add     ebp, edx
3699
                or      edi, ebp
3700
                add     edx, [esi+34h]
3701
                xor     edi, ebx
3702
                rol     eax, 0Ah
3703
                lea     edx, [edx+edi+6D703EF3h]
3704
                mov     edi, ebp
3705
                rol     edx, 5
3706
                xor     edi, 0FFFFFFFFh
3707
                add     edx, ecx
3708
                mov     edi, eax
3709
                xor     edi, ebp
3710
                add     ecx, [esi+20h]
3711
                and     edi, edx
3712
                xor     edi, eax
3713
                rol     ebp, 0Ah
3714
                lea     ecx, [ecx+edi+7A6D76E9h]
3715
                mov     edi, ebp
3716
                rol     ecx, 0Fh
3717
                add     ecx, ebx
3718
                xor     edi, edx
3719
                add     ebx, [esi+18h]
3720
                and     edi, ecx
3721
                xor     edi, ebp
3722
                rol     edx, 0Ah
3723
                lea     ebx, [ebx+edi+7A6D76E9h]
3724
                mov     edi, edx
3725
                rol     ebx, 5
3726
                add     ebx, eax
3727
                xor     edi, ecx
3728
                add     eax, [esi+10h]
3729
                and     edi, ebx
3730
                xor     edi, edx
3731
                rol     ecx, 0Ah
3732
                lea     eax, [eax+edi+7A6D76E9h]
3733
                mov     edi, ecx
3734
                rol     eax, 8
3735
                add     eax, ebp
3736
                xor     edi, ebx
3737
                add     ebp, [esi+4]
3738
                and     edi, eax
3739
                xor     edi, ecx
3740
                rol     ebx, 0Ah
3741
                lea     ebp, [ebp+edi+7A6D76E9h]
3742
                mov     edi, ebx
3743
                rol     ebp, 0Bh
3744
                add     ebp, edx
3745
                xor     edi, eax
3746
                add     edx, [esi+0Ch]
3747
                and     edi, ebp
3748
                xor     edi, ebx
3749
                rol     eax, 0Ah
3750
                lea     edx, [edx+edi+7A6D76E9h]
3751
                mov     edi, eax
3752
                rol     edx, 0Eh
3753
                add     edx, ecx
3754
                xor     edi, ebp
3755
                add     ecx, [esi+2Ch]
3756
                and     edi, edx
3757
                xor     edi, eax
3758
                rol     ebp, 0Ah
3759
                lea     ecx, [ecx+edi+7A6D76E9h]
3760
                mov     edi, ebp
3761
                rol     ecx, 0Eh
3762
                add     ecx, ebx
3763
                xor     edi, edx
3764
                add     ebx, [esi+3Ch]
3765
                and     edi, ecx
3766
                xor     edi, ebp
3767
                rol     edx, 0Ah
3768
                lea     ebx, [ebx+edi+7A6D76E9h]
3769
                mov     edi, edx
3770
                rol     ebx, 6
3771
                add     ebx, eax
3772
                xor     edi, ecx
3773
                add     eax, [esi]
3774
                and     edi, ebx
3775
                xor     edi, edx
3776
                rol     ecx, 0Ah
3777
                lea     eax, [eax+edi+7A6D76E9h]
3778
                mov     edi, ecx
3779
                rol     eax, 0Eh
3780
                add     eax, ebp
3781
                xor     edi, ebx
3782
                add     ebp, [esi+14h]
3783
                and     edi, eax
3784
                xor     edi, ecx
3785
                rol     ebx, 0Ah
3786
                lea     ebp, [ebp+edi+7A6D76E9h]
3787
                mov     edi, ebx
3788
                rol     ebp, 6
3789
                add     ebp, edx
3790
                xor     edi, eax
3791
                add     edx, [esi+30h]
3792
                and     edi, ebp
3793
                xor     edi, ebx
3794
                rol     eax, 0Ah
3795
                lea     edx, [edx+edi+7A6D76E9h]
3796
                mov     edi, eax
3797
                rol     edx, 9
3798
                add     edx, ecx
3799
                xor     edi, ebp
3800
                add     ecx, [esi+8]
3801
                and     edi, edx
3802
                xor     edi, eax
3803
                rol     ebp, 0Ah
3804
                lea     ecx, [ecx+edi+7A6D76E9h]
3805
                mov     edi, ebp
3806
                rol     ecx, 0Ch
3807
                add     ecx, ebx
3808
                xor     edi, edx
3809
                add     ebx, [esi+34h]
3810
                and     edi, ecx
3811
                xor     edi, ebp
3812
                rol     edx, 0Ah
3813
                lea     ebx, [ebx+edi+7A6D76E9h]
3814
                mov     edi, edx
3815
                rol     ebx, 9
3816
                add     ebx, eax
3817
                xor     edi, ecx
3818
                add     eax, [esi+24h]
3819
                and     edi, ebx
3820
                xor     edi, edx
3821
                rol     ecx, 0Ah
3822
                lea     eax, [eax+edi+7A6D76E9h]
3823
                mov     edi, ecx
3824
                rol     eax, 0Ch
3825
                add     eax, ebp
3826
                xor     edi, ebx
3827
                add     ebp, [esi+1Ch]
3828
                and     edi, eax
3829
                xor     edi, ecx
3830
                rol     ebx, 0Ah
3831
                lea     ebp, [ebp+edi+7A6D76E9h]
3832
                mov     edi, ebx
3833
                rol     ebp, 5
3834
                add     ebp, edx
3835
                xor     edi, eax
3836
                add     edx, [esi+28h]
3837
                and     edi, ebp
3838
                xor     edi, ebx
3839
                rol     eax, 0Ah
3840
                lea     edx, [edx+edi+7A6D76E9h]
3841
                mov     edi, eax
3842
                rol     edx, 0Fh
3843
                add     edx, ecx
3844
                xor     edi, ebp
3845
                add     ecx, [esi+38h]
3846
                and     edi, edx
3847
                xor     edi, eax
3848
                rol     ebp, 0Ah
3849
                lea     ecx, [ecx+edi+7A6D76E9h]
3850
                mov     edi, ebp
3851
                rol     ecx, 8
3852
                add     ecx, ebx
3853
                xor     edi, edx
3854
                xor     edi, ecx
3855
                add     ebx, [esi+30h]
3856
                rol     edx, 0Ah
3857
                add     ebx, edi
3858
                mov     edi, edx
3859
                rol     ebx, 8
3860
                add     ebx, eax
3861
                xor     edi, ecx
3862
                xor     edi, ebx
3863
                add     eax, [esi+3Ch]
3864
                rol     ecx, 0Ah
3865
                add     eax, edi
3866
                mov     edi, ecx
3867
                rol     eax, 5
3868
                add     eax, ebp
3869
                xor     edi, ebx
3870
                xor     edi, eax
3871
                add     ebp, [esi+28h]
3872
                rol     ebx, 0Ah
3873
                add     ebp, edi
3874
                mov     edi, ebx
3875
                rol     ebp, 0Ch
3876
                add     ebp, edx
3877
                xor     edi, eax
3878
                xor     edi, ebp
3879
                add     edx, [esi+10h]
3880
                rol     eax, 0Ah
3881
                add     edx, edi
3882
                mov     edi, eax
3883
                rol     edx, 9
3884
                add     edx, ecx
3885
                xor     edi, ebp
3886
                xor     edi, edx
3887
                add     ecx, [esi+4]
3888
                rol     ebp, 0Ah
3889
                add     ecx, edi
3890
                mov     edi, ebp
3891
                rol     ecx, 0Ch
3892
                add     ecx, ebx
3893
                xor     edi, edx
3894
                xor     edi, ecx
3895
                add     ebx, [esi+14h]
3896
                rol     edx, 0Ah
3897
                add     ebx, edi
3898
                mov     edi, edx
3899
                rol     ebx, 5
3900
                add     ebx, eax
3901
                xor     edi, ecx
3902
                xor     edi, ebx
3903
                add     eax, [esi+20h]
3904
                rol     ecx, 0Ah
3905
                add     eax, edi
3906
                mov     edi, ecx
3907
                rol     eax, 0Eh
3908
                add     eax, ebp
3909
                xor     edi, ebx
3910
                xor     edi, eax
3911
                add     ebp, [esi+1Ch]
3912
                rol     ebx, 0Ah
3913
                add     ebp, edi
3914
                mov     edi, ebx
3915
                rol     ebp, 6
3916
                add     ebp, edx
3917
                xor     edi, eax
3918
                xor     edi, ebp
3919
                add     edx, [esi+18h]
3920
                rol     eax, 0Ah
3921
                add     edx, edi
3922
                mov     edi, eax
3923
                rol     edx, 8
3924
                add     edx, ecx
3925
                xor     edi, ebp
3926
                xor     edi, edx
3927
                add     ecx, [esi+8]
3928
                rol     ebp, 0Ah
3929
                add     ecx, edi
3930
                mov     edi, ebp
3931
                rol     ecx, 0Dh
3932
                add     ecx, ebx
3933
                xor     edi, edx
3934
                xor     edi, ecx
3935
                add     ebx, [esi+34h]
3936
                rol     edx, 0Ah
3937
                add     ebx, edi
3938
                mov     edi, edx
3939
                rol     ebx, 6
3940
                add     ebx, eax
3941
                xor     edi, ecx
3942
                xor     edi, ebx
3943
                add     eax, [esi+38h]
3944
                rol     ecx, 0Ah
3945
                add     eax, edi
3946
                mov     edi, ecx
3947
                rol     eax, 5
3948
                add     eax, ebp
3949
                xor     edi, ebx
3950
                xor     edi, eax
3951
                add     ebp, [esi]
3952
                rol     ebx, 0Ah
3953
                add     ebp, edi
3954
                mov     edi, ebx
3955
                rol     ebp, 0Fh
3956
                add     ebp, edx
3957
                xor     edi, eax
3958
                xor     edi, ebp
3959
                add     edx, [esi+0Ch]
3960
                rol     eax, 0Ah
3961
                add     edx, edi
3962
                mov     edi, eax
3963
                rol     edx, 0Dh
3964
                add     edx, ecx
3965
                xor     edi, ebp
3966
                xor     edi, edx
3967
                add     ecx, [esi+24h]
3968
                rol     ebp, 0Ah
3969
                add     ecx, edi
3970
                mov     edi, ebp
3971
                rol     ecx, 0Bh
3972
                add     ecx, ebx
3973
                xor     edi, edx
3974
                xor     edi, ecx
3975
                add     ebx, [esi+2Ch]
3976
                rol     edx, 0Ah
3977
                add     ebx, edi
3978
                mov     edi, edx
3979
                rol     ebx, 0Bh
3980
                add     ebx, eax
3981
                mov     edi, [esp+14h]
3982
                add     edx, [esp+8]
3983
                mov     esi, [edi+4]
3984
                add     ebp, [esp+0Ch]
3985
                add     edx, esi
3986
                mov     esi, [esp+10h]
3987
                add     ecx, [edi]
3988
                mov     [edi], edx
3989
                mov     edx, [edi+8]
3990
                add     eax, esi
3991
                mov     esi, [edi+0Ch]
3992
                add     ebp, edx
3993
                mov     edx, [esp]
3994
                mov     [edi+4], ebp
3995
                add     eax, esi
3996
                mov     esi, [edi+10h]
3997
                add     ebx, edx
3998
                mov     edx, [esp+4]
3999
                mov     [edi+8], eax
4000
                add     ebx, esi
4001
                add     ecx, edx
4002
                mov     [edi+0Ch], ebx
4003
                add     esp, 18h
4004
                mov     [edi+10h], ecx
4005
4006
                pop     ebp
4007
                pop     edi
4008
                pop     esi
4009
                pop     ebx
4010
end;
4011
{$ENDIF}
4012
4013
{$IFDEF THash_RipeMD256_asm}
4014
procedure THash_RipeMD256.DoTransform(Buffer: PUInt32Array);
4015
asm
4016
                push    ebx
4017
                push    esi
4018
                push    edi
4019
                lea     edi, [eax].THash_RipeMD256.FDigest
4020
                mov     esi, edx
4021
                push    ebp
4022
4023
                mov     eax, [edi]
4024
                mov     ebx, [edi+4]
4025
                push    edi
4026
                mov     ecx, [edi+8]
4027
                mov     edx, [edi+0Ch]
4028
                add     esp, 0FFFFFFE0h
4029
                mov     edi, ecx
4030
                xor     edi, edx
4031
                mov     ebp, [esi]
4032
                xor     edi, ebx
4033
                add     eax, ebp
4034
                add     eax, edi
4035
                mov     edi, ebx
4036
                rol     eax, 0Bh
4037
                xor     edi, ecx
4038
                mov     ebp, [esi+4]
4039
                xor     edi, eax
4040
                add     edx, ebp
4041
                add     edx, edi
4042
                mov     edi, eax
4043
                rol     edx, 0Eh
4044
                xor     edi, ebx
4045
                mov     ebp, [esi+8]
4046
                xor     edi, edx
4047
                add     ecx, ebp
4048
                add     ecx, edi
4049
                mov     edi, edx
4050
                rol     ecx, 0Fh
4051
                xor     edi, eax
4052
                mov     ebp, [esi+0Ch]
4053
                xor     edi, ecx
4054
                add     ebx, ebp
4055
                add     ebx, edi
4056
                mov     edi, ecx
4057
                rol     ebx, 0Ch
4058
                xor     edi, edx
4059
                mov     ebp, [esi+10h]
4060
                xor     edi, ebx
4061
                add     eax, ebp
4062
                add     eax, edi
4063
                mov     edi, ebx
4064
                rol     eax, 5
4065
                xor     edi, ecx
4066
                mov     ebp, [esi+14h]
4067
                xor     edi, eax
4068
                add     edx, ebp
4069
                add     edx, edi
4070
                mov     edi, eax
4071
                rol     edx, 8
4072
                xor     edi, ebx
4073
                mov     ebp, [esi+18h]
4074
                xor     edi, edx
4075
                add     ecx, ebp
4076
                add     ecx, edi
4077
                mov     edi, edx
4078
                rol     ecx, 7
4079
                xor     edi, eax
4080
                mov     ebp, [esi+1Ch]
4081
                xor     edi, ecx
4082
                add     ebx, ebp
4083
                add     ebx, edi
4084
                mov     edi, ecx
4085
                rol     ebx, 9
4086
                xor     edi, edx
4087
                mov     ebp, [esi+20h]
4088
                xor     edi, ebx
4089
                add     eax, ebp
4090
                add     eax, edi
4091
                mov     edi, ebx
4092
                rol     eax, 0Bh
4093
                xor     edi, ecx
4094
                mov     ebp, [esi+24h]
4095
                xor     edi, eax
4096
                add     edx, ebp
4097
                add     edx, edi
4098
                mov     edi, eax
4099
                rol     edx, 0Dh
4100
                xor     edi, ebx
4101
                mov     ebp, [esi+28h]
4102
                xor     edi, edx
4103
                add     ecx, ebp
4104
                add     ecx, edi
4105
                mov     edi, edx
4106
                rol     ecx, 0Eh
4107
                xor     edi, eax
4108
                mov     ebp, [esi+2Ch]
4109
                xor     edi, ecx
4110
                add     ebx, ebp
4111
                add     ebx, edi
4112
                mov     edi, ecx
4113
                rol     ebx, 0Fh
4114
                xor     edi, edx
4115
                mov     ebp, [esi+30h]
4116
                xor     edi, ebx
4117
                add     eax, ebp
4118
                add     eax, edi
4119
                mov     edi, ebx
4120
                rol     eax, 6
4121
                xor     edi, ecx
4122
                mov     ebp, [esi+34h]
4123
                xor     edi, eax
4124
                add     edx, ebp
4125
                add     edx, edi
4126
                mov     edi, eax
4127
                rol     edx, 7
4128
                xor     edi, ebx
4129
                mov     ebp, [esi+38h]
4130
                xor     edi, edx
4131
                add     ecx, ebp
4132
                add     ecx, edi
4133
                mov     edi, edx
4134
                rol     ecx, 9
4135
                xor     edi, eax
4136
                mov     ebp, [esi+3Ch]
4137
                xor     edi, ecx
4138
                add     ebx, ebp
4139
                add     ebx, edi
4140
                rol     ebx, 8
4141
                mov     edi, [esp+20h]
4142
                mov     [esp], eax
4143
                mov     [esp+4], ebx
4144
                mov     ebp, [esi+14h]
4145
                mov     eax, [edi+10h]
4146
                mov     [esp+8], ecx
4147
                mov     ebx, [edi+14h]
4148
                mov     ecx, [edi+18h]
4149
                mov     [esp+0Ch], edx
4150
                mov     edx, [edi+1Ch]
4151
                mov     edi, ecx
4152
                xor     edi, ebx
4153
                lea     eax, [eax+ebp+50A28BE6h]
4154
                and     edi, edx
4155
                mov     ebp, [esi+38h]
4156
                xor     edi, ecx
4157
                add     eax, edi
4158
                mov     edi, ebx
4159
                rol     eax, 8
4160
                xor     edi, eax
4161
                lea     edx, [edx+ebp+50A28BE6h]
4162
                and     edi, ecx
4163
                mov     ebp, [esi+1Ch]
4164
                xor     edi, ebx
4165
                add     edx, edi
4166
                mov     edi, eax
4167
                rol     edx, 9
4168
                xor     edi, edx
4169
                lea     ecx, [ecx+ebp+50A28BE6h]
4170
                and     edi, ebx
4171
                mov     ebp, [esi]
4172
                xor     edi, eax
4173
                add     ecx, edi
4174
                mov     edi, edx
4175
                rol     ecx, 9
4176
                xor     edi, ecx
4177
                lea     ebx, [ebx+ebp+50A28BE6h]
4178
                and     edi, eax
4179
                mov     ebp, [esi+24h]
4180
                xor     edi, edx
4181
                add     ebx, edi
4182
                mov     edi, ecx
4183
                rol     ebx, 0Bh
4184
                xor     edi, ebx
4185
                lea     eax, [eax+ebp+50A28BE6h]
4186
                and     edi, edx
4187
                mov     ebp, [esi+8]
4188
                xor     edi, ecx
4189
                add     eax, edi
4190
                mov     edi, ebx
4191
                rol     eax, 0Dh
4192
                xor     edi, eax
4193
                lea     edx, [edx+ebp+50A28BE6h]
4194
                and     edi, ecx
4195
                mov     ebp, [esi+2Ch]
4196
                xor     edi, ebx
4197
                add     edx, edi
4198
                mov     edi, eax
4199
                rol     edx, 0Fh
4200
                xor     edi, edx
4201
                lea     ecx, [ecx+ebp+50A28BE6h]
4202
                and     edi, ebx
4203
                mov     ebp, [esi+10h]
4204
                xor     edi, eax
4205
                add     ecx, edi
4206
                mov     edi, edx
4207
                rol     ecx, 0Fh
4208
                xor     edi, ecx
4209
                lea     ebx, [ebx+ebp+50A28BE6h]
4210
                and     edi, eax
4211
                mov     ebp, [esi+34h]
4212
                xor     edi, edx
4213
                add     ebx, edi
4214
                mov     edi, ecx
4215
                rol     ebx, 5
4216
                xor     edi, ebx
4217
                lea     eax, [eax+ebp+50A28BE6h]
4218
                and     edi, edx
4219
                mov     ebp, [esi+18h]
4220
                xor     edi, ecx
4221
                add     eax, edi
4222
                mov     edi, ebx
4223
                rol     eax, 7
4224
                xor     edi, eax
4225
                lea     edx, [edx+ebp+50A28BE6h]
4226
                and     edi, ecx
4227
                mov     ebp, [esi+3Ch]
4228
                xor     edi, ebx
4229
                add     edx, edi
4230
                mov     edi, eax
4231
                rol     edx, 7
4232
                xor     edi, edx
4233
                lea     ecx, [ecx+ebp+50A28BE6h]
4234
                and     edi, ebx
4235
                mov     ebp, [esi+20h]
4236
                xor     edi, eax
4237
                add     ecx, edi
4238
                mov     edi, edx
4239
                rol     ecx, 8
4240
                xor     edi, ecx
4241
                lea     ebx, [ebx+ebp+50A28BE6h]
4242
                and     edi, eax
4243
                mov     ebp, [esi+4]
4244
                xor     edi, edx
4245
                add     ebx, edi
4246
                mov     edi, ecx
4247
                rol     ebx, 0Bh
4248
                xor     edi, ebx
4249
                lea     eax, [eax+ebp+50A28BE6h]
4250
                and     edi, edx
4251
                mov     ebp, [esi+28h]
4252
                xor     edi, ecx
4253
                add     eax, edi
4254
                mov     edi, ebx
4255
                rol     eax, 0Eh
4256
                xor     edi, eax
4257
                lea     edx, [edx+ebp+50A28BE6h]
4258
                and     edi, ecx
4259
                mov     ebp, [esi+0Ch]
4260
                xor     edi, ebx
4261
                add     edx, edi
4262
                mov     edi, eax
4263
                rol     edx, 0Eh
4264
                xor     edi, edx
4265
                lea     ecx, [ecx+ebp+50A28BE6h]
4266
                and     edi, ebx
4267
                mov     ebp, [esi+30h]
4268
                xor     edi, eax
4269
                add     ecx, edi
4270
                mov     edi, edx
4271
                rol     ecx, 0Ch
4272
                xor     edi, ecx
4273
                lea     ebx, [ebx+ebp+50A28BE6h]
4274
                and     edi, eax
4275
                mov     ebp, [esi+1Ch]
4276
                xor     edi, edx
4277
                add     ebx, edi
4278
                rol     ebx, 6
4279
                mov     [esp+14h], ebx
4280
                mov     ebx, [esp+4]
4281
                mov     [esp+1Ch], edx
4282
                mov     [esp+18h], ecx
4283
                mov     edx, [esp]
4284
                mov     ecx, [esp+8]
4285
                mov     [esp+10h], edx
4286
                mov     edx, [esp+0Ch]
4287
                mov     edi, ecx
4288
                xor     edi, edx
4289
                lea     eax, [eax+ebp+5A827999h]
4290
                and     edi, ebx
4291
                mov     ebp, ebx
4292
                xor     edi, edx
4293
                xor     ebp, ecx
4294
                add     eax, edi
4295
                mov     edi, [esi+10h]
4296
                rol     eax, 7
4297
                and     ebp, eax
4298
                lea     edx, [edx+edi+5A827999h]
4299
                xor     ebp, ecx
4300
                mov     edi, eax
4301
                add     edx, ebp
4302
                mov     ebp, [esi+34h]
4303
                rol     edx, 6
4304
                xor     edi, ebx
4305
                lea     ecx, [ecx+ebp+5A827999h]
4306
                and     edi, edx
4307
                mov     ebp, edx
4308
                xor     edi, ebx
4309
                xor     ebp, eax
4310
                add     ecx, edi
4311
                mov     edi, [esi+4]
4312
                rol     ecx, 8
4313
                and     ebp, ecx
4314
                lea     ebx, [ebx+edi+5A827999h]
4315
                xor     ebp, eax
4316
                mov     edi, ecx
4317
                add     ebx, ebp
4318
                mov     ebp, [esi+28h]
4319
                rol     ebx, 0Dh
4320
                xor     edi, edx
4321
                lea     eax, [eax+ebp+5A827999h]
4322
                and     edi, ebx
4323
                mov     ebp, ebx
4324
                xor     edi, edx
4325
                xor     ebp, ecx
4326
                add     eax, edi
4327
                mov     edi, [esi+18h]
4328
                rol     eax, 0Bh
4329
                and     ebp, eax
4330
                lea     edx, [edx+edi+5A827999h]
4331
                xor     ebp, ecx
4332
                mov     edi, eax
4333
                add     edx, ebp
4334
                mov     ebp, [esi+3Ch]
4335
                rol     edx, 9
4336
                xor     edi, ebx
4337
                lea     ecx, [ecx+ebp+5A827999h]
4338
                and     edi, edx
4339
                mov     ebp, edx
4340
                xor     edi, ebx
4341
                xor     ebp, eax
4342
                add     ecx, edi
4343
                mov     edi, [esi+0Ch]
4344
                rol     ecx, 7
4345
                and     ebp, ecx
4346
                lea     ebx, [ebx+edi+5A827999h]
4347
                xor     ebp, eax
4348
                mov     edi, ecx
4349
                add     ebx, ebp
4350
                mov     ebp, [esi+30h]
4351
                rol     ebx, 0Fh
4352
                xor     edi, edx
4353
                lea     eax, [eax+ebp+5A827999h]
4354
                and     edi, ebx
4355
                mov     ebp, ebx
4356
                xor     edi, edx
4357
                xor     ebp, ecx
4358
                add     eax, edi
4359
                mov     edi, [esi]
4360
                rol     eax, 7
4361
                and     ebp, eax
4362
                lea     edx, [edx+edi+5A827999h]
4363
                xor     ebp, ecx
4364
                mov     edi, eax
4365
                add     edx, ebp
4366
                mov     ebp, [esi+24h]
4367
                rol     edx, 0Ch
4368
                xor     edi, ebx
4369
                lea     ecx, [ecx+ebp+5A827999h]
4370
                and     edi, edx
4371
                mov     ebp, edx
4372
                xor     edi, ebx
4373
                xor     ebp, eax
4374
                add     ecx, edi
4375
                mov     edi, [esi+14h]
4376
                rol     ecx, 0Fh
4377
                and     ebp, ecx
4378
                lea     ebx, [ebx+edi+5A827999h]
4379
                xor     ebp, eax
4380
                mov     edi, ecx
4381
                add     ebx, ebp
4382
                mov     ebp, [esi+8]
4383
                rol     ebx, 9
4384
                xor     edi, edx
4385
                lea     eax, [eax+ebp+5A827999h]
4386
                and     edi, ebx
4387
                mov     ebp, ebx
4388
                xor     edi, edx
4389
                xor     ebp, ecx
4390
                add     eax, edi
4391
                mov     edi, [esi+38h]
4392
                rol     eax, 0Bh
4393
                and     ebp, eax
4394
                lea     edx, [edx+edi+5A827999h]
4395
                xor     ebp, ecx
4396
                mov     edi, eax
4397
                add     edx, ebp
4398
                mov     ebp, [esi+2Ch]
4399
                rol     edx, 7
4400
                xor     edi, ebx
4401
                lea     ecx, [ecx+ebp+5A827999h]
4402
                and     edi, edx
4403
                mov     ebp, edx
4404
                xor     edi, ebx
4405
                xor     ebp, eax
4406
                add     ecx, edi
4407
                mov     edi, [esi+20h]
4408
                rol     ecx, 0Dh
4409
                and     ebp, ecx
4410
                lea     ebx, [ebx+edi+5A827999h]
4411
                xor     ebp, eax
4412
                add     ebx, ebp
4413
                mov     ebp, [esi+18h]
4414
                rol     ebx, 0Ch
4415
                mov     [esp], eax
4416
                mov     [esp+4], ebx
4417
                mov     eax, [esp+10h]
4418
                mov     ebx, [esp+14h]
4419
                mov     [esp+8], ecx
4420
                mov     ecx, [esp+18h]
4421
                mov     [esp+0Ch], edx
4422
                mov     edx, [esp+1Ch]
4423
                mov     edi, ecx
4424
                xor     edi, 0FFFFFFFFh
4425
                lea     eax, [eax+ebp+5C4DD124h]
4426
                or      edi, ebx
4427
                mov     ebp, [esi+2Ch]
4428
                xor     edi, edx
4429
                add     eax, edi
4430
                mov     edi, ebx
4431
                rol     eax, 9
4432
                xor     edi, 0FFFFFFFFh
4433
                lea     edx, [edx+ebp+5C4DD124h]
4434
                or      edi, eax
4435
                mov     ebp, [esi+0Ch]
4436
                xor     edi, ecx
4437
                add     edx, edi
4438
                mov     edi, eax
4439
                rol     edx, 0Dh
4440
                xor     edi, 0FFFFFFFFh
4441
                lea     ecx, [ecx+ebp+5C4DD124h]
4442
                or      edi, edx
4443
                mov     ebp, [esi+1Ch]
4444
                xor     edi, ebx
4445
                add     ecx, edi
4446
                mov     edi, edx
4447
                rol     ecx, 0Fh
4448
                xor     edi, 0FFFFFFFFh
4449
                lea     ebx, [ebx+ebp+5C4DD124h]
4450
                or      edi, ecx
4451
                mov     ebp, [esi]
4452
                xor     edi, eax
4453
                add     ebx, edi
4454
                mov     edi, ecx
4455
                rol     ebx, 7
4456
                xor     edi, 0FFFFFFFFh
4457
                lea     eax, [eax+ebp+5C4DD124h]
4458
                or      edi, ebx
4459
                mov     ebp, [esi+34h]
4460
                xor     edi, edx
4461
                add     eax, edi
4462
                mov     edi, ebx
4463
                rol     eax, 0Ch
4464
                xor     edi, 0FFFFFFFFh
4465
                lea     edx, [edx+ebp+5C4DD124h]
4466
                or      edi, eax
4467
                mov     ebp, [esi+14h]
4468
                xor     edi, ecx
4469
                add     edx, edi
4470
                mov     edi, eax
4471
                rol     edx, 8
4472
                xor     edi, 0FFFFFFFFh
4473
                lea     ecx, [ecx+ebp+5C4DD124h]
4474
                or      edi, edx
4475
                mov     ebp, [esi+28h]
4476
                xor     edi, ebx
4477
                add     ecx, edi
4478
                mov     edi, edx
4479
                rol     ecx, 9
4480
                xor     edi, 0FFFFFFFFh
4481
                lea     ebx, [ebx+ebp+5C4DD124h]
4482
                or      edi, ecx
4483
                mov     ebp, [esi+38h]
4484
                xor     edi, eax
4485
                add     ebx, edi
4486
                mov     edi, ecx
4487
                rol     ebx, 0Bh
4488
                xor     edi, 0FFFFFFFFh
4489
                lea     eax, [eax+ebp+5C4DD124h]
4490
                or      edi, ebx
4491
                mov     ebp, [esi+3Ch]
4492
                xor     edi, edx
4493
                add     eax, edi
4494
                mov     edi, ebx
4495
                rol     eax, 7
4496
                xor     edi, 0FFFFFFFFh
4497
                lea     edx, [edx+ebp+5C4DD124h]
4498
                or      edi, eax
4499
                mov     ebp, [esi+20h]
4500
                xor     edi, ecx
4501
                add     edx, edi
4502
                mov     edi, eax
4503
                rol     edx, 7
4504
                xor     edi, 0FFFFFFFFh
4505
                lea     ecx, [ecx+ebp+5C4DD124h]
4506
                or      edi, edx
4507
                mov     ebp, [esi+30h]
4508
                xor     edi, ebx
4509
                add     ecx, edi
4510
                mov     edi, edx
4511
                rol     ecx, 0Ch
4512
                xor     edi, 0FFFFFFFFh
4513
                lea     ebx, [ebx+ebp+5C4DD124h]
4514
                or      edi, ecx
4515
                mov     ebp, [esi+10h]
4516
                xor     edi, eax
4517
                add     ebx, edi
4518
                mov     edi, ecx
4519
                rol     ebx, 7
4520
                xor     edi, 0FFFFFFFFh
4521
                lea     eax, [eax+ebp+5C4DD124h]
4522
                or      edi, ebx
4523
                mov     ebp, [esi+24h]
4524
                xor     edi, edx
4525
                add     eax, edi
4526
                mov     edi, ebx
4527
                rol     eax, 6
4528
                xor     edi, 0FFFFFFFFh
4529
                lea     edx, [edx+ebp+5C4DD124h]
4530
                or      edi, eax
4531
                mov     ebp, [esi+4]
4532
                xor     edi, ecx
4533
                add     edx, edi
4534
                mov     edi, eax
4535
                rol     edx, 0Fh
4536
                xor     edi, 0FFFFFFFFh
4537
                lea     ecx, [ecx+ebp+5C4DD124h]
4538
                or      edi, edx
4539
                mov     ebp, [esi+8]
4540
                xor     edi, ebx
4541
                add     ecx, edi
4542
                mov     edi, edx
4543
                rol     ecx, 0Dh
4544
                xor     edi, 0FFFFFFFFh
4545
                lea     ebx, [ebx+ebp+5C4DD124h]
4546
                or      edi, ecx
4547
                mov     ebp, [esi+0Ch]
4548
                xor     edi, eax
4549
                add     ebx, edi
4550
                rol     ebx, 0Bh
4551
                mov     [esp+10h], eax
4552
                mov     [esp+18h], ecx
4553
                mov     eax, [esp]
4554
                mov     ecx, [esp+8]
4555
                mov     [esp+1Ch], edx
4556
                mov     edx, [esp+4]
4557
                mov     [esp+14h], edx
4558
                mov     edx, [esp+0Ch]
4559
                mov     edi, ecx
4560
                xor     edi, 0FFFFFFFFh
4561
                lea     eax, [eax+ebp+6ED9EBA1h]
4562
                or      edi, ebx
4563
                mov     ebp, [esi+28h]
4564
                xor     edi, edx
4565
                add     eax, edi
4566
                mov     edi, ebx
4567
                rol     eax, 0Bh
4568
                xor     edi, 0FFFFFFFFh
4569
                lea     edx, [edx+ebp+6ED9EBA1h]
4570
                or      edi, eax
4571
                mov     ebp, [esi+38h]
4572
                xor     edi, ecx
4573
                add     edx, edi
4574
                mov     edi, eax
4575
                rol     edx, 0Dh
4576
                xor     edi, 0FFFFFFFFh
4577
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4578
                or      edi, edx
4579
                mov     ebp, [esi+10h]
4580
                xor     edi, ebx
4581
                add     ecx, edi
4582
                mov     edi, edx
4583
                rol     ecx, 6
4584
                xor     edi, 0FFFFFFFFh
4585
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4586
                or      edi, ecx
4587
                mov     ebp, [esi+24h]
4588
                xor     edi, eax
4589
                add     ebx, edi
4590
                mov     edi, ecx
4591
                rol     ebx, 7
4592
                xor     edi, 0FFFFFFFFh
4593
                lea     eax, [eax+ebp+6ED9EBA1h]
4594
                or      edi, ebx
4595
                mov     ebp, [esi+3Ch]
4596
                xor     edi, edx
4597
                add     eax, edi
4598
                mov     edi, ebx
4599
                rol     eax, 0Eh
4600
                xor     edi, 0FFFFFFFFh
4601
                lea     edx, [edx+ebp+6ED9EBA1h]
4602
                or      edi, eax
4603
                mov     ebp, [esi+20h]
4604
                xor     edi, ecx
4605
                add     edx, edi
4606
                mov     edi, eax
4607
                rol     edx, 9
4608
                xor     edi, 0FFFFFFFFh
4609
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4610
                or      edi, edx
4611
                mov     ebp, [esi+4]
4612
                xor     edi, ebx
4613
                add     ecx, edi
4614
                mov     edi, edx
4615
                rol     ecx, 0Dh
4616
                xor     edi, 0FFFFFFFFh
4617
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4618
                or      edi, ecx
4619
                mov     ebp, [esi+8]
4620
                xor     edi, eax
4621
                add     ebx, edi
4622
                mov     edi, ecx
4623
                rol     ebx, 0Fh
4624
                xor     edi, 0FFFFFFFFh
4625
                lea     eax, [eax+ebp+6ED9EBA1h]
4626
                or      edi, ebx
4627
                mov     ebp, [esi+1Ch]
4628
                xor     edi, edx
4629
                add     eax, edi
4630
                mov     edi, ebx
4631
                rol     eax, 0Eh
4632
                xor     edi, 0FFFFFFFFh
4633
                lea     edx, [edx+ebp+6ED9EBA1h]
4634
                or      edi, eax
4635
                mov     ebp, [esi]
4636
                xor     edi, ecx
4637
                add     edx, edi
4638
                mov     edi, eax
4639
                rol     edx, 8
4640
                xor     edi, 0FFFFFFFFh
4641
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4642
                or      edi, edx
4643
                mov     ebp, [esi+18h]
4644
                xor     edi, ebx
4645
                add     ecx, edi
4646
                mov     edi, edx
4647
                rol     ecx, 0Dh
4648
                xor     edi, 0FFFFFFFFh
4649
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4650
                or      edi, ecx
4651
                mov     ebp, [esi+34h]
4652
                xor     edi, eax
4653
                add     ebx, edi
4654
                mov     edi, ecx
4655
                rol     ebx, 6
4656
                xor     edi, 0FFFFFFFFh
4657
                lea     eax, [eax+ebp+6ED9EBA1h]
4658
                or      edi, ebx
4659
                mov     ebp, [esi+2Ch]
4660
                xor     edi, edx
4661
                add     eax, edi
4662
                mov     edi, ebx
4663
                rol     eax, 5
4664
                xor     edi, 0FFFFFFFFh
4665
                lea     edx, [edx+ebp+6ED9EBA1h]
4666
                or      edi, eax
4667
                mov     ebp, [esi+14h]
4668
                xor     edi, ecx
4669
                add     edx, edi
4670
                mov     edi, eax
4671
                rol     edx, 0Ch
4672
                xor     edi, 0FFFFFFFFh
4673
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4674
                or      edi, edx
4675
                mov     ebp, [esi+30h]
4676
                xor     edi, ebx
4677
                add     ecx, edi
4678
                mov     edi, edx
4679
                rol     ecx, 7
4680
                xor     edi, 0FFFFFFFFh
4681
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4682
                or      edi, ecx
4683
                mov     ebp, [esi+3Ch]
4684
                xor     edi, eax
4685
                add     ebx, edi
4686
                rol     ebx, 5
4687
                mov     [esp], eax
4688
                mov     [esp+4], ebx
4689
                mov     eax, [esp+10h]
4690
                mov     ebx, [esp+14h]
4691
                mov     [esp+8], ecx
4692
                mov     ecx, [esp+18h]
4693
                mov     [esp+0Ch], edx
4694
                mov     edx, [esp+1Ch]
4695
                mov     edi, ecx
4696
                xor     edi, edx
4697
                lea     eax, [eax+ebp+6D703EF3h]
4698
                and     edi, ebx
4699
                mov     ebp, ebx
4700
                xor     edi, edx
4701
                xor     ebp, ecx
4702
                add     eax, edi
4703
                mov     edi, [esi+14h]
4704
                rol     eax, 9
4705
                and     ebp, eax
4706
                lea     edx, [edx+edi+6D703EF3h]
4707
                xor     ebp, ecx
4708
                mov     edi, eax
4709
                add     edx, ebp
4710
                mov     ebp, [esi+4]
4711
                rol     edx, 7
4712
                xor     edi, ebx
4713
                lea     ecx, [ecx+ebp+6D703EF3h]
4714
                and     edi, edx
4715
                mov     ebp, edx
4716
                xor     edi, ebx
4717
                xor     ebp, eax
4718
                add     ecx, edi
4719
                mov     edi, [esi+0Ch]
4720
                rol     ecx, 0Fh
4721
                and     ebp, ecx
4722
                lea     ebx, [ebx+edi+6D703EF3h]
4723
                xor     ebp, eax
4724
                mov     edi, ecx
4725
                add     ebx, ebp
4726
                mov     ebp, [esi+1Ch]
4727
                rol     ebx, 0Bh
4728
                xor     edi, edx
4729
                lea     eax, [eax+ebp+6D703EF3h]
4730
                and     edi, ebx
4731
                mov     ebp, ebx
4732
                xor     edi, edx
4733
                xor     ebp, ecx
4734
                add     eax, edi
4735
                mov     edi, [esi+38h]
4736
                rol     eax, 8
4737
                and     ebp, eax
4738
                lea     edx, [edx+edi+6D703EF3h]
4739
                xor     ebp, ecx
4740
                mov     edi, eax
4741
                add     edx, ebp
4742
                mov     ebp, [esi+18h]
4743
                rol     edx, 6
4744
                xor     edi, ebx
4745
                lea     ecx, [ecx+ebp+6D703EF3h]
4746
                and     edi, edx
4747
                mov     ebp, edx
4748
                xor     edi, ebx
4749
                xor     ebp, eax
4750
                add     ecx, edi
4751
                mov     edi, [esi+24h]
4752
                rol     ecx, 6
4753
                and     ebp, ecx
4754
                lea     ebx, [ebx+edi+6D703EF3h]
4755
                xor     ebp, eax
4756
                mov     edi, ecx
4757
                add     ebx, ebp
4758
                mov     ebp, [esi+2Ch]
4759
                rol     ebx, 0Eh
4760
                xor     edi, edx
4761
                lea     eax, [eax+ebp+6D703EF3h]
4762
                and     edi, ebx
4763
                mov     ebp, ebx
4764
                xor     edi, edx
4765
                xor     ebp, ecx
4766
                add     eax, edi
4767
                mov     edi, [esi+20h]
4768
                rol     eax, 0Ch
4769
                and     ebp, eax
4770
                lea     edx, [edx+edi+6D703EF3h]
4771
                xor     ebp, ecx
4772
                mov     edi, eax
4773
                add     edx, ebp
4774
                mov     ebp, [esi+30h]
4775
                rol     edx, 0Dh
4776
                xor     edi, ebx
4777
                lea     ecx, [ecx+ebp+6D703EF3h]
4778
                and     edi, edx
4779
                mov     ebp, edx
4780
                xor     edi, ebx
4781
                xor     ebp, eax
4782
                add     ecx, edi
4783
                mov     edi, [esi+8]
4784
                rol     ecx, 5
4785
                and     ebp, ecx
4786
                lea     ebx, [ebx+edi+6D703EF3h]
4787
                xor     ebp, eax
4788
                mov     edi, ecx
4789
                add     ebx, ebp
4790
                mov     ebp, [esi+28h]
4791
                rol     ebx, 0Eh
4792
                xor     edi, edx
4793
                lea     eax, [eax+ebp+6D703EF3h]
4794
                and     edi, ebx
4795
                mov     ebp, ebx
4796
                xor     edi, edx
4797
                xor     ebp, ecx
4798
                add     eax, edi
4799
                mov     edi, [esi]
4800
                rol     eax, 0Dh
4801
                and     ebp, eax
4802
                lea     edx, [edx+edi+6D703EF3h]
4803
                xor     ebp, ecx
4804
                mov     edi, eax
4805
                add     edx, ebp
4806
                mov     ebp, [esi+10h]
4807
                rol     edx, 0Dh
4808
                xor     edi, ebx
4809
                lea     ecx, [ecx+ebp+6D703EF3h]
4810
                and     edi, edx
4811
                mov     ebp, edx
4812
                xor     edi, ebx
4813
                xor     ebp, eax
4814
                add     ecx, edi
4815
                mov     edi, [esi+34h]
4816
                rol     ecx, 7
4817
                and     ebp, ecx
4818
                lea     ebx, [ebx+edi+6D703EF3h]
4819
                xor     ebp, eax
4820
                add     ebx, ebp
4821
                mov     ebp, [esi+4]
4822
                rol     ebx, 5
4823
                mov     [esp+10h], eax
4824
                mov     [esp+14h], ebx
4825
                mov     eax, [esp]
4826
                mov     ebx, [esp+4]
4827
                mov     [esp+1Ch], edx
4828
                mov     edx, [esp+8]
4829
                mov     [esp+18h], edx
4830
                mov     edx, [esp+0Ch]
4831
                mov     edi, ecx
4832
                xor     edi, ebx
4833
                lea     eax, [eax+ebp-70E44324h]
4834
                and     edi, edx
4835
                mov     ebp, [esi+24h]
4836
                xor     edi, ecx
4837
                add     eax, edi
4838
                mov     edi, ebx
4839
                rol     eax, 0Bh
4840
                xor     edi, eax
4841
                lea     edx, [edx+ebp-70E44324h]
4842
                and     edi, ecx
4843
                mov     ebp, [esi+2Ch]
4844
                xor     edi, ebx
4845
                add     edx, edi
4846
                mov     edi, eax
4847
                rol     edx, 0Ch
4848
                xor     edi, edx
4849
                lea     ecx, [ecx+ebp-70E44324h]
4850
                and     edi, ebx
4851
                mov     ebp, [esi+28h]
4852
                xor     edi, eax
4853
                add     ecx, edi
4854
                mov     edi, edx
4855
                rol     ecx, 0Eh
4856
                xor     edi, ecx
4857
                lea     ebx, [ebx+ebp-70E44324h]
4858
                and     edi, eax
4859
                mov     ebp, [esi]
4860
                xor     edi, edx
4861
                add     ebx, edi
4862
                mov     edi, ecx
4863
                rol     ebx, 0Fh
4864
                xor     edi, ebx
4865
                lea     eax, [eax+ebp-70E44324h]
4866
                and     edi, edx
4867
                mov     ebp, [esi+20h]
4868
                xor     edi, ecx
4869
                add     eax, edi
4870
                mov     edi, ebx
4871
                rol     eax, 0Eh
4872
                xor     edi, eax
4873
                lea     edx, [edx+ebp-70E44324h]
4874
                and     edi, ecx
4875
                mov     ebp, [esi+30h]
4876
                xor     edi, ebx
4877
                add     edx, edi
4878
                mov     edi, eax
4879
                rol     edx, 0Fh
4880
                xor     edi, edx
4881
                lea     ecx, [ecx+ebp-70E44324h]
4882
                and     edi, ebx
4883
                mov     ebp, [esi+10h]
4884
                xor     edi, eax
4885
                add     ecx, edi
4886
                mov     edi, edx
4887
                rol     ecx, 9
4888
                xor     edi, ecx
4889
                lea     ebx, [ebx+ebp-70E44324h]
4890
                and     edi, eax
4891
                mov     ebp, [esi+34h]
4892
                xor     edi, edx
4893
                add     ebx, edi
4894
                mov     edi, ecx
4895
                rol     ebx, 8
4896
                xor     edi, ebx
4897
                lea     eax, [eax+ebp-70E44324h]
4898
                and     edi, edx
4899
                mov     ebp, [esi+0Ch]
4900
                xor     edi, ecx
4901
                add     eax, edi
4902
                mov     edi, ebx
4903
                rol     eax, 9
4904
                xor     edi, eax
4905
                lea     edx, [edx+ebp-70E44324h]
4906
                and     edi, ecx
4907
                mov     ebp, [esi+1Ch]
4908
                xor     edi, ebx
4909
                add     edx, edi
4910
                mov     edi, eax
4911
                rol     edx, 0Eh
4912
                xor     edi, edx
4913
                lea     ecx, [ecx+ebp-70E44324h]
4914
                and     edi, ebx
4915
                mov     ebp, [esi+3Ch]
4916
                xor     edi, eax
4917
                add     ecx, edi
4918
                mov     edi, edx
4919
                rol     ecx, 5
4920
                xor     edi, ecx
4921
                lea     ebx, [ebx+ebp-70E44324h]
4922
                and     edi, eax
4923
                mov     ebp, [esi+38h]
4924
                xor     edi, edx
4925
                add     ebx, edi
4926
                mov     edi, ecx
4927
                rol     ebx, 6
4928
                xor     edi, ebx
4929
                lea     eax, [eax+ebp-70E44324h]
4930
                and     edi, edx
4931
                mov     ebp, [esi+14h]
4932
                xor     edi, ecx
4933
                add     eax, edi
4934
                mov     edi, ebx
4935
                rol     eax, 8
4936
                xor     edi, eax
4937
                lea     edx, [edx+ebp-70E44324h]
4938
                and     edi, ecx
4939
                mov     ebp, [esi+18h]
4940
                xor     edi, ebx
4941
                add     edx, edi
4942
                mov     edi, eax
4943
                rol     edx, 6
4944
                xor     edi, edx
4945
                lea     ecx, [ecx+ebp-70E44324h]
4946
                and     edi, ebx
4947
                mov     ebp, [esi+8]
4948
                xor     edi, eax
4949
                add     ecx, edi
4950
                mov     edi, edx
4951
                rol     ecx, 5
4952
                xor     edi, ecx
4953
                lea     ebx, [ebx+ebp-70E44324h]
4954
                and     edi, eax
4955
                mov     ebp, [esi+20h]
4956
                xor     edi, edx
4957
                add     ebx, edi
4958
                rol     ebx, 0Ch
4959
                mov     [esp], eax
4960
                mov     [esp+4], ebx
4961
                mov     eax, [esp+10h]
4962
                mov     ebx, [esp+14h]
4963
                mov     [esp+8], ecx
4964
                mov     ecx, [esp+18h]
4965
                mov     edi, ecx
4966
                mov     [esp+0Ch], edx
4967
                mov     edx, [esp+1Ch]
4968
                xor     edi, edx
4969
                mov     ebp, [esi+20h]
4970
                xor     edi, ebx
4971
                add     eax, ebp
4972
                add     eax, edi
4973
                mov     edi, ebx
4974
                rol     eax, 0Fh
4975
                xor     edi, ecx
4976
                mov     ebp, [esi+18h]
4977
                xor     edi, eax
4978
                add     edx, ebp
4979
                add     edx, edi
4980
                mov     edi, eax
4981
                rol     edx, 5
4982
                xor     edi, ebx
4983
                mov     ebp, [esi+10h]
4984
                xor     edi, edx
4985
                add     ecx, ebp
4986
                add     ecx, edi
4987
                mov     edi, edx
4988
                rol     ecx, 8
4989
                xor     edi, eax
4990
                mov     ebp, [esi+4]
4991
                xor     edi, ecx
4992
                add     ebx, ebp
4993
                add     ebx, edi
4994
                mov     edi, ecx
4995
                rol     ebx, 0Bh
4996
                xor     edi, edx
4997
                mov     ebp, [esi+0Ch]
4998
                xor     edi, ebx
4999
                add     eax, ebp
5000
                add     eax, edi
5001
                mov     edi, ebx
5002
                rol     eax, 0Eh
5003
                xor     edi, ecx
5004
                mov     ebp, [esi+2Ch]
5005
                xor     edi, eax
5006
                add     edx, ebp
5007
                add     edx, edi
5008
                mov     edi, eax
5009
                rol     edx, 0Eh
5010
                xor     edi, ebx
5011
                mov     ebp, [esi+3Ch]
5012
                xor     edi, edx
5013
                add     ecx, ebp
5014
                add     ecx, edi
5015
                mov     edi, edx
5016
                rol     ecx, 6
5017
                xor     edi, eax
5018
                mov     ebp, [esi]
5019
                xor     edi, ecx
5020
                add     ebx, ebp
5021
                add     ebx, edi
5022
                mov     edi, ecx
5023
                rol     ebx, 0Eh
5024
                xor     edi, edx
5025
                mov     ebp, [esi+14h]
5026
                xor     edi, ebx
5027
                add     eax, ebp
5028
                add     eax, edi
5029
                mov     edi, ebx
5030
                rol     eax, 6
5031
                xor     edi, ecx
5032
                mov     ebp, [esi+30h]
5033
                xor     edi, eax
5034
                add     edx, ebp
5035
                add     edx, edi
5036
                mov     edi, eax
5037
                rol     edx, 9
5038
                xor     edi, ebx
5039
                mov     ebp, [esi+8]
5040
                xor     edi, edx
5041
                add     ecx, ebp
5042
                add     ecx, edi
5043
                mov     edi, edx
5044
                rol     ecx, 0Ch
5045
                xor     edi, eax
5046
                mov     ebp, [esi+34h]
5047
                xor     edi, ecx
5048
                add     ebx, ebp
5049
                add     ebx, edi
5050
                mov     edi, ecx
5051
                rol     ebx, 9
5052
                xor     edi, edx
5053
                mov     ebp, [esi+24h]
5054
                xor     edi, ebx
5055
                add     eax, ebp
5056
                add     eax, edi
5057
                mov     edi, ebx
5058
                rol     eax, 0Ch
5059
                xor     edi, ecx
5060
                mov     ebp, [esi+1Ch]
5061
                xor     edi, eax
5062
                add     edx, ebp
5063
                add     edx, edi
5064
                mov     edi, eax
5065
                rol     edx, 5
5066
                xor     edi, ebx
5067
                mov     ebp, [esi+28h]
5068
                xor     edi, edx
5069
                add     ecx, ebp
5070
                add     ecx, edi
5071
                mov     edi, edx
5072
                rol     ecx, 0Fh
5073
                xor     edi, eax
5074
                mov     ebp, [esi+38h]
5075
                xor     edi, ecx
5076
                add     ebx, ebp
5077
                add     ebx, edi
5078
                mov     edi, ecx
5079
                rol     ebx, 8
5080
                mov     edi, [esp+20h]
5081
                add     [edi+0Ch], edx
5082
                add     [edi+10h], eax
5083
                add     [edi+14h], ebx
5084
                mov     eax, [esp]
5085
                mov     ebx, [esp+4]
5086
                add     [edi+18h], ecx
5087
                mov     ecx, [esp+8]
5088
                mov     edx, [esp+0Ch]
5089
                add     [edi], eax
5090
                add     esp, 24h
5091
                add     [edi+4], ebx
5092
                add     [edi+8], ecx
5093
                add     [edi+1Ch], edx
5094
5095
                pop     ebp
5096
                pop     edi
5097
                pop     esi
5098
                pop     ebx
5099
end;
5100
{$ENDIF}
5101
5102
{$IFDEF THash_RipeMD320_asm}
5103
procedure THash_RipeMD320.DoTransform(Buffer: PUInt32Array);
5104
asm
5105
                push    ebx
5106
                push    esi
5107
                push    edi
5108
                lea     edi, [eax].THash_RipeMD320.FDigest
5109
                mov     esi, edx
5110
                push    ebp
5111
                mov     eax, [edi]
5112
                mov     ebx, [edi+4]
5113
                push    edi
5114
                mov     ecx, [edi+8]
5115
                mov     edx, [edi+0Ch]
5116
                add     esp, 0FFFFFFD8h
5117
                mov     ebp, [edi+10h]
5118
                mov     edi, edx
5119
                xor     edi, ecx
5120
                xor     edi, ebx
5121
                add     eax, [esi]
5122
                rol     ecx, 0Ah
5123
                add     eax, edi
5124
                mov     edi, ecx
5125
                rol     eax, 0Bh
5126
                add     eax, ebp
5127
                xor     edi, ebx
5128
                xor     edi, eax
5129
                add     ebp, [esi+4]
5130
                rol     ebx, 0Ah
5131
                add     ebp, edi
5132
                mov     edi, ebx
5133
                rol     ebp, 0Eh
5134
                add     ebp, edx
5135
                xor     edi, eax
5136
                xor     edi, ebp
5137
                add     edx, [esi+8]
5138
                rol     eax, 0Ah
5139
                add     edx, edi
5140
                mov     edi, eax
5141
                rol     edx, 0Fh
5142
                add     edx, ecx
5143
                xor     edi, ebp
5144
                xor     edi, edx
5145
                add     ecx, [esi+0Ch]
5146
                rol     ebp, 0Ah
5147
                add     ecx, edi
5148
                mov     edi, ebp
5149
                rol     ecx, 0Ch
5150
                add     ecx, ebx
5151
                xor     edi, edx
5152
                xor     edi, ecx
5153
                add     ebx, [esi+10h]
5154
                rol     edx, 0Ah
5155
                add     ebx, edi
5156
                mov     edi, edx
5157
                rol     ebx, 5
5158
                add     ebx, eax
5159
                xor     edi, ecx
5160
                xor     edi, ebx
5161
                add     eax, [esi+14h]
5162
                rol     ecx, 0Ah
5163
                add     eax, edi
5164
                mov     edi, ecx
5165
                rol     eax, 8
5166
                add     eax, ebp
5167
                xor     edi, ebx
5168
                xor     edi, eax
5169
                add     ebp, [esi+18h]
5170
                rol     ebx, 0Ah
5171
                add     ebp, edi
5172
                mov     edi, ebx
5173
                rol     ebp, 7
5174
                add     ebp, edx
5175
                xor     edi, eax
5176
                xor     edi, ebp
5177
                add     edx, [esi+1Ch]
5178
                rol     eax, 0Ah
5179
                add     edx, edi
5180
                mov     edi, eax
5181
                rol     edx, 9
5182
                add     edx, ecx
5183
                xor     edi, ebp
5184
                xor     edi, edx
5185
                add     ecx, [esi+20h]
5186
                rol     ebp, 0Ah
5187
                add     ecx, edi
5188
                mov     edi, ebp
5189
                rol     ecx, 0Bh
5190
                add     ecx, ebx
5191
                xor     edi, edx
5192
                xor     edi, ecx
5193
                add     ebx, [esi+24h]
5194
                rol     edx, 0Ah
5195
                add     ebx, edi
5196
                mov     edi, edx
5197
                rol     ebx, 0Dh
5198
                add     ebx, eax
5199
                xor     edi, ecx
5200
                xor     edi, ebx
5201
                add     eax, [esi+28h]
5202
                rol     ecx, 0Ah
5203
                add     eax, edi
5204
                mov     edi, ecx
5205
                rol     eax, 0Eh
5206
                add     eax, ebp
5207
                xor     edi, ebx
5208
                xor     edi, eax
5209
                add     ebp, [esi+2Ch]
5210
                rol     ebx, 0Ah
5211
                add     ebp, edi
5212
                mov     edi, ebx
5213
                rol     ebp, 0Fh
5214
                add     ebp, edx
5215
                xor     edi, eax
5216
                xor     edi, ebp
5217
                add     edx, [esi+30h]
5218
                rol     eax, 0Ah
5219
                add     edx, edi
5220
                mov     edi, eax
5221
                rol     edx, 6
5222
                add     edx, ecx
5223
                xor     edi, ebp
5224
                xor     edi, edx
5225
                add     ecx, [esi+34h]
5226
                rol     ebp, 0Ah
5227
                add     ecx, edi
5228
                mov     edi, ebp
5229
                rol     ecx, 7
5230
                add     ecx, ebx
5231
                xor     edi, edx
5232
                xor     edi, ecx
5233
                add     ebx, [esi+38h]
5234
                rol     edx, 0Ah
5235
                add     ebx, edi
5236
                mov     edi, edx
5237
                rol     ebx, 9
5238
                add     ebx, eax
5239
                xor     edi, ecx
5240
                xor     edi, ebx
5241
                add     eax, [esi+3Ch]
5242
                rol     ecx, 0Ah
5243
                add     eax, edi
5244
                rol     eax, 8
5245
                add     eax, ebp
5246
                mov     edi, [esp+28h]
5247
                mov     [esp], eax
5248
                mov     [esp+4], ebx
5249
                mov     eax, [edi+14h]
5250
                mov     ebx, [edi+18h]
5251
                mov     [esp+8], ecx
5252
                mov     [esp+0Ch], edx
5253
                mov     ecx, [edi+1Ch]
5254
                mov     edx, [edi+20h]
5255
                mov     [esp+10h], ebp
5256
                mov     ebp, [edi+24h]
5257
                mov     edi, edx
5258
                xor     edi, 0FFFFFFFFh
5259
                or      edi, ecx
5260
                add     eax, [esi+14h]
5261
                xor     edi, ebx
5262
                rol     ecx, 0Ah
5263
                lea     eax, [eax+edi+50A28BE6h]
5264
                mov     edi, ecx
5265
                rol     eax, 8
5266
                add     eax, ebp
5267
                xor     edi, 0FFFFFFFFh
5268
                or      edi, ebx
5269
                add     ebp, [esi+38h]
5270
                xor     edi, eax
5271
                rol     ebx, 0Ah
5272
                lea     ebp, [ebp+edi+50A28BE6h]
5273
                mov     edi, ebx
5274
                rol     ebp, 9
5275
                add     ebp, edx
5276
                xor     edi, 0FFFFFFFFh
5277
                or      edi, eax
5278
                add     edx, [esi+1Ch]
5279
                xor     edi, ebp
5280
                rol     eax, 0Ah
5281
                lea     edx, [edx+edi+50A28BE6h]
5282
                mov     edi, eax
5283
                rol     edx, 9
5284
                add     edx, ecx
5285
                xor     edi, 0FFFFFFFFh
5286
                or      edi, ebp
5287
                add     ecx, [esi]
5288
                xor     edi, edx
5289
                rol     ebp, 0Ah
5290
                lea     ecx, [ecx+edi+50A28BE6h]
5291
                mov     edi, ebp
5292
                rol     ecx, 0Bh
5293
                add     ecx, ebx
5294
                xor     edi, 0FFFFFFFFh
5295
                or      edi, edx
5296
                add     ebx, [esi+24h]
5297
                xor     edi, ecx
5298
                rol     edx, 0Ah
5299
                lea     ebx, [ebx+edi+50A28BE6h]
5300
                mov     edi, edx
5301
                rol     ebx, 0Dh
5302
                add     ebx, eax
5303
                xor     edi, 0FFFFFFFFh
5304
                or      edi, ecx
5305
                add     eax, [esi+8]
5306
                xor     edi, ebx
5307
                rol     ecx, 0Ah
5308
                lea     eax, [eax+edi+50A28BE6h]
5309
                mov     edi, ecx
5310
                rol     eax, 0Fh
5311
                add     eax, ebp
5312
                xor     edi, 0FFFFFFFFh
5313
                or      edi, ebx
5314
                add     ebp, [esi+2Ch]
5315
                xor     edi, eax
5316
                rol     ebx, 0Ah
5317
                lea     ebp, [ebp+edi+50A28BE6h]
5318
                mov     edi, ebx
5319
                rol     ebp, 0Fh
5320
                add     ebp, edx
5321
                xor     edi, 0FFFFFFFFh
5322
                or      edi, eax
5323
                add     edx, [esi+10h]
5324
                xor     edi, ebp
5325
                rol     eax, 0Ah
5326
                lea     edx, [edx+edi+50A28BE6h]
5327
                mov     edi, eax
5328
                rol     edx, 5
5329
                add     edx, ecx
5330
                xor     edi, 0FFFFFFFFh
5331
                or      edi, ebp
5332
                add     ecx, [esi+34h]
5333
                xor     edi, edx
5334
                rol     ebp, 0Ah
5335
                lea     ecx, [ecx+edi+50A28BE6h]
5336
                mov     edi, ebp
5337
                rol     ecx, 7
5338
                add     ecx, ebx
5339
                xor     edi, 0FFFFFFFFh
5340
                or      edi, edx
5341
                add     ebx, [esi+18h]
5342
                xor     edi, ecx
5343
                rol     edx, 0Ah
5344
                lea     ebx, [ebx+edi+50A28BE6h]
5345
                mov     edi, edx
5346
                rol     ebx, 7
5347
                add     ebx, eax
5348
                xor     edi, 0FFFFFFFFh
5349
                or      edi, ecx
5350
                add     eax, [esi+3Ch]
5351
                xor     edi, ebx
5352
                rol     ecx, 0Ah
5353
                lea     eax, [eax+edi+50A28BE6h]
5354
                mov     edi, ecx
5355
                rol     eax, 8
5356
                add     eax, ebp
5357
                xor     edi, 0FFFFFFFFh
5358
                or      edi, ebx
5359
                add     ebp, [esi+20h]
5360
                xor     edi, eax
5361
                rol     ebx, 0Ah
5362
                lea     ebp, [ebp+edi+50A28BE6h]
5363
                mov     edi, ebx
5364
                rol     ebp, 0Bh
5365
                add     ebp, edx
5366
                xor     edi, 0FFFFFFFFh
5367
                or      edi, eax
5368
                add     edx, [esi+4]
5369
                xor     edi, ebp
5370
                rol     eax, 0Ah
5371
                lea     edx, [edx+edi+50A28BE6h]
5372
                mov     edi, eax
5373
                rol     edx, 0Eh
5374
                add     edx, ecx
5375
                xor     edi, 0FFFFFFFFh
5376
                or      edi, ebp
5377
                add     ecx, [esi+28h]
5378
                xor     edi, edx
5379
                rol     ebp, 0Ah
5380
                lea     ecx, [ecx+edi+50A28BE6h]
5381
                mov     edi, ebp
5382
                rol     ecx, 0Eh
5383
                add     ecx, ebx
5384
                xor     edi, 0FFFFFFFFh
5385
                or      edi, edx
5386
                add     ebx, [esi+0Ch]
5387
                xor     edi, ecx
5388
                rol     edx, 0Ah
5389
                lea     ebx, [ebx+edi+50A28BE6h]
5390
                mov     edi, edx
5391
                rol     ebx, 0Ch
5392
                add     ebx, eax
5393
                xor     edi, 0FFFFFFFFh
5394
                or      edi, ecx
5395
                add     eax, [esi+30h]
5396
                xor     edi, ebx
5397
                rol     ecx, 0Ah
5398
                lea     eax, [eax+edi+50A28BE6h]
5399
                rol     eax, 6
5400
                add     eax, ebp
5401
                mov     [esp+18h], ebx
5402
                mov     [esp+1Ch], ecx
5403
                mov     ebx, [esp+4]
5404
                mov     ecx, [esp+8]
5405
                mov     [esp+20h], edx
5406
                mov     [esp+24h], ebp
5407
                mov     edx, [esp+0Ch]
5408
                mov     ebp, [esp]
5409
                mov     [esp+14h], ebp
5410
                mov     ebp, [esp+10h]
5411
                mov     edi, ecx
5412
                xor     edi, ebx
5413
                add     ebp, [esi+1Ch]
5414
                and     edi, eax
5415
                xor     edi, ecx
5416
                rol     ebx, 0Ah
5417
                lea     ebp, [ebp+edi+5A827999h]
5418
                mov     edi, ebx
5419
                rol     ebp, 7
5420
                add     ebp, edx
5421
                xor     edi, eax
5422
                add     edx, [esi+10h]
5423
                and     edi, ebp
5424
                xor     edi, ebx
5425
                rol     eax, 0Ah
5426
                lea     edx, [edx+edi+5A827999h]
5427
                mov     edi, eax
5428
                rol     edx, 6
5429
                add     edx, ecx
5430
                xor     edi, ebp
5431
                add     ecx, [esi+34h]
5432
                and     edi, edx
5433
                xor     edi, eax
5434
                rol     ebp, 0Ah
5435
                lea     ecx, [ecx+edi+5A827999h]
5436
                mov     edi, ebp
5437
                rol     ecx, 8
5438
                add     ecx, ebx
5439
                xor     edi, edx
5440
                add     ebx, [esi+4]
5441
                and     edi, ecx
5442
                xor     edi, ebp
5443
                rol     edx, 0Ah
5444
                lea     ebx, [ebx+edi+5A827999h]
5445
                mov     edi, edx
5446
                rol     ebx, 0Dh
5447
                add     ebx, eax
5448
                xor     edi, ecx
5449
                add     eax, [esi+28h]
5450
                and     edi, ebx
5451
                xor     edi, edx
5452
                rol     ecx, 0Ah
5453
                lea     eax, [eax+edi+5A827999h]
5454
                mov     edi, ecx
5455
                rol     eax, 0Bh
5456
                add     eax, ebp
5457
                xor     edi, ebx
5458
                add     ebp, [esi+18h]
5459
                and     edi, eax
5460
                xor     edi, ecx
5461
                rol     ebx, 0Ah
5462
                lea     ebp, [ebp+edi+5A827999h]
5463
                mov     edi, ebx
5464
                rol     ebp, 9
5465
                add     ebp, edx
5466
                xor     edi, eax
5467
                add     edx, [esi+3Ch]
5468
                and     edi, ebp
5469
                xor     edi, ebx
5470
                rol     eax, 0Ah
5471
                lea     edx, [edx+edi+5A827999h]
5472
                mov     edi, eax
5473
                rol     edx, 7
5474
                add     edx, ecx
5475
                xor     edi, ebp
5476
                add     ecx, [esi+0Ch]
5477
                and     edi, edx
5478
                xor     edi, eax
5479
                rol     ebp, 0Ah
5480
                lea     ecx, [ecx+edi+5A827999h]
5481
                mov     edi, ebp
5482
                rol     ecx, 0Fh
5483
                add     ecx, ebx
5484
                xor     edi, edx
5485
                add     ebx, [esi+30h]
5486
                and     edi, ecx
5487
                xor     edi, ebp
5488
                rol     edx, 0Ah
5489
                lea     ebx, [ebx+edi+5A827999h]
5490
                mov     edi, edx
5491
                rol     ebx, 7
5492
                add     ebx, eax
5493
                xor     edi, ecx
5494
                add     eax, [esi]
5495
                and     edi, ebx
5496
                xor     edi, edx
5497
                rol     ecx, 0Ah
5498
                lea     eax, [eax+edi+5A827999h]
5499
                mov     edi, ecx
5500
                rol     eax, 0Ch
5501
                add     eax, ebp
5502
                xor     edi, ebx
5503
                add     ebp, [esi+24h]
5504
                and     edi, eax
5505
                xor     edi, ecx
5506
                rol     ebx, 0Ah
5507
                lea     ebp, [ebp+edi+5A827999h]
5508
                mov     edi, ebx
5509
                rol     ebp, 0Fh
5510
                add     ebp, edx
5511
                xor     edi, eax
5512
                add     edx, [esi+14h]
5513
                and     edi, ebp
5514
                xor     edi, ebx
5515
                rol     eax, 0Ah
5516
                lea     edx, [edx+edi+5A827999h]
5517
                mov     edi, eax
5518
                rol     edx, 9
5519
                add     edx, ecx
5520
                xor     edi, ebp
5521
                add     ecx, [esi+8]
5522
                and     edi, edx
5523
                xor     edi, eax
5524
                rol     ebp, 0Ah
5525
                lea     ecx, [ecx+edi+5A827999h]
5526
                mov     edi, ebp
5527
                rol     ecx, 0Bh
5528
                add     ecx, ebx
5529
                xor     edi, edx
5530
                add     ebx, [esi+38h]
5531
                and     edi, ecx
5532
                xor     edi, ebp
5533
                rol     edx, 0Ah
5534
                lea     ebx, [ebx+edi+5A827999h]
5535
                mov     edi, edx
5536
                rol     ebx, 7
5537
                add     ebx, eax
5538
                xor     edi, ecx
5539
                add     eax, [esi+2Ch]
5540
                and     edi, ebx
5541
                xor     edi, edx
5542
                rol     ecx, 0Ah
5543
                lea     eax, [eax+edi+5A827999h]
5544
                mov     edi, ecx
5545
                rol     eax, 0Dh
5546
                add     eax, ebp
5547
                xor     edi, ebx
5548
                add     ebp, [esi+20h]
5549
                and     edi, eax
5550
                xor     edi, ecx
5551
                rol     ebx, 0Ah
5552
                lea     ebp, [ebp+edi+5A827999h]
5553
                rol     ebp, 0Ch
5554
                add     ebp, edx
5555
                mov     [esp], eax
5556
                mov     [esp+4], ebx
5557
                mov     eax, [esp+14h]
5558
                mov     ebx, [esp+18h]
5559
                mov     [esp+8], ecx
5560
                mov     [esp+0Ch], edx
5561
                mov     ecx, [esp+1Ch]
5562
                mov     edx, [esp+20h]
5563
                mov     [esp+10h], ebp
5564
                mov     ebp, [esp+24h]
5565
                mov     edi, ebx
5566
                xor     edi, eax
5567
                and     edi, ecx
5568
                add     ebp, [esi+18h]
5569
                xor     edi, ebx
5570
                rol     ebx, 0Ah
5571
                lea     ebp, [ebp+edi+5C4DD124h]
5572
                mov     edi, eax
5573
                rol     ebp, 9
5574
                add     ebp, edx
5575
                xor     edi, ebp
5576
                and     edi, ebx
5577
                add     edx, [esi+2Ch]
5578
                xor     edi, eax
5579
                rol     eax, 0Ah
5580
                lea     edx, [edx+edi+5C4DD124h]
5581
                mov     edi, ebp
5582
                rol     edx, 0Dh
5583
                add     edx, ecx
5584
                xor     edi, edx
5585
                and     edi, eax
5586
                add     ecx, [esi+0Ch]
5587
                xor     edi, ebp
5588
                rol     ebp, 0Ah
5589
                lea     ecx, [ecx+edi+5C4DD124h]
5590
                mov     edi, edx
5591
                rol     ecx, 0Fh
5592
                add     ecx, ebx
5593
                xor     edi, ecx
5594
                and     edi, ebp
5595
                add     ebx, [esi+1Ch]
5596
                xor     edi, edx
5597
                rol     edx, 0Ah
5598
                lea     ebx, [ebx+edi+5C4DD124h]
5599
                mov     edi, ecx
5600
                rol     ebx, 7
5601
                add     ebx, eax
5602
                xor     edi, ebx
5603
                and     edi, edx
5604
                add     eax, [esi]
5605
                xor     edi, ecx
5606
                rol     ecx, 0Ah
5607
                lea     eax, [eax+edi+5C4DD124h]
5608
                mov     edi, ebx
5609
                rol     eax, 0Ch
5610
                add     eax, ebp
5611
                xor     edi, eax
5612
                and     edi, ecx
5613
                add     ebp, [esi+34h]
5614
                xor     edi, ebx
5615
                rol     ebx, 0Ah
5616
                lea     ebp, [ebp+edi+5C4DD124h]
5617
                mov     edi, eax
5618
                rol     ebp, 8
5619
                add     ebp, edx
5620
                xor     edi, ebp
5621
                and     edi, ebx
5622
                add     edx, [esi+14h]
5623
                xor     edi, eax
5624
                rol     eax, 0Ah
5625
                lea     edx, [edx+edi+5C4DD124h]
5626
                mov     edi, ebp
5627
                rol     edx, 9
5628
                add     edx, ecx
5629
                xor     edi, edx
5630
                and     edi, eax
5631
                add     ecx, [esi+28h]
5632
                xor     edi, ebp
5633
                rol     ebp, 0Ah
5634
                lea     ecx, [ecx+edi+5C4DD124h]
5635
                mov     edi, edx
5636
                rol     ecx, 0Bh
5637
                add     ecx, ebx
5638
                xor     edi, ecx
5639
                and     edi, ebp
5640
                add     ebx, [esi+38h]
5641
                xor     edi, edx
5642
                rol     edx, 0Ah
5643
                lea     ebx, [ebx+edi+5C4DD124h]
5644
                mov     edi, ecx
5645
                rol     ebx, 7
5646
                add     ebx, eax
5647
                xor     edi, ebx
5648
                and     edi, edx
5649
                add     eax, [esi+3Ch]
5650
                xor     edi, ecx
5651
                rol     ecx, 0Ah
5652
                lea     eax, [eax+edi+5C4DD124h]
5653
                mov     edi, ebx
5654
                rol     eax, 7
5655
                add     eax, ebp
5656
                xor     edi, eax
5657
                and     edi, ecx
5658
                add     ebp, [esi+20h]
5659
                xor     edi, ebx
5660
                rol     ebx, 0Ah
5661
                lea     ebp, [ebp+edi+5C4DD124h]
5662
                mov     edi, eax
5663
                rol     ebp, 0Ch
5664
                add     ebp, edx
5665
                xor     edi, ebp
5666
                and     edi, ebx
5667
                add     edx, [esi+30h]
5668
                xor     edi, eax
5669
                rol     eax, 0Ah
5670
                lea     edx, [edx+edi+5C4DD124h]
5671
                mov     edi, ebp
5672
                rol     edx, 7
5673
                add     edx, ecx
5674
                xor     edi, edx
5675
                and     edi, eax
5676
                add     ecx, [esi+10h]
5677
                xor     edi, ebp
5678
                rol     ebp, 0Ah
5679
                lea     ecx, [ecx+edi+5C4DD124h]
5680
                mov     edi, edx
5681
                rol     ecx, 6
5682
                add     ecx, ebx
5683
                xor     edi, ecx
5684
                and     edi, ebp
5685
                add     ebx, [esi+24h]
5686
                xor     edi, edx
5687
                rol     edx, 0Ah
5688
                lea     ebx, [ebx+edi+5C4DD124h]
5689
                mov     edi, ecx
5690
                rol     ebx, 0Fh
5691
                add     ebx, eax
5692
                xor     edi, ebx
5693
                and     edi, edx
5694
                add     eax, [esi+4]
5695
                xor     edi, ecx
5696
                rol     ecx, 0Ah
5697
                lea     eax, [eax+edi+5C4DD124h]
5698
                mov     edi, ebx
5699
                rol     eax, 0Dh
5700
                add     eax, ebp
5701
                xor     edi, eax
5702
                and     edi, ecx
5703
                add     ebp, [esi+8]
5704
                xor     edi, ebx
5705
                rol     ebx, 0Ah
5706
                lea     ebp, [ebp+edi+5C4DD124h]
5707
                rol     ebp, 0Bh
5708
                add     ebp, edx
5709
                mov     [esp+14h], eax
5710
                mov     [esp+1Ch], ecx
5711
                mov     eax, [esp]
5712
                mov     ecx, [esp+8]
5713
                mov     [esp+20h], edx
5714
                mov     [esp+24h], ebp
5715
                mov     edx, [esp+0Ch]
5716
                mov     ebp, [esp+4]
5717
                mov     [esp+18h], ebp
5718
                mov     ebp, [esp+10h]
5719
                mov     edi, eax
5720
                xor     edi, 0FFFFFFFFh
5721
                or      edi, ebp
5722
                add     edx, [esi+0Ch]
5723
                xor     edi, ebx
5724
                rol     eax, 0Ah
5725
                lea     edx, [edx+edi+6ED9EBA1h]
5726
                mov     edi, ebp
5727
                rol     edx, 0Bh
5728
                add     edx, ecx
5729
                xor     edi, 0FFFFFFFFh
5730
                or      edi, edx
5731
                add     ecx, [esi+28h]
5732
                xor     edi, eax
5733
                rol     ebp, 0Ah
5734
                lea     ecx, [ecx+edi+6ED9EBA1h]
5735
                mov     edi, edx
5736
                rol     ecx, 0Dh
5737
                add     ecx, ebx
5738
                xor     edi, 0FFFFFFFFh
5739
                or      edi, ecx
5740
                add     ebx, [esi+38h]
5741
                xor     edi, ebp
5742
                rol     edx, 0Ah
5743
                lea     ebx, [ebx+edi+6ED9EBA1h]
5744
                mov     edi, ecx
5745
                rol     ebx, 6
5746
                add     ebx, eax
5747
                xor     edi, 0FFFFFFFFh
5748
                or      edi, ebx
5749
                add     eax, [esi+10h]
5750
                xor     edi, edx
5751
                rol     ecx, 0Ah
5752
                lea     eax, [eax+edi+6ED9EBA1h]
5753
                mov     edi, ebx
5754
                rol     eax, 7
5755
                add     eax, ebp
5756
                xor     edi, 0FFFFFFFFh
5757
                or      edi, eax
5758
                add     ebp, [esi+24h]
5759
                xor     edi, ecx
5760
                rol     ebx, 0Ah
5761
                lea     ebp, [ebp+edi+6ED9EBA1h]
5762
                mov     edi, eax
5763
                rol     ebp, 0Eh
5764
                add     ebp, edx
5765
                xor     edi, 0FFFFFFFFh
5766
                or      edi, ebp
5767
                add     edx, [esi+3Ch]
5768
                xor     edi, ebx
5769
                rol     eax, 0Ah
5770
                lea     edx, [edx+edi+6ED9EBA1h]
5771
                mov     edi, ebp
5772
                rol     edx, 9
5773
                add     edx, ecx
5774
                xor     edi, 0FFFFFFFFh
5775
                or      edi, edx
5776
                add     ecx, [esi+20h]
5777
                xor     edi, eax
5778
                rol     ebp, 0Ah
5779
                lea     ecx, [ecx+edi+6ED9EBA1h]
5780
                mov     edi, edx
5781
                rol     ecx, 0Dh
5782
                add     ecx, ebx
5783
                xor     edi, 0FFFFFFFFh
5784
                or      edi, ecx
5785
                add     ebx, [esi+4]
5786
                xor     edi, ebp
5787
                rol     edx, 0Ah
5788
                lea     ebx, [ebx+edi+6ED9EBA1h]
5789
                mov     edi, ecx
5790
                rol     ebx, 0Fh
5791
                add     ebx, eax
5792
                xor     edi, 0FFFFFFFFh
5793
                or      edi, ebx
5794
                add     eax, [esi+8]
5795
                xor     edi, edx
5796
                rol     ecx, 0Ah
5797
                lea     eax, [eax+edi+6ED9EBA1h]
5798
                mov     edi, ebx
5799
                rol     eax, 0Eh
5800
                add     eax, ebp
5801
                xor     edi, 0FFFFFFFFh
5802
                or      edi, eax
5803
                add     ebp, [esi+1Ch]
5804
                xor     edi, ecx
5805
                rol     ebx, 0Ah
5806
                lea     ebp, [ebp+edi+6ED9EBA1h]
5807
                mov     edi, eax
5808
                rol     ebp, 8
5809
                add     ebp, edx
5810
                xor     edi, 0FFFFFFFFh
5811
                or      edi, ebp
5812
                add     edx, [esi]
5813
                xor     edi, ebx
5814
                rol     eax, 0Ah
5815
                lea     edx, [edx+edi+6ED9EBA1h]
5816
                mov     edi, ebp
5817
                rol     edx, 0Dh
5818
                add     edx, ecx
5819
                xor     edi, 0FFFFFFFFh
5820
                or      edi, edx
5821
                add     ecx, [esi+18h]
5822
                xor     edi, eax
5823
                rol     ebp, 0Ah
5824
                lea     ecx, [ecx+edi+6ED9EBA1h]
5825
                mov     edi, edx
5826
                rol     ecx, 6
5827
                add     ecx, ebx
5828
                xor     edi, 0FFFFFFFFh
5829
                or      edi, ecx
5830
                add     ebx, [esi+34h]
5831
                xor     edi, ebp
5832
                rol     edx, 0Ah
5833
                lea     ebx, [ebx+edi+6ED9EBA1h]
5834
                mov     edi, ecx
5835
                rol     ebx, 5
5836
                add     ebx, eax
5837
                xor     edi, 0FFFFFFFFh
5838
                or      edi, ebx
5839
                add     eax, [esi+2Ch]
5840
                xor     edi, edx
5841
                rol     ecx, 0Ah
5842
                lea     eax, [eax+edi+6ED9EBA1h]
5843
                mov     edi, ebx
5844
                rol     eax, 0Ch
5845
                add     eax, ebp
5846
                xor     edi, 0FFFFFFFFh
5847
                or      edi, eax
5848
                add     ebp, [esi+14h]
5849
                xor     edi, ecx
5850
                rol     ebx, 0Ah
5851
                lea     ebp, [ebp+edi+6ED9EBA1h]
5852
                mov     edi, eax
5853
                rol     ebp, 7
5854
                add     ebp, edx
5855
                xor     edi, 0FFFFFFFFh
5856
                or      edi, ebp
5857
                add     edx, [esi+30h]
5858
                xor     edi, ebx
5859
                rol     eax, 0Ah
5860
                lea     edx, [edx+edi+6ED9EBA1h]
5861
                rol     edx, 5
5862
                add     edx, ecx
5863
                mov     [esp], eax
5864
                mov     [esp+4], ebx
5865
                mov     eax, [esp+14h]
5866
                mov     ebx, [esp+18h]
5867
                mov     [esp+8], ecx
5868
                mov     [esp+0Ch], edx
5869
                mov     ecx, [esp+1Ch]
5870
                mov     edx, [esp+20h]
5871
                mov     [esp+10h], ebp
5872
                mov     ebp, [esp+24h]
5873
                mov     edi, eax
5874
                xor     edi, 0FFFFFFFFh
5875
                or      edi, ebp
5876
                add     edx, [esi+3Ch]
5877
                xor     edi, ebx
5878
                rol     eax, 0Ah
5879
                lea     edx, [edx+edi+6D703EF3h]
5880
                mov     edi, ebp
5881
                rol     edx, 9
5882
                add     edx, ecx
5883
                xor     edi, 0FFFFFFFFh
5884
                or      edi, edx
5885
                add     ecx, [esi+14h]
5886
                xor     edi, eax
5887
                rol     ebp, 0Ah
5888
                lea     ecx, [ecx+edi+6D703EF3h]
5889
                mov     edi, edx
5890
                rol     ecx, 7
5891
                add     ecx, ebx
5892
                xor     edi, 0FFFFFFFFh
5893
                or      edi, ecx
5894
                add     ebx, [esi+4]
5895
                xor     edi, ebp
5896
                rol     edx, 0Ah
5897
                lea     ebx, [ebx+edi+6D703EF3h]
5898
                mov     edi, ecx
5899
                rol     ebx, 0Fh
5900
                add     ebx, eax
5901
                xor     edi, 0FFFFFFFFh
5902
                or      edi, ebx
5903
                add     eax, [esi+0Ch]
5904
                xor     edi, edx
5905
                rol     ecx, 0Ah
5906
                lea     eax, [eax+edi+6D703EF3h]
5907
                mov     edi, ebx
5908
                rol     eax, 0Bh
5909
                add     eax, ebp
5910
                xor     edi, 0FFFFFFFFh
5911
                or      edi, eax
5912
                add     ebp, [esi+1Ch]
5913
                xor     edi, ecx
5914
                rol     ebx, 0Ah
5915
                lea     ebp, [ebp+edi+6D703EF3h]
5916
                mov     edi, eax
5917
                rol     ebp, 8
5918
                add     ebp, edx
5919
                xor     edi, 0FFFFFFFFh
5920
                or      edi, ebp
5921
                add     edx, [esi+38h]
5922
                xor     edi, ebx
5923
                rol     eax, 0Ah
5924
                lea     edx, [edx+edi+6D703EF3h]
5925
                mov     edi, ebp
5926
                rol     edx, 6
5927
                add     edx, ecx
5928
                xor     edi, 0FFFFFFFFh
5929
                or      edi, edx
5930
                add     ecx, [esi+18h]
5931
                xor     edi, eax
5932
                rol     ebp, 0Ah
5933
                lea     ecx, [ecx+edi+6D703EF3h]
5934
                mov     edi, edx
5935
                rol     ecx, 6
5936
                add     ecx, ebx
5937
                xor     edi, 0FFFFFFFFh
5938
                or      edi, ecx
5939
                add     ebx, [esi+24h]
5940
                xor     edi, ebp
5941
                rol     edx, 0Ah
5942
                lea     ebx, [ebx+edi+6D703EF3h]
5943
                mov     edi, ecx
5944
                rol     ebx, 0Eh
5945
                add     ebx, eax
5946
                xor     edi, 0FFFFFFFFh
5947
                or      edi, ebx
5948
                add     eax, [esi+2Ch]
5949
                xor     edi, edx
5950
                rol     ecx, 0Ah
5951
                lea     eax, [eax+edi+6D703EF3h]
5952
                mov     edi, ebx
5953
                rol     eax, 0Ch
5954
                add     eax, ebp
5955
                xor     edi, 0FFFFFFFFh
5956
                or      edi, eax
5957
                add     ebp, [esi+20h]
5958
                xor     edi, ecx
5959
                rol     ebx, 0Ah
5960
                lea     ebp, [ebp+edi+6D703EF3h]
5961
                mov     edi, eax
5962
                rol     ebp, 0Dh
5963
                add     ebp, edx
5964
                xor     edi, 0FFFFFFFFh
5965
                or      edi, ebp
5966
                add     edx, [esi+30h]
5967
                xor     edi, ebx
5968
                rol     eax, 0Ah
5969
                lea     edx, [edx+edi+6D703EF3h]
5970
                mov     edi, ebp
5971
                rol     edx, 5
5972
                add     edx, ecx
5973
                xor     edi, 0FFFFFFFFh
5974
                or      edi, edx
5975
                add     ecx, [esi+8]
5976
                xor     edi, eax
5977
                rol     ebp, 0Ah
5978
                lea     ecx, [ecx+edi+6D703EF3h]
5979
                mov     edi, edx
5980
                rol     ecx, 0Eh
5981
                add     ecx, ebx
5982
                xor     edi, 0FFFFFFFFh
5983
                or      edi, ecx
5984
                add     ebx, [esi+28h]
5985
                xor     edi, ebp
5986
                rol     edx, 0Ah
5987
                lea     ebx, [ebx+edi+6D703EF3h]
5988
                mov     edi, ecx
5989
                rol     ebx, 0Dh
5990
                add     ebx, eax
5991
                xor     edi, 0FFFFFFFFh
5992
                or      edi, ebx
5993
                add     eax, [esi]
5994
                xor     edi, edx
5995
                rol     ecx, 0Ah
5996
                lea     eax, [eax+edi+6D703EF3h]
5997
                mov     edi, ebx
5998
                rol     eax, 0Dh
5999
                add     eax, ebp
6000
                xor     edi, 0FFFFFFFFh
6001
                or      edi, eax
6002
                add     ebp, [esi+10h]
6003
                xor     edi, ecx
6004
                rol     ebx, 0Ah
6005
                lea     ebp, [ebp+edi+6D703EF3h]
6006
                mov     edi, eax
6007
                rol     ebp, 7
6008
                add     ebp, edx
6009
                xor     edi, 0FFFFFFFFh
6010
                or      edi, ebp
6011
                add     edx, [esi+34h]
6012
                xor     edi, ebx
6013
                rol     eax, 0Ah
6014
                lea     edx, [edx+edi+6D703EF3h]
6015
                rol     edx, 5
6016
                add     edx, ecx
6017
                mov     [esp+14h], eax
6018
                mov     [esp+18h], ebx
6019
                mov     eax, [esp]
6020
                mov     ebx, [esp+4]
6021
                mov     [esp+20h], edx
6022
                mov     [esp+24h], ebp
6023
                mov     edx, [esp+0Ch]
6024
                mov     ebp, [esp+8]
6025
                mov     [esp+1Ch], ebp
6026
                mov     ebp, [esp+10h]
6027
                mov     edi, ebp
6028
                xor     edi, edx
6029
                and     edi, eax
6030
                add     ecx, [esi+4]
6031
                xor     edi, ebp
6032
                rol     ebp, 0Ah
6033
                lea     ecx, [ecx+edi-70E44324h]
6034
                mov     edi, edx
6035
                rol     ecx, 0Bh
6036
                add     ecx, ebx
6037
                xor     edi, ecx
6038
                and     edi, ebp
6039
                add     ebx, [esi+24h]
6040
                xor     edi, edx
6041
                rol     edx, 0Ah
6042
                lea     ebx, [ebx+edi-70E44324h]
6043
                mov     edi, ecx
6044
                rol     ebx, 0Ch
6045
                add     ebx, eax
6046
                xor     edi, ebx
6047
                and     edi, edx
6048
                add     eax, [esi+2Ch]
6049
                xor     edi, ecx
6050
                rol     ecx, 0Ah
6051
                lea     eax, [eax+edi-70E44324h]
6052
                mov     edi, ebx
6053
                rol     eax, 0Eh
6054
                add     eax, ebp
6055
                xor     edi, eax
6056
                and     edi, ecx
6057
                add     ebp, [esi+28h]
6058
                xor     edi, ebx
6059
                rol     ebx, 0Ah
6060
                lea     ebp, [ebp+edi-70E44324h]
6061
                mov     edi, eax
6062
                rol     ebp, 0Fh
6063
                add     ebp, edx
6064
                xor     edi, ebp
6065
                and     edi, ebx
6066
                add     edx, [esi]
6067
                xor     edi, eax
6068
                rol     eax, 0Ah
6069
                lea     edx, [edx+edi-70E44324h]
6070
                mov     edi, ebp
6071
                rol     edx, 0Eh
6072
                add     edx, ecx
6073
                xor     edi, edx
6074
                and     edi, eax
6075
                add     ecx, [esi+20h]
6076
                xor     edi, ebp
6077
                rol     ebp, 0Ah
6078
                lea     ecx, [ecx+edi-70E44324h]
6079
                mov     edi, edx
6080
                rol     ecx, 0Fh
6081
                add     ecx, ebx
6082
                xor     edi, ecx
6083
                and     edi, ebp
6084
                add     ebx, [esi+30h]
6085
                xor     edi, edx
6086
                rol     edx, 0Ah
6087
                lea     ebx, [ebx+edi-70E44324h]
6088
                mov     edi, ecx
6089
                rol     ebx, 9
6090
                add     ebx, eax
6091
                xor     edi, ebx
6092
                and     edi, edx
6093
                add     eax, [esi+10h]
6094
                xor     edi, ecx
6095
                rol     ecx, 0Ah
6096
                lea     eax, [eax+edi-70E44324h]
6097
                mov     edi, ebx
6098
                rol     eax, 8
6099
                add     eax, ebp
6100
                xor     edi, eax
6101
                and     edi, ecx
6102
                add     ebp, [esi+34h]
6103
                xor     edi, ebx
6104
                rol     ebx, 0Ah
6105
                lea     ebp, [ebp+edi-70E44324h]
6106
                mov     edi, eax
6107
                rol     ebp, 9
6108
                add     ebp, edx
6109
                xor     edi, ebp
6110
                and     edi, ebx
6111
                add     edx, [esi+0Ch]
6112
                xor     edi, eax
6113
                rol     eax, 0Ah
6114
                lea     edx, [edx+edi-70E44324h]
6115
                mov     edi, ebp
6116
                rol     edx, 0Eh
6117
                add     edx, ecx
6118
                xor     edi, edx
6119
                and     edi, eax
6120
                add     ecx, [esi+1Ch]
6121
                xor     edi, ebp
6122
                rol     ebp, 0Ah
6123
                lea     ecx, [ecx+edi-70E44324h]
6124
                mov     edi, edx
6125
                rol     ecx, 5
6126
                add     ecx, ebx
6127
                xor     edi, ecx
6128
                and     edi, ebp
6129
                add     ebx, [esi+3Ch]
6130
                xor     edi, edx
6131
                rol     edx, 0Ah
6132
                lea     ebx, [ebx+edi-70E44324h]
6133
                mov     edi, ecx
6134
                rol     ebx, 6
6135
                add     ebx, eax
6136
                xor     edi, ebx
6137
                and     edi, edx
6138
                add     eax, [esi+38h]
6139
                xor     edi, ecx
6140
                rol     ecx, 0Ah
6141
                lea     eax, [eax+edi-70E44324h]
6142
                mov     edi, ebx
6143
                rol     eax, 8
6144
                add     eax, ebp
6145
                xor     edi, eax
6146
                and     edi, ecx
6147
                add     ebp, [esi+14h]
6148
                xor     edi, ebx
6149
                rol     ebx, 0Ah
6150
                lea     ebp, [ebp+edi-70E44324h]
6151
                mov     edi, eax
6152
                rol     ebp, 6
6153
                add     ebp, edx
6154
                xor     edi, ebp
6155
                and     edi, ebx
6156
                add     edx, [esi+18h]
6157
                xor     edi, eax
6158
                rol     eax, 0Ah
6159
                lea     edx, [edx+edi-70E44324h]
6160
                mov     edi, ebp
6161
                rol     edx, 5
6162
                add     edx, ecx
6163
                xor     edi, edx
6164
                and     edi, eax
6165
                add     ecx, [esi+8]
6166
                xor     edi, ebp
6167
                rol     ebp, 0Ah
6168
                lea     ecx, [ecx+edi-70E44324h]
6169
                rol     ecx, 0Ch
6170
                add     ecx, ebx
6171
                mov     [esp], eax
6172
                mov     [esp+4], ebx
6173
                mov     eax, [esp+14h]
6174
                mov     ebx, [esp+18h]
6175
                mov     [esp+8], ecx
6176
                mov     [esp+0Ch], edx
6177
                mov     ecx, [esp+1Ch]
6178
                mov     edx, [esp+20h]
6179
                mov     [esp+10h], ebp
6180
                mov     ebp, [esp+24h]
6181
                mov     edi, eax
6182
                xor     edi, ebp
6183
                add     ecx, [esi+20h]
6184
                and     edi, edx
6185
                xor     edi, eax
6186
                rol     ebp, 0Ah
6187
                lea     ecx, [ecx+edi+7A6D76E9h]
6188
                mov     edi, ebp
6189
                rol     ecx, 0Fh
6190
                add     ecx, ebx
6191
                xor     edi, edx
6192
                add     ebx, [esi+18h]
6193
                and     edi, ecx
6194
                xor     edi, ebp
6195
                rol     edx, 0Ah
6196
                lea     ebx, [ebx+edi+7A6D76E9h]
6197
                mov     edi, edx
6198
                rol     ebx, 5
6199
                add     ebx, eax
6200
                xor     edi, ecx
6201
                add     eax, [esi+10h]
6202
                and     edi, ebx
6203
                xor     edi, edx
6204
                rol     ecx, 0Ah
6205
                lea     eax, [eax+edi+7A6D76E9h]
6206
                mov     edi, ecx
6207
                rol     eax, 8
6208
                add     eax, ebp
6209
                xor     edi, ebx
6210
                add     ebp, [esi+4]
6211
                and     edi, eax
6212
                xor     edi, ecx
6213
                rol     ebx, 0Ah
6214
                lea     ebp, [ebp+edi+7A6D76E9h]
6215
                mov     edi, ebx
6216
                rol     ebp, 0Bh
6217
                add     ebp, edx
6218
                xor     edi, eax
6219
                add     edx, [esi+0Ch]
6220
                and     edi, ebp
6221
                xor     edi, ebx
6222
                rol     eax, 0Ah
6223
                lea     edx, [edx+edi+7A6D76E9h]
6224
                mov     edi, eax
6225
                rol     edx, 0Eh
6226
                add     edx, ecx
6227
                xor     edi, ebp
6228
                add     ecx, [esi+2Ch]
6229
                and     edi, edx
6230
                xor     edi, eax
6231
                rol     ebp, 0Ah
6232
                lea     ecx, [ecx+edi+7A6D76E9h]
6233
                mov     edi, ebp
6234
                rol     ecx, 0Eh
6235
                add     ecx, ebx
6236
                xor     edi, edx
6237
                add     ebx, [esi+3Ch]
6238
                and     edi, ecx
6239
                xor     edi, ebp
6240
                rol     edx, 0Ah
6241
                lea     ebx, [ebx+edi+7A6D76E9h]
6242
                mov     edi, edx
6243
                rol     ebx, 6
6244
                add     ebx, eax
6245
                xor     edi, ecx
6246
                add     eax, [esi]
6247
                and     edi, ebx
6248
                xor     edi, edx
6249
                rol     ecx, 0Ah
6250
                lea     eax, [eax+edi+7A6D76E9h]
6251
                mov     edi, ecx
6252
                rol     eax, 0Eh
6253
                add     eax, ebp
6254
                xor     edi, ebx
6255
                add     ebp, [esi+14h]
6256
                and     edi, eax
6257
                xor     edi, ecx
6258
                rol     ebx, 0Ah
6259
                lea     ebp, [ebp+edi+7A6D76E9h]
6260
                mov     edi, ebx
6261
                rol     ebp, 6
6262
                add     ebp, edx
6263
                xor     edi, eax
6264
                add     edx, [esi+30h]
6265
                and     edi, ebp
6266
                xor     edi, ebx
6267
                rol     eax, 0Ah
6268
                lea     edx, [edx+edi+7A6D76E9h]
6269
                mov     edi, eax
6270
                rol     edx, 9
6271
                add     edx, ecx
6272
                xor     edi, ebp
6273
                add     ecx, [esi+8]
6274
                and     edi, edx
6275
                xor     edi, eax
6276
                rol     ebp, 0Ah
6277
                lea     ecx, [ecx+edi+7A6D76E9h]
6278
                mov     edi, ebp
6279
                rol     ecx, 0Ch
6280
                add     ecx, ebx
6281
                xor     edi, edx
6282
                add     ebx, [esi+34h]
6283
                and     edi, ecx
6284
                xor     edi, ebp
6285
                rol     edx, 0Ah
6286
                lea     ebx, [ebx+edi+7A6D76E9h]
6287
                mov     edi, edx
6288
                rol     ebx, 9
6289
                add     ebx, eax
6290
                xor     edi, ecx
6291
                add     eax, [esi+24h]
6292
                and     edi, ebx
6293
                xor     edi, edx
6294
                rol     ecx, 0Ah
6295
                lea     eax, [eax+edi+7A6D76E9h]
6296
                mov     edi, ecx
6297
                rol     eax, 0Ch
6298
                add     eax, ebp
6299
                xor     edi, ebx
6300
                add     ebp, [esi+1Ch]
6301
                and     edi, eax
6302
                xor     edi, ecx
6303
                rol     ebx, 0Ah
6304
                lea     ebp, [ebp+edi+7A6D76E9h]
6305
                mov     edi, ebx
6306
                rol     ebp, 5
6307
                add     ebp, edx
6308
                xor     edi, eax
6309
                add     edx, [esi+28h]
6310
                and     edi, ebp
6311
                xor     edi, ebx
6312
                rol     eax, 0Ah
6313
                lea     edx, [edx+edi+7A6D76E9h]
6314
                mov     edi, eax
6315
                rol     edx, 0Fh
6316
                add     edx, ecx
6317
                xor     edi, ebp
6318
                add     ecx, [esi+38h]
6319
                and     edi, edx
6320
                xor     edi, eax
6321
                rol     ebp, 0Ah
6322
                lea     ecx, [ecx+edi+7A6D76E9h]
6323
                rol     ecx, 8
6324
                add     ecx, ebx
6325
                mov     [esp+14h], eax
6326
                mov     [esp+18h], ebx
6327
                mov     eax, [esp]
6328
                mov     ebx, [esp+4]
6329
                mov     [esp+1Ch], ecx
6330
                mov     [esp+24h], ebp
6331
                mov     ecx, [esp+8]
6332
                mov     ebp, [esp+0Ch]
6333
                mov     [esp+20h], ebp
6334
                mov     ebp, [esp+10h]
6335
                mov     edi, ebp
6336
                xor     edi, 0FFFFFFFFh
6337
                or      edi, edx
6338
                add     ebx, [esi+10h]
6339
                xor     edi, ecx
6340
                rol     edx, 0Ah
6341
                lea     ebx, [ebx+edi-56AC02B2h]
6342
                mov     edi, edx
6343
                rol     ebx, 9
6344
                add     ebx, eax
6345
                xor     edi, 0FFFFFFFFh
6346
                or      edi, ecx
6347
                add     eax, [esi]
6348
                xor     edi, ebx
6349
                rol     ecx, 0Ah
6350
                lea     eax, [eax+edi-56AC02B2h]
6351
                mov     edi, ecx
6352
                rol     eax, 0Fh
6353
                add     eax, ebp
6354
                xor     edi, 0FFFFFFFFh
6355
                or      edi, ebx
6356
                add     ebp, [esi+14h]
6357
                xor     edi, eax
6358
                rol     ebx, 0Ah
6359
                lea     ebp, [ebp+edi-56AC02B2h]
6360
                mov     edi, ebx
6361
                rol     ebp, 5
6362
                add     ebp, edx
6363
                xor     edi, 0FFFFFFFFh
6364
                or      edi, eax
6365
                add     edx, [esi+24h]
6366
                xor     edi, ebp
6367
                rol     eax, 0Ah
6368
                lea     edx, [edx+edi-56AC02B2h]
6369
                mov     edi, eax
6370
                rol     edx, 0Bh
6371
                add     edx, ecx
6372
                xor     edi, 0FFFFFFFFh
6373
                or      edi, ebp
6374
                add     ecx, [esi+1Ch]
6375
                xor     edi, edx
6376
                rol     ebp, 0Ah
6377
                lea     ecx, [ecx+edi-56AC02B2h]
6378
                mov     edi, ebp
6379
                rol     ecx, 6
6380
                add     ecx, ebx
6381
                xor     edi, 0FFFFFFFFh
6382
                or      edi, edx
6383
                add     ebx, [esi+30h]
6384
                xor     edi, ecx
6385
                rol     edx, 0Ah
6386
                lea     ebx, [ebx+edi-56AC02B2h]
6387
                mov     edi, edx
6388
                rol     ebx, 8
6389
                add     ebx, eax
6390
                xor     edi, 0FFFFFFFFh
6391
                or      edi, ecx
6392
                add     eax, [esi+8]
6393
                xor     edi, ebx
6394
                rol     ecx, 0Ah
6395
                lea     eax, [eax+edi-56AC02B2h]
6396
                mov     edi, ecx
6397
                rol     eax, 0Dh
6398
                add     eax, ebp
6399
                xor     edi, 0FFFFFFFFh
6400
                or      edi, ebx
6401
                add     ebp, [esi+28h]
6402
                xor     edi, eax
6403
                rol     ebx, 0Ah
6404
                lea     ebp, [ebp+edi-56AC02B2h]
6405
                mov     edi, ebx
6406
                rol     ebp, 0Ch
6407
                add     ebp, edx
6408
                xor     edi, 0FFFFFFFFh
6409
                or      edi, eax
6410
                add     edx, [esi+38h]
6411
                xor     edi, ebp
6412
                rol     eax, 0Ah
6413
                lea     edx, [edx+edi-56AC02B2h]
6414
                mov     edi, eax
6415
                rol     edx, 5
6416
                add     edx, ecx
6417
                xor     edi, 0FFFFFFFFh
6418
                or      edi, ebp
6419
                add     ecx, [esi+4]
6420
                xor     edi, edx
6421
                rol     ebp, 0Ah
6422
                lea     ecx, [ecx+edi-56AC02B2h]
6423
                mov     edi, ebp
6424
                rol     ecx, 0Ch
6425
                add     ecx, ebx
6426
                xor     edi, 0FFFFFFFFh
6427
                or      edi, edx
6428
                add     ebx, [esi+0Ch]
6429
                xor     edi, ecx
6430
                rol     edx, 0Ah
6431
                lea     ebx, [ebx+edi-56AC02B2h]
6432
                mov     edi, edx
6433
                rol     ebx, 0Dh
6434
                add     ebx, eax
6435
                xor     edi, 0FFFFFFFFh
6436
                or      edi, ecx
6437
                add     eax, [esi+20h]
6438
                xor     edi, ebx
6439
                rol     ecx, 0Ah
6440
                lea     eax, [eax+edi-56AC02B2h]
6441
                mov     edi, ecx
6442
                rol     eax, 0Eh
6443
                add     eax, ebp
6444
                xor     edi, 0FFFFFFFFh
6445
                or      edi, ebx
6446
                add     ebp, [esi+2Ch]
6447
                xor     edi, eax
6448
                rol     ebx, 0Ah
6449
                lea     ebp, [ebp+edi-56AC02B2h]
6450
                mov     edi, ebx
6451
                rol     ebp, 0Bh
6452
                add     ebp, edx
6453
                xor     edi, 0FFFFFFFFh
6454
                or      edi, eax
6455
                add     edx, [esi+18h]
6456
                xor     edi, ebp
6457
                rol     eax, 0Ah
6458
                lea     edx, [edx+edi-56AC02B2h]
6459
                mov     edi, eax
6460
                rol     edx, 8
6461
                add     edx, ecx
6462
                xor     edi, 0FFFFFFFFh
6463
                or      edi, ebp
6464
                add     ecx, [esi+3Ch]
6465
                xor     edi, edx
6466
                rol     ebp, 0Ah
6467
                lea     ecx, [ecx+edi-56AC02B2h]
6468
                mov     edi, ebp
6469
                rol     ecx, 5
6470
                add     ecx, ebx
6471
                xor     edi, 0FFFFFFFFh
6472
                or      edi, edx
6473
                add     ebx, [esi+34h]
6474
                xor     edi, ecx
6475
                rol     edx, 0Ah
6476
                lea     ebx, [ebx+edi-56AC02B2h]
6477
                rol     ebx, 6
6478
                add     ebx, eax
6479
                mov     [esp], eax
6480
                mov     [esp+4], ebx
6481
                mov     eax, [esp+14h]
6482
                mov     ebx, [esp+18h]
6483
                mov     [esp+8], ecx
6484
                mov     [esp+0Ch], edx
6485
                mov     ecx, [esp+1Ch]
6486
                mov     edx, [esp+20h]
6487
                mov     [esp+10h], ebp
6488
                mov     ebp, [esp+24h]
6489
                mov     edi, ebp
6490
                xor     edi, edx
6491
                xor     edi, ecx
6492
                add     ebx, [esi+30h]
6493
                rol     edx, 0Ah
6494
                add     ebx, edi
6495
                mov     edi, edx
6496
                rol     ebx, 8
6497
                add     ebx, eax
6498
                xor     edi, ecx
6499
                xor     edi, ebx
6500
                add     eax, [esi+3Ch]
6501
                rol     ecx, 0Ah
6502
                add     eax, edi
6503
                mov     edi, ecx
6504
                rol     eax, 5
6505
                add     eax, ebp
6506
                xor     edi, ebx
6507
                xor     edi, eax
6508
                add     ebp, [esi+28h]
6509
                rol     ebx, 0Ah
6510
                add     ebp, edi
6511
                mov     edi, ebx
6512
                rol     ebp, 0Ch
6513
                add     ebp, edx
6514
                xor     edi, eax
6515
                xor     edi, ebp
6516
                add     edx, [esi+10h]
6517
                rol     eax, 0Ah
6518
                add     edx, edi
6519
                mov     edi, eax
6520
                rol     edx, 9
6521
                add     edx, ecx
6522
                xor     edi, ebp
6523
                xor     edi, edx
6524
                add     ecx, [esi+4]
6525
                rol     ebp, 0Ah
6526
                add     ecx, edi
6527
                mov     edi, ebp
6528
                rol     ecx, 0Ch
6529
                add     ecx, ebx
6530
                xor     edi, edx
6531
                xor     edi, ecx
6532
                add     ebx, [esi+14h]
6533
                rol     edx, 0Ah
6534
                add     ebx, edi
6535
                mov     edi, edx
6536
                rol     ebx, 5
6537
                add     ebx, eax
6538
                xor     edi, ecx
6539
                xor     edi, ebx
6540
                add     eax, [esi+20h]
6541
                rol     ecx, 0Ah
6542
                add     eax, edi
6543
                mov     edi, ecx
6544
                rol     eax, 0Eh
6545
                add     eax, ebp
6546
                xor     edi, ebx
6547
                xor     edi, eax
6548
                add     ebp, [esi+1Ch]
6549
                rol     ebx, 0Ah
6550
                add     ebp, edi
6551
                mov     edi, ebx
6552
                rol     ebp, 6
6553
                add     ebp, edx
6554
                xor     edi, eax
6555
                xor     edi, ebp
6556
                add     edx, [esi+18h]
6557
                rol     eax, 0Ah
6558
                add     edx, edi
6559
                mov     edi, eax
6560
                rol     edx, 8
6561
                add     edx, ecx
6562
                xor     edi, ebp
6563
                xor     edi, edx
6564
                add     ecx, [esi+8]
6565
                rol     ebp, 0Ah
6566
                add     ecx, edi
6567
                mov     edi, ebp
6568
                rol     ecx, 0Dh
6569
                add     ecx, ebx
6570
                xor     edi, edx
6571
                xor     edi, ecx
6572
                add     ebx, [esi+34h]
6573
                rol     edx, 0Ah
6574
                add     ebx, edi
6575
                mov     edi, edx
6576
                rol     ebx, 6
6577
                add     ebx, eax
6578
                xor     edi, ecx
6579
                xor     edi, ebx
6580
                add     eax, [esi+38h]
6581
                rol     ecx, 0Ah
6582
                add     eax, edi
6583
                mov     edi, ecx
6584
                rol     eax, 5
6585
                add     eax, ebp
6586
                xor     edi, ebx
6587
                xor     edi, eax
6588
                add     ebp, [esi]
6589
                rol     ebx, 0Ah
6590
                add     ebp, edi
6591
                mov     edi, ebx
6592
                rol     ebp, 0Fh
6593
                add     ebp, edx
6594
                xor     edi, eax
6595
                xor     edi, ebp
6596
                add     edx, [esi+0Ch]
6597
                rol     eax, 0Ah
6598
                add     edx, edi
6599
                mov     edi, eax
6600
                rol     edx, 0Dh
6601
                add     edx, ecx
6602
                xor     edi, ebp
6603
                xor     edi, edx
6604
                add     ecx, [esi+24h]
6605
                rol     ebp, 0Ah
6606
                add     ecx, edi
6607
                mov     edi, ebp
6608
                rol     ecx, 0Bh
6609
                add     ecx, ebx
6610
                xor     edi, edx
6611
                xor     edi, ecx
6612
                add     ebx, [esi+2Ch]
6613
                rol     edx, 0Ah
6614
                add     ebx, edi
6615
                rol     ebx, 0Bh
6616
                add     ebx, eax
6617
                mov     edi, [esp+28h]
6618
                add     [edi+10h], ebp
6619
                add     [edi+14h], eax
6620
                add     [edi+18h], ebx
6621
                mov     eax, [esp]
6622
                mov     ebx, [esp+4]
6623
                add     [edi+1Ch], ecx
6624
                mov     ebp, [esp+10h]
6625
                add     [edi+20h], edx
6626
                mov     ecx, [esp+8]
6627
                mov     edx, [esp+0Ch]
6628
                add     [edi], eax
6629
                add     [edi+4], ebx
6630
                add     esp, 2Ch
6631
                add     [edi+8], ecx
6632
                add     [edi+0Ch], edx
6633
                add     [edi+24h], ebp
6634
                pop     ebp
6635
                pop     edi
6636
                pop     esi
6637
                pop     ebx
6638
end;
6639
{$ENDIF}
6640
6641
{$IFDEF THash_SHA_asm}
6642
procedure SHABuffer(W,S: PUInt32Array; Rotate: Boolean);
6643
var
6644
  I: Integer;
6645
  T: UInt32; //LongWord;
6646
begin
6647
  SwapUInt32Buffer(S[0], W[0], 16);
6648
  if Rotate then
6649
    for I := 16 to 79 do
6650
    begin
6651
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
6652
      W[I] := T shl 1 or T shr 31;
6653
    end
6654
  else
6655
    for I := 16 to 79 do
6656
    begin
6657
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
6658
      W[I] := T;
6659
    end
6660
end;
6661
6662
procedure THash_SHA0.DoTransform(Buffer: PUInt32Array);
6663
var
6664
  W: array[0..79] of LongWord;
6665
begin
6666
  SHABuffer(PUInt32Array(@W), Buffer, ClassType <> THash_SHA0);
6667
6668
  asm
6669
                push    ebx
6670
                mov     eax, Self
6671
                push    esi
6672
                push    edi
6673
                lea     edi, [eax].THash_SHA0.FDigest
6674
                lea     esi, W
6675
                push    ebp
6676
6677
                sub     esp, 8
6678
                mov     eax, [edi]
6679
                mov     ebx, [edi+4]
6680
                mov     ecx, [edi+8]
6681
                mov     [esp], edi
6682
                mov     edx, [edi+0Ch]
6683
                mov     ebp, [edi+10h]
6684
                mov     [esp+4], esi
6685
                mov     edi, ecx
6686
                xor     edi, edx
6687
                and     edi, ebx
6688
                add     ebp, [esi]
6689
                xor     edi, edx
6690
                ror     ebx, 2
6691
                lea     ebp, [ebp+edi+5A827999h]
6692
                mov     edi, eax
6693
                rol     edi, 5
6694
                add     ebp, edi
6695
                mov     edi, ecx
6696
                xor     edi, ebx
6697
                and     edi, eax
6698
                add     edx, [esi+4]
6699
                xor     edi, ecx
6700
                ror     eax, 2
6701
                lea     edx, [edx+edi+5A827999h]
6702
                mov     edi, ebp
6703
                rol     edi, 5
6704
                add     edx, edi
6705
                mov     edi, ebx
6706
                xor     edi, eax
6707
                and     edi, ebp
6708
                add     ecx, [esi+8]
6709
                xor     edi, ebx
6710
                ror     ebp, 2
6711
                lea     ecx, [ecx+edi+5A827999h]
6712
                mov     edi, edx
6713
                rol     edi, 5
6714
                add     ecx, edi
6715
                mov     edi, eax
6716
                xor     edi, ebp
6717
                and     edi, edx
6718
                add     ebx, [esi+0Ch]
6719
                xor     edi, eax
6720
                ror     edx, 2
6721
                lea     ebx, [ebx+edi+5A827999h]
6722
                mov     edi, ecx
6723
                rol     edi, 5
6724
                add     ebx, edi
6725
                mov     edi, ebp
6726
                xor     edi, edx
6727
                and     edi, ecx
6728
                add     eax, [esi+10h]
6729
                xor     edi, ebp
6730
                ror     ecx, 2
6731
                lea     eax, [eax+edi+5A827999h]
6732
                mov     edi, ebx
6733
                rol     edi, 5
6734
                add     eax, edi
6735
                mov     edi, edx
6736
                xor     edi, ecx
6737
                and     edi, ebx
6738
                add     ebp, [esi+14h]
6739
                xor     edi, edx
6740
                ror     ebx, 2
6741
                lea     ebp, [ebp+edi+5A827999h]
6742
                mov     edi, eax
6743
                rol     edi, 5
6744
                add     ebp, edi
6745
                mov     edi, ecx
6746
                xor     edi, ebx
6747
                and     edi, eax
6748
                add     edx, [esi+18h]
6749
                xor     edi, ecx
6750
                ror     eax, 2
6751
                lea     edx, [edx+edi+5A827999h]
6752
                mov     edi, ebp
6753
                rol     edi, 5
6754
                add     edx, edi
6755
                mov     edi, ebx
6756
                xor     edi, eax
6757
                and     edi, ebp
6758
                add     ecx, [esi+1Ch]
6759
                xor     edi, ebx
6760
                ror     ebp, 2
6761
                lea     ecx, [ecx+edi+5A827999h]
6762
                mov     edi, edx
6763
                rol     edi, 5
6764
                add     ecx, edi
6765
                mov     edi, eax
6766
                xor     edi, ebp
6767
                and     edi, edx
6768
                add     ebx, [esi+20h]
6769
                xor     edi, eax
6770
                ror     edx, 2
6771
                lea     ebx, [ebx+edi+5A827999h]
6772
                mov     edi, ecx
6773
                rol     edi, 5
6774
                add     ebx, edi
6775
                mov     edi, ebp
6776
                xor     edi, edx
6777
                and     edi, ecx
6778
                add     eax, [esi+24h]
6779
                xor     edi, ebp
6780
                ror     ecx, 2
6781
                lea     eax, [eax+edi+5A827999h]
6782
                mov     edi, ebx
6783
                rol     edi, 5
6784
                add     eax, edi
6785
                mov     edi, edx
6786
                xor     edi, ecx
6787
                and     edi, ebx
6788
                add     ebp, [esi+28h]
6789
                xor     edi, edx
6790
                ror     ebx, 2
6791
                lea     ebp, [ebp+edi+5A827999h]
6792
                mov     edi, eax
6793
                rol     edi, 5
6794
                add     ebp, edi
6795
                mov     edi, ecx
6796
                xor     edi, ebx
6797
                and     edi, eax
6798
                add     edx, [esi+2Ch]
6799
                xor     edi, ecx
6800
                ror     eax, 2
6801
                lea     edx, [edx+edi+5A827999h]
6802
                mov     edi, ebp
6803
                rol     edi, 5
6804
                add     edx, edi
6805
                mov     edi, ebx
6806
                xor     edi, eax
6807
                and     edi, ebp
6808
                add     ecx, [esi+30h]
6809
                xor     edi, ebx
6810
                ror     ebp, 2
6811
                lea     ecx, [ecx+edi+5A827999h]
6812
                mov     edi, edx
6813
                rol     edi, 5
6814
                add     ecx, edi
6815
                mov     edi, eax
6816
                xor     edi, ebp
6817
                and     edi, edx
6818
                add     ebx, [esi+34h]
6819
                xor     edi, eax
6820
                ror     edx, 2
6821
                lea     ebx, [ebx+edi+5A827999h]
6822
                mov     edi, ecx
6823
                rol     edi, 5
6824
                add     ebx, edi
6825
                mov     edi, ebp
6826
                xor     edi, edx
6827
                and     edi, ecx
6828
                add     eax, [esi+38h]
6829
                xor     edi, ebp
6830
                ror     ecx, 2
6831
                lea     eax, [eax+edi+5A827999h]
6832
                mov     edi, ebx
6833
                rol     edi, 5
6834
                add     eax, edi
6835
                mov     edi, edx
6836
                xor     edi, ecx
6837
                and     edi, ebx
6838
                add     ebp, [esi+3Ch]
6839
                xor     edi, edx
6840
                ror     ebx, 2
6841
                lea     ebp, [ebp+edi+5A827999h]
6842
                mov     edi, eax
6843
                rol     edi, 5
6844
                add     ebp, edi
6845
                mov     edi, ecx
6846
                xor     edi, ebx
6847
                and     edi, eax
6848
                add     edx, [esi+40h]
6849
                xor     edi, ecx
6850
                ror     eax, 2
6851
                lea     edx, [edx+edi+5A827999h]
6852
                mov     edi, ebp
6853
                rol     edi, 5
6854
                add     edx, edi
6855
                mov     edi, ebx
6856
                xor     edi, eax
6857
                and     edi, ebp
6858
                add     ecx, [esi+44h]
6859
                xor     edi, ebx
6860
                ror     ebp, 2
6861
                lea     ecx, [ecx+edi+5A827999h]
6862
                mov     edi, edx
6863
                rol     edi, 5
6864
                add     ecx, edi
6865
                mov     edi, eax
6866
                xor     edi, ebp
6867
                and     edi, edx
6868
                add     ebx, [esi+48h]
6869
                xor     edi, eax
6870
                ror     edx, 2
6871
                lea     ebx, [ebx+edi+5A827999h]
6872
                mov     edi, ecx
6873
                rol     edi, 5
6874
                add     ebx, edi
6875
                mov     edi, ebp
6876
                xor     edi, edx
6877
                and     edi, ecx
6878
                add     eax, [esi+4Ch]
6879
                xor     edi, ebp
6880
                ror     ecx, 2
6881
                lea     eax, [eax+edi+5A827999h]
6882
                mov     edi, ebx
6883
                rol     edi, 5
6884
                add     eax, edi
6885
                mov     edi, edx
6886
                xor     edi, ecx
6887
                xor     edi, ebx
6888
                add     ebp, edi
6889
                mov     edi, [esi+50h]
6890
                ror     ebx, 2
6891
                lea     ebp, [ebp+edi+6ED9EBA1h]
6892
                mov     edi, eax
6893
                rol     edi, 5
6894
                add     ebp, edi
6895
                mov     edi, ecx
6896
                xor     edi, ebx
6897
                xor     edi, eax
6898
                add     edx, edi
6899
                mov     edi, [esi+54h]
6900
                ror     eax, 2
6901
                lea     edx, [edx+edi+6ED9EBA1h]
6902
                mov     edi, ebp
6903
                rol     edi, 5
6904
                add     edx, edi
6905
                mov     edi, ebx
6906
                xor     edi, eax
6907
                xor     edi, ebp
6908
                add     ecx, edi
6909
                mov     edi, [esi+58h]
6910
                ror     ebp, 2
6911
                lea     ecx, [ecx+edi+6ED9EBA1h]
6912
                mov     edi, edx
6913
                rol     edi, 5
6914
                add     ecx, edi
6915
                mov     edi, eax
6916
                xor     edi, ebp
6917
                xor     edi, edx
6918
                add     ebx, edi
6919
                mov     edi, [esi+5Ch]
6920
                ror     edx, 2
6921
                lea     ebx, [ebx+edi+6ED9EBA1h]
6922
                mov     edi, ecx
6923
                rol     edi, 5
6924
                add     ebx, edi
6925
                mov     edi, ebp
6926
                xor     edi, edx
6927
                xor     edi, ecx
6928
                add     eax, edi
6929
                mov     edi, [esi+60h]
6930
                ror     ecx, 2
6931
                lea     eax, [eax+edi+6ED9EBA1h]
6932
                mov     edi, ebx
6933
                rol     edi, 5
6934
                add     eax, edi
6935
                mov     edi, edx
6936
                xor     edi, ecx
6937
                xor     edi, ebx
6938
                add     ebp, edi
6939
                mov     edi, [esi+64h]
6940
                ror     ebx, 2
6941
                lea     ebp, [ebp+edi+6ED9EBA1h]
6942
                mov     edi, eax
6943
                rol     edi, 5
6944
                add     ebp, edi
6945
                mov     edi, ecx
6946
                xor     edi, ebx
6947
                xor     edi, eax
6948
                add     edx, edi
6949
                mov     edi, [esi+68h]
6950
                ror     eax, 2
6951
                lea     edx, [edx+edi+6ED9EBA1h]
6952
                mov     edi, ebp
6953
                rol     edi, 5
6954
                add     edx, edi
6955
                mov     edi, ebx
6956
                xor     edi, eax
6957
                xor     edi, ebp
6958
                add     ecx, edi
6959
                mov     edi, [esi+6Ch]
6960
                ror     ebp, 2
6961
                lea     ecx, [ecx+edi+6ED9EBA1h]
6962
                mov     edi, edx
6963
                rol     edi, 5
6964
                add     ecx, edi
6965
                mov     edi, eax
6966
                xor     edi, ebp
6967
                xor     edi, edx
6968
                add     ebx, edi
6969
                mov     edi, [esi+70h]
6970
                ror     edx, 2
6971
                lea     ebx, [ebx+edi+6ED9EBA1h]
6972
                mov     edi, ecx
6973
                rol     edi, 5
6974
                add     ebx, edi
6975
                mov     edi, ebp
6976
                xor     edi, edx
6977
                xor     edi, ecx
6978
                add     eax, edi
6979
                mov     edi, [esi+74h]
6980
                ror     ecx, 2
6981
                lea     eax, [eax+edi+6ED9EBA1h]
6982
                mov     edi, ebx
6983
                rol     edi, 5
6984
                add     eax, edi
6985
                mov     edi, edx
6986
                xor     edi, ecx
6987
                xor     edi, ebx
6988
                add     ebp, edi
6989
                mov     edi, [esi+78h]
6990
                ror     ebx, 2
6991
                lea     ebp, [ebp+edi+6ED9EBA1h]
6992
                mov     edi, eax
6993
                rol     edi, 5
6994
                add     ebp, edi
6995
                mov     edi, ecx
6996
                xor     edi, ebx
6997
                xor     edi, eax
6998
                add     edx, edi
6999
                mov     edi, [esi+7Ch]
7000
                ror     eax, 2
7001
                lea     edx, [edx+edi+6ED9EBA1h]
7002
                mov     edi, ebp
7003
                rol     edi, 5
7004
                add     edx, edi
7005
                mov     edi, ebx
7006
                xor     edi, eax
7007
                xor     edi, ebp
7008
                add     ecx, edi
7009
                mov     edi, [esi+80h]
7010
                ror     ebp, 2
7011
                lea     ecx, [ecx+edi+6ED9EBA1h]
7012
                mov     edi, edx
7013
                rol     edi, 5
7014
                add     ecx, edi
7015
                mov     edi, eax
7016
                xor     edi, ebp
7017
                xor     edi, edx
7018
                add     ebx, edi
7019
                mov     edi, [esi+84h]
7020
                ror     edx, 2
7021
                lea     ebx, [ebx+edi+6ED9EBA1h]
7022
                mov     edi, ecx
7023
                rol     edi, 5
7024
                add     ebx, edi
7025
                mov     edi, ebp
7026
                xor     edi, edx
7027
                xor     edi, ecx
7028
                add     eax, edi
7029
                mov     edi, [esi+88h]
7030
                ror     ecx, 2
7031
                lea     eax, [eax+edi+6ED9EBA1h]
7032
                mov     edi, ebx
7033
                rol     edi, 5
7034
                add     eax, edi
7035
                mov     edi, edx
7036
                xor     edi, ecx
7037
                xor     edi, ebx
7038
                add     ebp, edi
7039
                mov     edi, [esi+8Ch]
7040
                ror     ebx, 2
7041
                lea     ebp, [ebp+edi+6ED9EBA1h]
7042
                mov     edi, eax
7043
                rol     edi, 5
7044
                add     ebp, edi
7045
                mov     edi, ecx
7046
                xor     edi, ebx
7047
                xor     edi, eax
7048
                add     edx, edi
7049
                mov     edi, [esi+90h]
7050
                ror     eax, 2
7051
                lea     edx, [edx+edi+6ED9EBA1h]
7052
                mov     edi, ebp
7053
                rol     edi, 5
7054
                add     edx, edi
7055
                mov     edi, ebx
7056
                xor     edi, eax
7057
                xor     edi, ebp
7058
                add     ecx, edi
7059
                mov     edi, [esi+94h]
7060
                ror     ebp, 2
7061
                lea     ecx, [ecx+edi+6ED9EBA1h]
7062
                mov     edi, edx
7063
                rol     edi, 5
7064
                add     ecx, edi
7065
                mov     edi, eax
7066
                xor     edi, ebp
7067
                xor     edi, edx
7068
                add     ebx, edi
7069
                mov     edi, [esi+98h]
7070
                ror     edx, 2
7071
                lea     ebx, [ebx+edi+6ED9EBA1h]
7072
                mov     edi, ecx
7073
                rol     edi, 5
7074
                add     ebx, edi
7075
                mov     edi, ebp
7076
                xor     edi, edx
7077
                xor     edi, ecx
7078
                add     eax, edi
7079
                mov     edi, [esi+9Ch]
7080
                ror     ecx, 2
7081
                lea     eax, [eax+edi+6ED9EBA1h]
7082
                mov     edi, ebx
7083
                rol     edi, 5
7084
                add     eax, edi
7085
                mov     edi, edx
7086
                xor     edi, ecx
7087
                mov     esi, ecx
7088
                mov     edi, ecx
7089
                or      esi, edx
7090
                and     edi, edx
7091
                and     esi, ebx
7092
                or      esi, edi
7093
                mov     edi, eax
7094
                add     ebp, esi
7095
                mov     esi, [esp+4]
7096
                rol     edi, 5
7097
                add     ebp, edi
7098
                mov     edi, [esi+0A0h]
7099
                ror     ebx, 2
7100
                lea     ebp, [ebp+edi-70E44324h]
7101
                mov     esi, ebx
7102
                mov     edi, ebx
7103
                or      esi, ecx
7104
                and     edi, ecx
7105
                and     esi, eax
7106
                or      esi, edi
7107
                mov     edi, ebp
7108
                add     edx, esi
7109
                mov     esi, [esp+4]
7110
                rol     edi, 5
7111
                add     edx, edi
7112
                mov     edi, [esi+0A4h]
7113
                ror     eax, 2
7114
                lea     edx, [edx+edi-70E44324h]
7115
                mov     esi, eax
7116
                mov     edi, eax
7117
                or      esi, ebx
7118
                and     edi, ebx
7119
                and     esi, ebp
7120
                or      esi, edi
7121
                mov     edi, edx
7122
                add     ecx, esi
7123
                mov     esi, [esp+4]
7124
                rol     edi, 5
7125
                add     ecx, edi
7126
                mov     edi, [esi+0A8h]
7127
                ror     ebp, 2
7128
                lea     ecx, [ecx+edi-70E44324h]
7129
                mov     esi, ebp
7130
                mov     edi, ebp
7131
                or      esi, eax
7132
                and     edi, eax
7133
                and     esi, edx
7134
                or      esi, edi
7135
                mov     edi, ecx
7136
                add     ebx, esi
7137
                mov     esi, [esp+4]
7138
                rol     edi, 5
7139
                add     ebx, edi
7140
                mov     edi, [esi+0ACh]
7141
                ror     edx, 2
7142
                lea     ebx, [ebx+edi-70E44324h]
7143
                mov     esi, edx
7144
                mov     edi, edx
7145
                or      esi, ebp
7146
                and     edi, ebp
7147
                and     esi, ecx
7148
                or      esi, edi
7149
                mov     edi, ebx
7150
                add     eax, esi
7151
                mov     esi, [esp+4]
7152
                rol     edi, 5
7153
                add     eax, edi
7154
                mov     edi, [esi+0B0h]
7155
                ror     ecx, 2
7156
                lea     eax, [eax+edi-70E44324h]
7157
                mov     esi, ecx
7158
                mov     edi, ecx
7159
                or      esi, edx
7160
                and     edi, edx
7161
                and     esi, ebx
7162
                or      esi, edi
7163
                mov     edi, eax
7164
                add     ebp, esi
7165
                mov     esi, [esp+4]
7166
                rol     edi, 5
7167
                add     ebp, edi
7168
                mov     edi, [esi+0B4h]
7169
                ror     ebx, 2
7170
                lea     ebp, [ebp+edi-70E44324h]
7171
                mov     esi, ebx
7172
                mov     edi, ebx
7173
                or      esi, ecx
7174
                and     edi, ecx
7175
                and     esi, eax
7176
                or      esi, edi
7177
                mov     edi, ebp
7178
                add     edx, esi
7179
                mov     esi, [esp+4]
7180
                rol     edi, 5
7181
                add     edx, edi
7182
                mov     edi, [esi+0B8h]
7183
                ror     eax, 2
7184
                lea     edx, [edx+edi-70E44324h]
7185
                mov     esi, eax
7186
                mov     edi, eax
7187
                or      esi, ebx
7188
                and     edi, ebx
7189
                and     esi, ebp
7190
                or      esi, edi
7191
                mov     edi, edx
7192
                add     ecx, esi
7193
                mov     esi, [esp+4]
7194
                rol     edi, 5
7195
                add     ecx, edi
7196
                mov     edi, [esi+0BCh]
7197
                ror     ebp, 2
7198
                lea     ecx, [ecx+edi-70E44324h]
7199
                mov     esi, ebp
7200
                mov     edi, ebp
7201
                or      esi, eax
7202
                and     edi, eax
7203
                and     esi, edx
7204
                or      esi, edi
7205
                mov     edi, ecx
7206
                add     ebx, esi
7207
                mov     esi, [esp+4]
7208
                rol     edi, 5
7209
                add     ebx, edi
7210
                mov     edi, [esi+0C0h]
7211
                ror     edx, 2
7212
                lea     ebx, [ebx+edi-70E44324h]
7213
                mov     esi, edx
7214
                mov     edi, edx
7215
                or      esi, ebp
7216
                and     edi, ebp
7217
                and     esi, ecx
7218
                or      esi, edi
7219
                mov     edi, ebx
7220
                add     eax, esi
7221
                mov     esi, [esp+4]
7222
                rol     edi, 5
7223
                add     eax, edi
7224
                mov     edi, [esi+0C4h]
7225
                ror     ecx, 2
7226
                lea     eax, [eax+edi-70E44324h]
7227
                mov     esi, ecx
7228
                mov     edi, ecx
7229
                or      esi, edx
7230
                and     edi, edx
7231
                and     esi, ebx
7232
                or      esi, edi
7233
                mov     edi, eax
7234
                add     ebp, esi
7235
                mov     esi, [esp+4]
7236
                rol     edi, 5
7237
                add     ebp, edi
7238
                mov     edi, [esi+0C8h]
7239
                ror     ebx, 2
7240
                lea     ebp, [ebp+edi-70E44324h]
7241
                mov     esi, ebx
7242
                mov     edi, ebx
7243
                or      esi, ecx
7244
                and     edi, ecx
7245
                and     esi, eax
7246
                or      esi, edi
7247
                mov     edi, ebp
7248
                add     edx, esi
7249
                mov     esi, [esp+4]
7250
                rol     edi, 5
7251
                add     edx, edi
7252
                mov     edi, [esi+0CCh]
7253
                ror     eax, 2
7254
                lea     edx, [edx+edi-70E44324h]
7255
                mov     esi, eax
7256
                mov     edi, eax
7257
                or      esi, ebx
7258
                and     edi, ebx
7259
                and     esi, ebp
7260
                or      esi, edi
7261
                mov     edi, edx
7262
                add     ecx, esi
7263
                mov     esi, [esp+4]
7264
                rol     edi, 5
7265
                add     ecx, edi
7266
                mov     edi, [esi+0D0h]
7267
                ror     ebp, 2
7268
                lea     ecx, [ecx+edi-70E44324h]
7269
                mov     esi, ebp
7270
                mov     edi, ebp
7271
                or      esi, eax
7272
                and     edi, eax
7273
                and     esi, edx
7274
                or      esi, edi
7275
                mov     edi, ecx
7276
                add     ebx, esi
7277
                mov     esi, [esp+4]
7278
                rol     edi, 5
7279
                add     ebx, edi
7280
                mov     edi, [esi+0D4h]
7281
                ror     edx, 2
7282
                lea     ebx, [ebx+edi-70E44324h]
7283
                mov     esi, edx
7284
                mov     edi, edx
7285
                or      esi, ebp
7286
                and     edi, ebp
7287
                and     esi, ecx
7288
                or      esi, edi
7289
                mov     edi, ebx
7290
                add     eax, esi
7291
                mov     esi, [esp+4]
7292
                rol     edi, 5
7293
                add     eax, edi
7294
                mov     edi, [esi+0D8h]
7295
                ror     ecx, 2
7296
                lea     eax, [eax+edi-70E44324h]
7297
                mov     esi, ecx
7298
                mov     edi, ecx
7299
                or      esi, edx
7300
                and     edi, edx
7301
                and     esi, ebx
7302
                or      esi, edi
7303
                mov     edi, eax
7304
                add     ebp, esi
7305
                mov     esi, [esp+4]
7306
                rol     edi, 5
7307
                add     ebp, edi
7308
                mov     edi, [esi+0DCh]
7309
                ror     ebx, 2
7310
                lea     ebp, [ebp+edi-70E44324h]
7311
                mov     esi, ebx
7312
                mov     edi, ebx
7313
                or      esi, ecx
7314
                and     edi, ecx
7315
                and     esi, eax
7316
                or      esi, edi
7317
                mov     edi, ebp
7318
                add     edx, esi
7319
                mov     esi, [esp+4]
7320
                rol     edi, 5
7321
                add     edx, edi
7322
                mov     edi, [esi+0E0h]
7323
                ror     eax, 2
7324
                lea     edx, [edx+edi-70E44324h]
7325
                mov     esi, eax
7326
                mov     edi, eax
7327
                or      esi, ebx
7328
                and     edi, ebx
7329
                and     esi, ebp
7330
                or      esi, edi
7331
                mov     edi, edx
7332
                add     ecx, esi
7333
                mov     esi, [esp+4]
7334
                rol     edi, 5
7335
                add     ecx, edi
7336
                mov     edi, [esi+0E4h]
7337
                ror     ebp, 2
7338
                lea     ecx, [ecx+edi-70E44324h]
7339
                mov     esi, ebp
7340
                mov     edi, ebp
7341
                or      esi, eax
7342
                and     edi, eax
7343
                and     esi, edx
7344
                or      esi, edi
7345
                mov     edi, ecx
7346
                add     ebx, esi
7347
                mov     esi, [esp+4]
7348
                rol     edi, 5
7349
                add     ebx, edi
7350
                mov     edi, [esi+0E8h]
7351
                ror     edx, 2
7352
                lea     ebx, [ebx+edi-70E44324h]
7353
                mov     esi, edx
7354
                mov     edi, edx
7355
                or      esi, ebp
7356
                and     edi, ebp
7357
                and     esi, ecx
7358
                or      esi, edi
7359
                mov     edi, ebx
7360
                add     eax, esi
7361
                mov     esi, [esp+4]
7362
                rol     edi, 5
7363
                add     eax, edi
7364
                mov     edi, [esi+0ECh]
7365
                ror     ecx, 2
7366
                lea     eax, [eax+edi-70E44324h]
7367
                mov     edi, ecx
7368
                xor     edi, edx
7369
                xor     edi, ebx
7370
                add     ebp, edi
7371
                mov     edi, [esi+0F0h]
7372
                ror     ebx, 2
7373
                lea     ebp, [ebp+edi-359D3E2Ah]
7374
                mov     edi, eax
7375
                rol     edi, 5
7376
                add     ebp, edi
7377
                mov     edi, ecx
7378
                xor     edi, ebx
7379
                xor     edi, eax
7380
                add     edx, edi
7381
                mov     edi, [esi+0F4h]
7382
                ror     eax, 2
7383
                lea     edx, [edx+edi-359D3E2Ah]
7384
                mov     edi, ebp
7385
                rol     edi, 5
7386
                add     edx, edi
7387
                mov     edi, ebx
7388
                xor     edi, eax
7389
                xor     edi, ebp
7390
                add     ecx, edi
7391
                mov     edi, [esi+0F8h]
7392
                ror     ebp, 2
7393
                lea     ecx, [ecx+edi-359D3E2Ah]
7394
                mov     edi, edx
7395
                rol     edi, 5
7396
                add     ecx, edi
7397
                mov     edi, eax
7398
                xor     edi, ebp
7399
                xor     edi, edx
7400
                add     ebx, edi
7401
                mov     edi, [esi+0FCh]
7402
                ror     edx, 2
7403
                lea     ebx, [ebx+edi-359D3E2Ah]
7404
                mov     edi, ecx
7405
                rol     edi, 5
7406
                add     ebx, edi
7407
                mov     edi, ebp
7408
                xor     edi, edx
7409
                xor     edi, ecx
7410
                add     eax, edi
7411
                mov     edi, [esi+100h]
7412
                ror     ecx, 2
7413
                lea     eax, [eax+edi-359D3E2Ah]
7414
                mov     edi, ebx
7415
                rol     edi, 5
7416
                add     eax, edi
7417
                mov     edi, edx
7418
                xor     edi, ecx
7419
                xor     edi, ebx
7420
                add     ebp, edi
7421
                mov     edi, [esi+104h]
7422
                ror     ebx, 2
7423
                lea     ebp, [ebp+edi-359D3E2Ah]
7424
                mov     edi, eax
7425
                rol     edi, 5
7426
                add     ebp, edi
7427
                mov     edi, ecx
7428
                xor     edi, ebx
7429
                xor     edi, eax
7430
                add     edx, edi
7431
                mov     edi, [esi+108h]
7432
                ror     eax, 2
7433
                lea     edx, [edx+edi-359D3E2Ah]
7434
                mov     edi, ebp
7435
                rol     edi, 5
7436
                add     edx, edi
7437
                mov     edi, ebx
7438
                xor     edi, eax
7439
                xor     edi, ebp
7440
                add     ecx, edi
7441
                mov     edi, [esi+10Ch]
7442
                ror     ebp, 2
7443
                lea     ecx, [ecx+edi-359D3E2Ah]
7444
                mov     edi, edx
7445
                rol     edi, 5
7446
                add     ecx, edi
7447
                mov     edi, eax
7448
                xor     edi, ebp
7449
                xor     edi, edx
7450
                add     ebx, edi
7451
                mov     edi, [esi+110h]
7452
                ror     edx, 2
7453
                lea     ebx, [ebx+edi-359D3E2Ah]
7454
                mov     edi, ecx
7455
                rol     edi, 5
7456
                add     ebx, edi
7457
                mov     edi, ebp
7458
                xor     edi, edx
7459
                xor     edi, ecx
7460
                add     eax, edi
7461
                mov     edi, [esi+114h]
7462
                ror     ecx, 2
7463
                lea     eax, [eax+edi-359D3E2Ah]
7464
                mov     edi, ebx
7465
                rol     edi, 5
7466
                add     eax, edi
7467
                mov     edi, edx
7468
                xor     edi, ecx
7469
                xor     edi, ebx
7470
                add     ebp, edi
7471
                mov     edi, [esi+118h]
7472
                ror     ebx, 2
7473
                lea     ebp, [ebp+edi-359D3E2Ah]
7474
                mov     edi, eax
7475
                rol     edi, 5
7476
                add     ebp, edi
7477
                mov     edi, ecx
7478
                xor     edi, ebx
7479
                xor     edi, eax
7480
                add     edx, edi
7481
                mov     edi, [esi+11Ch]
7482
                ror     eax, 2
7483
                lea     edx, [edx+edi-359D3E2Ah]
7484
                mov     edi, ebp
7485
                rol     edi, 5
7486
                add     edx, edi
7487
                mov     edi, ebx
7488
                xor     edi, eax
7489
                xor     edi, ebp
7490
                add     ecx, edi
7491
                mov     edi, [esi+120h]
7492
                ror     ebp, 2
7493
                lea     ecx, [ecx+edi-359D3E2Ah]
7494
                mov     edi, edx
7495
                rol     edi, 5
7496
                add     ecx, edi
7497
                mov     edi, eax
7498
                xor     edi, ebp
7499
                xor     edi, edx
7500
                add     ebx, edi
7501
                mov     edi, [esi+124h]
7502
                ror     edx, 2
7503
                lea     ebx, [ebx+edi-359D3E2Ah]
7504
                mov     edi, ecx
7505
                rol     edi, 5
7506
                add     ebx, edi
7507
                mov     edi, ebp
7508
                xor     edi, edx
7509
                xor     edi, ecx
7510
                add     eax, edi
7511
                mov     edi, [esi+128h]
7512
                ror     ecx, 2
7513
                lea     eax, [eax+edi-359D3E2Ah]
7514
                mov     edi, ebx
7515
                rol     edi, 5
7516
                add     eax, edi
7517
                mov     edi, edx
7518
                xor     edi, ecx
7519
                xor     edi, ebx
7520
                add     ebp, edi
7521
                mov     edi, [esi+12Ch]
7522
                ror     ebx, 2
7523
                lea     ebp, [ebp+edi-359D3E2Ah]
7524
                mov     edi, eax
7525
                rol     edi, 5
7526
                add     ebp, edi
7527
                mov     edi, ecx
7528
                xor     edi, ebx
7529
                xor     edi, eax
7530
                add     edx, edi
7531
                mov     edi, [esi+130h]
7532
                ror     eax, 2
7533
                lea     edx, [edx+edi-359D3E2Ah]
7534
                mov     edi, ebp
7535
                rol     edi, 5
7536
                add     edx, edi
7537
                mov     edi, ebx
7538
                xor     edi, eax
7539
                xor     edi, ebp
7540
                add     ecx, edi
7541
                mov     edi, [esi+134h]
7542
                ror     ebp, 2
7543
                lea     ecx, [ecx+edi-359D3E2Ah]
7544
                mov     edi, edx
7545
                rol     edi, 5
7546
                add     ecx, edi
7547
                mov     edi, eax
7548
                xor     edi, ebp
7549
                xor     edi, edx
7550
                add     ebx, edi
7551
                mov     edi, [esi+138h]
7552
                ror     edx, 2
7553
                lea     ebx, [ebx+edi-359D3E2Ah]
7554
                mov     edi, ecx
7555
                rol     edi, 5
7556
                add     ebx, edi
7557
                mov     edi, ebp
7558
                xor     edi, edx
7559
                xor     edi, ecx
7560
                add     eax, edi
7561
                mov     edi, [esi+13Ch]
7562
                ror     ecx, 2
7563
                lea     eax, [eax+edi-359D3E2Ah]
7564
                mov     edi, ebx
7565
                rol     edi, 5
7566
                add     eax, edi
7567
                mov     edi, [esp]
7568
                add     esp, 8
7569
                add     [edi], eax
7570
                mov     eax, [edi+4]
7571
                mov     esi, [edi+8]
7572
                add     ebx, eax
7573
                mov     eax, [edi+0Ch]
7574
                add     ecx, esi
7575
                mov     esi, [edi+10h]
7576
                mov     [edi+4], ebx
7577
                add     edx, eax
7578
                add     ebp, esi
7579
                mov     [edi+8], ecx
7580
                mov     [edi+0Ch], edx
7581
                mov     [edi+10h], ebp
7582
7583
                pop     ebp
7584
                pop     edi
7585
                pop     esi
7586
                pop     ebx
7587
  end;
7588
end;
7589
7590
{$IFDEF OLD_SHA_NAME}
7591
procedure THash_SHA.DoTransform(Buffer: PUInt32Array);
7592
var
7593
  W: array[0..79] of LongWord;
7594
begin
7595
  SHABuffer(PUInt32Array(@W), Buffer, ClassType <> THash_SHA);
7596
7597
  asm
7598
                push    ebx
7599
                mov     eax, Self
7600
                push    esi
7601
                push    edi
7602
                lea     edi, [eax].THash_SHA.FDigest
7603
                lea     esi, W
7604
                push    ebp
7605
7606
                sub     esp, 8
7607
                mov     eax, [edi]
7608
                mov     ebx, [edi+4]
7609
                mov     ecx, [edi+8]
7610
                mov     [esp], edi
7611
                mov     edx, [edi+0Ch]
7612
                mov     ebp, [edi+10h]
7613
                mov     [esp+4], esi
7614
                mov     edi, ecx
7615
                xor     edi, edx
7616
                and     edi, ebx
7617
                add     ebp, [esi]
7618
                xor     edi, edx
7619
                ror     ebx, 2
7620
                lea     ebp, [ebp+edi+5A827999h]
7621
                mov     edi, eax
7622
                rol     edi, 5
7623
                add     ebp, edi
7624
                mov     edi, ecx
7625
                xor     edi, ebx
7626
                and     edi, eax
7627
                add     edx, [esi+4]
7628
                xor     edi, ecx
7629
                ror     eax, 2
7630
                lea     edx, [edx+edi+5A827999h]
7631
                mov     edi, ebp
7632
                rol     edi, 5
7633
                add     edx, edi
7634
                mov     edi, ebx
7635
                xor     edi, eax
7636
                and     edi, ebp
7637
                add     ecx, [esi+8]
7638
                xor     edi, ebx
7639
                ror     ebp, 2
7640
                lea     ecx, [ecx+edi+5A827999h]
7641
                mov     edi, edx
7642
                rol     edi, 5
7643
                add     ecx, edi
7644
                mov     edi, eax
7645
                xor     edi, ebp
7646
                and     edi, edx
7647
                add     ebx, [esi+0Ch]
7648
                xor     edi, eax
7649
                ror     edx, 2
7650
                lea     ebx, [ebx+edi+5A827999h]
7651
                mov     edi, ecx
7652
                rol     edi, 5
7653
                add     ebx, edi
7654
                mov     edi, ebp
7655
                xor     edi, edx
7656
                and     edi, ecx
7657
                add     eax, [esi+10h]
7658
                xor     edi, ebp
7659
                ror     ecx, 2
7660
                lea     eax, [eax+edi+5A827999h]
7661
                mov     edi, ebx
7662
                rol     edi, 5
7663
                add     eax, edi
7664
                mov     edi, edx
7665
                xor     edi, ecx
7666
                and     edi, ebx
7667
                add     ebp, [esi+14h]
7668
                xor     edi, edx
7669
                ror     ebx, 2
7670
                lea     ebp, [ebp+edi+5A827999h]
7671
                mov     edi, eax
7672
                rol     edi, 5
7673
                add     ebp, edi
7674
                mov     edi, ecx
7675
                xor     edi, ebx
7676
                and     edi, eax
7677
                add     edx, [esi+18h]
7678
                xor     edi, ecx
7679
                ror     eax, 2
7680
                lea     edx, [edx+edi+5A827999h]
7681
                mov     edi, ebp
7682
                rol     edi, 5
7683
                add     edx, edi
7684
                mov     edi, ebx
7685
                xor     edi, eax
7686
                and     edi, ebp
7687
                add     ecx, [esi+1Ch]
7688
                xor     edi, ebx
7689
                ror     ebp, 2
7690
                lea     ecx, [ecx+edi+5A827999h]
7691
                mov     edi, edx
7692
                rol     edi, 5
7693
                add     ecx, edi
7694
                mov     edi, eax
7695
                xor     edi, ebp
7696
                and     edi, edx
7697
                add     ebx, [esi+20h]
7698
                xor     edi, eax
7699
                ror     edx, 2
7700
                lea     ebx, [ebx+edi+5A827999h]
7701
                mov     edi, ecx
7702
                rol     edi, 5
7703
                add     ebx, edi
7704
                mov     edi, ebp
7705
                xor     edi, edx
7706
                and     edi, ecx
7707
                add     eax, [esi+24h]
7708
                xor     edi, ebp
7709
                ror     ecx, 2
7710
                lea     eax, [eax+edi+5A827999h]
7711
                mov     edi, ebx
7712
                rol     edi, 5
7713
                add     eax, edi
7714
                mov     edi, edx
7715
                xor     edi, ecx
7716
                and     edi, ebx
7717
                add     ebp, [esi+28h]
7718
                xor     edi, edx
7719
                ror     ebx, 2
7720
                lea     ebp, [ebp+edi+5A827999h]
7721
                mov     edi, eax
7722
                rol     edi, 5
7723
                add     ebp, edi
7724
                mov     edi, ecx
7725
                xor     edi, ebx
7726
                and     edi, eax
7727
                add     edx, [esi+2Ch]
7728
                xor     edi, ecx
7729
                ror     eax, 2
7730
                lea     edx, [edx+edi+5A827999h]
7731
                mov     edi, ebp
7732
                rol     edi, 5
7733
                add     edx, edi
7734
                mov     edi, ebx
7735
                xor     edi, eax
7736
                and     edi, ebp
7737
                add     ecx, [esi+30h]
7738
                xor     edi, ebx
7739
                ror     ebp, 2
7740
                lea     ecx, [ecx+edi+5A827999h]
7741
                mov     edi, edx
7742
                rol     edi, 5
7743
                add     ecx, edi
7744
                mov     edi, eax
7745
                xor     edi, ebp
7746
                and     edi, edx
7747
                add     ebx, [esi+34h]
7748
                xor     edi, eax
7749
                ror     edx, 2
7750
                lea     ebx, [ebx+edi+5A827999h]
7751
                mov     edi, ecx
7752
                rol     edi, 5
7753
                add     ebx, edi
7754
                mov     edi, ebp
7755
                xor     edi, edx
7756
                and     edi, ecx
7757
                add     eax, [esi+38h]
7758
                xor     edi, ebp
7759
                ror     ecx, 2
7760
                lea     eax, [eax+edi+5A827999h]
7761
                mov     edi, ebx
7762
                rol     edi, 5
7763
                add     eax, edi
7764
                mov     edi, edx
7765
                xor     edi, ecx
7766
                and     edi, ebx
7767
                add     ebp, [esi+3Ch]
7768
                xor     edi, edx
7769
                ror     ebx, 2
7770
                lea     ebp, [ebp+edi+5A827999h]
7771
                mov     edi, eax
7772
                rol     edi, 5
7773
                add     ebp, edi
7774
                mov     edi, ecx
7775
                xor     edi, ebx
7776
                and     edi, eax
7777
                add     edx, [esi+40h]
7778
                xor     edi, ecx
7779
                ror     eax, 2
7780
                lea     edx, [edx+edi+5A827999h]
7781
                mov     edi, ebp
7782
                rol     edi, 5
7783
                add     edx, edi
7784
                mov     edi, ebx
7785
                xor     edi, eax
7786
                and     edi, ebp
7787
                add     ecx, [esi+44h]
7788
                xor     edi, ebx
7789
                ror     ebp, 2
7790
                lea     ecx, [ecx+edi+5A827999h]
7791
                mov     edi, edx
7792
                rol     edi, 5
7793
                add     ecx, edi
7794
                mov     edi, eax
7795
                xor     edi, ebp
7796
                and     edi, edx
7797
                add     ebx, [esi+48h]
7798
                xor     edi, eax
7799
                ror     edx, 2
7800
                lea     ebx, [ebx+edi+5A827999h]
7801
                mov     edi, ecx
7802
                rol     edi, 5
7803
                add     ebx, edi
7804
                mov     edi, ebp
7805
                xor     edi, edx
7806
                and     edi, ecx
7807
                add     eax, [esi+4Ch]
7808
                xor     edi, ebp
7809
                ror     ecx, 2
7810
                lea     eax, [eax+edi+5A827999h]
7811
                mov     edi, ebx
7812
                rol     edi, 5
7813
                add     eax, edi
7814
                mov     edi, edx
7815
                xor     edi, ecx
7816
                xor     edi, ebx
7817
                add     ebp, edi
7818
                mov     edi, [esi+50h]
7819
                ror     ebx, 2
7820
                lea     ebp, [ebp+edi+6ED9EBA1h]
7821
                mov     edi, eax
7822
                rol     edi, 5
7823
                add     ebp, edi
7824
                mov     edi, ecx
7825
                xor     edi, ebx
7826
                xor     edi, eax
7827
                add     edx, edi
7828
                mov     edi, [esi+54h]
7829
                ror     eax, 2
7830
                lea     edx, [edx+edi+6ED9EBA1h]
7831
                mov     edi, ebp
7832
                rol     edi, 5
7833
                add     edx, edi
7834
                mov     edi, ebx
7835
                xor     edi, eax
7836
                xor     edi, ebp
7837
                add     ecx, edi
7838
                mov     edi, [esi+58h]
7839
                ror     ebp, 2
7840
                lea     ecx, [ecx+edi+6ED9EBA1h]
7841
                mov     edi, edx
7842
                rol     edi, 5
7843
                add     ecx, edi
7844
                mov     edi, eax
7845
                xor     edi, ebp
7846
                xor     edi, edx
7847
                add     ebx, edi
7848
                mov     edi, [esi+5Ch]
7849
                ror     edx, 2
7850
                lea     ebx, [ebx+edi+6ED9EBA1h]
7851
                mov     edi, ecx
7852
                rol     edi, 5
7853
                add     ebx, edi
7854
                mov     edi, ebp
7855
                xor     edi, edx
7856
                xor     edi, ecx
7857
                add     eax, edi
7858
                mov     edi, [esi+60h]
7859
                ror     ecx, 2
7860
                lea     eax, [eax+edi+6ED9EBA1h]
7861
                mov     edi, ebx
7862
                rol     edi, 5
7863
                add     eax, edi
7864
                mov     edi, edx
7865
                xor     edi, ecx
7866
                xor     edi, ebx
7867
                add     ebp, edi
7868
                mov     edi, [esi+64h]
7869
                ror     ebx, 2
7870
                lea     ebp, [ebp+edi+6ED9EBA1h]
7871
                mov     edi, eax
7872
                rol     edi, 5
7873
                add     ebp, edi
7874
                mov     edi, ecx
7875
                xor     edi, ebx
7876
                xor     edi, eax
7877
                add     edx, edi
7878
                mov     edi, [esi+68h]
7879
                ror     eax, 2
7880
                lea     edx, [edx+edi+6ED9EBA1h]
7881
                mov     edi, ebp
7882
                rol     edi, 5
7883
                add     edx, edi
7884
                mov     edi, ebx
7885
                xor     edi, eax
7886
                xor     edi, ebp
7887
                add     ecx, edi
7888
                mov     edi, [esi+6Ch]
7889
                ror     ebp, 2
7890
                lea     ecx, [ecx+edi+6ED9EBA1h]
7891
                mov     edi, edx
7892
                rol     edi, 5
7893
                add     ecx, edi
7894
                mov     edi, eax
7895
                xor     edi, ebp
7896
                xor     edi, edx
7897
                add     ebx, edi
7898
                mov     edi, [esi+70h]
7899
                ror     edx, 2
7900
                lea     ebx, [ebx+edi+6ED9EBA1h]
7901
                mov     edi, ecx
7902
                rol     edi, 5
7903
                add     ebx, edi
7904
                mov     edi, ebp
7905
                xor     edi, edx
7906
                xor     edi, ecx
7907
                add     eax, edi
7908
                mov     edi, [esi+74h]
7909
                ror     ecx, 2
7910
                lea     eax, [eax+edi+6ED9EBA1h]
7911
                mov     edi, ebx
7912
                rol     edi, 5
7913
                add     eax, edi
7914
                mov     edi, edx
7915
                xor     edi, ecx
7916
                xor     edi, ebx
7917
                add     ebp, edi
7918
                mov     edi, [esi+78h]
7919
                ror     ebx, 2
7920
                lea     ebp, [ebp+edi+6ED9EBA1h]
7921
                mov     edi, eax
7922
                rol     edi, 5
7923
                add     ebp, edi
7924
                mov     edi, ecx
7925
                xor     edi, ebx
7926
                xor     edi, eax
7927
                add     edx, edi
7928
                mov     edi, [esi+7Ch]
7929
                ror     eax, 2
7930
                lea     edx, [edx+edi+6ED9EBA1h]
7931
                mov     edi, ebp
7932
                rol     edi, 5
7933
                add     edx, edi
7934
                mov     edi, ebx
7935
                xor     edi, eax
7936
                xor     edi, ebp
7937
                add     ecx, edi
7938
                mov     edi, [esi+80h]
7939
                ror     ebp, 2
7940
                lea     ecx, [ecx+edi+6ED9EBA1h]
7941
                mov     edi, edx
7942
                rol     edi, 5
7943
                add     ecx, edi
7944
                mov     edi, eax
7945
                xor     edi, ebp
7946
                xor     edi, edx
7947
                add     ebx, edi
7948
                mov     edi, [esi+84h]
7949
                ror     edx, 2
7950
                lea     ebx, [ebx+edi+6ED9EBA1h]
7951
                mov     edi, ecx
7952
                rol     edi, 5
7953
                add     ebx, edi
7954
                mov     edi, ebp
7955
                xor     edi, edx
7956
                xor     edi, ecx
7957
                add     eax, edi
7958
                mov     edi, [esi+88h]
7959
                ror     ecx, 2
7960
                lea     eax, [eax+edi+6ED9EBA1h]
7961
                mov     edi, ebx
7962
                rol     edi, 5
7963
                add     eax, edi
7964
                mov     edi, edx
7965
                xor     edi, ecx
7966
                xor     edi, ebx
7967
                add     ebp, edi
7968
                mov     edi, [esi+8Ch]
7969
                ror     ebx, 2
7970
                lea     ebp, [ebp+edi+6ED9EBA1h]
7971
                mov     edi, eax
7972
                rol     edi, 5
7973
                add     ebp, edi
7974
                mov     edi, ecx
7975
                xor     edi, ebx
7976
                xor     edi, eax
7977
                add     edx, edi
7978
                mov     edi, [esi+90h]
7979
                ror     eax, 2
7980
                lea     edx, [edx+edi+6ED9EBA1h]
7981
                mov     edi, ebp
7982
                rol     edi, 5
7983
                add     edx, edi
7984
                mov     edi, ebx
7985
                xor     edi, eax
7986
                xor     edi, ebp
7987
                add     ecx, edi
7988
                mov     edi, [esi+94h]
7989
                ror     ebp, 2
7990
                lea     ecx, [ecx+edi+6ED9EBA1h]
7991
                mov     edi, edx
7992
                rol     edi, 5
7993
                add     ecx, edi
7994
                mov     edi, eax
7995
                xor     edi, ebp
7996
                xor     edi, edx
7997
                add     ebx, edi
7998
                mov     edi, [esi+98h]
7999
                ror     edx, 2
8000
                lea     ebx, [ebx+edi+6ED9EBA1h]
8001
                mov     edi, ecx
8002
                rol     edi, 5
8003
                add     ebx, edi
8004
                mov     edi, ebp
8005
                xor     edi, edx
8006
                xor     edi, ecx
8007
                add     eax, edi
8008
                mov     edi, [esi+9Ch]
8009
                ror     ecx, 2
8010
                lea     eax, [eax+edi+6ED9EBA1h]
8011
                mov     edi, ebx
8012
                rol     edi, 5
8013
                add     eax, edi
8014
                mov     edi, edx
8015
                xor     edi, ecx
8016
                mov     esi, ecx
8017
                mov     edi, ecx
8018
                or      esi, edx
8019
                and     edi, edx
8020
                and     esi, ebx
8021
                or      esi, edi
8022
                mov     edi, eax
8023
                add     ebp, esi
8024
                mov     esi, [esp+4]
8025
                rol     edi, 5
8026
                add     ebp, edi
8027
                mov     edi, [esi+0A0h]
8028
                ror     ebx, 2
8029
                lea     ebp, [ebp+edi-70E44324h]
8030
                mov     esi, ebx
8031
                mov     edi, ebx
8032
                or      esi, ecx
8033
                and     edi, ecx
8034
                and     esi, eax
8035
                or      esi, edi
8036
                mov     edi, ebp
8037
                add     edx, esi
8038
                mov     esi, [esp+4]
8039
                rol     edi, 5
8040
                add     edx, edi
8041
                mov     edi, [esi+0A4h]
8042
                ror     eax, 2
8043
                lea     edx, [edx+edi-70E44324h]
8044
                mov     esi, eax
8045
                mov     edi, eax
8046
                or      esi, ebx
8047
                and     edi, ebx
8048
                and     esi, ebp
8049
                or      esi, edi
8050
                mov     edi, edx
8051
                add     ecx, esi
8052
                mov     esi, [esp+4]
8053
                rol     edi, 5
8054
                add     ecx, edi
8055
                mov     edi, [esi+0A8h]
8056
                ror     ebp, 2
8057
                lea     ecx, [ecx+edi-70E44324h]
8058
                mov     esi, ebp
8059
                mov     edi, ebp
8060
                or      esi, eax
8061
                and     edi, eax
8062
                and     esi, edx
8063
                or      esi, edi
8064
                mov     edi, ecx
8065
                add     ebx, esi
8066
                mov     esi, [esp+4]
8067
                rol     edi, 5
8068
                add     ebx, edi
8069
                mov     edi, [esi+0ACh]
8070
                ror     edx, 2
8071
                lea     ebx, [ebx+edi-70E44324h]
8072
                mov     esi, edx
8073
                mov     edi, edx
8074
                or      esi, ebp
8075
                and     edi, ebp
8076
                and     esi, ecx
8077
                or      esi, edi
8078
                mov     edi, ebx
8079
                add     eax, esi
8080
                mov     esi, [esp+4]
8081
                rol     edi, 5
8082
                add     eax, edi
8083
                mov     edi, [esi+0B0h]
8084
                ror     ecx, 2
8085
                lea     eax, [eax+edi-70E44324h]
8086
                mov     esi, ecx
8087
                mov     edi, ecx
8088
                or      esi, edx
8089
                and     edi, edx
8090
                and     esi, ebx
8091
                or      esi, edi
8092
                mov     edi, eax
8093
                add     ebp, esi
8094
                mov     esi, [esp+4]
8095
                rol     edi, 5
8096
                add     ebp, edi
8097
                mov     edi, [esi+0B4h]
8098
                ror     ebx, 2
8099
                lea     ebp, [ebp+edi-70E44324h]
8100
                mov     esi, ebx
8101
                mov     edi, ebx
8102
                or      esi, ecx
8103
                and     edi, ecx
8104
                and     esi, eax
8105
                or      esi, edi
8106
                mov     edi, ebp
8107
                add     edx, esi
8108
                mov     esi, [esp+4]
8109
                rol     edi, 5
8110
                add     edx, edi
8111
                mov     edi, [esi+0B8h]
8112
                ror     eax, 2
8113
                lea     edx, [edx+edi-70E44324h]
8114
                mov     esi, eax
8115
                mov     edi, eax
8116
                or      esi, ebx
8117
                and     edi, ebx
8118
                and     esi, ebp
8119
                or      esi, edi
8120
                mov     edi, edx
8121
                add     ecx, esi
8122
                mov     esi, [esp+4]
8123
                rol     edi, 5
8124
                add     ecx, edi
8125
                mov     edi, [esi+0BCh]
8126
                ror     ebp, 2
8127
                lea     ecx, [ecx+edi-70E44324h]
8128
                mov     esi, ebp
8129
                mov     edi, ebp
8130
                or      esi, eax
8131
                and     edi, eax
8132
                and     esi, edx
8133
                or      esi, edi
8134
                mov     edi, ecx
8135
                add     ebx, esi
8136
                mov     esi, [esp+4]
8137
                rol     edi, 5
8138
                add     ebx, edi
8139
                mov     edi, [esi+0C0h]
8140
                ror     edx, 2
8141
                lea     ebx, [ebx+edi-70E44324h]
8142
                mov     esi, edx
8143
                mov     edi, edx
8144
                or      esi, ebp
8145
                and     edi, ebp
8146
                and     esi, ecx
8147
                or      esi, edi
8148
                mov     edi, ebx
8149
                add     eax, esi
8150
                mov     esi, [esp+4]
8151
                rol     edi, 5
8152
                add     eax, edi
8153
                mov     edi, [esi+0C4h]
8154
                ror     ecx, 2
8155
                lea     eax, [eax+edi-70E44324h]
8156
                mov     esi, ecx
8157
                mov     edi, ecx
8158
                or      esi, edx
8159
                and     edi, edx
8160
                and     esi, ebx
8161
                or      esi, edi
8162
                mov     edi, eax
8163
                add     ebp, esi
8164
                mov     esi, [esp+4]
8165
                rol     edi, 5
8166
                add     ebp, edi
8167
                mov     edi, [esi+0C8h]
8168
                ror     ebx, 2
8169
                lea     ebp, [ebp+edi-70E44324h]
8170
                mov     esi, ebx
8171
                mov     edi, ebx
8172
                or      esi, ecx
8173
                and     edi, ecx
8174
                and     esi, eax
8175
                or      esi, edi
8176
                mov     edi, ebp
8177
                add     edx, esi
8178
                mov     esi, [esp+4]
8179
                rol     edi, 5
8180
                add     edx, edi
8181
                mov     edi, [esi+0CCh]
8182
                ror     eax, 2
8183
                lea     edx, [edx+edi-70E44324h]
8184
                mov     esi, eax
8185
                mov     edi, eax
8186
                or      esi, ebx
8187
                and     edi, ebx
8188
                and     esi, ebp
8189
                or      esi, edi
8190
                mov     edi, edx
8191
                add     ecx, esi
8192
                mov     esi, [esp+4]
8193
                rol     edi, 5
8194
                add     ecx, edi
8195
                mov     edi, [esi+0D0h]
8196
                ror     ebp, 2
8197
                lea     ecx, [ecx+edi-70E44324h]
8198
                mov     esi, ebp
8199
                mov     edi, ebp
8200
                or      esi, eax
8201
                and     edi, eax
8202
                and     esi, edx
8203
                or      esi, edi
8204
                mov     edi, ecx
8205
                add     ebx, esi
8206
                mov     esi, [esp+4]
8207
                rol     edi, 5
8208
                add     ebx, edi
8209
                mov     edi, [esi+0D4h]
8210
                ror     edx, 2
8211
                lea     ebx, [ebx+edi-70E44324h]
8212
                mov     esi, edx
8213
                mov     edi, edx
8214
                or      esi, ebp
8215
                and     edi, ebp
8216
                and     esi, ecx
8217
                or      esi, edi
8218
                mov     edi, ebx
8219
                add     eax, esi
8220
                mov     esi, [esp+4]
8221
                rol     edi, 5
8222
                add     eax, edi
8223
                mov     edi, [esi+0D8h]
8224
                ror     ecx, 2
8225
                lea     eax, [eax+edi-70E44324h]
8226
                mov     esi, ecx
8227
                mov     edi, ecx
8228
                or      esi, edx
8229
                and     edi, edx
8230
                and     esi, ebx
8231
                or      esi, edi
8232
                mov     edi, eax
8233
                add     ebp, esi
8234
                mov     esi, [esp+4]
8235
                rol     edi, 5
8236
                add     ebp, edi
8237
                mov     edi, [esi+0DCh]
8238
                ror     ebx, 2
8239
                lea     ebp, [ebp+edi-70E44324h]
8240
                mov     esi, ebx
8241
                mov     edi, ebx
8242
                or      esi, ecx
8243
                and     edi, ecx
8244
                and     esi, eax
8245
                or      esi, edi
8246
                mov     edi, ebp
8247
                add     edx, esi
8248
                mov     esi, [esp+4]
8249
                rol     edi, 5
8250
                add     edx, edi
8251
                mov     edi, [esi+0E0h]
8252
                ror     eax, 2
8253
                lea     edx, [edx+edi-70E44324h]
8254
                mov     esi, eax
8255
                mov     edi, eax
8256
                or      esi, ebx
8257
                and     edi, ebx
8258
                and     esi, ebp
8259
                or      esi, edi
8260
                mov     edi, edx
8261
                add     ecx, esi
8262
                mov     esi, [esp+4]
8263
                rol     edi, 5
8264
                add     ecx, edi
8265
                mov     edi, [esi+0E4h]
8266
                ror     ebp, 2
8267
                lea     ecx, [ecx+edi-70E44324h]
8268
                mov     esi, ebp
8269
                mov     edi, ebp
8270
                or      esi, eax
8271
                and     edi, eax
8272
                and     esi, edx
8273
                or      esi, edi
8274
                mov     edi, ecx
8275
                add     ebx, esi
8276
                mov     esi, [esp+4]
8277
                rol     edi, 5
8278
                add     ebx, edi
8279
                mov     edi, [esi+0E8h]
8280
                ror     edx, 2
8281
                lea     ebx, [ebx+edi-70E44324h]
8282
                mov     esi, edx
8283
                mov     edi, edx
8284
                or      esi, ebp
8285
                and     edi, ebp
8286
                and     esi, ecx
8287
                or      esi, edi
8288
                mov     edi, ebx
8289
                add     eax, esi
8290
                mov     esi, [esp+4]
8291
                rol     edi, 5
8292
                add     eax, edi
8293
                mov     edi, [esi+0ECh]
8294
                ror     ecx, 2
8295
                lea     eax, [eax+edi-70E44324h]
8296
                mov     edi, ecx
8297
                xor     edi, edx
8298
                xor     edi, ebx
8299
                add     ebp, edi
8300
                mov     edi, [esi+0F0h]
8301
                ror     ebx, 2
8302
                lea     ebp, [ebp+edi-359D3E2Ah]
8303
                mov     edi, eax
8304
                rol     edi, 5
8305
                add     ebp, edi
8306
                mov     edi, ecx
8307
                xor     edi, ebx
8308
                xor     edi, eax
8309
                add     edx, edi
8310
                mov     edi, [esi+0F4h]
8311
                ror     eax, 2
8312
                lea     edx, [edx+edi-359D3E2Ah]
8313
                mov     edi, ebp
8314
                rol     edi, 5
8315
                add     edx, edi
8316
                mov     edi, ebx
8317
                xor     edi, eax
8318
                xor     edi, ebp
8319
                add     ecx, edi
8320
                mov     edi, [esi+0F8h]
8321
                ror     ebp, 2
8322
                lea     ecx, [ecx+edi-359D3E2Ah]
8323
                mov     edi, edx
8324
                rol     edi, 5
8325
                add     ecx, edi
8326
                mov     edi, eax
8327
                xor     edi, ebp
8328
                xor     edi, edx
8329
                add     ebx, edi
8330
                mov     edi, [esi+0FCh]
8331
                ror     edx, 2
8332
                lea     ebx, [ebx+edi-359D3E2Ah]
8333
                mov     edi, ecx
8334
                rol     edi, 5
8335
                add     ebx, edi
8336
                mov     edi, ebp
8337
                xor     edi, edx
8338
                xor     edi, ecx
8339
                add     eax, edi
8340
                mov     edi, [esi+100h]
8341
                ror     ecx, 2
8342
                lea     eax, [eax+edi-359D3E2Ah]
8343
                mov     edi, ebx
8344
                rol     edi, 5
8345
                add     eax, edi
8346
                mov     edi, edx
8347
                xor     edi, ecx
8348
                xor     edi, ebx
8349
                add     ebp, edi
8350
                mov     edi, [esi+104h]
8351
                ror     ebx, 2
8352
                lea     ebp, [ebp+edi-359D3E2Ah]
8353
                mov     edi, eax
8354
                rol     edi, 5
8355
                add     ebp, edi
8356
                mov     edi, ecx
8357
                xor     edi, ebx
8358
                xor     edi, eax
8359
                add     edx, edi
8360
                mov     edi, [esi+108h]
8361
                ror     eax, 2
8362
                lea     edx, [edx+edi-359D3E2Ah]
8363
                mov     edi, ebp
8364
                rol     edi, 5
8365
                add     edx, edi
8366
                mov     edi, ebx
8367
                xor     edi, eax
8368
                xor     edi, ebp
8369
                add     ecx, edi
8370
                mov     edi, [esi+10Ch]
8371
                ror     ebp, 2
8372
                lea     ecx, [ecx+edi-359D3E2Ah]
8373
                mov     edi, edx
8374
                rol     edi, 5
8375
                add     ecx, edi
8376
                mov     edi, eax
8377
                xor     edi, ebp
8378
                xor     edi, edx
8379
                add     ebx, edi
8380
                mov     edi, [esi+110h]
8381
                ror     edx, 2
8382
                lea     ebx, [ebx+edi-359D3E2Ah]
8383
                mov     edi, ecx
8384
                rol     edi, 5
8385
                add     ebx, edi
8386
                mov     edi, ebp
8387
                xor     edi, edx
8388
                xor     edi, ecx
8389
                add     eax, edi
8390
                mov     edi, [esi+114h]
8391
                ror     ecx, 2
8392
                lea     eax, [eax+edi-359D3E2Ah]
8393
                mov     edi, ebx
8394
                rol     edi, 5
8395
                add     eax, edi
8396
                mov     edi, edx
8397
                xor     edi, ecx
8398
                xor     edi, ebx
8399
                add     ebp, edi
8400
                mov     edi, [esi+118h]
8401
                ror     ebx, 2
8402
                lea     ebp, [ebp+edi-359D3E2Ah]
8403
                mov     edi, eax
8404
                rol     edi, 5
8405
                add     ebp, edi
8406
                mov     edi, ecx
8407
                xor     edi, ebx
8408
                xor     edi, eax
8409
                add     edx, edi
8410
                mov     edi, [esi+11Ch]
8411
                ror     eax, 2
8412
                lea     edx, [edx+edi-359D3E2Ah]
8413
                mov     edi, ebp
8414
                rol     edi, 5
8415
                add     edx, edi
8416
                mov     edi, ebx
8417
                xor     edi, eax
8418
                xor     edi, ebp
8419
                add     ecx, edi
8420
                mov     edi, [esi+120h]
8421
                ror     ebp, 2
8422
                lea     ecx, [ecx+edi-359D3E2Ah]
8423
                mov     edi, edx
8424
                rol     edi, 5
8425
                add     ecx, edi
8426
                mov     edi, eax
8427
                xor     edi, ebp
8428
                xor     edi, edx
8429
                add     ebx, edi
8430
                mov     edi, [esi+124h]
8431
                ror     edx, 2
8432
                lea     ebx, [ebx+edi-359D3E2Ah]
8433
                mov     edi, ecx
8434
                rol     edi, 5
8435
                add     ebx, edi
8436
                mov     edi, ebp
8437
                xor     edi, edx
8438
                xor     edi, ecx
8439
                add     eax, edi
8440
                mov     edi, [esi+128h]
8441
                ror     ecx, 2
8442
                lea     eax, [eax+edi-359D3E2Ah]
8443
                mov     edi, ebx
8444
                rol     edi, 5
8445
                add     eax, edi
8446
                mov     edi, edx
8447
                xor     edi, ecx
8448
                xor     edi, ebx
8449
                add     ebp, edi
8450
                mov     edi, [esi+12Ch]
8451
                ror     ebx, 2
8452
                lea     ebp, [ebp+edi-359D3E2Ah]
8453
                mov     edi, eax
8454
                rol     edi, 5
8455
                add     ebp, edi
8456
                mov     edi, ecx
8457
                xor     edi, ebx
8458
                xor     edi, eax
8459
                add     edx, edi
8460
                mov     edi, [esi+130h]
8461
                ror     eax, 2
8462
                lea     edx, [edx+edi-359D3E2Ah]
8463
                mov     edi, ebp
8464
                rol     edi, 5
8465
                add     edx, edi
8466
                mov     edi, ebx
8467
                xor     edi, eax
8468
                xor     edi, ebp
8469
                add     ecx, edi
8470
                mov     edi, [esi+134h]
8471
                ror     ebp, 2
8472
                lea     ecx, [ecx+edi-359D3E2Ah]
8473
                mov     edi, edx
8474
                rol     edi, 5
8475
                add     ecx, edi
8476
                mov     edi, eax
8477
                xor     edi, ebp
8478
                xor     edi, edx
8479
                add     ebx, edi
8480
                mov     edi, [esi+138h]
8481
                ror     edx, 2
8482
                lea     ebx, [ebx+edi-359D3E2Ah]
8483
                mov     edi, ecx
8484
                rol     edi, 5
8485
                add     ebx, edi
8486
                mov     edi, ebp
8487
                xor     edi, edx
8488
                xor     edi, ecx
8489
                add     eax, edi
8490
                mov     edi, [esi+13Ch]
8491
                ror     ecx, 2
8492
                lea     eax, [eax+edi-359D3E2Ah]
8493
                mov     edi, ebx
8494
                rol     edi, 5
8495
                add     eax, edi
8496
                mov     edi, [esp]
8497
                add     esp, 8
8498
                add     [edi], eax
8499
                mov     eax, [edi+4]
8500
                mov     esi, [edi+8]
8501
                add     ebx, eax
8502
                mov     eax, [edi+0Ch]
8503
                add     ecx, esi
8504
                mov     esi, [edi+10h]
8505
                mov     [edi+4], ebx
8506
                add     edx, eax
8507
                add     ebp, esi
8508
                mov     [edi+8], ecx
8509
                mov     [edi+0Ch], edx
8510
                mov     [edi+10h], ebp
8511
8512
                pop     ebp
8513
                pop     edi
8514
                pop     esi
8515
                pop     ebx
8516
  end;
8517
end;
8518
{$ENDIF} // DEFINE OLD_SHA_NAME
8519
{$ENDIF}
8520
8521
{$IFDEF THash_SHA256_asm}
8522
procedure SHA256Buffer(S, D: Pointer);
8523
asm
8524
                push ebx
8525
                push edi
8526
                mov  edi, eax
8527
                push esi
8528
                mov  esi, edx
8529
8530
                mov     eax, [esi]
8531
                mov     ebx, [esi+4]
8532
                bswap   eax
8533
                mov     ecx, [esi+8]
8534
                mov     edx, [esi+0Ch]
8535
                bswap   ebx
8536
                bswap   ecx
8537
                bswap   edx
8538
                mov     [edi], eax
8539
                mov     [edi+4], ebx
8540
                mov     [edi+8], ecx
8541
                mov     [edi+0Ch], edx
8542
                mov     eax, [esi+10h]
8543
                mov     ebx, [esi+14h]
8544
                bswap   eax
8545
                mov     ecx, [esi+18h]
8546
                mov     edx, [esi+1Ch]
8547
                bswap   ebx
8548
                bswap   ecx
8549
                bswap   edx
8550
                mov     [edi+10h], eax
8551
                mov     [edi+14h], ebx
8552
                mov     [edi+18h], ecx
8553
                mov     [edi+1Ch], edx
8554
                mov     eax, [esi+20h]
8555
                mov     ebx, [esi+24h]
8556
                bswap   eax
8557
                mov     ecx, [esi+28h]
8558
                mov     edx, [esi+2Ch]
8559
                bswap   ebx
8560
                bswap   ecx
8561
                bswap   edx
8562
                mov     [edi+20h], eax
8563
                mov     [edi+24h], ebx
8564
                mov     [edi+28h], ecx
8565
                mov     [edi+2Ch], edx
8566
                mov     eax, [esi+30h]
8567
                mov     ebx, [esi+34h]
8568
                bswap   eax
8569
                mov     ecx, [esi+38h]
8570
                mov     edx, [esi+3Ch]
8571
                bswap   ebx
8572
                bswap   ecx
8573
                bswap   edx
8574
                mov     [edi+30h], eax
8575
                mov     [edi+34h], ebx
8576
                mov     [edi+38h], ecx
8577
                mov     [edi+3Ch], edx
8578
8579
                pop  esi
8580
                pop  edi
8581
                pop  ebx
8582
end;
8583
8584
procedure THash_SHA256.DoTransform(Buffer: PUInt32Array);
8585
var
8586
  W: array[0..63] of LongWord;
8587
begin
8588
  // swap first 16 uint32
8589
  SHA256Buffer(@W, Buffer);
8590
  asm
8591
                push    ebx
8592
                push    esi
8593
                push    edi
8594
                push    ebp
8595
8596
                mov     eax, Self
8597
                lea     edi, [eax].THash_SHA256.FDigest
8598
                lea     esi, W
8599
8600
                mov     eax, esp
8601
                add     esp, 0FFFFFFD4h
8602
                and     esp, 0FFFFFFC0h
8603
                mov     [esp+20h], esi
8604
                mov     [esp+24h], edi
8605
                mov     [esp+28h], eax
8606
                mov     edi, [esi]
8607
                mov     eax, [esi+4]
8608
                mov     edx, [esi+24h]
8609
                mov     ebx, [esi+38h]
8610
                mov     ecx, eax
8611
                ror     ecx, 7
8612
                shr     eax, 3
8613
                mov     ebp, ebx
8614
                shr     ebx, 0Ah
8615
                xor     eax, ecx
8616
                ror     ecx, 0Bh
8617
                rol     ebp, 0Fh
8618
                xor     eax, ecx
8619
                xor     ebx, ebp
8620
                ror     ebp, 2
8621
                xor     ebx, ebp
8622
                add     edx, edi
8623
                add     eax, ebx
8624
                mov     edi, [esi+4]
8625
                add     edx, eax
8626
                mov     eax, [esi+8]
8627
                mov     [esi+40h], edx
8628
                mov     edx, [esi+28h]
8629
                mov     ebx, [esi+3Ch]
8630
                mov     ecx, eax
8631
                ror     ecx, 7
8632
                shr     eax, 3
8633
                mov     ebp, ebx
8634
                shr     ebx, 0Ah
8635
                xor     eax, ecx
8636
                ror     ecx, 0Bh
8637
                rol     ebp, 0Fh
8638
                xor     eax, ecx
8639
                xor     ebx, ebp
8640
                ror     ebp, 2
8641
                xor     ebx, ebp
8642
                add     edx, edi
8643
                add     eax, ebx
8644
                mov     edi, [esi+8]
8645
                add     edx, eax
8646
                mov     eax, [esi+0Ch]
8647
                mov     [esi+44h], edx
8648
                mov     edx, [esi+2Ch]
8649
                mov     ebx, [esi+40h]
8650
                mov     ecx, eax
8651
                ror     ecx, 7
8652
                shr     eax, 3
8653
                mov     ebp, ebx
8654
                shr     ebx, 0Ah
8655
                xor     eax, ecx
8656
                ror     ecx, 0Bh
8657
                rol     ebp, 0Fh
8658
                xor     eax, ecx
8659
                xor     ebx, ebp
8660
                ror     ebp, 2
8661
                xor     ebx, ebp
8662
                add     edx, edi
8663
                add     eax, ebx
8664
                mov     edi, [esi+0Ch]
8665
                add     edx, eax
8666
                mov     eax, [esi+10h]
8667
                mov     [esi+48h], edx
8668
                mov     edx, [esi+30h]
8669
                mov     ebx, [esi+44h]
8670
                mov     ecx, eax
8671
                ror     ecx, 7
8672
                shr     eax, 3
8673
                mov     ebp, ebx
8674
                shr     ebx, 0Ah
8675
                xor     eax, ecx
8676
                ror     ecx, 0Bh
8677
                rol     ebp, 0Fh
8678
                xor     eax, ecx
8679
                xor     ebx, ebp
8680
                ror     ebp, 2
8681
                xor     ebx, ebp
8682
                add     edx, edi
8683
                add     eax, ebx
8684
                mov     edi, [esi+10h]
8685
                add     edx, eax
8686
                mov     eax, [esi+14h]
8687
                mov     [esi+4Ch], edx
8688
                mov     edx, [esi+34h]
8689
                mov     ebx, [esi+48h]
8690
                mov     ecx, eax
8691
                ror     ecx, 7
8692
                shr     eax, 3
8693
                mov     ebp, ebx
8694
                shr     ebx, 0Ah
8695
                xor     eax, ecx
8696
                ror     ecx, 0Bh
8697
                rol     ebp, 0Fh
8698
                xor     eax, ecx
8699
                xor     ebx, ebp
8700
                ror     ebp, 2
8701
                xor     ebx, ebp
8702
                add     edx, edi
8703
                add     eax, ebx
8704
                mov     edi, [esi+14h]
8705
                add     edx, eax
8706
                mov     eax, [esi+18h]
8707
                mov     [esi+50h], edx
8708
                mov     edx, [esi+38h]
8709
                mov     ebx, [esi+4Ch]
8710
                mov     ecx, eax
8711
                ror     ecx, 7
8712
                shr     eax, 3
8713
                mov     ebp, ebx
8714
                shr     ebx, 0Ah
8715
                xor     eax, ecx
8716
                ror     ecx, 0Bh
8717
                rol     ebp, 0Fh
8718
                xor     eax, ecx
8719
                xor     ebx, ebp
8720
                ror     ebp, 2
8721
                xor     ebx, ebp
8722
                add     edx, edi
8723
                add     eax, ebx
8724
                mov     edi, [esi+18h]
8725
                add     edx, eax
8726
                mov     eax, [esi+1Ch]
8727
                mov     [esi+54h], edx
8728
                mov     edx, [esi+3Ch]
8729
                mov     ebx, [esi+50h]
8730
                mov     ecx, eax
8731
                ror     ecx, 7
8732
                shr     eax, 3
8733
                mov     ebp, ebx
8734
                shr     ebx, 0Ah
8735
                xor     eax, ecx
8736
                ror     ecx, 0Bh
8737
                rol     ebp, 0Fh
8738
                xor     eax, ecx
8739
                xor     ebx, ebp
8740
                ror     ebp, 2
8741
                xor     ebx, ebp
8742
                add     edx, edi
8743
                add     eax, ebx
8744
                mov     edi, [esi+1Ch]
8745
                add     edx, eax
8746
                mov     eax, [esi+20h]
8747
                mov     [esi+58h], edx
8748
                mov     edx, [esi+40h]
8749
                mov     ebx, [esi+54h]
8750
                mov     ecx, eax
8751
                ror     ecx, 7
8752
                shr     eax, 3
8753
                mov     ebp, ebx
8754
                shr     ebx, 0Ah
8755
                xor     eax, ecx
8756
                ror     ecx, 0Bh
8757
                rol     ebp, 0Fh
8758
                xor     eax, ecx
8759
                xor     ebx, ebp
8760
                ror     ebp, 2
8761
                xor     ebx, ebp
8762
                add     edx, edi
8763
                add     eax, ebx
8764
                mov     edi, [esi+20h]
8765
                add     edx, eax
8766
                mov     eax, [esi+24h]
8767
                mov     [esi+5Ch], edx
8768
                mov     edx, [esi+44h]
8769
                mov     ebx, [esi+58h]
8770
                mov     ecx, eax
8771
                ror     ecx, 7
8772
                shr     eax, 3
8773
                mov     ebp, ebx
8774
                shr     ebx, 0Ah
8775
                xor     eax, ecx
8776
                ror     ecx, 0Bh
8777
                rol     ebp, 0Fh
8778
                xor     eax, ecx
8779
                xor     ebx, ebp
8780
                ror     ebp, 2
8781
                xor     ebx, ebp
8782
                add     edx, edi
8783
                add     eax, ebx
8784
                mov     edi, [esi+24h]
8785
                add     edx, eax
8786
                mov     eax, [esi+28h]
8787
                mov     [esi+60h], edx
8788
                mov     edx, [esi+48h]
8789
                mov     ebx, [esi+5Ch]
8790
                mov     ecx, eax
8791
                ror     ecx, 7
8792
                shr     eax, 3
8793
                mov     ebp, ebx
8794
                shr     ebx, 0Ah
8795
                xor     eax, ecx
8796
                ror     ecx, 0Bh
8797
                rol     ebp, 0Fh
8798
                xor     eax, ecx
8799
                xor     ebx, ebp
8800
                ror     ebp, 2
8801
                xor     ebx, ebp
8802
                add     edx, edi
8803
                add     eax, ebx
8804
                mov     edi, [esi+28h]
8805
                add     edx, eax
8806
                mov     eax, [esi+2Ch]
8807
                mov     [esi+64h], edx
8808
                mov     edx, [esi+4Ch]
8809
                mov     ebx, [esi+60h]
8810
                mov     ecx, eax
8811
                ror     ecx, 7
8812
                shr     eax, 3
8813
                mov     ebp, ebx
8814
                shr     ebx, 0Ah
8815
                xor     eax, ecx
8816
                ror     ecx, 0Bh
8817
                rol     ebp, 0Fh
8818
                xor     eax, ecx
8819
                xor     ebx, ebp
8820
                ror     ebp, 2
8821
                xor     ebx, ebp
8822
                add     edx, edi
8823
                add     eax, ebx
8824
                mov     edi, [esi+2Ch]
8825
                add     edx, eax
8826
                mov     eax, [esi+30h]
8827
                mov     [esi+68h], edx
8828
                mov     edx, [esi+50h]
8829
                mov     ebx, [esi+64h]
8830
                mov     ecx, eax
8831
                ror     ecx, 7
8832
                shr     eax, 3
8833
                mov     ebp, ebx
8834
                shr     ebx, 0Ah
8835
                xor     eax, ecx
8836
                ror     ecx, 0Bh
8837
                rol     ebp, 0Fh
8838
                xor     eax, ecx
8839
                xor     ebx, ebp
8840
                ror     ebp, 2
8841
                xor     ebx, ebp
8842
                add     edx, edi
8843
                add     eax, ebx
8844
                mov     edi, [esi+30h]
8845
                add     edx, eax
8846
                mov     eax, [esi+34h]
8847
                mov     [esi+6Ch], edx
8848
                mov     edx, [esi+54h]
8849
                mov     ebx, [esi+68h]
8850
                mov     ecx, eax
8851
                ror     ecx, 7
8852
                shr     eax, 3
8853
                mov     ebp, ebx
8854
                shr     ebx, 0Ah
8855
                xor     eax, ecx
8856
                ror     ecx, 0Bh
8857
                rol     ebp, 0Fh
8858
                xor     eax, ecx
8859
                xor     ebx, ebp
8860
                ror     ebp, 2
8861
                xor     ebx, ebp
8862
                add     edx, edi
8863
                add     eax, ebx
8864
                mov     edi, [esi+34h]
8865
                add     edx, eax
8866
                mov     eax, [esi+38h]
8867
                mov     [esi+70h], edx
8868
                mov     edx, [esi+58h]
8869
                mov     ebx, [esi+6Ch]
8870
                mov     ecx, eax
8871
                ror     ecx, 7
8872
                shr     eax, 3
8873
                mov     ebp, ebx
8874
                shr     ebx, 0Ah
8875
                xor     eax, ecx
8876
                ror     ecx, 0Bh
8877
                rol     ebp, 0Fh
8878
                xor     eax, ecx
8879
                xor     ebx, ebp
8880
                ror     ebp, 2
8881
                xor     ebx, ebp
8882
                add     edx, edi
8883
                add     eax, ebx
8884
                mov     edi, [esi+38h]
8885
                add     edx, eax
8886
                mov     eax, [esi+3Ch]
8887
                mov     [esi+74h], edx
8888
                mov     edx, [esi+5Ch]
8889
                mov     ebx, [esi+70h]
8890
                mov     ecx, eax
8891
                ror     ecx, 7
8892
                shr     eax, 3
8893
                mov     ebp, ebx
8894
                shr     ebx, 0Ah
8895
                xor     eax, ecx
8896
                ror     ecx, 0Bh
8897
                rol     ebp, 0Fh
8898
                xor     eax, ecx
8899
                xor     ebx, ebp
8900
                ror     ebp, 2
8901
                xor     ebx, ebp
8902
                add     edx, edi
8903
                add     eax, ebx
8904
                mov     edi, [esi+3Ch]
8905
                add     edx, eax
8906
                mov     eax, [esi+40h]
8907
                mov     [esi+78h], edx
8908
                mov     edx, [esi+60h]
8909
                mov     ebx, [esi+74h]
8910
                mov     ecx, eax
8911
                ror     ecx, 7
8912
                shr     eax, 3
8913
                mov     ebp, ebx
8914
                shr     ebx, 0Ah
8915
                xor     eax, ecx
8916
                ror     ecx, 0Bh
8917
                rol     ebp, 0Fh
8918
                xor     eax, ecx
8919
                xor     ebx, ebp
8920
                ror     ebp, 2
8921
                xor     ebx, ebp
8922
                add     edx, edi
8923
                add     eax, ebx
8924
                mov     edi, [esi+40h]
8925
                add     edx, eax
8926
                mov     eax, [esi+44h]
8927
                mov     [esi+7Ch], edx
8928
                mov     edx, [esi+64h]
8929
                mov     ebx, [esi+78h]
8930
                mov     ecx, eax
8931
                ror     ecx, 7
8932
                shr     eax, 3
8933
                mov     ebp, ebx
8934
                shr     ebx, 0Ah
8935
                xor     eax, ecx
8936
                ror     ecx, 0Bh
8937
                rol     ebp, 0Fh
8938
                xor     eax, ecx
8939
                xor     ebx, ebp
8940
                ror     ebp, 2
8941
                xor     ebx, ebp
8942
                add     edx, edi
8943
                add     eax, ebx
8944
                mov     edi, [esi+44h]
8945
                add     edx, eax
8946
                mov     eax, [esi+48h]
8947
                mov     [esi+80h], edx
8948
                mov     edx, [esi+68h]
8949
                mov     ebx, [esi+7Ch]
8950
                mov     ecx, eax
8951
                ror     ecx, 7
8952
                shr     eax, 3
8953
                mov     ebp, ebx
8954
                shr     ebx, 0Ah
8955
                xor     eax, ecx
8956
                ror     ecx, 0Bh
8957
                rol     ebp, 0Fh
8958
                xor     eax, ecx
8959
                xor     ebx, ebp
8960
                ror     ebp, 2
8961
                xor     ebx, ebp
8962
                add     edx, edi
8963
                add     eax, ebx
8964
                mov     edi, [esi+48h]
8965
                add     edx, eax
8966
                mov     eax, [esi+4Ch]
8967
                mov     [esi+84h], edx
8968
                mov     edx, [esi+6Ch]
8969
                mov     ebx, [esi+80h]
8970
                mov     ecx, eax
8971
                ror     ecx, 7
8972
                shr     eax, 3
8973
                mov     ebp, ebx
8974
                shr     ebx, 0Ah
8975
                xor     eax, ecx
8976
                ror     ecx, 0Bh
8977
                rol     ebp, 0Fh
8978
                xor     eax, ecx
8979
                xor     ebx, ebp
8980
                ror     ebp, 2
8981
                xor     ebx, ebp
8982
                add     edx, edi
8983
                add     eax, ebx
8984
                mov     edi, [esi+4Ch]
8985
                add     edx, eax
8986
                mov     eax, [esi+50h]
8987
                mov     [esi+88h], edx
8988
                mov     edx, [esi+70h]
8989
                mov     ebx, [esi+84h]
8990
                mov     ecx, eax
8991
                ror     ecx, 7
8992
                shr     eax, 3
8993
                mov     ebp, ebx
8994
                shr     ebx, 0Ah
8995
                xor     eax, ecx
8996
                ror     ecx, 0Bh
8997
                rol     ebp, 0Fh
8998
                xor     eax, ecx
8999
                xor     ebx, ebp
9000
                ror     ebp, 2
9001
                xor     ebx, ebp
9002
                add     edx, edi
9003
                add     eax, ebx
9004
                mov     edi, [esi+50h]
9005
                add     edx, eax
9006
                mov     eax, [esi+54h]
9007
                mov     [esi+8Ch], edx
9008
                mov     edx, [esi+74h]
9009
                mov     ebx, [esi+88h]
9010
                mov     ecx, eax
9011
                ror     ecx, 7
9012
                shr     eax, 3
9013
                mov     ebp, ebx
9014
                shr     ebx, 0Ah
9015
                xor     eax, ecx
9016
                ror     ecx, 0Bh
9017
                rol     ebp, 0Fh
9018
                xor     eax, ecx
9019
                xor     ebx, ebp
9020
                ror     ebp, 2
9021
                xor     ebx, ebp
9022
                add     edx, edi
9023
                add     eax, ebx
9024
                mov     edi, [esi+54h]
9025
                add     edx, eax
9026
                mov     eax, [esi+58h]
9027
                mov     [esi+90h], edx
9028
                mov     edx, [esi+78h]
9029
                mov     ebx, [esi+8Ch]
9030
                mov     ecx, eax
9031
                ror     ecx, 7
9032
                shr     eax, 3
9033
                mov     ebp, ebx
9034
                shr     ebx, 0Ah
9035
                xor     eax, ecx
9036
                ror     ecx, 0Bh
9037
                rol     ebp, 0Fh
9038
                xor     eax, ecx
9039
                xor     ebx, ebp
9040
                ror     ebp, 2
9041
                xor     ebx, ebp
9042
                add     edx, edi
9043
                add     eax, ebx
9044
                mov     edi, [esi+58h]
9045
                add     edx, eax
9046
                mov     eax, [esi+5Ch]
9047
                mov     [esi+94h], edx
9048
                mov     edx, [esi+7Ch]
9049
                mov     ebx, [esi+90h]
9050
                mov     ecx, eax
9051
                ror     ecx, 7
9052
                shr     eax, 3
9053
                mov     ebp, ebx
9054
                shr     ebx, 0Ah
9055
                xor     eax, ecx
9056
                ror     ecx, 0Bh
9057
                rol     ebp, 0Fh
9058
                xor     eax, ecx
9059
                xor     ebx, ebp
9060
                ror     ebp, 2
9061
                xor     ebx, ebp
9062
                add     edx, edi
9063
                add     eax, ebx
9064
                mov     edi, [esi+5Ch]
9065
                add     edx, eax
9066
                mov     eax, [esi+60h]
9067
                mov     [esi+98h], edx
9068
                mov     edx, [esi+80h]
9069
                mov     ebx, [esi+94h]
9070
                mov     ecx, eax
9071
                ror     ecx, 7
9072
                shr     eax, 3
9073
                mov     ebp, ebx
9074
                shr     ebx, 0Ah
9075
                xor     eax, ecx
9076
                ror     ecx, 0Bh
9077
                rol     ebp, 0Fh
9078
                xor     eax, ecx
9079
                xor     ebx, ebp
9080
                ror     ebp, 2
9081
                xor     ebx, ebp
9082
                add     edx, edi
9083
                add     eax, ebx
9084
                mov     edi, [esi+60h]
9085
                add     edx, eax
9086
                mov     eax, [esi+64h]
9087
                mov     [esi+9Ch], edx
9088
                mov     edx, [esi+84h]
9089
                mov     ebx, [esi+98h]
9090
                mov     ecx, eax
9091
                ror     ecx, 7
9092
                shr     eax, 3
9093
                mov     ebp, ebx
9094
                shr     ebx, 0Ah
9095
                xor     eax, ecx
9096
                ror     ecx, 0Bh
9097
                rol     ebp, 0Fh
9098
                xor     eax, ecx
9099
                xor     ebx, ebp
9100
                ror     ebp, 2
9101
                xor     ebx, ebp
9102
                add     edx, edi
9103
                add     eax, ebx
9104
                mov     edi, [esi+64h]
9105
                add     edx, eax
9106
                mov     eax, [esi+68h]
9107
                mov     [esi+0A0h], edx
9108
                mov     edx, [esi+88h]
9109
                mov     ebx, [esi+9Ch]
9110
                mov     ecx, eax
9111
                ror     ecx, 7
9112
                shr     eax, 3
9113
                mov     ebp, ebx
9114
                shr     ebx, 0Ah
9115
                xor     eax, ecx
9116
                ror     ecx, 0Bh
9117
                rol     ebp, 0Fh
9118
                xor     eax, ecx
9119
                xor     ebx, ebp
9120
                ror     ebp, 2
9121
                xor     ebx, ebp
9122
                add     edx, edi
9123
                add     eax, ebx
9124
                mov     edi, [esi+68h]
9125
                add     edx, eax
9126
                mov     eax, [esi+6Ch]
9127
                mov     [esi+0A4h], edx
9128
                mov     edx, [esi+8Ch]
9129
                mov     ebx, [esi+0A0h]
9130
                mov     ecx, eax
9131
                ror     ecx, 7
9132
                shr     eax, 3
9133
                mov     ebp, ebx
9134
                shr     ebx, 0Ah
9135
                xor     eax, ecx
9136
                ror     ecx, 0Bh
9137
                rol     ebp, 0Fh
9138
                xor     eax, ecx
9139
                xor     ebx, ebp
9140
                ror     ebp, 2
9141
                xor     ebx, ebp
9142
                add     edx, edi
9143
                add     eax, ebx
9144
                mov     edi, [esi+6Ch]
9145
                add     edx, eax
9146
                mov     eax, [esi+70h]
9147
                mov     [esi+0A8h], edx
9148
                mov     edx, [esi+90h]
9149
                mov     ebx, [esi+0A4h]
9150
                mov     ecx, eax
9151
                ror     ecx, 7
9152
                shr     eax, 3
9153
                mov     ebp, ebx
9154
                shr     ebx, 0Ah
9155
                xor     eax, ecx
9156
                ror     ecx, 0Bh
9157
                rol     ebp, 0Fh
9158
                xor     eax, ecx
9159
                xor     ebx, ebp
9160
                ror     ebp, 2
9161
                xor     ebx, ebp
9162
                add     edx, edi
9163
                add     eax, ebx
9164
                mov     edi, [esi+70h]
9165
                add     edx, eax
9166
                mov     eax, [esi+74h]
9167
                mov     [esi+0ACh], edx
9168
                mov     edx, [esi+94h]
9169
                mov     ebx, [esi+0A8h]
9170
                mov     ecx, eax
9171
                ror     ecx, 7
9172
                shr     eax, 3
9173
                mov     ebp, ebx
9174
                shr     ebx, 0Ah
9175
                xor     eax, ecx
9176
                ror     ecx, 0Bh
9177
                rol     ebp, 0Fh
9178
                xor     eax, ecx
9179
                xor     ebx, ebp
9180
                ror     ebp, 2
9181
                xor     ebx, ebp
9182
                add     edx, edi
9183
                add     eax, ebx
9184
                mov     edi, [esi+74h]
9185
                add     edx, eax
9186
                mov     eax, [esi+78h]
9187
                mov     [esi+0B0h], edx
9188
                mov     edx, [esi+98h]
9189
                mov     ebx, [esi+0ACh]
9190
                mov     ecx, eax
9191
                ror     ecx, 7
9192
                shr     eax, 3
9193
                mov     ebp, ebx
9194
                shr     ebx, 0Ah
9195
                xor     eax, ecx
9196
                ror     ecx, 0Bh
9197
                rol     ebp, 0Fh
9198
                xor     eax, ecx
9199
                xor     ebx, ebp
9200
                ror     ebp, 2
9201
                xor     ebx, ebp
9202
                add     edx, edi
9203
                add     eax, ebx
9204
                mov     edi, [esi+78h]
9205
                add     edx, eax
9206
                mov     eax, [esi+7Ch]
9207
                mov     [esi+0B4h], edx
9208
                mov     edx, [esi+9Ch]
9209
                mov     ebx, [esi+0B0h]
9210
                mov     ecx, eax
9211
                ror     ecx, 7
9212
                shr     eax, 3
9213
                mov     ebp, ebx
9214
                shr     ebx, 0Ah
9215
                xor     eax, ecx
9216
                ror     ecx, 0Bh
9217
                rol     ebp, 0Fh
9218
                xor     eax, ecx
9219
                xor     ebx, ebp
9220
                ror     ebp, 2
9221
                xor     ebx, ebp
9222
                add     edx, edi
9223
                add     eax, ebx
9224
                mov     edi, [esi+7Ch]
9225
                add     edx, eax
9226
                mov     eax, [esi+80h]
9227
                mov     [esi+0B8h], edx
9228
                mov     edx, [esi+0A0h]
9229
                mov     ebx, [esi+0B4h]
9230
                mov     ecx, eax
9231
                ror     ecx, 7
9232
                shr     eax, 3
9233
                mov     ebp, ebx
9234
                shr     ebx, 0Ah
9235
                xor     eax, ecx
9236
                ror     ecx, 0Bh
9237
                rol     ebp, 0Fh
9238
                xor     eax, ecx
9239
                xor     ebx, ebp
9240
                ror     ebp, 2
9241
                xor     ebx, ebp
9242
                add     edx, edi
9243
                add     eax, ebx
9244
                mov     edi, [esi+80h]
9245
                add     edx, eax
9246
                mov     eax, [esi+84h]
9247
                mov     [esi+0BCh], edx
9248
                mov     edx, [esi+0A4h]
9249
                mov     ebx, [esi+0B8h]
9250
                mov     ecx, eax
9251
                ror     ecx, 7
9252
                shr     eax, 3
9253
                mov     ebp, ebx
9254
                shr     ebx, 0Ah
9255
                xor     eax, ecx
9256
                ror     ecx, 0Bh
9257
                rol     ebp, 0Fh
9258
                xor     eax, ecx
9259
                xor     ebx, ebp
9260
                ror     ebp, 2
9261
                xor     ebx, ebp
9262
                add     edx, edi
9263
                add     eax, ebx
9264
                mov     edi, [esi+84h]
9265
                add     edx, eax
9266
                mov     eax, [esi+88h]
9267
                mov     [esi+0C0h], edx
9268
                mov     edx, [esi+0A8h]
9269
                mov     ebx, [esi+0BCh]
9270
                mov     ecx, eax
9271
                ror     ecx, 7
9272
                shr     eax, 3
9273
                mov     ebp, ebx
9274
                shr     ebx, 0Ah
9275
                xor     eax, ecx
9276
                ror     ecx, 0Bh
9277
                rol     ebp, 0Fh
9278
                xor     eax, ecx
9279
                xor     ebx, ebp
9280
                ror     ebp, 2
9281
                xor     ebx, ebp
9282
                add     edx, edi
9283
                add     eax, ebx
9284
                mov     edi, [esi+88h]
9285
                add     edx, eax
9286
                mov     eax, [esi+8Ch]
9287
                mov     [esi+0C4h], edx
9288
                mov     edx, [esi+0ACh]
9289
                mov     ebx, [esi+0C0h]
9290
                mov     ecx, eax
9291
                ror     ecx, 7
9292
                shr     eax, 3
9293
                mov     ebp, ebx
9294
                shr     ebx, 0Ah
9295
                xor     eax, ecx
9296
                ror     ecx, 0Bh
9297
                rol     ebp, 0Fh
9298
                xor     eax, ecx
9299
                xor     ebx, ebp
9300
                ror     ebp, 2
9301
                xor     ebx, ebp
9302
                add     edx, edi
9303
                add     eax, ebx
9304
                mov     edi, [esi+8Ch]
9305
                add     edx, eax
9306
                mov     eax, [esi+90h]
9307
                mov     [esi+0C8h], edx
9308
                mov     edx, [esi+0B0h]
9309
                mov     ebx, [esi+0C4h]
9310
                mov     ecx, eax
9311
                ror     ecx, 7
9312
                shr     eax, 3
9313
                mov     ebp, ebx
9314
                shr     ebx, 0Ah
9315
                xor     eax, ecx
9316
                ror     ecx, 0Bh
9317
                rol     ebp, 0Fh
9318
                xor     eax, ecx
9319
                xor     ebx, ebp
9320
                ror     ebp, 2
9321
                xor     ebx, ebp
9322
                add     edx, edi
9323
                add     eax, ebx
9324
                mov     edi, [esi+90h]
9325
                add     edx, eax
9326
                mov     eax, [esi+94h]
9327
                mov     [esi+0CCh], edx
9328
                mov     edx, [esi+0B4h]
9329
                mov     ebx, [esi+0C8h]
9330
                mov     ecx, eax
9331
                ror     ecx, 7
9332
                shr     eax, 3
9333
                mov     ebp, ebx
9334
                shr     ebx, 0Ah
9335
                xor     eax, ecx
9336
                ror     ecx, 0Bh
9337
                rol     ebp, 0Fh
9338
                xor     eax, ecx
9339
                xor     ebx, ebp
9340
                ror     ebp, 2
9341
                xor     ebx, ebp
9342
                add     edx, edi
9343
                add     eax, ebx
9344
                mov     edi, [esi+94h]
9345
                add     edx, eax
9346
                mov     eax, [esi+98h]
9347
                mov     [esi+0D0h], edx
9348
                mov     edx, [esi+0B8h]
9349
                mov     ebx, [esi+0CCh]
9350
                mov     ecx, eax
9351
                ror     ecx, 7
9352
                shr     eax, 3
9353
                mov     ebp, ebx
9354
                shr     ebx, 0Ah
9355
                xor     eax, ecx
9356
                ror     ecx, 0Bh
9357
                rol     ebp, 0Fh
9358
                xor     eax, ecx
9359
                xor     ebx, ebp
9360
                ror     ebp, 2
9361
                xor     ebx, ebp
9362
                add     edx, edi
9363
                add     eax, ebx
9364
                mov     edi, [esi+98h]
9365
                add     edx, eax
9366
                mov     eax, [esi+9Ch]
9367
                mov     [esi+0D4h], edx
9368
                mov     edx, [esi+0BCh]
9369
                mov     ebx, [esi+0D0h]
9370
                mov     ecx, eax
9371
                ror     ecx, 7
9372
                shr     eax, 3
9373
                mov     ebp, ebx
9374
                shr     ebx, 0Ah
9375
                xor     eax, ecx
9376
                ror     ecx, 0Bh
9377
                rol     ebp, 0Fh
9378
                xor     eax, ecx
9379
                xor     ebx, ebp
9380
                ror     ebp, 2
9381
                xor     ebx, ebp
9382
                add     edx, edi
9383
                add     eax, ebx
9384
                mov     edi, [esi+9Ch]
9385
                add     edx, eax
9386
                mov     eax, [esi+0A0h]
9387
                mov     [esi+0D8h], edx
9388
                mov     edx, [esi+0C0h]
9389
                mov     ebx, [esi+0D4h]
9390
                mov     ecx, eax
9391
                ror     ecx, 7
9392
                shr     eax, 3
9393
                mov     ebp, ebx
9394
                shr     ebx, 0Ah
9395
                xor     eax, ecx
9396
                ror     ecx, 0Bh
9397
                rol     ebp, 0Fh
9398
                xor     eax, ecx
9399
                xor     ebx, ebp
9400
                ror     ebp, 2
9401
                xor     ebx, ebp
9402
                add     edx, edi
9403
                add     eax, ebx
9404
                mov     edi, [esi+0A0h]
9405
                add     edx, eax
9406
                mov     eax, [esi+0A4h]
9407
                mov     [esi+0DCh], edx
9408
                mov     edx, [esi+0C4h]
9409
                mov     ebx, [esi+0D8h]
9410
                mov     ecx, eax
9411
                ror     ecx, 7
9412
                shr     eax, 3
9413
                mov     ebp, ebx
9414
                shr     ebx, 0Ah
9415
                xor     eax, ecx
9416
                ror     ecx, 0Bh
9417
                rol     ebp, 0Fh
9418
                xor     eax, ecx
9419
                xor     ebx, ebp
9420
                ror     ebp, 2
9421
                xor     ebx, ebp
9422
                add     edx, edi
9423
                add     eax, ebx
9424
                mov     edi, [esi+0A4h]
9425
                add     edx, eax
9426
                mov     eax, [esi+0A8h]
9427
                mov     [esi+0E0h], edx
9428
                mov     edx, [esi+0C8h]
9429
                mov     ebx, [esi+0DCh]
9430
                mov     ecx, eax
9431
                ror     ecx, 7
9432
                shr     eax, 3
9433
                mov     ebp, ebx
9434
                shr     ebx, 0Ah
9435
                xor     eax, ecx
9436
                ror     ecx, 0Bh
9437
                rol     ebp, 0Fh
9438
                xor     eax, ecx
9439
                xor     ebx, ebp
9440
                ror     ebp, 2
9441
                xor     ebx, ebp
9442
                add     edx, edi
9443
                add     eax, ebx
9444
                mov     edi, [esi+0A8h]
9445
                add     edx, eax
9446
                mov     eax, [esi+0ACh]
9447
                mov     [esi+0E4h], edx
9448
                mov     edx, [esi+0CCh]
9449
                mov     ebx, [esi+0E0h]
9450
                mov     ecx, eax
9451
                ror     ecx, 7
9452
                shr     eax, 3
9453
                mov     ebp, ebx
9454
                shr     ebx, 0Ah
9455
                xor     eax, ecx
9456
                ror     ecx, 0Bh
9457
                rol     ebp, 0Fh
9458
                xor     eax, ecx
9459
                xor     ebx, ebp
9460
                ror     ebp, 2
9461
                xor     ebx, ebp
9462
                add     edx, edi
9463
                add     eax, ebx
9464
                mov     edi, [esi+0ACh]
9465
                add     edx, eax
9466
                mov     eax, [esi+0B0h]
9467
                mov     [esi+0E8h], edx
9468
                mov     edx, [esi+0D0h]
9469
                mov     ebx, [esi+0E4h]
9470
                mov     ecx, eax
9471
                ror     ecx, 7
9472
                shr     eax, 3
9473
                mov     ebp, ebx
9474
                shr     ebx, 0Ah
9475
                xor     eax, ecx
9476
                ror     ecx, 0Bh
9477
                rol     ebp, 0Fh
9478
                xor     eax, ecx
9479
                xor     ebx, ebp
9480
                ror     ebp, 2
9481
                xor     ebx, ebp
9482
                add     edx, edi
9483
                add     eax, ebx
9484
                mov     edi, [esi+0B0h]
9485
                add     edx, eax
9486
                mov     eax, [esi+0B4h]
9487
                mov     [esi+0ECh], edx
9488
                mov     edx, [esi+0D4h]
9489
                mov     ebx, [esi+0E8h]
9490
                mov     ecx, eax
9491
                ror     ecx, 7
9492
                shr     eax, 3
9493
                mov     ebp, ebx
9494
                shr     ebx, 0Ah
9495
                xor     eax, ecx
9496
                ror     ecx, 0Bh
9497
                rol     ebp, 0Fh
9498
                xor     eax, ecx
9499
                xor     ebx, ebp
9500
                ror     ebp, 2
9501
                xor     ebx, ebp
9502
                add     edx, edi
9503
                add     eax, ebx
9504
                mov     edi, [esi+0B4h]
9505
                add     edx, eax
9506
                mov     eax, [esi+0B8h]
9507
                mov     [esi+0F0h], edx
9508
                mov     edx, [esi+0D8h]
9509
                mov     ebx, [esi+0ECh]
9510
                mov     ecx, eax
9511
                ror     ecx, 7
9512
                shr     eax, 3
9513
                mov     ebp, ebx
9514
                shr     ebx, 0Ah
9515
                xor     eax, ecx
9516
                ror     ecx, 0Bh
9517
                rol     ebp, 0Fh
9518
                xor     eax, ecx
9519
                xor     ebx, ebp
9520
                ror     ebp, 2
9521
                xor     ebx, ebp
9522
                add     edx, edi
9523
                add     eax, ebx
9524
                mov     edi, [esi+0B8h]
9525
                add     edx, eax
9526
                mov     eax, [esi+0BCh]
9527
                mov     [esi+0F4h], edx
9528
                mov     edx, [esi+0DCh]
9529
                mov     ebx, [esi+0F0h]
9530
                mov     ecx, eax
9531
                ror     ecx, 7
9532
                shr     eax, 3
9533
                mov     ebp, ebx
9534
                shr     ebx, 0Ah
9535
                xor     eax, ecx
9536
                ror     ecx, 0Bh
9537
                rol     ebp, 0Fh
9538
                xor     eax, ecx
9539
                xor     ebx, ebp
9540
                ror     ebp, 2
9541
                xor     ebx, ebp
9542
                add     edx, edi
9543
                add     eax, ebx
9544
                mov     edi, [esi+0BCh]
9545
                add     edx, eax
9546
                mov     eax, [esi+0C0h]
9547
                mov     [esi+0F8h], edx
9548
                mov     edx, [esi+0E0h]
9549
                mov     ebx, [esi+0F4h]
9550
                mov     ecx, eax
9551
                ror     ecx, 7
9552
                shr     eax, 3
9553
                mov     ebp, ebx
9554
                shr     ebx, 0Ah
9555
                xor     eax, ecx
9556
                ror     ecx, 0Bh
9557
                rol     ebp, 0Fh
9558
                xor     eax, ecx
9559
                xor     ebx, ebp
9560
                ror     ebp, 2
9561
                xor     ebx, ebp
9562
                add     edx, edi
9563
                add     eax, ebx
9564
                mov     edi, [esi+0C0h]
9565
                add     edx, eax
9566
                mov     eax, [esi+0C4h]
9567
                mov     [esi+0FCh], edx
9568
                mov     edi, [esp+24h]
9569
                mov     eax, [edi]
9570
                mov     ebx, [edi+4]
9571
                mov     ecx, [edi+8]
9572
                mov     edx, [edi+0Ch]
9573
                mov     [esp], eax
9574
                mov     [esp+4], ebx
9575
                mov     [esp+8], ecx
9576
                mov     [esp+0Ch], edx
9577
                mov     eax, [edi+10h]
9578
                mov     ebx, [edi+14h]
9579
                mov     ecx, [edi+18h]
9580
                mov     edx, [edi+1Ch]
9581
                mov     [esp+10h], eax
9582
                mov     [esp+14h], ebx
9583
                mov     [esp+18h], ecx
9584
                mov     [esp+1Ch], edx
9585
                mov     ebp, eax
9586
                mov     edi, eax
9587
                ror     ebp, 6
9588
                rol     edi, 7
9589
                xor     edi, ebp
9590
                ror     ebp, 5
9591
                xor     edi, ebp
9592
                mov     ebp, ebx
9593
                xor     ebp, ecx
9594
                and     ebp, eax
9595
                lea     edx, [edi+edx+428A2F98h]
9596
                mov     edi, [esp+4]
9597
                xor     ebp, ecx
9598
                add     edx, [esi]
9599
                add     edx, ebp
9600
                mov     ebp, [esp+8]
9601
                mov     eax, edi
9602
                and     edi, ebp
9603
                or      eax, ebp
9604
                mov     ebp, [esp]
9605
                and     eax, ebp
9606
                ror     ebp, 2
9607
                or      eax, edi
9608
                mov     edi, ebp
9609
                rol     edi, 0Ch
9610
                add     eax, edx
9611
                xor     ebp, edi
9612
                add     edx, [esp+0Ch]
9613
                rol     edi, 9
9614
                xor     ebp, edi
9615
                mov     [esp+0Ch], edx
9616
                add     eax, ebp
9617
                mov     [esp+1Ch], eax
9618
                mov     eax, [esp+10h]
9619
                mov     ebp, edx
9620
                mov     edi, edx
9621
                ror     ebp, 6
9622
                rol     edi, 7
9623
                xor     edi, ebp
9624
                ror     ebp, 5
9625
                xor     edi, ebp
9626
                mov     ebp, eax
9627
                xor     ebp, ebx
9628
                and     ebp, edx
9629
                lea     ecx, [edi+ecx+71374491h]
9630
                mov     edi, [esp]
9631
                xor     ebp, ebx
9632
                add     ecx, [esi+4]
9633
                add     ecx, ebp
9634
                mov     ebp, [esp+4]
9635
                mov     edx, edi
9636
                and     edi, ebp
9637
                or      edx, ebp
9638
                mov     ebp, [esp+1Ch]
9639
                and     edx, ebp
9640
                ror     ebp, 2
9641
                or      edx, edi
9642
                mov     edi, ebp
9643
                rol     edi, 0Ch
9644
                add     edx, ecx
9645
                xor     ebp, edi
9646
                add     ecx, [esp+8]
9647
                rol     edi, 9
9648
                xor     ebp, edi
9649
                mov     [esp+8], ecx
9650
                add     edx, ebp
9651
                mov     [esp+18h], edx
9652
                mov     edx, [esp+0Ch]
9653
                mov     ebp, ecx
9654
                mov     edi, ecx
9655
                ror     ebp, 6
9656
                rol     edi, 7
9657
                xor     edi, ebp
9658
                ror     ebp, 5
9659
                xor     edi, ebp
9660
                mov     ebp, edx
9661
                xor     ebp, eax
9662
                and     ebp, ecx
9663
                lea     ebx, [edi+ebx-4A3F0431h]
9664
                mov     edi, [esp+1Ch]
9665
                xor     ebp, eax
9666
                add     ebx, [esi+8]
9667
                add     ebx, ebp
9668
                mov     ebp, [esp]
9669
                mov     ecx, edi
9670
                and     edi, ebp
9671
                or      ecx, ebp
9672
                mov     ebp, [esp+18h]
9673
                and     ecx, ebp
9674
                ror     ebp, 2
9675
                or      ecx, edi
9676
                mov     edi, ebp
9677
                rol     edi, 0Ch
9678
                add     ecx, ebx
9679
                xor     ebp, edi
9680
                add     ebx, [esp+4]
9681
                rol     edi, 9
9682
                xor     ebp, edi
9683
                mov     [esp+4], ebx
9684
                add     ecx, ebp
9685
                mov     [esp+14h], ecx
9686
                mov     ecx, [esp+8]
9687
                mov     ebp, ebx
9688
                mov     edi, ebx
9689
                ror     ebp, 6
9690
                rol     edi, 7
9691
                xor     edi, ebp
9692
                ror     ebp, 5
9693
                xor     edi, ebp
9694
                mov     ebp, ecx
9695
                xor     ebp, edx
9696
                and     ebp, ebx
9697
                lea     eax, [edi+eax-164A245Bh]
9698
                mov     edi, [esp+18h]
9699
                xor     ebp, edx
9700
                add     eax, [esi+0Ch]
9701
                add     eax, ebp
9702
                mov     ebp, [esp+1Ch]
9703
                mov     ebx, edi
9704
                and     edi, ebp
9705
                or      ebx, ebp
9706
                mov     ebp, [esp+14h]
9707
                and     ebx, ebp
9708
                ror     ebp, 2
9709
                or      ebx, edi
9710
                mov     edi, ebp
9711
                rol     edi, 0Ch
9712
                add     ebx, eax
9713
                xor     ebp, edi
9714
                add     eax, [esp]
9715
                rol     edi, 9
9716
                xor     ebp, edi
9717
                mov     [esp], eax
9718
                add     ebx, ebp
9719
                mov     [esp+10h], ebx
9720
                mov     ebx, [esp+4]
9721
                mov     ebp, eax
9722
                mov     edi, eax
9723
                ror     ebp, 6
9724
                rol     edi, 7
9725
                xor     edi, ebp
9726
                ror     ebp, 5
9727
                xor     edi, ebp
9728
                mov     ebp, ebx
9729
                xor     ebp, ecx
9730
                and     ebp, eax
9731
                lea     edx, [edi+edx+3956C25Bh]
9732
                mov     edi, [esp+14h]
9733
                xor     ebp, ecx
9734
                add     edx, [esi+10h]
9735
                add     edx, ebp
9736
                mov     ebp, [esp+18h]
9737
                mov     eax, edi
9738
                and     edi, ebp
9739
                or      eax, ebp
9740
                mov     ebp, [esp+10h]
9741
                and     eax, ebp
9742
                ror     ebp, 2
9743
                or      eax, edi
9744
                mov     edi, ebp
9745
                rol     edi, 0Ch
9746
                add     eax, edx
9747
                xor     ebp, edi
9748
                add     edx, [esp+1Ch]
9749
                rol     edi, 9
9750
                xor     ebp, edi
9751
                mov     [esp+1Ch], edx
9752
                add     eax, ebp
9753
                mov     [esp+0Ch], eax
9754
                mov     eax, [esp]
9755
                mov     ebp, edx
9756
                mov     edi, edx
9757
                ror     ebp, 6
9758
                rol     edi, 7
9759
                xor     edi, ebp
9760
                ror     ebp, 5
9761
                xor     edi, ebp
9762
                mov     ebp, eax
9763
                xor     ebp, ebx
9764
                and     ebp, edx
9765
                lea     ecx, [edi+ecx+59F111F1h]
9766
                mov     edi, [esp+10h]
9767
                xor     ebp, ebx
9768
                add     ecx, [esi+14h]
9769
                add     ecx, ebp
9770
                mov     ebp, [esp+14h]
9771
                mov     edx, edi
9772
                and     edi, ebp
9773
                or      edx, ebp
9774
                mov     ebp, [esp+0Ch]
9775
                and     edx, ebp
9776
                ror     ebp, 2
9777
                or      edx, edi
9778
                mov     edi, ebp
9779
                rol     edi, 0Ch
9780
                add     edx, ecx
9781
                xor     ebp, edi
9782
                add     ecx, [esp+18h]
9783
                rol     edi, 9
9784
                xor     ebp, edi
9785
                mov     [esp+18h], ecx
9786
                add     edx, ebp
9787
                mov     [esp+8], edx
9788
                mov     edx, [esp+1Ch]
9789
                mov     ebp, ecx
9790
                mov     edi, ecx
9791
                ror     ebp, 6
9792
                rol     edi, 7
9793
                xor     edi, ebp
9794
                ror     ebp, 5
9795
                xor     edi, ebp
9796
                mov     ebp, edx
9797
                xor     ebp, eax
9798
                and     ebp, ecx
9799
                lea     ebx, [edi+ebx-6DC07D5Ch]
9800
                mov     edi, [esp+0Ch]
9801
                xor     ebp, eax
9802
                add     ebx, [esi+18h]
9803
                add     ebx, ebp
9804
                mov     ebp, [esp+10h]
9805
                mov     ecx, edi
9806
                and     edi, ebp
9807
                or      ecx, ebp
9808
                mov     ebp, [esp+8]
9809
                and     ecx, ebp
9810
                ror     ebp, 2
9811
                or      ecx, edi
9812
                mov     edi, ebp
9813
                rol     edi, 0Ch
9814
                add     ecx, ebx
9815
                xor     ebp, edi
9816
                add     ebx, [esp+14h]
9817
                rol     edi, 9
9818
                xor     ebp, edi
9819
                mov     [esp+14h], ebx
9820
                add     ecx, ebp
9821
                mov     [esp+4], ecx
9822
                mov     ecx, [esp+18h]
9823
                mov     ebp, ebx
9824
                mov     edi, ebx
9825
                ror     ebp, 6
9826
                rol     edi, 7
9827
                xor     edi, ebp
9828
                ror     ebp, 5
9829
                xor     edi, ebp
9830
                mov     ebp, ecx
9831
                xor     ebp, edx
9832
                and     ebp, ebx
9833
                lea     eax, [edi+eax-54E3A12Bh]
9834
                mov     edi, [esp+8]
9835
                xor     ebp, edx
9836
                add     eax, [esi+1Ch]
9837
                add     eax, ebp
9838
                mov     ebp, [esp+0Ch]
9839
                mov     ebx, edi
9840
                and     edi, ebp
9841
                or      ebx, ebp
9842
                mov     ebp, [esp+4]
9843
                and     ebx, ebp
9844
                ror     ebp, 2
9845
                or      ebx, edi
9846
                mov     edi, ebp
9847
                rol     edi, 0Ch
9848
                add     ebx, eax
9849
                xor     ebp, edi
9850
                add     eax, [esp+10h]
9851
                rol     edi, 9
9852
                xor     ebp, edi
9853
                mov     [esp+10h], eax
9854
                add     ebx, ebp
9855
                mov     [esp], ebx
9856
                mov     ebx, [esp+14h]
9857
                mov     ebp, eax
9858
                mov     edi, eax
9859
                ror     ebp, 6
9860
                rol     edi, 7
9861
                xor     edi, ebp
9862
                ror     ebp, 5
9863
                xor     edi, ebp
9864
                mov     ebp, ebx
9865
                xor     ebp, ecx
9866
                and     ebp, eax
9867
                lea     edx, [edi+edx-27F85568h]
9868
                mov     edi, [esp+4]
9869
                xor     ebp, ecx
9870
                add     edx, [esi+20h]
9871
                add     edx, ebp
9872
                mov     ebp, [esp+8]
9873
                mov     eax, edi
9874
                and     edi, ebp
9875
                or      eax, ebp
9876
                mov     ebp, [esp]
9877
                and     eax, ebp
9878
                ror     ebp, 2
9879
                or      eax, edi
9880
                mov     edi, ebp
9881
                rol     edi, 0Ch
9882
                add     eax, edx
9883
                xor     ebp, edi
9884
                add     edx, [esp+0Ch]
9885
                rol     edi, 9
9886
                xor     ebp, edi
9887
                mov     [esp+0Ch], edx
9888
                add     eax, ebp
9889
                mov     [esp+1Ch], eax
9890
                mov     eax, [esp+10h]
9891
                mov     ebp, edx
9892
                mov     edi, edx
9893
                ror     ebp, 6
9894
                rol     edi, 7
9895
                xor     edi, ebp
9896
                ror     ebp, 5
9897
                xor     edi, ebp
9898
                mov     ebp, eax
9899
                xor     ebp, ebx
9900
                and     ebp, edx
9901
                lea     ecx, [edi+ecx+12835B01h]
9902
                mov     edi, [esp]
9903
                xor     ebp, ebx
9904
                add     ecx, [esi+24h]
9905
                add     ecx, ebp
9906
                mov     ebp, [esp+4]
9907
                mov     edx, edi
9908
                and     edi, ebp
9909
                or      edx, ebp
9910
                mov     ebp, [esp+1Ch]
9911
                and     edx, ebp
9912
                ror     ebp, 2
9913
                or      edx, edi
9914
                mov     edi, ebp
9915
                rol     edi, 0Ch
9916
                add     edx, ecx
9917
                xor     ebp, edi
9918
                add     ecx, [esp+8]
9919
                rol     edi, 9
9920
                xor     ebp, edi
9921
                mov     [esp+8], ecx
9922
                add     edx, ebp
9923
                mov     [esp+18h], edx
9924
                mov     edx, [esp+0Ch]
9925
                mov     ebp, ecx
9926
                mov     edi, ecx
9927
                ror     ebp, 6
9928
                rol     edi, 7
9929
                xor     edi, ebp
9930
                ror     ebp, 5
9931
                xor     edi, ebp
9932
                mov     ebp, edx
9933
                xor     ebp, eax
9934
                and     ebp, ecx
9935
                lea     ebx, [edi+ebx+243185BEh]
9936
                mov     edi, [esp+1Ch]
9937
                xor     ebp, eax
9938
                add     ebx, [esi+28h]
9939
                add     ebx, ebp
9940
                mov     ebp, [esp]
9941
                mov     ecx, edi
9942
                and     edi, ebp
9943
                or      ecx, ebp
9944
                mov     ebp, [esp+18h]
9945
                and     ecx, ebp
9946
                ror     ebp, 2
9947
                or      ecx, edi
9948
                mov     edi, ebp
9949
                rol     edi, 0Ch
9950
                add     ecx, ebx
9951
                xor     ebp, edi
9952
                add     ebx, [esp+4]
9953
                rol     edi, 9
9954
                xor     ebp, edi
9955
                mov     [esp+4], ebx
9956
                add     ecx, ebp
9957
                mov     [esp+14h], ecx
9958
                mov     ecx, [esp+8]
9959
                mov     ebp, ebx
9960
                mov     edi, ebx
9961
                ror     ebp, 6
9962
                rol     edi, 7
9963
                xor     edi, ebp
9964
                ror     ebp, 5
9965
                xor     edi, ebp
9966
                mov     ebp, ecx
9967
                xor     ebp, edx
9968
                and     ebp, ebx
9969
                lea     eax, [edi+eax+550C7DC3h]
9970
                mov     edi, [esp+18h]
9971
                xor     ebp, edx
9972
                add     eax, [esi+2Ch]
9973
                add     eax, ebp
9974
                mov     ebp, [esp+1Ch]
9975
                mov     ebx, edi
9976
                and     edi, ebp
9977
                or      ebx, ebp
9978
                mov     ebp, [esp+14h]
9979
                and     ebx, ebp
9980
                ror     ebp, 2
9981
                or      ebx, edi
9982
                mov     edi, ebp
9983
                rol     edi, 0Ch
9984
                add     ebx, eax
9985
                xor     ebp, edi
9986
                add     eax, [esp]
9987
                rol     edi, 9
9988
                xor     ebp, edi
9989
                mov     [esp], eax
9990
                add     ebx, ebp
9991
                mov     [esp+10h], ebx
9992
                mov     ebx, [esp+4]
9993
                mov     ebp, eax
9994
                mov     edi, eax
9995
                ror     ebp, 6
9996
                rol     edi, 7
9997
                xor     edi, ebp
9998
                ror     ebp, 5
9999
                xor     edi, ebp
10000
                mov     ebp, ebx
10001
                xor     ebp, ecx
10002
                and     ebp, eax
10003
                lea     edx, [edi+edx+72BE5D74h]
10004
                mov     edi, [esp+14h]
10005
                xor     ebp, ecx
10006
                add     edx, [esi+30h]
10007
                add     edx, ebp
10008
                mov     ebp, [esp+18h]
10009
                mov     eax, edi
10010
                and     edi, ebp
10011
                or      eax, ebp
10012
                mov     ebp, [esp+10h]
10013
                and     eax, ebp
10014
                ror     ebp, 2
10015
                or      eax, edi
10016
                mov     edi, ebp
10017
                rol     edi, 0Ch
10018
                add     eax, edx
10019
                xor     ebp, edi
10020
                add     edx, [esp+1Ch]
10021
                rol     edi, 9
10022
                xor     ebp, edi
10023
                mov     [esp+1Ch], edx
10024
                add     eax, ebp
10025
                mov     [esp+0Ch], eax
10026
                mov     eax, [esp]
10027
                mov     ebp, edx
10028
                mov     edi, edx
10029
                ror     ebp, 6
10030
                rol     edi, 7
10031
                xor     edi, ebp
10032
                ror     ebp, 5
10033
                xor     edi, ebp
10034
                mov     ebp, eax
10035
                xor     ebp, ebx
10036
                and     ebp, edx
10037
                lea     ecx, [edi+ecx-7F214E02h]
10038
                mov     edi, [esp+10h]
10039
                xor     ebp, ebx
10040
                add     ecx, [esi+34h]
10041
                add     ecx, ebp
10042
                mov     ebp, [esp+14h]
10043
                mov     edx, edi
10044
                and     edi, ebp
10045
                or      edx, ebp
10046
                mov     ebp, [esp+0Ch]
10047
                and     edx, ebp
10048
                ror     ebp, 2
10049
                or      edx, edi
10050
                mov     edi, ebp
10051
                rol     edi, 0Ch
10052
                add     edx, ecx
10053
                xor     ebp, edi
10054
                add     ecx, [esp+18h]
10055
                rol     edi, 9
10056
                xor     ebp, edi
10057
                mov     [esp+18h], ecx
10058
                add     edx, ebp
10059
                mov     [esp+8], edx
10060
                mov     edx, [esp+1Ch]
10061
                mov     ebp, ecx
10062
                mov     edi, ecx
10063
                ror     ebp, 6
10064
                rol     edi, 7
10065
                xor     edi, ebp
10066
                ror     ebp, 5
10067
                xor     edi, ebp
10068
                mov     ebp, edx
10069
                xor     ebp, eax
10070
                and     ebp, ecx
10071
                lea     ebx, [edi+ebx-6423F959h]
10072
                mov     edi, [esp+0Ch]
10073
                xor     ebp, eax
10074
                add     ebx, [esi+38h]
10075
                add     ebx, ebp
10076
                mov     ebp, [esp+10h]
10077
                mov     ecx, edi
10078
                and     edi, ebp
10079
                or      ecx, ebp
10080
                mov     ebp, [esp+8]
10081
                and     ecx, ebp
10082
                ror     ebp, 2
10083
                or      ecx, edi
10084
                mov     edi, ebp
10085
                rol     edi, 0Ch
10086
                add     ecx, ebx
10087
                xor     ebp, edi
10088
                add     ebx, [esp+14h]
10089
                rol     edi, 9
10090
                xor     ebp, edi
10091
                mov     [esp+14h], ebx
10092
                add     ecx, ebp
10093
                mov     [esp+4], ecx
10094
                mov     ecx, [esp+18h]
10095
                mov     ebp, ebx
10096
                mov     edi, ebx
10097
                ror     ebp, 6
10098
                rol     edi, 7
10099
                xor     edi, ebp
10100
                ror     ebp, 5
10101
                xor     edi, ebp
10102
                mov     ebp, ecx
10103
                xor     ebp, edx
10104
                and     ebp, ebx
10105
                lea     eax, [edi+eax-3E640E8Ch]
10106
                mov     edi, [esp+8]
10107
                xor     ebp, edx
10108
                add     eax, [esi+3Ch]
10109
                add     eax, ebp
10110
                mov     ebp, [esp+0Ch]
10111
                mov     ebx, edi
10112
                and     edi, ebp
10113
                or      ebx, ebp
10114
                mov     ebp, [esp+4]
10115
                and     ebx, ebp
10116
                ror     ebp, 2
10117
                or      ebx, edi
10118
                mov     edi, ebp
10119
                rol     edi, 0Ch
10120
                add     ebx, eax
10121
                xor     ebp, edi
10122
                add     eax, [esp+10h]
10123
                rol     edi, 9
10124
                xor     ebp, edi
10125
                mov     [esp+10h], eax
10126
                add     ebx, ebp
10127
                mov     [esp], ebx
10128
                mov     ebx, [esp+14h]
10129
                mov     ebp, eax
10130
                mov     edi, eax
10131
                ror     ebp, 6
10132
                rol     edi, 7
10133
                xor     edi, ebp
10134
                ror     ebp, 5
10135
                xor     edi, ebp
10136
                mov     ebp, ebx
10137
                xor     ebp, ecx
10138
                and     ebp, eax
10139
                lea     edx, [edi+edx-1B64963Fh]
10140
                mov     edi, [esp+4]
10141
                xor     ebp, ecx
10142
                add     edx, [esi+40h]
10143
                add     edx, ebp
10144
                mov     ebp, [esp+8]
10145
                mov     eax, edi
10146
                and     edi, ebp
10147
                or      eax, ebp
10148
                mov     ebp, [esp]
10149
                and     eax, ebp
10150
                ror     ebp, 2
10151
                or      eax, edi
10152
                mov     edi, ebp
10153
                rol     edi, 0Ch
10154
                add     eax, edx
10155
                xor     ebp, edi
10156
                add     edx, [esp+0Ch]
10157
                rol     edi, 9
10158
                xor     ebp, edi
10159
                mov     [esp+0Ch], edx
10160
                add     eax, ebp
10161
                mov     [esp+1Ch], eax
10162
                mov     eax, [esp+10h]
10163
                mov     ebp, edx
10164
                mov     edi, edx
10165
                ror     ebp, 6
10166
                rol     edi, 7
10167
                xor     edi, ebp
10168
                ror     ebp, 5
10169
                xor     edi, ebp
10170
                mov     ebp, eax
10171
                xor     ebp, ebx
10172
                and     ebp, edx
10173
                lea     ecx, [edi+ecx-1041B87Ah]
10174
                mov     edi, [esp]
10175
                xor     ebp, ebx
10176
                add     ecx, [esi+44h]
10177
                add     ecx, ebp
10178
                mov     ebp, [esp+4]
10179
                mov     edx, edi
10180
                and     edi, ebp
10181
                or      edx, ebp
10182
                mov     ebp, [esp+1Ch]
10183
                and     edx, ebp
10184
                ror     ebp, 2
10185
                or      edx, edi
10186
                mov     edi, ebp
10187
                rol     edi, 0Ch
10188
                add     edx, ecx
10189
                xor     ebp, edi
10190
                add     ecx, [esp+8]
10191
                rol     edi, 9
10192
                xor     ebp, edi
10193
                mov     [esp+8], ecx
10194
                add     edx, ebp
10195
                mov     [esp+18h], edx
10196
                mov     edx, [esp+0Ch]
10197
                mov     ebp, ecx
10198
                mov     edi, ecx
10199
                ror     ebp, 6
10200
                rol     edi, 7
10201
                xor     edi, ebp
10202
                ror     ebp, 5
10203
                xor     edi, ebp
10204
                mov     ebp, edx
10205
                xor     ebp, eax
10206
                and     ebp, ecx
10207
                lea     ebx, [edi+ebx+0FC19DC6h]
10208
                mov     edi, [esp+1Ch]
10209
                xor     ebp, eax
10210
                add     ebx, [esi+48h]
10211
                add     ebx, ebp
10212
                mov     ebp, [esp]
10213
                mov     ecx, edi
10214
                and     edi, ebp
10215
                or      ecx, ebp
10216
                mov     ebp, [esp+18h]
10217
                and     ecx, ebp
10218
                ror     ebp, 2
10219
                or      ecx, edi
10220
                mov     edi, ebp
10221
                rol     edi, 0Ch
10222
                add     ecx, ebx
10223
                xor     ebp, edi
10224
                add     ebx, [esp+4]
10225
                rol     edi, 9
10226
                xor     ebp, edi
10227
                mov     [esp+4], ebx
10228
                add     ecx, ebp
10229
                mov     [esp+14h], ecx
10230
                mov     ecx, [esp+8]
10231
                mov     ebp, ebx
10232
                mov     edi, ebx
10233
                ror     ebp, 6
10234
                rol     edi, 7
10235
                xor     edi, ebp
10236
                ror     ebp, 5
10237
                xor     edi, ebp
10238
                mov     ebp, ecx
10239
                xor     ebp, edx
10240
                and     ebp, ebx
10241
                lea     eax, [edi+eax+240CA1CCh]
10242
                mov     edi, [esp+18h]
10243
                xor     ebp, edx
10244
                add     eax, [esi+4Ch]
10245
                add     eax, ebp
10246
                mov     ebp, [esp+1Ch]
10247
                mov     ebx, edi
10248
                and     edi, ebp
10249
                or      ebx, ebp
10250
                mov     ebp, [esp+14h]
10251
                and     ebx, ebp
10252
                ror     ebp, 2
10253
                or      ebx, edi
10254
                mov     edi, ebp
10255
                rol     edi, 0Ch
10256
                add     ebx, eax
10257
                xor     ebp, edi
10258
                add     eax, [esp]
10259
                rol     edi, 9
10260
                xor     ebp, edi
10261
                mov     [esp], eax
10262
                add     ebx, ebp
10263
                mov     [esp+10h], ebx
10264
                mov     ebx, [esp+4]
10265
                mov     ebp, eax
10266
                mov     edi, eax
10267
                ror     ebp, 6
10268
                rol     edi, 7
10269
                xor     edi, ebp
10270
                ror     ebp, 5
10271
                xor     edi, ebp
10272
                mov     ebp, ebx
10273
                xor     ebp, ecx
10274
                and     ebp, eax
10275
                lea     edx, [edi+edx+2DE92C6Fh]
10276
                mov     edi, [esp+14h]
10277
                xor     ebp, ecx
10278
                add     edx, [esi+50h]
10279
                add     edx, ebp
10280
                mov     ebp, [esp+18h]
10281
                mov     eax, edi
10282
                and     edi, ebp
10283
                or      eax, ebp
10284
                mov     ebp, [esp+10h]
10285
                and     eax, ebp
10286
                ror     ebp, 2
10287
                or      eax, edi
10288
                mov     edi, ebp
10289
                rol     edi, 0Ch
10290
                add     eax, edx
10291
                xor     ebp, edi
10292
                add     edx, [esp+1Ch]
10293
                rol     edi, 9
10294
                xor     ebp, edi
10295
                mov     [esp+1Ch], edx
10296
                add     eax, ebp
10297
                mov     [esp+0Ch], eax
10298
                mov     eax, [esp]
10299
                mov     ebp, edx
10300
                mov     edi, edx
10301
                ror     ebp, 6
10302
                rol     edi, 7
10303
                xor     edi, ebp
10304
                ror     ebp, 5
10305
                xor     edi, ebp
10306
                mov     ebp, eax
10307
                xor     ebp, ebx
10308
                and     ebp, edx
10309
                lea     ecx, [edi+ecx+4A7484AAh]
10310
                mov     edi, [esp+10h]
10311
                xor     ebp, ebx
10312
                add     ecx, [esi+54h]
10313
                add     ecx, ebp
10314
                mov     ebp, [esp+14h]
10315
                mov     edx, edi
10316
                and     edi, ebp
10317
                or      edx, ebp
10318
                mov     ebp, [esp+0Ch]
10319
                and     edx, ebp
10320
                ror     ebp, 2
10321
                or      edx, edi
10322
                mov     edi, ebp
10323
                rol     edi, 0Ch
10324
                add     edx, ecx
10325
                xor     ebp, edi
10326
                add     ecx, [esp+18h]
10327
                rol     edi, 9
10328
                xor     ebp, edi
10329
                mov     [esp+18h], ecx
10330
                add     edx, ebp
10331
                mov     [esp+8], edx
10332
                mov     edx, [esp+1Ch]
10333
                mov     ebp, ecx
10334
                mov     edi, ecx
10335
                ror     ebp, 6
10336
                rol     edi, 7
10337
                xor     edi, ebp
10338
                ror     ebp, 5
10339
                xor     edi, ebp
10340
                mov     ebp, edx
10341
                xor     ebp, eax
10342
                and     ebp, ecx
10343
                lea     ebx, [edi+ebx+5CB0A9DCh]
10344
                mov     edi, [esp+0Ch]
10345
                xor     ebp, eax
10346
                add     ebx, [esi+58h]
10347
                add     ebx, ebp
10348
                mov     ebp, [esp+10h]
10349
                mov     ecx, edi
10350
                and     edi, ebp
10351
                or      ecx, ebp
10352
                mov     ebp, [esp+8]
10353
                and     ecx, ebp
10354
                ror     ebp, 2
10355
                or      ecx, edi
10356
                mov     edi, ebp
10357
                rol     edi, 0Ch
10358
                add     ecx, ebx
10359
                xor     ebp, edi
10360
                add     ebx, [esp+14h]
10361
                rol     edi, 9
10362
                xor     ebp, edi
10363
                mov     [esp+14h], ebx
10364
                add     ecx, ebp
10365
                mov     [esp+4], ecx
10366
                mov     ecx, [esp+18h]
10367
                mov     ebp, ebx
10368
                mov     edi, ebx
10369
                ror     ebp, 6
10370
                rol     edi, 7
10371
                xor     edi, ebp
10372
                ror     ebp, 5
10373
                xor     edi, ebp
10374
                mov     ebp, ecx
10375
                xor     ebp, edx
10376
                and     ebp, ebx
10377
                lea     eax, [edi+eax+76F988DAh]
10378
                mov     edi, [esp+8]
10379
                xor     ebp, edx
10380
                add     eax, [esi+5Ch]
10381
                add     eax, ebp
10382
                mov     ebp, [esp+0Ch]
10383
                mov     ebx, edi
10384
                and     edi, ebp
10385
                or      ebx, ebp
10386
                mov     ebp, [esp+4]
10387
                and     ebx, ebp
10388
                ror     ebp, 2
10389
                or      ebx, edi
10390
                mov     edi, ebp
10391
                rol     edi, 0Ch
10392
                add     ebx, eax
10393
                xor     ebp, edi
10394
                add     eax, [esp+10h]
10395
                rol     edi, 9
10396
                xor     ebp, edi
10397
                mov     [esp+10h], eax
10398
                add     ebx, ebp
10399
                mov     [esp], ebx
10400
                mov     ebx, [esp+14h]
10401
                mov     ebp, eax
10402
                mov     edi, eax
10403
                ror     ebp, 6
10404
                rol     edi, 7
10405
                xor     edi, ebp
10406
                ror     ebp, 5
10407
                xor     edi, ebp
10408
                mov     ebp, ebx
10409
                xor     ebp, ecx
10410
                and     ebp, eax
10411
                lea     edx, [edi+edx-67C1AEAEh]
10412
                mov     edi, [esp+4]
10413
                xor     ebp, ecx
10414
                add     edx, [esi+60h]
10415
                add     edx, ebp
10416
                mov     ebp, [esp+8]
10417
                mov     eax, edi
10418
                and     edi, ebp
10419
                or      eax, ebp
10420
                mov     ebp, [esp]
10421
                and     eax, ebp
10422
                ror     ebp, 2
10423
                or      eax, edi
10424
                mov     edi, ebp
10425
                rol     edi, 0Ch
10426
                add     eax, edx
10427
                xor     ebp, edi
10428
                add     edx, [esp+0Ch]
10429
                rol     edi, 9
10430
                xor     ebp, edi
10431
                mov     [esp+0Ch], edx
10432
                add     eax, ebp
10433
                mov     [esp+1Ch], eax
10434
                mov     eax, [esp+10h]
10435
                mov     ebp, edx
10436
                mov     edi, edx
10437
                ror     ebp, 6
10438
                rol     edi, 7
10439
                xor     edi, ebp
10440
                ror     ebp, 5
10441
                xor     edi, ebp
10442
                mov     ebp, eax
10443
                xor     ebp, ebx
10444
                and     ebp, edx
10445
                lea     ecx, [edi+ecx-57CE3993h]
10446
                mov     edi, [esp]
10447
                xor     ebp, ebx
10448
                add     ecx, [esi+64h]
10449
                add     ecx, ebp
10450
                mov     ebp, [esp+4]
10451
                mov     edx, edi
10452
                and     edi, ebp
10453
                or      edx, ebp
10454
                mov     ebp, [esp+1Ch]
10455
                and     edx, ebp
10456
                ror     ebp, 2
10457
                or      edx, edi
10458
                mov     edi, ebp
10459
                rol     edi, 0Ch
10460
                add     edx, ecx
10461
                xor     ebp, edi
10462
                add     ecx, [esp+8]
10463
                rol     edi, 9
10464
                xor     ebp, edi
10465
                mov     [esp+8], ecx
10466
                add     edx, ebp
10467
                mov     [esp+18h], edx
10468
                mov     edx, [esp+0Ch]
10469
                mov     ebp, ecx
10470
                mov     edi, ecx
10471
                ror     ebp, 6
10472
                rol     edi, 7
10473
                xor     edi, ebp
10474
                ror     ebp, 5
10475
                xor     edi, ebp
10476
                mov     ebp, edx
10477
                xor     ebp, eax
10478
                and     ebp, ecx
10479
                lea     ebx, [edi+ebx-4FFCD838h]
10480
                mov     edi, [esp+1Ch]
10481
                xor     ebp, eax
10482
                add     ebx, [esi+68h]
10483
                add     ebx, ebp
10484
                mov     ebp, [esp]
10485
                mov     ecx, edi
10486
                and     edi, ebp
10487
                or      ecx, ebp
10488
                mov     ebp, [esp+18h]
10489
                and     ecx, ebp
10490
                ror     ebp, 2
10491
                or      ecx, edi
10492
                mov     edi, ebp
10493
                rol     edi, 0Ch
10494
                add     ecx, ebx
10495
                xor     ebp, edi
10496
                add     ebx, [esp+4]
10497
                rol     edi, 9
10498
                xor     ebp, edi
10499
                mov     [esp+4], ebx
10500
                add     ecx, ebp
10501
                mov     [esp+14h], ecx
10502
                mov     ecx, [esp+8]
10503
                mov     ebp, ebx
10504
                mov     edi, ebx
10505
                ror     ebp, 6
10506
                rol     edi, 7
10507
                xor     edi, ebp
10508
                ror     ebp, 5
10509
                xor     edi, ebp
10510
                mov     ebp, ecx
10511
                xor     ebp, edx
10512
                and     ebp, ebx
10513
                lea     eax, [edi+eax-40A68039h]
10514
                mov     edi, [esp+18h]
10515
                xor     ebp, edx
10516
                add     eax, [esi+6Ch]
10517
                add     eax, ebp
10518
                mov     ebp, [esp+1Ch]
10519
                mov     ebx, edi
10520
                and     edi, ebp
10521
                or      ebx, ebp
10522
                mov     ebp, [esp+14h]
10523
                and     ebx, ebp
10524
                ror     ebp, 2
10525
                or      ebx, edi
10526
                mov     edi, ebp
10527
                rol     edi, 0Ch
10528
                add     ebx, eax
10529
                xor     ebp, edi
10530
                add     eax, [esp]
10531
                rol     edi, 9
10532
                xor     ebp, edi
10533
                mov     [esp], eax
10534
                add     ebx, ebp
10535
                mov     [esp+10h], ebx
10536
                mov     ebx, [esp+4]
10537
                mov     ebp, eax
10538
                mov     edi, eax
10539
                ror     ebp, 6
10540
                rol     edi, 7
10541
                xor     edi, ebp
10542
                ror     ebp, 5
10543
                xor     edi, ebp
10544
                mov     ebp, ebx
10545
                xor     ebp, ecx
10546
                and     ebp, eax
10547
                lea     edx, [edi+edx-391FF40Dh]
10548
                mov     edi, [esp+14h]
10549
                xor     ebp, ecx
10550
                add     edx, [esi+70h]
10551
                add     edx, ebp
10552
                mov     ebp, [esp+18h]
10553
                mov     eax, edi
10554
                and     edi, ebp
10555
                or      eax, ebp
10556
                mov     ebp, [esp+10h]
10557
                and     eax, ebp
10558
                ror     ebp, 2
10559
                or      eax, edi
10560
                mov     edi, ebp
10561
                rol     edi, 0Ch
10562
                add     eax, edx
10563
                xor     ebp, edi
10564
                add     edx, [esp+1Ch]
10565
                rol     edi, 9
10566
                xor     ebp, edi
10567
                mov     [esp+1Ch], edx
10568
                add     eax, ebp
10569
                mov     [esp+0Ch], eax
10570
                mov     eax, [esp]
10571
                mov     ebp, edx
10572
                mov     edi, edx
10573
                ror     ebp, 6
10574
                rol     edi, 7
10575
                xor     edi, ebp
10576
                ror     ebp, 5
10577
                xor     edi, ebp
10578
                mov     ebp, eax
10579
                xor     ebp, ebx
10580
                and     ebp, edx
10581
                lea     ecx, [edi+ecx-2A586EB9h]
10582
                mov     edi, [esp+10h]
10583
                xor     ebp, ebx
10584
                add     ecx, [esi+74h]
10585
                add     ecx, ebp
10586
                mov     ebp, [esp+14h]
10587
                mov     edx, edi
10588
                and     edi, ebp
10589
                or      edx, ebp
10590
                mov     ebp, [esp+0Ch]
10591
                and     edx, ebp
10592
                ror     ebp, 2
10593
                or      edx, edi
10594
                mov     edi, ebp
10595
                rol     edi, 0Ch
10596
                add     edx, ecx
10597
                xor     ebp, edi
10598
                add     ecx, [esp+18h]
10599
                rol     edi, 9
10600
                xor     ebp, edi
10601
                mov     [esp+18h], ecx
10602
                add     edx, ebp
10603
                mov     [esp+8], edx
10604
                mov     edx, [esp+1Ch]
10605
                mov     ebp, ecx
10606
                mov     edi, ecx
10607
                ror     ebp, 6
10608
                rol     edi, 7
10609
                xor     edi, ebp
10610
                ror     ebp, 5
10611
                xor     edi, ebp
10612
                mov     ebp, edx
10613
                xor     ebp, eax
10614
                and     ebp, ecx
10615
                lea     ebx, [edi+ebx+6CA6351h]
10616
                mov     edi, [esp+0Ch]
10617
                xor     ebp, eax
10618
                add     ebx, [esi+78h]
10619
                add     ebx, ebp
10620
                mov     ebp, [esp+10h]
10621
                mov     ecx, edi
10622
                and     edi, ebp
10623
                or      ecx, ebp
10624
                mov     ebp, [esp+8]
10625
                and     ecx, ebp
10626
                ror     ebp, 2
10627
                or      ecx, edi
10628
                mov     edi, ebp
10629
                rol     edi, 0Ch
10630
                add     ecx, ebx
10631
                xor     ebp, edi
10632
                add     ebx, [esp+14h]
10633
                rol     edi, 9
10634
                xor     ebp, edi
10635
                mov     [esp+14h], ebx
10636
                add     ecx, ebp
10637
                mov     [esp+4], ecx
10638
                mov     ecx, [esp+18h]
10639
                mov     ebp, ebx
10640
                mov     edi, ebx
10641
                ror     ebp, 6
10642
                rol     edi, 7
10643
                xor     edi, ebp
10644
                ror     ebp, 5
10645
                xor     edi, ebp
10646
                mov     ebp, ecx
10647
                xor     ebp, edx
10648
                and     ebp, ebx
10649
                lea     eax, [edi+eax+14292967h]
10650
                mov     edi, [esp+8]
10651
                xor     ebp, edx
10652
                add     eax, [esi+7Ch]
10653
                add     eax, ebp
10654
                mov     ebp, [esp+0Ch]
10655
                mov     ebx, edi
10656
                and     edi, ebp
10657
                or      ebx, ebp
10658
                mov     ebp, [esp+4]
10659
                and     ebx, ebp
10660
                ror     ebp, 2
10661
                or      ebx, edi
10662
                mov     edi, ebp
10663
                rol     edi, 0Ch
10664
                add     ebx, eax
10665
                xor     ebp, edi
10666
                add     eax, [esp+10h]
10667
                rol     edi, 9
10668
                xor     ebp, edi
10669
                mov     [esp+10h], eax
10670
                add     ebx, ebp
10671
                mov     [esp], ebx
10672
                mov     ebx, [esp+14h]
10673
                mov     ebp, eax
10674
                mov     edi, eax
10675
                ror     ebp, 6
10676
                rol     edi, 7
10677
                xor     edi, ebp
10678
                ror     ebp, 5
10679
                xor     edi, ebp
10680
                mov     ebp, ebx
10681
                xor     ebp, ecx
10682
                and     ebp, eax
10683
                lea     edx, [edi+edx+27B70A85h]
10684
                mov     edi, [esp+4]
10685
                xor     ebp, ecx
10686
                add     edx, [esi+80h]
10687
                add     edx, ebp
10688
                mov     ebp, [esp+8]
10689
                mov     eax, edi
10690
                and     edi, ebp
10691
                or      eax, ebp
10692
                mov     ebp, [esp]
10693
                and     eax, ebp
10694
                ror     ebp, 2
10695
                or      eax, edi
10696
                mov     edi, ebp
10697
                rol     edi, 0Ch
10698
                add     eax, edx
10699
                xor     ebp, edi
10700
                add     edx, [esp+0Ch]
10701
                rol     edi, 9
10702
                xor     ebp, edi
10703
                mov     [esp+0Ch], edx
10704
                add     eax, ebp
10705
                mov     [esp+1Ch], eax
10706
                mov     eax, [esp+10h]
10707
                mov     ebp, edx
10708
                mov     edi, edx
10709
                ror     ebp, 6
10710
                rol     edi, 7
10711
                xor     edi, ebp
10712
                ror     ebp, 5
10713
                xor     edi, ebp
10714
                mov     ebp, eax
10715
                xor     ebp, ebx
10716
                and     ebp, edx
10717
                lea     ecx, [edi+ecx+2E1B2138h]
10718
                mov     edi, [esp]
10719
                xor     ebp, ebx
10720
                add     ecx, [esi+84h]
10721
                add     ecx, ebp
10722
                mov     ebp, [esp+4]
10723
                mov     edx, edi
10724
                and     edi, ebp
10725
                or      edx, ebp
10726
                mov     ebp, [esp+1Ch]
10727
                and     edx, ebp
10728
                ror     ebp, 2
10729
                or      edx, edi
10730
                mov     edi, ebp
10731
                rol     edi, 0Ch
10732
                add     edx, ecx
10733
                xor     ebp, edi
10734
                add     ecx, [esp+8]
10735
                rol     edi, 9
10736
                xor     ebp, edi
10737
                mov     [esp+8], ecx
10738
                add     edx, ebp
10739
                mov     [esp+18h], edx
10740
                mov     edx, [esp+0Ch]
10741
                mov     ebp, ecx
10742
                mov     edi, ecx
10743
                ror     ebp, 6
10744
                rol     edi, 7
10745
                xor     edi, ebp
10746
                ror     ebp, 5
10747
                xor     edi, ebp
10748
                mov     ebp, edx
10749
                xor     ebp, eax
10750
                and     ebp, ecx
10751
                lea     ebx, [edi+ebx+4D2C6DFCh]
10752
                mov     edi, [esp+1Ch]
10753
                xor     ebp, eax
10754
                add     ebx, [esi+88h]
10755
                add     ebx, ebp
10756
                mov     ebp, [esp]
10757
                mov     ecx, edi
10758
                and     edi, ebp
10759
                or      ecx, ebp
10760
                mov     ebp, [esp+18h]
10761
                and     ecx, ebp
10762
                ror     ebp, 2
10763
                or      ecx, edi
10764
                mov     edi, ebp
10765
                rol     edi, 0Ch
10766
                add     ecx, ebx
10767
                xor     ebp, edi
10768
                add     ebx, [esp+4]
10769
                rol     edi, 9
10770
                xor     ebp, edi
10771
                mov     [esp+4], ebx
10772
                add     ecx, ebp
10773
                mov     [esp+14h], ecx
10774
                mov     ecx, [esp+8]
10775
                mov     ebp, ebx
10776
                mov     edi, ebx
10777
                ror     ebp, 6
10778
                rol     edi, 7
10779
                xor     edi, ebp
10780
                ror     ebp, 5
10781
                xor     edi, ebp
10782
                mov     ebp, ecx
10783
                xor     ebp, edx
10784
                and     ebp, ebx
10785
                lea     eax, [edi+eax+53380D13h]
10786
                mov     edi, [esp+18h]
10787
                xor     ebp, edx
10788
                add     eax, [esi+8Ch]
10789
                add     eax, ebp
10790
                mov     ebp, [esp+1Ch]
10791
                mov     ebx, edi
10792
                and     edi, ebp
10793
                or      ebx, ebp
10794
                mov     ebp, [esp+14h]
10795
                and     ebx, ebp
10796
                ror     ebp, 2
10797
                or      ebx, edi
10798
                mov     edi, ebp
10799
                rol     edi, 0Ch
10800
                add     ebx, eax
10801
                xor     ebp, edi
10802
                add     eax, [esp]
10803
                rol     edi, 9
10804
                xor     ebp, edi
10805
                mov     [esp], eax
10806
                add     ebx, ebp
10807
                mov     [esp+10h], ebx
10808
                mov     ebx, [esp+4]
10809
                mov     ebp, eax
10810
                mov     edi, eax
10811
                ror     ebp, 6
10812
                rol     edi, 7
10813
                xor     edi, ebp
10814
                ror     ebp, 5
10815
                xor     edi, ebp
10816
                mov     ebp, ebx
10817
                xor     ebp, ecx
10818
                and     ebp, eax
10819
                lea     edx, [edi+edx+650A7354h]
10820
                mov     edi, [esp+14h]
10821
                xor     ebp, ecx
10822
                add     edx, [esi+90h]
10823
                add     edx, ebp
10824
                mov     ebp, [esp+18h]
10825
                mov     eax, edi
10826
                and     edi, ebp
10827
                or      eax, ebp
10828
                mov     ebp, [esp+10h]
10829
                and     eax, ebp
10830
                ror     ebp, 2
10831
                or      eax, edi
10832
                mov     edi, ebp
10833
                rol     edi, 0Ch
10834
                add     eax, edx
10835
                xor     ebp, edi
10836
                add     edx, [esp+1Ch]
10837
                rol     edi, 9
10838
                xor     ebp, edi
10839
                mov     [esp+1Ch], edx
10840
                add     eax, ebp
10841
                mov     [esp+0Ch], eax
10842
                mov     eax, [esp]
10843
                mov     ebp, edx
10844
                mov     edi, edx
10845
                ror     ebp, 6
10846
                rol     edi, 7
10847
                xor     edi, ebp
10848
                ror     ebp, 5
10849
                xor     edi, ebp
10850
                mov     ebp, eax
10851
                xor     ebp, ebx
10852
                and     ebp, edx
10853
                lea     ecx, [edi+ecx+766A0ABBh]
10854
                mov     edi, [esp+10h]
10855
                xor     ebp, ebx
10856
                add     ecx, [esi+94h]
10857
                add     ecx, ebp
10858
                mov     ebp, [esp+14h]
10859
                mov     edx, edi
10860
                and     edi, ebp
10861
                or      edx, ebp
10862
                mov     ebp, [esp+0Ch]
10863
                and     edx, ebp
10864
                ror     ebp, 2
10865
                or      edx, edi
10866
                mov     edi, ebp
10867
                rol     edi, 0Ch
10868
                add     edx, ecx
10869
                xor     ebp, edi
10870
                add     ecx, [esp+18h]
10871
                rol     edi, 9
10872
                xor     ebp, edi
10873
                mov     [esp+18h], ecx
10874
                add     edx, ebp
10875
                mov     [esp+8], edx
10876
                mov     edx, [esp+1Ch]
10877
                mov     ebp, ecx
10878
                mov     edi, ecx
10879
                ror     ebp, 6
10880
                rol     edi, 7
10881
                xor     edi, ebp
10882
                ror     ebp, 5
10883
                xor     edi, ebp
10884
                mov     ebp, edx
10885
                xor     ebp, eax
10886
                and     ebp, ecx
10887
                lea     ebx, [edi+ebx-7E3D36D2h]
10888
                mov     edi, [esp+0Ch]
10889
                xor     ebp, eax
10890
                add     ebx, [esi+98h]
10891
                add     ebx, ebp
10892
                mov     ebp, [esp+10h]
10893
                mov     ecx, edi
10894
                and     edi, ebp
10895
                or      ecx, ebp
10896
                mov     ebp, [esp+8]
10897
                and     ecx, ebp
10898
                ror     ebp, 2
10899
                or      ecx, edi
10900
                mov     edi, ebp
10901
                rol     edi, 0Ch
10902
                add     ecx, ebx
10903
                xor     ebp, edi
10904
                add     ebx, [esp+14h]
10905
                rol     edi, 9
10906
                xor     ebp, edi
10907
                mov     [esp+14h], ebx
10908
                add     ecx, ebp
10909
                mov     [esp+4], ecx
10910
                mov     ecx, [esp+18h]
10911
                mov     ebp, ebx
10912
                mov     edi, ebx
10913
                ror     ebp, 6
10914
                rol     edi, 7
10915
                xor     edi, ebp
10916
                ror     ebp, 5
10917
                xor     edi, ebp
10918
                mov     ebp, ecx
10919
                xor     ebp, edx
10920
                and     ebp, ebx
10921
                lea     eax, [edi+eax-6D8DD37Bh]
10922
                mov     edi, [esp+8]
10923
                xor     ebp, edx
10924
                add     eax, [esi+9Ch]
10925
                add     eax, ebp
10926
                mov     ebp, [esp+0Ch]
10927
                mov     ebx, edi
10928
                and     edi, ebp
10929
                or      ebx, ebp
10930
                mov     ebp, [esp+4]
10931
                and     ebx, ebp
10932
                ror     ebp, 2
10933
                or      ebx, edi
10934
                mov     edi, ebp
10935
                rol     edi, 0Ch
10936
                add     ebx, eax
10937
                xor     ebp, edi
10938
                add     eax, [esp+10h]
10939
                rol     edi, 9
10940
                xor     ebp, edi
10941
                mov     [esp+10h], eax
10942
                add     ebx, ebp
10943
                mov     [esp], ebx
10944
                mov     ebx, [esp+14h]
10945
                mov     ebp, eax
10946
                mov     edi, eax
10947
                ror     ebp, 6
10948
                rol     edi, 7
10949
                xor     edi, ebp
10950
                ror     ebp, 5
10951
                xor     edi, ebp
10952
                mov     ebp, ebx
10953
                xor     ebp, ecx
10954
                and     ebp, eax
10955
                lea     edx, [edi+edx-5D40175Fh]
10956
                mov     edi, [esp+4]
10957
                xor     ebp, ecx
10958
                add     edx, [esi+0A0h]
10959
                add     edx, ebp
10960
                mov     ebp, [esp+8]
10961
                mov     eax, edi
10962
                and     edi, ebp
10963
                or      eax, ebp
10964
                mov     ebp, [esp]
10965
                and     eax, ebp
10966
                ror     ebp, 2
10967
                or      eax, edi
10968
                mov     edi, ebp
10969
                rol     edi, 0Ch
10970
                add     eax, edx
10971
                xor     ebp, edi
10972
                add     edx, [esp+0Ch]
10973
                rol     edi, 9
10974
                xor     ebp, edi
10975
                mov     [esp+0Ch], edx
10976
                add     eax, ebp
10977
                mov     [esp+1Ch], eax
10978
                mov     eax, [esp+10h]
10979
                mov     ebp, edx
10980
                mov     edi, edx
10981
                ror     ebp, 6
10982
                rol     edi, 7
10983
                xor     edi, ebp
10984
                ror     ebp, 5
10985
                xor     edi, ebp
10986
                mov     ebp, eax
10987
                xor     ebp, ebx
10988
                and     ebp, edx
10989
                lea     ecx, [edi+ecx-57E599B5h]
10990
                mov     edi, [esp]
10991
                xor     ebp, ebx
10992
                add     ecx, [esi+0A4h]
10993
                add     ecx, ebp
10994
                mov     ebp, [esp+4]
10995
                mov     edx, edi
10996
                and     edi, ebp
10997
                or      edx, ebp
10998
                mov     ebp, [esp+1Ch]
10999
                and     edx, ebp
11000
                ror     ebp, 2
11001
                or      edx, edi
11002
                mov     edi, ebp
11003
                rol     edi, 0Ch
11004
                add     edx, ecx
11005
                xor     ebp, edi
11006
                add     ecx, [esp+8]
11007
                rol     edi, 9
11008
                xor     ebp, edi
11009
                mov     [esp+8], ecx
11010
                add     edx, ebp
11011
                mov     [esp+18h], edx
11012
                mov     edx, [esp+0Ch]
11013
                mov     ebp, ecx
11014
                mov     edi, ecx
11015
                ror     ebp, 6
11016
                rol     edi, 7
11017
                xor     edi, ebp
11018
                ror     ebp, 5
11019
                xor     edi, ebp
11020
                mov     ebp, edx
11021
                xor     ebp, eax
11022
                and     ebp, ecx
11023
                lea     ebx, [edi+ebx-3DB47490h]
11024
                mov     edi, [esp+1Ch]
11025
                xor     ebp, eax
11026
                add     ebx, [esi+0A8h]
11027
                add     ebx, ebp
11028
                mov     ebp, [esp]
11029
                mov     ecx, edi
11030
                and     edi, ebp
11031
                or      ecx, ebp
11032
                mov     ebp, [esp+18h]
11033
                and     ecx, ebp
11034
                ror     ebp, 2
11035
                or      ecx, edi
11036
                mov     edi, ebp
11037
                rol     edi, 0Ch
11038
                add     ecx, ebx
11039
                xor     ebp, edi
11040
                add     ebx, [esp+4]
11041
                rol     edi, 9
11042
                xor     ebp, edi
11043
                mov     [esp+4], ebx
11044
                add     ecx, ebp
11045
                mov     [esp+14h], ecx
11046
                mov     ecx, [esp+8]
11047
                mov     ebp, ebx
11048
                mov     edi, ebx
11049
                ror     ebp, 6
11050
                rol     edi, 7
11051
                xor     edi, ebp
11052
                ror     ebp, 5
11053
                xor     edi, ebp
11054
                mov     ebp, ecx
11055
                xor     ebp, edx
11056
                and     ebp, ebx
11057
                lea     eax, [edi+eax-3893AE5Dh]
11058
                mov     edi, [esp+18h]
11059
                xor     ebp, edx
11060
                add     eax, [esi+0ACh]
11061
                add     eax, ebp
11062
                mov     ebp, [esp+1Ch]
11063
                mov     ebx, edi
11064
                and     edi, ebp
11065
                or      ebx, ebp
11066
                mov     ebp, [esp+14h]
11067
                and     ebx, ebp
11068
                ror     ebp, 2
11069
                or      ebx, edi
11070
                mov     edi, ebp
11071
                rol     edi, 0Ch
11072
                add     ebx, eax
11073
                xor     ebp, edi
11074
                add     eax, [esp]
11075
                rol     edi, 9
11076
                xor     ebp, edi
11077
                mov     [esp], eax
11078
                add     ebx, ebp
11079
                mov     [esp+10h], ebx
11080
                mov     ebx, [esp+4]
11081
                mov     ebp, eax
11082
                mov     edi, eax
11083
                ror     ebp, 6
11084
                rol     edi, 7
11085
                xor     edi, ebp
11086
                ror     ebp, 5
11087
                xor     edi, ebp
11088
                mov     ebp, ebx
11089
                xor     ebp, ecx
11090
                and     ebp, eax
11091
                lea     edx, [edi+edx-2E6D17E7h]
11092
                mov     edi, [esp+14h]
11093
                xor     ebp, ecx
11094
                add     edx, [esi+0B0h]
11095
                add     edx, ebp
11096
                mov     ebp, [esp+18h]
11097
                mov     eax, edi
11098
                and     edi, ebp
11099
                or      eax, ebp
11100
                mov     ebp, [esp+10h]
11101
                and     eax, ebp
11102
                ror     ebp, 2
11103
                or      eax, edi
11104
                mov     edi, ebp
11105
                rol     edi, 0Ch
11106
                add     eax, edx
11107
                xor     ebp, edi
11108
                add     edx, [esp+1Ch]
11109
                rol     edi, 9
11110
                xor     ebp, edi
11111
                mov     [esp+1Ch], edx
11112
                add     eax, ebp
11113
                mov     [esp+0Ch], eax
11114
                mov     eax, [esp]
11115
                mov     ebp, edx
11116
                mov     edi, edx
11117
                ror     ebp, 6
11118
                rol     edi, 7
11119
                xor     edi, ebp
11120
                ror     ebp, 5
11121
                xor     edi, ebp
11122
                mov     ebp, eax
11123
                xor     ebp, ebx
11124
                and     ebp, edx
11125
                lea     ecx, [edi+ecx-2966F9DCh]
11126
                mov     edi, [esp+10h]
11127
                xor     ebp, ebx
11128
                add     ecx, [esi+0B4h]
11129
                add     ecx, ebp
11130
                mov     ebp, [esp+14h]
11131
                mov     edx, edi
11132
                and     edi, ebp
11133
                or      edx, ebp
11134
                mov     ebp, [esp+0Ch]
11135
                and     edx, ebp
11136
                ror     ebp, 2
11137
                or      edx, edi
11138
                mov     edi, ebp
11139
                rol     edi, 0Ch
11140
                add     edx, ecx
11141
                xor     ebp, edi
11142
                add     ecx, [esp+18h]
11143
                rol     edi, 9
11144
                xor     ebp, edi
11145
                mov     [esp+18h], ecx
11146
                add     edx, ebp
11147
                mov     [esp+8], edx
11148
                mov     edx, [esp+1Ch]
11149
                mov     ebp, ecx
11150
                mov     edi, ecx
11151
                ror     ebp, 6
11152
                rol     edi, 7
11153
                xor     edi, ebp
11154
                ror     ebp, 5
11155
                xor     edi, ebp
11156
                mov     ebp, edx
11157
                xor     ebp, eax
11158
                and     ebp, ecx
11159
                lea     ebx, [edi+ebx-0BF1CA7Bh]
11160
                mov     edi, [esp+0Ch]
11161
                xor     ebp, eax
11162
                add     ebx, [esi+0B8h]
11163
                add     ebx, ebp
11164
                mov     ebp, [esp+10h]
11165
                mov     ecx, edi
11166
                and     edi, ebp
11167
                or      ecx, ebp
11168
                mov     ebp, [esp+8]
11169
                and     ecx, ebp
11170
                ror     ebp, 2
11171
                or      ecx, edi
11172
                mov     edi, ebp
11173
                rol     edi, 0Ch
11174
                add     ecx, ebx
11175
                xor     ebp, edi
11176
                add     ebx, [esp+14h]
11177
                rol     edi, 9
11178
                xor     ebp, edi
11179
                mov     [esp+14h], ebx
11180
                add     ecx, ebp
11181
                mov     [esp+4], ecx
11182
                mov     ecx, [esp+18h]
11183
                mov     ebp, ebx
11184
                mov     edi, ebx
11185
                ror     ebp, 6
11186
                rol     edi, 7
11187
                xor     edi, ebp
11188
                ror     ebp, 5
11189
                xor     edi, ebp
11190
                mov     ebp, ecx
11191
                xor     ebp, edx
11192
                and     ebp, ebx
11193
                lea     eax, [edi+eax+106AA070h]
11194
                mov     edi, [esp+8]
11195
                xor     ebp, edx
11196
                add     eax, [esi+0BCh]
11197
                add     eax, ebp
11198
                mov     ebp, [esp+0Ch]
11199
                mov     ebx, edi
11200
                and     edi, ebp
11201
                or      ebx, ebp
11202
                mov     ebp, [esp+4]
11203
                and     ebx, ebp
11204
                ror     ebp, 2
11205
                or      ebx, edi
11206
                mov     edi, ebp
11207
                rol     edi, 0Ch
11208
                add     ebx, eax
11209
                xor     ebp, edi
11210
                add     eax, [esp+10h]
11211
                rol     edi, 9
11212
                xor     ebp, edi
11213
                mov     [esp+10h], eax
11214
                add     ebx, ebp
11215
                mov     [esp], ebx
11216
                mov     ebx, [esp+14h]
11217
                mov     ebp, eax
11218
                mov     edi, eax
11219
                ror     ebp, 6
11220
                rol     edi, 7
11221
                xor     edi, ebp
11222
                ror     ebp, 5
11223
                xor     edi, ebp
11224
                mov     ebp, ebx
11225
                xor     ebp, ecx
11226
                and     ebp, eax
11227
                lea     edx, [edi+edx+19A4C116h]
11228
                mov     edi, [esp+4]
11229
                xor     ebp, ecx
11230
                add     edx, [esi+0C0h]
11231
                add     edx, ebp
11232
                mov     ebp, [esp+8]
11233
                mov     eax, edi
11234
                and     edi, ebp
11235
                or      eax, ebp
11236
                mov     ebp, [esp]
11237
                and     eax, ebp
11238
                ror     ebp, 2
11239
                or      eax, edi
11240
                mov     edi, ebp
11241
                rol     edi, 0Ch
11242
                add     eax, edx
11243
                xor     ebp, edi
11244
                add     edx, [esp+0Ch]
11245
                rol     edi, 9
11246
                xor     ebp, edi
11247
                mov     [esp+0Ch], edx
11248
                add     eax, ebp
11249
                mov     [esp+1Ch], eax
11250
                mov     eax, [esp+10h]
11251
                mov     ebp, edx
11252
                mov     edi, edx
11253
                ror     ebp, 6
11254
                rol     edi, 7
11255
                xor     edi, ebp
11256
                ror     ebp, 5
11257
                xor     edi, ebp
11258
                mov     ebp, eax
11259
                xor     ebp, ebx
11260
                and     ebp, edx
11261
                lea     ecx, [edi+ecx+1E376C08h]
11262
                mov     edi, [esp]
11263
                xor     ebp, ebx
11264
                add     ecx, [esi+0C4h]
11265
                add     ecx, ebp
11266
                mov     ebp, [esp+4]
11267
                mov     edx, edi
11268
                and     edi, ebp
11269
                or      edx, ebp
11270
                mov     ebp, [esp+1Ch]
11271
                and     edx, ebp
11272
                ror     ebp, 2
11273
                or      edx, edi
11274
                mov     edi, ebp
11275
                rol     edi, 0Ch
11276
                add     edx, ecx
11277
                xor     ebp, edi
11278
                add     ecx, [esp+8]
11279
                rol     edi, 9
11280
                xor     ebp, edi
11281
                mov     [esp+8], ecx
11282
                add     edx, ebp
11283
                mov     [esp+18h], edx
11284
                mov     edx, [esp+0Ch]
11285
                mov     ebp, ecx
11286
                mov     edi, ecx
11287
                ror     ebp, 6
11288
                rol     edi, 7
11289
                xor     edi, ebp
11290
                ror     ebp, 5
11291
                xor     edi, ebp
11292
                mov     ebp, edx
11293
                xor     ebp, eax
11294
                and     ebp, ecx
11295
                lea     ebx, [edi+ebx+2748774Ch]
11296
                mov     edi, [esp+1Ch]
11297
                xor     ebp, eax
11298
                add     ebx, [esi+0C8h]
11299
                add     ebx, ebp
11300
                mov     ebp, [esp]
11301
                mov     ecx, edi
11302
                and     edi, ebp
11303
                or      ecx, ebp
11304
                mov     ebp, [esp+18h]
11305
                and     ecx, ebp
11306
                ror     ebp, 2
11307
                or      ecx, edi
11308
                mov     edi, ebp
11309
                rol     edi, 0Ch
11310
                add     ecx, ebx
11311
                xor     ebp, edi
11312
                add     ebx, [esp+4]
11313
                rol     edi, 9
11314
                xor     ebp, edi
11315
                mov     [esp+4], ebx
11316
                add     ecx, ebp
11317
                mov     [esp+14h], ecx
11318
                mov     ecx, [esp+8]
11319
                mov     ebp, ebx
11320
                mov     edi, ebx
11321
                ror     ebp, 6
11322
                rol     edi, 7
11323
                xor     edi, ebp
11324
                ror     ebp, 5
11325
                xor     edi, ebp
11326
                mov     ebp, ecx
11327
                xor     ebp, edx
11328
                and     ebp, ebx
11329
                lea     eax, [edi+eax+34B0BCB5h]
11330
                mov     edi, [esp+18h]
11331
                xor     ebp, edx
11332
                add     eax, [esi+0CCh]
11333
                add     eax, ebp
11334
                mov     ebp, [esp+1Ch]
11335
                mov     ebx, edi
11336
                and     edi, ebp
11337
                or      ebx, ebp
11338
                mov     ebp, [esp+14h]
11339
                and     ebx, ebp
11340
                ror     ebp, 2
11341
                or      ebx, edi
11342
                mov     edi, ebp
11343
                rol     edi, 0Ch
11344
                add     ebx, eax
11345
                xor     ebp, edi
11346
                add     eax, [esp]
11347
                rol     edi, 9
11348
                xor     ebp, edi
11349
                mov     [esp], eax
11350
                add     ebx, ebp
11351
                mov     [esp+10h], ebx
11352
                mov     ebx, [esp+4]
11353
                mov     ebp, eax
11354
                mov     edi, eax
11355
                ror     ebp, 6
11356
                rol     edi, 7
11357
                xor     edi, ebp
11358
                ror     ebp, 5
11359
                xor     edi, ebp
11360
                mov     ebp, ebx
11361
                xor     ebp, ecx
11362
                and     ebp, eax
11363
                lea     edx, [edi+edx+391C0CB3h]
11364
                mov     edi, [esp+14h]
11365
                xor     ebp, ecx
11366
                add     edx, [esi+0D0h]
11367
                add     edx, ebp
11368
                mov     ebp, [esp+18h]
11369
                mov     eax, edi
11370
                and     edi, ebp
11371
                or      eax, ebp
11372
                mov     ebp, [esp+10h]
11373
                and     eax, ebp
11374
                ror     ebp, 2
11375
                or      eax, edi
11376
                mov     edi, ebp
11377
                rol     edi, 0Ch
11378
                add     eax, edx
11379
                xor     ebp, edi
11380
                add     edx, [esp+1Ch]
11381
                rol     edi, 9
11382
                xor     ebp, edi
11383
                mov     [esp+1Ch], edx
11384
                add     eax, ebp
11385
                mov     [esp+0Ch], eax
11386
                mov     eax, [esp]
11387
                mov     ebp, edx
11388
                mov     edi, edx
11389
                ror     ebp, 6
11390
                rol     edi, 7
11391
                xor     edi, ebp
11392
                ror     ebp, 5
11393
                xor     edi, ebp
11394
                mov     ebp, eax
11395
                xor     ebp, ebx
11396
                and     ebp, edx
11397
                lea     ecx, [edi+ecx+4ED8AA4Ah]
11398
                mov     edi, [esp+10h]
11399
                xor     ebp, ebx
11400
                add     ecx, [esi+0D4h]
11401
                add     ecx, ebp
11402
                mov     ebp, [esp+14h]
11403
                mov     edx, edi
11404
                and     edi, ebp
11405
                or      edx, ebp
11406
                mov     ebp, [esp+0Ch]
11407
                and     edx, ebp
11408
                ror     ebp, 2
11409
                or      edx, edi
11410
                mov     edi, ebp
11411
                rol     edi, 0Ch
11412
                add     edx, ecx
11413
                xor     ebp, edi
11414
                add     ecx, [esp+18h]
11415
                rol     edi, 9
11416
                xor     ebp, edi
11417
                mov     [esp+18h], ecx
11418
                add     edx, ebp
11419
                mov     [esp+8], edx
11420
                mov     edx, [esp+1Ch]
11421
                mov     ebp, ecx
11422
                mov     edi, ecx
11423
                ror     ebp, 6
11424
                rol     edi, 7
11425
                xor     edi, ebp
11426
                ror     ebp, 5
11427
                xor     edi, ebp
11428
                mov     ebp, edx
11429
                xor     ebp, eax
11430
                and     ebp, ecx
11431
                lea     ebx, [edi+ebx+5B9CCA4Fh]
11432
                mov     edi, [esp+0Ch]
11433
                xor     ebp, eax
11434
                add     ebx, [esi+0D8h]
11435
                add     ebx, ebp
11436
                mov     ebp, [esp+10h]
11437
                mov     ecx, edi
11438
                and     edi, ebp
11439
                or      ecx, ebp
11440
                mov     ebp, [esp+8]
11441
                and     ecx, ebp
11442
                ror     ebp, 2
11443
                or      ecx, edi
11444
                mov     edi, ebp
11445
                rol     edi, 0Ch
11446
                add     ecx, ebx
11447
                xor     ebp, edi
11448
                add     ebx, [esp+14h]
11449
                rol     edi, 9
11450
                xor     ebp, edi
11451
                mov     [esp+14h], ebx
11452
                add     ecx, ebp
11453
                mov     [esp+4], ecx
11454
                mov     ecx, [esp+18h]
11455
                mov     ebp, ebx
11456
                mov     edi, ebx
11457
                ror     ebp, 6
11458
                rol     edi, 7
11459
                xor     edi, ebp
11460
                ror     ebp, 5
11461
                xor     edi, ebp
11462
                mov     ebp, ecx
11463
                xor     ebp, edx
11464
                and     ebp, ebx
11465
                lea     eax, [edi+eax+682E6FF3h]
11466
                mov     edi, [esp+8]
11467
                xor     ebp, edx
11468
                add     eax, [esi+0DCh]
11469
                add     eax, ebp
11470
                mov     ebp, [esp+0Ch]
11471
                mov     ebx, edi
11472
                and     edi, ebp
11473
                or      ebx, ebp
11474
                mov     ebp, [esp+4]
11475
                and     ebx, ebp
11476
                ror     ebp, 2
11477
                or      ebx, edi
11478
                mov     edi, ebp
11479
                rol     edi, 0Ch
11480
                add     ebx, eax
11481
                xor     ebp, edi
11482
                add     eax, [esp+10h]
11483
                rol     edi, 9
11484
                xor     ebp, edi
11485
                mov     [esp+10h], eax
11486
                add     ebx, ebp
11487
                mov     [esp], ebx
11488
                mov     ebx, [esp+14h]
11489
                mov     ebp, eax
11490
                mov     edi, eax
11491
                ror     ebp, 6
11492
                rol     edi, 7
11493
                xor     edi, ebp
11494
                ror     ebp, 5
11495
                xor     edi, ebp
11496
                mov     ebp, ebx
11497
                xor     ebp, ecx
11498
                and     ebp, eax
11499
                lea     edx, [edi+edx+748F82EEh]
11500
                mov     edi, [esp+4]
11501
                xor     ebp, ecx
11502
                add     edx, [esi+0E0h]
11503
                add     edx, ebp
11504
                mov     ebp, [esp+8]
11505
                mov     eax, edi
11506
                and     edi, ebp
11507
                or      eax, ebp
11508
                mov     ebp, [esp]
11509
                and     eax, ebp
11510
                ror     ebp, 2
11511
                or      eax, edi
11512
                mov     edi, ebp
11513
                rol     edi, 0Ch
11514
                add     eax, edx
11515
                xor     ebp, edi
11516
                add     edx, [esp+0Ch]
11517
                rol     edi, 9
11518
                xor     ebp, edi
11519
                mov     [esp+0Ch], edx
11520
                add     eax, ebp
11521
                mov     [esp+1Ch], eax
11522
                mov     eax, [esp+10h]
11523
                mov     ebp, edx
11524
                mov     edi, edx
11525
                ror     ebp, 6
11526
                rol     edi, 7
11527
                xor     edi, ebp
11528
                ror     ebp, 5
11529
                xor     edi, ebp
11530
                mov     ebp, eax
11531
                xor     ebp, ebx
11532
                and     ebp, edx
11533
                lea     ecx, [edi+ecx+78A5636Fh]
11534
                mov     edi, [esp]
11535
                xor     ebp, ebx
11536
                add     ecx, [esi+0E4h]
11537
                add     ecx, ebp
11538
                mov     ebp, [esp+4]
11539
                mov     edx, edi
11540
                and     edi, ebp
11541
                or      edx, ebp
11542
                mov     ebp, [esp+1Ch]
11543
                and     edx, ebp
11544
                ror     ebp, 2
11545
                or      edx, edi
11546
                mov     edi, ebp
11547
                rol     edi, 0Ch
11548
                add     edx, ecx
11549
                xor     ebp, edi
11550
                add     ecx, [esp+8]
11551
                rol     edi, 9
11552
                xor     ebp, edi
11553
                mov     [esp+8], ecx
11554
                add     edx, ebp
11555
                mov     [esp+18h], edx
11556
                mov     edx, [esp+0Ch]
11557
                mov     ebp, ecx
11558
                mov     edi, ecx
11559
                ror     ebp, 6
11560
                rol     edi, 7
11561
                xor     edi, ebp
11562
                ror     ebp, 5
11563
                xor     edi, ebp
11564
                mov     ebp, edx
11565
                xor     ebp, eax
11566
                and     ebp, ecx
11567
                lea     ebx, [edi+ebx-7B3787ECh]
11568
                mov     edi, [esp+1Ch]
11569
                xor     ebp, eax
11570
                add     ebx, [esi+0E8h]
11571
                add     ebx, ebp
11572
                mov     ebp, [esp]
11573
                mov     ecx, edi
11574
                and     edi, ebp
11575
                or      ecx, ebp
11576
                mov     ebp, [esp+18h]
11577
                and     ecx, ebp
11578
                ror     ebp, 2
11579
                or      ecx, edi
11580
                mov     edi, ebp
11581
                rol     edi, 0Ch
11582
                add     ecx, ebx
11583
                xor     ebp, edi
11584
                add     ebx, [esp+4]
11585
                rol     edi, 9
11586
                xor     ebp, edi
11587
                mov     [esp+4], ebx
11588
                add     ecx, ebp
11589
                mov     [esp+14h], ecx
11590
                mov     ecx, [esp+8]
11591
                mov     ebp, ebx
11592
                mov     edi, ebx
11593
                ror     ebp, 6
11594
                rol     edi, 7
11595
                xor     edi, ebp
11596
                ror     ebp, 5
11597
                xor     edi, ebp
11598
                mov     ebp, ecx
11599
                xor     ebp, edx
11600
                and     ebp, ebx
11601
                lea     eax, [edi+eax-7338FDF8h]
11602
                mov     edi, [esp+18h]
11603
                xor     ebp, edx
11604
                add     eax, [esi+0ECh]
11605
                add     eax, ebp
11606
                mov     ebp, [esp+1Ch]
11607
                mov     ebx, edi
11608
                and     edi, ebp
11609
                or      ebx, ebp
11610
                mov     ebp, [esp+14h]
11611
                and     ebx, ebp
11612
                ror     ebp, 2
11613
                or      ebx, edi
11614
                mov     edi, ebp
11615
                rol     edi, 0Ch
11616
                add     ebx, eax
11617
                xor     ebp, edi
11618
                add     eax, [esp]
11619
                rol     edi, 9
11620
                xor     ebp, edi
11621
                mov     [esp], eax
11622
                add     ebx, ebp
11623
                mov     [esp+10h], ebx
11624
                mov     ebx, [esp+4]
11625
                mov     ebp, eax
11626
                mov     edi, eax
11627
                ror     ebp, 6
11628
                rol     edi, 7
11629
                xor     edi, ebp
11630
                ror     ebp, 5
11631
                xor     edi, ebp
11632
                mov     ebp, ebx
11633
                xor     ebp, ecx
11634
                and     ebp, eax
11635
                lea     edx, [edi+edx-6F410006h]
11636
                mov     edi, [esp+14h]
11637
                xor     ebp, ecx
11638
                add     edx, [esi+0F0h]
11639
                add     edx, ebp
11640
                mov     ebp, [esp+18h]
11641
                mov     eax, edi
11642
                and     edi, ebp
11643
                or      eax, ebp
11644
                mov     ebp, [esp+10h]
11645
                and     eax, ebp
11646
                ror     ebp, 2
11647
                or      eax, edi
11648
                mov     edi, ebp
11649
                rol     edi, 0Ch
11650
                add     eax, edx
11651
                xor     ebp, edi
11652
                add     edx, [esp+1Ch]
11653
                rol     edi, 9
11654
                xor     ebp, edi
11655
                mov     [esp+1Ch], edx
11656
                add     eax, ebp
11657
                mov     [esp+0Ch], eax
11658
                mov     eax, [esp]
11659
                mov     ebp, edx
11660
                mov     edi, edx
11661
                ror     ebp, 6
11662
                rol     edi, 7
11663
                xor     edi, ebp
11664
                ror     ebp, 5
11665
                xor     edi, ebp
11666
                mov     ebp, eax
11667
                xor     ebp, ebx
11668
                and     ebp, edx
11669
                lea     ecx, [edi+ecx-5BAF9315h]
11670
                mov     edi, [esp+10h]
11671
                xor     ebp, ebx
11672
                add     ecx, [esi+0F4h]
11673
                add     ecx, ebp
11674
                mov     ebp, [esp+14h]
11675
                mov     edx, edi
11676
                and     edi, ebp
11677
                or      edx, ebp
11678
                mov     ebp, [esp+0Ch]
11679
                and     edx, ebp
11680
                ror     ebp, 2
11681
                or      edx, edi
11682
                mov     edi, ebp
11683
                rol     edi, 0Ch
11684
                add     edx, ecx
11685
                xor     ebp, edi
11686
                add     ecx, [esp+18h]
11687
                rol     edi, 9
11688
                xor     ebp, edi
11689
                mov     [esp+18h], ecx
11690
                add     edx, ebp
11691
                mov     [esp+8], edx
11692
                mov     edx, [esp+1Ch]
11693
                mov     ebp, ecx
11694
                mov     edi, ecx
11695
                ror     ebp, 6
11696
                rol     edi, 7
11697
                xor     edi, ebp
11698
                ror     ebp, 5
11699
                xor     edi, ebp
11700
                mov     ebp, edx
11701
                xor     ebp, eax
11702
                and     ebp, ecx
11703
                lea     ebx, [edi+ebx-41065C09h]
11704
                mov     edi, [esp+0Ch]
11705
                xor     ebp, eax
11706
                add     ebx, [esi+0F8h]
11707
                add     ebx, ebp
11708
                mov     ebp, [esp+10h]
11709
                mov     ecx, edi
11710
                and     edi, ebp
11711
                or      ecx, ebp
11712
                mov     ebp, [esp+8]
11713
                and     ecx, ebp
11714
                ror     ebp, 2
11715
                or      ecx, edi
11716
                mov     edi, ebp
11717
                rol     edi, 0Ch
11718
                add     ecx, ebx
11719
                xor     ebp, edi
11720
                add     ebx, [esp+14h]
11721
                rol     edi, 9
11722
                xor     ebp, edi
11723
                mov     [esp+14h], ebx
11724
                add     ecx, ebp
11725
                mov     [esp+4], ecx
11726
                mov     ecx, [esp+18h]
11727
                mov     ebp, ebx
11728
                mov     edi, ebx
11729
                ror     ebp, 6
11730
                rol     edi, 7
11731
                xor     edi, ebp
11732
                ror     ebp, 5
11733
                xor     edi, ebp
11734
                mov     ebp, ecx
11735
                xor     ebp, edx
11736
                and     ebp, ebx
11737
                lea     eax, [edi+eax-398E870Eh]
11738
                mov     edi, [esp+8]
11739
                xor     ebp, edx
11740
                add     eax, [esi+0FCh]
11741
                add     eax, ebp
11742
                mov     ebp, [esp+0Ch]
11743
                mov     ebx, edi
11744
                and     edi, ebp
11745
                or      ebx, ebp
11746
                mov     ebp, [esp+4]
11747
                and     ebx, ebp
11748
                ror     ebp, 2
11749
                or      ebx, edi
11750
                mov     edi, ebp
11751
                rol     edi, 0Ch
11752
                add     ebx, eax
11753
                xor     ebp, edi
11754
                add     eax, [esp+10h]
11755
                rol     edi, 9
11756
                xor     ebp, edi
11757
                mov     [esp+10h], eax
11758
                add     ebx, ebp
11759
                mov     [esp], ebx
11760
                mov     ebx, [esp+14h]
11761
                mov     edi, [esp+24h]
11762
                add     [edi+10h], eax
11763
                add     [edi+14h], ebx
11764
                add     [edi+18h], ecx
11765
                add     [edi+1Ch], edx
11766
                mov     eax, [esp]
11767
                mov     ebx, [esp+4]
11768
                mov     ecx, [esp+8]
11769
                mov     edx, [esp+0Ch]
11770
                mov     ebp, [esp+28h]
11771
                add     [edi], eax
11772
                add     [edi+4], ebx
11773
                mov     esp, ebp
11774
                add     [edi+8], ecx
11775
                add     [edi+0Ch], edx
11776
                pop     ebp
11777
                pop     edi
11778
                pop     esi
11779
                pop     ebx
11780
  end;
11781
end;
11782
{$ENDIF}
11783
11784
{$IFDEF THash_SHA384_asm}
11785
procedure SHA384Buffer(S, D: Pointer);
11786
asm
11787
                push ebx
11788
                push edi
11789
                mov  edi, eax
11790
                push esi
11791
                mov  esi, edx
11792
11793
                mov     eax, [esi]
11794
                mov     ebx, [esi+4]
11795
                bswap   eax
11796
                bswap   ebx
11797
                mov     ecx, [esi+8]
11798
                mov     edx, [esi+0Ch]
11799
                bswap   ecx
11800
                bswap   edx
11801
                mov     [edi], ebx
11802
                mov     [edi+4], eax
11803
                mov     [edi+8], edx
11804
                mov     [edi+0Ch], ecx
11805
                mov     eax, [esi+10h]
11806
                mov     ebx, [esi+14h]
11807
                bswap   eax
11808
                bswap   ebx
11809
                mov     ecx, [esi+18h]
11810
                mov     edx, [esi+1Ch]
11811
                bswap   ecx
11812
                bswap   edx
11813
                mov     [edi+10h], ebx
11814
                mov     [edi+14h], eax
11815
                mov     [edi+18h], edx
11816
                mov     [edi+1Ch], ecx
11817
                mov     eax, [esi+20h]
11818
                mov     ebx, [esi+24h]
11819
                bswap   eax
11820
                bswap   ebx
11821
                mov     ecx, [esi+28h]
11822
                mov     edx, [esi+2Ch]
11823
                bswap   ecx
11824
                bswap   edx
11825
                mov     [edi+20h], ebx
11826
                mov     [edi+24h], eax
11827
                mov     [edi+28h], edx
11828
                mov     [edi+2Ch], ecx
11829
                mov     eax, [esi+30h]
11830
                mov     ebx, [esi+34h]
11831
                bswap   eax
11832
                bswap   ebx
11833
                mov     ecx, [esi+38h]
11834
                mov     edx, [esi+3Ch]
11835
                bswap   ecx
11836
                bswap   edx
11837
                mov     [edi+30h], ebx
11838
                mov     [edi+34h], eax
11839
                mov     [edi+38h], edx
11840
                mov     [edi+3Ch], ecx
11841
11842
                pop  esi
11843
                pop  edi
11844
                pop  ebx
11845
end;
11846
11847
procedure THash_SHA384.DoTransform(Buffer: PUInt32Array);
11848
var
11849
  W: array [0..159] of LongWord;
11850
begin
11851
  // swap first 16 uint64
11852
  SHA384Buffer(@W[0],  @Buffer[0]);
11853
  SHA384Buffer(Pointer(LongInt(@W[0]) + 16*4), Pointer(LongInt(@Buffer[0]) + 16*4));
11854
  asm
11855
                push    ebx
11856
                push    esi
11857
                push    edi
11858
                push    ebp
11859
11860
                mov     eax, Self
11861
                lea     edi, [eax].THash_SHA512.FDigest
11862
                lea     esi, W
11863
                lea     ebp, SHA_512K
11864
11865
                sub     esp, 60h
11866
                mov     [esp+54h], ebp
11867
                mov     [esp+5Ch], edi
11868
                mov     [esp+58h], esi
11869
                mov     dword ptr [esp+50h], 10h
11870
11871
            @@buffexpand_loop:
11872
                mov     ebp, [esi+8]
11873
                mov     eax, [esi+0Ch]
11874
                mov     ecx, ebp
11875
                mov     edi, eax
11876
                shl     eax, 18h
11877
                mov     edx, edi
11878
                shr     ecx, 1
11879
                mov     ebx, eax
11880
                shl     edx, 1Fh
11881
                shl     ebx, 1
11882
                or      edx, ecx
11883
                shr     ecx, 6
11884
                or      ebx, ecx
11885
                shr     ecx, 1
11886
                xor     edx, ebx
11887
                shl     ebp, 18h
11888
                or      eax, ecx
11889
                shr     edi, 1
11890
                mov     ecx, ebp
11891
                shl     ecx, 7
11892
                or      ecx, edi
11893
                shr     edi, 6
11894
                xor     edx, eax
11895
                xor     ecx, edi
11896
                mov     [esp+40h], edx
11897
                shr     edi, 1
11898
                or      ebp, edi
11899
                xor     ecx, ebp
11900
                mov     ebp, [esi+70h]
11901
                mov     edi, [esi+74h]
11902
                mov     [esp+44h], ecx
11903
                mov     ecx, ebp
11904
                mov     edx, edi
11905
                shl     ecx, 3
11906
                mov     eax, ebp
11907
                shr     edx, 1Dh
11908
                mov     ebx, edi
11909
                shr     eax, 6
11910
                or      edx, ecx
11911
                shl     ebx, 1Ah
11912
                or      eax, ebx
11913
                mov     ebx, edi
11914
                xor     edx, eax
11915
                shr     eax, 0Dh
11916
                mov     ecx, ebp
11917
                shl     ebx, 0Dh
11918
                or      eax, ebx
11919
                shr     ecx, 1Dh
11920
                xor     eax, edx
11921
                mov     edx, edi
11922
                shl     edx, 3
11923
                shr     edi, 6
11924
                or      edx, ecx
11925
                xor     edx, edi
11926
                shr     edi, 0Dh
11927
                mov     ecx, eax
11928
                shl     ebp, 0Dh
11929
                mov     eax, [esp+40h]
11930
                or      edi, ebp
11931
                mov     ebx, [esp+44h]
11932
                xor     edx, edi
11933
                mov     ebp, [esi]
11934
                mov     edi, [esi+4]
11935
                add     eax, ecx
11936
                adc     ebx, edx
11937
                add     eax, ebp
11938
                adc     ebx, edi
11939
                mov     ebp, [esi+48h]
11940
                mov     edi, [esi+4Ch]
11941
                add     eax, ebp
11942
                adc     ebx, edi
11943
                mov     [esi+80h], eax
11944
                mov     [esi+84h], ebx
11945
                mov     ebp, [esi+10h]
11946
                mov     eax, [esi+14h]
11947
                mov     ecx, ebp
11948
                mov     edi, eax
11949
                shl     eax, 18h
11950
                mov     edx, edi
11951
                shr     ecx, 1
11952
                mov     ebx, eax
11953
                shl     edx, 1Fh
11954
                shl     ebx, 1
11955
                or      edx, ecx
11956
                shr     ecx, 6
11957
                or      ebx, ecx
11958
                shr     ecx, 1
11959
                xor     edx, ebx
11960
                shl     ebp, 18h
11961
                or      eax, ecx
11962
                shr     edi, 1
11963
                mov     ecx, ebp
11964
                shl     ecx, 7
11965
                or      ecx, edi
11966
                shr     edi, 6
11967
                xor     edx, eax
11968
                xor     ecx, edi
11969
                mov     [esp+40h], edx
11970
                shr     edi, 1
11971
                or      ebp, edi
11972
                xor     ecx, ebp
11973
                mov     ebp, [esi+78h]
11974
                mov     edi, [esi+7Ch]
11975
                mov     [esp+44h], ecx
11976
                mov     ecx, ebp
11977
                mov     edx, edi
11978
                shl     ecx, 3
11979
                mov     eax, ebp
11980
                shr     edx, 1Dh
11981
                mov     ebx, edi
11982
                shr     eax, 6
11983
                or      edx, ecx
11984
                shl     ebx, 1Ah
11985
                or      eax, ebx
11986
                mov     ebx, edi
11987
                xor     edx, eax
11988
                shr     eax, 0Dh
11989
                mov     ecx, ebp
11990
                shl     ebx, 0Dh
11991
                or      eax, ebx
11992
                shr     ecx, 1Dh
11993
                xor     eax, edx
11994
                mov     edx, edi
11995
                shl     edx, 3
11996
                shr     edi, 6
11997
                or      edx, ecx
11998
                xor     edx, edi
11999
                shr     edi, 0Dh
12000
                mov     ecx, eax
12001
                shl     ebp, 0Dh
12002
                mov     eax, [esp+40h]
12003
                or      edi, ebp
12004
                mov     ebx, [esp+44h]
12005
                xor     edx, edi
12006
                mov     ebp, [esi+8]
12007
                mov     edi, [esi+0Ch]
12008
                add     eax, ecx
12009
                adc     ebx, edx
12010
                add     eax, ebp
12011
                adc     ebx, edi
12012
                mov     ebp, [esi+50h]
12013
                mov     edi, [esi+54h]
12014
                add     eax, ebp
12015
                adc     ebx, edi
12016
                mov     [esi+88h], eax
12017
                mov     [esi+8Ch], ebx
12018
                add     esi, 10h
12019
                add     dword ptr [esp+50h], 2
12020
                cmp     dword ptr [esp+50h], 50h
12021
                jnz     @@buffexpand_loop
12022
                mov     edi, [esp+5Ch]
12023
                mov     esi, [esp+58h]
12024
                mov     eax, [edi]
12025
                mov     ebx, [edi+4]
12026
                mov     ecx, [edi+8]
12027
                mov     edx, [edi+0Ch]
12028
                mov     [esp], eax
12029
                mov     [esp+4], ebx
12030
                mov     [esp+8], ecx
12031
                mov     [esp+0Ch], edx
12032
                mov     eax, [edi+10h]
12033
                mov     ebx, [edi+14h]
12034
                mov     ecx, [edi+18h]
12035
                mov     edx, [edi+1Ch]
12036
                mov     [esp+10h], eax
12037
                mov     [esp+14h], ebx
12038
                mov     [esp+18h], ecx
12039
                mov     [esp+1Ch], edx
12040
                mov     eax, [edi+20h]
12041
                mov     ebx, [edi+24h]
12042
                mov     ecx, [edi+28h]
12043
                mov     edx, [edi+2Ch]
12044
                mov     [esp+20h], eax
12045
                mov     [esp+24h], ebx
12046
                mov     [esp+28h], ecx
12047
                mov     [esp+2Ch], edx
12048
                mov     eax, [edi+30h]
12049
                mov     ebx, [edi+34h]
12050
                mov     ecx, [edi+38h]
12051
                mov     edx, [edi+3Ch]
12052
                mov     [esp+30h], eax
12053
                mov     [esp+34h], ebx
12054
                xor     eax, eax
12055
                mov     [esp+38h], ecx
12056
                mov     [esp+3Ch], edx
12057
                mov     [esp+50h], eax
12058
12059
            @@body_loop:
12060
                mov     eax, [esp+20h]
12061
                mov     ebx, [esp+24h]
12062
                mov     ecx, eax
12063
                mov     edx, ebx
12064
                shr     ecx, 0Eh
12065
                mov     ebp, eax
12066
                shl     edx, 12h
12067
                mov     edi, ebx
12068
                shr     ebp, 12h
12069
                or      ecx, edx
12070
                shl     edi, 0Eh
12071
                or      ebp, edi
12072
                mov     edx, ebx
12073
                xor     ebp, ecx
12074
                mov     ecx, eax
12075
                shl     ecx, 17h
12076
                shr     edx, 9
12077
                or      ecx, edx
12078
                mov     edx, eax
12079
                xor     ebp, ecx
12080
                mov     ecx, ebx
12081
                mov     [esp+40h], ebp
12082
                shr     ecx, 0Eh
12083
                mov     ebp, ebx
12084
                shl     edx, 12h
12085
                mov     edi, eax
12086
                shr     ebp, 12h
12087
                or      ecx, edx
12088
                shl     edi, 0Eh
12089
                or      ebp, edi
12090
                mov     edx, eax
12091
                xor     ebp, ecx
12092
                mov     ecx, ebx
12093
                shl     ecx, 17h
12094
                shr     edx, 9
12095
                or      ecx, edx
12096
                mov     edx, [esp+2Ch]
12097
                xor     ebp, ecx
12098
                mov     ecx, [esp+28h]
12099
                mov     [esp+44h], ebp
12100
                mov     ebp, [esp+30h]
12101
                mov     edi, [esp+34h]
12102
                xor     ecx, ebp
12103
                xor     edx, edi
12104
                and     ecx, eax
12105
                and     edx, ebx
12106
                xor     ecx, ebp
12107
                xor     edx, edi
12108
                add     ecx, [esp+40h]
12109
                mov     eax, [esp+38h]
12110
                adc     edx, [esp+44h]
12111
                mov     ebx, [esp+3Ch]
12112
                add     ecx, eax
12113
                mov     edi, [esp+50h]
12114
                adc     edx, ebx
12115
                mov     ebp, [esp+54h]
12116
                shl     edi, 3
12117
                add     edi, 0
12118
                shl     edi, 3
12119
                mov     eax, [edi+ebp]
12120
                mov     ebx, [edi+ebp+4]
12121
                add     ecx, eax
12122
                mov     eax, [esi+edi]
12123
                adc     edx, ebx
12124
                mov     ebx, [esi+edi+4]
12125
                add     ecx, eax
12126
                mov     eax, [esp]
12127
                adc     edx, ebx
12128
                mov     ebx, [esp+4]
12129
                mov     [esp+40h], ecx
12130
                mov     [esp+44h], edx
12131
                mov     ecx, eax
12132
                mov     edx, ebx
12133
                shr     ecx, 1Ch
12134
                mov     ebp, eax
12135
                shl     edx, 4
12136
                mov     edi, ebx
12137
                shl     ebp, 1Eh
12138
                or      ecx, edx
12139
                shr     edi, 2
12140
                or      ebp, edi
12141
                mov     edx, ebx
12142
                xor     ebp, ecx
12143
                mov     ecx, eax
12144
                shr     edx, 7
12145
                shl     ecx, 19h
12146
                or      ecx, edx
12147
                mov     edx, eax
12148
                xor     ebp, ecx
12149
                mov     ecx, ebx
12150
                mov     [esp+48h], ebp
12151
                shr     ecx, 1Ch
12152
                mov     ebp, ebx
12153
                shl     edx, 4
12154
                mov     edi, eax
12155
                shl     ebp, 1Eh
12156
                or      ecx, edx
12157
                shr     edi, 2
12158
                or      ebp, edi
12159
                mov     edx, eax
12160
                xor     ebp, ecx
12161
                mov     ecx, ebx
12162
                shl     ecx, 19h
12163
                shr     edx, 7
12164
                or      ecx, edx
12165
                mov     edx, [esp+0Ch]
12166
                xor     ebp, ecx
12167
                mov     ecx, [esp+8]
12168
                mov     [esp+4Ch], ebp
12169
                mov     ebp, [esp+10h]
12170
                mov     edi, [esp+14h]
12171
                or      ecx, ebp
12172
                or      edx, edi
12173
                and     eax, ecx
12174
                and     ebx, edx
12175
                mov     ecx, [esp+8]
12176
                mov     edx, [esp+0Ch]
12177
                and     ebp, ecx
12178
                and     edi, edx
12179
                or      eax, ebp
12180
                or      ebx, edi
12181
                mov     ecx, [esp+48h]
12182
                mov     edx, [esp+4Ch]
12183
                add     eax, ecx
12184
                mov     ebp, [esp+40h]
12185
                adc     ebx, edx
12186
                mov     ecx, [esp+18h]
12187
                mov     edx, [esp+1Ch]
12188
                mov     edi, [esp+44h]
12189
                add     ecx, ebp
12190
                adc     edx, edi
12191
                mov     [esp+18h], ecx
12192
                mov     [esp+1Ch], edx
12193
                add     ebp, eax
12194
                adc     edi, ebx
12195
                mov     [esp+38h], ebp
12196
                mov     [esp+3Ch], edi
12197
                mov     eax, [esp+18h]
12198
                mov     ebx, [esp+1Ch]
12199
                mov     ecx, eax
12200
                mov     edx, ebx
12201
                shr     ecx, 0Eh
12202
                mov     ebp, eax
12203
                shl     edx, 12h
12204
                mov     edi, ebx
12205
                shr     ebp, 12h
12206
                or      ecx, edx
12207
                shl     edi, 0Eh
12208
                or      ebp, edi
12209
                mov     edx, ebx
12210
                xor     ebp, ecx
12211
                mov     ecx, eax
12212
                shl     ecx, 17h
12213
                shr     edx, 9
12214
                or      ecx, edx
12215
                mov     edx, eax
12216
                xor     ebp, ecx
12217
                mov     ecx, ebx
12218
                mov     [esp+40h], ebp
12219
                shr     ecx, 0Eh
12220
                mov     ebp, ebx
12221
                shl     edx, 12h
12222
                mov     edi, eax
12223
                shr     ebp, 12h
12224
                or      ecx, edx
12225
                shl     edi, 0Eh
12226
                or      ebp, edi
12227
                mov     edx, eax
12228
                xor     ebp, ecx
12229
                mov     ecx, ebx
12230
                shl     ecx, 17h
12231
                shr     edx, 9
12232
                or      ecx, edx
12233
                mov     edx, [esp+24h]
12234
                xor     ebp, ecx
12235
                mov     ecx, [esp+20h]
12236
                mov     [esp+44h], ebp
12237
                mov     ebp, [esp+28h]
12238
                mov     edi, [esp+2Ch]
12239
                xor     ecx, ebp
12240
                xor     edx, edi
12241
                and     ecx, eax
12242
                and     edx, ebx
12243
                xor     ecx, ebp
12244
                xor     edx, edi
12245
                add     ecx, [esp+40h]
12246
                mov     eax, [esp+30h]
12247
                adc     edx, [esp+44h]
12248
                mov     ebx, [esp+34h]
12249
                add     ecx, eax
12250
                mov     edi, [esp+50h]
12251
                adc     edx, ebx
12252
                mov     ebp, [esp+54h]
12253
                shl     edi, 3
12254
                add     edi, 1
12255
                shl     edi, 3
12256
                mov     eax, [edi+ebp]
12257
                mov     ebx, [edi+ebp+4]
12258
                add     ecx, eax
12259
                mov     eax, [esi+edi]
12260
                adc     edx, ebx
12261
                mov     ebx, [esi+edi+4]
12262
                add     ecx, eax
12263
                mov     eax, [esp+38h]
12264
                adc     edx, ebx
12265
                mov     ebx, [esp+3Ch]
12266
                mov     [esp+40h], ecx
12267
                mov     [esp+44h], edx
12268
                mov     ecx, eax
12269
                mov     edx, ebx
12270
                shr     ecx, 1Ch
12271
                mov     ebp, eax
12272
                shl     edx, 4
12273
                mov     edi, ebx
12274
                shl     ebp, 1Eh
12275
                or      ecx, edx
12276
                shr     edi, 2
12277
                or      ebp, edi
12278
                mov     edx, ebx
12279
                xor     ebp, ecx
12280
                mov     ecx, eax
12281
                shr     edx, 7
12282
                shl     ecx, 19h
12283
                or      ecx, edx
12284
                mov     edx, eax
12285
                xor     ebp, ecx
12286
                mov     ecx, ebx
12287
                mov     [esp+48h], ebp
12288
                shr     ecx, 1Ch
12289
                mov     ebp, ebx
12290
                shl     edx, 4
12291
                mov     edi, eax
12292
                shl     ebp, 1Eh
12293
                or      ecx, edx
12294
                shr     edi, 2
12295
                or      ebp, edi
12296
                mov     edx, eax
12297
                xor     ebp, ecx
12298
                mov     ecx, ebx
12299
                shl     ecx, 19h
12300
                shr     edx, 7
12301
                or      ecx, edx
12302
                mov     edx, [esp+4]
12303
                xor     ebp, ecx
12304
                mov     ecx, [esp]
12305
                mov     [esp+4Ch], ebp
12306
                mov     ebp, [esp+8]
12307
                mov     edi, [esp+0Ch]
12308
                or      ecx, ebp
12309
                or      edx, edi
12310
                and     eax, ecx
12311
                and     ebx, edx
12312
                mov     ecx, [esp]
12313
                mov     edx, [esp+4]
12314
                and     ebp, ecx
12315
                and     edi, edx
12316
                or      eax, ebp
12317
                or      ebx, edi
12318
                mov     ecx, [esp+48h]
12319
                mov     edx, [esp+4Ch]
12320
                add     eax, ecx
12321
                mov     ebp, [esp+40h]
12322
                adc     ebx, edx
12323
                mov     ecx, [esp+10h]
12324
                mov     edx, [esp+14h]
12325
                mov     edi, [esp+44h]
12326
                add     ecx, ebp
12327
                adc     edx, edi
12328
                mov     [esp+10h], ecx
12329
                mov     [esp+14h], edx
12330
                add     ebp, eax
12331
                adc     edi, ebx
12332
                mov     [esp+30h], ebp
12333
                mov     [esp+34h], edi
12334
                mov     eax, [esp+10h]
12335
                mov     ebx, [esp+14h]
12336
                mov     ecx, eax
12337
                mov     edx, ebx
12338
                shr     ecx, 0Eh
12339
                mov     ebp, eax
12340
                shl     edx, 12h
12341
                mov     edi, ebx
12342
                shr     ebp, 12h
12343
                or      ecx, edx
12344
                shl     edi, 0Eh
12345
                or      ebp, edi
12346
                mov     edx, ebx
12347
                xor     ebp, ecx
12348
                mov     ecx, eax
12349
                shl     ecx, 17h
12350
                shr     edx, 9
12351
                or      ecx, edx
12352
                mov     edx, eax
12353
                xor     ebp, ecx
12354
                mov     ecx, ebx
12355
                mov     [esp+40h], ebp
12356
                shr     ecx, 0Eh
12357
                mov     ebp, ebx
12358
                shl     edx, 12h
12359
                mov     edi, eax
12360
                shr     ebp, 12h
12361
                or      ecx, edx
12362
                shl     edi, 0Eh
12363
                or      ebp, edi
12364
                mov     edx, eax
12365
                xor     ebp, ecx
12366
                mov     ecx, ebx
12367
                shl     ecx, 17h
12368
                shr     edx, 9
12369
                or      ecx, edx
12370
                mov     edx, [esp+1Ch]
12371
                xor     ebp, ecx
12372
                mov     ecx, [esp+18h]
12373
                mov     [esp+44h], ebp
12374
                mov     ebp, [esp+20h]
12375
                mov     edi, [esp+24h]
12376
                xor     ecx, ebp
12377
                xor     edx, edi
12378
                and     ecx, eax
12379
                and     edx, ebx
12380
                xor     ecx, ebp
12381
                xor     edx, edi
12382
                add     ecx, [esp+40h]
12383
                mov     eax, [esp+28h]
12384
                adc     edx, [esp+44h]
12385
                mov     ebx, [esp+2Ch]
12386
                add     ecx, eax
12387
                mov     edi, [esp+50h]
12388
                adc     edx, ebx
12389
                mov     ebp, [esp+54h]
12390
                shl     edi, 3
12391
                add     edi, 2
12392
                shl     edi, 3
12393
                mov     eax, [edi+ebp]
12394
                mov     ebx, [edi+ebp+4]
12395
                add     ecx, eax
12396
                mov     eax, [esi+edi]
12397
                adc     edx, ebx
12398
                mov     ebx, [esi+edi+4]
12399
                add     ecx, eax
12400
                mov     eax, [esp+30h]
12401
                adc     edx, ebx
12402
                mov     ebx, [esp+34h]
12403
                mov     [esp+40h], ecx
12404
                mov     [esp+44h], edx
12405
                mov     ecx, eax
12406
                mov     edx, ebx
12407
                shr     ecx, 1Ch
12408
                mov     ebp, eax
12409
                shl     edx, 4
12410
                mov     edi, ebx
12411
                shl     ebp, 1Eh
12412
                or      ecx, edx
12413
                shr     edi, 2
12414
                or      ebp, edi
12415
                mov     edx, ebx
12416
                xor     ebp, ecx
12417
                mov     ecx, eax
12418
                shr     edx, 7
12419
                shl     ecx, 19h
12420
                or      ecx, edx
12421
                mov     edx, eax
12422
                xor     ebp, ecx
12423
                mov     ecx, ebx
12424
                mov     [esp+48h], ebp
12425
                shr     ecx, 1Ch
12426
                mov     ebp, ebx
12427
                shl     edx, 4
12428
                mov     edi, eax
12429
                shl     ebp, 1Eh
12430
                or      ecx, edx
12431
                shr     edi, 2
12432
                or      ebp, edi
12433
                mov     edx, eax
12434
                xor     ebp, ecx
12435
                mov     ecx, ebx
12436
                shl     ecx, 19h
12437
                shr     edx, 7
12438
                or      ecx, edx
12439
                mov     edx, [esp+3Ch]
12440
                xor     ebp, ecx
12441
                mov     ecx, [esp+38h]
12442
                mov     [esp+4Ch], ebp
12443
                mov     ebp, [esp]
12444
                mov     edi, [esp+4]
12445
                or      ecx, ebp
12446
                or      edx, edi
12447
                and     eax, ecx
12448
                and     ebx, edx
12449
                mov     ecx, [esp+38h]
12450
                mov     edx, [esp+3Ch]
12451
                and     ebp, ecx
12452
                and     edi, edx
12453
                or      eax, ebp
12454
                or      ebx, edi
12455
                mov     ecx, [esp+48h]
12456
                mov     edx, [esp+4Ch]
12457
                add     eax, ecx
12458
                mov     ebp, [esp+40h]
12459
                adc     ebx, edx
12460
                mov     ecx, [esp+8]
12461
                mov     edx, [esp+0Ch]
12462
                mov     edi, [esp+44h]
12463
                add     ecx, ebp
12464
                adc     edx, edi
12465
                mov     [esp+8], ecx
12466
                mov     [esp+0Ch], edx
12467
                add     ebp, eax
12468
                adc     edi, ebx
12469
                mov     [esp+28h], ebp
12470
                mov     [esp+2Ch], edi
12471
                mov     eax, [esp+8]
12472
                mov     ebx, [esp+0Ch]
12473
                mov     ecx, eax
12474
                mov     edx, ebx
12475
                shr     ecx, 0Eh
12476
                mov     ebp, eax
12477
                shl     edx, 12h
12478
                mov     edi, ebx
12479
                shr     ebp, 12h
12480
                or      ecx, edx
12481
                shl     edi, 0Eh
12482
                or      ebp, edi
12483
                mov     edx, ebx
12484
                xor     ebp, ecx
12485
                mov     ecx, eax
12486
                shl     ecx, 17h
12487
                shr     edx, 9
12488
                or      ecx, edx
12489
                mov     edx, eax
12490
                xor     ebp, ecx
12491
                mov     ecx, ebx
12492
                mov     [esp+40h], ebp
12493
                shr     ecx, 0Eh
12494
                mov     ebp, ebx
12495
                shl     edx, 12h
12496
                mov     edi, eax
12497
                shr     ebp, 12h
12498
                or      ecx, edx
12499
                shl     edi, 0Eh
12500
                or      ebp, edi
12501
                mov     edx, eax
12502
                xor     ebp, ecx
12503
                mov     ecx, ebx
12504
                shl     ecx, 17h
12505
                shr     edx, 9
12506
                or      ecx, edx
12507
                mov     edx, [esp+14h]
12508
                xor     ebp, ecx
12509
                mov     ecx, [esp+10h]
12510
                mov     [esp+44h], ebp
12511
                mov     ebp, [esp+18h]
12512
                mov     edi, [esp+1Ch]
12513
                xor     ecx, ebp
12514
                xor     edx, edi
12515
                and     ecx, eax
12516
                and     edx, ebx
12517
                xor     ecx, ebp
12518
                xor     edx, edi
12519
                add     ecx, [esp+40h]
12520
                mov     eax, [esp+20h]
12521
                adc     edx, [esp+44h]
12522
                mov     ebx, [esp+24h]
12523
                add     ecx, eax
12524
                mov     edi, [esp+50h]
12525
                adc     edx, ebx
12526
                mov     ebp, [esp+54h]
12527
                shl     edi, 3
12528
                add     edi, 3
12529
                shl     edi, 3
12530
                mov     eax, [edi+ebp]
12531
                mov     ebx, [edi+ebp+4]
12532
                add     ecx, eax
12533
                mov     eax, [esi+edi]
12534
                adc     edx, ebx
12535
                mov     ebx, [esi+edi+4]
12536
                add     ecx, eax
12537
                mov     eax, [esp+28h]
12538
                adc     edx, ebx
12539
                mov     ebx, [esp+2Ch]
12540
                mov     [esp+40h], ecx
12541
                mov     [esp+44h], edx
12542
                mov     ecx, eax
12543
                mov     edx, ebx
12544
                shr     ecx, 1Ch
12545
                mov     ebp, eax
12546
                shl     edx, 4
12547
                mov     edi, ebx
12548
                shl     ebp, 1Eh
12549
                or      ecx, edx
12550
                shr     edi, 2
12551
                or      ebp, edi
12552
                mov     edx, ebx
12553
                xor     ebp, ecx
12554
                mov     ecx, eax
12555
                shr     edx, 7
12556
                shl     ecx, 19h
12557
                or      ecx, edx
12558
                mov     edx, eax
12559
                xor     ebp, ecx
12560
                mov     ecx, ebx
12561
                mov     [esp+48h], ebp
12562
                shr     ecx, 1Ch
12563
                mov     ebp, ebx
12564
                shl     edx, 4
12565
                mov     edi, eax
12566
                shl     ebp, 1Eh
12567
                or      ecx, edx
12568
                shr     edi, 2
12569
                or      ebp, edi
12570
                mov     edx, eax
12571
                xor     ebp, ecx
12572
                mov     ecx, ebx
12573
                shl     ecx, 19h
12574
                shr     edx, 7
12575
                or      ecx, edx
12576
                mov     edx, [esp+34h]
12577
                xor     ebp, ecx
12578
                mov     ecx, [esp+30h]
12579
                mov     [esp+4Ch], ebp
12580
                mov     ebp, [esp+38h]
12581
                mov     edi, [esp+3Ch]
12582
                or      ecx, ebp
12583
                or      edx, edi
12584
                and     eax, ecx
12585
                and     ebx, edx
12586
                mov     ecx, [esp+30h]
12587
                mov     edx, [esp+34h]
12588
                and     ebp, ecx
12589
                and     edi, edx
12590
                or      eax, ebp
12591
                or      ebx, edi
12592
                mov     ecx, [esp+48h]
12593
                mov     edx, [esp+4Ch]
12594
                add     eax, ecx
12595
                mov     ebp, [esp+40h]
12596
                adc     ebx, edx
12597
                mov     ecx, [esp]
12598
                mov     edx, [esp+4]
12599
                mov     edi, [esp+44h]
12600
                add     ecx, ebp
12601
                adc     edx, edi
12602
                mov     [esp], ecx
12603
                mov     [esp+4], edx
12604
                add     ebp, eax
12605
                adc     edi, ebx
12606
                mov     [esp+20h], ebp
12607
                mov     [esp+24h], edi
12608
                mov     eax, [esp]
12609
                mov     ebx, [esp+4]
12610
                mov     ecx, eax
12611
                mov     edx, ebx
12612
                shr     ecx, 0Eh
12613
                mov     ebp, eax
12614
                shl     edx, 12h
12615
                mov     edi, ebx
12616
                shr     ebp, 12h
12617
                or      ecx, edx
12618
                shl     edi, 0Eh
12619
                or      ebp, edi
12620
                mov     edx, ebx
12621
                xor     ebp, ecx
12622
                mov     ecx, eax
12623
                shl     ecx, 17h
12624
                shr     edx, 9
12625
                or      ecx, edx
12626
                mov     edx, eax
12627
                xor     ebp, ecx
12628
                mov     ecx, ebx
12629
                mov     [esp+40h], ebp
12630
                shr     ecx, 0Eh
12631
                mov     ebp, ebx
12632
                shl     edx, 12h
12633
                mov     edi, eax
12634
                shr     ebp, 12h
12635
                or      ecx, edx
12636
                shl     edi, 0Eh
12637
                or      ebp, edi
12638
                mov     edx, eax
12639
                xor     ebp, ecx
12640
                mov     ecx, ebx
12641
                shl     ecx, 17h
12642
                shr     edx, 9
12643
                or      ecx, edx
12644
                mov     edx, [esp+0Ch]
12645
                xor     ebp, ecx
12646
                mov     ecx, [esp+8]
12647
                mov     [esp+44h], ebp
12648
                mov     ebp, [esp+10h]
12649
                mov     edi, [esp+14h]
12650
                xor     ecx, ebp
12651
                xor     edx, edi
12652
                and     ecx, eax
12653
                and     edx, ebx
12654
                xor     ecx, ebp
12655
                xor     edx, edi
12656
                add     ecx, [esp+40h]
12657
                mov     eax, [esp+18h]
12658
                adc     edx, [esp+44h]
12659
                mov     ebx, [esp+1Ch]
12660
                add     ecx, eax
12661
                mov     edi, [esp+50h]
12662
                adc     edx, ebx
12663
                mov     ebp, [esp+54h]
12664
                shl     edi, 3
12665
                add     edi, 4
12666
                shl     edi, 3
12667
                mov     eax, [edi+ebp]
12668
                mov     ebx, [edi+ebp+4]
12669
                add     ecx, eax
12670
                mov     eax, [esi+edi]
12671
                adc     edx, ebx
12672
                mov     ebx, [esi+edi+4]
12673
                add     ecx, eax
12674
                mov     eax, [esp+20h]
12675
                adc     edx, ebx
12676
                mov     ebx, [esp+24h]
12677
                mov     [esp+40h], ecx
12678
                mov     [esp+44h], edx
12679
                mov     ecx, eax
12680
                mov     edx, ebx
12681
                shr     ecx, 1Ch
12682
                mov     ebp, eax
12683
                shl     edx, 4
12684
                mov     edi, ebx
12685
                shl     ebp, 1Eh
12686
                or      ecx, edx
12687
                shr     edi, 2
12688
                or      ebp, edi
12689
                mov     edx, ebx
12690
                xor     ebp, ecx
12691
                mov     ecx, eax
12692
                shr     edx, 7
12693
                shl     ecx, 19h
12694
                or      ecx, edx
12695
                mov     edx, eax
12696
                xor     ebp, ecx
12697
                mov     ecx, ebx
12698
                mov     [esp+48h], ebp
12699
                shr     ecx, 1Ch
12700
                mov     ebp, ebx
12701
                shl     edx, 4
12702
                mov     edi, eax
12703
                shl     ebp, 1Eh
12704
                or      ecx, edx
12705
                shr     edi, 2
12706
                or      ebp, edi
12707
                mov     edx, eax
12708
                xor     ebp, ecx
12709
                mov     ecx, ebx
12710
                shl     ecx, 19h
12711
                shr     edx, 7
12712
                or      ecx, edx
12713
                mov     edx, [esp+2Ch]
12714
                xor     ebp, ecx
12715
                mov     ecx, [esp+28h]
12716
                mov     [esp+4Ch], ebp
12717
                mov     ebp, [esp+30h]
12718
                mov     edi, [esp+34h]
12719
                or      ecx, ebp
12720
                or      edx, edi
12721
                and     eax, ecx
12722
                and     ebx, edx
12723
                mov     ecx, [esp+28h]
12724
                mov     edx, [esp+2Ch]
12725
                and     ebp, ecx
12726
                and     edi, edx
12727
                or      eax, ebp
12728
                or      ebx, edi
12729
                mov     ecx, [esp+48h]
12730
                mov     edx, [esp+4Ch]
12731
                add     eax, ecx
12732
                mov     ebp, [esp+40h]
12733
                adc     ebx, edx
12734
                mov     ecx, [esp+38h]
12735
                mov     edx, [esp+3Ch]
12736
                mov     edi, [esp+44h]
12737
                add     ecx, ebp
12738
                adc     edx, edi
12739
                mov     [esp+38h], ecx
12740
                mov     [esp+3Ch], edx
12741
                add     ebp, eax
12742
                adc     edi, ebx
12743
                mov     [esp+18h], ebp
12744
                mov     [esp+1Ch], edi
12745
                mov     eax, [esp+38h]
12746
                mov     ebx, [esp+3Ch]
12747
                mov     ecx, eax
12748
                mov     edx, ebx
12749
                shr     ecx, 0Eh
12750
                mov     ebp, eax
12751
                shl     edx, 12h
12752
                mov     edi, ebx
12753
                shr     ebp, 12h
12754
                or      ecx, edx
12755
                shl     edi, 0Eh
12756
                or      ebp, edi
12757
                mov     edx, ebx
12758
                xor     ebp, ecx
12759
                mov     ecx, eax
12760
                shl     ecx, 17h
12761
                shr     edx, 9
12762
                or      ecx, edx
12763
                mov     edx, eax
12764
                xor     ebp, ecx
12765
                mov     ecx, ebx
12766
                mov     [esp+40h], ebp
12767
                shr     ecx, 0Eh
12768
                mov     ebp, ebx
12769
                shl     edx, 12h
12770
                mov     edi, eax
12771
                shr     ebp, 12h
12772
                or      ecx, edx
12773
                shl     edi, 0Eh
12774
                or      ebp, edi
12775
                mov     edx, eax
12776
                xor     ebp, ecx
12777
                mov     ecx, ebx
12778
                shl     ecx, 17h
12779
                shr     edx, 9
12780
                or      ecx, edx
12781
                mov     edx, [esp+4]
12782
                xor     ebp, ecx
12783
                mov     ecx, [esp]
12784
                mov     [esp+44h], ebp
12785
                mov     ebp, [esp+8]
12786
                mov     edi, [esp+0Ch]
12787
                xor     ecx, ebp
12788
                xor     edx, edi
12789
                and     ecx, eax
12790
                and     edx, ebx
12791
                xor     ecx, ebp
12792
                xor     edx, edi
12793
                add     ecx, [esp+40h]
12794
                mov     eax, [esp+10h]
12795
                adc     edx, [esp+44h]
12796
                mov     ebx, [esp+14h]
12797
                add     ecx, eax
12798
                mov     edi, [esp+50h]
12799
                adc     edx, ebx
12800
                mov     ebp, [esp+54h]
12801
                shl     edi, 3
12802
                add     edi, 5
12803
                shl     edi, 3
12804
                mov     eax, [edi+ebp]
12805
                mov     ebx, [edi+ebp+4]
12806
                add     ecx, eax
12807
                mov     eax, [esi+edi]
12808
                adc     edx, ebx
12809
                mov     ebx, [esi+edi+4]
12810
                add     ecx, eax
12811
                mov     eax, [esp+18h]
12812
                adc     edx, ebx
12813
                mov     ebx, [esp+1Ch]
12814
                mov     [esp+40h], ecx
12815
                mov     [esp+44h], edx
12816
                mov     ecx, eax
12817
                mov     edx, ebx
12818
                shr     ecx, 1Ch
12819
                mov     ebp, eax
12820
                shl     edx, 4
12821
                mov     edi, ebx
12822
                shl     ebp, 1Eh
12823
                or      ecx, edx
12824
                shr     edi, 2
12825
                or      ebp, edi
12826
                mov     edx, ebx
12827
                xor     ebp, ecx
12828
                mov     ecx, eax
12829
                shr     edx, 7
12830
                shl     ecx, 19h
12831
                or      ecx, edx
12832
                mov     edx, eax
12833
                xor     ebp, ecx
12834
                mov     ecx, ebx
12835
                mov     [esp+48h], ebp
12836
                shr     ecx, 1Ch
12837
                mov     ebp, ebx
12838
                shl     edx, 4
12839
                mov     edi, eax
12840
                shl     ebp, 1Eh
12841
                or      ecx, edx
12842
                shr     edi, 2
12843
                or      ebp, edi
12844
                mov     edx, eax
12845
                xor     ebp, ecx
12846
                mov     ecx, ebx
12847
                shl     ecx, 19h
12848
                shr     edx, 7
12849
                or      ecx, edx
12850
                mov     edx, [esp+24h]
12851
                xor     ebp, ecx
12852
                mov     ecx, [esp+20h]
12853
                mov     [esp+4Ch], ebp
12854
                mov     ebp, [esp+28h]
12855
                mov     edi, [esp+2Ch]
12856
                or      ecx, ebp
12857
                or      edx, edi
12858
                and     eax, ecx
12859
                and     ebx, edx
12860
                mov     ecx, [esp+20h]
12861
                mov     edx, [esp+24h]
12862
                and     ebp, ecx
12863
                and     edi, edx
12864
                or      eax, ebp
12865
                or      ebx, edi
12866
                mov     ecx, [esp+48h]
12867
                mov     edx, [esp+4Ch]
12868
                add     eax, ecx
12869
                mov     ebp, [esp+40h]
12870
                adc     ebx, edx
12871
                mov     ecx, [esp+30h]
12872
                mov     edx, [esp+34h]
12873
                mov     edi, [esp+44h]
12874
                add     ecx, ebp
12875
                adc     edx, edi
12876
                mov     [esp+30h], ecx
12877
                mov     [esp+34h], edx
12878
                add     ebp, eax
12879
                adc     edi, ebx
12880
                mov     [esp+10h], ebp
12881
                mov     [esp+14h], edi
12882
                mov     eax, [esp+30h]
12883
                mov     ebx, [esp+34h]
12884
                mov     ecx, eax
12885
                mov     edx, ebx
12886
                shr     ecx, 0Eh
12887
                mov     ebp, eax
12888
                shl     edx, 12h
12889
                mov     edi, ebx
12890
                shr     ebp, 12h
12891
                or      ecx, edx
12892
                shl     edi, 0Eh
12893
                or      ebp, edi
12894
                mov     edx, ebx
12895
                xor     ebp, ecx
12896
                mov     ecx, eax
12897
                shl     ecx, 17h
12898
                shr     edx, 9
12899
                or      ecx, edx
12900
                mov     edx, eax
12901
                xor     ebp, ecx
12902
                mov     ecx, ebx
12903
                mov     [esp+40h], ebp
12904
                shr     ecx, 0Eh
12905
                mov     ebp, ebx
12906
                shl     edx, 12h
12907
                mov     edi, eax
12908
                shr     ebp, 12h
12909
                or      ecx, edx
12910
                shl     edi, 0Eh
12911
                or      ebp, edi
12912
                mov     edx, eax
12913
                xor     ebp, ecx
12914
                mov     ecx, ebx
12915
                shl     ecx, 17h
12916
                shr     edx, 9
12917
                or      ecx, edx
12918
                mov     edx, [esp+3Ch]
12919
                xor     ebp, ecx
12920
                mov     ecx, [esp+38h]
12921
                mov     [esp+44h], ebp
12922
                mov     ebp, [esp]
12923
                mov     edi, [esp+4]
12924
                xor     ecx, ebp
12925
                xor     edx, edi
12926
                and     ecx, eax
12927
                and     edx, ebx
12928
                xor     ecx, ebp
12929
                xor     edx, edi
12930
                add     ecx, [esp+40h]
12931
                mov     eax, [esp+8]
12932
                adc     edx, [esp+44h]
12933
                mov     ebx, [esp+0Ch]
12934
                add     ecx, eax
12935
                mov     edi, [esp+50h]
12936
                adc     edx, ebx
12937
                mov     ebp, [esp+54h]
12938
                shl     edi, 3
12939
                add     edi, 6
12940
                shl     edi, 3
12941
                mov     eax, [edi+ebp]
12942
                mov     ebx, [edi+ebp+4]
12943
                add     ecx, eax
12944
                mov     eax, [esi+edi]
12945
                adc     edx, ebx
12946
                mov     ebx, [esi+edi+4]
12947
                add     ecx, eax
12948
                mov     eax, [esp+10h]
12949
                adc     edx, ebx
12950
                mov     ebx, [esp+14h]
12951
                mov     [esp+40h], ecx
12952
                mov     [esp+44h], edx
12953
                mov     ecx, eax
12954
                mov     edx, ebx
12955
                shr     ecx, 1Ch
12956
                mov     ebp, eax
12957
                shl     edx, 4
12958
                mov     edi, ebx
12959
                shl     ebp, 1Eh
12960
                or      ecx, edx
12961
                shr     edi, 2
12962
                or      ebp, edi
12963
                mov     edx, ebx
12964
                xor     ebp, ecx
12965
                mov     ecx, eax
12966
                shr     edx, 7
12967
                shl     ecx, 19h
12968
                or      ecx, edx
12969
                mov     edx, eax
12970
                xor     ebp, ecx
12971
                mov     ecx, ebx
12972
                mov     [esp+48h], ebp
12973
                shr     ecx, 1Ch
12974
                mov     ebp, ebx
12975
                shl     edx, 4
12976
                mov     edi, eax
12977
                shl     ebp, 1Eh
12978
                or      ecx, edx
12979
                shr     edi, 2
12980
                or      ebp, edi
12981
                mov     edx, eax
12982
                xor     ebp, ecx
12983
                mov     ecx, ebx
12984
                shl     ecx, 19h
12985
                shr     edx, 7
12986
                or      ecx, edx
12987
                mov     edx, [esp+1Ch]
12988
                xor     ebp, ecx
12989
                mov     ecx, [esp+18h]
12990
                mov     [esp+4Ch], ebp
12991
                mov     ebp, [esp+20h]
12992
                mov     edi, [esp+24h]
12993
                or      ecx, ebp
12994
                or      edx, edi
12995
                and     eax, ecx
12996
                and     ebx, edx
12997
                mov     ecx, [esp+18h]
12998
                mov     edx, [esp+1Ch]
12999
                and     ebp, ecx
13000
                and     edi, edx
13001
                or      eax, ebp
13002
                or      ebx, edi
13003
                mov     ecx, [esp+48h]
13004
                mov     edx, [esp+4Ch]
13005
                add     eax, ecx
13006
                mov     ebp, [esp+40h]
13007
                adc     ebx, edx
13008
                mov     ecx, [esp+28h]
13009
                mov     edx, [esp+2Ch]
13010
                mov     edi, [esp+44h]
13011
                add     ecx, ebp
13012
                adc     edx, edi
13013
                mov     [esp+28h], ecx
13014
                mov     [esp+2Ch], edx
13015
                add     ebp, eax
13016
                adc     edi, ebx
13017
                mov     [esp+8], ebp
13018
                mov     [esp+0Ch], edi
13019
                mov     eax, [esp+28h]
13020
                mov     ebx, [esp+2Ch]
13021
                mov     ecx, eax
13022
                mov     edx, ebx
13023
                shr     ecx, 0Eh
13024
                mov     ebp, eax
13025
                shl     edx, 12h
13026
                mov     edi, ebx
13027
                shr     ebp, 12h
13028
                or      ecx, edx
13029
                shl     edi, 0Eh
13030
                or      ebp, edi
13031
                mov     edx, ebx
13032
                xor     ebp, ecx
13033
                mov     ecx, eax
13034
                shl     ecx, 17h
13035
                shr     edx, 9
13036
                or      ecx, edx
13037
                mov     edx, eax
13038
                xor     ebp, ecx
13039
                mov     ecx, ebx
13040
                mov     [esp+40h], ebp
13041
                shr     ecx, 0Eh
13042
                mov     ebp, ebx
13043
                shl     edx, 12h
13044
                mov     edi, eax
13045
                shr     ebp, 12h
13046
                or      ecx, edx
13047
                shl     edi, 0Eh
13048
                or      ebp, edi
13049
                mov     edx, eax
13050
                xor     ebp, ecx
13051
                mov     ecx, ebx
13052
                shl     ecx, 17h
13053
                shr     edx, 9
13054
                or      ecx, edx
13055
                mov     edx, [esp+34h]
13056
                xor     ebp, ecx
13057
                mov     ecx, [esp+30h]
13058
                mov     [esp+44h], ebp
13059
                mov     ebp, [esp+38h]
13060
                mov     edi, [esp+3Ch]
13061
                xor     ecx, ebp
13062
                xor     edx, edi
13063
                and     ecx, eax
13064
                and     edx, ebx
13065
                xor     ecx, ebp
13066
                xor     edx, edi
13067
                add     ecx, [esp+40h]
13068
                mov     eax, [esp]
13069
                adc     edx, [esp+44h]
13070
                mov     ebx, [esp+4]
13071
                add     ecx, eax
13072
                mov     edi, [esp+50h]
13073
                adc     edx, ebx
13074
                mov     ebp, [esp+54h]
13075
                shl     edi, 3
13076
                add     edi, 7
13077
                shl     edi, 3
13078
                mov     eax, [edi+ebp]
13079
                mov     ebx, [edi+ebp+4]
13080
                add     ecx, eax
13081
                mov     eax, [esi+edi]
13082
                adc     edx, ebx
13083
                mov     ebx, [esi+edi+4]
13084
                add     ecx, eax
13085
                mov     eax, [esp+8]
13086
                adc     edx, ebx
13087
                mov     ebx, [esp+0Ch]
13088
                mov     [esp+40h], ecx
13089
                mov     [esp+44h], edx
13090
                mov     ecx, eax
13091
                mov     edx, ebx
13092
                shr     ecx, 1Ch
13093
                mov     ebp, eax
13094
                shl     edx, 4
13095
                mov     edi, ebx
13096
                shl     ebp, 1Eh
13097
                or      ecx, edx
13098
                shr     edi, 2
13099
                or      ebp, edi
13100
                mov     edx, ebx
13101
                xor     ebp, ecx
13102
                mov     ecx, eax
13103
                shr     edx, 7
13104
                shl     ecx, 19h
13105
                or      ecx, edx
13106
                mov     edx, eax
13107
                xor     ebp, ecx
13108
                mov     ecx, ebx
13109
                mov     [esp+48h], ebp
13110
                shr     ecx, 1Ch
13111
                mov     ebp, ebx
13112
                shl     edx, 4
13113
                mov     edi, eax
13114
                shl     ebp, 1Eh
13115
                or      ecx, edx
13116
                shr     edi, 2
13117
                or      ebp, edi
13118
                mov     edx, eax
13119
                xor     ebp, ecx
13120
                mov     ecx, ebx
13121
                shl     ecx, 19h
13122
                shr     edx, 7
13123
                or      ecx, edx
13124
                mov     edx, [esp+14h]
13125
                xor     ebp, ecx
13126
                mov     ecx, [esp+10h]
13127
                mov     [esp+4Ch], ebp
13128
                mov     ebp, [esp+18h]
13129
                mov     edi, [esp+1Ch]
13130
                or      ecx, ebp
13131
                or      edx, edi
13132
                and     eax, ecx
13133
                and     ebx, edx
13134
                mov     ecx, [esp+10h]
13135
                mov     edx, [esp+14h]
13136
                and     ebp, ecx
13137
                and     edi, edx
13138
                or      eax, ebp
13139
                or      ebx, edi
13140
                mov     ecx, [esp+48h]
13141
                mov     edx, [esp+4Ch]
13142
                add     eax, ecx
13143
                mov     ebp, [esp+40h]
13144
                adc     ebx, edx
13145
                mov     ecx, [esp+20h]
13146
                mov     edx, [esp+24h]
13147
                mov     edi, [esp+44h]
13148
                add     ecx, ebp
13149
                adc     edx, edi
13150
                mov     [esp+20h], ecx
13151
                mov     [esp+24h], edx
13152
                add     ebp, eax
13153
                adc     edi, ebx
13154
                mov     [esp], ebp
13155
                mov     [esp+4], edi
13156
                inc     dword ptr [esp+50h]
13157
                cmp     dword ptr [esp+50h], 0Ah
13158
                jnz     @@body_loop
13159
                mov     edi, [esp+5Ch]
13160
                mov     eax, [esp]
13161
                mov     ebx, [esp+4]
13162
                mov     ecx, [esp+8]
13163
                mov     edx, [esp+0Ch]
13164
                add     [edi], eax
13165
                adc     [edi+4], ebx
13166
                add     [edi+8], ecx
13167
                adc     [edi+0Ch], edx
13168
                mov     eax, [esp+10h]
13169
                mov     ebx, [esp+14h]
13170
                mov     ecx, [esp+18h]
13171
                mov     edx, [esp+1Ch]
13172
                add     [edi+10h], eax
13173
                adc     [edi+14h], ebx
13174
                add     [edi+18h], ecx
13175
                adc     [edi+1Ch], edx
13176
                mov     eax, [esp+20h]
13177
                mov     ebx, [esp+24h]
13178
                mov     ecx, [esp+28h]
13179
                mov     edx, [esp+2Ch]
13180
                add     [edi+20h], eax
13181
                adc     [edi+24h], ebx
13182
                add     [edi+28h], ecx
13183
                adc     [edi+2Ch], edx
13184
                mov     eax, [esp+30h]
13185
                mov     ebx, [esp+34h]
13186
                mov     ecx, [esp+38h]
13187
                mov     edx, [esp+3Ch]
13188
                add     [edi+30h], eax
13189
                adc     [edi+34h], ebx
13190
                add     [edi+38h], ecx
13191
                adc     [edi+3Ch], edx
13192
                add     esp, 60h
13193
13194
                pop     ebp
13195
                pop     edi
13196
                pop     esi
13197
                pop     ebx
13198
  end;
13199
end;
13200
{$ENDIF}
13201
13202
{$IFDEF THashBaseHaval_asm}
13203
procedure THashBaseHaval.DoTransform3(Buffer: PUInt32Array);
13204
asm
13205
                push    ebx
13206
                push    esi
13207
                push    edi
13208
                lea     edi, [eax].THashBaseHaval.FDigest
13209
                mov     esi, edx
13210
                push    ebp
13211
                mov     ebp, esp
13212
                add     esp, 0FFFFFFD4h
13213
                and     esp, 0FFFFFFC0h
13214
                mov     eax, [edi]
13215
                mov     ebx, [edi+4]
13216
                mov     [esp+20h], esi
13217
                mov     [esp+24h], edi
13218
                mov     [esp+28h], ebp
13219
                mov     [esp], eax
13220
                mov     [esp+4], ebx
13221
                mov     ecx, [edi+8]
13222
                mov     edx, [edi+0Ch]
13223
                mov     [esp+8], ecx
13224
                mov     [esp+0Ch], edx
13225
                mov     eax, [edi+10h]
13226
                mov     ebx, [edi+14h]
13227
                mov     [esp+10h], eax
13228
                mov     [esp+14h], ebx
13229
                mov     ecx, [edi+18h]
13230
                mov     edx, [edi+1Ch]
13231
                mov     [esp+18h], ecx
13232
                mov     [esp+1Ch], edx
13233
                mov     eax, edx
13234
                mov     ebp, [esp]
13235
                mov     ebx, [esp+0Ch]
13236
                mov     ecx, [esp+10h]
13237
                ror     eax, 0Bh
13238
                xor     ebx, ecx
13239
                mov     edi, [esp+4]
13240
                and     ebx, [esp+8]
13241
                and     edi, [esp+14h]
13242
                xor     ecx, ebx
13243
                and     ebp, [esp+18h]
13244
                xor     edi, ecx
13245
                mov     edx, [esi]
13246
                xor     ebp, edi
13247
                add     eax, edx
13248
                ror     ebp, 7
13249
                add     ebp, eax
13250
                mov     eax, [esp+18h]
13251
                mov     [esp+1Ch], ebp
13252
                mov     ebx, [esp+8]
13253
                mov     ecx, [esp+0Ch]
13254
                ror     eax, 0Bh
13255
                xor     ebx, ecx
13256
                mov     edi, [esp]
13257
                and     ebx, [esp+4]
13258
                and     edi, [esp+10h]
13259
                xor     ecx, ebx
13260
                and     ebp, [esp+14h]
13261
                xor     edi, ecx
13262
                mov     edx, [esi+4]
13263
                xor     ebp, edi
13264
                add     eax, edx
13265
                ror     ebp, 7
13266
                add     ebp, eax
13267
                mov     eax, [esp+14h]
13268
                mov     [esp+18h], ebp
13269
                mov     ebx, [esp+4]
13270
                mov     ecx, [esp+8]
13271
                ror     eax, 0Bh
13272
                xor     ebx, ecx
13273
                mov     edi, [esp+1Ch]
13274
                and     ebx, [esp]
13275
                and     edi, [esp+0Ch]
13276
                xor     ecx, ebx
13277
                and     ebp, [esp+10h]
13278
                xor     edi, ecx
13279
                mov     edx, [esi+8]
13280
                xor     ebp, edi
13281
                add     eax, edx
13282
                ror     ebp, 7
13283
                add     ebp, eax
13284
                mov     eax, [esp+10h]
13285
                mov     [esp+14h], ebp
13286
                mov     ebx, [esp]
13287
                mov     ecx, [esp+4]
13288
                ror     eax, 0Bh
13289
                xor     ebx, ecx
13290
                mov     edi, [esp+18h]
13291
                and     ebx, [esp+1Ch]
13292
                and     edi, [esp+8]
13293
                xor     ecx, ebx
13294
                and     ebp, [esp+0Ch]
13295
                xor     edi, ecx
13296
                mov     edx, [esi+0Ch]
13297
                xor     ebp, edi
13298
                add     eax, edx
13299
                ror     ebp, 7
13300
                add     ebp, eax
13301
                mov     eax, [esp+0Ch]
13302
                mov     [esp+10h], ebp
13303
                mov     ebx, [esp+1Ch]
13304
                mov     ecx, [esp]
13305
                ror     eax, 0Bh
13306
                xor     ebx, ecx
13307
                mov     edi, [esp+14h]
13308
                and     ebx, [esp+18h]
13309
                and     edi, [esp+4]
13310
                xor     ecx, ebx
13311
                and     ebp, [esp+8]
13312
                xor     edi, ecx
13313
                mov     edx, [esi+10h]
13314
                xor     ebp, edi
13315
                add     eax, edx
13316
                ror     ebp, 7
13317
                add     ebp, eax
13318
                mov     eax, [esp+8]
13319
                mov     [esp+0Ch], ebp
13320
                mov     ebx, [esp+18h]
13321
                mov     ecx, [esp+1Ch]
13322
                ror     eax, 0Bh
13323
                xor     ebx, ecx
13324
                mov     edi, [esp+10h]
13325
                and     ebx, [esp+14h]
13326
                and     edi, [esp]
13327
                xor     ecx, ebx
13328
                and     ebp, [esp+4]
13329
                xor     edi, ecx
13330
                mov     edx, [esi+14h]
13331
                xor     ebp, edi
13332
                add     eax, edx
13333
                ror     ebp, 7
13334
                add     ebp, eax
13335
                mov     eax, [esp+4]
13336
                mov     [esp+8], ebp
13337
                mov     ebx, [esp+14h]
13338
                mov     ecx, [esp+18h]
13339
                ror     eax, 0Bh
13340
                xor     ebx, ecx
13341
                mov     edi, [esp+0Ch]
13342
                and     ebx, [esp+10h]
13343
                and     edi, [esp+1Ch]
13344
                xor     ecx, ebx
13345
                and     ebp, [esp]
13346
                xor     edi, ecx
13347
                mov     edx, [esi+18h]
13348
                xor     ebp, edi
13349
                add     eax, edx
13350
                ror     ebp, 7
13351
                add     ebp, eax
13352
                mov     eax, [esp]
13353
                mov     [esp+4], ebp
13354
                mov     ebx, [esp+10h]
13355
                mov     ecx, [esp+14h]
13356
                ror     eax, 0Bh
13357
                xor     ebx, ecx
13358
                mov     edi, [esp+8]
13359
                and     ebx, [esp+0Ch]
13360
                and     edi, [esp+18h]
13361
                xor     ecx, ebx
13362
                and     ebp, [esp+1Ch]
13363
                xor     edi, ecx
13364
                mov     edx, [esi+1Ch]
13365
                xor     ebp, edi
13366
                add     eax, edx
13367
                ror     ebp, 7
13368
                add     ebp, eax
13369
                mov     eax, [esp+1Ch]
13370
                mov     [esp], ebp
13371
                mov     ebx, [esp+0Ch]
13372
                mov     ecx, [esp+10h]
13373
                ror     eax, 0Bh
13374
                xor     ebx, ecx
13375
                mov     edi, [esp+4]
13376
                and     ebx, [esp+8]
13377
                and     edi, [esp+14h]
13378
                xor     ecx, ebx
13379
                and     ebp, [esp+18h]
13380
                xor     edi, ecx
13381
                mov     edx, [esi+20h]
13382
                xor     ebp, edi
13383
                add     eax, edx
13384
                ror     ebp, 7
13385
                add     ebp, eax
13386
                mov     eax, [esp+18h]
13387
                mov     [esp+1Ch], ebp
13388
                mov     ebx, [esp+8]
13389
                mov     ecx, [esp+0Ch]
13390
                ror     eax, 0Bh
13391
                xor     ebx, ecx
13392
                mov     edi, [esp]
13393
                and     ebx, [esp+4]
13394
                and     edi, [esp+10h]
13395
                xor     ecx, ebx
13396
                and     ebp, [esp+14h]
13397
                xor     edi, ecx
13398
                mov     edx, [esi+24h]
13399
                xor     ebp, edi
13400
                add     eax, edx
13401
                ror     ebp, 7
13402
                add     ebp, eax
13403
                mov     eax, [esp+14h]
13404
                mov     [esp+18h], ebp
13405
                mov     ebx, [esp+4]
13406
                mov     ecx, [esp+8]
13407
                ror     eax, 0Bh
13408
                xor     ebx, ecx
13409
                mov     edi, [esp+1Ch]
13410
                and     ebx, [esp]
13411
                and     edi, [esp+0Ch]
13412
                xor     ecx, ebx
13413
                and     ebp, [esp+10h]
13414
                xor     edi, ecx
13415
                mov     edx, [esi+28h]
13416
                xor     ebp, edi
13417
                add     eax, edx
13418
                ror     ebp, 7
13419
                add     ebp, eax
13420
                mov     eax, [esp+10h]
13421
                mov     [esp+14h], ebp
13422
                mov     ebx, [esp]
13423
                mov     ecx, [esp+4]
13424
                ror     eax, 0Bh
13425
                xor     ebx, ecx
13426
                mov     edi, [esp+18h]
13427
                and     ebx, [esp+1Ch]
13428
                and     edi, [esp+8]
13429
                xor     ecx, ebx
13430
                and     ebp, [esp+0Ch]
13431
                xor     edi, ecx
13432
                mov     edx, [esi+2Ch]
13433
                xor     ebp, edi
13434
                add     eax, edx
13435
                ror     ebp, 7
13436
                add     ebp, eax
13437
                mov     eax, [esp+0Ch]
13438
                mov     [esp+10h], ebp
13439
                mov     ebx, [esp+1Ch]
13440
                mov     ecx, [esp]
13441
                ror     eax, 0Bh
13442
                xor     ebx, ecx
13443
                mov     edi, [esp+14h]
13444
                and     ebx, [esp+18h]
13445
                and     edi, [esp+4]
13446
                xor     ecx, ebx
13447
                and     ebp, [esp+8]
13448
                xor     edi, ecx
13449
                mov     edx, [esi+30h]
13450
                xor     ebp, edi
13451
                add     eax, edx
13452
                ror     ebp, 7
13453
                add     ebp, eax
13454
                mov     eax, [esp+8]
13455
                mov     [esp+0Ch], ebp
13456
                mov     ebx, [esp+18h]
13457
                mov     ecx, [esp+1Ch]
13458
                ror     eax, 0Bh
13459
                xor     ebx, ecx
13460
                mov     edi, [esp+10h]
13461
                and     ebx, [esp+14h]
13462
                and     edi, [esp]
13463
                xor     ecx, ebx
13464
                and     ebp, [esp+4]
13465
                xor     edi, ecx
13466
                mov     edx, [esi+34h]
13467
                xor     ebp, edi
13468
                add     eax, edx
13469
                ror     ebp, 7
13470
                add     ebp, eax
13471
                mov     eax, [esp+4]
13472
                mov     [esp+8], ebp
13473
                mov     ebx, [esp+14h]
13474
                mov     ecx, [esp+18h]
13475
                ror     eax, 0Bh
13476
                xor     ebx, ecx
13477
                mov     edi, [esp+0Ch]
13478
                and     ebx, [esp+10h]
13479
                and     edi, [esp+1Ch]
13480
                xor     ecx, ebx
13481
                and     ebp, [esp]
13482
                xor     edi, ecx
13483
                mov     edx, [esi+38h]
13484
                xor     ebp, edi
13485
                add     eax, edx
13486
                ror     ebp, 7
13487
                add     ebp, eax
13488
                mov     eax, [esp]
13489
                mov     [esp+4], ebp
13490
                mov     ebx, [esp+10h]
13491
                mov     ecx, [esp+14h]
13492
                ror     eax, 0Bh
13493
                xor     ebx, ecx
13494
                mov     edi, [esp+8]
13495
                and     ebx, [esp+0Ch]
13496
                and     edi, [esp+18h]
13497
                xor     ecx, ebx
13498
                and     ebp, [esp+1Ch]
13499
                xor     edi, ecx
13500
                mov     edx, [esi+3Ch]
13501
                xor     ebp, edi
13502
                add     eax, edx
13503
                ror     ebp, 7
13504
                add     ebp, eax
13505
                mov     eax, [esp+1Ch]
13506
                mov     [esp], ebp
13507
                mov     ebx, [esp+0Ch]
13508
                mov     ecx, [esp+10h]
13509
                ror     eax, 0Bh
13510
                xor     ebx, ecx
13511
                mov     edi, [esp+4]
13512
                and     ebx, [esp+8]
13513
                and     edi, [esp+14h]
13514
                xor     ecx, ebx
13515
                and     ebp, [esp+18h]
13516
                xor     edi, ecx
13517
                mov     edx, [esi+40h]
13518
                xor     ebp, edi
13519
                add     eax, edx
13520
                ror     ebp, 7
13521
                add     ebp, eax
13522
                mov     eax, [esp+18h]
13523
                mov     [esp+1Ch], ebp
13524
                mov     ebx, [esp+8]
13525
                mov     ecx, [esp+0Ch]
13526
                ror     eax, 0Bh
13527
                xor     ebx, ecx
13528
                mov     edi, [esp]
13529
                and     ebx, [esp+4]
13530
                and     edi, [esp+10h]
13531
                xor     ecx, ebx
13532
                and     ebp, [esp+14h]
13533
                xor     edi, ecx
13534
                mov     edx, [esi+44h]
13535
                xor     ebp, edi
13536
                add     eax, edx
13537
                ror     ebp, 7
13538
                add     ebp, eax
13539
                mov     eax, [esp+14h]
13540
                mov     [esp+18h], ebp
13541
                mov     ebx, [esp+4]
13542
                mov     ecx, [esp+8]
13543
                ror     eax, 0Bh
13544
                xor     ebx, ecx
13545
                mov     edi, [esp+1Ch]
13546
                and     ebx, [esp]
13547
                and     edi, [esp+0Ch]
13548
                xor     ecx, ebx
13549
                and     ebp, [esp+10h]
13550
                xor     edi, ecx
13551
                mov     edx, [esi+48h]
13552
                xor     ebp, edi
13553
                add     eax, edx
13554
                ror     ebp, 7
13555
                add     ebp, eax
13556
                mov     eax, [esp+10h]
13557
                mov     [esp+14h], ebp
13558
                mov     ebx, [esp]
13559
                mov     ecx, [esp+4]
13560
                ror     eax, 0Bh
13561
                xor     ebx, ecx
13562
                mov     edi, [esp+18h]
13563
                and     ebx, [esp+1Ch]
13564
                and     edi, [esp+8]
13565
                xor     ecx, ebx
13566
                and     ebp, [esp+0Ch]
13567
                xor     edi, ecx
13568
                mov     edx, [esi+4Ch]
13569
                xor     ebp, edi
13570
                add     eax, edx
13571
                ror     ebp, 7
13572
                add     ebp, eax
13573
                mov     eax, [esp+0Ch]
13574
                mov     [esp+10h], ebp
13575
                mov     ebx, [esp+1Ch]
13576
                mov     ecx, [esp]
13577
                ror     eax, 0Bh
13578
                xor     ebx, ecx
13579
                mov     edi, [esp+14h]
13580
                and     ebx, [esp+18h]
13581
                and     edi, [esp+4]
13582
                xor     ecx, ebx
13583
                and     ebp, [esp+8]
13584
                xor     edi, ecx
13585
                mov     edx, [esi+50h]
13586
                xor     ebp, edi
13587
                add     eax, edx
13588
                ror     ebp, 7
13589
                add     ebp, eax
13590
                mov     eax, [esp+8]
13591
                mov     [esp+0Ch], ebp
13592
                mov     ebx, [esp+18h]
13593
                mov     ecx, [esp+1Ch]
13594
                ror     eax, 0Bh
13595
                xor     ebx, ecx
13596
                mov     edi, [esp+10h]
13597
                and     ebx, [esp+14h]
13598
                and     edi, [esp]
13599
                xor     ecx, ebx
13600
                and     ebp, [esp+4]
13601
                xor     edi, ecx
13602
                mov     edx, [esi+54h]
13603
                xor     ebp, edi
13604
                add     eax, edx
13605
                ror     ebp, 7
13606
                add     ebp, eax
13607
                mov     eax, [esp+4]
13608
                mov     [esp+8], ebp
13609
                mov     ebx, [esp+14h]
13610
                mov     ecx, [esp+18h]
13611
                ror     eax, 0Bh
13612
                xor     ebx, ecx
13613
                mov     edi, [esp+0Ch]
13614
                and     ebx, [esp+10h]
13615
                and     edi, [esp+1Ch]
13616
                xor     ecx, ebx
13617
                and     ebp, [esp]
13618
                xor     edi, ecx
13619
                mov     edx, [esi+58h]
13620
                xor     ebp, edi
13621
                add     eax, edx
13622
                ror     ebp, 7
13623
                add     ebp, eax
13624
                mov     eax, [esp]
13625
                mov     [esp+4], ebp
13626
                mov     ebx, [esp+10h]
13627
                mov     ecx, [esp+14h]
13628
                ror     eax, 0Bh
13629
                xor     ebx, ecx
13630
                mov     edi, [esp+8]
13631
                and     ebx, [esp+0Ch]
13632
                and     edi, [esp+18h]
13633
                xor     ecx, ebx
13634
                and     ebp, [esp+1Ch]
13635
                xor     edi, ecx
13636
                mov     edx, [esi+5Ch]
13637
                xor     ebp, edi
13638
                add     eax, edx
13639
                ror     ebp, 7
13640
                add     ebp, eax
13641
                mov     eax, [esp+1Ch]
13642
                mov     [esp], ebp
13643
                mov     ebx, [esp+0Ch]
13644
                mov     ecx, [esp+10h]
13645
                ror     eax, 0Bh
13646
                xor     ebx, ecx
13647
                mov     edi, [esp+4]
13648
                and     ebx, [esp+8]
13649
                and     edi, [esp+14h]
13650
                xor     ecx, ebx
13651
                and     ebp, [esp+18h]
13652
                xor     edi, ecx
13653
                mov     edx, [esi+60h]
13654
                xor     ebp, edi
13655
                add     eax, edx
13656
                ror     ebp, 7
13657
                add     ebp, eax
13658
                mov     eax, [esp+18h]
13659
                mov     [esp+1Ch], ebp
13660
                mov     ebx, [esp+8]
13661
                mov     ecx, [esp+0Ch]
13662
                ror     eax, 0Bh
13663
                xor     ebx, ecx
13664
                mov     edi, [esp]
13665
                and     ebx, [esp+4]
13666
                and     edi, [esp+10h]
13667
                xor     ecx, ebx
13668
                and     ebp, [esp+14h]
13669
                xor     edi, ecx
13670
                mov     edx, [esi+64h]
13671
                xor     ebp, edi
13672
                add     eax, edx
13673
                ror     ebp, 7
13674
                add     ebp, eax
13675
                mov     eax, [esp+14h]
13676
                mov     [esp+18h], ebp
13677
                mov     ebx, [esp+4]
13678
                mov     ecx, [esp+8]
13679
                ror     eax, 0Bh
13680
                xor     ebx, ecx
13681
                mov     edi, [esp+1Ch]
13682
                and     ebx, [esp]
13683
                and     edi, [esp+0Ch]
13684
                xor     ecx, ebx
13685
                and     ebp, [esp+10h]
13686
                xor     edi, ecx
13687
                mov     edx, [esi+68h]
13688
                xor     ebp, edi
13689
                add     eax, edx
13690
                ror     ebp, 7
13691
                add     ebp, eax
13692
                mov     eax, [esp+10h]
13693
                mov     [esp+14h], ebp
13694
                mov     ebx, [esp]
13695
                mov     ecx, [esp+4]
13696
                ror     eax, 0Bh
13697
                xor     ebx, ecx
13698
                mov     edi, [esp+18h]
13699
                and     ebx, [esp+1Ch]
13700
                and     edi, [esp+8]
13701
                xor     ecx, ebx
13702
                and     ebp, [esp+0Ch]
13703
                xor     edi, ecx
13704
                mov     edx, [esi+6Ch]
13705
                xor     ebp, edi
13706
                add     eax, edx
13707
                ror     ebp, 7
13708
                add     ebp, eax
13709
                mov     eax, [esp+0Ch]
13710
                mov     [esp+10h], ebp
13711
                mov     ebx, [esp+1Ch]
13712
                mov     ecx, [esp]
13713
                ror     eax, 0Bh
13714
                xor     ebx, ecx
13715
                mov     edi, [esp+14h]
13716
                and     ebx, [esp+18h]
13717
                and     edi, [esp+4]
13718
                xor     ecx, ebx
13719
                and     ebp, [esp+8]
13720
                xor     edi, ecx
13721
                mov     edx, [esi+70h]
13722
                xor     ebp, edi
13723
                add     eax, edx
13724
                ror     ebp, 7
13725
                add     ebp, eax
13726
                mov     eax, [esp+8]
13727
                mov     [esp+0Ch], ebp
13728
                mov     ebx, [esp+18h]
13729
                mov     ecx, [esp+1Ch]
13730
                ror     eax, 0Bh
13731
                xor     ebx, ecx
13732
                mov     edi, [esp+10h]
13733
                and     ebx, [esp+14h]
13734
                and     edi, [esp]
13735
                xor     ecx, ebx
13736
                and     ebp, [esp+4]
13737
                xor     edi, ecx
13738
                mov     edx, [esi+74h]
13739
                xor     ebp, edi
13740
                add     eax, edx
13741
                ror     ebp, 7
13742
                add     ebp, eax
13743
                mov     eax, [esp+4]
13744
                mov     [esp+8], ebp
13745
                mov     ebx, [esp+14h]
13746
                mov     ecx, [esp+18h]
13747
                ror     eax, 0Bh
13748
                xor     ebx, ecx
13749
                mov     edi, [esp+0Ch]
13750
                and     ebx, [esp+10h]
13751
                and     edi, [esp+1Ch]
13752
                xor     ecx, ebx
13753
                and     ebp, [esp]
13754
                xor     edi, ecx
13755
                mov     edx, [esi+78h]
13756
                xor     ebp, edi
13757
                add     eax, edx
13758
                ror     ebp, 7
13759
                add     ebp, eax
13760
                mov     eax, [esp]
13761
                mov     [esp+4], ebp
13762
                mov     ebx, [esp+10h]
13763
                mov     ecx, [esp+14h]
13764
                ror     eax, 0Bh
13765
                xor     ebx, ecx
13766
                mov     edi, [esp+8]
13767
                and     ebx, [esp+0Ch]
13768
                and     edi, [esp+18h]
13769
                xor     ecx, ebx
13770
                and     ebp, [esp+1Ch]
13771
                xor     edi, ecx
13772
                mov     edx, [esi+7Ch]
13773
                xor     ebp, edi
13774
                add     eax, edx
13775
                ror     ebp, 7
13776
                add     ebp, eax
13777
                mov     eax, [esp+1Ch]
13778
                mov     [esp], ebp
13779
                mov     ebp, [esp]
13780
                mov     ebx, [esp+4]
13781
                mov     edi, [esp+8]
13782
                xor     ebp, 0FFFFFFFFh
13783
                mov     ecx, [esp+0Ch]
13784
                and     ebx, edi
13785
                mov     edx, [esp+18h]
13786
                and     ebp, ecx
13787
                xor     ebx, [esp+10h]
13788
                xor     ebp, edx
13789
                xor     ecx, edi
13790
                xor     ebx, ebp
13791
                and     ecx, [esp+4]
13792
                and     ebx, [esp+14h]
13793
                ror     eax, 0Bh
13794
                xor     ecx, edx
13795
                mov     ebp, [esi+14h]
13796
                xor     ecx, ebx
13797
                and     edi, [esp]
13798
                xor     ecx, edi
13799
                lea     ebp, [eax+ebp+452821E6h]
13800
                ror     ecx, 7
13801
                add     ebp, ecx
13802
                mov     eax, [esp+18h]
13803
                mov     [esp+1Ch], ebp
13804
                mov     ebx, [esp]
13805
                mov     edi, [esp+4]
13806
                xor     ebp, 0FFFFFFFFh
13807
                mov     ecx, [esp+8]
13808
                and     ebx, edi
13809
                mov     edx, [esp+14h]
13810
                and     ebp, ecx
13811
                xor     ebx, [esp+0Ch]
13812
                xor     ebp, edx
13813
                xor     ecx, edi
13814
                xor     ebx, ebp
13815
                and     ecx, [esp]
13816
                and     ebx, [esp+10h]
13817
                ror     eax, 0Bh
13818
                xor     ecx, edx
13819
                mov     ebp, [esi+38h]
13820
                xor     ecx, ebx
13821
                and     edi, [esp+1Ch]
13822
                xor     ecx, edi
13823
                lea     ebp, [eax+ebp+38D01377h]
13824
                ror     ecx, 7
13825
                add     ebp, ecx
13826
                mov     eax, [esp+14h]
13827
                mov     [esp+18h], ebp
13828
                mov     ebx, [esp+1Ch]
13829
                mov     edi, [esp]
13830
                xor     ebp, 0FFFFFFFFh
13831
                mov     ecx, [esp+4]
13832
                and     ebx, edi
13833
                mov     edx, [esp+10h]
13834
                and     ebp, ecx
13835
                xor     ebx, [esp+8]
13836
                xor     ebp, edx
13837
                xor     ecx, edi
13838
                xor     ebx, ebp
13839
                and     ecx, [esp+1Ch]
13840
                and     ebx, [esp+0Ch]
13841
                ror     eax, 0Bh
13842
                xor     ecx, edx
13843
                mov     ebp, [esi+68h]
13844
                xor     ecx, ebx
13845
                and     edi, [esp+18h]
13846
                xor     ecx, edi
13847
                lea     ebp, [eax+ebp-41AB9931h]
13848
                ror     ecx, 7
13849
                add     ebp, ecx
13850
                mov     eax, [esp+10h]
13851
                mov     [esp+14h], ebp
13852
                mov     ebx, [esp+18h]
13853
                mov     edi, [esp+1Ch]
13854
                xor     ebp, 0FFFFFFFFh
13855
                mov     ecx, [esp]
13856
                and     ebx, edi
13857
                mov     edx, [esp+0Ch]
13858
                and     ebp, ecx
13859
                xor     ebx, [esp+4]
13860
                xor     ebp, edx
13861
                xor     ecx, edi
13862
                xor     ebx, ebp
13863
                and     ecx, [esp+18h]
13864
                and     ebx, [esp+8]
13865
                ror     eax, 0Bh
13866
                xor     ecx, edx
13867
                mov     ebp, [esi+48h]
13868
                xor     ecx, ebx
13869
                and     edi, [esp+14h]
13870
                xor     ecx, edi
13871
                lea     ebp, [eax+ebp+34E90C6Ch]
13872
                ror     ecx, 7
13873
                add     ebp, ecx
13874
                mov     eax, [esp+0Ch]
13875
                mov     [esp+10h], ebp
13876
                mov     ebx, [esp+14h]
13877
                mov     edi, [esp+18h]
13878
                xor     ebp, 0FFFFFFFFh
13879
                mov     ecx, [esp+1Ch]
13880
                and     ebx, edi
13881
                mov     edx, [esp+8]
13882
                and     ebp, ecx
13883
                xor     ebx, [esp]
13884
                xor     ebp, edx
13885
                xor     ecx, edi
13886
                xor     ebx, ebp
13887
                and     ecx, [esp+14h]
13888
                and     ebx, [esp+4]
13889
                ror     eax, 0Bh
13890
                xor     ecx, edx
13891
                mov     ebp, [esi+2Ch]
13892
                xor     ecx, ebx
13893
                and     edi, [esp+10h]
13894
                xor     ecx, edi
13895
                lea     ebp, [eax+ebp-3F53D649h]
13896
                ror     ecx, 7
13897
                add     ebp, ecx
13898
                mov     eax, [esp+8]
13899
                mov     [esp+0Ch], ebp
13900
                mov     ebx, [esp+10h]
13901
                mov     edi, [esp+14h]
13902
                xor     ebp, 0FFFFFFFFh
13903
                mov     ecx, [esp+18h]
13904
                and     ebx, edi
13905
                mov     edx, [esp+4]
13906
                and     ebp, ecx
13907
                xor     ebx, [esp+1Ch]
13908
                xor     ebp, edx
13909
                xor     ecx, edi
13910
                xor     ebx, ebp
13911
                and     ecx, [esp+10h]
13912
                and     ebx, [esp]
13913
                ror     eax, 0Bh
13914
                xor     ecx, edx
13915
                mov     ebp, [esi+70h]
13916
                xor     ecx, ebx
13917
                and     edi, [esp+0Ch]
13918
                xor     ecx, edi
13919
                lea     ebp, [eax+ebp-3683AF23h]
13920
                ror     ecx, 7
13921
                add     ebp, ecx
13922
                mov     eax, [esp+4]
13923
                mov     [esp+8], ebp
13924
                mov     ebx, [esp+0Ch]
13925
                mov     edi, [esp+10h]
13926
                xor     ebp, 0FFFFFFFFh
13927
                mov     ecx, [esp+14h]
13928
                and     ebx, edi
13929
                mov     edx, [esp]
13930
                and     ebp, ecx
13931
                xor     ebx, [esp+18h]
13932
                xor     ebp, edx
13933
                xor     ecx, edi
13934
                xor     ebx, ebp
13935
                and     ecx, [esp+0Ch]
13936
                and     ebx, [esp+1Ch]
13937
                ror     eax, 0Bh
13938
                xor     ecx, edx
13939
                mov     ebp, [esi+1Ch]
13940
                xor     ecx, ebx
13941
                and     edi, [esp+8]
13942
                xor     ecx, edi
13943
                lea     ebp, [eax+ebp+3F84D5B5h]
13944
                ror     ecx, 7
13945
                add     ebp, ecx
13946
                mov     eax, [esp]
13947
                mov     [esp+4], ebp
13948
                mov     ebx, [esp+8]
13949
                mov     edi, [esp+0Ch]
13950
                xor     ebp, 0FFFFFFFFh
13951
                mov     ecx, [esp+10h]
13952
                and     ebx, edi
13953
                mov     edx, [esp+1Ch]
13954
                and     ebp, ecx
13955
                xor     ebx, [esp+14h]
13956
                xor     ebp, edx
13957
                xor     ecx, edi
13958
                xor     ebx, ebp
13959
                and     ecx, [esp+8]
13960
                and     ebx, [esp+18h]
13961
                ror     eax, 0Bh
13962
                xor     ecx, edx
13963
                mov     ebp, [esi+40h]
13964
                xor     ecx, ebx
13965
                and     edi, [esp+4]
13966
                xor     ecx, edi
13967
                lea     ebp, [eax+ebp-4AB8F6E9h]
13968
                ror     ecx, 7
13969
                add     ebp, ecx
13970
                mov     eax, [esp+1Ch]
13971
                mov     [esp], ebp
13972
                mov     ebx, [esp+4]
13973
                mov     edi, [esp+8]
13974
                xor     ebp, 0FFFFFFFFh
13975
                mov     ecx, [esp+0Ch]
13976
                and     ebx, edi
13977
                mov     edx, [esp+18h]
13978
                and     ebp, ecx
13979
                xor     ebx, [esp+10h]
13980
                xor     ebp, edx
13981
                xor     ecx, edi
13982
                xor     ebx, ebp
13983
                and     ecx, [esp+4]
13984
                and     ebx, [esp+14h]
13985
                ror     eax, 0Bh
13986
                xor     ecx, edx
13987
                mov     ebp, [esi]
13988
                xor     ecx, ebx
13989
                and     edi, [esp]
13990
                xor     ecx, edi
13991
                lea     ebp, [eax+ebp-6DE92A27h]
13992
                ror     ecx, 7
13993
                add     ebp, ecx
13994
                mov     eax, [esp+18h]
13995
                mov     [esp+1Ch], ebp
13996
                mov     ebx, [esp]
13997
                mov     edi, [esp+4]
13998
                xor     ebp, 0FFFFFFFFh
13999
                mov     ecx, [esp+8]
14000
                and     ebx, edi
14001
                mov     edx, [esp+14h]
14002
                and     ebp, ecx
14003
                xor     ebx, [esp+0Ch]
14004
                xor     ebp, edx
14005
                xor     ecx, edi
14006
                xor     ebx, ebp
14007
                and     ecx, [esp]
14008
                and     ebx, [esp+10h]
14009
                ror     eax, 0Bh
14010
                xor     ecx, edx
14011
                mov     ebp, [esi+5Ch]
14012
                xor     ecx, ebx
14013
                and     edi, [esp+1Ch]
14014
                xor     ecx, edi
14015
                lea     ebp, [eax+ebp-768604E5h]
14016
                ror     ecx, 7
14017
                add     ebp, ecx
14018
                mov     eax, [esp+14h]
14019
                mov     [esp+18h], ebp
14020
                mov     ebx, [esp+1Ch]
14021
                mov     edi, [esp]
14022
                xor     ebp, 0FFFFFFFFh
14023
                mov     ecx, [esp+4]
14024
                and     ebx, edi
14025
                mov     edx, [esp+10h]
14026
                and     ebp, ecx
14027
                xor     ebx, [esp+8]
14028
                xor     ebp, edx
14029
                xor     ecx, edi
14030
                xor     ebx, ebp
14031
                and     ecx, [esp+1Ch]
14032
                and     ebx, [esp+0Ch]
14033
                ror     eax, 0Bh
14034
                xor     ecx, edx
14035
                mov     ebp, [esi+50h]
14036
                xor     ecx, ebx
14037
                and     edi, [esp+18h]
14038
                xor     ecx, edi
14039
                lea     ebp, [eax+ebp-2ECEF45Ah]
14040
                ror     ecx, 7
14041
                add     ebp, ecx
14042
                mov     eax, [esp+10h]
14043
                mov     [esp+14h], ebp
14044
                mov     ebx, [esp+18h]
14045
                mov     edi, [esp+1Ch]
14046
                xor     ebp, 0FFFFFFFFh
14047
                mov     ecx, [esp]
14048
                and     ebx, edi
14049
                mov     edx, [esp+0Ch]
14050
                and     ebp, ecx
14051
                xor     ebx, [esp+4]
14052
                xor     ebp, edx
14053
                xor     ecx, edi
14054
                xor     ebx, ebp
14055
                and     ecx, [esp+18h]
14056
                and     ebx, [esp+8]
14057
                ror     eax, 0Bh
14058
                xor     ecx, edx
14059
                mov     ebp, [esi+58h]
14060
                xor     ecx, ebx
14061
                and     edi, [esp+14h]
14062
                xor     ecx, edi
14063
                lea     ebp, [eax+ebp-67204A54h]
14064
                ror     ecx, 7
14065
                add     ebp, ecx
14066
                mov     eax, [esp+0Ch]
14067
                mov     [esp+10h], ebp
14068
                mov     ebx, [esp+14h]
14069
                mov     edi, [esp+18h]
14070
                xor     ebp, 0FFFFFFFFh
14071
                mov     ecx, [esp+1Ch]
14072
                and     ebx, edi
14073
                mov     edx, [esp+8]
14074
                and     ebp, ecx
14075
                xor     ebx, [esp]
14076
                xor     ebp, edx
14077
                xor     ecx, edi
14078
                xor     ebx, ebp
14079
                and     ecx, [esp+14h]
14080
                and     ebx, [esp+4]
14081
                ror     eax, 0Bh
14082
                xor     ecx, edx
14083
                mov     ebp, [esi+4]
14084
                xor     ecx, ebx
14085
                and     edi, [esp+10h]
14086
                xor     ecx, edi
14087
                lea     ebp, [eax+ebp+2FFD72DBh]
14088
                ror     ecx, 7
14089
                add     ebp, ecx
14090
                mov     eax, [esp+8]
14091
                mov     [esp+0Ch], ebp
14092
                mov     ebx, [esp+10h]
14093
                mov     edi, [esp+14h]
14094
                xor     ebp, 0FFFFFFFFh
14095
                mov     ecx, [esp+18h]
14096
                and     ebx, edi
14097
                mov     edx, [esp+4]
14098
                and     ebp, ecx
14099
                xor     ebx, [esp+1Ch]
14100
                xor     ebp, edx
14101
                xor     ecx, edi
14102
                xor     ebx, ebp
14103
                and     ecx, [esp+10h]
14104
                and     ebx, [esp]
14105
                ror     eax, 0Bh
14106
                xor     ecx, edx
14107
                mov     ebp, [esi+28h]
14108
                xor     ecx, ebx
14109
                and     edi, [esp+0Ch]
14110
                xor     ecx, edi
14111
                lea     ebp, [eax+ebp-2FE52049h]
14112
                ror     ecx, 7
14113
                add     ebp, ecx
14114
                mov     eax, [esp+4]
14115
                mov     [esp+8], ebp
14116
                mov     ebx, [esp+0Ch]
14117
                mov     edi, [esp+10h]
14118
                xor     ebp, 0FFFFFFFFh
14119
                mov     ecx, [esp+14h]
14120
                and     ebx, edi
14121
                mov     edx, [esp]
14122
                and     ebp, ecx
14123
                xor     ebx, [esp+18h]
14124
                xor     ebp, edx
14125
                xor     ecx, edi
14126
                xor     ebx, ebp
14127
                and     ecx, [esp+0Ch]
14128
                and     ebx, [esp+1Ch]
14129
                ror     eax, 0Bh
14130
                xor     ecx, edx
14131
                mov     ebp, [esi+10h]
14132
                xor     ecx, ebx
14133
                and     edi, [esp+8]
14134
                xor     ecx, edi
14135
                lea     ebp, [eax+ebp-471E5013h]
14136
                ror     ecx, 7
14137
                add     ebp, ecx
14138
                mov     eax, [esp]
14139
                mov     [esp+4], ebp
14140
                mov     ebx, [esp+8]
14141
                mov     edi, [esp+0Ch]
14142
                xor     ebp, 0FFFFFFFFh
14143
                mov     ecx, [esp+10h]
14144
                and     ebx, edi
14145
                mov     edx, [esp+1Ch]
14146
                and     ebp, ecx
14147
                xor     ebx, [esp+14h]
14148
                xor     ebp, edx
14149
                xor     ecx, edi
14150
                xor     ebx, ebp
14151
                and     ecx, [esp+8]
14152
                and     ebx, [esp+18h]
14153
                ror     eax, 0Bh
14154
                xor     ecx, edx
14155
                mov     ebp, [esi+20h]
14156
                xor     ecx, ebx
14157
                and     edi, [esp+4]
14158
                xor     ecx, edi
14159
                lea     ebp, [eax+ebp+6A267E96h]
14160
                ror     ecx, 7
14161
                add     ebp, ecx
14162
                mov     eax, [esp+1Ch]
14163
                mov     [esp], ebp
14164
                mov     ebx, [esp+4]
14165
                mov     edi, [esp+8]
14166
                xor     ebp, 0FFFFFFFFh
14167
                mov     ecx, [esp+0Ch]
14168
                and     ebx, edi
14169
                mov     edx, [esp+18h]
14170
                and     ebp, ecx
14171
                xor     ebx, [esp+10h]
14172
                xor     ebp, edx
14173
                xor     ecx, edi
14174
                xor     ebx, ebp
14175
                and     ecx, [esp+4]
14176
                and     ebx, [esp+14h]
14177
                ror     eax, 0Bh
14178
                xor     ecx, edx
14179
                mov     ebp, [esi+78h]
14180
                xor     ecx, ebx
14181
                and     edi, [esp]
14182
                xor     ecx, edi
14183
                lea     ebp, [eax+ebp-45836FBBh]
14184
                ror     ecx, 7
14185
                add     ebp, ecx
14186
                mov     eax, [esp+18h]
14187
                mov     [esp+1Ch], ebp
14188
                mov     ebx, [esp]
14189
                mov     edi, [esp+4]
14190
                xor     ebp, 0FFFFFFFFh
14191
                mov     ecx, [esp+8]
14192
                and     ebx, edi
14193
                mov     edx, [esp+14h]
14194
                and     ebp, ecx
14195
                xor     ebx, [esp+0Ch]
14196
                xor     ebp, edx
14197
                xor     ecx, edi
14198
                xor     ebx, ebp
14199
                and     ecx, [esp]
14200
                and     ebx, [esp+10h]
14201
                ror     eax, 0Bh
14202
                xor     ecx, edx
14203
                mov     ebp, [esi+0Ch]
14204
                xor     ecx, ebx
14205
                and     edi, [esp+1Ch]
14206
                xor     ecx, edi
14207
                lea     ebp, [eax+ebp-0ED38067h]
14208
                ror     ecx, 7
14209
                add     ebp, ecx
14210
                mov     eax, [esp+14h]
14211
                mov     [esp+18h], ebp
14212
                mov     ebx, [esp+1Ch]
14213
                mov     edi, [esp]
14214
                xor     ebp, 0FFFFFFFFh
14215
                mov     ecx, [esp+4]
14216
                and     ebx, edi
14217
                mov     edx, [esp+10h]
14218
                and     ebp, ecx
14219
                xor     ebx, [esp+8]
14220
                xor     ebp, edx
14221
                xor     ecx, edi
14222
                xor     ebx, ebp
14223
                and     ecx, [esp+1Ch]
14224
                and     ebx, [esp+0Ch]
14225
                ror     eax, 0Bh
14226
                xor     ecx, edx
14227
                mov     ebp, [esi+54h]
14228
                xor     ecx, ebx
14229
                and     edi, [esp+18h]
14230
                xor     ecx, edi
14231
                lea     ebp, [eax+ebp+24A19947h]
14232
                ror     ecx, 7
14233
                add     ebp, ecx
14234
                mov     eax, [esp+10h]
14235
                mov     [esp+14h], ebp
14236
                mov     ebx, [esp+18h]
14237
                mov     edi, [esp+1Ch]
14238
                xor     ebp, 0FFFFFFFFh
14239
                mov     ecx, [esp]
14240
                and     ebx, edi
14241
                mov     edx, [esp+0Ch]
14242
                and     ebp, ecx
14243
                xor     ebx, [esp+4]
14244
                xor     ebp, edx
14245
                xor     ecx, edi
14246
                xor     ebx, ebp
14247
                and     ecx, [esp+18h]
14248
                and     ebx, [esp+8]
14249
                ror     eax, 0Bh
14250
                xor     ecx, edx
14251
                mov     ebp, [esi+24h]
14252
                xor     ecx, ebx
14253
                and     edi, [esp+14h]
14254
                xor     ecx, edi
14255
                lea     ebp, [eax+ebp-4C6E9309h]
14256
                ror     ecx, 7
14257
                add     ebp, ecx
14258
                mov     eax, [esp+0Ch]
14259
                mov     [esp+10h], ebp
14260
                mov     ebx, [esp+14h]
14261
                mov     edi, [esp+18h]
14262
                xor     ebp, 0FFFFFFFFh
14263
                mov     ecx, [esp+1Ch]
14264
                and     ebx, edi
14265
                mov     edx, [esp+8]
14266
                and     ebp, ecx
14267
                xor     ebx, [esp]
14268
                xor     ebp, edx
14269
                xor     ecx, edi
14270
                xor     ebx, ebp
14271
                and     ecx, [esp+14h]
14272
                and     ebx, [esp+4]
14273
                ror     eax, 0Bh
14274
                xor     ecx, edx
14275
                mov     ebp, [esi+44h]
14276
                xor     ecx, ebx
14277
                and     edi, [esp+10h]
14278
                xor     ecx, edi
14279
                lea     ebp, [eax+ebp+801F2E2h]
14280
                ror     ecx, 7
14281
                add     ebp, ecx
14282
                mov     eax, [esp+8]
14283
                mov     [esp+0Ch], ebp
14284
                mov     ebx, [esp+10h]
14285
                mov     edi, [esp+14h]
14286
                xor     ebp, 0FFFFFFFFh
14287
                mov     ecx, [esp+18h]
14288
                and     ebx, edi
14289
                mov     edx, [esp+4]
14290
                and     ebp, ecx
14291
                xor     ebx, [esp+1Ch]
14292
                xor     ebp, edx
14293
                xor     ecx, edi
14294
                xor     ebx, ebp
14295
                and     ecx, [esp+10h]
14296
                and     ebx, [esp]
14297
                ror     eax, 0Bh
14298
                xor     ecx, edx
14299
                mov     ebp, [esi+60h]
14300
                xor     ecx, ebx
14301
                and     edi, [esp+0Ch]
14302
                xor     ecx, edi
14303
                lea     ebp, [eax+ebp-7A7103EAh]
14304
                ror     ecx, 7
14305
                add     ebp, ecx
14306
                mov     eax, [esp+4]
14307
                mov     [esp+8], ebp
14308
                mov     ebx, [esp+0Ch]
14309
                mov     edi, [esp+10h]
14310
                xor     ebp, 0FFFFFFFFh
14311
                mov     ecx, [esp+14h]
14312
                and     ebx, edi
14313
                mov     edx, [esp]
14314
                and     ebp, ecx
14315
                xor     ebx, [esp+18h]
14316
                xor     ebp, edx
14317
                xor     ecx, edi
14318
                xor     ebx, ebp
14319
                and     ecx, [esp+0Ch]
14320
                and     ebx, [esp+1Ch]
14321
                ror     eax, 0Bh
14322
                xor     ecx, edx
14323
                mov     ebp, [esi+74h]
14324
                xor     ecx, ebx
14325
                and     edi, [esp+8]
14326
                xor     ecx, edi
14327
                lea     ebp, [eax+ebp+636920D8h]
14328
                ror     ecx, 7
14329
                add     ebp, ecx
14330
                mov     eax, [esp]
14331
                mov     [esp+4], ebp
14332
                mov     ebx, [esp+8]
14333
                mov     edi, [esp+0Ch]
14334
                xor     ebp, 0FFFFFFFFh
14335
                mov     ecx, [esp+10h]
14336
                and     ebx, edi
14337
                mov     edx, [esp+1Ch]
14338
                and     ebp, ecx
14339
                xor     ebx, [esp+14h]
14340
                xor     ebp, edx
14341
                xor     ecx, edi
14342
                xor     ebx, ebp
14343
                and     ecx, [esp+8]
14344
                and     ebx, [esp+18h]
14345
                ror     eax, 0Bh
14346
                xor     ecx, edx
14347
                mov     ebp, [esi+18h]
14348
                xor     ecx, ebx
14349
                and     edi, [esp+4]
14350
                xor     ecx, edi
14351
                lea     ebp, [eax+ebp+71574E69h]
14352
                ror     ecx, 7
14353
                add     ebp, ecx
14354
                mov     eax, [esp+1Ch]
14355
                mov     [esp], ebp
14356
                mov     ebx, [esp+4]
14357
                mov     edi, [esp+8]
14358
                xor     ebp, 0FFFFFFFFh
14359
                mov     ecx, [esp+0Ch]
14360
                and     ebx, edi
14361
                mov     edx, [esp+18h]
14362
                and     ebp, ecx
14363
                xor     ebx, [esp+10h]
14364
                xor     ebp, edx
14365
                xor     ecx, edi
14366
                xor     ebx, ebp
14367
                and     ecx, [esp+4]
14368
                and     ebx, [esp+14h]
14369
                ror     eax, 0Bh
14370
                xor     ecx, edx
14371
                mov     ebp, [esi+4Ch]
14372
                xor     ecx, ebx
14373
                and     edi, [esp]
14374
                xor     ecx, edi
14375
                lea     ebp, [eax+ebp-5BA7015Dh]
14376
                ror     ecx, 7
14377
                add     ebp, ecx
14378
                mov     eax, [esp+18h]
14379
                mov     [esp+1Ch], ebp
14380
                mov     ebx, [esp]
14381
                mov     edi, [esp+4]
14382
                xor     ebp, 0FFFFFFFFh
14383
                mov     ecx, [esp+8]
14384
                and     ebx, edi
14385
                mov     edx, [esp+14h]
14386
                and     ebp, ecx
14387
                xor     ebx, [esp+0Ch]
14388
                xor     ebp, edx
14389
                xor     ecx, edi
14390
                xor     ebx, ebp
14391
                and     ecx, [esp]
14392
                and     ebx, [esp+10h]
14393
                ror     eax, 0Bh
14394
                xor     ecx, edx
14395
                mov     ebp, [esi+30h]
14396
                xor     ecx, ebx
14397
                and     edi, [esp+1Ch]
14398
                xor     ecx, edi
14399
                lea     ebp, [eax+ebp-0B6CC282h]
14400
                ror     ecx, 7
14401
                add     ebp, ecx
14402
                mov     eax, [esp+14h]
14403
                mov     [esp+18h], ebp
14404
                mov     ebx, [esp+1Ch]
14405
                mov     edi, [esp]
14406
                xor     ebp, 0FFFFFFFFh
14407
                mov     ecx, [esp+4]
14408
                and     ebx, edi
14409
                mov     edx, [esp+10h]
14410
                and     ebp, ecx
14411
                xor     ebx, [esp+8]
14412
                xor     ebp, edx
14413
                xor     ecx, edi
14414
                xor     ebx, ebp
14415
                and     ecx, [esp+1Ch]
14416
                and     ebx, [esp+0Ch]
14417
                ror     eax, 0Bh
14418
                xor     ecx, edx
14419
                mov     ebp, [esi+3Ch]
14420
                xor     ecx, ebx
14421
                and     edi, [esp+18h]
14422
                xor     ecx, edi
14423
                lea     ebp, [eax+ebp+0D95748Fh]
14424
                ror     ecx, 7
14425
                add     ebp, ecx
14426
                mov     eax, [esp+10h]
14427
                mov     [esp+14h], ebp
14428
                mov     ebx, [esp+18h]
14429
                mov     edi, [esp+1Ch]
14430
                xor     ebp, 0FFFFFFFFh
14431
                mov     ecx, [esp]
14432
                and     ebx, edi
14433
                mov     edx, [esp+0Ch]
14434
                and     ebp, ecx
14435
                xor     ebx, [esp+4]
14436
                xor     ebp, edx
14437
                xor     ecx, edi
14438
                xor     ebx, ebp
14439
                and     ecx, [esp+18h]
14440
                and     ebx, [esp+8]
14441
                ror     eax, 0Bh
14442
                xor     ecx, edx
14443
                mov     ebp, [esi+34h]
14444
                xor     ecx, ebx
14445
                and     edi, [esp+14h]
14446
                xor     ecx, edi
14447
                lea     ebp, [eax+ebp+728EB658h]
14448
                ror     ecx, 7
14449
                add     ebp, ecx
14450
                mov     eax, [esp+0Ch]
14451
                mov     [esp+10h], ebp
14452
                mov     ebx, [esp+14h]
14453
                mov     edi, [esp+18h]
14454
                xor     ebp, 0FFFFFFFFh
14455
                mov     ecx, [esp+1Ch]
14456
                and     ebx, edi
14457
                mov     edx, [esp+8]
14458
                and     ebp, ecx
14459
                xor     ebx, [esp]
14460
                xor     ebp, edx
14461
                xor     ecx, edi
14462
                xor     ebx, ebp
14463
                and     ecx, [esp+14h]
14464
                and     ebx, [esp+4]
14465
                ror     eax, 0Bh
14466
                xor     ecx, edx
14467
                mov     ebp, [esi+8]
14468
                xor     ecx, ebx
14469
                and     edi, [esp+10h]
14470
                xor     ecx, edi
14471
                lea     ebp, [eax+ebp+718BCD58h]
14472
                ror     ecx, 7
14473
                add     ebp, ecx
14474
                mov     eax, [esp+8]
14475
                mov     [esp+0Ch], ebp
14476
                mov     ebx, [esp+10h]
14477
                mov     edi, [esp+14h]
14478
                xor     ebp, 0FFFFFFFFh
14479
                mov     ecx, [esp+18h]
14480
                and     ebx, edi
14481
                mov     edx, [esp+4]
14482
                and     ebp, ecx
14483
                xor     ebx, [esp+1Ch]
14484
                xor     ebp, edx
14485
                xor     ecx, edi
14486
                xor     ebx, ebp
14487
                and     ecx, [esp+10h]
14488
                and     ebx, [esp]
14489
                ror     eax, 0Bh
14490
                xor     ecx, edx
14491
                mov     ebp, [esi+64h]
14492
                xor     ecx, ebx
14493
                and     edi, [esp+0Ch]
14494
                xor     ecx, edi
14495
                lea     ebp, [eax+ebp-7DEAB512h]
14496
                ror     ecx, 7
14497
                add     ebp, ecx
14498
                mov     eax, [esp+4]
14499
                mov     [esp+8], ebp
14500
                mov     ebx, [esp+0Ch]
14501
                mov     edi, [esp+10h]
14502
                xor     ebp, 0FFFFFFFFh
14503
                mov     ecx, [esp+14h]
14504
                and     ebx, edi
14505
                mov     edx, [esp]
14506
                and     ebp, ecx
14507
                xor     ebx, [esp+18h]
14508
                xor     ebp, edx
14509
                xor     ecx, edi
14510
                xor     ebx, ebp
14511
                and     ecx, [esp+0Ch]
14512
                and     ebx, [esp+1Ch]
14513
                ror     eax, 0Bh
14514
                xor     ecx, edx
14515
                mov     ebp, [esi+7Ch]
14516
                xor     ecx, ebx
14517
                and     edi, [esp+8]
14518
                xor     ecx, edi
14519
                lea     ebp, [eax+ebp+7B54A41Dh]
14520
                ror     ecx, 7
14521
                add     ebp, ecx
14522
                mov     eax, [esp]
14523
                mov     [esp+4], ebp
14524
                mov     ebx, [esp+8]
14525
                mov     edi, [esp+0Ch]
14526
                xor     ebp, 0FFFFFFFFh
14527
                mov     ecx, [esp+10h]
14528
                and     ebx, edi
14529
                mov     edx, [esp+1Ch]
14530
                and     ebp, ecx
14531
                xor     ebx, [esp+14h]
14532
                xor     ebp, edx
14533
                xor     ecx, edi
14534
                xor     ebx, ebp
14535
                and     ecx, [esp+8]
14536
                and     ebx, [esp+18h]
14537
                ror     eax, 0Bh
14538
                xor     ecx, edx
14539
                mov     ebp, [esi+6Ch]
14540
                xor     ecx, ebx
14541
                and     edi, [esp+4]
14542
                xor     ecx, edi
14543
                lea     ebp, [eax+ebp-3DA5A64Bh]
14544
                ror     ecx, 7
14545
                add     ebp, ecx
14546
                mov     eax, [esp+1Ch]
14547
                mov     [esp], ebp
14548
                mov     ebx, [esp+10h]
14549
                mov     ecx, [esp+14h]
14550
                mov     edi, ebx
14551
                and     ebx, [esp+4]
14552
                and     edi, ecx
14553
                xor     ebx, ebp
14554
                ror     eax, 0Bh
14555
                xor     edi, ebp
14556
                mov     ebp, [esi+4Ch]
14557
                xor     edi, [esp+18h]
14558
                and     ecx, [esp+8]
14559
                and     edi, [esp+0Ch]
14560
                xor     ecx, ebx
14561
                lea     ebp, [eax+ebp-63CF2AC7h]
14562
                xor     ecx, edi
14563
                ror     ecx, 7
14564
                add     ebp, ecx
14565
                mov     eax, [esp+18h]
14566
                mov     [esp+1Ch], ebp
14567
                mov     ebx, [esp+0Ch]
14568
                mov     ecx, [esp+10h]
14569
                mov     edi, ebx
14570
                and     ebx, [esp]
14571
                and     edi, ecx
14572
                xor     ebx, ebp
14573
                ror     eax, 0Bh
14574
                xor     edi, ebp
14575
                mov     ebp, [esi+24h]
14576
                xor     edi, [esp+14h]
14577
                and     ecx, [esp+4]
14578
                and     edi, [esp+8]
14579
                xor     ecx, ebx
14580
                lea     ebp, [eax+ebp+2AF26013h]
14581
                xor     ecx, edi
14582
                ror     ecx, 7
14583
                add     ebp, ecx
14584
                mov     eax, [esp+14h]
14585
                mov     [esp+18h], ebp
14586
                mov     ebx, [esp+8]
14587
                mov     ecx, [esp+0Ch]
14588
                mov     edi, ebx
14589
                and     ebx, [esp+1Ch]
14590
                and     edi, ecx
14591
                xor     ebx, ebp
14592
                ror     eax, 0Bh
14593
                xor     edi, ebp
14594
                mov     ebp, [esi+10h]
14595
                xor     edi, [esp+10h]
14596
                and     ecx, [esp]
14597
                and     edi, [esp+4]
14598
                xor     ecx, ebx
14599
                lea     ebp, [eax+ebp-3A2E4FDDh]
14600
                xor     ecx, edi
14601
                ror     ecx, 7
14602
                add     ebp, ecx
14603
                mov     eax, [esp+10h]
14604
                mov     [esp+14h], ebp
14605
                mov     ebx, [esp+4]
14606
                mov     ecx, [esp+8]
14607
                mov     edi, ebx
14608
                and     ebx, [esp+18h]
14609
                and     edi, ecx
14610
                xor     ebx, ebp
14611
                ror     eax, 0Bh
14612
                xor     edi, ebp
14613
                mov     ebp, [esi+50h]
14614
                xor     edi, [esp+0Ch]
14615
                and     ecx, [esp+1Ch]
14616
                and     edi, [esp]
14617
                xor     ecx, ebx
14618
                lea     ebp, [eax+ebp+286085F0h]
14619
                xor     ecx, edi
14620
                ror     ecx, 7
14621
                add     ebp, ecx
14622
                mov     eax, [esp+0Ch]
14623
                mov     [esp+10h], ebp
14624
                mov     ebx, [esp]
14625
                mov     ecx, [esp+4]
14626
                mov     edi, ebx
14627
                and     ebx, [esp+14h]
14628
                and     edi, ecx
14629
                xor     ebx, ebp
14630
                ror     eax, 0Bh
14631
                xor     edi, ebp
14632
                mov     ebp, [esi+70h]
14633
                xor     edi, [esp+8]
14634
                and     ecx, [esp+18h]
14635
                and     edi, [esp+1Ch]
14636
                xor     ecx, ebx
14637
                lea     ebp, [eax+ebp-35BE86E8h]
14638
                xor     ecx, edi
14639
                ror     ecx, 7
14640
                add     ebp, ecx
14641
                mov     eax, [esp+8]
14642
                mov     [esp+0Ch], ebp
14643
                mov     ebx, [esp+1Ch]
14644
                mov     ecx, [esp]
14645
                mov     edi, ebx
14646
                and     ebx, [esp+10h]
14647
                and     edi, ecx
14648
                xor     ebx, ebp
14649
                ror     eax, 0Bh
14650
                xor     edi, ebp
14651
                mov     ebp, [esi+44h]
14652
                xor     edi, [esp+4]
14653
                and     ecx, [esp+14h]
14654
                and     edi, [esp+18h]
14655
                xor     ecx, ebx
14656
                lea     ebp, [eax+ebp-4724C711h]
14657
                xor     ecx, edi
14658
                ror     ecx, 7
14659
                add     ebp, ecx
14660
                mov     eax, [esp+4]
14661
                mov     [esp+8], ebp
14662
                mov     ebx, [esp+18h]
14663
                mov     ecx, [esp+1Ch]
14664
                mov     edi, ebx
14665
                and     ebx, [esp+0Ch]
14666
                and     edi, ecx
14667
                xor     ebx, ebp
14668
                ror     eax, 0Bh
14669
                xor     edi, ebp
14670
                mov     ebp, [esi+20h]
14671
                xor     edi, [esp]
14672
                and     ecx, [esp+10h]
14673
                and     edi, [esp+14h]
14674
                xor     ecx, ebx
14675
                lea     ebp, [eax+ebp-71862350h]
14676
                xor     ecx, edi
14677
                ror     ecx, 7
14678
                add     ebp, ecx
14679
                mov     eax, [esp]
14680
                mov     [esp+4], ebp
14681
                mov     ebx, [esp+14h]
14682
                mov     ecx, [esp+18h]
14683
                mov     edi, ebx
14684
                and     ebx, [esp+8]
14685
                and     edi, ecx
14686
                xor     ebx, ebp
14687
                ror     eax, 0Bh
14688
                xor     edi, ebp
14689
                mov     ebp, [esi+58h]
14690
                xor     edi, [esp+1Ch]
14691
                and     ecx, [esp+0Ch]
14692
                and     edi, [esp+10h]
14693
                xor     ecx, ebx
14694
                lea     ebp, [eax+ebp+603A180Eh]
14695
                xor     ecx, edi
14696
                ror     ecx, 7
14697
                add     ebp, ecx
14698
                mov     eax, [esp+1Ch]
14699
                mov     [esp], ebp
14700
                mov     ebx, [esp+10h]
14701
                mov     ecx, [esp+14h]
14702
                mov     edi, ebx
14703
                and     ebx, [esp+4]
14704
                and     edi, ecx
14705
                xor     ebx, ebp
14706
                ror     eax, 0Bh
14707
                xor     edi, ebp
14708
                mov     ebp, [esi+74h]
14709
                xor     edi, [esp+18h]
14710
                and     ecx, [esp+8]
14711
                and     edi, [esp+0Ch]
14712
                xor     ecx, ebx
14713
                lea     ebp, [eax+ebp+6C9E0E8Bh]
14714
                xor     ecx, edi
14715
                ror     ecx, 7
14716
                add     ebp, ecx
14717
                mov     eax, [esp+18h]
14718
                mov     [esp+1Ch], ebp
14719
                mov     ebx, [esp+0Ch]
14720
                mov     ecx, [esp+10h]
14721
                mov     edi, ebx
14722
                and     ebx, [esp]
14723
                and     edi, ecx
14724
                xor     ebx, ebp
14725
                ror     eax, 0Bh
14726
                xor     edi, ebp
14727
                mov     ebp, [esi+38h]
14728
                xor     edi, [esp+14h]
14729
                and     ecx, [esp+4]
14730
                and     edi, [esp+8]
14731
                xor     ecx, ebx
14732
                lea     ebp, [eax+ebp-4FE175C2h]
14733
                xor     ecx, edi
14734
                ror     ecx, 7
14735
                add     ebp, ecx
14736
                mov     eax, [esp+14h]
14737
                mov     [esp+18h], ebp
14738
                mov     ebx, [esp+8]
14739
                mov     ecx, [esp+0Ch]
14740
                mov     edi, ebx
14741
                and     ebx, [esp+1Ch]
14742
                and     edi, ecx
14743
                xor     ebx, ebp
14744
                ror     eax, 0Bh
14745
                xor     edi, ebp
14746
                mov     ebp, [esi+64h]
14747
                xor     edi, [esp+10h]
14748
                and     ecx, [esp]
14749
                and     edi, [esp+4]
14750
                xor     ecx, ebx
14751
                lea     ebp, [eax+ebp-28EA883Fh]
14752
                xor     ecx, edi
14753
                ror     ecx, 7
14754
                add     ebp, ecx
14755
                mov     eax, [esp+10h]
14756
                mov     [esp+14h], ebp
14757
                mov     ebx, [esp+4]
14758
                mov     ecx, [esp+8]
14759
                mov     edi, ebx
14760
                and     ebx, [esp+18h]
14761
                and     edi, ecx
14762
                xor     ebx, ebp
14763
                ror     eax, 0Bh
14764
                xor     edi, ebp
14765
                mov     ebp, [esi+30h]
14766
                xor     edi, [esp+0Ch]
14767
                and     ecx, [esp+1Ch]
14768
                and     edi, [esp]
14769
                xor     ecx, ebx
14770
                lea     ebp, [eax+ebp-42CEB4D9h]
14771
                xor     ecx, edi
14772
                ror     ecx, 7
14773
                add     ebp, ecx
14774
                mov     eax, [esp+0Ch]
14775
                mov     [esp+10h], ebp
14776
                mov     ebx, [esp]
14777
                mov     ecx, [esp+4]
14778
                mov     edi, ebx
14779
                and     ebx, [esp+14h]
14780
                and     edi, ecx
14781
                xor     ebx, ebp
14782
                ror     eax, 0Bh
14783
                xor     edi, ebp
14784
                mov     ebp, [esi+60h]
14785
                xor     edi, [esp+8]
14786
                and     ecx, [esp+18h]
14787
                and     edi, [esp+1Ch]
14788
                xor     ecx, ebx
14789
                lea     ebp, [eax+ebp+78AF2FDAh]
14790
                xor     ecx, edi
14791
                ror     ecx, 7
14792
                add     ebp, ecx
14793
                mov     eax, [esp+8]
14794
                mov     [esp+0Ch], ebp
14795
                mov     ebx, [esp+1Ch]
14796
                mov     ecx, [esp]
14797
                mov     edi, ebx
14798
                and     ebx, [esp+10h]
14799
                and     edi, ecx
14800
                xor     ebx, ebp
14801
                ror     eax, 0Bh
14802
                xor     edi, ebp
14803
                mov     ebp, [esi+78h]
14804
                xor     edi, [esp+4]
14805
                and     ecx, [esp+14h]
14806
                and     edi, [esp+18h]
14807
                xor     ecx, ebx
14808
                lea     ebp, [eax+ebp+55605C60h]
14809
                xor     ecx, edi
14810
                ror     ecx, 7
14811
                add     ebp, ecx
14812
                mov     eax, [esp+4]
14813
                mov     [esp+8], ebp
14814
                mov     ebx, [esp+18h]
14815
                mov     ecx, [esp+1Ch]
14816
                mov     edi, ebx
14817
                and     ebx, [esp+0Ch]
14818
                and     edi, ecx
14819
                xor     ebx, ebp
14820
                ror     eax, 0Bh
14821
                xor     edi, ebp
14822
                mov     ebp, [esi+40h]
14823
                xor     edi, [esp]
14824
                and     ecx, [esp+10h]
14825
                and     edi, [esp+14h]
14826
                xor     ecx, ebx
14827
                lea     ebp, [eax+ebp-19AADA0Dh]
14828
                xor     ecx, edi
14829
                ror     ecx, 7
14830
                add     ebp, ecx
14831
                mov     eax, [esp]
14832
                mov     [esp+4], ebp
14833
                mov     ebx, [esp+14h]
14834
                mov     ecx, [esp+18h]
14835
                mov     edi, ebx
14836
                and     ebx, [esp+8]
14837
                and     edi, ecx
14838
                xor     ebx, ebp
14839
                ror     eax, 0Bh
14840
                xor     edi, ebp
14841
                mov     ebp, [esi+68h]
14842
                xor     edi, [esp+1Ch]
14843
                and     ecx, [esp+0Ch]
14844
                and     edi, [esp+10h]
14845
                xor     ecx, ebx
14846
                lea     ebp, [eax+ebp-55AA546Ch]
14847
                xor     ecx, edi
14848
                ror     ecx, 7
14849
                add     ebp, ecx
14850
                mov     eax, [esp+1Ch]
14851
                mov     [esp], ebp
14852
                mov     ebx, [esp+10h]
14853
                mov     ecx, [esp+14h]
14854
                mov     edi, ebx
14855
                and     ebx, [esp+4]
14856
                and     edi, ecx
14857
                xor     ebx, ebp
14858
                ror     eax, 0Bh
14859
                xor     edi, ebp
14860
                mov     ebp, [esi+7Ch]
14861
                xor     edi, [esp+18h]
14862
                and     ecx, [esp+8]
14863
                and     edi, [esp+0Ch]
14864
                xor     ecx, ebx
14865
                lea     ebp, [eax+ebp+57489862h]
14866
                xor     ecx, edi
14867
                ror     ecx, 7
14868
                add     ebp, ecx
14869
                mov     eax, [esp+18h]
14870
                mov     [esp+1Ch], ebp
14871
                mov     ebx, [esp+0Ch]
14872
                mov     ecx, [esp+10h]
14873
                mov     edi, ebx
14874
                and     ebx, [esp]
14875
                and     edi, ecx
14876
                xor     ebx, ebp
14877
                ror     eax, 0Bh
14878
                xor     edi, ebp
14879
                mov     ebp, [esi+3Ch]
14880
                xor     edi, [esp+14h]
14881
                and     ecx, [esp+4]
14882
                and     edi, [esp+8]
14883
                xor     ecx, ebx
14884
                lea     ebp, [eax+ebp+63E81440h]
14885
                xor     ecx, edi
14886
                ror     ecx, 7
14887
                add     ebp, ecx
14888
                mov     eax, [esp+14h]
14889
                mov     [esp+18h], ebp
14890
                mov     ebx, [esp+8]
14891
                mov     ecx, [esp+0Ch]
14892
                mov     edi, ebx
14893
                and     ebx, [esp+1Ch]
14894
                and     edi, ecx
14895
                xor     ebx, ebp
14896
                ror     eax, 0Bh
14897
                xor     edi, ebp
14898
                mov     ebp, [esi+1Ch]
14899
                xor     edi, [esp+10h]
14900
                and     ecx, [esp]
14901
                and     edi, [esp+4]
14902
                xor     ecx, ebx
14903
                lea     ebp, [eax+ebp+55CA396Ah]
14904
                xor     ecx, edi
14905
                ror     ecx, 7
14906
                add     ebp, ecx
14907
                mov     eax, [esp+10h]
14908
                mov     [esp+14h], ebp
14909
                mov     ebx, [esp+4]
14910
                mov     ecx, [esp+8]
14911
                mov     edi, ebx
14912
                and     ebx, [esp+18h]
14913
                and     edi, ecx
14914
                xor     ebx, ebp
14915
                ror     eax, 0Bh
14916
                xor     edi, ebp
14917
                mov     ebp, [esi+0Ch]
14918
                xor     edi, [esp+0Ch]
14919
                and     ecx, [esp+1Ch]
14920
                and     edi, [esp]
14921
                xor     ecx, ebx
14922
                lea     ebp, [eax+ebp+2AAB10B6h]
14923
                xor     ecx, edi
14924
                ror     ecx, 7
14925
                add     ebp, ecx
14926
                mov     eax, [esp+0Ch]
14927
                mov     [esp+10h], ebp
14928
                mov     ebx, [esp]
14929
                mov     ecx, [esp+4]
14930
                mov     edi, ebx
14931
                and     ebx, [esp+14h]
14932
                and     edi, ecx
14933
                xor     ebx, ebp
14934
                ror     eax, 0Bh
14935
                xor     edi, ebp
14936
                mov     ebp, [esi+4]
14937
                xor     edi, [esp+8]
14938
                and     ecx, [esp+18h]
14939
                and     edi, [esp+1Ch]
14940
                xor     ecx, ebx
14941
                lea     ebp, [eax+ebp-4B33A3CCh]
14942
                xor     ecx, edi
14943
                ror     ecx, 7
14944
                add     ebp, ecx
14945
                mov     eax, [esp+8]
14946
                mov     [esp+0Ch], ebp
14947
                mov     ebx, [esp+1Ch]
14948
                mov     ecx, [esp]
14949
                mov     edi, ebx
14950
                and     ebx, [esp+10h]
14951
                and     edi, ecx
14952
                xor     ebx, ebp
14953
                ror     eax, 0Bh
14954
                xor     edi, ebp
14955
                mov     ebp, [esi]
14956
                xor     edi, [esp+4]
14957
                and     ecx, [esp+14h]
14958
                and     edi, [esp+18h]
14959
                xor     ecx, ebx
14960
                lea     ebp, [eax+ebp+1141E8CEh]
14961
                xor     ecx, edi
14962
                ror     ecx, 7
14963
                add     ebp, ecx
14964
                mov     eax, [esp+4]
14965
                mov     [esp+8], ebp
14966
                mov     ebx, [esp+18h]
14967
                mov     ecx, [esp+1Ch]
14968
                mov     edi, ebx
14969
                and     ebx, [esp+0Ch]
14970
                and     edi, ecx
14971
                xor     ebx, ebp
14972
                ror     eax, 0Bh
14973
                xor     edi, ebp
14974
                mov     ebp, [esi+48h]
14975
                xor     edi, [esp]
14976
                and     ecx, [esp+10h]
14977
                and     edi, [esp+14h]
14978
                xor     ecx, ebx
14979
                lea     ebp, [eax+ebp-5EAB7951h]
14980
                xor     ecx, edi
14981
                ror     ecx, 7
14982
                add     ebp, ecx
14983
                mov     eax, [esp]
14984
                mov     [esp+4], ebp
14985
                mov     ebx, [esp+14h]
14986
                mov     ecx, [esp+18h]
14987
                mov     edi, ebx
14988
                and     ebx, [esp+8]
14989
                and     edi, ecx
14990
                xor     ebx, ebp
14991
                ror     eax, 0Bh
14992
                xor     edi, ebp
14993
                mov     ebp, [esi+6Ch]
14994
                xor     edi, [esp+1Ch]
14995
                and     ecx, [esp+0Ch]
14996
                and     edi, [esp+10h]
14997
                xor     ecx, ebx
14998
                lea     ebp, [eax+ebp+7C72E993h]
14999
                xor     ecx, edi
15000
                ror     ecx, 7
15001
                add     ebp, ecx
15002
                mov     eax, [esp+1Ch]
15003
                mov     [esp], ebp
15004
                mov     ebx, [esp+10h]
15005
                mov     ecx, [esp+14h]
15006
                mov     edi, ebx
15007
                and     ebx, [esp+4]
15008
                and     edi, ecx
15009
                xor     ebx, ebp
15010
                ror     eax, 0Bh
15011
                xor     edi, ebp
15012
                mov     ebp, [esi+34h]
15013
                xor     edi, [esp+18h]
15014
                and     ecx, [esp+8]
15015
                and     edi, [esp+0Ch]
15016
                xor     ecx, ebx
15017
                lea     ebp, [eax+ebp-4C11EBEFh]
15018
                xor     ecx, edi
15019
                ror     ecx, 7
15020
                add     ebp, ecx
15021
                mov     eax, [esp+18h]
15022
                mov     [esp+1Ch], ebp
15023
                mov     ebx, [esp+0Ch]
15024
                mov     ecx, [esp+10h]
15025
                mov     edi, ebx
15026
                and     ebx, [esp]
15027
                and     edi, ecx
15028
                xor     ebx, ebp
15029
                ror     eax, 0Bh
15030
                xor     edi, ebp
15031
                mov     ebp, [esi+18h]
15032
                xor     edi, [esp+14h]
15033
                and     ecx, [esp+4]
15034
                and     edi, [esp+8]
15035
                xor     ecx, ebx
15036
                lea     ebp, [eax+ebp+636FBC2Ah]
15037
                xor     ecx, edi
15038
                ror     ecx, 7
15039
                add     ebp, ecx
15040
                mov     eax, [esp+14h]
15041
                mov     [esp+18h], ebp
15042
                mov     ebx, [esp+8]
15043
                mov     ecx, [esp+0Ch]
15044
                mov     edi, ebx
15045
                and     ebx, [esp+1Ch]
15046
                and     edi, ecx
15047
                xor     ebx, ebp
15048
                ror     eax, 0Bh
15049
                xor     edi, ebp
15050
                mov     ebp, [esi+54h]
15051
                xor     edi, [esp+10h]
15052
                and     ecx, [esp]
15053
                and     edi, [esp+4]
15054
                xor     ecx, ebx
15055
                lea     ebp, [eax+ebp+2BA9C55Dh]
15056
                xor     ecx, edi
15057
                ror     ecx, 7
15058
                add     ebp, ecx
15059
                mov     eax, [esp+10h]
15060
                mov     [esp+14h], ebp
15061
                mov     ebx, [esp+4]
15062
                mov     ecx, [esp+8]
15063
                mov     edi, ebx
15064
                and     ebx, [esp+18h]
15065
                and     edi, ecx
15066
                xor     ebx, ebp
15067
                ror     eax, 0Bh
15068
                xor     edi, ebp
15069
                mov     ebp, [esi+28h]
15070
                xor     edi, [esp+0Ch]
15071
                and     ecx, [esp+1Ch]
15072
                and     edi, [esp]
15073
                xor     ecx, ebx
15074
                lea     ebp, [eax+ebp+741831F6h]
15075
                xor     ecx, edi
15076
                ror     ecx, 7
15077
                add     ebp, ecx
15078
                mov     eax, [esp+0Ch]
15079
                mov     [esp+10h], ebp
15080
                mov     ebx, [esp]
15081
                mov     ecx, [esp+4]
15082
                mov     edi, ebx
15083
                and     ebx, [esp+14h]
15084
                and     edi, ecx
15085
                xor     ebx, ebp
15086
                ror     eax, 0Bh
15087
                xor     edi, ebp
15088
                mov     ebp, [esi+5Ch]
15089
                xor     edi, [esp+8]
15090
                and     ecx, [esp+18h]
15091
                and     edi, [esp+1Ch]
15092
                xor     ecx, ebx
15093
                lea     ebp, [eax+ebp-31A3C1EAh]
15094
                xor     ecx, edi
15095
                ror     ecx, 7
15096
                add     ebp, ecx
15097
                mov     eax, [esp+8]
15098
                mov     [esp+0Ch], ebp
15099
                mov     ebx, [esp+1Ch]
15100
                mov     ecx, [esp]
15101
                mov     edi, ebx
15102
                and     ebx, [esp+10h]
15103
                and     edi, ecx
15104
                xor     ebx, ebp
15105
                ror     eax, 0Bh
15106
                xor     edi, ebp
15107
                mov     ebp, [esi+2Ch]
15108
                xor     edi, [esp+4]
15109
                and     ecx, [esp+14h]
15110
                and     edi, [esp+18h]
15111
                xor     ecx, ebx
15112
                lea     ebp, [eax+ebp-64786CE2h]
15113
                xor     ecx, edi
15114
                ror     ecx, 7
15115
                add     ebp, ecx
15116
                mov     eax, [esp+4]
15117
                mov     [esp+8], ebp
15118
                mov     ebx, [esp+18h]
15119
                mov     ecx, [esp+1Ch]
15120
                mov     edi, ebx
15121
                and     ebx, [esp+0Ch]
15122
                and     edi, ecx
15123
                xor     ebx, ebp
15124
                ror     eax, 0Bh
15125
                xor     edi, ebp
15126
                mov     ebp, [esi+14h]
15127
                xor     edi, [esp]
15128
                and     ecx, [esp+10h]
15129
                and     edi, [esp+14h]
15130
                xor     ecx, ebx
15131
                lea     ebp, [eax+ebp-502945CDh]
15132
                xor     ecx, edi
15133
                ror     ecx, 7
15134
                add     ebp, ecx
15135
                mov     eax, [esp]
15136
                mov     [esp+4], ebp
15137
                mov     ebx, [esp+14h]
15138
                mov     ecx, [esp+18h]
15139
                mov     edi, ebx
15140
                and     ebx, [esp+8]
15141
                and     edi, ecx
15142
                xor     ebx, ebp
15143
                ror     eax, 0Bh
15144
                xor     edi, ebp
15145
                mov     ebp, [esi+8]
15146
                xor     edi, [esp+1Ch]
15147
                and     ecx, [esp+0Ch]
15148
                and     edi, [esp+10h]
15149
                xor     ecx, ebx
15150
                lea     ebp, [eax+ebp+6C24CF5Ch]
15151
                xor     ecx, edi
15152
                ror     ecx, 7
15153
                add     ebp, ecx
15154
                mov     eax, [esp+1Ch]
15155
                mov     [esp], ebp
15156
                mov     edi, [esp+24h]
15157
                mov     eax, [esp]
15158
                mov     ebx, [esp+4]
15159
                add     [edi], eax
15160
                add     [edi+4], ebx
15161
                mov     ecx, [esp+8]
15162
                mov     edx, [esp+0Ch]
15163
                add     [edi+8], ecx
15164
                add     [edi+0Ch], edx
15165
                mov     eax, [esp+10h]
15166
                mov     ebx, [esp+14h]
15167
                add     [edi+10h], eax
15168
                add     [edi+14h], ebx
15169
                mov     ebp, [esp+28h]
15170
                mov     ecx, [esp+18h]
15171
                mov     edx, [esp+1Ch]
15172
                mov     esp, ebp
15173
                add     [edi+18h], ecx
15174
                add     [edi+1Ch], edx
15175
                pop     ebp
15176
                pop     edi
15177
                pop     esi
15178
                pop     ebx
15179
end;
15180
15181
procedure THashBaseHaval.DoTransform4(Buffer: PUInt32Array);
15182
asm
15183
                push    ebx
15184
                push    esi
15185
                push    edi
15186
                lea     edi, [eax].THashBaseHaval.FDigest
15187
                mov     esi, edx
15188
                push    ebp
15189
                mov     ebp, esp
15190
                add     esp, 0FFFFFFD4h
15191
                and     esp, 0FFFFFFC0h
15192
                mov     eax, [edi]
15193
                mov     ebx, [edi+4]
15194
                mov     [esp+20h], esi
15195
                mov     [esp+24h], edi
15196
                mov     [esp+28h], ebp
15197
                mov     [esp], eax
15198
                mov     [esp+4], ebx
15199
                mov     ecx, [edi+8]
15200
                mov     edx, [edi+0Ch]
15201
                mov     [esp+8], ecx
15202
                mov     [esp+0Ch], edx
15203
                mov     eax, [edi+10h]
15204
                mov     ebx, [edi+14h]
15205
                mov     [esp+10h], eax
15206
                mov     [esp+14h], ebx
15207
                mov     ecx, [edi+18h]
15208
                mov     edx, [edi+1Ch]
15209
                mov     [esp+18h], ecx
15210
                mov     [esp+1Ch], edx
15211
                mov     eax, edx
15212
                mov     ebp, [esp+18h]
15213
                mov     ebx, [esp+4]
15214
                mov     ecx, [esp]
15215
                ror     eax, 0Bh
15216
                xor     ebx, ecx
15217
                mov     edi, [esp+8]
15218
                and     ebx, [esp+0Ch]
15219
                and     edi, [esp+10h]
15220
                xor     ecx, ebx
15221
                and     ebp, [esp+14h]
15222
                xor     edi, ecx
15223
                mov     edx, [esi]
15224
                xor     ebp, edi
15225
                add     eax, edx
15226
                ror     ebp, 7
15227
                add     ebp, eax
15228
                mov     eax, [esp+18h]
15229
                mov     [esp+1Ch], ebp
15230
                mov     ebp, [esp+14h]
15231
                mov     ebx, [esp]
15232
                mov     ecx, [esp+1Ch]
15233
                ror     eax, 0Bh
15234
                xor     ebx, ecx
15235
                mov     edi, [esp+4]
15236
                and     ebx, [esp+8]
15237
                and     edi, [esp+0Ch]
15238
                xor     ecx, ebx
15239
                and     ebp, [esp+10h]
15240
                xor     edi, ecx
15241
                mov     edx, [esi+4]
15242
                xor     ebp, edi
15243
                add     eax, edx
15244
                ror     ebp, 7
15245
                add     ebp, eax
15246
                mov     eax, [esp+14h]
15247
                mov     [esp+18h], ebp
15248
                mov     ebp, [esp+10h]
15249
                mov     ebx, [esp+1Ch]
15250
                mov     ecx, [esp+18h]
15251
                ror     eax, 0Bh
15252
                xor     ebx, ecx
15253
                mov     edi, [esp]
15254
                and     ebx, [esp+4]
15255
                and     edi, [esp+8]
15256
                xor     ecx, ebx
15257
                and     ebp, [esp+0Ch]
15258
                xor     edi, ecx
15259
                mov     edx, [esi+8]
15260
                xor     ebp, edi
15261
                add     eax, edx
15262
                ror     ebp, 7
15263
                add     ebp, eax
15264
                mov     eax, [esp+10h]
15265
                mov     [esp+14h], ebp
15266
                mov     ebp, [esp+0Ch]
15267
                mov     ebx, [esp+18h]
15268
                mov     ecx, [esp+14h]
15269
                ror     eax, 0Bh
15270
                xor     ebx, ecx
15271
                mov     edi, [esp+1Ch]
15272
                and     ebx, [esp]
15273
                and     edi, [esp+4]
15274
                xor     ecx, ebx
15275
                and     ebp, [esp+8]
15276
                xor     edi, ecx
15277
                mov     edx, [esi+0Ch]
15278
                xor     ebp, edi
15279
                add     eax, edx
15280
                ror     ebp, 7
15281
                add     ebp, eax
15282
                mov     eax, [esp+0Ch]
15283
                mov     [esp+10h], ebp
15284
                mov     ebp, [esp+8]
15285
                mov     ebx, [esp+14h]
15286
                mov     ecx, [esp+10h]
15287
                ror     eax, 0Bh
15288
                xor     ebx, ecx
15289
                mov     edi, [esp+18h]
15290
                and     ebx, [esp+1Ch]
15291
                and     edi, [esp]
15292
                xor     ecx, ebx
15293
                and     ebp, [esp+4]
15294
                xor     edi, ecx
15295
                mov     edx, [esi+10h]
15296
                xor     ebp, edi
15297
                add     eax, edx
15298
                ror     ebp, 7
15299
                add     ebp, eax
15300
                mov     eax, [esp+8]
15301
                mov     [esp+0Ch], ebp
15302
                mov     ebp, [esp+4]
15303
                mov     ebx, [esp+10h]
15304
                mov     ecx, [esp+0Ch]
15305
                ror     eax, 0Bh
15306
                xor     ebx, ecx
15307
                mov     edi, [esp+14h]
15308
                and     ebx, [esp+18h]
15309
                and     edi, [esp+1Ch]
15310
                xor     ecx, ebx
15311
                and     ebp, [esp]
15312
                xor     edi, ecx
15313
                mov     edx, [esi+14h]
15314
                xor     ebp, edi
15315
                add     eax, edx
15316
                ror     ebp, 7
15317
                add     ebp, eax
15318
                mov     eax, [esp+4]
15319
                mov     [esp+8], ebp
15320
                mov     ebp, [esp]
15321
                mov     ebx, [esp+0Ch]
15322
                mov     ecx, [esp+8]
15323
                ror     eax, 0Bh
15324
                xor     ebx, ecx
15325
                mov     edi, [esp+10h]
15326
                and     ebx, [esp+14h]
15327
                and     edi, [esp+18h]
15328
                xor     ecx, ebx
15329
                and     ebp, [esp+1Ch]
15330
                xor     edi, ecx
15331
                mov     edx, [esi+18h]
15332
                xor     ebp, edi
15333
                add     eax, edx
15334
                ror     ebp, 7
15335
                add     ebp, eax
15336
                mov     eax, [esp]
15337
                mov     [esp+4], ebp
15338
                mov     ebp, [esp+1Ch]
15339
                mov     ebx, [esp+8]
15340
                mov     ecx, [esp+4]
15341
                ror     eax, 0Bh
15342
                xor     ebx, ecx
15343
                mov     edi, [esp+0Ch]
15344
                and     ebx, [esp+10h]
15345
                and     edi, [esp+14h]
15346
                xor     ecx, ebx
15347
                and     ebp, [esp+18h]
15348
                xor     edi, ecx
15349
                mov     edx, [esi+1Ch]
15350
                xor     ebp, edi
15351
                add     eax, edx
15352
                ror     ebp, 7
15353
                add     ebp, eax
15354
                mov     eax, [esp+1Ch]
15355
                mov     [esp], ebp
15356
                mov     ebp, [esp+18h]
15357
                mov     ebx, [esp+4]
15358
                mov     ecx, [esp]
15359
                ror     eax, 0Bh
15360
                xor     ebx, ecx
15361
                mov     edi, [esp+8]
15362
                and     ebx, [esp+0Ch]
15363
                and     edi, [esp+10h]
15364
                xor     ecx, ebx
15365
                and     ebp, [esp+14h]
15366
                xor     edi, ecx
15367
                mov     edx, [esi+20h]
15368
                xor     ebp, edi
15369
                add     eax, edx
15370
                ror     ebp, 7
15371
                add     ebp, eax
15372
                mov     eax, [esp+18h]
15373
                mov     [esp+1Ch], ebp
15374
                mov     ebp, [esp+14h]
15375
                mov     ebx, [esp]
15376
                mov     ecx, [esp+1Ch]
15377
                ror     eax, 0Bh
15378
                xor     ebx, ecx
15379
                mov     edi, [esp+4]
15380
                and     ebx, [esp+8]
15381
                and     edi, [esp+0Ch]
15382
                xor     ecx, ebx
15383
                and     ebp, [esp+10h]
15384
                xor     edi, ecx
15385
                mov     edx, [esi+24h]
15386
                xor     ebp, edi
15387
                add     eax, edx
15388
                ror     ebp, 7
15389
                add     ebp, eax
15390
                mov     eax, [esp+14h]
15391
                mov     [esp+18h], ebp
15392
                mov     ebp, [esp+10h]
15393
                mov     ebx, [esp+1Ch]
15394
                mov     ecx, [esp+18h]
15395
                ror     eax, 0Bh
15396
                xor     ebx, ecx
15397
                mov     edi, [esp]
15398
                and     ebx, [esp+4]
15399
                and     edi, [esp+8]
15400
                xor     ecx, ebx
15401
                and     ebp, [esp+0Ch]
15402
                xor     edi, ecx
15403
                mov     edx, [esi+28h]
15404
                xor     ebp, edi
15405
                add     eax, edx
15406
                ror     ebp, 7
15407
                add     ebp, eax
15408
                mov     eax, [esp+10h]
15409
                mov     [esp+14h], ebp
15410
                mov     ebp, [esp+0Ch]
15411
                mov     ebx, [esp+18h]
15412
                mov     ecx, [esp+14h]
15413
                ror     eax, 0Bh
15414
                xor     ebx, ecx
15415
                mov     edi, [esp+1Ch]
15416
                and     ebx, [esp]
15417
                and     edi, [esp+4]
15418
                xor     ecx, ebx
15419
                and     ebp, [esp+8]
15420
                xor     edi, ecx
15421
                mov     edx, [esi+2Ch]
15422
                xor     ebp, edi
15423
                add     eax, edx
15424
                ror     ebp, 7
15425
                add     ebp, eax
15426
                mov     eax, [esp+0Ch]
15427
                mov     [esp+10h], ebp
15428
                mov     ebp, [esp+8]
15429
                mov     ebx, [esp+14h]
15430
                mov     ecx, [esp+10h]
15431
                ror     eax, 0Bh
15432
                xor     ebx, ecx
15433
                mov     edi, [esp+18h]
15434
                and     ebx, [esp+1Ch]
15435
                and     edi, [esp]
15436
                xor     ecx, ebx
15437
                and     ebp, [esp+4]
15438
                xor     edi, ecx
15439
                mov     edx, [esi+30h]
15440
                xor     ebp, edi
15441
                add     eax, edx
15442
                ror     ebp, 7
15443
                add     ebp, eax
15444
                mov     eax, [esp+8]
15445
                mov     [esp+0Ch], ebp
15446
                mov     ebp, [esp+4]
15447
                mov     ebx, [esp+10h]
15448
                mov     ecx, [esp+0Ch]
15449
                ror     eax, 0Bh
15450
                xor     ebx, ecx
15451
                mov     edi, [esp+14h]
15452
                and     ebx, [esp+18h]
15453
                and     edi, [esp+1Ch]
15454
                xor     ecx, ebx
15455
                and     ebp, [esp]
15456
                xor     edi, ecx
15457
                mov     edx, [esi+34h]
15458
                xor     ebp, edi
15459
                add     eax, edx
15460
                ror     ebp, 7
15461
                add     ebp, eax
15462
                mov     eax, [esp+4]
15463
                mov     [esp+8], ebp
15464
                mov     ebp, [esp]
15465
                mov     ebx, [esp+0Ch]
15466
                mov     ecx, [esp+8]
15467
                ror     eax, 0Bh
15468
                xor     ebx, ecx
15469
                mov     edi, [esp+10h]
15470
                and     ebx, [esp+14h]
15471
                and     edi, [esp+18h]
15472
                xor     ecx, ebx
15473
                and     ebp, [esp+1Ch]
15474
                xor     edi, ecx
15475
                mov     edx, [esi+38h]
15476
                xor     ebp, edi
15477
                add     eax, edx
15478
                ror     ebp, 7
15479
                add     ebp, eax
15480
                mov     eax, [esp]
15481
                mov     [esp+4], ebp
15482
                mov     ebp, [esp+1Ch]
15483
                mov     ebx, [esp+8]
15484
                mov     ecx, [esp+4]
15485
                ror     eax, 0Bh
15486
                xor     ebx, ecx
15487
                mov     edi, [esp+0Ch]
15488
                and     ebx, [esp+10h]
15489
                and     edi, [esp+14h]
15490
                xor     ecx, ebx
15491
                and     ebp, [esp+18h]
15492
                xor     edi, ecx
15493
                mov     edx, [esi+3Ch]
15494
                xor     ebp, edi
15495
                add     eax, edx
15496
                ror     ebp, 7
15497
                add     ebp, eax
15498
                mov     eax, [esp+1Ch]
15499
                mov     [esp], ebp
15500
                mov     ebp, [esp+18h]
15501
                mov     ebx, [esp+4]
15502
                mov     ecx, [esp]
15503
                ror     eax, 0Bh
15504
                xor     ebx, ecx
15505
                mov     edi, [esp+8]
15506
                and     ebx, [esp+0Ch]
15507
                and     edi, [esp+10h]
15508
                xor     ecx, ebx
15509
                and     ebp, [esp+14h]
15510
                xor     edi, ecx
15511
                mov     edx, [esi+40h]
15512
                xor     ebp, edi
15513
                add     eax, edx
15514
                ror     ebp, 7
15515
                add     ebp, eax
15516
                mov     eax, [esp+18h]
15517
                mov     [esp+1Ch], ebp
15518
                mov     ebp, [esp+14h]
15519
                mov     ebx, [esp]
15520
                mov     ecx, [esp+1Ch]
15521
                ror     eax, 0Bh
15522
                xor     ebx, ecx
15523
                mov     edi, [esp+4]
15524
                and     ebx, [esp+8]
15525
                and     edi, [esp+0Ch]
15526
                xor     ecx, ebx
15527
                and     ebp, [esp+10h]
15528
                xor     edi, ecx
15529
                mov     edx, [esi+44h]
15530
                xor     ebp, edi
15531
                add     eax, edx
15532
                ror     ebp, 7
15533
                add     ebp, eax
15534
                mov     eax, [esp+14h]
15535
                mov     [esp+18h], ebp
15536
                mov     ebp, [esp+10h]
15537
                mov     ebx, [esp+1Ch]
15538
                mov     ecx, [esp+18h]
15539
                ror     eax, 0Bh
15540
                xor     ebx, ecx
15541
                mov     edi, [esp]
15542
                and     ebx, [esp+4]
15543
                and     edi, [esp+8]
15544
                xor     ecx, ebx
15545
                and     ebp, [esp+0Ch]
15546
                xor     edi, ecx
15547
                mov     edx, [esi+48h]
15548
                xor     ebp, edi
15549
                add     eax, edx
15550
                ror     ebp, 7
15551
                add     ebp, eax
15552
                mov     eax, [esp+10h]
15553
                mov     [esp+14h], ebp
15554
                mov     ebp, [esp+0Ch]
15555
                mov     ebx, [esp+18h]
15556
                mov     ecx, [esp+14h]
15557
                ror     eax, 0Bh
15558
                xor     ebx, ecx
15559
                mov     edi, [esp+1Ch]
15560
                and     ebx, [esp]
15561
                and     edi, [esp+4]
15562
                xor     ecx, ebx
15563
                and     ebp, [esp+8]
15564
                xor     edi, ecx
15565
                mov     edx, [esi+4Ch]
15566
                xor     ebp, edi
15567
                add     eax, edx
15568
                ror     ebp, 7
15569
                add     ebp, eax
15570
                mov     eax, [esp+0Ch]
15571
                mov     [esp+10h], ebp
15572
                mov     ebp, [esp+8]
15573
                mov     ebx, [esp+14h]
15574
                mov     ecx, [esp+10h]
15575
                ror     eax, 0Bh
15576
                xor     ebx, ecx
15577
                mov     edi, [esp+18h]
15578
                and     ebx, [esp+1Ch]
15579
                and     edi, [esp]
15580
                xor     ecx, ebx
15581
                and     ebp, [esp+4]
15582
                xor     edi, ecx
15583
                mov     edx, [esi+50h]
15584
                xor     ebp, edi
15585
                add     eax, edx
15586
                ror     ebp, 7
15587
                add     ebp, eax
15588
                mov     eax, [esp+8]
15589
                mov     [esp+0Ch], ebp
15590
                mov     ebp, [esp+4]
15591
                mov     ebx, [esp+10h]
15592
                mov     ecx, [esp+0Ch]
15593
                ror     eax, 0Bh
15594
                xor     ebx, ecx
15595
                mov     edi, [esp+14h]
15596
                and     ebx, [esp+18h]
15597
                and     edi, [esp+1Ch]
15598
                xor     ecx, ebx
15599
                and     ebp, [esp]
15600
                xor     edi, ecx
15601
                mov     edx, [esi+54h]
15602
                xor     ebp, edi
15603
                add     eax, edx
15604
                ror     ebp, 7
15605
                add     ebp, eax
15606
                mov     eax, [esp+4]
15607
                mov     [esp+8], ebp
15608
                mov     ebp, [esp]
15609
                mov     ebx, [esp+0Ch]
15610
                mov     ecx, [esp+8]
15611
                ror     eax, 0Bh
15612
                xor     ebx, ecx
15613
                mov     edi, [esp+10h]
15614
                and     ebx, [esp+14h]
15615
                and     edi, [esp+18h]
15616
                xor     ecx, ebx
15617
                and     ebp, [esp+1Ch]
15618
                xor     edi, ecx
15619
                mov     edx, [esi+58h]
15620
                xor     ebp, edi
15621
                add     eax, edx
15622
                ror     ebp, 7
15623
                add     ebp, eax
15624
                mov     eax, [esp]
15625
                mov     [esp+4], ebp
15626
                mov     ebp, [esp+1Ch]
15627
                mov     ebx, [esp+8]
15628
                mov     ecx, [esp+4]
15629
                ror     eax, 0Bh
15630
                xor     ebx, ecx
15631
                mov     edi, [esp+0Ch]
15632
                and     ebx, [esp+10h]
15633
                and     edi, [esp+14h]
15634
                xor     ecx, ebx
15635
                and     ebp, [esp+18h]
15636
                xor     edi, ecx
15637
                mov     edx, [esi+5Ch]
15638
                xor     ebp, edi
15639
                add     eax, edx
15640
                ror     ebp, 7
15641
                add     ebp, eax
15642
                mov     eax, [esp+1Ch]
15643
                mov     [esp], ebp
15644
                mov     ebp, [esp+18h]
15645
                mov     ebx, [esp+4]
15646
                mov     ecx, [esp]
15647
                ror     eax, 0Bh
15648
                xor     ebx, ecx
15649
                mov     edi, [esp+8]
15650
                and     ebx, [esp+0Ch]
15651
                and     edi, [esp+10h]
15652
                xor     ecx, ebx
15653
                and     ebp, [esp+14h]
15654
                xor     edi, ecx
15655
                mov     edx, [esi+60h]
15656
                xor     ebp, edi
15657
                add     eax, edx
15658
                ror     ebp, 7
15659
                add     ebp, eax
15660
                mov     eax, [esp+18h]
15661
                mov     [esp+1Ch], ebp
15662
                mov     ebp, [esp+14h]
15663
                mov     ebx, [esp]
15664
                mov     ecx, [esp+1Ch]
15665
                ror     eax, 0Bh
15666
                xor     ebx, ecx
15667
                mov     edi, [esp+4]
15668
                and     ebx, [esp+8]
15669
                and     edi, [esp+0Ch]
15670
                xor     ecx, ebx
15671
                and     ebp, [esp+10h]
15672
                xor     edi, ecx
15673
                mov     edx, [esi+64h]
15674
                xor     ebp, edi
15675
                add     eax, edx
15676
                ror     ebp, 7
15677
                add     ebp, eax
15678
                mov     eax, [esp+14h]
15679
                mov     [esp+18h], ebp
15680
                mov     ebp, [esp+10h]
15681
                mov     ebx, [esp+1Ch]
15682
                mov     ecx, [esp+18h]
15683
                ror     eax, 0Bh
15684
                xor     ebx, ecx
15685
                mov     edi, [esp]
15686
                and     ebx, [esp+4]
15687
                and     edi, [esp+8]
15688
                xor     ecx, ebx
15689
                and     ebp, [esp+0Ch]
15690
                xor     edi, ecx
15691
                mov     edx, [esi+68h]
15692
                xor     ebp, edi
15693
                add     eax, edx
15694
                ror     ebp, 7
15695
                add     ebp, eax
15696
                mov     eax, [esp+10h]
15697
                mov     [esp+14h], ebp
15698
                mov     ebp, [esp+0Ch]
15699
                mov     ebx, [esp+18h]
15700
                mov     ecx, [esp+14h]
15701
                ror     eax, 0Bh
15702
                xor     ebx, ecx
15703
                mov     edi, [esp+1Ch]
15704
                and     ebx, [esp]
15705
                and     edi, [esp+4]
15706
                xor     ecx, ebx
15707
                and     ebp, [esp+8]
15708
                xor     edi, ecx
15709
                mov     edx, [esi+6Ch]
15710
                xor     ebp, edi
15711
                add     eax, edx
15712
                ror     ebp, 7
15713
                add     ebp, eax
15714
                mov     eax, [esp+0Ch]
15715
                mov     [esp+10h], ebp
15716
                mov     ebp, [esp+8]
15717
                mov     ebx, [esp+14h]
15718
                mov     ecx, [esp+10h]
15719
                ror     eax, 0Bh
15720
                xor     ebx, ecx
15721
                mov     edi, [esp+18h]
15722
                and     ebx, [esp+1Ch]
15723
                and     edi, [esp]
15724
                xor     ecx, ebx
15725
                and     ebp, [esp+4]
15726
                xor     edi, ecx
15727
                mov     edx, [esi+70h]
15728
                xor     ebp, edi
15729
                add     eax, edx
15730
                ror     ebp, 7
15731
                add     ebp, eax
15732
                mov     eax, [esp+8]
15733
                mov     [esp+0Ch], ebp
15734
                mov     ebp, [esp+4]
15735
                mov     ebx, [esp+10h]
15736
                mov     ecx, [esp+0Ch]
15737
                ror     eax, 0Bh
15738
                xor     ebx, ecx
15739
                mov     edi, [esp+14h]
15740
                and     ebx, [esp+18h]
15741
                and     edi, [esp+1Ch]
15742
                xor     ecx, ebx
15743
                and     ebp, [esp]
15744
                xor     edi, ecx
15745
                mov     edx, [esi+74h]
15746
                xor     ebp, edi
15747
                add     eax, edx
15748
                ror     ebp, 7
15749
                add     ebp, eax
15750
                mov     eax, [esp+4]
15751
                mov     [esp+8], ebp
15752
                mov     ebp, [esp]
15753
                mov     ebx, [esp+0Ch]
15754
                mov     ecx, [esp+8]
15755
                ror     eax, 0Bh
15756
                xor     ebx, ecx
15757
                mov     edi, [esp+10h]
15758
                and     ebx, [esp+14h]
15759
                and     edi, [esp+18h]
15760
                xor     ecx, ebx
15761
                and     ebp, [esp+1Ch]
15762
                xor     edi, ecx
15763
                mov     edx, [esi+78h]
15764
                xor     ebp, edi
15765
                add     eax, edx
15766
                ror     ebp, 7
15767
                add     ebp, eax
15768
                mov     eax, [esp]
15769
                mov     [esp+4], ebp
15770
                mov     ebp, [esp+1Ch]
15771
                mov     ebx, [esp+8]
15772
                mov     ecx, [esp+4]
15773
                ror     eax, 0Bh
15774
                xor     ebx, ecx
15775
                mov     edi, [esp+0Ch]
15776
                and     ebx, [esp+10h]
15777
                and     edi, [esp+14h]
15778
                xor     ecx, ebx
15779
                and     ebp, [esp+18h]
15780
                xor     edi, ecx
15781
                mov     edx, [esi+7Ch]
15782
                xor     ebp, edi
15783
                add     eax, edx
15784
                ror     ebp, 7
15785
                add     ebp, eax
15786
                mov     eax, [esp+1Ch]
15787
                mov     [esp], ebp
15788
                mov     ebp, [esp]
15789
                mov     ebx, [esp+8]
15790
                mov     edi, [esp+14h]
15791
                xor     ebp, 0FFFFFFFFh
15792
                mov     ecx, [esp+18h]
15793
                and     ebx, edi
15794
                mov     edx, [esp+10h]
15795
                and     ebp, ecx
15796
                xor     ebx, [esp+0Ch]
15797
                xor     ebp, edx
15798
                xor     ecx, edi
15799
                xor     ebx, ebp
15800
                and     ecx, [esp+8]
15801
                and     ebx, [esp+4]
15802
                ror     eax, 0Bh
15803
                xor     ecx, edx
15804
                mov     ebp, [esi+14h]
15805
                xor     ecx, ebx
15806
                and     edi, [esp]
15807
                xor     ecx, edi
15808
                lea     ebp, [eax+ebp+452821E6h]
15809
                ror     ecx, 7
15810
                add     ebp, ecx
15811
                mov     eax, [esp+18h]
15812
                mov     [esp+1Ch], ebp
15813
                mov     ebx, [esp+4]
15814
                mov     edi, [esp+10h]
15815
                xor     ebp, 0FFFFFFFFh
15816
                mov     ecx, [esp+14h]
15817
                and     ebx, edi
15818
                mov     edx, [esp+0Ch]
15819
                and     ebp, ecx
15820
                xor     ebx, [esp+8]
15821
                xor     ebp, edx
15822
                xor     ecx, edi
15823
                xor     ebx, ebp
15824
                and     ecx, [esp+4]
15825
                and     ebx, [esp]
15826
                ror     eax, 0Bh
15827
                xor     ecx, edx
15828
                mov     ebp, [esi+38h]
15829
                xor     ecx, ebx
15830
                and     edi, [esp+1Ch]
15831
                xor     ecx, edi
15832
                lea     ebp, [eax+ebp+38D01377h]
15833
                ror     ecx, 7
15834
                add     ebp, ecx
15835
                mov     eax, [esp+14h]
15836
                mov     [esp+18h], ebp
15837
                mov     ebx, [esp]
15838
                mov     edi, [esp+0Ch]
15839
                xor     ebp, 0FFFFFFFFh
15840
                mov     ecx, [esp+10h]
15841
                and     ebx, edi
15842
                mov     edx, [esp+8]
15843
                and     ebp, ecx
15844
                xor     ebx, [esp+4]
15845
                xor     ebp, edx
15846
                xor     ecx, edi
15847
                xor     ebx, ebp
15848
                and     ecx, [esp]
15849
                and     ebx, [esp+1Ch]
15850
                ror     eax, 0Bh
15851
                xor     ecx, edx
15852
                mov     ebp, [esi+68h]
15853
                xor     ecx, ebx
15854
                and     edi, [esp+18h]
15855
                xor     ecx, edi
15856
                lea     ebp, [eax+ebp-41AB9931h]
15857
                ror     ecx, 7
15858
                add     ebp, ecx
15859
                mov     eax, [esp+10h]
15860
                mov     [esp+14h], ebp
15861
                mov     ebx, [esp+1Ch]
15862
                mov     edi, [esp+8]
15863
                xor     ebp, 0FFFFFFFFh
15864
                mov     ecx, [esp+0Ch]
15865
                and     ebx, edi
15866
                mov     edx, [esp+4]
15867
                and     ebp, ecx
15868
                xor     ebx, [esp]
15869
                xor     ebp, edx
15870
                xor     ecx, edi
15871
                xor     ebx, ebp
15872
                and     ecx, [esp+1Ch]
15873
                and     ebx, [esp+18h]
15874
                ror     eax, 0Bh
15875
                xor     ecx, edx
15876
                mov     ebp, [esi+48h]
15877
                xor     ecx, ebx
15878
                and     edi, [esp+14h]
15879
                xor     ecx, edi
15880
                lea     ebp, [eax+ebp+34E90C6Ch]
15881
                ror     ecx, 7
15882
                add     ebp, ecx
15883
                mov     eax, [esp+0Ch]
15884
                mov     [esp+10h], ebp
15885
                mov     ebx, [esp+18h]
15886
                mov     edi, [esp+4]
15887
                xor     ebp, 0FFFFFFFFh
15888
                mov     ecx, [esp+8]
15889
                and     ebx, edi
15890
                mov     edx, [esp]
15891
                and     ebp, ecx
15892
                xor     ebx, [esp+1Ch]
15893
                xor     ebp, edx
15894
                xor     ecx, edi
15895
                xor     ebx, ebp
15896
                and     ecx, [esp+18h]
15897
                and     ebx, [esp+14h]
15898
                ror     eax, 0Bh
15899
                xor     ecx, edx
15900
                mov     ebp, [esi+2Ch]
15901
                xor     ecx, ebx
15902
                and     edi, [esp+10h]
15903
                xor     ecx, edi
15904
                lea     ebp, [eax+ebp-3F53D649h]
15905
                ror     ecx, 7
15906
                add     ebp, ecx
15907
                mov     eax, [esp+8]
15908
                mov     [esp+0Ch], ebp
15909
                mov     ebx, [esp+14h]
15910
                mov     edi, [esp]
15911
                xor     ebp, 0FFFFFFFFh
15912
                mov     ecx, [esp+4]
15913
                and     ebx, edi
15914
                mov     edx, [esp+1Ch]
15915
                and     ebp, ecx
15916
                xor     ebx, [esp+18h]
15917
                xor     ebp, edx
15918
                xor     ecx, edi
15919
                xor     ebx, ebp
15920
                and     ecx, [esp+14h]
15921
                and     ebx, [esp+10h]
15922
                ror     eax, 0Bh
15923
                xor     ecx, edx
15924
                mov     ebp, [esi+70h]
15925
                xor     ecx, ebx
15926
                and     edi, [esp+0Ch]
15927
                xor     ecx, edi
15928
                lea     ebp, [eax+ebp-3683AF23h]
15929
                ror     ecx, 7
15930
                add     ebp, ecx
15931
                mov     eax, [esp+4]
15932
                mov     [esp+8], ebp
15933
                mov     ebx, [esp+10h]
15934
                mov     edi, [esp+1Ch]
15935
                xor     ebp, 0FFFFFFFFh
15936
                mov     ecx, [esp]
15937
                and     ebx, edi
15938
                mov     edx, [esp+18h]
15939
                and     ebp, ecx
15940
                xor     ebx, [esp+14h]
15941
                xor     ebp, edx
15942
                xor     ecx, edi
15943
                xor     ebx, ebp
15944
                and     ecx, [esp+10h]
15945
                and     ebx, [esp+0Ch]
15946
                ror     eax, 0Bh
15947
                xor     ecx, edx
15948
                mov     ebp, [esi+1Ch]
15949
                xor     ecx, ebx
15950
                and     edi, [esp+8]
15951
                xor     ecx, edi
15952
                lea     ebp, [eax+ebp+3F84D5B5h]
15953
                ror     ecx, 7
15954
                add     ebp, ecx
15955
                mov     eax, [esp]
15956
                mov     [esp+4], ebp
15957
                mov     ebx, [esp+0Ch]
15958
                mov     edi, [esp+18h]
15959
                xor     ebp, 0FFFFFFFFh
15960
                mov     ecx, [esp+1Ch]
15961
                and     ebx, edi
15962
                mov     edx, [esp+14h]
15963
                and     ebp, ecx
15964
                xor     ebx, [esp+10h]
15965
                xor     ebp, edx
15966
                xor     ecx, edi
15967
                xor     ebx, ebp
15968
                and     ecx, [esp+0Ch]
15969
                and     ebx, [esp+8]
15970
                ror     eax, 0Bh
15971
                xor     ecx, edx
15972
                mov     ebp, [esi+40h]
15973
                xor     ecx, ebx
15974
                and     edi, [esp+4]
15975
                xor     ecx, edi
15976
                lea     ebp, [eax+ebp-4AB8F6E9h]
15977
                ror     ecx, 7
15978
                add     ebp, ecx
15979
                mov     eax, [esp+1Ch]
15980
                mov     [esp], ebp
15981
                mov     ebx, [esp+8]
15982
                mov     edi, [esp+14h]
15983
                xor     ebp, 0FFFFFFFFh
15984
                mov     ecx, [esp+18h]
15985
                and     ebx, edi
15986
                mov     edx, [esp+10h]
15987
                and     ebp, ecx
15988
                xor     ebx, [esp+0Ch]
15989
                xor     ebp, edx
15990
                xor     ecx, edi
15991
                xor     ebx, ebp
15992
                and     ecx, [esp+8]
15993
                and     ebx, [esp+4]
15994
                ror     eax, 0Bh
15995
                xor     ecx, edx
15996
                mov     ebp, [esi]
15997
                xor     ecx, ebx
15998
                and     edi, [esp]
15999
                xor     ecx, edi
16000
                lea     ebp, [eax+ebp-6DE92A27h]
16001
                ror     ecx, 7
16002
                add     ebp, ecx
16003
                mov     eax, [esp+18h]
16004
                mov     [esp+1Ch], ebp
16005
                mov     ebx, [esp+4]
16006
                mov     edi, [esp+10h]
16007
                xor     ebp, 0FFFFFFFFh
16008
                mov     ecx, [esp+14h]
16009
                and     ebx, edi
16010
                mov     edx, [esp+0Ch]
16011
                and     ebp, ecx
16012
                xor     ebx, [esp+8]
16013
                xor     ebp, edx
16014
                xor     ecx, edi
16015
                xor     ebx, ebp
16016
                and     ecx, [esp+4]
16017
                and     ebx, [esp]
16018
                ror     eax, 0Bh
16019
                xor     ecx, edx
16020
                mov     ebp, [esi+5Ch]
16021
                xor     ecx, ebx
16022
                and     edi, [esp+1Ch]
16023
                xor     ecx, edi
16024
                lea     ebp, [eax+ebp-768604E5h]
16025
                ror     ecx, 7
16026
                add     ebp, ecx
16027
                mov     eax, [esp+14h]
16028
                mov     [esp+18h], ebp
16029
                mov     ebx, [esp]
16030
                mov     edi, [esp+0Ch]
16031
                xor     ebp, 0FFFFFFFFh
16032
                mov     ecx, [esp+10h]
16033
                and     ebx, edi
16034
                mov     edx, [esp+8]
16035
                and     ebp, ecx
16036
                xor     ebx, [esp+4]
16037
                xor     ebp, edx
16038
                xor     ecx, edi
16039
                xor     ebx, ebp
16040
                and     ecx, [esp]
16041
                and     ebx, [esp+1Ch]
16042
                ror     eax, 0Bh
16043
                xor     ecx, edx
16044
                mov     ebp, [esi+50h]
16045
                xor     ecx, ebx
16046
                and     edi, [esp+18h]
16047
                xor     ecx, edi
16048
                lea     ebp, [eax+ebp-2ECEF45Ah]
16049
                ror     ecx, 7
16050
                add     ebp, ecx
16051
                mov     eax, [esp+10h]
16052
                mov     [esp+14h], ebp
16053
                mov     ebx, [esp+1Ch]
16054
                mov     edi, [esp+8]
16055
                xor     ebp, 0FFFFFFFFh
16056
                mov     ecx, [esp+0Ch]
16057
                and     ebx, edi
16058
                mov     edx, [esp+4]
16059
                and     ebp, ecx
16060
                xor     ebx, [esp]
16061
                xor     ebp, edx
16062
                xor     ecx, edi
16063
                xor     ebx, ebp
16064
                and     ecx, [esp+1Ch]
16065
                and     ebx, [esp+18h]
16066
                ror     eax, 0Bh
16067
                xor     ecx, edx
16068
                mov     ebp, [esi+58h]
16069
                xor     ecx, ebx
16070
                and     edi, [esp+14h]
16071
                xor     ecx, edi
16072
                lea     ebp, [eax+ebp-67204A54h]
16073
                ror     ecx, 7
16074
                add     ebp, ecx
16075
                mov     eax, [esp+0Ch]
16076
                mov     [esp+10h], ebp
16077
                mov     ebx, [esp+18h]
16078
                mov     edi, [esp+4]
16079
                xor     ebp, 0FFFFFFFFh
16080
                mov     ecx, [esp+8]
16081
                and     ebx, edi
16082
                mov     edx, [esp]
16083
                and     ebp, ecx
16084
                xor     ebx, [esp+1Ch]
16085
                xor     ebp, edx
16086
                xor     ecx, edi
16087
                xor     ebx, ebp
16088
                and     ecx, [esp+18h]
16089
                and     ebx, [esp+14h]
16090
                ror     eax, 0Bh
16091
                xor     ecx, edx
16092
                mov     ebp, [esi+4]
16093
                xor     ecx, ebx
16094
                and     edi, [esp+10h]
16095
                xor     ecx, edi
16096
                lea     ebp, [eax+ebp+2FFD72DBh]
16097
                ror     ecx, 7
16098
                add     ebp, ecx
16099
                mov     eax, [esp+8]
16100
                mov     [esp+0Ch], ebp
16101
                mov     ebx, [esp+14h]
16102
                mov     edi, [esp]
16103
                xor     ebp, 0FFFFFFFFh
16104
                mov     ecx, [esp+4]
16105
                and     ebx, edi
16106
                mov     edx, [esp+1Ch]
16107
                and     ebp, ecx
16108
                xor     ebx, [esp+18h]
16109
                xor     ebp, edx
16110
                xor     ecx, edi
16111
                xor     ebx, ebp
16112
                and     ecx, [esp+14h]
16113
                and     ebx, [esp+10h]
16114
                ror     eax, 0Bh
16115
                xor     ecx, edx
16116
                mov     ebp, [esi+28h]
16117
                xor     ecx, ebx
16118
                and     edi, [esp+0Ch]
16119
                xor     ecx, edi
16120
                lea     ebp, [eax+ebp-2FE52049h]
16121
                ror     ecx, 7
16122
                add     ebp, ecx
16123
                mov     eax, [esp+4]
16124
                mov     [esp+8], ebp
16125
                mov     ebx, [esp+10h]
16126
                mov     edi, [esp+1Ch]
16127
                xor     ebp, 0FFFFFFFFh
16128
                mov     ecx, [esp]
16129
                and     ebx, edi
16130
                mov     edx, [esp+18h]
16131
                and     ebp, ecx
16132
                xor     ebx, [esp+14h]
16133
                xor     ebp, edx
16134
                xor     ecx, edi
16135
                xor     ebx, ebp
16136
                and     ecx, [esp+10h]
16137
                and     ebx, [esp+0Ch]
16138
                ror     eax, 0Bh
16139
                xor     ecx, edx
16140
                mov     ebp, [esi+10h]
16141
                xor     ecx, ebx
16142
                and     edi, [esp+8]
16143
                xor     ecx, edi
16144
                lea     ebp, [eax+ebp-471E5013h]
16145
                ror     ecx, 7
16146
                add     ebp, ecx
16147
                mov     eax, [esp]
16148
                mov     [esp+4], ebp
16149
                mov     ebx, [esp+0Ch]
16150
                mov     edi, [esp+18h]
16151
                xor     ebp, 0FFFFFFFFh
16152
                mov     ecx, [esp+1Ch]
16153
                and     ebx, edi
16154
                mov     edx, [esp+14h]
16155
                and     ebp, ecx
16156
                xor     ebx, [esp+10h]
16157
                xor     ebp, edx
16158
                xor     ecx, edi
16159
                xor     ebx, ebp
16160
                and     ecx, [esp+0Ch]
16161
                and     ebx, [esp+8]
16162
                ror     eax, 0Bh
16163
                xor     ecx, edx
16164
                mov     ebp, [esi+20h]
16165
                xor     ecx, ebx
16166
                and     edi, [esp+4]
16167
                xor     ecx, edi
16168
                lea     ebp, [eax+ebp+6A267E96h]
16169
                ror     ecx, 7
16170
                add     ebp, ecx
16171
                mov     eax, [esp+1Ch]
16172
                mov     [esp], ebp
16173
                mov     ebx, [esp+8]
16174
                mov     edi, [esp+14h]
16175
                xor     ebp, 0FFFFFFFFh
16176
                mov     ecx, [esp+18h]
16177
                and     ebx, edi
16178
                mov     edx, [esp+10h]
16179
                and     ebp, ecx
16180
                xor     ebx, [esp+0Ch]
16181
                xor     ebp, edx
16182
                xor     ecx, edi
16183
                xor     ebx, ebp
16184
                and     ecx, [esp+8]
16185
                and     ebx, [esp+4]
16186
                ror     eax, 0Bh
16187
                xor     ecx, edx
16188
                mov     ebp, [esi+78h]
16189
                xor     ecx, ebx
16190
                and     edi, [esp]
16191
                xor     ecx, edi
16192
                lea     ebp, [eax+ebp-45836FBBh]
16193
                ror     ecx, 7
16194
                add     ebp, ecx
16195
                mov     eax, [esp+18h]
16196
                mov     [esp+1Ch], ebp
16197
                mov     ebx, [esp+4]
16198
                mov     edi, [esp+10h]
16199
                xor     ebp, 0FFFFFFFFh
16200
                mov     ecx, [esp+14h]
16201
                and     ebx, edi
16202
                mov     edx, [esp+0Ch]
16203
                and     ebp, ecx
16204
                xor     ebx, [esp+8]
16205
                xor     ebp, edx
16206
                xor     ecx, edi
16207
                xor     ebx, ebp
16208
                and     ecx, [esp+4]
16209
                and     ebx, [esp]
16210
                ror     eax, 0Bh
16211
                xor     ecx, edx
16212
                mov     ebp, [esi+0Ch]
16213
                xor     ecx, ebx
16214
                and     edi, [esp+1Ch]
16215
                xor     ecx, edi
16216
                lea     ebp, [eax+ebp-0ED38067h]
16217
                ror     ecx, 7
16218
                add     ebp, ecx
16219
                mov     eax, [esp+14h]
16220
                mov     [esp+18h], ebp
16221
                mov     ebx, [esp]
16222
                mov     edi, [esp+0Ch]
16223
                xor     ebp, 0FFFFFFFFh
16224
                mov     ecx, [esp+10h]
16225
                and     ebx, edi
16226
                mov     edx, [esp+8]
16227
                and     ebp, ecx
16228
                xor     ebx, [esp+4]
16229
                xor     ebp, edx
16230
                xor     ecx, edi
16231
                xor     ebx, ebp
16232
                and     ecx, [esp]
16233
                and     ebx, [esp+1Ch]
16234
                ror     eax, 0Bh
16235
                xor     ecx, edx
16236
                mov     ebp, [esi+54h]
16237
                xor     ecx, ebx
16238
                and     edi, [esp+18h]
16239
                xor     ecx, edi
16240
                lea     ebp, [eax+ebp+24A19947h]
16241
                ror     ecx, 7
16242
                add     ebp, ecx
16243
                mov     eax, [esp+10h]
16244
                mov     [esp+14h], ebp
16245
                mov     ebx, [esp+1Ch]
16246
                mov     edi, [esp+8]
16247
                xor     ebp, 0FFFFFFFFh
16248
                mov     ecx, [esp+0Ch]
16249
                and     ebx, edi
16250
                mov     edx, [esp+4]
16251
                and     ebp, ecx
16252
                xor     ebx, [esp]
16253
                xor     ebp, edx
16254
                xor     ecx, edi
16255
                xor     ebx, ebp
16256
                and     ecx, [esp+1Ch]
16257
                and     ebx, [esp+18h]
16258
                ror     eax, 0Bh
16259
                xor     ecx, edx
16260
                mov     ebp, [esi+24h]
16261
                xor     ecx, ebx
16262
                and     edi, [esp+14h]
16263
                xor     ecx, edi
16264
                lea     ebp, [eax+ebp-4C6E9309h]
16265
                ror     ecx, 7
16266
                add     ebp, ecx
16267
                mov     eax, [esp+0Ch]
16268
                mov     [esp+10h], ebp
16269
                mov     ebx, [esp+18h]
16270
                mov     edi, [esp+4]
16271
                xor     ebp, 0FFFFFFFFh
16272
                mov     ecx, [esp+8]
16273
                and     ebx, edi
16274
                mov     edx, [esp]
16275
                and     ebp, ecx
16276
                xor     ebx, [esp+1Ch]
16277
                xor     ebp, edx
16278
                xor     ecx, edi
16279
                xor     ebx, ebp
16280
                and     ecx, [esp+18h]
16281
                and     ebx, [esp+14h]
16282
                ror     eax, 0Bh
16283
                xor     ecx, edx
16284
                mov     ebp, [esi+44h]
16285
                xor     ecx, ebx
16286
                and     edi, [esp+10h]
16287
                xor     ecx, edi
16288
                lea     ebp, [eax+ebp+801F2E2h]
16289
                ror     ecx, 7
16290
                add     ebp, ecx
16291
                mov     eax, [esp+8]
16292
                mov     [esp+0Ch], ebp
16293
                mov     ebx, [esp+14h]
16294
                mov     edi, [esp]
16295
                xor     ebp, 0FFFFFFFFh
16296
                mov     ecx, [esp+4]
16297
                and     ebx, edi
16298
                mov     edx, [esp+1Ch]
16299
                and     ebp, ecx
16300
                xor     ebx, [esp+18h]
16301
                xor     ebp, edx
16302
                xor     ecx, edi
16303
                xor     ebx, ebp
16304
                and     ecx, [esp+14h]
16305
                and     ebx, [esp+10h]
16306
                ror     eax, 0Bh
16307
                xor     ecx, edx
16308
                mov     ebp, [esi+60h]
16309
                xor     ecx, ebx
16310
                and     edi, [esp+0Ch]
16311
                xor     ecx, edi
16312
                lea     ebp, [eax+ebp-7A7103EAh]
16313
                ror     ecx, 7
16314
                add     ebp, ecx
16315
                mov     eax, [esp+4]
16316
                mov     [esp+8], ebp
16317
                mov     ebx, [esp+10h]
16318
                mov     edi, [esp+1Ch]
16319
                xor     ebp, 0FFFFFFFFh
16320
                mov     ecx, [esp]
16321
                and     ebx, edi
16322
                mov     edx, [esp+18h]
16323
                and     ebp, ecx
16324
                xor     ebx, [esp+14h]
16325
                xor     ebp, edx
16326
                xor     ecx, edi
16327
                xor     ebx, ebp
16328
                and     ecx, [esp+10h]
16329
                and     ebx, [esp+0Ch]
16330
                ror     eax, 0Bh
16331
                xor     ecx, edx
16332
                mov     ebp, [esi+74h]
16333
                xor     ecx, ebx
16334
                and     edi, [esp+8]
16335
                xor     ecx, edi
16336
                lea     ebp, [eax+ebp+636920D8h]
16337
                ror     ecx, 7
16338
                add     ebp, ecx
16339
                mov     eax, [esp]
16340
                mov     [esp+4], ebp
16341
                mov     ebx, [esp+0Ch]
16342
                mov     edi, [esp+18h]
16343
                xor     ebp, 0FFFFFFFFh
16344
                mov     ecx, [esp+1Ch]
16345
                and     ebx, edi
16346
                mov     edx, [esp+14h]
16347
                and     ebp, ecx
16348
                xor     ebx, [esp+10h]
16349
                xor     ebp, edx
16350
                xor     ecx, edi
16351
                xor     ebx, ebp
16352
                and     ecx, [esp+0Ch]
16353
                and     ebx, [esp+8]
16354
                ror     eax, 0Bh
16355
                xor     ecx, edx
16356
                mov     ebp, [esi+18h]
16357
                xor     ecx, ebx
16358
                and     edi, [esp+4]
16359
                xor     ecx, edi
16360
                lea     ebp, [eax+ebp+71574E69h]
16361
                ror     ecx, 7
16362
                add     ebp, ecx
16363
                mov     eax, [esp+1Ch]
16364
                mov     [esp], ebp
16365
                mov     ebx, [esp+8]
16366
                mov     edi, [esp+14h]
16367
                xor     ebp, 0FFFFFFFFh
16368
                mov     ecx, [esp+18h]
16369
                and     ebx, edi
16370
                mov     edx, [esp+10h]
16371
                and     ebp, ecx
16372
                xor     ebx, [esp+0Ch]
16373
                xor     ebp, edx
16374
                xor     ecx, edi
16375
                xor     ebx, ebp
16376
                and     ecx, [esp+8]
16377
                and     ebx, [esp+4]
16378
                ror     eax, 0Bh
16379
                xor     ecx, edx
16380
                mov     ebp, [esi+4Ch]
16381
                xor     ecx, ebx
16382
                and     edi, [esp]
16383
                xor     ecx, edi
16384
                lea     ebp, [eax+ebp-5BA7015Dh]
16385
                ror     ecx, 7
16386
                add     ebp, ecx
16387
                mov     eax, [esp+18h]
16388
                mov     [esp+1Ch], ebp
16389
                mov     ebx, [esp+4]
16390
                mov     edi, [esp+10h]
16391
                xor     ebp, 0FFFFFFFFh
16392
                mov     ecx, [esp+14h]
16393
                and     ebx, edi
16394
                mov     edx, [esp+0Ch]
16395
                and     ebp, ecx
16396
                xor     ebx, [esp+8]
16397
                xor     ebp, edx
16398
                xor     ecx, edi
16399
                xor     ebx, ebp
16400
                and     ecx, [esp+4]
16401
                and     ebx, [esp]
16402
                ror     eax, 0Bh
16403
                xor     ecx, edx
16404
                mov     ebp, [esi+30h]
16405
                xor     ecx, ebx
16406
                and     edi, [esp+1Ch]
16407
                xor     ecx, edi
16408
                lea     ebp, [eax+ebp-0B6CC282h]
16409
                ror     ecx, 7
16410
                add     ebp, ecx
16411
                mov     eax, [esp+14h]
16412
                mov     [esp+18h], ebp
16413
                mov     ebx, [esp]
16414
                mov     edi, [esp+0Ch]
16415
                xor     ebp, 0FFFFFFFFh
16416
                mov     ecx, [esp+10h]
16417
                and     ebx, edi
16418
                mov     edx, [esp+8]
16419
                and     ebp, ecx
16420
                xor     ebx, [esp+4]
16421
                xor     ebp, edx
16422
                xor     ecx, edi
16423
                xor     ebx, ebp
16424
                and     ecx, [esp]
16425
                and     ebx, [esp+1Ch]
16426
                ror     eax, 0Bh
16427
                xor     ecx, edx
16428
                mov     ebp, [esi+3Ch]
16429
                xor     ecx, ebx
16430
                and     edi, [esp+18h]
16431
                xor     ecx, edi
16432
                lea     ebp, [eax+ebp+0D95748Fh]
16433
                ror     ecx, 7
16434
                add     ebp, ecx
16435
                mov     eax, [esp+10h]
16436
                mov     [esp+14h], ebp
16437
                mov     ebx, [esp+1Ch]
16438
                mov     edi, [esp+8]
16439
                xor     ebp, 0FFFFFFFFh
16440
                mov     ecx, [esp+0Ch]
16441
                and     ebx, edi
16442
                mov     edx, [esp+4]
16443
                and     ebp, ecx
16444
                xor     ebx, [esp]
16445
                xor     ebp, edx
16446
                xor     ecx, edi
16447
                xor     ebx, ebp
16448
                and     ecx, [esp+1Ch]
16449
                and     ebx, [esp+18h]
16450
                ror     eax, 0Bh
16451
                xor     ecx, edx
16452
                mov     ebp, [esi+34h]
16453
                xor     ecx, ebx
16454
                and     edi, [esp+14h]
16455
                xor     ecx, edi
16456
                lea     ebp, [eax+ebp+728EB658h]
16457
                ror     ecx, 7
16458
                add     ebp, ecx
16459
                mov     eax, [esp+0Ch]
16460
                mov     [esp+10h], ebp
16461
                mov     ebx, [esp+18h]
16462
                mov     edi, [esp+4]
16463
                xor     ebp, 0FFFFFFFFh
16464
                mov     ecx, [esp+8]
16465
                and     ebx, edi
16466
                mov     edx, [esp]
16467
                and     ebp, ecx
16468
                xor     ebx, [esp+1Ch]
16469
                xor     ebp, edx
16470
                xor     ecx, edi
16471
                xor     ebx, ebp
16472
                and     ecx, [esp+18h]
16473
                and     ebx, [esp+14h]
16474
                ror     eax, 0Bh
16475
                xor     ecx, edx
16476
                mov     ebp, [esi+8]
16477
                xor     ecx, ebx
16478
                and     edi, [esp+10h]
16479
                xor     ecx, edi
16480
                lea     ebp, [eax+ebp+718BCD58h]
16481
                ror     ecx, 7
16482
                add     ebp, ecx
16483
                mov     eax, [esp+8]
16484
                mov     [esp+0Ch], ebp
16485
                mov     ebx, [esp+14h]
16486
                mov     edi, [esp]
16487
                xor     ebp, 0FFFFFFFFh
16488
                mov     ecx, [esp+4]
16489
                and     ebx, edi
16490
                mov     edx, [esp+1Ch]
16491
                and     ebp, ecx
16492
                xor     ebx, [esp+18h]
16493
                xor     ebp, edx
16494
                xor     ecx, edi
16495
                xor     ebx, ebp
16496
                and     ecx, [esp+14h]
16497
                and     ebx, [esp+10h]
16498
                ror     eax, 0Bh
16499
                xor     ecx, edx
16500
                mov     ebp, [esi+64h]
16501
                xor     ecx, ebx
16502
                and     edi, [esp+0Ch]
16503
                xor     ecx, edi
16504
                lea     ebp, [eax+ebp-7DEAB512h]
16505
                ror     ecx, 7
16506
                add     ebp, ecx
16507
                mov     eax, [esp+4]
16508
                mov     [esp+8], ebp
16509
                mov     ebx, [esp+10h]
16510
                mov     edi, [esp+1Ch]
16511
                xor     ebp, 0FFFFFFFFh
16512
                mov     ecx, [esp]
16513
                and     ebx, edi
16514
                mov     edx, [esp+18h]
16515
                and     ebp, ecx
16516
                xor     ebx, [esp+14h]
16517
                xor     ebp, edx
16518
                xor     ecx, edi
16519
                xor     ebx, ebp
16520
                and     ecx, [esp+10h]
16521
                and     ebx, [esp+0Ch]
16522
                ror     eax, 0Bh
16523
                xor     ecx, edx
16524
                mov     ebp, [esi+7Ch]
16525
                xor     ecx, ebx
16526
                and     edi, [esp+8]
16527
                xor     ecx, edi
16528
                lea     ebp, [eax+ebp+7B54A41Dh]
16529
                ror     ecx, 7
16530
                add     ebp, ecx
16531
                mov     eax, [esp]
16532
                mov     [esp+4], ebp
16533
                mov     ebx, [esp+0Ch]
16534
                mov     edi, [esp+18h]
16535
                xor     ebp, 0FFFFFFFFh
16536
                mov     ecx, [esp+1Ch]
16537
                and     ebx, edi
16538
                mov     edx, [esp+14h]
16539
                and     ebp, ecx
16540
                xor     ebx, [esp+10h]
16541
                xor     ebp, edx
16542
                xor     ecx, edi
16543
                xor     ebx, ebp
16544
                and     ecx, [esp+0Ch]
16545
                and     ebx, [esp+8]
16546
                ror     eax, 0Bh
16547
                xor     ecx, edx
16548
                mov     ebp, [esi+6Ch]
16549
                xor     ecx, ebx
16550
                and     edi, [esp+4]
16551
                xor     ecx, edi
16552
                lea     ebp, [eax+ebp-3DA5A64Bh]
16553
                ror     ecx, 7
16554
                add     ebp, ecx
16555
                mov     eax, [esp+1Ch]
16556
                mov     [esp], ebp
16557
                mov     ebp, [esp+14h]
16558
                mov     ebx, [esp]
16559
                mov     ecx, [esp+8]
16560
                mov     edi, ebx
16561
                and     ebx, [esp+10h]
16562
                and     edi, ecx
16563
                xor     ebx, ebp
16564
                ror     eax, 0Bh
16565
                xor     edi, ebp
16566
                mov     ebp, [esi+4Ch]
16567
                xor     edi, [esp+4]
16568
                and     ecx, [esp+0Ch]
16569
                and     edi, [esp+18h]
16570
                xor     ecx, ebx
16571
                lea     ebp, [eax+ebp-63CF2AC7h]
16572
                xor     ecx, edi
16573
                ror     ecx, 7
16574
                add     ebp, ecx
16575
                mov     eax, [esp+18h]
16576
                mov     [esp+1Ch], ebp
16577
                mov     ebp, [esp+10h]
16578
                mov     ebx, [esp+1Ch]
16579
                mov     ecx, [esp+4]
16580
                mov     edi, ebx
16581
                and     ebx, [esp+0Ch]
16582
                and     edi, ecx
16583
                xor     ebx, ebp
16584
                ror     eax, 0Bh
16585
                xor     edi, ebp
16586
                mov     ebp, [esi+24h]
16587
                xor     edi, [esp]
16588
                and     ecx, [esp+8]
16589
                and     edi, [esp+14h]
16590
                xor     ecx, ebx
16591
                lea     ebp, [eax+ebp+2AF26013h]
16592
                xor     ecx, edi
16593
                ror     ecx, 7
16594
                add     ebp, ecx
16595
                mov     eax, [esp+14h]
16596
                mov     [esp+18h], ebp
16597
                mov     ebp, [esp+0Ch]
16598
                mov     ebx, [esp+18h]
16599
                mov     ecx, [esp]
16600
                mov     edi, ebx
16601
                and     ebx, [esp+8]
16602
                and     edi, ecx
16603
                xor     ebx, ebp
16604
                ror     eax, 0Bh
16605
                xor     edi, ebp
16606
                mov     ebp, [esi+10h]
16607
                xor     edi, [esp+1Ch]
16608
                and     ecx, [esp+4]
16609
                and     edi, [esp+10h]
16610
                xor     ecx, ebx
16611
                lea     ebp, [eax+ebp-3A2E4FDDh]
16612
                xor     ecx, edi
16613
                ror     ecx, 7
16614
                add     ebp, ecx
16615
                mov     eax, [esp+10h]
16616
                mov     [esp+14h], ebp
16617
                mov     ebp, [esp+8]
16618
                mov     ebx, [esp+14h]
16619
                mov     ecx, [esp+1Ch]
16620
                mov     edi, ebx
16621
                and     ebx, [esp+4]
16622
                and     edi, ecx
16623
                xor     ebx, ebp
16624
                ror     eax, 0Bh
16625
                xor     edi, ebp
16626
                mov     ebp, [esi+50h]
16627
                xor     edi, [esp+18h]
16628
                and     ecx, [esp]
16629
                and     edi, [esp+0Ch]
16630
                xor     ecx, ebx
16631
                lea     ebp, [eax+ebp+286085F0h]
16632
                xor     ecx, edi
16633
                ror     ecx, 7
16634
                add     ebp, ecx
16635
                mov     eax, [esp+0Ch]
16636
                mov     [esp+10h], ebp
16637
                mov     ebp, [esp+4]
16638
                mov     ebx, [esp+10h]
16639
                mov     ecx, [esp+18h]
16640
                mov     edi, ebx
16641
                and     ebx, [esp]
16642
                and     edi, ecx
16643
                xor     ebx, ebp
16644
                ror     eax, 0Bh
16645
                xor     edi, ebp
16646
                mov     ebp, [esi+70h]
16647
                xor     edi, [esp+14h]
16648
                and     ecx, [esp+1Ch]
16649
                and     edi, [esp+8]
16650
                xor     ecx, ebx
16651
                lea     ebp, [eax+ebp-35BE86E8h]
16652
                xor     ecx, edi
16653
                ror     ecx, 7
16654
                add     ebp, ecx
16655
                mov     eax, [esp+8]
16656
                mov     [esp+0Ch], ebp
16657
                mov     ebp, [esp]
16658
                mov     ebx, [esp+0Ch]
16659
                mov     ecx, [esp+14h]
16660
                mov     edi, ebx
16661
                and     ebx, [esp+1Ch]
16662
                and     edi, ecx
16663
                xor     ebx, ebp
16664
                ror     eax, 0Bh
16665
                xor     edi, ebp
16666
                mov     ebp, [esi+44h]
16667
                xor     edi, [esp+10h]
16668
                and     ecx, [esp+18h]
16669
                and     edi, [esp+4]
16670
                xor     ecx, ebx
16671
                lea     ebp, [eax+ebp-4724C711h]
16672
                xor     ecx, edi
16673
                ror     ecx, 7
16674
                add     ebp, ecx
16675
                mov     eax, [esp+4]
16676
                mov     [esp+8], ebp
16677
                mov     ebp, [esp+1Ch]
16678
                mov     ebx, [esp+8]
16679
                mov     ecx, [esp+10h]
16680
                mov     edi, ebx
16681
                and     ebx, [esp+18h]
16682
                and     edi, ecx
16683
                xor     ebx, ebp
16684
                ror     eax, 0Bh
16685
                xor     edi, ebp
16686
                mov     ebp, [esi+20h]
16687
                xor     edi, [esp+0Ch]
16688
                and     ecx, [esp+14h]
16689
                and     edi, [esp]
16690
                xor     ecx, ebx
16691
                lea     ebp, [eax+ebp-71862350h]
16692
                xor     ecx, edi
16693
                ror     ecx, 7
16694
                add     ebp, ecx
16695
                mov     eax, [esp]
16696
                mov     [esp+4], ebp
16697
                mov     ebp, [esp+18h]
16698
                mov     ebx, [esp+4]
16699
                mov     ecx, [esp+0Ch]
16700
                mov     edi, ebx
16701
                and     ebx, [esp+14h]
16702
                and     edi, ecx
16703
                xor     ebx, ebp
16704
                ror     eax, 0Bh
16705
                xor     edi, ebp
16706
                mov     ebp, [esi+58h]
16707
                xor     edi, [esp+8]
16708
                and     ecx, [esp+10h]
16709
                and     edi, [esp+1Ch]
16710
                xor     ecx, ebx
16711
                lea     ebp, [eax+ebp+603A180Eh]
16712
                xor     ecx, edi
16713
                ror     ecx, 7
16714
                add     ebp, ecx
16715
                mov     eax, [esp+1Ch]
16716
                mov     [esp], ebp
16717
                mov     ebp, [esp+14h]
16718
                mov     ebx, [esp]
16719
                mov     ecx, [esp+8]
16720
                mov     edi, ebx
16721
                and     ebx, [esp+10h]
16722
                and     edi, ecx
16723
                xor     ebx, ebp
16724
                ror     eax, 0Bh
16725
                xor     edi, ebp
16726
                mov     ebp, [esi+74h]
16727
                xor     edi, [esp+4]
16728
                and     ecx, [esp+0Ch]
16729
                and     edi, [esp+18h]
16730
                xor     ecx, ebx
16731
                lea     ebp, [eax+ebp+6C9E0E8Bh]
16732
                xor     ecx, edi
16733
                ror     ecx, 7
16734
                add     ebp, ecx
16735
                mov     eax, [esp+18h]
16736
                mov     [esp+1Ch], ebp
16737
                mov     ebp, [esp+10h]
16738
                mov     ebx, [esp+1Ch]
16739
                mov     ecx, [esp+4]
16740
                mov     edi, ebx
16741
                and     ebx, [esp+0Ch]
16742
                and     edi, ecx
16743
                xor     ebx, ebp
16744
                ror     eax, 0Bh
16745
                xor     edi, ebp
16746
                mov     ebp, [esi+38h]
16747
                xor     edi, [esp]
16748
                and     ecx, [esp+8]
16749
                and     edi, [esp+14h]
16750
                xor     ecx, ebx
16751
                lea     ebp, [eax+ebp-4FE175C2h]
16752
                xor     ecx, edi
16753
                ror     ecx, 7
16754
                add     ebp, ecx
16755
                mov     eax, [esp+14h]
16756
                mov     [esp+18h], ebp
16757
                mov     ebp, [esp+0Ch]
16758
                mov     ebx, [esp+18h]
16759
                mov     ecx, [esp]
16760
                mov     edi, ebx
16761
                and     ebx, [esp+8]
16762
                and     edi, ecx
16763
                xor     ebx, ebp
16764
                ror     eax, 0Bh
16765
                xor     edi, ebp
16766
                mov     ebp, [esi+64h]
16767
                xor     edi, [esp+1Ch]
16768
                and     ecx, [esp+4]
16769
                and     edi, [esp+10h]
16770
                xor     ecx, ebx
16771
                lea     ebp, [eax+ebp-28EA883Fh]
16772
                xor     ecx, edi
16773
                ror     ecx, 7
16774
                add     ebp, ecx
16775
                mov     eax, [esp+10h]
16776
                mov     [esp+14h], ebp
16777
                mov     ebp, [esp+8]
16778
                mov     ebx, [esp+14h]
16779
                mov     ecx, [esp+1Ch]
16780
                mov     edi, ebx
16781
                and     ebx, [esp+4]
16782
                and     edi, ecx
16783
                xor     ebx, ebp
16784
                ror     eax, 0Bh
16785
                xor     edi, ebp
16786
                mov     ebp, [esi+30h]
16787
                xor     edi, [esp+18h]
16788
                and     ecx, [esp]
16789
                and     edi, [esp+0Ch]
16790
                xor     ecx, ebx
16791
                lea     ebp, [eax+ebp-42CEB4D9h]
16792
                xor     ecx, edi
16793
                ror     ecx, 7
16794
                add     ebp, ecx
16795
                mov     eax, [esp+0Ch]
16796
                mov     [esp+10h], ebp
16797
                mov     ebp, [esp+4]
16798
                mov     ebx, [esp+10h]
16799
                mov     ecx, [esp+18h]
16800
                mov     edi, ebx
16801
                and     ebx, [esp]
16802
                and     edi, ecx
16803
                xor     ebx, ebp
16804
                ror     eax, 0Bh
16805
                xor     edi, ebp
16806
                mov     ebp, [esi+60h]
16807
                xor     edi, [esp+14h]
16808
                and     ecx, [esp+1Ch]
16809
                and     edi, [esp+8]
16810
                xor     ecx, ebx
16811
                lea     ebp, [eax+ebp+78AF2FDAh]
16812
                xor     ecx, edi
16813
                ror     ecx, 7
16814
                add     ebp, ecx
16815
                mov     eax, [esp+8]
16816
                mov     [esp+0Ch], ebp
16817
                mov     ebp, [esp]
16818
                mov     ebx, [esp+0Ch]
16819
                mov     ecx, [esp+14h]
16820
                mov     edi, ebx
16821
                and     ebx, [esp+1Ch]
16822
                and     edi, ecx
16823
                xor     ebx, ebp
16824
                ror     eax, 0Bh
16825
                xor     edi, ebp
16826
                mov     ebp, [esi+78h]
16827
                xor     edi, [esp+10h]
16828
                and     ecx, [esp+18h]
16829
                and     edi, [esp+4]
16830
                xor     ecx, ebx
16831
                lea     ebp, [eax+ebp+55605C60h]
16832
                xor     ecx, edi
16833
                ror     ecx, 7
16834
                add     ebp, ecx
16835
                mov     eax, [esp+4]
16836
                mov     [esp+8], ebp
16837
                mov     ebp, [esp+1Ch]
16838
                mov     ebx, [esp+8]
16839
                mov     ecx, [esp+10h]
16840
                mov     edi, ebx
16841
                and     ebx, [esp+18h]
16842
                and     edi, ecx
16843
                xor     ebx, ebp
16844
                ror     eax, 0Bh
16845
                xor     edi, ebp
16846
                mov     ebp, [esi+40h]
16847
                xor     edi, [esp+0Ch]
16848
                and     ecx, [esp+14h]
16849
                and     edi, [esp]
16850
                xor     ecx, ebx
16851
                lea     ebp, [eax+ebp-19AADA0Dh]
16852
                xor     ecx, edi
16853
                ror     ecx, 7
16854
                add     ebp, ecx
16855
                mov     eax, [esp]
16856
                mov     [esp+4], ebp
16857
                mov     ebp, [esp+18h]
16858
                mov     ebx, [esp+4]
16859
                mov     ecx, [esp+0Ch]
16860
                mov     edi, ebx
16861
                and     ebx, [esp+14h]
16862
                and     edi, ecx
16863
                xor     ebx, ebp
16864
                ror     eax, 0Bh
16865
                xor     edi, ebp
16866
                mov     ebp, [esi+68h]
16867
                xor     edi, [esp+8]
16868
                and     ecx, [esp+10h]
16869
                and     edi, [esp+1Ch]
16870
                xor     ecx, ebx
16871
                lea     ebp, [eax+ebp-55AA546Ch]
16872
                xor     ecx, edi
16873
                ror     ecx, 7
16874
                add     ebp, ecx
16875
                mov     eax, [esp+1Ch]
16876
                mov     [esp], ebp
16877
                mov     ebp, [esp+14h]
16878
                mov     ebx, [esp]
16879
                mov     ecx, [esp+8]
16880
                mov     edi, ebx
16881
                and     ebx, [esp+10h]
16882
                and     edi, ecx
16883
                xor     ebx, ebp
16884
                ror     eax, 0Bh
16885
                xor     edi, ebp
16886
                mov     ebp, [esi+7Ch]
16887
                xor     edi, [esp+4]
16888
                and     ecx, [esp+0Ch]
16889
                and     edi, [esp+18h]
16890
                xor     ecx, ebx
16891
                lea     ebp, [eax+ebp+57489862h]
16892
                xor     ecx, edi
16893
                ror     ecx, 7
16894
                add     ebp, ecx
16895
                mov     eax, [esp+18h]
16896
                mov     [esp+1Ch], ebp
16897
                mov     ebp, [esp+10h]
16898
                mov     ebx, [esp+1Ch]
16899
                mov     ecx, [esp+4]
16900
                mov     edi, ebx
16901
                and     ebx, [esp+0Ch]
16902
                and     edi, ecx
16903
                xor     ebx, ebp
16904
                ror     eax, 0Bh
16905
                xor     edi, ebp
16906
                mov     ebp, [esi+3Ch]
16907
                xor     edi, [esp]
16908
                and     ecx, [esp+8]
16909
                and     edi, [esp+14h]
16910
                xor     ecx, ebx
16911
                lea     ebp, [eax+ebp+63E81440h]
16912
                xor     ecx, edi
16913
                ror     ecx, 7
16914
                add     ebp, ecx
16915
                mov     eax, [esp+14h]
16916
                mov     [esp+18h], ebp
16917
                mov     ebp, [esp+0Ch]
16918
                mov     ebx, [esp+18h]
16919
                mov     ecx, [esp]
16920
                mov     edi, ebx
16921
                and     ebx, [esp+8]
16922
                and     edi, ecx
16923
                xor     ebx, ebp
16924
                ror     eax, 0Bh
16925
                xor     edi, ebp
16926
                mov     ebp, [esi+1Ch]
16927
                xor     edi, [esp+1Ch]
16928
                and     ecx, [esp+4]
16929
                and     edi, [esp+10h]
16930
                xor     ecx, ebx
16931
                lea     ebp, [eax+ebp+55CA396Ah]
16932
                xor     ecx, edi
16933
                ror     ecx, 7
16934
                add     ebp, ecx
16935
                mov     eax, [esp+10h]
16936
                mov     [esp+14h], ebp
16937
                mov     ebp, [esp+8]
16938
                mov     ebx, [esp+14h]
16939
                mov     ecx, [esp+1Ch]
16940
                mov     edi, ebx
16941
                and     ebx, [esp+4]
16942
                and     edi, ecx
16943
                xor     ebx, ebp
16944
                ror     eax, 0Bh
16945
                xor     edi, ebp
16946
                mov     ebp, [esi+0Ch]
16947
                xor     edi, [esp+18h]
16948
                and     ecx, [esp]
16949
                and     edi, [esp+0Ch]
16950
                xor     ecx, ebx
16951
                lea     ebp, [eax+ebp+2AAB10B6h]
16952
                xor     ecx, edi
16953
                ror     ecx, 7
16954
                add     ebp, ecx
16955
                mov     eax, [esp+0Ch]
16956
                mov     [esp+10h], ebp
16957
                mov     ebp, [esp+4]
16958
                mov     ebx, [esp+10h]
16959
                mov     ecx, [esp+18h]
16960
                mov     edi, ebx
16961
                and     ebx, [esp]
16962
                and     edi, ecx
16963
                xor     ebx, ebp
16964
                ror     eax, 0Bh
16965
                xor     edi, ebp
16966
                mov     ebp, [esi+4]
16967
                xor     edi, [esp+14h]
16968
                and     ecx, [esp+1Ch]
16969
                and     edi, [esp+8]
16970
                xor     ecx, ebx
16971
                lea     ebp, [eax+ebp-4B33A3CCh]
16972
                xor     ecx, edi
16973
                ror     ecx, 7
16974
                add     ebp, ecx
16975
                mov     eax, [esp+8]
16976
                mov     [esp+0Ch], ebp
16977
                mov     ebp, [esp]
16978
                mov     ebx, [esp+0Ch]
16979
                mov     ecx, [esp+14h]
16980
                mov     edi, ebx
16981
                and     ebx, [esp+1Ch]
16982
                and     edi, ecx
16983
                xor     ebx, ebp
16984
                ror     eax, 0Bh
16985
                xor     edi, ebp
16986
                mov     ebp, [esi]
16987
                xor     edi, [esp+10h]
16988
                and     ecx, [esp+18h]
16989
                and     edi, [esp+4]
16990
                xor     ecx, ebx
16991
                lea     ebp, [eax+ebp+1141E8CEh]
16992
                xor     ecx, edi
16993
                ror     ecx, 7
16994
                add     ebp, ecx
16995
                mov     eax, [esp+4]
16996
                mov     [esp+8], ebp
16997
                mov     ebp, [esp+1Ch]
16998
                mov     ebx, [esp+8]
16999
                mov     ecx, [esp+10h]
17000
                mov     edi, ebx
17001
                and     ebx, [esp+18h]
17002
                and     edi, ecx
17003
                xor     ebx, ebp
17004
                ror     eax, 0Bh
17005
                xor     edi, ebp
17006
                mov     ebp, [esi+48h]
17007
                xor     edi, [esp+0Ch]
17008
                and     ecx, [esp+14h]
17009
                and     edi, [esp]
17010
                xor     ecx, ebx
17011
                lea     ebp, [eax+ebp-5EAB7951h]
17012
                xor     ecx, edi
17013
                ror     ecx, 7
17014
                add     ebp, ecx
17015
                mov     eax, [esp]
17016
                mov     [esp+4], ebp
17017
                mov     ebp, [esp+18h]
17018
                mov     ebx, [esp+4]
17019
                mov     ecx, [esp+0Ch]
17020
                mov     edi, ebx
17021
                and     ebx, [esp+14h]
17022
                and     edi, ecx
17023
                xor     ebx, ebp
17024
                ror     eax, 0Bh
17025
                xor     edi, ebp
17026
                mov     ebp, [esi+6Ch]
17027
                xor     edi, [esp+8]
17028
                and     ecx, [esp+10h]
17029
                and     edi, [esp+1Ch]
17030
                xor     ecx, ebx
17031
                lea     ebp, [eax+ebp+7C72E993h]
17032
                xor     ecx, edi
17033
                ror     ecx, 7
17034
                add     ebp, ecx
17035
                mov     eax, [esp+1Ch]
17036
                mov     [esp], ebp
17037
                mov     ebp, [esp+14h]
17038
                mov     ebx, [esp]
17039
                mov     ecx, [esp+8]
17040
                mov     edi, ebx
17041
                and     ebx, [esp+10h]
17042
                and     edi, ecx
17043
                xor     ebx, ebp
17044
                ror     eax, 0Bh
17045
                xor     edi, ebp
17046
                mov     ebp, [esi+34h]
17047
                xor     edi, [esp+4]
17048
                and     ecx, [esp+0Ch]
17049
                and     edi, [esp+18h]
17050
                xor     ecx, ebx
17051
                lea     ebp, [eax+ebp-4C11EBEFh]
17052
                xor     ecx, edi
17053
                ror     ecx, 7
17054
                add     ebp, ecx
17055
                mov     eax, [esp+18h]
17056
                mov     [esp+1Ch], ebp
17057
                mov     ebp, [esp+10h]
17058
                mov     ebx, [esp+1Ch]
17059
                mov     ecx, [esp+4]
17060
                mov     edi, ebx
17061
                and     ebx, [esp+0Ch]
17062
                and     edi, ecx
17063
                xor     ebx, ebp
17064
                ror     eax, 0Bh
17065
                xor     edi, ebp
17066
                mov     ebp, [esi+18h]
17067
                xor     edi, [esp]
17068
                and     ecx, [esp+8]
17069
                and     edi, [esp+14h]
17070
                xor     ecx, ebx
17071
                lea     ebp, [eax+ebp+636FBC2Ah]
17072
                xor     ecx, edi
17073
                ror     ecx, 7
17074
                add     ebp, ecx
17075
                mov     eax, [esp+14h]
17076
                mov     [esp+18h], ebp
17077
                mov     ebp, [esp+0Ch]
17078
                mov     ebx, [esp+18h]
17079
                mov     ecx, [esp]
17080
                mov     edi, ebx
17081
                and     ebx, [esp+8]
17082
                and     edi, ecx
17083
                xor     ebx, ebp
17084
                ror     eax, 0Bh
17085
                xor     edi, ebp
17086
                mov     ebp, [esi+54h]
17087
                xor     edi, [esp+1Ch]
17088
                and     ecx, [esp+4]
17089
                and     edi, [esp+10h]
17090
                xor     ecx, ebx
17091
                lea     ebp, [eax+ebp+2BA9C55Dh]
17092
                xor     ecx, edi
17093
                ror     ecx, 7
17094
                add     ebp, ecx
17095
                mov     eax, [esp+10h]
17096
                mov     [esp+14h], ebp
17097
                mov     ebp, [esp+8]
17098
                mov     ebx, [esp+14h]
17099
                mov     ecx, [esp+1Ch]
17100
                mov     edi, ebx
17101
                and     ebx, [esp+4]
17102
                and     edi, ecx
17103
                xor     ebx, ebp
17104
                ror     eax, 0Bh
17105
                xor     edi, ebp
17106
                mov     ebp, [esi+28h]
17107
                xor     edi, [esp+18h]
17108
                and     ecx, [esp]
17109
                and     edi, [esp+0Ch]
17110
                xor     ecx, ebx
17111
                lea     ebp, [eax+ebp+741831F6h]
17112
                xor     ecx, edi
17113
                ror     ecx, 7
17114
                add     ebp, ecx
17115
                mov     eax, [esp+0Ch]
17116
                mov     [esp+10h], ebp
17117
                mov     ebp, [esp+4]
17118
                mov     ebx, [esp+10h]
17119
                mov     ecx, [esp+18h]
17120
                mov     edi, ebx
17121
                and     ebx, [esp]
17122
                and     edi, ecx
17123
                xor     ebx, ebp
17124
                ror     eax, 0Bh
17125
                xor     edi, ebp
17126
                mov     ebp, [esi+5Ch]
17127
                xor     edi, [esp+14h]
17128
                and     ecx, [esp+1Ch]
17129
                and     edi, [esp+8]
17130
                xor     ecx, ebx
17131
                lea     ebp, [eax+ebp-31A3C1EAh]
17132
                xor     ecx, edi
17133
                ror     ecx, 7
17134
                add     ebp, ecx
17135
                mov     eax, [esp+8]
17136
                mov     [esp+0Ch], ebp
17137
                mov     ebp, [esp]
17138
                mov     ebx, [esp+0Ch]
17139
                mov     ecx, [esp+14h]
17140
                mov     edi, ebx
17141
                and     ebx, [esp+1Ch]
17142
                and     edi, ecx
17143
                xor     ebx, ebp
17144
                ror     eax, 0Bh
17145
                xor     edi, ebp
17146
                mov     ebp, [esi+2Ch]
17147
                xor     edi, [esp+10h]
17148
                and     ecx, [esp+18h]
17149
                and     edi, [esp+4]
17150
                xor     ecx, ebx
17151
                lea     ebp, [eax+ebp-64786CE2h]
17152
                xor     ecx, edi
17153
                ror     ecx, 7
17154
                add     ebp, ecx
17155
                mov     eax, [esp+4]
17156
                mov     [esp+8], ebp
17157
                mov     ebp, [esp+1Ch]
17158
                mov     ebx, [esp+8]
17159
                mov     ecx, [esp+10h]
17160
                mov     edi, ebx
17161
                and     ebx, [esp+18h]
17162
                and     edi, ecx
17163
                xor     ebx, ebp
17164
                ror     eax, 0Bh
17165
                xor     edi, ebp
17166
                mov     ebp, [esi+14h]
17167
                xor     edi, [esp+0Ch]
17168
                and     ecx, [esp+14h]
17169
                and     edi, [esp]
17170
                xor     ecx, ebx
17171
                lea     ebp, [eax+ebp-502945CDh]
17172
                xor     ecx, edi
17173
                ror     ecx, 7
17174
                add     ebp, ecx
17175
                mov     eax, [esp]
17176
                mov     [esp+4], ebp
17177
                mov     ebp, [esp+18h]
17178
                mov     ebx, [esp+4]
17179
                mov     ecx, [esp+0Ch]
17180
                mov     edi, ebx
17181
                and     ebx, [esp+14h]
17182
                and     edi, ecx
17183
                xor     ebx, ebp
17184
                ror     eax, 0Bh
17185
                xor     edi, ebp
17186
                mov     ebp, [esi+8]
17187
                xor     edi, [esp+8]
17188
                and     ecx, [esp+10h]
17189
                and     edi, [esp+1Ch]
17190
                xor     ecx, ebx
17191
                lea     ebp, [eax+ebp+6C24CF5Ch]
17192
                xor     ecx, edi
17193
                ror     ecx, 7
17194
                add     ebp, ecx
17195
                mov     eax, [esp+1Ch]
17196
                mov     [esp], ebp
17197
                mov     ebp, [esp+8]
17198
                mov     ecx, [esp+10h]
17199
                mov     edx, [esp+18h]
17200
                mov     edi, ebp
17201
                mov     ebx, edx
17202
                xor     ebp, 0FFFFFFFFh
17203
                xor     ebx, 0FFFFFFFFh
17204
                and     ebp, ecx
17205
                and     ebx, [esp+14h]
17206
                xor     ebp, [esp+4]
17207
                xor     ebx, edx
17208
                xor     ebp, [esp+0Ch]
17209
                xor     ebx, ebp
17210
                mov     ebp, edi
17211
                and     ebx, [esp]
17212
                and     ebp, [esp+4]
17213
                and     edi, edx
17214
                xor     ebp, ecx
17215
                xor     ebx, [esp+0Ch]
17216
                ror     eax, 0Bh
17217
                xor     ebp, edx
17218
                mov     edx, [esi+60h]
17219
                and     ebp, [esp+14h]
17220
                xor     ebx, edi
17221
                xor     ebp, ebx
17222
                lea     edx, [eax+edx+7A325381h]
17223
                ror     ebp, 7
17224
                add     ebp, edx
17225
                mov     eax, [esp+18h]
17226
                mov     [esp+1Ch], ebp
17227
                mov     ebp, [esp+4]
17228
                mov     ecx, [esp+0Ch]
17229
                mov     edx, [esp+14h]
17230
                mov     edi, ebp
17231
                mov     ebx, edx
17232
                xor     ebp, 0FFFFFFFFh
17233
                xor     ebx, 0FFFFFFFFh
17234
                and     ebp, ecx
17235
                and     ebx, [esp+10h]
17236
                xor     ebp, [esp]
17237
                xor     ebx, edx
17238
                xor     ebp, [esp+8]
17239
                xor     ebx, ebp
17240
                mov     ebp, edi
17241
                and     ebx, [esp+1Ch]
17242
                and     ebp, [esp]
17243
                and     edi, edx
17244
                xor     ebp, ecx
17245
                xor     ebx, [esp+8]
17246
                ror     eax, 0Bh
17247
                xor     ebp, edx
17248
                mov     edx, [esi+10h]
17249
                and     ebp, [esp+10h]
17250
                xor     ebx, edi
17251
                xor     ebp, ebx
17252
                lea     edx, [eax+edx+28958677h]
17253
                ror     ebp, 7
17254
                add     ebp, edx
17255
                mov     eax, [esp+14h]
17256
                mov     [esp+18h], ebp
17257
                mov     ebp, [esp]
17258
                mov     ecx, [esp+8]
17259
                mov     edx, [esp+10h]
17260
                mov     edi, ebp
17261
                mov     ebx, edx
17262
                xor     ebp, 0FFFFFFFFh
17263
                xor     ebx, 0FFFFFFFFh
17264
                and     ebp, ecx
17265
                and     ebx, [esp+0Ch]
17266
                xor     ebp, [esp+1Ch]
17267
                xor     ebx, edx
17268
                xor     ebp, [esp+4]
17269
                xor     ebx, ebp
17270
                mov     ebp, edi
17271
                and     ebx, [esp+18h]
17272
                and     ebp, [esp+1Ch]
17273
                and     edi, edx
17274
                xor     ebp, ecx
17275
                xor     ebx, [esp+4]
17276
                ror     eax, 0Bh
17277
                xor     ebp, edx
17278
                mov     edx, [esi]
17279
                and     ebp, [esp+0Ch]
17280
                xor     ebx, edi
17281
                xor     ebp, ebx
17282
                lea     edx, [eax+edx+3B8F4898h]
17283
                ror     ebp, 7
17284
                add     ebp, edx
17285
                mov     eax, [esp+10h]
17286
                mov     [esp+14h], ebp
17287
                mov     ebp, [esp+1Ch]
17288
                mov     ecx, [esp+4]
17289
                mov     edx, [esp+0Ch]
17290
                mov     edi, ebp
17291
                mov     ebx, edx
17292
                xor     ebp, 0FFFFFFFFh
17293
                xor     ebx, 0FFFFFFFFh
17294
                and     ebp, ecx
17295
                and     ebx, [esp+8]
17296
                xor     ebp, [esp+18h]
17297
                xor     ebx, edx
17298
                xor     ebp, [esp]
17299
                xor     ebx, ebp
17300
                mov     ebp, edi
17301
                and     ebx, [esp+14h]
17302
                and     ebp, [esp+18h]
17303
                and     edi, edx
17304
                xor     ebp, ecx
17305
                xor     ebx, [esp]
17306
                ror     eax, 0Bh
17307
                xor     ebp, edx
17308
                mov     edx, [esi+38h]
17309
                and     ebp, [esp+8]
17310
                xor     ebx, edi
17311
                xor     ebp, ebx
17312
                lea     edx, [eax+edx+6B4BB9AFh]
17313
                ror     ebp, 7
17314
                add     ebp, edx
17315
                mov     eax, [esp+0Ch]
17316
                mov     [esp+10h], ebp
17317
                mov     ebp, [esp+18h]
17318
                mov     ecx, [esp]
17319
                mov     edx, [esp+8]
17320
                mov     edi, ebp
17321
                mov     ebx, edx
17322
                xor     ebp, 0FFFFFFFFh
17323
                xor     ebx, 0FFFFFFFFh
17324
                and     ebp, ecx
17325
                and     ebx, [esp+4]
17326
                xor     ebp, [esp+14h]
17327
                xor     ebx, edx
17328
                xor     ebp, [esp+1Ch]
17329
                xor     ebx, ebp
17330
                mov     ebp, edi
17331
                and     ebx, [esp+10h]
17332
                and     ebp, [esp+14h]
17333
                and     edi, edx
17334
                xor     ebp, ecx
17335
                xor     ebx, [esp+1Ch]
17336
                ror     eax, 0Bh
17337
                xor     ebp, edx
17338
                mov     edx, [esi+8]
17339
                and     ebp, [esp+4]
17340
                xor     ebx, edi
17341
                xor     ebp, ebx
17342
                lea     edx, [eax+edx-3B4017E5h]
17343
                ror     ebp, 7
17344
                add     ebp, edx
17345
                mov     eax, [esp+8]
17346
                mov     [esp+0Ch], ebp
17347
                mov     ebp, [esp+14h]
17348
                mov     ecx, [esp+1Ch]
17349
                mov     edx, [esp+4]
17350
                mov     edi, ebp
17351
                mov     ebx, edx
17352
                xor     ebp, 0FFFFFFFFh
17353
                xor     ebx, 0FFFFFFFFh
17354
                and     ebp, ecx
17355
                and     ebx, [esp]
17356
                xor     ebp, [esp+10h]
17357
                xor     ebx, edx
17358
                xor     ebp, [esp+18h]
17359
                xor     ebx, ebp
17360
                mov     ebp, edi
17361
                and     ebx, [esp+0Ch]
17362
                and     ebp, [esp+10h]
17363
                and     edi, edx
17364
                xor     ebp, ecx
17365
                xor     ebx, [esp+18h]
17366
                ror     eax, 0Bh
17367
                xor     ebp, edx
17368
                mov     edx, [esi+1Ch]
17369
                and     ebp, [esp]
17370
                xor     ebx, edi
17371
                xor     ebp, ebx
17372
                lea     edx, [eax+edx+66282193h]
17373
                ror     ebp, 7
17374
                add     ebp, edx
17375
                mov     eax, [esp+4]
17376
                mov     [esp+8], ebp
17377
                mov     ebp, [esp+10h]
17378
                mov     ecx, [esp+18h]
17379
                mov     edx, [esp]
17380
                mov     edi, ebp
17381
                mov     ebx, edx
17382
                xor     ebp, 0FFFFFFFFh
17383
                xor     ebx, 0FFFFFFFFh
17384
                and     ebp, ecx
17385
                and     ebx, [esp+1Ch]
17386
                xor     ebp, [esp+0Ch]
17387
                xor     ebx, edx
17388
                xor     ebp, [esp+14h]
17389
                xor     ebx, ebp
17390
                mov     ebp, edi
17391
                and     ebx, [esp+8]
17392
                and     ebp, [esp+0Ch]
17393
                and     edi, edx
17394
                xor     ebp, ecx
17395
                xor     ebx, [esp+14h]
17396
                ror     eax, 0Bh
17397
                xor     ebp, edx
17398
                mov     edx, [esi+70h]
17399
                and     ebp, [esp+1Ch]
17400
                xor     ebx, edi
17401
                xor     ebp, ebx
17402
                lea     edx, [eax+edx+61D809CCh]
17403
                ror     ebp, 7
17404
                add     ebp, edx
17405
                mov     eax, [esp]
17406
                mov     [esp+4], ebp
17407
                mov     ebp, [esp+0Ch]
17408
                mov     ecx, [esp+14h]
17409
                mov     edx, [esp+1Ch]
17410
                mov     edi, ebp
17411
                mov     ebx, edx
17412
                xor     ebp, 0FFFFFFFFh
17413
                xor     ebx, 0FFFFFFFFh
17414
                and     ebp, ecx
17415
                and     ebx, [esp+18h]
17416
                xor     ebp, [esp+8]
17417
                xor     ebx, edx
17418
                xor     ebp, [esp+10h]
17419
                xor     ebx, ebp
17420
                mov     ebp, edi
17421
                and     ebx, [esp+4]
17422
                and     ebp, [esp+8]
17423
                and     edi, edx
17424
                xor     ebp, ecx
17425
                xor     ebx, [esp+10h]
17426
                ror     eax, 0Bh
17427
                xor     ebp, edx
17428
                mov     edx, [esi+5Ch]
17429
                and     ebp, [esp+18h]
17430
                xor     ebx, edi
17431
                xor     ebp, ebx
17432
                lea     edx, [eax+edx-4DE566Fh]
17433
                ror     ebp, 7
17434
                add     ebp, edx
17435
                mov     eax, [esp+1Ch]
17436
                mov     [esp], ebp
17437
                mov     ebp, [esp+8]
17438
                mov     ecx, [esp+10h]
17439
                mov     edx, [esp+18h]
17440
                mov     edi, ebp
17441
                mov     ebx, edx
17442
                xor     ebp, 0FFFFFFFFh
17443
                xor     ebx, 0FFFFFFFFh
17444
                and     ebp, ecx
17445
                and     ebx, [esp+14h]
17446
                xor     ebp, [esp+4]
17447
                xor     ebx, edx
17448
                xor     ebp, [esp+0Ch]
17449
                xor     ebx, ebp
17450
                mov     ebp, edi
17451
                and     ebx, [esp]
17452
                and     ebp, [esp+4]
17453
                and     edi, edx
17454
                xor     ebp, ecx
17455
                xor     ebx, [esp+0Ch]
17456
                ror     eax, 0Bh
17457
                xor     ebp, edx
17458
                mov     edx, [esi+68h]
17459
                and     ebp, [esp+14h]
17460
                xor     ebx, edi
17461
                xor     ebp, ebx
17462
                lea     edx, [eax+edx+487CAC60h]
17463
                ror     ebp, 7
17464
                add     ebp, edx
17465
                mov     eax, [esp+18h]
17466
                mov     [esp+1Ch], ebp
17467
                mov     ebp, [esp+4]
17468
                mov     ecx, [esp+0Ch]
17469
                mov     edx, [esp+14h]
17470
                mov     edi, ebp
17471
                mov     ebx, edx
17472
                xor     ebp, 0FFFFFFFFh
17473
                xor     ebx, 0FFFFFFFFh
17474
                and     ebp, ecx
17475
                and     ebx, [esp+10h]
17476
                xor     ebp, [esp]
17477
                xor     ebx, edx
17478
                xor     ebp, [esp+8]
17479
                xor     ebx, ebp
17480
                mov     ebp, edi
17481
                and     ebx, [esp+1Ch]
17482
                and     ebp, [esp]
17483
                and     edi, edx
17484
                xor     ebp, ecx
17485
                xor     ebx, [esp+8]
17486
                ror     eax, 0Bh
17487
                xor     ebp, edx
17488
                mov     edx, [esi+18h]
17489
                and     ebp, [esp+10h]
17490
                xor     ebx, edi
17491
                xor     ebp, ebx
17492
                lea     edx, [eax+edx+5DEC8032h]
17493
                ror     ebp, 7
17494
                add     ebp, edx
17495
                mov     eax, [esp+14h]
17496
                mov     [esp+18h], ebp
17497
                mov     ebp, [esp]
17498
                mov     ecx, [esp+8]
17499
                mov     edx, [esp+10h]
17500
                mov     edi, ebp
17501
                mov     ebx, edx
17502
                xor     ebp, 0FFFFFFFFh
17503
                xor     ebx, 0FFFFFFFFh
17504
                and     ebp, ecx
17505
                and     ebx, [esp+0Ch]
17506
                xor     ebp, [esp+1Ch]
17507
                xor     ebx, edx
17508
                xor     ebp, [esp+4]
17509
                xor     ebx, ebp
17510
                mov     ebp, edi
17511
                and     ebx, [esp+18h]
17512
                and     ebp, [esp+1Ch]
17513
                and     edi, edx
17514
                xor     ebp, ecx
17515
                xor     ebx, [esp+4]
17516
                ror     eax, 0Bh
17517
                xor     ebp, edx
17518
                mov     edx, [esi+78h]
17519
                and     ebp, [esp+0Ch]
17520
                xor     ebx, edi
17521
                xor     ebp, ebx
17522
                lea     edx, [eax+edx-107BA2A3h]
17523
                ror     ebp, 7
17524
                add     ebp, edx
17525
                mov     eax, [esp+10h]
17526
                mov     [esp+14h], ebp
17527
                mov     ebp, [esp+1Ch]
17528
                mov     ecx, [esp+4]
17529
                mov     edx, [esp+0Ch]
17530
                mov     edi, ebp
17531
                mov     ebx, edx
17532
                xor     ebp, 0FFFFFFFFh
17533
                xor     ebx, 0FFFFFFFFh
17534
                and     ebp, ecx
17535
                and     ebx, [esp+8]
17536
                xor     ebp, [esp+18h]
17537
                xor     ebx, edx
17538
                xor     ebp, [esp]
17539
                xor     ebx, ebp
17540
                mov     ebp, edi
17541
                and     ebx, [esp+14h]
17542
                and     ebp, [esp+18h]
17543
                and     edi, edx
17544
                xor     ebp, ecx
17545
                xor     ebx, [esp]
17546
                ror     eax, 0Bh
17547
                xor     ebp, edx
17548
                mov     edx, [esi+50h]
17549
                and     ebp, [esp+8]
17550
                xor     ebx, edi
17551
                xor     ebp, ebx
17552
                lea     edx, [eax+edx-167A8A4Fh]
17553
                ror     ebp, 7
17554
                add     ebp, edx
17555
                mov     eax, [esp+0Ch]
17556
                mov     [esp+10h], ebp
17557
                mov     ebp, [esp+18h]
17558
                mov     ecx, [esp]
17559
                mov     edx, [esp+8]
17560
                mov     edi, ebp
17561
                mov     ebx, edx
17562
                xor     ebp, 0FFFFFFFFh
17563
                xor     ebx, 0FFFFFFFFh
17564
                and     ebp, ecx
17565
                and     ebx, [esp+4]
17566
                xor     ebp, [esp+14h]
17567
                xor     ebx, edx
17568
                xor     ebp, [esp+1Ch]
17569
                xor     ebx, ebp
17570
                mov     ebp, edi
17571
                and     ebx, [esp+10h]
17572
                and     ebp, [esp+14h]
17573
                and     edi, edx
17574
                xor     ebp, ecx
17575
                xor     ebx, [esp+1Ch]
17576
                ror     eax, 0Bh
17577
                xor     ebp, edx
17578
                mov     edx, [esi+48h]
17579
                and     ebp, [esp+4]
17580
                xor     ebx, edi
17581
                xor     ebp, ebx
17582
                lea     edx, [eax+edx-23D9DCFEh]
17583
                ror     ebp, 7
17584
                add     ebp, edx
17585
                mov     eax, [esp+8]
17586
                mov     [esp+0Ch], ebp
17587
                mov     ebp, [esp+14h]
17588
                mov     ecx, [esp+1Ch]
17589
                mov     edx, [esp+4]
17590
                mov     edi, ebp
17591
                mov     ebx, edx
17592
                xor     ebp, 0FFFFFFFFh
17593
                xor     ebx, 0FFFFFFFFh
17594
                and     ebp, ecx
17595
                and     ebx, [esp]
17596
                xor     ebp, [esp+10h]
17597
                xor     ebx, edx
17598
                xor     ebp, [esp+18h]
17599
                xor     ebx, ebp
17600
                mov     ebp, edi
17601
                and     ebx, [esp+0Ch]
17602
                and     ebp, [esp+10h]
17603
                and     edi, edx
17604
                xor     ebp, ecx
17605
                xor     ebx, [esp+18h]
17606
                ror     eax, 0Bh
17607
                xor     ebp, edx
17608
                mov     edx, [esi+64h]
17609
                and     ebp, [esp]
17610
                xor     ebx, edi
17611
                xor     ebp, ebx
17612
                lea     edx, [eax+edx-149AE478h]
17613
                ror     ebp, 7
17614
                add     ebp, edx
17615
                mov     eax, [esp+4]
17616
                mov     [esp+8], ebp
17617
                mov     ebp, [esp+10h]
17618
                mov     ecx, [esp+18h]
17619
                mov     edx, [esp]
17620
                mov     edi, ebp
17621
                mov     ebx, edx
17622
                xor     ebp, 0FFFFFFFFh
17623
                xor     ebx, 0FFFFFFFFh
17624
                and     ebp, ecx
17625
                and     ebx, [esp+1Ch]
17626
                xor     ebp, [esp+0Ch]
17627
                xor     ebx, edx
17628
                xor     ebp, [esp+14h]
17629
                xor     ebx, ebp
17630
                mov     ebp, edi
17631
                and     ebx, [esp+8]
17632
                and     ebp, [esp+0Ch]
17633
                and     edi, edx
17634
                xor     ebp, ecx
17635
                xor     ebx, [esp+14h]
17636
                ror     eax, 0Bh
17637
                xor     ebp, edx
17638
                mov     edx, [esi+4Ch]
17639
                and     ebp, [esp+1Ch]
17640
                xor     ebx, edi
17641
                xor     ebp, ebx
17642
                lea     edx, [eax+edx+23893E81h]
17643
                ror     ebp, 7
17644
                add     ebp, edx
17645
                mov     eax, [esp]
17646
                mov     [esp+4], ebp
17647
                mov     ebp, [esp+0Ch]
17648
                mov     ecx, [esp+14h]
17649
                mov     edx, [esp+1Ch]
17650
                mov     edi, ebp
17651
                mov     ebx, edx
17652
                xor     ebp, 0FFFFFFFFh
17653
                xor     ebx, 0FFFFFFFFh
17654
                and     ebp, ecx
17655
                and     ebx, [esp+18h]
17656
                xor     ebp, [esp+8]
17657
                xor     ebx, edx
17658
                xor     ebp, [esp+10h]
17659
                xor     ebx, ebp
17660
                mov     ebp, edi
17661
                and     ebx, [esp+4]
17662
                and     ebp, [esp+8]
17663
                and     edi, edx
17664
                xor     ebp, ecx
17665
                xor     ebx, [esp+10h]
17666
                ror     eax, 0Bh
17667
                xor     ebp, edx
17668
                mov     edx, [esi+0Ch]
17669
                and     ebp, [esp+18h]
17670
                xor     ebx, edi
17671
                xor     ebp, ebx
17672
                lea     edx, [eax+edx-2C69533Bh]
17673
                ror     ebp, 7
17674
                add     ebp, edx
17675
                mov     eax, [esp+1Ch]
17676
                mov     [esp], ebp
17677
                mov     ebp, [esp+8]
17678
                mov     ecx, [esp+10h]
17679
                mov     edx, [esp+18h]
17680
                mov     edi, ebp
17681
                mov     ebx, edx
17682
                xor     ebp, 0FFFFFFFFh
17683
                xor     ebx, 0FFFFFFFFh
17684
                and     ebp, ecx
17685
                and     ebx, [esp+14h]
17686
                xor     ebp, [esp+4]
17687
                xor     ebx, edx
17688
                xor     ebp, [esp+0Ch]
17689
                xor     ebx, ebp
17690
                mov     ebp, edi
17691
                and     ebx, [esp]
17692
                and     ebp, [esp+4]
17693
                and     edi, edx
17694
                xor     ebp, ecx
17695
                xor     ebx, [esp+0Ch]
17696
                ror     eax, 0Bh
17697
                xor     ebp, edx
17698
                mov     edx, [esi+58h]
17699
                and     ebp, [esp+14h]
17700
                xor     ebx, edi
17701
                xor     ebp, ebx
17702
                lea     edx, [eax+edx+0F6D6FF3h]
17703
                ror     ebp, 7
17704
                add     ebp, edx
17705
                mov     eax, [esp+18h]
17706
                mov     [esp+1Ch], ebp
17707
                mov     ebp, [esp+4]
17708
                mov     ecx, [esp+0Ch]
17709
                mov     edx, [esp+14h]
17710
                mov     edi, ebp
17711
                mov     ebx, edx
17712
                xor     ebp, 0FFFFFFFFh
17713
                xor     ebx, 0FFFFFFFFh
17714
                and     ebp, ecx
17715
                and     ebx, [esp+10h]
17716
                xor     ebp, [esp]
17717
                xor     ebx, edx
17718
                xor     ebp, [esp+8]
17719
                xor     ebx, ebp
17720
                mov     ebp, edi
17721
                and     ebx, [esp+1Ch]
17722
                and     ebp, [esp]
17723
                and     edi, edx
17724
                xor     ebp, ecx
17725
                xor     ebx, [esp+8]
17726
                ror     eax, 0Bh
17727
                xor     ebp, edx
17728
                mov     edx, [esi+2Ch]
17729
                and     ebp, [esp+10h]
17730
                xor     ebx, edi
17731
                xor     ebp, ebx
17732
                lea     edx, [eax+edx-7C0BBDC7h]
17733
                ror     ebp, 7
17734
                add     ebp, edx
17735
                mov     eax, [esp+14h]
17736
                mov     [esp+18h], ebp
17737
                mov     ebp, [esp]
17738
                mov     ecx, [esp+8]
17739
                mov     edx, [esp+10h]
17740
                mov     edi, ebp
17741
                mov     ebx, edx
17742
                xor     ebp, 0FFFFFFFFh
17743
                xor     ebx, 0FFFFFFFFh
17744
                and     ebp, ecx
17745
                and     ebx, [esp+0Ch]
17746
                xor     ebp, [esp+1Ch]
17747
                xor     ebx, edx
17748
                xor     ebp, [esp+4]
17749
                xor     ebx, ebp
17750
                mov     ebp, edi
17751
                and     ebx, [esp+18h]
17752
                and     ebp, [esp+1Ch]
17753
                and     edi, edx
17754
                xor     ebp, ecx
17755
                xor     ebx, [esp+4]
17756
                ror     eax, 0Bh
17757
                xor     ebp, edx
17758
                mov     edx, [esi+7Ch]
17759
                and     ebp, [esp+0Ch]
17760
                xor     ebx, edi
17761
                xor     ebp, ebx
17762
                lea     edx, [eax+edx+2E0B4482h]
17763
                ror     ebp, 7
17764
                add     ebp, edx
17765
                mov     eax, [esp+10h]
17766
                mov     [esp+14h], ebp
17767
                mov     ebp, [esp+1Ch]
17768
                mov     ecx, [esp+4]
17769
                mov     edx, [esp+0Ch]
17770
                mov     edi, ebp
17771
                mov     ebx, edx
17772
                xor     ebp, 0FFFFFFFFh
17773
                xor     ebx, 0FFFFFFFFh
17774
                and     ebp, ecx
17775
                and     ebx, [esp+8]
17776
                xor     ebp, [esp+18h]
17777
                xor     ebx, edx
17778
                xor     ebp, [esp]
17779
                xor     ebx, ebp
17780
                mov     ebp, edi
17781
                and     ebx, [esp+14h]
17782
                and     ebp, [esp+18h]
17783
                and     edi, edx
17784
                xor     ebp, ecx
17785
                xor     ebx, [esp]
17786
                ror     eax, 0Bh
17787
                xor     ebp, edx
17788
                mov     edx, [esi+54h]
17789
                and     ebp, [esp+8]
17790
                xor     ebx, edi
17791
                xor     ebp, ebx
17792
                lea     edx, [eax+edx-5B7BDFFCh]
17793
                ror     ebp, 7
17794
                add     ebp, edx
17795
                mov     eax, [esp+0Ch]
17796
                mov     [esp+10h], ebp
17797
                mov     ebp, [esp+18h]
17798
                mov     ecx, [esp]
17799
                mov     edx, [esp+8]
17800
                mov     edi, ebp
17801
                mov     ebx, edx
17802
                xor     ebp, 0FFFFFFFFh
17803
                xor     ebx, 0FFFFFFFFh
17804
                and     ebp, ecx
17805
                and     ebx, [esp+4]
17806
                xor     ebp, [esp+14h]
17807
                xor     ebx, edx
17808
                xor     ebp, [esp+1Ch]
17809
                xor     ebx, ebp
17810
                mov     ebp, edi
17811
                and     ebx, [esp+10h]
17812
                and     ebp, [esp+14h]
17813
                and     edi, edx
17814
                xor     ebp, ecx
17815
                xor     ebx, [esp+1Ch]
17816
                ror     eax, 0Bh
17817
                xor     ebp, edx
17818
                mov     edx, [esi+20h]
17819
                and     ebp, [esp+4]
17820
                xor     ebx, edi
17821
                xor     ebp, ebx
17822
                lea     edx, [eax+edx+69C8F04Ah]
17823
                ror     ebp, 7
17824
                add     ebp, edx
17825
                mov     eax, [esp+8]
17826
                mov     [esp+0Ch], ebp
17827
                mov     ebp, [esp+14h]
17828
                mov     ecx, [esp+1Ch]
17829
                mov     edx, [esp+4]
17830
                mov     edi, ebp
17831
                mov     ebx, edx
17832
                xor     ebp, 0FFFFFFFFh
17833
                xor     ebx, 0FFFFFFFFh
17834
                and     ebp, ecx
17835
                and     ebx, [esp]
17836
                xor     ebp, [esp+10h]
17837
                xor     ebx, edx
17838
                xor     ebp, [esp+18h]
17839
                xor     ebx, ebp
17840
                mov     ebp, edi
17841
                and     ebx, [esp+0Ch]
17842
                and     ebp, [esp+10h]
17843
                and     edi, edx
17844
                xor     ebp, ecx
17845
                xor     ebx, [esp+18h]
17846
                ror     eax, 0Bh
17847
                xor     ebp, edx
17848
                mov     edx, [esi+6Ch]
17849
                and     ebp, [esp]
17850
                xor     ebx, edi
17851
                xor     ebp, ebx
17852
                lea     edx, [eax+edx-61E064A2h]
17853
                ror     ebp, 7
17854
                add     ebp, edx
17855
                mov     eax, [esp+4]
17856
                mov     [esp+8], ebp
17857
                mov     ebp, [esp+10h]
17858
                mov     ecx, [esp+18h]
17859
                mov     edx, [esp]
17860
                mov     edi, ebp
17861
                mov     ebx, edx
17862
                xor     ebp, 0FFFFFFFFh
17863
                xor     ebx, 0FFFFFFFFh
17864
                and     ebp, ecx
17865
                and     ebx, [esp+1Ch]
17866
                xor     ebp, [esp+0Ch]
17867
                xor     ebx, edx
17868
                xor     ebp, [esp+14h]
17869
                xor     ebx, ebp
17870
                mov     ebp, edi
17871
                and     ebx, [esp+8]
17872
                and     ebp, [esp+0Ch]
17873
                and     edi, edx
17874
                xor     ebp, ecx
17875
                xor     ebx, [esp+14h]
17876
                ror     eax, 0Bh
17877
                xor     ebp, edx
17878
                mov     edx, [esi+30h]
17879
                and     ebp, [esp+1Ch]
17880
                xor     ebx, edi
17881
                xor     ebp, ebx
17882
                lea     edx, [eax+edx+21C66842h]
17883
                ror     ebp, 7
17884
                add     ebp, edx
17885
                mov     eax, [esp]
17886
                mov     [esp+4], ebp
17887
                mov     ebp, [esp+0Ch]
17888
                mov     ecx, [esp+14h]
17889
                mov     edx, [esp+1Ch]
17890
                mov     edi, ebp
17891
                mov     ebx, edx
17892
                xor     ebp, 0FFFFFFFFh
17893
                xor     ebx, 0FFFFFFFFh
17894
                and     ebp, ecx
17895
                and     ebx, [esp+18h]
17896
                xor     ebp, [esp+8]
17897
                xor     ebx, edx
17898
                xor     ebp, [esp+10h]
17899
                xor     ebx, ebp
17900
                mov     ebp, edi
17901
                and     ebx, [esp+4]
17902
                and     ebp, [esp+8]
17903
                and     edi, edx
17904
                xor     ebp, ecx
17905
                xor     ebx, [esp+10h]
17906
                ror     eax, 0Bh
17907
                xor     ebp, edx
17908
                mov     edx, [esi+24h]
17909
                and     ebp, [esp+18h]
17910
                xor     ebx, edi
17911
                xor     ebp, ebx
17912
                lea     edx, [eax+edx-9169366h]
17913
                ror     ebp, 7
17914
                add     ebp, edx
17915
                mov     eax, [esp+1Ch]
17916
                mov     [esp], ebp
17917
                mov     ebp, [esp+8]
17918
                mov     ecx, [esp+10h]
17919
                mov     edx, [esp+18h]
17920
                mov     edi, ebp
17921
                mov     ebx, edx
17922
                xor     ebp, 0FFFFFFFFh
17923
                xor     ebx, 0FFFFFFFFh
17924
                and     ebp, ecx
17925
                and     ebx, [esp+14h]
17926
                xor     ebp, [esp+4]
17927
                xor     ebx, edx
17928
                xor     ebp, [esp+0Ch]
17929
                xor     ebx, ebp
17930
                mov     ebp, edi
17931
                and     ebx, [esp]
17932
                and     ebp, [esp+4]
17933
                and     edi, edx
17934
                xor     ebp, ecx
17935
                xor     ebx, [esp+0Ch]
17936
                ror     eax, 0Bh
17937
                xor     ebp, edx
17938
                mov     edx, [esi+4]
17939
                and     ebp, [esp+14h]
17940
                xor     ebx, edi
17941
                xor     ebp, ebx
17942
                lea     edx, [eax+edx+670C9C61h]
17943
                ror     ebp, 7
17944
                add     ebp, edx
17945
                mov     eax, [esp+18h]
17946
                mov     [esp+1Ch], ebp
17947
                mov     ebp, [esp+4]
17948
                mov     ecx, [esp+0Ch]
17949
                mov     edx, [esp+14h]
17950
                mov     edi, ebp
17951
                mov     ebx, edx
17952
                xor     ebp, 0FFFFFFFFh
17953
                xor     ebx, 0FFFFFFFFh
17954
                and     ebp, ecx
17955
                and     ebx, [esp+10h]
17956
                xor     ebp, [esp]
17957
                xor     ebx, edx
17958
                xor     ebp, [esp+8]
17959
                xor     ebx, ebp
17960
                mov     ebp, edi
17961
                and     ebx, [esp+1Ch]
17962
                and     ebp, [esp]
17963
                and     edi, edx
17964
                xor     ebp, ecx
17965
                xor     ebx, [esp+8]
17966
                ror     eax, 0Bh
17967
                xor     ebp, edx
17968
                mov     edx, [esi+74h]
17969
                and     ebp, [esp+10h]
17970
                xor     ebx, edi
17971
                xor     ebp, ebx
17972
                lea     edx, [eax+edx-542C7710h]
17973
                ror     ebp, 7
17974
                add     ebp, edx
17975
                mov     eax, [esp+14h]
17976
                mov     [esp+18h], ebp
17977
                mov     ebp, [esp]
17978
                mov     ecx, [esp+8]
17979
                mov     edx, [esp+10h]
17980
                mov     edi, ebp
17981
                mov     ebx, edx
17982
                xor     ebp, 0FFFFFFFFh
17983
                xor     ebx, 0FFFFFFFFh
17984
                and     ebp, ecx
17985
                and     ebx, [esp+0Ch]
17986
                xor     ebp, [esp+1Ch]
17987
                xor     ebx, edx
17988
                xor     ebp, [esp+4]
17989
                xor     ebx, ebp
17990
                mov     ebp, edi
17991
                and     ebx, [esp+18h]
17992
                and     ebp, [esp+1Ch]
17993
                and     edi, edx
17994
                xor     ebp, ecx
17995
                xor     ebx, [esp+4]
17996
                ror     eax, 0Bh
17997
                xor     ebp, edx
17998
                mov     edx, [esi+14h]
17999
                and     ebp, [esp+0Ch]
18000
                xor     ebx, edi
18001
                xor     ebp, ebx
18002
                lea     edx, [eax+edx+6A51A0D2h]
18003
                ror     ebp, 7
18004
                add     ebp, edx
18005
                mov     eax, [esp+10h]
18006
                mov     [esp+14h], ebp
18007
                mov     ebp, [esp+1Ch]
18008
                mov     ecx, [esp+4]
18009
                mov     edx, [esp+0Ch]
18010
                mov     edi, ebp
18011
                mov     ebx, edx
18012
                xor     ebp, 0FFFFFFFFh
18013
                xor     ebx, 0FFFFFFFFh
18014
                and     ebp, ecx
18015
                and     ebx, [esp+8]
18016
                xor     ebp, [esp+18h]
18017
                xor     ebx, edx
18018
                xor     ebp, [esp]
18019
                xor     ebx, ebp
18020
                mov     ebp, edi
18021
                and     ebx, [esp+14h]
18022
                and     ebp, [esp+18h]
18023
                and     edi, edx
18024
                xor     ebp, ecx
18025
                xor     ebx, [esp]
18026
                ror     eax, 0Bh
18027
                xor     ebp, edx
18028
                mov     edx, [esi+3Ch]
18029
                and     ebp, [esp+8]
18030
                xor     ebx, edi
18031
                xor     ebp, ebx
18032
                lea     edx, [eax+edx-27ABD098h]
18033
                ror     ebp, 7
18034
                add     ebp, edx
18035
                mov     eax, [esp+0Ch]
18036
                mov     [esp+10h], ebp
18037
                mov     ebp, [esp+18h]
18038
                mov     ecx, [esp]
18039
                mov     edx, [esp+8]
18040
                mov     edi, ebp
18041
                mov     ebx, edx
18042
                xor     ebp, 0FFFFFFFFh
18043
                xor     ebx, 0FFFFFFFFh
18044
                and     ebp, ecx
18045
                and     ebx, [esp+4]
18046
                xor     ebp, [esp+14h]
18047
                xor     ebx, edx
18048
                xor     ebp, [esp+1Ch]
18049
                xor     ebx, ebp
18050
                mov     ebp, edi
18051
                and     ebx, [esp+10h]
18052
                and     ebp, [esp+14h]
18053
                and     edi, edx
18054
                xor     ebp, ecx
18055
                xor     ebx, [esp+1Ch]
18056
                ror     eax, 0Bh
18057
                xor     ebp, edx
18058
                mov     edx, [esi+44h]
18059
                and     ebp, [esp+4]
18060
                xor     ebx, edi
18061
                xor     ebp, ebx
18062
                lea     edx, [eax+edx-69F058D8h]
18063
                ror     ebp, 7
18064
                add     ebp, edx
18065
                mov     eax, [esp+8]
18066
                mov     [esp+0Ch], ebp
18067
                mov     ebp, [esp+14h]
18068
                mov     ecx, [esp+1Ch]
18069
                mov     edx, [esp+4]
18070
                mov     edi, ebp
18071
                mov     ebx, edx
18072
                xor     ebp, 0FFFFFFFFh
18073
                xor     ebx, 0FFFFFFFFh
18074
                and     ebp, ecx
18075
                and     ebx, [esp]
18076
                xor     ebp, [esp+10h]
18077
                xor     ebx, edx
18078
                xor     ebp, [esp+18h]
18079
                xor     ebx, ebp
18080
                mov     ebp, edi
18081
                and     ebx, [esp+0Ch]
18082
                and     ebp, [esp+10h]
18083
                and     edi, edx
18084
                xor     ebp, ecx
18085
                xor     ebx, [esp+18h]
18086
                ror     eax, 0Bh
18087
                xor     ebp, edx
18088
                mov     edx, [esi+28h]
18089
                and     ebp, [esp]
18090
                xor     ebx, edi
18091
                xor     ebp, ebx
18092
                lea     edx, [eax+edx-54AECC5Dh]
18093
                ror     ebp, 7
18094
                add     ebp, edx
18095
                mov     eax, [esp+4]
18096
                mov     [esp+8], ebp
18097
                mov     ebp, [esp+10h]
18098
                mov     ecx, [esp+18h]
18099
                mov     edx, [esp]
18100
                mov     edi, ebp
18101
                mov     ebx, edx
18102
                xor     ebp, 0FFFFFFFFh
18103
                xor     ebx, 0FFFFFFFFh
18104
                and     ebp, ecx
18105
                and     ebx, [esp+1Ch]
18106
                xor     ebp, [esp+0Ch]
18107
                xor     ebx, edx
18108
                xor     ebp, [esp+14h]
18109
                xor     ebx, ebp
18110
                mov     ebp, edi
18111
                and     ebx, [esp+8]
18112
                and     ebp, [esp+0Ch]
18113
                and     edi, edx
18114
                xor     ebp, ecx
18115
                xor     ebx, [esp+14h]
18116
                ror     eax, 0Bh
18117
                xor     ebp, edx
18118
                mov     edx, [esi+40h]
18119
                and     ebp, [esp+1Ch]
18120
                xor     ebx, edi
18121
                xor     ebp, ebx
18122
                lea     edx, [eax+edx+6EEF0B6Ch]
18123
                ror     ebp, 7
18124
                add     ebp, edx
18125
                mov     eax, [esp]
18126
                mov     [esp+4], ebp
18127
                mov     ebp, [esp+0Ch]
18128
                mov     ecx, [esp+14h]
18129
                mov     edx, [esp+1Ch]
18130
                mov     edi, ebp
18131
                mov     ebx, edx
18132
                xor     ebp, 0FFFFFFFFh
18133
                xor     ebx, 0FFFFFFFFh
18134
                and     ebp, ecx
18135
                and     ebx, [esp+18h]
18136
                xor     ebp, [esp+8]
18137
                xor     ebx, edx
18138
                xor     ebp, [esp+10h]
18139
                xor     ebx, ebp
18140
                mov     ebp, edi
18141
                and     ebx, [esp+4]
18142
                and     ebp, [esp+8]
18143
                and     edi, edx
18144
                xor     ebp, ecx
18145
                xor     ebx, [esp+10h]
18146
                ror     eax, 0Bh
18147
                xor     ebp, edx
18148
                mov     edx, [esi+34h]
18149
                and     ebp, [esp+18h]
18150
                xor     ebx, edi
18151
                xor     ebp, ebx
18152
                lea     edx, [eax+edx+137A3BE4h]
18153
                ror     ebp, 7
18154
                add     ebp, edx
18155
                mov     eax, [esp+1Ch]
18156
                mov     [esp], ebp
18157
                mov     edi, [esp+24h]
18158
                mov     eax, [esp]
18159
                mov     ebx, [esp+4]
18160
                add     [edi], eax
18161
                add     [edi+4], ebx
18162
                mov     ecx, [esp+8]
18163
                mov     edx, [esp+0Ch]
18164
                add     [edi+8], ecx
18165
                add     [edi+0Ch], edx
18166
                mov     eax, [esp+10h]
18167
                mov     ebx, [esp+14h]
18168
                add     [edi+10h], eax
18169
                add     [edi+14h], ebx
18170
                mov     ebp, [esp+28h]
18171
                mov     ecx, [esp+18h]
18172
                mov     edx, [esp+1Ch]
18173
                mov     esp, ebp
18174
                add     [edi+18h], ecx
18175
                add     [edi+1Ch], edx
18176
                pop     ebp
18177
                pop     edi
18178
                pop     esi
18179
                pop     ebx
18180
end;
18181
18182
procedure THashBaseHaval.DoTransform5(Buffer: PUInt32Array);
18183
asm
18184
                push    ebx
18185
                push    esi
18186
                push    edi
18187
                lea     edi, [eax].THashBaseHaval.FDigest
18188
                mov     esi, edx
18189
                push    ebp
18190
                mov     ebp, esp
18191
                add     esp, 0FFFFFFD4h
18192
                and     esp, 0FFFFFFC0h
18193
                mov     eax, [edi]
18194
                mov     ebx, [edi+4]
18195
                mov     [esp+20h], esi
18196
                mov     [esp+24h], edi
18197
                mov     [esp+28h], ebp
18198
                mov     [esp], eax
18199
                mov     [esp+4], ebx
18200
                mov     ecx, [edi+8]
18201
                mov     edx, [edi+0Ch]
18202
                mov     [esp+8], ecx
18203
                mov     [esp+0Ch], edx
18204
                mov     eax, [edi+10h]
18205
                mov     ebx, [edi+14h]
18206
                mov     [esp+10h], eax
18207
                mov     [esp+14h], ebx
18208
                mov     ecx, [edi+18h]
18209
                mov     edx, [edi+1Ch]
18210
                mov     [esp+18h], ecx
18211
                mov     [esp+1Ch], edx
18212
                mov     eax, edx
18213
                mov     ebp, [esp+10h]
18214
                mov     ebx, [esp+4]
18215
                mov     ecx, [esp+18h]
18216
                ror     eax, 0Bh
18217
                xor     ebx, ecx
18218
                mov     edi, [esp+0Ch]
18219
                and     ebx, [esp+8]
18220
                and     edi, [esp]
18221
                xor     ecx, ebx
18222
                and     ebp, [esp+14h]
18223
                xor     edi, ecx
18224
                mov     edx, [esi]
18225
                xor     ebp, edi
18226
                add     eax, edx
18227
                ror     ebp, 7
18228
                add     ebp, eax
18229
                mov     eax, [esp+18h]
18230
                mov     [esp+1Ch], ebp
18231
                mov     ebp, [esp+0Ch]
18232
                mov     ebx, [esp]
18233
                mov     ecx, [esp+14h]
18234
                ror     eax, 0Bh
18235
                xor     ebx, ecx
18236
                mov     edi, [esp+8]
18237
                and     ebx, [esp+4]
18238
                and     edi, [esp+1Ch]
18239
                xor     ecx, ebx
18240
                and     ebp, [esp+10h]
18241
                xor     edi, ecx
18242
                mov     edx, [esi+4]
18243
                xor     ebp, edi
18244
                add     eax, edx
18245
                ror     ebp, 7
18246
                add     ebp, eax
18247
                mov     eax, [esp+14h]
18248
                mov     [esp+18h], ebp
18249
                mov     ebp, [esp+8]
18250
                mov     ebx, [esp+1Ch]
18251
                mov     ecx, [esp+10h]
18252
                ror     eax, 0Bh
18253
                xor     ebx, ecx
18254
                mov     edi, [esp+4]
18255
                and     ebx, [esp]
18256
                and     edi, [esp+18h]
18257
                xor     ecx, ebx
18258
                and     ebp, [esp+0Ch]
18259
                xor     edi, ecx
18260
                mov     edx, [esi+8]
18261
                xor     ebp, edi
18262
                add     eax, edx
18263
                ror     ebp, 7
18264
                add     ebp, eax
18265
                mov     eax, [esp+10h]
18266
                mov     [esp+14h], ebp
18267
                mov     ebp, [esp+4]
18268
                mov     ebx, [esp+18h]
18269
                mov     ecx, [esp+0Ch]
18270
                ror     eax, 0Bh
18271
                xor     ebx, ecx
18272
                mov     edi, [esp]
18273
                and     ebx, [esp+1Ch]
18274
                and     edi, [esp+14h]
18275
                xor     ecx, ebx
18276
                and     ebp, [esp+8]
18277
                xor     edi, ecx
18278
                mov     edx, [esi+0Ch]
18279
                xor     ebp, edi
18280
                add     eax, edx
18281
                ror     ebp, 7
18282
                add     ebp, eax
18283
                mov     eax, [esp+0Ch]
18284
                mov     [esp+10h], ebp
18285
                mov     ebp, [esp]
18286
                mov     ebx, [esp+14h]
18287
                mov     ecx, [esp+8]
18288
                ror     eax, 0Bh
18289
                xor     ebx, ecx
18290
                mov     edi, [esp+1Ch]
18291
                and     ebx, [esp+18h]
18292
                and     edi, [esp+10h]
18293
                xor     ecx, ebx
18294
                and     ebp, [esp+4]
18295
                xor     edi, ecx
18296
                mov     edx, [esi+10h]
18297
                xor     ebp, edi
18298
                add     eax, edx
18299
                ror     ebp, 7
18300
                add     ebp, eax
18301
                mov     eax, [esp+8]
18302
                mov     [esp+0Ch], ebp
18303
                mov     ebp, [esp+1Ch]
18304
                mov     ebx, [esp+10h]
18305
                mov     ecx, [esp+4]
18306
                ror     eax, 0Bh
18307
                xor     ebx, ecx
18308
                mov     edi, [esp+18h]
18309
                and     ebx, [esp+14h]
18310
                and     edi, [esp+0Ch]
18311
                xor     ecx, ebx
18312
                and     ebp, [esp]
18313
                xor     edi, ecx
18314
                mov     edx, [esi+14h]
18315
                xor     ebp, edi
18316
                add     eax, edx
18317
                ror     ebp, 7
18318
                add     ebp, eax
18319
                mov     eax, [esp+4]
18320
                mov     [esp+8], ebp
18321
                mov     ebp, [esp+18h]
18322
                mov     ebx, [esp+0Ch]
18323
                mov     ecx, [esp]
18324
                ror     eax, 0Bh
18325
                xor     ebx, ecx
18326
                mov     edi, [esp+14h]
18327
                and     ebx, [esp+10h]
18328
                and     edi, [esp+8]
18329
                xor     ecx, ebx
18330
                and     ebp, [esp+1Ch]
18331
                xor     edi, ecx
18332
                mov     edx, [esi+18h]
18333
                xor     ebp, edi
18334
                add     eax, edx
18335
                ror     ebp, 7
18336
                add     ebp, eax
18337
                mov     eax, [esp]
18338
                mov     [esp+4], ebp
18339
                mov     ebp, [esp+14h]
18340
                mov     ebx, [esp+8]
18341
                mov     ecx, [esp+1Ch]
18342
                ror     eax, 0Bh
18343
                xor     ebx, ecx
18344
                mov     edi, [esp+10h]
18345
                and     ebx, [esp+0Ch]
18346
                and     edi, [esp+4]
18347
                xor     ecx, ebx
18348
                and     ebp, [esp+18h]
18349
                xor     edi, ecx
18350
                mov     edx, [esi+1Ch]
18351
                xor     ebp, edi
18352
                add     eax, edx
18353
                ror     ebp, 7
18354
                add     ebp, eax
18355
                mov     eax, [esp+1Ch]
18356
                mov     [esp], ebp
18357
                mov     ebp, [esp+10h]
18358
                mov     ebx, [esp+4]
18359
                mov     ecx, [esp+18h]
18360
                ror     eax, 0Bh
18361
                xor     ebx, ecx
18362
                mov     edi, [esp+0Ch]
18363
                and     ebx, [esp+8]
18364
                and     edi, [esp]
18365
                xor     ecx, ebx
18366
                and     ebp, [esp+14h]
18367
                xor     edi, ecx
18368
                mov     edx, [esi+20h]
18369
                xor     ebp, edi
18370
                add     eax, edx
18371
                ror     ebp, 7
18372
                add     ebp, eax
18373
                mov     eax, [esp+18h]
18374
                mov     [esp+1Ch], ebp
18375
                mov     ebp, [esp+0Ch]
18376
                mov     ebx, [esp]
18377
                mov     ecx, [esp+14h]
18378
                ror     eax, 0Bh
18379
                xor     ebx, ecx
18380
                mov     edi, [esp+8]
18381
                and     ebx, [esp+4]
18382
                and     edi, [esp+1Ch]
18383
                xor     ecx, ebx
18384
                and     ebp, [esp+10h]
18385
                xor     edi, ecx
18386
                mov     edx, [esi+24h]
18387
                xor     ebp, edi
18388
                add     eax, edx
18389
                ror     ebp, 7
18390
                add     ebp, eax
18391
                mov     eax, [esp+14h]
18392
                mov     [esp+18h], ebp
18393
                mov     ebp, [esp+8]
18394
                mov     ebx, [esp+1Ch]
18395
                mov     ecx, [esp+10h]
18396
                ror     eax, 0Bh
18397
                xor     ebx, ecx
18398
                mov     edi, [esp+4]
18399
                and     ebx, [esp]
18400
                and     edi, [esp+18h]
18401
                xor     ecx, ebx
18402
                and     ebp, [esp+0Ch]
18403
                xor     edi, ecx
18404
                mov     edx, [esi+28h]
18405
                xor     ebp, edi
18406
                add     eax, edx
18407
                ror     ebp, 7
18408
                add     ebp, eax
18409
                mov     eax, [esp+10h]
18410
                mov     [esp+14h], ebp
18411
                mov     ebp, [esp+4]
18412
                mov     ebx, [esp+18h]
18413
                mov     ecx, [esp+0Ch]
18414
                ror     eax, 0Bh
18415
                xor     ebx, ecx
18416
                mov     edi, [esp]
18417
                and     ebx, [esp+1Ch]
18418
                and     edi, [esp+14h]
18419
                xor     ecx, ebx
18420
                and     ebp, [esp+8]
18421
                xor     edi, ecx
18422
                mov     edx, [esi+2Ch]
18423
                xor     ebp, edi
18424
                add     eax, edx
18425
                ror     ebp, 7
18426
                add     ebp, eax
18427
                mov     eax, [esp+0Ch]
18428
                mov     [esp+10h], ebp
18429
                mov     ebp, [esp]
18430
                mov     ebx, [esp+14h]
18431
                mov     ecx, [esp+8]
18432
                ror     eax, 0Bh
18433
                xor     ebx, ecx
18434
                mov     edi, [esp+1Ch]
18435
                and     ebx, [esp+18h]
18436
                and     edi, [esp+10h]
18437
                xor     ecx, ebx
18438
                and     ebp, [esp+4]
18439
                xor     edi, ecx
18440
                mov     edx, [esi+30h]
18441
                xor     ebp, edi
18442
                add     eax, edx
18443
                ror     ebp, 7
18444
                add     ebp, eax
18445
                mov     eax, [esp+8]
18446
                mov     [esp+0Ch], ebp
18447
                mov     ebp, [esp+1Ch]
18448
                mov     ebx, [esp+10h]
18449
                mov     ecx, [esp+4]
18450
                ror     eax, 0Bh
18451
                xor     ebx, ecx
18452
                mov     edi, [esp+18h]
18453
                and     ebx, [esp+14h]
18454
                and     edi, [esp+0Ch]
18455
                xor     ecx, ebx
18456
                and     ebp, [esp]
18457
                xor     edi, ecx
18458
                mov     edx, [esi+34h]
18459
                xor     ebp, edi
18460
                add     eax, edx
18461
                ror     ebp, 7
18462
                add     ebp, eax
18463
                mov     eax, [esp+4]
18464
                mov     [esp+8], ebp
18465
                mov     ebp, [esp+18h]
18466
                mov     ebx, [esp+0Ch]
18467
                mov     ecx, [esp]
18468
                ror     eax, 0Bh
18469
                xor     ebx, ecx
18470
                mov     edi, [esp+14h]
18471
                and     ebx, [esp+10h]
18472
                and     edi, [esp+8]
18473
                xor     ecx, ebx
18474
                and     ebp, [esp+1Ch]
18475
                xor     edi, ecx
18476
                mov     edx, [esi+38h]
18477
                xor     ebp, edi
18478
                add     eax, edx
18479
                ror     ebp, 7
18480
                add     ebp, eax
18481
                mov     eax, [esp]
18482
                mov     [esp+4], ebp
18483
                mov     ebp, [esp+14h]
18484
                mov     ebx, [esp+8]
18485
                mov     ecx, [esp+1Ch]
18486
                ror     eax, 0Bh
18487
                xor     ebx, ecx
18488
                mov     edi, [esp+10h]
18489
                and     ebx, [esp+0Ch]
18490
                and     edi, [esp+4]
18491
                xor     ecx, ebx
18492
                and     ebp, [esp+18h]
18493
                xor     edi, ecx
18494
                mov     edx, [esi+3Ch]
18495
                xor     ebp, edi
18496
                add     eax, edx
18497
                ror     ebp, 7
18498
                add     ebp, eax
18499
                mov     eax, [esp+1Ch]
18500
                mov     [esp], ebp
18501
                mov     ebp, [esp+10h]
18502
                mov     ebx, [esp+4]
18503
                mov     ecx, [esp+18h]
18504
                ror     eax, 0Bh
18505
                xor     ebx, ecx
18506
                mov     edi, [esp+0Ch]
18507
                and     ebx, [esp+8]
18508
                and     edi, [esp]
18509
                xor     ecx, ebx
18510
                and     ebp, [esp+14h]
18511
                xor     edi, ecx
18512
                mov     edx, [esi+40h]
18513
                xor     ebp, edi
18514
                add     eax, edx
18515
                ror     ebp, 7
18516
                add     ebp, eax
18517
                mov     eax, [esp+18h]
18518
                mov     [esp+1Ch], ebp
18519
                mov     ebp, [esp+0Ch]
18520
                mov     ebx, [esp]
18521
                mov     ecx, [esp+14h]
18522
                ror     eax, 0Bh
18523
                xor     ebx, ecx
18524
                mov     edi, [esp+8]
18525
                and     ebx, [esp+4]
18526
                and     edi, [esp+1Ch]
18527
                xor     ecx, ebx
18528
                and     ebp, [esp+10h]
18529
                xor     edi, ecx
18530
                mov     edx, [esi+44h]
18531
                xor     ebp, edi
18532
                add     eax, edx
18533
                ror     ebp, 7
18534
                add     ebp, eax
18535
                mov     eax, [esp+14h]
18536
                mov     [esp+18h], ebp
18537
                mov     ebp, [esp+8]
18538
                mov     ebx, [esp+1Ch]
18539
                mov     ecx, [esp+10h]
18540
                ror     eax, 0Bh
18541
                xor     ebx, ecx
18542
                mov     edi, [esp+4]
18543
                and     ebx, [esp]
18544
                and     edi, [esp+18h]
18545
                xor     ecx, ebx
18546
                and     ebp, [esp+0Ch]
18547
                xor     edi, ecx
18548
                mov     edx, [esi+48h]
18549
                xor     ebp, edi
18550
                add     eax, edx
18551
                ror     ebp, 7
18552
                add     ebp, eax
18553
                mov     eax, [esp+10h]
18554
                mov     [esp+14h], ebp
18555
                mov     ebp, [esp+4]
18556
                mov     ebx, [esp+18h]
18557
                mov     ecx, [esp+0Ch]
18558
                ror     eax, 0Bh
18559
                xor     ebx, ecx
18560
                mov     edi, [esp]
18561
                and     ebx, [esp+1Ch]
18562
                and     edi, [esp+14h]
18563
                xor     ecx, ebx
18564
                and     ebp, [esp+8]
18565
                xor     edi, ecx
18566
                mov     edx, [esi+4Ch]
18567
                xor     ebp, edi
18568
                add     eax, edx
18569
                ror     ebp, 7
18570
                add     ebp, eax
18571
                mov     eax, [esp+0Ch]
18572
                mov     [esp+10h], ebp
18573
                mov     ebp, [esp]
18574
                mov     ebx, [esp+14h]
18575
                mov     ecx, [esp+8]
18576
                ror     eax, 0Bh
18577
                xor     ebx, ecx
18578
                mov     edi, [esp+1Ch]
18579
                and     ebx, [esp+18h]
18580
                and     edi, [esp+10h]
18581
                xor     ecx, ebx
18582
                and     ebp, [esp+4]
18583
                xor     edi, ecx
18584
                mov     edx, [esi+50h]
18585
                xor     ebp, edi
18586
                add     eax, edx
18587
                ror     ebp, 7
18588
                add     ebp, eax
18589
                mov     eax, [esp+8]
18590
                mov     [esp+0Ch], ebp
18591
                mov     ebp, [esp+1Ch]
18592
                mov     ebx, [esp+10h]
18593
                mov     ecx, [esp+4]
18594
                ror     eax, 0Bh
18595
                xor     ebx, ecx
18596
                mov     edi, [esp+18h]
18597
                and     ebx, [esp+14h]
18598
                and     edi, [esp+0Ch]
18599
                xor     ecx, ebx
18600
                and     ebp, [esp]
18601
                xor     edi, ecx
18602
                mov     edx, [esi+54h]
18603
                xor     ebp, edi
18604
                add     eax, edx
18605
                ror     ebp, 7
18606
                add     ebp, eax
18607
                mov     eax, [esp+4]
18608
                mov     [esp+8], ebp
18609
                mov     ebp, [esp+18h]
18610
                mov     ebx, [esp+0Ch]
18611
                mov     ecx, [esp]
18612
                ror     eax, 0Bh
18613
                xor     ebx, ecx
18614
                mov     edi, [esp+14h]
18615
                and     ebx, [esp+10h]
18616
                and     edi, [esp+8]
18617
                xor     ecx, ebx
18618
                and     ebp, [esp+1Ch]
18619
                xor     edi, ecx
18620
                mov     edx, [esi+58h]
18621
                xor     ebp, edi
18622
                add     eax, edx
18623
                ror     ebp, 7
18624
                add     ebp, eax
18625
                mov     eax, [esp]
18626
                mov     [esp+4], ebp
18627
                mov     ebp, [esp+14h]
18628
                mov     ebx, [esp+8]
18629
                mov     ecx, [esp+1Ch]
18630
                ror     eax, 0Bh
18631
                xor     ebx, ecx
18632
                mov     edi, [esp+10h]
18633
                and     ebx, [esp+0Ch]
18634
                and     edi, [esp+4]
18635
                xor     ecx, ebx
18636
                and     ebp, [esp+18h]
18637
                xor     edi, ecx
18638
                mov     edx, [esi+5Ch]
18639
                xor     ebp, edi
18640
                add     eax, edx
18641
                ror     ebp, 7
18642
                add     ebp, eax
18643
                mov     eax, [esp+1Ch]
18644
                mov     [esp], ebp
18645
                mov     ebp, [esp+10h]
18646
                mov     ebx, [esp+4]
18647
                mov     ecx, [esp+18h]
18648
                ror     eax, 0Bh
18649
                xor     ebx, ecx
18650
                mov     edi, [esp+0Ch]
18651
                and     ebx, [esp+8]
18652
                and     edi, [esp]
18653
                xor     ecx, ebx
18654
                and     ebp, [esp+14h]
18655
                xor     edi, ecx
18656
                mov     edx, [esi+60h]
18657
                xor     ebp, edi
18658
                add     eax, edx
18659
                ror     ebp, 7
18660
                add     ebp, eax
18661
                mov     eax, [esp+18h]
18662
                mov     [esp+1Ch], ebp
18663
                mov     ebp, [esp+0Ch]
18664
                mov     ebx, [esp]
18665
                mov     ecx, [esp+14h]
18666
                ror     eax, 0Bh
18667
                xor     ebx, ecx
18668
                mov     edi, [esp+8]
18669
                and     ebx, [esp+4]
18670
                and     edi, [esp+1Ch]
18671
                xor     ecx, ebx
18672
                and     ebp, [esp+10h]
18673
                xor     edi, ecx
18674
                mov     edx, [esi+64h]
18675
                xor     ebp, edi
18676
                add     eax, edx
18677
                ror     ebp, 7
18678
                add     ebp, eax
18679
                mov     eax, [esp+14h]
18680
                mov     [esp+18h], ebp
18681
                mov     ebp, [esp+8]
18682
                mov     ebx, [esp+1Ch]
18683
                mov     ecx, [esp+10h]
18684
                ror     eax, 0Bh
18685
                xor     ebx, ecx
18686
                mov     edi, [esp+4]
18687
                and     ebx, [esp]
18688
                and     edi, [esp+18h]
18689
                xor     ecx, ebx
18690
                and     ebp, [esp+0Ch]
18691
                xor     edi, ecx
18692
                mov     edx, [esi+68h]
18693
                xor     ebp, edi
18694
                add     eax, edx
18695
                ror     ebp, 7
18696
                add     ebp, eax
18697
                mov     eax, [esp+10h]
18698
                mov     [esp+14h], ebp
18699
                mov     ebp, [esp+4]
18700
                mov     ebx, [esp+18h]
18701
                mov     ecx, [esp+0Ch]
18702
                ror     eax, 0Bh
18703
                xor     ebx, ecx
18704
                mov     edi, [esp]
18705
                and     ebx, [esp+1Ch]
18706
                and     edi, [esp+14h]
18707
                xor     ecx, ebx
18708
                and     ebp, [esp+8]
18709
                xor     edi, ecx
18710
                mov     edx, [esi+6Ch]
18711
                xor     ebp, edi
18712
                add     eax, edx
18713
                ror     ebp, 7
18714
                add     ebp, eax
18715
                mov     eax, [esp+0Ch]
18716
                mov     [esp+10h], ebp
18717
                mov     ebp, [esp]
18718
                mov     ebx, [esp+14h]
18719
                mov     ecx, [esp+8]
18720
                ror     eax, 0Bh
18721
                xor     ebx, ecx
18722
                mov     edi, [esp+1Ch]
18723
                and     ebx, [esp+18h]
18724
                and     edi, [esp+10h]
18725
                xor     ecx, ebx
18726
                and     ebp, [esp+4]
18727
                xor     edi, ecx
18728
                mov     edx, [esi+70h]
18729
                xor     ebp, edi
18730
                add     eax, edx
18731
                ror     ebp, 7
18732
                add     ebp, eax
18733
                mov     eax, [esp+8]
18734
                mov     [esp+0Ch], ebp
18735
                mov     ebp, [esp+1Ch]
18736
                mov     ebx, [esp+10h]
18737
                mov     ecx, [esp+4]
18738
                ror     eax, 0Bh
18739
                xor     ebx, ecx
18740
                mov     edi, [esp+18h]
18741
                and     ebx, [esp+14h]
18742
                and     edi, [esp+0Ch]
18743
                xor     ecx, ebx
18744
                and     ebp, [esp]
18745
                xor     edi, ecx
18746
                mov     edx, [esi+74h]
18747
                xor     ebp, edi
18748
                add     eax, edx
18749
                ror     ebp, 7
18750
                add     ebp, eax
18751
                mov     eax, [esp+4]
18752
                mov     [esp+8], ebp
18753
                mov     ebp, [esp+18h]
18754
                mov     ebx, [esp+0Ch]
18755
                mov     ecx, [esp]
18756
                ror     eax, 0Bh
18757
                xor     ebx, ecx
18758
                mov     edi, [esp+14h]
18759
                and     ebx, [esp+10h]
18760
                and     edi, [esp+8]
18761
                xor     ecx, ebx
18762
                and     ebp, [esp+1Ch]
18763
                xor     edi, ecx
18764
                mov     edx, [esi+78h]
18765
                xor     ebp, edi
18766
                add     eax, edx
18767
                ror     ebp, 7
18768
                add     ebp, eax
18769
                mov     eax, [esp]
18770
                mov     [esp+4], ebp
18771
                mov     ebp, [esp+14h]
18772
                mov     ebx, [esp+8]
18773
                mov     ecx, [esp+1Ch]
18774
                ror     eax, 0Bh
18775
                xor     ebx, ecx
18776
                mov     edi, [esp+10h]
18777
                and     ebx, [esp+0Ch]
18778
                and     edi, [esp+4]
18779
                xor     ecx, ebx
18780
                and     ebp, [esp+18h]
18781
                xor     edi, ecx
18782
                mov     edx, [esi+7Ch]
18783
                xor     ebp, edi
18784
                add     eax, edx
18785
                ror     ebp, 7
18786
                add     ebp, eax
18787
                mov     eax, [esp+1Ch]
18788
                mov     [esp], ebp
18789
                mov     ebp, [esp]
18790
                mov     ebx, [esp+4]
18791
                mov     edi, [esp+8]
18792
                xor     ebp, 0FFFFFFFFh
18793
                mov     ecx, [esp+10h]
18794
                and     ebx, edi
18795
                mov     edx, [esp+14h]
18796
                and     ebp, ecx
18797
                xor     ebx, [esp+18h]
18798
                xor     ebp, edx
18799
                xor     ecx, edi
18800
                xor     ebx, ebp
18801
                and     ecx, [esp+4]
18802
                and     ebx, [esp+0Ch]
18803
                ror     eax, 0Bh
18804
                xor     ecx, edx
18805
                mov     ebp, [esi+14h]
18806
                xor     ecx, ebx
18807
                and     edi, [esp]
18808
                xor     ecx, edi
18809
                lea     ebp, [eax+ebp+452821E6h]
18810
                ror     ecx, 7
18811
                add     ebp, ecx
18812
                mov     eax, [esp+18h]
18813
                mov     [esp+1Ch], ebp
18814
                mov     ebx, [esp]
18815
                mov     edi, [esp+4]
18816
                xor     ebp, 0FFFFFFFFh
18817
                mov     ecx, [esp+0Ch]
18818
                and     ebx, edi
18819
                mov     edx, [esp+10h]
18820
                and     ebp, ecx
18821
                xor     ebx, [esp+14h]
18822
                xor     ebp, edx
18823
                xor     ecx, edi
18824
                xor     ebx, ebp
18825
                and     ecx, [esp]
18826
                and     ebx, [esp+8]
18827
                ror     eax, 0Bh
18828
                xor     ecx, edx
18829
                mov     ebp, [esi+38h]
18830
                xor     ecx, ebx
18831
                and     edi, [esp+1Ch]
18832
                xor     ecx, edi
18833
                lea     ebp, [eax+ebp+38D01377h]
18834
                ror     ecx, 7
18835
                add     ebp, ecx
18836
                mov     eax, [esp+14h]
18837
                mov     [esp+18h], ebp
18838
                mov     ebx, [esp+1Ch]
18839
                mov     edi, [esp]
18840
                xor     ebp, 0FFFFFFFFh
18841
                mov     ecx, [esp+8]
18842
                and     ebx, edi
18843
                mov     edx, [esp+0Ch]
18844
                and     ebp, ecx
18845
                xor     ebx, [esp+10h]
18846
                xor     ebp, edx
18847
                xor     ecx, edi
18848
                xor     ebx, ebp
18849
                and     ecx, [esp+1Ch]
18850
                and     ebx, [esp+4]
18851
                ror     eax, 0Bh
18852
                xor     ecx, edx
18853
                mov     ebp, [esi+68h]
18854
                xor     ecx, ebx
18855
                and     edi, [esp+18h]
18856
                xor     ecx, edi
18857
                lea     ebp, [eax+ebp-41AB9931h]
18858
                ror     ecx, 7
18859
                add     ebp, ecx
18860
                mov     eax, [esp+10h]
18861
                mov     [esp+14h], ebp
18862
                mov     ebx, [esp+18h]
18863
                mov     edi, [esp+1Ch]
18864
                xor     ebp, 0FFFFFFFFh
18865
                mov     ecx, [esp+4]
18866
                and     ebx, edi
18867
                mov     edx, [esp+8]
18868
                and     ebp, ecx
18869
                xor     ebx, [esp+0Ch]
18870
                xor     ebp, edx
18871
                xor     ecx, edi
18872
                xor     ebx, ebp
18873
                and     ecx, [esp+18h]
18874
                and     ebx, [esp]
18875
                ror     eax, 0Bh
18876
                xor     ecx, edx
18877
                mov     ebp, [esi+48h]
18878
                xor     ecx, ebx
18879
                and     edi, [esp+14h]
18880
                xor     ecx, edi
18881
                lea     ebp, [eax+ebp+34E90C6Ch]
18882
                ror     ecx, 7
18883
                add     ebp, ecx
18884
                mov     eax, [esp+0Ch]
18885
                mov     [esp+10h], ebp
18886
                mov     ebx, [esp+14h]
18887
                mov     edi, [esp+18h]
18888
                xor     ebp, 0FFFFFFFFh
18889
                mov     ecx, [esp]
18890
                and     ebx, edi
18891
                mov     edx, [esp+4]
18892
                and     ebp, ecx
18893
                xor     ebx, [esp+8]
18894
                xor     ebp, edx
18895
                xor     ecx, edi
18896
                xor     ebx, ebp
18897
                and     ecx, [esp+14h]
18898
                and     ebx, [esp+1Ch]
18899
                ror     eax, 0Bh
18900
                xor     ecx, edx
18901
                mov     ebp, [esi+2Ch]
18902
                xor     ecx, ebx
18903
                and     edi, [esp+10h]
18904
                xor     ecx, edi
18905
                lea     ebp, [eax+ebp-3F53D649h]
18906
                ror     ecx, 7
18907
                add     ebp, ecx
18908
                mov     eax, [esp+8]
18909
                mov     [esp+0Ch], ebp
18910
                mov     ebx, [esp+10h]
18911
                mov     edi, [esp+14h]
18912
                xor     ebp, 0FFFFFFFFh
18913
                mov     ecx, [esp+1Ch]
18914
                and     ebx, edi
18915
                mov     edx, [esp]
18916
                and     ebp, ecx
18917
                xor     ebx, [esp+4]
18918
                xor     ebp, edx
18919
                xor     ecx, edi
18920
                xor     ebx, ebp
18921
                and     ecx, [esp+10h]
18922
                and     ebx, [esp+18h]
18923
                ror     eax, 0Bh
18924
                xor     ecx, edx
18925
                mov     ebp, [esi+70h]
18926
                xor     ecx, ebx
18927
                and     edi, [esp+0Ch]
18928
                xor     ecx, edi
18929
                lea     ebp, [eax+ebp-3683AF23h]
18930
                ror     ecx, 7
18931
                add     ebp, ecx
18932
                mov     eax, [esp+4]
18933
                mov     [esp+8], ebp
18934
                mov     ebx, [esp+0Ch]
18935
                mov     edi, [esp+10h]
18936
                xor     ebp, 0FFFFFFFFh
18937
                mov     ecx, [esp+18h]
18938
                and     ebx, edi
18939
                mov     edx, [esp+1Ch]
18940
                and     ebp, ecx
18941
                xor     ebx, [esp]
18942
                xor     ebp, edx
18943
                xor     ecx, edi
18944
                xor     ebx, ebp
18945
                and     ecx, [esp+0Ch]
18946
                and     ebx, [esp+14h]
18947
                ror     eax, 0Bh
18948
                xor     ecx, edx
18949
                mov     ebp, [esi+1Ch]
18950
                xor     ecx, ebx
18951
                and     edi, [esp+8]
18952
                xor     ecx, edi
18953
                lea     ebp, [eax+ebp+3F84D5B5h]
18954
                ror     ecx, 7
18955
                add     ebp, ecx
18956
                mov     eax, [esp]
18957
                mov     [esp+4], ebp
18958
                mov     ebx, [esp+8]
18959
                mov     edi, [esp+0Ch]
18960
                xor     ebp, 0FFFFFFFFh
18961
                mov     ecx, [esp+14h]
18962
                and     ebx, edi
18963
                mov     edx, [esp+18h]
18964
                and     ebp, ecx
18965
                xor     ebx, [esp+1Ch]
18966
                xor     ebp, edx
18967
                xor     ecx, edi
18968
                xor     ebx, ebp
18969
                and     ecx, [esp+8]
18970
                and     ebx, [esp+10h]
18971
                ror     eax, 0Bh
18972
                xor     ecx, edx
18973
                mov     ebp, [esi+40h]
18974
                xor     ecx, ebx
18975
                and     edi, [esp+4]
18976
                xor     ecx, edi
18977
                lea     ebp, [eax+ebp-4AB8F6E9h]
18978
                ror     ecx, 7
18979
                add     ebp, ecx
18980
                mov     eax, [esp+1Ch]
18981
                mov     [esp], ebp
18982
                mov     ebx, [esp+4]
18983
                mov     edi, [esp+8]
18984
                xor     ebp, 0FFFFFFFFh
18985
                mov     ecx, [esp+10h]
18986
                and     ebx, edi
18987
                mov     edx, [esp+14h]
18988
                and     ebp, ecx
18989
                xor     ebx, [esp+18h]
18990
                xor     ebp, edx
18991
                xor     ecx, edi
18992
                xor     ebx, ebp
18993
                and     ecx, [esp+4]
18994
                and     ebx, [esp+0Ch]
18995
                ror     eax, 0Bh
18996
                xor     ecx, edx
18997
                mov     ebp, [esi]
18998
                xor     ecx, ebx
18999
                and     edi, [esp]
19000
                xor     ecx, edi
19001
                lea     ebp, [eax+ebp-6DE92A27h]
19002
                ror     ecx, 7
19003
                add     ebp, ecx
19004
                mov     eax, [esp+18h]
19005
                mov     [esp+1Ch], ebp
19006
                mov     ebx, [esp]
19007
                mov     edi, [esp+4]
19008
                xor     ebp, 0FFFFFFFFh
19009
                mov     ecx, [esp+0Ch]
19010
                and     ebx, edi
19011
                mov     edx, [esp+10h]
19012
                and     ebp, ecx
19013
                xor     ebx, [esp+14h]
19014
                xor     ebp, edx
19015
                xor     ecx, edi
19016
                xor     ebx, ebp
19017
                and     ecx, [esp]
19018
                and     ebx, [esp+8]
19019
                ror     eax, 0Bh
19020
                xor     ecx, edx
19021
                mov     ebp, [esi+5Ch]
19022
                xor     ecx, ebx
19023
                and     edi, [esp+1Ch]
19024
                xor     ecx, edi
19025
                lea     ebp, [eax+ebp-768604E5h]
19026
                ror     ecx, 7
19027
                add     ebp, ecx
19028
                mov     eax, [esp+14h]
19029
                mov     [esp+18h], ebp
19030
                mov     ebx, [esp+1Ch]
19031
                mov     edi, [esp]
19032
                xor     ebp, 0FFFFFFFFh
19033
                mov     ecx, [esp+8]
19034
                and     ebx, edi
19035
                mov     edx, [esp+0Ch]
19036
                and     ebp, ecx
19037
                xor     ebx, [esp+10h]
19038
                xor     ebp, edx
19039
                xor     ecx, edi
19040
                xor     ebx, ebp
19041
                and     ecx, [esp+1Ch]
19042
                and     ebx, [esp+4]
19043
                ror     eax, 0Bh
19044
                xor     ecx, edx
19045
                mov     ebp, [esi+50h]
19046
                xor     ecx, ebx
19047
                and     edi, [esp+18h]
19048
                xor     ecx, edi
19049
                lea     ebp, [eax+ebp-2ECEF45Ah]
19050
                ror     ecx, 7
19051
                add     ebp, ecx
19052
                mov     eax, [esp+10h]
19053
                mov     [esp+14h], ebp
19054
                mov     ebx, [esp+18h]
19055
                mov     edi, [esp+1Ch]
19056
                xor     ebp, 0FFFFFFFFh
19057
                mov     ecx, [esp+4]
19058
                and     ebx, edi
19059
                mov     edx, [esp+8]
19060
                and     ebp, ecx
19061
                xor     ebx, [esp+0Ch]
19062
                xor     ebp, edx
19063
                xor     ecx, edi
19064
                xor     ebx, ebp
19065
                and     ecx, [esp+18h]
19066
                and     ebx, [esp]
19067
                ror     eax, 0Bh
19068
                xor     ecx, edx
19069
                mov     ebp, [esi+58h]
19070
                xor     ecx, ebx
19071
                and     edi, [esp+14h]
19072
                xor     ecx, edi
19073
                lea     ebp, [eax+ebp-67204A54h]
19074
                ror     ecx, 7
19075
                add     ebp, ecx
19076
                mov     eax, [esp+0Ch]
19077
                mov     [esp+10h], ebp
19078
                mov     ebx, [esp+14h]
19079
                mov     edi, [esp+18h]
19080
                xor     ebp, 0FFFFFFFFh
19081
                mov     ecx, [esp]
19082
                and     ebx, edi
19083
                mov     edx, [esp+4]
19084
                and     ebp, ecx
19085
                xor     ebx, [esp+8]
19086
                xor     ebp, edx
19087
                xor     ecx, edi
19088
                xor     ebx, ebp
19089
                and     ecx, [esp+14h]
19090
                and     ebx, [esp+1Ch]
19091
                ror     eax, 0Bh
19092
                xor     ecx, edx
19093
                mov     ebp, [esi+4]
19094
                xor     ecx, ebx
19095
                and     edi, [esp+10h]
19096
                xor     ecx, edi
19097
                lea     ebp, [eax+ebp+2FFD72DBh]
19098
                ror     ecx, 7
19099
                add     ebp, ecx
19100
                mov     eax, [esp+8]
19101
                mov     [esp+0Ch], ebp
19102
                mov     ebx, [esp+10h]
19103
                mov     edi, [esp+14h]
19104
                xor     ebp, 0FFFFFFFFh
19105
                mov     ecx, [esp+1Ch]
19106
                and     ebx, edi
19107
                mov     edx, [esp]
19108
                and     ebp, ecx
19109
                xor     ebx, [esp+4]
19110
                xor     ebp, edx
19111
                xor     ecx, edi
19112
                xor     ebx, ebp
19113
                and     ecx, [esp+10h]
19114
                and     ebx, [esp+18h]
19115
                ror     eax, 0Bh
19116
                xor     ecx, edx
19117
                mov     ebp, [esi+28h]
19118
                xor     ecx, ebx
19119
                and     edi, [esp+0Ch]
19120
                xor     ecx, edi
19121
                lea     ebp, [eax+ebp-2FE52049h]
19122
                ror     ecx, 7
19123
                add     ebp, ecx
19124
                mov     eax, [esp+4]
19125
                mov     [esp+8], ebp
19126
                mov     ebx, [esp+0Ch]
19127
                mov     edi, [esp+10h]
19128
                xor     ebp, 0FFFFFFFFh
19129
                mov     ecx, [esp+18h]
19130
                and     ebx, edi
19131
                mov     edx, [esp+1Ch]
19132
                and     ebp, ecx
19133
                xor     ebx, [esp]
19134
                xor     ebp, edx
19135
                xor     ecx, edi
19136
                xor     ebx, ebp
19137
                and     ecx, [esp+0Ch]
19138
                and     ebx, [esp+14h]
19139
                ror     eax, 0Bh
19140
                xor     ecx, edx
19141
                mov     ebp, [esi+10h]
19142
                xor     ecx, ebx
19143
                and     edi, [esp+8]
19144
                xor     ecx, edi
19145
                lea     ebp, [eax+ebp-471E5013h]
19146
                ror     ecx, 7
19147
                add     ebp, ecx
19148
                mov     eax, [esp]
19149
                mov     [esp+4], ebp
19150
                mov     ebx, [esp+8]
19151
                mov     edi, [esp+0Ch]
19152
                xor     ebp, 0FFFFFFFFh
19153
                mov     ecx, [esp+14h]
19154
                and     ebx, edi
19155
                mov     edx, [esp+18h]
19156
                and     ebp, ecx
19157
                xor     ebx, [esp+1Ch]
19158
                xor     ebp, edx
19159
                xor     ecx, edi
19160
                xor     ebx, ebp
19161
                and     ecx, [esp+8]
19162
                and     ebx, [esp+10h]
19163
                ror     eax, 0Bh
19164
                xor     ecx, edx
19165
                mov     ebp, [esi+20h]
19166
                xor     ecx, ebx
19167
                and     edi, [esp+4]
19168
                xor     ecx, edi
19169
                lea     ebp, [eax+ebp+6A267E96h]
19170
                ror     ecx, 7
19171
                add     ebp, ecx
19172
                mov     eax, [esp+1Ch]
19173
                mov     [esp], ebp
19174
                mov     ebx, [esp+4]
19175
                mov     edi, [esp+8]
19176
                xor     ebp, 0FFFFFFFFh
19177
                mov     ecx, [esp+10h]
19178
                and     ebx, edi
19179
                mov     edx, [esp+14h]
19180
                and     ebp, ecx
19181
                xor     ebx, [esp+18h]
19182
                xor     ebp, edx
19183
                xor     ecx, edi
19184
                xor     ebx, ebp
19185
                and     ecx, [esp+4]
19186
                and     ebx, [esp+0Ch]
19187
                ror     eax, 0Bh
19188
                xor     ecx, edx
19189
                mov     ebp, [esi+78h]
19190
                xor     ecx, ebx
19191
                and     edi, [esp]
19192
                xor     ecx, edi
19193
                lea     ebp, [eax+ebp-45836FBBh]
19194
                ror     ecx, 7
19195
                add     ebp, ecx
19196
                mov     eax, [esp+18h]
19197
                mov     [esp+1Ch], ebp
19198
                mov     ebx, [esp]
19199
                mov     edi, [esp+4]
19200
                xor     ebp, 0FFFFFFFFh
19201
                mov     ecx, [esp+0Ch]
19202
                and     ebx, edi
19203
                mov     edx, [esp+10h]
19204
                and     ebp, ecx
19205
                xor     ebx, [esp+14h]
19206
                xor     ebp, edx
19207
                xor     ecx, edi
19208
                xor     ebx, ebp
19209
                and     ecx, [esp]
19210
                and     ebx, [esp+8]
19211
                ror     eax, 0Bh
19212
                xor     ecx, edx
19213
                mov     ebp, [esi+0Ch]
19214
                xor     ecx, ebx
19215
                and     edi, [esp+1Ch]
19216
                xor     ecx, edi
19217
                lea     ebp, [eax+ebp-0ED38067h]
19218
                ror     ecx, 7
19219
                add     ebp, ecx
19220
                mov     eax, [esp+14h]
19221
                mov     [esp+18h], ebp
19222
                mov     ebx, [esp+1Ch]
19223
                mov     edi, [esp]
19224
                xor     ebp, 0FFFFFFFFh
19225
                mov     ecx, [esp+8]
19226
                and     ebx, edi
19227
                mov     edx, [esp+0Ch]
19228
                and     ebp, ecx
19229
                xor     ebx, [esp+10h]
19230
                xor     ebp, edx
19231
                xor     ecx, edi
19232
                xor     ebx, ebp
19233
                and     ecx, [esp+1Ch]
19234
                and     ebx, [esp+4]
19235
                ror     eax, 0Bh
19236
                xor     ecx, edx
19237
                mov     ebp, [esi+54h]
19238
                xor     ecx, ebx
19239
                and     edi, [esp+18h]
19240
                xor     ecx, edi
19241
                lea     ebp, [eax+ebp+24A19947h]
19242
                ror     ecx, 7
19243
                add     ebp, ecx
19244
                mov     eax, [esp+10h]
19245
                mov     [esp+14h], ebp
19246
                mov     ebx, [esp+18h]
19247
                mov     edi, [esp+1Ch]
19248
                xor     ebp, 0FFFFFFFFh
19249
                mov     ecx, [esp+4]
19250
                and     ebx, edi
19251
                mov     edx, [esp+8]
19252
                and     ebp, ecx
19253
                xor     ebx, [esp+0Ch]
19254
                xor     ebp, edx
19255
                xor     ecx, edi
19256
                xor     ebx, ebp
19257
                and     ecx, [esp+18h]
19258
                and     ebx, [esp]
19259
                ror     eax, 0Bh
19260
                xor     ecx, edx
19261
                mov     ebp, [esi+24h]
19262
                xor     ecx, ebx
19263
                and     edi, [esp+14h]
19264
                xor     ecx, edi
19265
                lea     ebp, [eax+ebp-4C6E9309h]
19266
                ror     ecx, 7
19267
                add     ebp, ecx
19268
                mov     eax, [esp+0Ch]
19269
                mov     [esp+10h], ebp
19270
                mov     ebx, [esp+14h]
19271
                mov     edi, [esp+18h]
19272
                xor     ebp, 0FFFFFFFFh
19273
                mov     ecx, [esp]
19274
                and     ebx, edi
19275
                mov     edx, [esp+4]
19276
                and     ebp, ecx
19277
                xor     ebx, [esp+8]
19278
                xor     ebp, edx
19279
                xor     ecx, edi
19280
                xor     ebx, ebp
19281
                and     ecx, [esp+14h]
19282
                and     ebx, [esp+1Ch]
19283
                ror     eax, 0Bh
19284
                xor     ecx, edx
19285
                mov     ebp, [esi+44h]
19286
                xor     ecx, ebx
19287
                and     edi, [esp+10h]
19288
                xor     ecx, edi
19289
                lea     ebp, [eax+ebp+801F2E2h]
19290
                ror     ecx, 7
19291
                add     ebp, ecx
19292
                mov     eax, [esp+8]
19293
                mov     [esp+0Ch], ebp
19294
                mov     ebx, [esp+10h]
19295
                mov     edi, [esp+14h]
19296
                xor     ebp, 0FFFFFFFFh
19297
                mov     ecx, [esp+1Ch]
19298
                and     ebx, edi
19299
                mov     edx, [esp]
19300
                and     ebp, ecx
19301
                xor     ebx, [esp+4]
19302
                xor     ebp, edx
19303
                xor     ecx, edi
19304
                xor     ebx, ebp
19305
                and     ecx, [esp+10h]
19306
                and     ebx, [esp+18h]
19307
                ror     eax, 0Bh
19308
                xor     ecx, edx
19309
                mov     ebp, [esi+60h]
19310
                xor     ecx, ebx
19311
                and     edi, [esp+0Ch]
19312
                xor     ecx, edi
19313
                lea     ebp, [eax+ebp-7A7103EAh]
19314
                ror     ecx, 7
19315
                add     ebp, ecx
19316
                mov     eax, [esp+4]
19317
                mov     [esp+8], ebp
19318
                mov     ebx, [esp+0Ch]
19319
                mov     edi, [esp+10h]
19320
                xor     ebp, 0FFFFFFFFh
19321
                mov     ecx, [esp+18h]
19322
                and     ebx, edi
19323
                mov     edx, [esp+1Ch]
19324
                and     ebp, ecx
19325
                xor     ebx, [esp]
19326
                xor     ebp, edx
19327
                xor     ecx, edi
19328
                xor     ebx, ebp
19329
                and     ecx, [esp+0Ch]
19330
                and     ebx, [esp+14h]
19331
                ror     eax, 0Bh
19332
                xor     ecx, edx
19333
                mov     ebp, [esi+74h]
19334
                xor     ecx, ebx
19335
                and     edi, [esp+8]
19336
                xor     ecx, edi
19337
                lea     ebp, [eax+ebp+636920D8h]
19338
                ror     ecx, 7
19339
                add     ebp, ecx
19340
                mov     eax, [esp]
19341
                mov     [esp+4], ebp
19342
                mov     ebx, [esp+8]
19343
                mov     edi, [esp+0Ch]
19344
                xor     ebp, 0FFFFFFFFh
19345
                mov     ecx, [esp+14h]
19346
                and     ebx, edi
19347
                mov     edx, [esp+18h]
19348
                and     ebp, ecx
19349
                xor     ebx, [esp+1Ch]
19350
                xor     ebp, edx
19351
                xor     ecx, edi
19352
                xor     ebx, ebp
19353
                and     ecx, [esp+8]
19354
                and     ebx, [esp+10h]
19355
                ror     eax, 0Bh
19356
                xor     ecx, edx
19357
                mov     ebp, [esi+18h]
19358
                xor     ecx, ebx
19359
                and     edi, [esp+4]
19360
                xor     ecx, edi
19361
                lea     ebp, [eax+ebp+71574E69h]
19362
                ror     ecx, 7
19363
                add     ebp, ecx
19364
                mov     eax, [esp+1Ch]
19365
                mov     [esp], ebp
19366
                mov     ebx, [esp+4]
19367
                mov     edi, [esp+8]
19368
                xor     ebp, 0FFFFFFFFh
19369
                mov     ecx, [esp+10h]
19370
                and     ebx, edi
19371
                mov     edx, [esp+14h]
19372
                and     ebp, ecx
19373
                xor     ebx, [esp+18h]
19374
                xor     ebp, edx
19375
                xor     ecx, edi
19376
                xor     ebx, ebp
19377
                and     ecx, [esp+4]
19378
                and     ebx, [esp+0Ch]
19379
                ror     eax, 0Bh
19380
                xor     ecx, edx
19381
                mov     ebp, [esi+4Ch]
19382
                xor     ecx, ebx
19383
                and     edi, [esp]
19384
                xor     ecx, edi
19385
                lea     ebp, [eax+ebp-5BA7015Dh]
19386
                ror     ecx, 7
19387
                add     ebp, ecx
19388
                mov     eax, [esp+18h]
19389
                mov     [esp+1Ch], ebp
19390
                mov     ebx, [esp]
19391
                mov     edi, [esp+4]
19392
                xor     ebp, 0FFFFFFFFh
19393
                mov     ecx, [esp+0Ch]
19394
                and     ebx, edi
19395
                mov     edx, [esp+10h]
19396
                and     ebp, ecx
19397
                xor     ebx, [esp+14h]
19398
                xor     ebp, edx
19399
                xor     ecx, edi
19400
                xor     ebx, ebp
19401
                and     ecx, [esp]
19402
                and     ebx, [esp+8]
19403
                ror     eax, 0Bh
19404
                xor     ecx, edx
19405
                mov     ebp, [esi+30h]
19406
                xor     ecx, ebx
19407
                and     edi, [esp+1Ch]
19408
                xor     ecx, edi
19409
                lea     ebp, [eax+ebp-0B6CC282h]
19410
                ror     ecx, 7
19411
                add     ebp, ecx
19412
                mov     eax, [esp+14h]
19413
                mov     [esp+18h], ebp
19414
                mov     ebx, [esp+1Ch]
19415
                mov     edi, [esp]
19416
                xor     ebp, 0FFFFFFFFh
19417
                mov     ecx, [esp+8]
19418
                and     ebx, edi
19419
                mov     edx, [esp+0Ch]
19420
                and     ebp, ecx
19421
                xor     ebx, [esp+10h]
19422
                xor     ebp, edx
19423
                xor     ecx, edi
19424
                xor     ebx, ebp
19425
                and     ecx, [esp+1Ch]
19426
                and     ebx, [esp+4]
19427
                ror     eax, 0Bh
19428
                xor     ecx, edx
19429
                mov     ebp, [esi+3Ch]
19430
                xor     ecx, ebx
19431
                and     edi, [esp+18h]
19432
                xor     ecx, edi
19433
                lea     ebp, [eax+ebp+0D95748Fh]
19434
                ror     ecx, 7
19435
                add     ebp, ecx
19436
                mov     eax, [esp+10h]
19437
                mov     [esp+14h], ebp
19438
                mov     ebx, [esp+18h]
19439
                mov     edi, [esp+1Ch]
19440
                xor     ebp, 0FFFFFFFFh
19441
                mov     ecx, [esp+4]
19442
                and     ebx, edi
19443
                mov     edx, [esp+8]
19444
                and     ebp, ecx
19445
                xor     ebx, [esp+0Ch]
19446
                xor     ebp, edx
19447
                xor     ecx, edi
19448
                xor     ebx, ebp
19449
                and     ecx, [esp+18h]
19450
                and     ebx, [esp]
19451
                ror     eax, 0Bh
19452
                xor     ecx, edx
19453
                mov     ebp, [esi+34h]
19454
                xor     ecx, ebx
19455
                and     edi, [esp+14h]
19456
                xor     ecx, edi
19457
                lea     ebp, [eax+ebp+728EB658h]
19458
                ror     ecx, 7
19459
                add     ebp, ecx
19460
                mov     eax, [esp+0Ch]
19461
                mov     [esp+10h], ebp
19462
                mov     ebx, [esp+14h]
19463
                mov     edi, [esp+18h]
19464
                xor     ebp, 0FFFFFFFFh
19465
                mov     ecx, [esp]
19466
                and     ebx, edi
19467
                mov     edx, [esp+4]
19468
                and     ebp, ecx
19469
                xor     ebx, [esp+8]
19470
                xor     ebp, edx
19471
                xor     ecx, edi
19472
                xor     ebx, ebp
19473
                and     ecx, [esp+14h]
19474
                and     ebx, [esp+1Ch]
19475
                ror     eax, 0Bh
19476
                xor     ecx, edx
19477
                mov     ebp, [esi+8]
19478
                xor     ecx, ebx
19479
                and     edi, [esp+10h]
19480
                xor     ecx, edi
19481
                lea     ebp, [eax+ebp+718BCD58h]
19482
                ror     ecx, 7
19483
                add     ebp, ecx
19484
                mov     eax, [esp+8]
19485
                mov     [esp+0Ch], ebp
19486
                mov     ebx, [esp+10h]
19487
                mov     edi, [esp+14h]
19488
                xor     ebp, 0FFFFFFFFh
19489
                mov     ecx, [esp+1Ch]
19490
                and     ebx, edi
19491
                mov     edx, [esp]
19492
                and     ebp, ecx
19493
                xor     ebx, [esp+4]
19494
                xor     ebp, edx
19495
                xor     ecx, edi
19496
                xor     ebx, ebp
19497
                and     ecx, [esp+10h]
19498
                and     ebx, [esp+18h]
19499
                ror     eax, 0Bh
19500
                xor     ecx, edx
19501
                mov     ebp, [esi+64h]
19502
                xor     ecx, ebx
19503
                and     edi, [esp+0Ch]
19504
                xor     ecx, edi
19505
                lea     ebp, [eax+ebp-7DEAB512h]
19506
                ror     ecx, 7
19507
                add     ebp, ecx
19508
                mov     eax, [esp+4]
19509
                mov     [esp+8], ebp
19510
                mov     ebx, [esp+0Ch]
19511
                mov     edi, [esp+10h]
19512
                xor     ebp, 0FFFFFFFFh
19513
                mov     ecx, [esp+18h]
19514
                and     ebx, edi
19515
                mov     edx, [esp+1Ch]
19516
                and     ebp, ecx
19517
                xor     ebx, [esp]
19518
                xor     ebp, edx
19519
                xor     ecx, edi
19520
                xor     ebx, ebp
19521
                and     ecx, [esp+0Ch]
19522
                and     ebx, [esp+14h]
19523
                ror     eax, 0Bh
19524
                xor     ecx, edx
19525
                mov     ebp, [esi+7Ch]
19526
                xor     ecx, ebx
19527
                and     edi, [esp+8]
19528
                xor     ecx, edi
19529
                lea     ebp, [eax+ebp+7B54A41Dh]
19530
                ror     ecx, 7
19531
                add     ebp, ecx
19532
                mov     eax, [esp]
19533
                mov     [esp+4], ebp
19534
                mov     ebx, [esp+8]
19535
                mov     edi, [esp+0Ch]
19536
                xor     ebp, 0FFFFFFFFh
19537
                mov     ecx, [esp+14h]
19538
                and     ebx, edi
19539
                mov     edx, [esp+18h]
19540
                and     ebp, ecx
19541
                xor     ebx, [esp+1Ch]
19542
                xor     ebp, edx
19543
                xor     ecx, edi
19544
                xor     ebx, ebp
19545
                and     ecx, [esp+8]
19546
                and     ebx, [esp+10h]
19547
                ror     eax, 0Bh
19548
                xor     ecx, edx
19549
                mov     ebp, [esi+6Ch]
19550
                xor     ecx, ebx
19551
                and     edi, [esp+4]
19552
                xor     ecx, edi
19553
                lea     ebp, [eax+ebp-3DA5A64Bh]
19554
                ror     ecx, 7
19555
                add     ebp, ecx
19556
                mov     eax, [esp+1Ch]
19557
                mov     [esp], ebp
19558
                mov     ebp, [esp+14h]
19559
                mov     ebx, [esp+0Ch]
19560
                mov     ecx, [esp+4]
19561
                mov     edi, ebx
19562
                and     ebx, [esp+18h]
19563
                and     edi, ecx
19564
                xor     ebx, ebp
19565
                ror     eax, 0Bh
19566
                xor     edi, ebp
19567
                mov     ebp, [esi+4Ch]
19568
                xor     edi, [esp+8]
19569
                and     ecx, [esp]
19570
                and     edi, [esp+10h]
19571
                xor     ecx, ebx
19572
                lea     ebp, [eax+ebp-63CF2AC7h]
19573
                xor     ecx, edi
19574
                ror     ecx, 7
19575
                add     ebp, ecx
19576
                mov     eax, [esp+18h]
19577
                mov     [esp+1Ch], ebp
19578
                mov     ebp, [esp+10h]
19579
                mov     ebx, [esp+8]
19580
                mov     ecx, [esp]
19581
                mov     edi, ebx
19582
                and     ebx, [esp+14h]
19583
                and     edi, ecx
19584
                xor     ebx, ebp
19585
                ror     eax, 0Bh
19586
                xor     edi, ebp
19587
                mov     ebp, [esi+24h]
19588
                xor     edi, [esp+4]
19589
                and     ecx, [esp+1Ch]
19590
                and     edi, [esp+0Ch]
19591
                xor     ecx, ebx
19592
                lea     ebp, [eax+ebp+2AF26013h]
19593
                xor     ecx, edi
19594
                ror     ecx, 7
19595
                add     ebp, ecx
19596
                mov     eax, [esp+14h]
19597
                mov     [esp+18h], ebp
19598
                mov     ebp, [esp+0Ch]
19599
                mov     ebx, [esp+4]
19600
                mov     ecx, [esp+1Ch]
19601
                mov     edi, ebx
19602
                and     ebx, [esp+10h]
19603
                and     edi, ecx
19604
                xor     ebx, ebp
19605
                ror     eax, 0Bh
19606
                xor     edi, ebp
19607
                mov     ebp, [esi+10h]
19608
                xor     edi, [esp]
19609
                and     ecx, [esp+18h]
19610
                and     edi, [esp+8]
19611
                xor     ecx, ebx
19612
                lea     ebp, [eax+ebp-3A2E4FDDh]
19613
                xor     ecx, edi
19614
                ror     ecx, 7
19615
                add     ebp, ecx
19616
                mov     eax, [esp+10h]
19617
                mov     [esp+14h], ebp
19618
                mov     ebp, [esp+8]
19619
                mov     ebx, [esp]
19620
                mov     ecx, [esp+18h]
19621
                mov     edi, ebx
19622
                and     ebx, [esp+0Ch]
19623
                and     edi, ecx
19624
                xor     ebx, ebp
19625
                ror     eax, 0Bh
19626
                xor     edi, ebp
19627
                mov     ebp, [esi+50h]
19628
                xor     edi, [esp+1Ch]
19629
                and     ecx, [esp+14h]
19630
                and     edi, [esp+4]
19631
                xor     ecx, ebx
19632
                lea     ebp, [eax+ebp+286085F0h]
19633
                xor     ecx, edi
19634
                ror     ecx, 7
19635
                add     ebp, ecx
19636
                mov     eax, [esp+0Ch]
19637
                mov     [esp+10h], ebp
19638
                mov     ebp, [esp+4]
19639
                mov     ebx, [esp+1Ch]
19640
                mov     ecx, [esp+14h]
19641
                mov     edi, ebx
19642
                and     ebx, [esp+8]
19643
                and     edi, ecx
19644
                xor     ebx, ebp
19645
                ror     eax, 0Bh
19646
                xor     edi, ebp
19647
                mov     ebp, [esi+70h]
19648
                xor     edi, [esp+18h]
19649
                and     ecx, [esp+10h]
19650
                and     edi, [esp]
19651
                xor     ecx, ebx
19652
                lea     ebp, [eax+ebp-35BE86E8h]
19653
                xor     ecx, edi
19654
                ror     ecx, 7
19655
                add     ebp, ecx
19656
                mov     eax, [esp+8]
19657
                mov     [esp+0Ch], ebp
19658
                mov     ebp, [esp]
19659
                mov     ebx, [esp+18h]
19660
                mov     ecx, [esp+10h]
19661
                mov     edi, ebx
19662
                and     ebx, [esp+4]
19663
                and     edi, ecx
19664
                xor     ebx, ebp
19665
                ror     eax, 0Bh
19666
                xor     edi, ebp
19667
                mov     ebp, [esi+44h]
19668
                xor     edi, [esp+14h]
19669
                and     ecx, [esp+0Ch]
19670
                and     edi, [esp+1Ch]
19671
                xor     ecx, ebx
19672
                lea     ebp, [eax+ebp-4724C711h]
19673
                xor     ecx, edi
19674
                ror     ecx, 7
19675
                add     ebp, ecx
19676
                mov     eax, [esp+4]
19677
                mov     [esp+8], ebp
19678
                mov     ebp, [esp+1Ch]
19679
                mov     ebx, [esp+14h]
19680
                mov     ecx, [esp+0Ch]
19681
                mov     edi, ebx
19682
                and     ebx, [esp]
19683
                and     edi, ecx
19684
                xor     ebx, ebp
19685
                ror     eax, 0Bh
19686
                xor     edi, ebp
19687
                mov     ebp, [esi+20h]
19688
                xor     edi, [esp+10h]
19689
                and     ecx, [esp+8]
19690
                and     edi, [esp+18h]
19691
                xor     ecx, ebx
19692
                lea     ebp, [eax+ebp-71862350h]
19693
                xor     ecx, edi
19694
                ror     ecx, 7
19695
                add     ebp, ecx
19696
                mov     eax, [esp]
19697
                mov     [esp+4], ebp
19698
                mov     ebp, [esp+18h]
19699
                mov     ebx, [esp+10h]
19700
                mov     ecx, [esp+8]
19701
                mov     edi, ebx
19702
                and     ebx, [esp+1Ch]
19703
                and     edi, ecx
19704
                xor     ebx, ebp
19705
                ror     eax, 0Bh
19706
                xor     edi, ebp
19707
                mov     ebp, [esi+58h]
19708
                xor     edi, [esp+0Ch]
19709
                and     ecx, [esp+4]
19710
                and     edi, [esp+14h]
19711
                xor     ecx, ebx
19712
                lea     ebp, [eax+ebp+603A180Eh]
19713
                xor     ecx, edi
19714
                ror     ecx, 7
19715
                add     ebp, ecx
19716
                mov     eax, [esp+1Ch]
19717
                mov     [esp], ebp
19718
                mov     ebp, [esp+14h]
19719
                mov     ebx, [esp+0Ch]
19720
                mov     ecx, [esp+4]
19721
                mov     edi, ebx
19722
                and     ebx, [esp+18h]
19723
                and     edi, ecx
19724
                xor     ebx, ebp
19725
                ror     eax, 0Bh
19726
                xor     edi, ebp
19727
                mov     ebp, [esi+74h]
19728
                xor     edi, [esp+8]
19729
                and     ecx, [esp]
19730
                and     edi, [esp+10h]
19731
                xor     ecx, ebx
19732
                lea     ebp, [eax+ebp+6C9E0E8Bh]
19733
                xor     ecx, edi
19734
                ror     ecx, 7
19735
                add     ebp, ecx
19736
                mov     eax, [esp+18h]
19737
                mov     [esp+1Ch], ebp
19738
                mov     ebp, [esp+10h]
19739
                mov     ebx, [esp+8]
19740
                mov     ecx, [esp]
19741
                mov     edi, ebx
19742
                and     ebx, [esp+14h]
19743
                and     edi, ecx
19744
                xor     ebx, ebp
19745
                ror     eax, 0Bh
19746
                xor     edi, ebp
19747
                mov     ebp, [esi+38h]
19748
                xor     edi, [esp+4]
19749
                and     ecx, [esp+1Ch]
19750
                and     edi, [esp+0Ch]
19751
                xor     ecx, ebx
19752
                lea     ebp, [eax+ebp-4FE175C2h]
19753
                xor     ecx, edi
19754
                ror     ecx, 7
19755
                add     ebp, ecx
19756
                mov     eax, [esp+14h]
19757
                mov     [esp+18h], ebp
19758
                mov     ebp, [esp+0Ch]
19759
                mov     ebx, [esp+4]
19760
                mov     ecx, [esp+1Ch]
19761
                mov     edi, ebx
19762
                and     ebx, [esp+10h]
19763
                and     edi, ecx
19764
                xor     ebx, ebp
19765
                ror     eax, 0Bh
19766
                xor     edi, ebp
19767
                mov     ebp, [esi+64h]
19768
                xor     edi, [esp]
19769
                and     ecx, [esp+18h]
19770
                and     edi, [esp+8]
19771
                xor     ecx, ebx
19772
                lea     ebp, [eax+ebp-28EA883Fh]
19773
                xor     ecx, edi
19774
                ror     ecx, 7
19775
                add     ebp, ecx
19776
                mov     eax, [esp+10h]
19777
                mov     [esp+14h], ebp
19778
                mov     ebp, [esp+8]
19779
                mov     ebx, [esp]
19780
                mov     ecx, [esp+18h]
19781
                mov     edi, ebx
19782
                and     ebx, [esp+0Ch]
19783
                and     edi, ecx
19784
                xor     ebx, ebp
19785
                ror     eax, 0Bh
19786
                xor     edi, ebp
19787
                mov     ebp, [esi+30h]
19788
                xor     edi, [esp+1Ch]
19789
                and     ecx, [esp+14h]
19790
                and     edi, [esp+4]
19791
                xor     ecx, ebx
19792
                lea     ebp, [eax+ebp-42CEB4D9h]
19793
                xor     ecx, edi
19794
                ror     ecx, 7
19795
                add     ebp, ecx
19796
                mov     eax, [esp+0Ch]
19797
                mov     [esp+10h], ebp
19798
                mov     ebp, [esp+4]
19799
                mov     ebx, [esp+1Ch]
19800
                mov     ecx, [esp+14h]
19801
                mov     edi, ebx
19802
                and     ebx, [esp+8]
19803
                and     edi, ecx
19804
                xor     ebx, ebp
19805
                ror     eax, 0Bh
19806
                xor     edi, ebp
19807
                mov     ebp, [esi+60h]
19808
                xor     edi, [esp+18h]
19809
                and     ecx, [esp+10h]
19810
                and     edi, [esp]
19811
                xor     ecx, ebx
19812
                lea     ebp, [eax+ebp+78AF2FDAh]
19813
                xor     ecx, edi
19814
                ror     ecx, 7
19815
                add     ebp, ecx
19816
                mov     eax, [esp+8]
19817
                mov     [esp+0Ch], ebp
19818
                mov     ebp, [esp]
19819
                mov     ebx, [esp+18h]
19820
                mov     ecx, [esp+10h]
19821
                mov     edi, ebx
19822
                and     ebx, [esp+4]
19823
                and     edi, ecx
19824
                xor     ebx, ebp
19825
                ror     eax, 0Bh
19826
                xor     edi, ebp
19827
                mov     ebp, [esi+78h]
19828
                xor     edi, [esp+14h]
19829
                and     ecx, [esp+0Ch]
19830
                and     edi, [esp+1Ch]
19831
                xor     ecx, ebx
19832
                lea     ebp, [eax+ebp+55605C60h]
19833
                xor     ecx, edi
19834
                ror     ecx, 7
19835
                add     ebp, ecx
19836
                mov     eax, [esp+4]
19837
                mov     [esp+8], ebp
19838
                mov     ebp, [esp+1Ch]
19839
                mov     ebx, [esp+14h]
19840
                mov     ecx, [esp+0Ch]
19841
                mov     edi, ebx
19842
                and     ebx, [esp]
19843
                and     edi, ecx
19844
                xor     ebx, ebp
19845
                ror     eax, 0Bh
19846
                xor     edi, ebp
19847
                mov     ebp, [esi+40h]
19848
                xor     edi, [esp+10h]
19849
                and     ecx, [esp+8]
19850
                and     edi, [esp+18h]
19851
                xor     ecx, ebx
19852
                lea     ebp, [eax+ebp-19AADA0Dh]
19853
                xor     ecx, edi
19854
                ror     ecx, 7
19855
                add     ebp, ecx
19856
                mov     eax, [esp]
19857
                mov     [esp+4], ebp
19858
                mov     ebp, [esp+18h]
19859
                mov     ebx, [esp+10h]
19860
                mov     ecx, [esp+8]
19861
                mov     edi, ebx
19862
                and     ebx, [esp+1Ch]
19863
                and     edi, ecx
19864
                xor     ebx, ebp
19865
                ror     eax, 0Bh
19866
                xor     edi, ebp
19867
                mov     ebp, [esi+68h]
19868
                xor     edi, [esp+0Ch]
19869
                and     ecx, [esp+4]
19870
                and     edi, [esp+14h]
19871
                xor     ecx, ebx
19872
                lea     ebp, [eax+ebp-55AA546Ch]
19873
                xor     ecx, edi
19874
                ror     ecx, 7
19875
                add     ebp, ecx
19876
                mov     eax, [esp+1Ch]
19877
                mov     [esp], ebp
19878
                mov     ebp, [esp+14h]
19879
                mov     ebx, [esp+0Ch]
19880
                mov     ecx, [esp+4]
19881
                mov     edi, ebx
19882
                and     ebx, [esp+18h]
19883
                and     edi, ecx
19884
                xor     ebx, ebp
19885
                ror     eax, 0Bh
19886
                xor     edi, ebp
19887
                mov     ebp, [esi+7Ch]
19888
                xor     edi, [esp+8]
19889
                and     ecx, [esp]
19890
                and     edi, [esp+10h]
19891
                xor     ecx, ebx
19892
                lea     ebp, [eax+ebp+57489862h]
19893
                xor     ecx, edi
19894
                ror     ecx, 7
19895
                add     ebp, ecx
19896
                mov     eax, [esp+18h]
19897
                mov     [esp+1Ch], ebp
19898
                mov     ebp, [esp+10h]
19899
                mov     ebx, [esp+8]
19900
                mov     ecx, [esp]
19901
                mov     edi, ebx
19902
                and     ebx, [esp+14h]
19903
                and     edi, ecx
19904
                xor     ebx, ebp
19905
                ror     eax, 0Bh
19906
                xor     edi, ebp
19907
                mov     ebp, [esi+3Ch]
19908
                xor     edi, [esp+4]
19909
                and     ecx, [esp+1Ch]
19910
                and     edi, [esp+0Ch]
19911
                xor     ecx, ebx
19912
                lea     ebp, [eax+ebp+63E81440h]
19913
                xor     ecx, edi
19914
                ror     ecx, 7
19915
                add     ebp, ecx
19916
                mov     eax, [esp+14h]
19917
                mov     [esp+18h], ebp
19918
                mov     ebp, [esp+0Ch]
19919
                mov     ebx, [esp+4]
19920
                mov     ecx, [esp+1Ch]
19921
                mov     edi, ebx
19922
                and     ebx, [esp+10h]
19923
                and     edi, ecx
19924
                xor     ebx, ebp
19925
                ror     eax, 0Bh
19926
                xor     edi, ebp
19927
                mov     ebp, [esi+1Ch]
19928
                xor     edi, [esp]
19929
                and     ecx, [esp+18h]
19930
                and     edi, [esp+8]
19931
                xor     ecx, ebx
19932
                lea     ebp, [eax+ebp+55CA396Ah]
19933
                xor     ecx, edi
19934
                ror     ecx, 7
19935
                add     ebp, ecx
19936
                mov     eax, [esp+10h]
19937
                mov     [esp+14h], ebp
19938
                mov     ebp, [esp+8]
19939
                mov     ebx, [esp]
19940
                mov     ecx, [esp+18h]
19941
                mov     edi, ebx
19942
                and     ebx, [esp+0Ch]
19943
                and     edi, ecx
19944
                xor     ebx, ebp
19945
                ror     eax, 0Bh
19946
                xor     edi, ebp
19947
                mov     ebp, [esi+0Ch]
19948
                xor     edi, [esp+1Ch]
19949
                and     ecx, [esp+14h]
19950
                and     edi, [esp+4]
19951
                xor     ecx, ebx
19952
                lea     ebp, [eax+ebp+2AAB10B6h]
19953
                xor     ecx, edi
19954
                ror     ecx, 7
19955
                add     ebp, ecx
19956
                mov     eax, [esp+0Ch]
19957
                mov     [esp+10h], ebp
19958
                mov     ebp, [esp+4]
19959
                mov     ebx, [esp+1Ch]
19960
                mov     ecx, [esp+14h]
19961
                mov     edi, ebx
19962
                and     ebx, [esp+8]
19963
                and     edi, ecx
19964
                xor     ebx, ebp
19965
                ror     eax, 0Bh
19966
                xor     edi, ebp
19967
                mov     ebp, [esi+4]
19968
                xor     edi, [esp+18h]
19969
                and     ecx, [esp+10h]
19970
                and     edi, [esp]
19971
                xor     ecx, ebx
19972
                lea     ebp, [eax+ebp-4B33A3CCh]
19973
                xor     ecx, edi
19974
                ror     ecx, 7
19975
                add     ebp, ecx
19976
                mov     eax, [esp+8]
19977
                mov     [esp+0Ch], ebp
19978
                mov     ebp, [esp]
19979
                mov     ebx, [esp+18h]
19980
                mov     ecx, [esp+10h]
19981
                mov     edi, ebx
19982
                and     ebx, [esp+4]
19983
                and     edi, ecx
19984
                xor     ebx, ebp
19985
                ror     eax, 0Bh
19986
                xor     edi, ebp
19987
                mov     ebp, [esi]
19988
                xor     edi, [esp+14h]
19989
                and     ecx, [esp+0Ch]
19990
                and     edi, [esp+1Ch]
19991
                xor     ecx, ebx
19992
                lea     ebp, [eax+ebp+1141E8CEh]
19993
                xor     ecx, edi
19994
                ror     ecx, 7
19995
                add     ebp, ecx
19996
                mov     eax, [esp+4]
19997
                mov     [esp+8], ebp
19998
                mov     ebp, [esp+1Ch]
19999
                mov     ebx, [esp+14h]
20000
                mov     ecx, [esp+0Ch]
20001
                mov     edi, ebx
20002
                and     ebx, [esp]
20003
                and     edi, ecx
20004
                xor     ebx, ebp
20005
                ror     eax, 0Bh
20006
                xor     edi, ebp
20007
                mov     ebp, [esi+48h]
20008
                xor     edi, [esp+10h]
20009
                and     ecx, [esp+8]
20010
                and     edi, [esp+18h]
20011
                xor     ecx, ebx
20012
                lea     ebp, [eax+ebp-5EAB7951h]
20013
                xor     ecx, edi
20014
                ror     ecx, 7
20015
                add     ebp, ecx
20016
                mov     eax, [esp]
20017
                mov     [esp+4], ebp
20018
                mov     ebp, [esp+18h]
20019
                mov     ebx, [esp+10h]
20020
                mov     ecx, [esp+8]
20021
                mov     edi, ebx
20022
                and     ebx, [esp+1Ch]
20023
                and     edi, ecx
20024
                xor     ebx, ebp
20025
                ror     eax, 0Bh
20026
                xor     edi, ebp
20027
                mov     ebp, [esi+6Ch]
20028
                xor     edi, [esp+0Ch]
20029
                and     ecx, [esp+4]
20030
                and     edi, [esp+14h]
20031
                xor     ecx, ebx
20032
                lea     ebp, [eax+ebp+7C72E993h]
20033
                xor     ecx, edi
20034
                ror     ecx, 7
20035
                add     ebp, ecx
20036
                mov     eax, [esp+1Ch]
20037
                mov     [esp], ebp
20038
                mov     ebp, [esp+14h]
20039
                mov     ebx, [esp+0Ch]
20040
                mov     ecx, [esp+4]
20041
                mov     edi, ebx
20042
                and     ebx, [esp+18h]
20043
                and     edi, ecx
20044
                xor     ebx, ebp
20045
                ror     eax, 0Bh
20046
                xor     edi, ebp
20047
                mov     ebp, [esi+34h]
20048
                xor     edi, [esp+8]
20049
                and     ecx, [esp]
20050
                and     edi, [esp+10h]
20051
                xor     ecx, ebx
20052
                lea     ebp, [eax+ebp-4C11EBEFh]
20053
                xor     ecx, edi
20054
                ror     ecx, 7
20055
                add     ebp, ecx
20056
                mov     eax, [esp+18h]
20057
                mov     [esp+1Ch], ebp
20058
                mov     ebp, [esp+10h]
20059
                mov     ebx, [esp+8]
20060
                mov     ecx, [esp]
20061
                mov     edi, ebx
20062
                and     ebx, [esp+14h]
20063
                and     edi, ecx
20064
                xor     ebx, ebp
20065
                ror     eax, 0Bh
20066
                xor     edi, ebp
20067
                mov     ebp, [esi+18h]
20068
                xor     edi, [esp+4]
20069
                and     ecx, [esp+1Ch]
20070
                and     edi, [esp+0Ch]
20071
                xor     ecx, ebx
20072
                lea     ebp, [eax+ebp+636FBC2Ah]
20073
                xor     ecx, edi
20074
                ror     ecx, 7
20075
                add     ebp, ecx
20076
                mov     eax, [esp+14h]
20077
                mov     [esp+18h], ebp
20078
                mov     ebp, [esp+0Ch]
20079
                mov     ebx, [esp+4]
20080
                mov     ecx, [esp+1Ch]
20081
                mov     edi, ebx
20082
                and     ebx, [esp+10h]
20083
                and     edi, ecx
20084
                xor     ebx, ebp
20085
                ror     eax, 0Bh
20086
                xor     edi, ebp
20087
                mov     ebp, [esi+54h]
20088
                xor     edi, [esp]
20089
                and     ecx, [esp+18h]
20090
                and     edi, [esp+8]
20091
                xor     ecx, ebx
20092
                lea     ebp, [eax+ebp+2BA9C55Dh]
20093
                xor     ecx, edi
20094
                ror     ecx, 7
20095
                add     ebp, ecx
20096
                mov     eax, [esp+10h]
20097
                mov     [esp+14h], ebp
20098
                mov     ebp, [esp+8]
20099
                mov     ebx, [esp]
20100
                mov     ecx, [esp+18h]
20101
                mov     edi, ebx
20102
                and     ebx, [esp+0Ch]
20103
                and     edi, ecx
20104
                xor     ebx, ebp
20105
                ror     eax, 0Bh
20106
                xor     edi, ebp
20107
                mov     ebp, [esi+28h]
20108
                xor     edi, [esp+1Ch]
20109
                and     ecx, [esp+14h]
20110
                and     edi, [esp+4]
20111
                xor     ecx, ebx
20112
                lea     ebp, [eax+ebp+741831F6h]
20113
                xor     ecx, edi
20114
                ror     ecx, 7
20115
                add     ebp, ecx
20116
                mov     eax, [esp+0Ch]
20117
                mov     [esp+10h], ebp
20118
                mov     ebp, [esp+4]
20119
                mov     ebx, [esp+1Ch]
20120
                mov     ecx, [esp+14h]
20121
                mov     edi, ebx
20122
                and     ebx, [esp+8]
20123
                and     edi, ecx
20124
                xor     ebx, ebp
20125
                ror     eax, 0Bh
20126
                xor     edi, ebp
20127
                mov     ebp, [esi+5Ch]
20128
                xor     edi, [esp+18h]
20129
                and     ecx, [esp+10h]
20130
                and     edi, [esp]
20131
                xor     ecx, ebx
20132
                lea     ebp, [eax+ebp-31A3C1EAh]
20133
                xor     ecx, edi
20134
                ror     ecx, 7
20135
                add     ebp, ecx
20136
                mov     eax, [esp+8]
20137
                mov     [esp+0Ch], ebp
20138
                mov     ebp, [esp]
20139
                mov     ebx, [esp+18h]
20140
                mov     ecx, [esp+10h]
20141
                mov     edi, ebx
20142
                and     ebx, [esp+4]
20143
                and     edi, ecx
20144
                xor     ebx, ebp
20145
                ror     eax, 0Bh
20146
                xor     edi, ebp
20147
                mov     ebp, [esi+2Ch]
20148
                xor     edi, [esp+14h]
20149
                and     ecx, [esp+0Ch]
20150
                and     edi, [esp+1Ch]
20151
                xor     ecx, ebx
20152
                lea     ebp, [eax+ebp-64786CE2h]
20153
                xor     ecx, edi
20154
                ror     ecx, 7
20155
                add     ebp, ecx
20156
                mov     eax, [esp+4]
20157
                mov     [esp+8], ebp
20158
                mov     ebp, [esp+1Ch]
20159
                mov     ebx, [esp+14h]
20160
                mov     ecx, [esp+0Ch]
20161
                mov     edi, ebx
20162
                and     ebx, [esp]
20163
                and     edi, ecx
20164
                xor     ebx, ebp
20165
                ror     eax, 0Bh
20166
                xor     edi, ebp
20167
                mov     ebp, [esi+14h]
20168
                xor     edi, [esp+10h]
20169
                and     ecx, [esp+8]
20170
                and     edi, [esp+18h]
20171
                xor     ecx, ebx
20172
                lea     ebp, [eax+ebp-502945CDh]
20173
                xor     ecx, edi
20174
                ror     ecx, 7
20175
                add     ebp, ecx
20176
                mov     eax, [esp]
20177
                mov     [esp+4], ebp
20178
                mov     ebp, [esp+18h]
20179
                mov     ebx, [esp+10h]
20180
                mov     ecx, [esp+8]
20181
                mov     edi, ebx
20182
                and     ebx, [esp+1Ch]
20183
                and     edi, ecx
20184
                xor     ebx, ebp
20185
                ror     eax, 0Bh
20186
                xor     edi, ebp
20187
                mov     ebp, [esi+8]
20188
                xor     edi, [esp+0Ch]
20189
                and     ecx, [esp+4]
20190
                and     edi, [esp+14h]
20191
                xor     ecx, ebx
20192
                lea     ebp, [eax+ebp+6C24CF5Ch]
20193
                xor     ecx, edi
20194
                ror     ecx, 7
20195
                add     ebp, ecx
20196
                mov     eax, [esp+1Ch]
20197
                mov     [esp], ebp
20198
                mov     ebp, [esp]
20199
                mov     ecx, [esp+14h]
20200
                mov     edx, [esp+4]
20201
                mov     edi, ebp
20202
                mov     ebx, edx
20203
                xor     ebp, 0FFFFFFFFh
20204
                xor     ebx, 0FFFFFFFFh
20205
                and     ebp, ecx
20206
                and     ebx, [esp+8]
20207
                xor     ebp, [esp+10h]
20208
                xor     ebx, edx
20209
                xor     ebp, [esp+18h]
20210
                xor     ebx, ebp
20211
                mov     ebp, edi
20212
                and     ebx, [esp+0Ch]
20213
                and     ebp, [esp+10h]
20214
                and     edi, edx
20215
                xor     ebp, ecx
20216
                xor     ebx, [esp+18h]
20217
                ror     eax, 0Bh
20218
                xor     ebp, edx
20219
                mov     edx, [esi+60h]
20220
                and     ebp, [esp+8]
20221
                xor     ebx, edi
20222
                xor     ebp, ebx
20223
                lea     edx, [eax+edx+7A325381h]
20224
                ror     ebp, 7
20225
                add     ebp, edx
20226
                mov     eax, [esp+18h]
20227
                mov     [esp+1Ch], ebp
20228
                mov     ecx, [esp+10h]
20229
                mov     edx, [esp]
20230
                mov     edi, ebp
20231
                mov     ebx, edx
20232
                xor     ebp, 0FFFFFFFFh
20233
                xor     ebx, 0FFFFFFFFh
20234
                and     ebp, ecx
20235
                and     ebx, [esp+4]
20236
                xor     ebp, [esp+0Ch]
20237
                xor     ebx, edx
20238
                xor     ebp, [esp+14h]
20239
                xor     ebx, ebp
20240
                mov     ebp, edi
20241
                and     ebx, [esp+8]
20242
                and     ebp, [esp+0Ch]
20243
                and     edi, edx
20244
                xor     ebp, ecx
20245
                xor     ebx, [esp+14h]
20246
                ror     eax, 0Bh
20247
                xor     ebp, edx
20248
                mov     edx, [esi+10h]
20249
                and     ebp, [esp+4]
20250
                xor     ebx, edi
20251
                xor     ebp, ebx
20252
                lea     edx, [eax+edx+28958677h]
20253
                ror     ebp, 7
20254
                add     ebp, edx
20255
                mov     eax, [esp+14h]
20256
                mov     [esp+18h], ebp
20257
                mov     ecx, [esp+0Ch]
20258
                mov     edx, [esp+1Ch]
20259
                mov     edi, ebp
20260
                mov     ebx, edx
20261
                xor     ebp, 0FFFFFFFFh
20262
                xor     ebx, 0FFFFFFFFh
20263
                and     ebp, ecx
20264
                and     ebx, [esp]
20265
                xor     ebp, [esp+8]
20266
                xor     ebx, edx
20267
                xor     ebp, [esp+10h]
20268
                xor     ebx, ebp
20269
                mov     ebp, edi
20270
                and     ebx, [esp+4]
20271
                and     ebp, [esp+8]
20272
                and     edi, edx
20273
                xor     ebp, ecx
20274
                xor     ebx, [esp+10h]
20275
                ror     eax, 0Bh
20276
                xor     ebp, edx
20277
                mov     edx, [esi]
20278
                and     ebp, [esp]
20279
                xor     ebx, edi
20280
                xor     ebp, ebx
20281
                lea     edx, [eax+edx+3B8F4898h]
20282
                ror     ebp, 7
20283
                add     ebp, edx
20284
                mov     eax, [esp+10h]
20285
                mov     [esp+14h], ebp
20286
                mov     ecx, [esp+8]
20287
                mov     edx, [esp+18h]
20288
                mov     edi, ebp
20289
                mov     ebx, edx
20290
                xor     ebp, 0FFFFFFFFh
20291
                xor     ebx, 0FFFFFFFFh
20292
                and     ebp, ecx
20293
                and     ebx, [esp+1Ch]
20294
                xor     ebp, [esp+4]
20295
                xor     ebx, edx
20296
                xor     ebp, [esp+0Ch]
20297
                xor     ebx, ebp
20298
                mov     ebp, edi
20299
                and     ebx, [esp]
20300
                and     ebp, [esp+4]
20301
                and     edi, edx
20302
                xor     ebp, ecx
20303
                xor     ebx, [esp+0Ch]
20304
                ror     eax, 0Bh
20305
                xor     ebp, edx
20306
                mov     edx, [esi+38h]
20307
                and     ebp, [esp+1Ch]
20308
                xor     ebx, edi
20309
                xor     ebp, ebx
20310
                lea     edx, [eax+edx+6B4BB9AFh]
20311
                ror     ebp, 7
20312
                add     ebp, edx
20313
                mov     eax, [esp+0Ch]
20314
                mov     [esp+10h], ebp
20315
                mov     ecx, [esp+4]
20316
                mov     edx, [esp+14h]
20317
                mov     edi, ebp
20318
                mov     ebx, edx
20319
                xor     ebp, 0FFFFFFFFh
20320
                xor     ebx, 0FFFFFFFFh
20321
                and     ebp, ecx
20322
                and     ebx, [esp+18h]
20323
                xor     ebp, [esp]
20324
                xor     ebx, edx
20325
                xor     ebp, [esp+8]
20326
                xor     ebx, ebp
20327
                mov     ebp, edi
20328
                and     ebx, [esp+1Ch]
20329
                and     ebp, [esp]
20330
                and     edi, edx
20331
                xor     ebp, ecx
20332
                xor     ebx, [esp+8]
20333
                ror     eax, 0Bh
20334
                xor     ebp, edx
20335
                mov     edx, [esi+8]
20336
                and     ebp, [esp+18h]
20337
                xor     ebx, edi
20338
                xor     ebp, ebx
20339
                lea     edx, [eax+edx-3B4017E5h]
20340
                ror     ebp, 7
20341
                add     ebp, edx
20342
                mov     eax, [esp+8]
20343
                mov     [esp+0Ch], ebp
20344
                mov     ecx, [esp]
20345
                mov     edx, [esp+10h]
20346
                mov     edi, ebp
20347
                mov     ebx, edx
20348
                xor     ebp, 0FFFFFFFFh
20349
                xor     ebx, 0FFFFFFFFh
20350
                and     ebp, ecx
20351
                and     ebx, [esp+14h]
20352
                xor     ebp, [esp+1Ch]
20353
                xor     ebx, edx
20354
                xor     ebp, [esp+4]
20355
                xor     ebx, ebp
20356
                mov     ebp, edi
20357
                and     ebx, [esp+18h]
20358
                and     ebp, [esp+1Ch]
20359
                and     edi, edx
20360
                xor     ebp, ecx
20361
                xor     ebx, [esp+4]
20362
                ror     eax, 0Bh
20363
                xor     ebp, edx
20364
                mov     edx, [esi+1Ch]
20365
                and     ebp, [esp+14h]
20366
                xor     ebx, edi
20367
                xor     ebp, ebx
20368
                lea     edx, [eax+edx+66282193h]
20369
                ror     ebp, 7
20370
                add     ebp, edx
20371
                mov     eax, [esp+4]
20372
                mov     [esp+8], ebp
20373
                mov     ecx, [esp+1Ch]
20374
                mov     edx, [esp+0Ch]
20375
                mov     edi, ebp
20376
                mov     ebx, edx
20377
                xor     ebp, 0FFFFFFFFh
20378
                xor     ebx, 0FFFFFFFFh
20379
                and     ebp, ecx
20380
                and     ebx, [esp+10h]
20381
                xor     ebp, [esp+18h]
20382
                xor     ebx, edx
20383
                xor     ebp, [esp]
20384
                xor     ebx, ebp
20385
                mov     ebp, edi
20386
                and     ebx, [esp+14h]
20387
                and     ebp, [esp+18h]
20388
                and     edi, edx
20389
                xor     ebp, ecx
20390
                xor     ebx, [esp]
20391
                ror     eax, 0Bh
20392
                xor     ebp, edx
20393
                mov     edx, [esi+70h]
20394
                and     ebp, [esp+10h]
20395
                xor     ebx, edi
20396
                xor     ebp, ebx
20397
                lea     edx, [eax+edx+61D809CCh]
20398
                ror     ebp, 7
20399
                add     ebp, edx
20400
                mov     eax, [esp]
20401
                mov     [esp+4], ebp
20402
                mov     ecx, [esp+18h]
20403
                mov     edx, [esp+8]
20404
                mov     edi, ebp
20405
                mov     ebx, edx
20406
                xor     ebp, 0FFFFFFFFh
20407
                xor     ebx, 0FFFFFFFFh
20408
                and     ebp, ecx
20409
                and     ebx, [esp+0Ch]
20410
                xor     ebp, [esp+14h]
20411
                xor     ebx, edx
20412
                xor     ebp, [esp+1Ch]
20413
                xor     ebx, ebp
20414
                mov     ebp, edi
20415
                and     ebx, [esp+10h]
20416
                and     ebp, [esp+14h]
20417
                and     edi, edx
20418
                xor     ebp, ecx
20419
                xor     ebx, [esp+1Ch]
20420
                ror     eax, 0Bh
20421
                xor     ebp, edx
20422
                mov     edx, [esi+5Ch]
20423
                and     ebp, [esp+0Ch]
20424
                xor     ebx, edi
20425
                xor     ebp, ebx
20426
                lea     edx, [eax+edx-4DE566Fh]
20427
                ror     ebp, 7
20428
                add     ebp, edx
20429
                mov     eax, [esp+1Ch]
20430
                mov     [esp], ebp
20431
                mov     ecx, [esp+14h]
20432
                mov     edx, [esp+4]
20433
                mov     edi, ebp
20434
                mov     ebx, edx
20435
                xor     ebp, 0FFFFFFFFh
20436
                xor     ebx, 0FFFFFFFFh
20437
                and     ebp, ecx
20438
                and     ebx, [esp+8]
20439
                xor     ebp, [esp+10h]
20440
                xor     ebx, edx
20441
                xor     ebp, [esp+18h]
20442
                xor     ebx, ebp
20443
                mov     ebp, edi
20444
                and     ebx, [esp+0Ch]
20445
                and     ebp, [esp+10h]
20446
                and     edi, edx
20447
                xor     ebp, ecx
20448
                xor     ebx, [esp+18h]
20449
                ror     eax, 0Bh
20450
                xor     ebp, edx
20451
                mov     edx, [esi+68h]
20452
                and     ebp, [esp+8]
20453
                xor     ebx, edi
20454
                xor     ebp, ebx
20455
                lea     edx, [eax+edx+487CAC60h]
20456
                ror     ebp, 7
20457
                add     ebp, edx
20458
                mov     eax, [esp+18h]
20459
                mov     [esp+1Ch], ebp
20460
                mov     ecx, [esp+10h]
20461
                mov     edx, [esp]
20462
                mov     edi, ebp
20463
                mov     ebx, edx
20464
                xor     ebp, 0FFFFFFFFh
20465
                xor     ebx, 0FFFFFFFFh
20466
                and     ebp, ecx
20467
                and     ebx, [esp+4]
20468
                xor     ebp, [esp+0Ch]
20469
                xor     ebx, edx
20470
                xor     ebp, [esp+14h]
20471
                xor     ebx, ebp
20472
                mov     ebp, edi
20473
                and     ebx, [esp+8]
20474
                and     ebp, [esp+0Ch]
20475
                and     edi, edx
20476
                xor     ebp, ecx
20477
                xor     ebx, [esp+14h]
20478
                ror     eax, 0Bh
20479
                xor     ebp, edx
20480
                mov     edx, [esi+18h]
20481
                and     ebp, [esp+4]
20482
                xor     ebx, edi
20483
                xor     ebp, ebx
20484
                lea     edx, [eax+edx+5DEC8032h]
20485
                ror     ebp, 7
20486
                add     ebp, edx
20487
                mov     eax, [esp+14h]
20488
                mov     [esp+18h], ebp
20489
                mov     ecx, [esp+0Ch]
20490
                mov     edx, [esp+1Ch]
20491
                mov     edi, ebp
20492
                mov     ebx, edx
20493
                xor     ebp, 0FFFFFFFFh
20494
                xor     ebx, 0FFFFFFFFh
20495
                and     ebp, ecx
20496
                and     ebx, [esp]
20497
                xor     ebp, [esp+8]
20498
                xor     ebx, edx
20499
                xor     ebp, [esp+10h]
20500
                xor     ebx, ebp
20501
                mov     ebp, edi
20502
                and     ebx, [esp+4]
20503
                and     ebp, [esp+8]
20504
                and     edi, edx
20505
                xor     ebp, ecx
20506
                xor     ebx, [esp+10h]
20507
                ror     eax, 0Bh
20508
                xor     ebp, edx
20509
                mov     edx, [esi+78h]
20510
                and     ebp, [esp]
20511
                xor     ebx, edi
20512
                xor     ebp, ebx
20513
                lea     edx, [eax+edx-107BA2A3h]
20514
                ror     ebp, 7
20515
                add     ebp, edx
20516
                mov     eax, [esp+10h]
20517
                mov     [esp+14h], ebp
20518
                mov     ecx, [esp+8]
20519
                mov     edx, [esp+18h]
20520
                mov     edi, ebp
20521
                mov     ebx, edx
20522
                xor     ebp, 0FFFFFFFFh
20523
                xor     ebx, 0FFFFFFFFh
20524
                and     ebp, ecx
20525
                and     ebx, [esp+1Ch]
20526
                xor     ebp, [esp+4]
20527
                xor     ebx, edx
20528
                xor     ebp, [esp+0Ch]
20529
                xor     ebx, ebp
20530
                mov     ebp, edi
20531
                and     ebx, [esp]
20532
                and     ebp, [esp+4]
20533
                and     edi, edx
20534
                xor     ebp, ecx
20535
                xor     ebx, [esp+0Ch]
20536
                ror     eax, 0Bh
20537
                xor     ebp, edx
20538
                mov     edx, [esi+50h]
20539
                and     ebp, [esp+1Ch]
20540
                xor     ebx, edi
20541
                xor     ebp, ebx
20542
                lea     edx, [eax+edx-167A8A4Fh]
20543
                ror     ebp, 7
20544
                add     ebp, edx
20545
                mov     eax, [esp+0Ch]
20546
                mov     [esp+10h], ebp
20547
                mov     ecx, [esp+4]
20548
                mov     edx, [esp+14h]
20549
                mov     edi, ebp
20550
                mov     ebx, edx
20551
                xor     ebp, 0FFFFFFFFh
20552
                xor     ebx, 0FFFFFFFFh
20553
                and     ebp, ecx
20554
                and     ebx, [esp+18h]
20555
                xor     ebp, [esp]
20556
                xor     ebx, edx
20557
                xor     ebp, [esp+8]
20558
                xor     ebx, ebp
20559
                mov     ebp, edi
20560
                and     ebx, [esp+1Ch]
20561
                and     ebp, [esp]
20562
                and     edi, edx
20563
                xor     ebp, ecx
20564
                xor     ebx, [esp+8]
20565
                ror     eax, 0Bh
20566
                xor     ebp, edx
20567
                mov     edx, [esi+48h]
20568
                and     ebp, [esp+18h]
20569
                xor     ebx, edi
20570
                xor     ebp, ebx
20571
                lea     edx, [eax+edx-23D9DCFEh]
20572
                ror     ebp, 7
20573
                add     ebp, edx
20574
                mov     eax, [esp+8]
20575
                mov     [esp+0Ch], ebp
20576
                mov     ecx, [esp]
20577
                mov     edx, [esp+10h]
20578
                mov     edi, ebp
20579
                mov     ebx, edx
20580
                xor     ebp, 0FFFFFFFFh
20581
                xor     ebx, 0FFFFFFFFh
20582
                and     ebp, ecx
20583
                and     ebx, [esp+14h]
20584
                xor     ebp, [esp+1Ch]
20585
                xor     ebx, edx
20586
                xor     ebp, [esp+4]
20587
                xor     ebx, ebp
20588
                mov     ebp, edi
20589
                and     ebx, [esp+18h]
20590
                and     ebp, [esp+1Ch]
20591
                and     edi, edx
20592
                xor     ebp, ecx
20593
                xor     ebx, [esp+4]
20594
                ror     eax, 0Bh
20595
                xor     ebp, edx
20596
                mov     edx, [esi+64h]
20597
                and     ebp, [esp+14h]
20598
                xor     ebx, edi
20599
                xor     ebp, ebx
20600
                lea     edx, [eax+edx-149AE478h]
20601
                ror     ebp, 7
20602
                add     ebp, edx
20603
                mov     eax, [esp+4]
20604
                mov     [esp+8], ebp
20605
                mov     ecx, [esp+1Ch]
20606
                mov     edx, [esp+0Ch]
20607
                mov     edi, ebp
20608
                mov     ebx, edx
20609
                xor     ebp, 0FFFFFFFFh
20610
                xor     ebx, 0FFFFFFFFh
20611
                and     ebp, ecx
20612
                and     ebx, [esp+10h]
20613
                xor     ebp, [esp+18h]
20614
                xor     ebx, edx
20615
                xor     ebp, [esp]
20616
                xor     ebx, ebp
20617
                mov     ebp, edi
20618
                and     ebx, [esp+14h]
20619
                and     ebp, [esp+18h]
20620
                and     edi, edx
20621
                xor     ebp, ecx
20622
                xor     ebx, [esp]
20623
                ror     eax, 0Bh
20624
                xor     ebp, edx
20625
                mov     edx, [esi+4Ch]
20626
                and     ebp, [esp+10h]
20627
                xor     ebx, edi
20628
                xor     ebp, ebx
20629
                lea     edx, [eax+edx+23893E81h]
20630
                ror     ebp, 7
20631
                add     ebp, edx
20632
                mov     eax, [esp]
20633
                mov     [esp+4], ebp
20634
                mov     ecx, [esp+18h]
20635
                mov     edx, [esp+8]
20636
                mov     edi, ebp
20637
                mov     ebx, edx
20638
                xor     ebp, 0FFFFFFFFh
20639
                xor     ebx, 0FFFFFFFFh
20640
                and     ebp, ecx
20641
                and     ebx, [esp+0Ch]
20642
                xor     ebp, [esp+14h]
20643
                xor     ebx, edx
20644
                xor     ebp, [esp+1Ch]
20645
                xor     ebx, ebp
20646
                mov     ebp, edi
20647
                and     ebx, [esp+10h]
20648
                and     ebp, [esp+14h]
20649
                and     edi, edx
20650
                xor     ebp, ecx
20651
                xor     ebx, [esp+1Ch]
20652
                ror     eax, 0Bh
20653
                xor     ebp, edx
20654
                mov     edx, [esi+0Ch]
20655
                and     ebp, [esp+0Ch]
20656
                xor     ebx, edi
20657
                xor     ebp, ebx
20658
                lea     edx, [eax+edx-2C69533Bh]
20659
                ror     ebp, 7
20660
                add     ebp, edx
20661
                mov     eax, [esp+1Ch]
20662
                mov     [esp], ebp
20663
                mov     ecx, [esp+14h]
20664
                mov     edx, [esp+4]
20665
                mov     edi, ebp
20666
                mov     ebx, edx
20667
                xor     ebp, 0FFFFFFFFh
20668
                xor     ebx, 0FFFFFFFFh
20669
                and     ebp, ecx
20670
                and     ebx, [esp+8]
20671
                xor     ebp, [esp+10h]
20672
                xor     ebx, edx
20673
                xor     ebp, [esp+18h]
20674
                xor     ebx, ebp
20675
                mov     ebp, edi
20676
                and     ebx, [esp+0Ch]
20677
                and     ebp, [esp+10h]
20678
                and     edi, edx
20679
                xor     ebp, ecx
20680
                xor     ebx, [esp+18h]
20681
                ror     eax, 0Bh
20682
                xor     ebp, edx
20683
                mov     edx, [esi+58h]
20684
                and     ebp, [esp+8]
20685
                xor     ebx, edi
20686
                xor     ebp, ebx
20687
                lea     edx, [eax+edx+0F6D6FF3h]
20688
                ror     ebp, 7
20689
                add     ebp, edx
20690
                mov     eax, [esp+18h]
20691
                mov     [esp+1Ch], ebp
20692
                mov     ecx, [esp+10h]
20693
                mov     edx, [esp]
20694
                mov     edi, ebp
20695
                mov     ebx, edx
20696
                xor     ebp, 0FFFFFFFFh
20697
                xor     ebx, 0FFFFFFFFh
20698
                and     ebp, ecx
20699
                and     ebx, [esp+4]
20700
                xor     ebp, [esp+0Ch]
20701
                xor     ebx, edx
20702
                xor     ebp, [esp+14h]
20703
                xor     ebx, ebp
20704
                mov     ebp, edi
20705
                and     ebx, [esp+8]
20706
                and     ebp, [esp+0Ch]
20707
                and     edi, edx
20708
                xor     ebp, ecx
20709
                xor     ebx, [esp+14h]
20710
                ror     eax, 0Bh
20711
                xor     ebp, edx
20712
                mov     edx, [esi+2Ch]
20713
                and     ebp, [esp+4]
20714
                xor     ebx, edi
20715
                xor     ebp, ebx
20716
                lea     edx, [eax+edx-7C0BBDC7h]
20717
                ror     ebp, 7
20718
                add     ebp, edx
20719
                mov     eax, [esp+14h]
20720
                mov     [esp+18h], ebp
20721
                mov     ecx, [esp+0Ch]
20722
                mov     edx, [esp+1Ch]
20723
                mov     edi, ebp
20724
                mov     ebx, edx
20725
                xor     ebp, 0FFFFFFFFh
20726
                xor     ebx, 0FFFFFFFFh
20727
                and     ebp, ecx
20728
                and     ebx, [esp]
20729
                xor     ebp, [esp+8]
20730
                xor     ebx, edx
20731
                xor     ebp, [esp+10h]
20732
                xor     ebx, ebp
20733
                mov     ebp, edi
20734
                and     ebx, [esp+4]
20735
                and     ebp, [esp+8]
20736
                and     edi, edx
20737
                xor     ebp, ecx
20738
                xor     ebx, [esp+10h]
20739
                ror     eax, 0Bh
20740
                xor     ebp, edx
20741
                mov     edx, [esi+7Ch]
20742
                and     ebp, [esp]
20743
                xor     ebx, edi
20744
                xor     ebp, ebx
20745
                lea     edx, [eax+edx+2E0B4482h]
20746
                ror     ebp, 7
20747
                add     ebp, edx
20748
                mov     eax, [esp+10h]
20749
                mov     [esp+14h], ebp
20750
                mov     ecx, [esp+8]
20751
                mov     edx, [esp+18h]
20752
                mov     edi, ebp
20753
                mov     ebx, edx
20754
                xor     ebp, 0FFFFFFFFh
20755
                xor     ebx, 0FFFFFFFFh
20756
                and     ebp, ecx
20757
                and     ebx, [esp+1Ch]
20758
                xor     ebp, [esp+4]
20759
                xor     ebx, edx
20760
                xor     ebp, [esp+0Ch]
20761
                xor     ebx, ebp
20762
                mov     ebp, edi
20763
                and     ebx, [esp]
20764
                and     ebp, [esp+4]
20765
                and     edi, edx
20766
                xor     ebp, ecx
20767
                xor     ebx, [esp+0Ch]
20768
                ror     eax, 0Bh
20769
                xor     ebp, edx
20770
                mov     edx, [esi+54h]
20771
                and     ebp, [esp+1Ch]
20772
                xor     ebx, edi
20773
                xor     ebp, ebx
20774
                lea     edx, [eax+edx-5B7BDFFCh]
20775
                ror     ebp, 7
20776
                add     ebp, edx
20777
                mov     eax, [esp+0Ch]
20778
                mov     [esp+10h], ebp
20779
                mov     ecx, [esp+4]
20780
                mov     edx, [esp+14h]
20781
                mov     edi, ebp
20782
                mov     ebx, edx
20783
                xor     ebp, 0FFFFFFFFh
20784
                xor     ebx, 0FFFFFFFFh
20785
                and     ebp, ecx
20786
                and     ebx, [esp+18h]
20787
                xor     ebp, [esp]
20788
                xor     ebx, edx
20789
                xor     ebp, [esp+8]
20790
                xor     ebx, ebp
20791
                mov     ebp, edi
20792
                and     ebx, [esp+1Ch]
20793
                and     ebp, [esp]
20794
                and     edi, edx
20795
                xor     ebp, ecx
20796
                xor     ebx, [esp+8]
20797
                ror     eax, 0Bh
20798
                xor     ebp, edx
20799
                mov     edx, [esi+20h]
20800
                and     ebp, [esp+18h]
20801
                xor     ebx, edi
20802
                xor     ebp, ebx
20803
                lea     edx, [eax+edx+69C8F04Ah]
20804
                ror     ebp, 7
20805
                add     ebp, edx
20806
                mov     eax, [esp+8]
20807
                mov     [esp+0Ch], ebp
20808
                mov     ecx, [esp]
20809
                mov     edx, [esp+10h]
20810
                mov     edi, ebp
20811
                mov     ebx, edx
20812
                xor     ebp, 0FFFFFFFFh
20813
                xor     ebx, 0FFFFFFFFh
20814
                and     ebp, ecx
20815
                and     ebx, [esp+14h]
20816
                xor     ebp, [esp+1Ch]
20817
                xor     ebx, edx
20818
                xor     ebp, [esp+4]
20819
                xor     ebx, ebp
20820
                mov     ebp, edi
20821
                and     ebx, [esp+18h]
20822
                and     ebp, [esp+1Ch]
20823
                and     edi, edx
20824
                xor     ebp, ecx
20825
                xor     ebx, [esp+4]
20826
                ror     eax, 0Bh
20827
                xor     ebp, edx
20828
                mov     edx, [esi+6Ch]
20829
                and     ebp, [esp+14h]
20830
                xor     ebx, edi
20831
                xor     ebp, ebx
20832
                lea     edx, [eax+edx-61E064A2h]
20833
                ror     ebp, 7
20834
                add     ebp, edx
20835
                mov     eax, [esp+4]
20836
                mov     [esp+8], ebp
20837
                mov     ecx, [esp+1Ch]
20838
                mov     edx, [esp+0Ch]
20839
                mov     edi, ebp
20840
                mov     ebx, edx
20841
                xor     ebp, 0FFFFFFFFh
20842
                xor     ebx, 0FFFFFFFFh
20843
                and     ebp, ecx
20844
                and     ebx, [esp+10h]
20845
                xor     ebp, [esp+18h]
20846
                xor     ebx, edx
20847
                xor     ebp, [esp]
20848
                xor     ebx, ebp
20849
                mov     ebp, edi
20850
                and     ebx, [esp+14h]
20851
                and     ebp, [esp+18h]
20852
                and     edi, edx
20853
                xor     ebp, ecx
20854
                xor     ebx, [esp]
20855
                ror     eax, 0Bh
20856
                xor     ebp, edx
20857
                mov     edx, [esi+30h]
20858
                and     ebp, [esp+10h]
20859
                xor     ebx, edi
20860
                xor     ebp, ebx
20861
                lea     edx, [eax+edx+21C66842h]
20862
                ror     ebp, 7
20863
                add     ebp, edx
20864
                mov     eax, [esp]
20865
                mov     [esp+4], ebp
20866
                mov     ecx, [esp+18h]
20867
                mov     edx, [esp+8]
20868
                mov     edi, ebp
20869
                mov     ebx, edx
20870
                xor     ebp, 0FFFFFFFFh
20871
                xor     ebx, 0FFFFFFFFh
20872
                and     ebp, ecx
20873
                and     ebx, [esp+0Ch]
20874
                xor     ebp, [esp+14h]
20875
                xor     ebx, edx
20876
                xor     ebp, [esp+1Ch]
20877
                xor     ebx, ebp
20878
                mov     ebp, edi
20879
                and     ebx, [esp+10h]
20880
                and     ebp, [esp+14h]
20881
                and     edi, edx
20882
                xor     ebp, ecx
20883
                xor     ebx, [esp+1Ch]
20884
                ror     eax, 0Bh
20885
                xor     ebp, edx
20886
                mov     edx, [esi+24h]
20887
                and     ebp, [esp+0Ch]
20888
                xor     ebx, edi
20889
                xor     ebp, ebx
20890
                lea     edx, [eax+edx-9169366h]
20891
                ror     ebp, 7
20892
                add     ebp, edx
20893
                mov     eax, [esp+1Ch]
20894
                mov     [esp], ebp
20895
                mov     ecx, [esp+14h]
20896
                mov     edx, [esp+4]
20897
                mov     edi, ebp
20898
                mov     ebx, edx
20899
                xor     ebp, 0FFFFFFFFh
20900
                xor     ebx, 0FFFFFFFFh
20901
                and     ebp, ecx
20902
                and     ebx, [esp+8]
20903
                xor     ebp, [esp+10h]
20904
                xor     ebx, edx
20905
                xor     ebp, [esp+18h]
20906
                xor     ebx, ebp
20907
                mov     ebp, edi
20908
                and     ebx, [esp+0Ch]
20909
                and     ebp, [esp+10h]
20910
                and     edi, edx
20911
                xor     ebp, ecx
20912
                xor     ebx, [esp+18h]
20913
                ror     eax, 0Bh
20914
                xor     ebp, edx
20915
                mov     edx, [esi+4]
20916
                and     ebp, [esp+8]
20917
                xor     ebx, edi
20918
                xor     ebp, ebx
20919
                lea     edx, [eax+edx+670C9C61h]
20920
                ror     ebp, 7
20921
                add     ebp, edx
20922
                mov     eax, [esp+18h]
20923
                mov     [esp+1Ch], ebp
20924
                mov     ecx, [esp+10h]
20925
                mov     edx, [esp]
20926
                mov     edi, ebp
20927
                mov     ebx, edx
20928
                xor     ebp, 0FFFFFFFFh
20929
                xor     ebx, 0FFFFFFFFh
20930
                and     ebp, ecx
20931
                and     ebx, [esp+4]
20932
                xor     ebp, [esp+0Ch]
20933
                xor     ebx, edx
20934
                xor     ebp, [esp+14h]
20935
                xor     ebx, ebp
20936
                mov     ebp, edi
20937
                and     ebx, [esp+8]
20938
                and     ebp, [esp+0Ch]
20939
                and     edi, edx
20940
                xor     ebp, ecx
20941
                xor     ebx, [esp+14h]
20942
                ror     eax, 0Bh
20943
                xor     ebp, edx
20944
                mov     edx, [esi+74h]
20945
                and     ebp, [esp+4]
20946
                xor     ebx, edi
20947
                xor     ebp, ebx
20948
                lea     edx, [eax+edx-542C7710h]
20949
                ror     ebp, 7
20950
                add     ebp, edx
20951
                mov     eax, [esp+14h]
20952
                mov     [esp+18h], ebp
20953
                mov     ecx, [esp+0Ch]
20954
                mov     edx, [esp+1Ch]
20955
                mov     edi, ebp
20956
                mov     ebx, edx
20957
                xor     ebp, 0FFFFFFFFh
20958
                xor     ebx, 0FFFFFFFFh
20959
                and     ebp, ecx
20960
                and     ebx, [esp]
20961
                xor     ebp, [esp+8]
20962
                xor     ebx, edx
20963
                xor     ebp, [esp+10h]
20964
                xor     ebx, ebp
20965
                mov     ebp, edi
20966
                and     ebx, [esp+4]
20967
                and     ebp, [esp+8]
20968
                and     edi, edx
20969
                xor     ebp, ecx
20970
                xor     ebx, [esp+10h]
20971
                ror     eax, 0Bh
20972
                xor     ebp, edx
20973
                mov     edx, [esi+14h]
20974
                and     ebp, [esp]
20975
                xor     ebx, edi
20976
                xor     ebp, ebx
20977
                lea     edx, [eax+edx+6A51A0D2h]
20978
                ror     ebp, 7
20979
                add     ebp, edx
20980
                mov     eax, [esp+10h]
20981
                mov     [esp+14h], ebp
20982
                mov     ecx, [esp+8]
20983
                mov     edx, [esp+18h]
20984
                mov     edi, ebp
20985
                mov     ebx, edx
20986
                xor     ebp, 0FFFFFFFFh
20987
                xor     ebx, 0FFFFFFFFh
20988
                and     ebp, ecx
20989
                and     ebx, [esp+1Ch]
20990
                xor     ebp, [esp+4]
20991
                xor     ebx, edx
20992
                xor     ebp, [esp+0Ch]
20993
                xor     ebx, ebp
20994
                mov     ebp, edi
20995
                and     ebx, [esp]
20996
                and     ebp, [esp+4]
20997
                and     edi, edx
20998
                xor     ebp, ecx
20999
                xor     ebx, [esp+0Ch]
21000
                ror     eax, 0Bh
21001
                xor     ebp, edx
21002
                mov     edx, [esi+3Ch]
21003
                and     ebp, [esp+1Ch]
21004
                xor     ebx, edi
21005
                xor     ebp, ebx
21006
                lea     edx, [eax+edx-27ABD098h]
21007
                ror     ebp, 7
21008
                add     ebp, edx
21009
                mov     eax, [esp+0Ch]
21010
                mov     [esp+10h], ebp
21011
                mov     ecx, [esp+4]
21012
                mov     edx, [esp+14h]
21013
                mov     edi, ebp
21014
                mov     ebx, edx
21015
                xor     ebp, 0FFFFFFFFh
21016
                xor     ebx, 0FFFFFFFFh
21017
                and     ebp, ecx
21018
                and     ebx, [esp+18h]
21019
                xor     ebp, [esp]
21020
                xor     ebx, edx
21021
                xor     ebp, [esp+8]
21022
                xor     ebx, ebp
21023
                mov     ebp, edi
21024
                and     ebx, [esp+1Ch]
21025
                and     ebp, [esp]
21026
                and     edi, edx
21027
                xor     ebp, ecx
21028
                xor     ebx, [esp+8]
21029
                ror     eax, 0Bh
21030
                xor     ebp, edx
21031
                mov     edx, [esi+44h]
21032
                and     ebp, [esp+18h]
21033
                xor     ebx, edi
21034
                xor     ebp, ebx
21035
                lea     edx, [eax+edx-69F058D8h]
21036
                ror     ebp, 7
21037
                add     ebp, edx
21038
                mov     eax, [esp+8]
21039
                mov     [esp+0Ch], ebp
21040
                mov     ecx, [esp]
21041
                mov     edx, [esp+10h]
21042
                mov     edi, ebp
21043
                mov     ebx, edx
21044
                xor     ebp, 0FFFFFFFFh
21045
                xor     ebx, 0FFFFFFFFh
21046
                and     ebp, ecx
21047
                and     ebx, [esp+14h]
21048
                xor     ebp, [esp+1Ch]
21049
                xor     ebx, edx
21050
                xor     ebp, [esp+4]
21051
                xor     ebx, ebp
21052
                mov     ebp, edi
21053
                and     ebx, [esp+18h]
21054
                and     ebp, [esp+1Ch]
21055
                and     edi, edx
21056
                xor     ebp, ecx
21057
                xor     ebx, [esp+4]
21058
                ror     eax, 0Bh
21059
                xor     ebp, edx
21060
                mov     edx, [esi+28h]
21061
                and     ebp, [esp+14h]
21062
                xor     ebx, edi
21063
                xor     ebp, ebx
21064
                lea     edx, [eax+edx-54AECC5Dh]
21065
                ror     ebp, 7
21066
                add     ebp, edx
21067
                mov     eax, [esp+4]
21068
                mov     [esp+8], ebp
21069
                mov     ecx, [esp+1Ch]
21070
                mov     edx, [esp+0Ch]
21071
                mov     edi, ebp
21072
                mov     ebx, edx
21073
                xor     ebp, 0FFFFFFFFh
21074
                xor     ebx, 0FFFFFFFFh
21075
                and     ebp, ecx
21076
                and     ebx, [esp+10h]
21077
                xor     ebp, [esp+18h]
21078
                xor     ebx, edx
21079
                xor     ebp, [esp]
21080
                xor     ebx, ebp
21081
                mov     ebp, edi
21082
                and     ebx, [esp+14h]
21083
                and     ebp, [esp+18h]
21084
                and     edi, edx
21085
                xor     ebp, ecx
21086
                xor     ebx, [esp]
21087
                ror     eax, 0Bh
21088
                xor     ebp, edx
21089
                mov     edx, [esi+40h]
21090
                and     ebp, [esp+10h]
21091
                xor     ebx, edi
21092
                xor     ebp, ebx
21093
                lea     edx, [eax+edx+6EEF0B6Ch]
21094
                ror     ebp, 7
21095
                add     ebp, edx
21096
                mov     eax, [esp]
21097
                mov     [esp+4], ebp
21098
                mov     ecx, [esp+18h]
21099
                mov     edx, [esp+8]
21100
                mov     edi, ebp
21101
                mov     ebx, edx
21102
                xor     ebp, 0FFFFFFFFh
21103
                xor     ebx, 0FFFFFFFFh
21104
                and     ebp, ecx
21105
                and     ebx, [esp+0Ch]
21106
                xor     ebp, [esp+14h]
21107
                xor     ebx, edx
21108
                xor     ebp, [esp+1Ch]
21109
                xor     ebx, ebp
21110
                mov     ebp, edi
21111
                and     ebx, [esp+10h]
21112
                and     ebp, [esp+14h]
21113
                and     edi, edx
21114
                xor     ebp, ecx
21115
                xor     ebx, [esp+1Ch]
21116
                ror     eax, 0Bh
21117
                xor     ebp, edx
21118
                mov     edx, [esi+34h]
21119
                and     ebp, [esp+0Ch]
21120
                xor     ebx, edi
21121
                xor     ebp, ebx
21122
                lea     edx, [eax+edx+137A3BE4h]
21123
                ror     ebp, 7
21124
                add     ebp, edx
21125
                mov     eax, [esp+1Ch]
21126
                mov     [esp], ebp
21127
                nop
21128
                nop
21129
                nop
21130
                nop
21131
                mov     ebx, [esp+0Ch]
21132
                mov     ecx, [esp+10h]
21133
                and     ebp, ebx
21134
                mov     edx, [esp+14h]
21135
                and     ebx, ecx
21136
                mov     edi, [esp+18h]
21137
                and     ecx, edx
21138
                xor     edx, 0FFFFFFFFh
21139
                and     ebx, edi
21140
                and     edi, [esp+8]
21141
                xor     ebx, edx
21142
                ror     eax, 0Bh
21143
                xor     ecx, edi
21144
                mov     edi, [esi+6Ch]
21145
                and     ebx, [esp+4]
21146
                xor     ebp, ecx
21147
                lea     edi, [eax+edi-45C40FB0h]
21148
                xor     ebp, ebx
21149
                ror     ebp, 7
21150
                add     ebp, edi
21151
                mov     eax, [esp+18h]
21152
                mov     [esp+1Ch], ebp
21153
                mov     ebx, [esp+8]
21154
                mov     ecx, [esp+0Ch]
21155
                and     ebp, ebx
21156
                mov     edx, [esp+10h]
21157
                and     ebx, ecx
21158
                mov     edi, [esp+14h]
21159
                and     ecx, edx
21160
                xor     edx, 0FFFFFFFFh
21161
                and     ebx, edi
21162
                and     edi, [esp+4]
21163
                xor     ebx, edx
21164
                ror     eax, 0Bh
21165
                xor     ecx, edi
21166
                mov     edi, [esi+0Ch]
21167
                and     ebx, [esp]
21168
                xor     ebp, ecx
21169
                lea     edi, [eax+edi+7EFB2A98h]
21170
                xor     ebp, ebx
21171
                ror     ebp, 7
21172
                add     ebp, edi
21173
                mov     eax, [esp+14h]
21174
                mov     [esp+18h], ebp
21175
                mov     ebx, [esp+4]
21176
                mov     ecx, [esp+8]
21177
                and     ebp, ebx
21178
                mov     edx, [esp+0Ch]
21179
                and     ebx, ecx
21180
                mov     edi, [esp+10h]
21181
                and     ecx, edx
21182
                xor     edx, 0FFFFFFFFh
21183
                and     ebx, edi
21184
                and     edi, [esp]
21185
                xor     ebx, edx
21186
                ror     eax, 0Bh
21187
                xor     ecx, edi
21188
                mov     edi, [esi+54h]
21189
                and     ebx, [esp+1Ch]
21190
                xor     ebp, ecx
21191
                lea     edi, [eax+edi-5E0E9AE3h]
21192
                xor     ebp, ebx
21193
                ror     ebp, 7
21194
                add     ebp, edi
21195
                mov     eax, [esp+10h]
21196
                mov     [esp+14h], ebp
21197
                mov     ebx, [esp]
21198
                mov     ecx, [esp+4]
21199
                and     ebp, ebx
21200
                mov     edx, [esp+8]
21201
                and     ebx, ecx
21202
                mov     edi, [esp+0Ch]
21203
                and     ecx, edx
21204
                xor     edx, 0FFFFFFFFh
21205
                and     ebx, edi
21206
                and     edi, [esp+1Ch]
21207
                xor     ebx, edx
21208
                ror     eax, 0Bh
21209
                xor     ecx, edi
21210
                mov     edi, [esi+68h]
21211
                and     ebx, [esp+18h]
21212
                xor     ebp, ecx
21213
                lea     edi, [eax+edi+39AF0176h]
21214
                xor     ebp, ebx
21215
                ror     ebp, 7
21216
                add     ebp, edi
21217
                mov     eax, [esp+0Ch]
21218
                mov     [esp+10h], ebp
21219
                mov     ebx, [esp+1Ch]
21220
                mov     ecx, [esp]
21221
                and     ebp, ebx
21222
                mov     edx, [esp+4]
21223
                and     ebx, ecx
21224
                mov     edi, [esp+8]
21225
                and     ecx, edx
21226
                xor     edx, 0FFFFFFFFh
21227
                and     ebx, edi
21228
                and     edi, [esp+18h]
21229
                xor     ebx, edx
21230
                ror     eax, 0Bh
21231
                xor     ecx, edi
21232
                mov     edi, [esi+44h]
21233
                and     ebx, [esp+14h]
21234
                xor     ebp, ecx
21235
                lea     edi, [eax+edi+66CA593Eh]
21236
                xor     ebp, ebx
21237
                ror     ebp, 7
21238
                add     ebp, edi
21239
                mov     eax, [esp+8]
21240
                mov     [esp+0Ch], ebp
21241
                mov     ebx, [esp+18h]
21242
                mov     ecx, [esp+1Ch]
21243
                and     ebp, ebx
21244
                mov     edx, [esp]
21245
                and     ebx, ecx
21246
                mov     edi, [esp+4]
21247
                and     ecx, edx
21248
                xor     edx, 0FFFFFFFFh
21249
                and     ebx, edi
21250
                and     edi, [esp+14h]
21251
                xor     ebx, edx
21252
                ror     eax, 0Bh
21253
                xor     ecx, edi
21254
                mov     edi, [esi+2Ch]
21255
                and     ebx, [esp+10h]
21256
                xor     ebp, ecx
21257
                lea     edi, [eax+edi-7DBCF178h]
21258
                xor     ebp, ebx
21259
                ror     ebp, 7
21260
                add     ebp, edi
21261
                mov     eax, [esp+4]
21262
                mov     [esp+8], ebp
21263
                mov     ebx, [esp+14h]
21264
                mov     ecx, [esp+18h]
21265
                and     ebp, ebx
21266
                mov     edx, [esp+1Ch]
21267
                and     ebx, ecx
21268
                mov     edi, [esp]
21269
                and     ecx, edx
21270
                xor     edx, 0FFFFFFFFh
21271
                and     ebx, edi
21272
                and     edi, [esp+10h]
21273
                xor     ebx, edx
21274
                ror     eax, 0Bh
21275
                xor     ecx, edi
21276
                mov     edi, [esi+50h]
21277
                and     ebx, [esp+0Ch]
21278
                xor     ebp, ecx
21279
                lea     edi, [eax+edi-731179E7h]
21280
                xor     ebp, ebx
21281
                ror     ebp, 7
21282
                add     ebp, edi
21283
                mov     eax, [esp]
21284
                mov     [esp+4], ebp
21285
                mov     ebx, [esp+10h]
21286
                mov     ecx, [esp+14h]
21287
                and     ebp, ebx
21288
                mov     edx, [esp+18h]
21289
                and     ebx, ecx
21290
                mov     edi, [esp+1Ch]
21291
                and     ecx, edx
21292
                xor     edx, 0FFFFFFFFh
21293
                and     ebx, edi
21294
                and     edi, [esp+0Ch]
21295
                xor     ebx, edx
21296
                ror     eax, 0Bh
21297
                xor     ecx, edi
21298
                mov     edi, [esi+74h]
21299
                and     ebx, [esp+8]
21300
                xor     ebp, ecx
21301
                lea     edi, [eax+edi+456F9FB4h]
21302
                xor     ebp, ebx
21303
                ror     ebp, 7
21304
                add     ebp, edi
21305
                mov     eax, [esp+1Ch]
21306
                mov     [esp], ebp
21307
                mov     ebx, [esp+0Ch]
21308
                mov     ecx, [esp+10h]
21309
                and     ebp, ebx
21310
                mov     edx, [esp+14h]
21311
                and     ebx, ecx
21312
                mov     edi, [esp+18h]
21313
                and     ecx, edx
21314
                xor     edx, 0FFFFFFFFh
21315
                and     ebx, edi
21316
                and     edi, [esp+8]
21317
                xor     ebx, edx
21318
                ror     eax, 0Bh
21319
                xor     ecx, edi
21320
                mov     edi, [esi+4Ch]
21321
                and     ebx, [esp+4]
21322
                xor     ebp, ecx
21323
                lea     edi, [eax+edi+7D84A5C3h]
21324
                xor     ebp, ebx
21325
                ror     ebp, 7
21326
                add     ebp, edi
21327
                mov     eax, [esp+18h]
21328
                mov     [esp+1Ch], ebp
21329
                mov     ebx, [esp+8]
21330
                mov     ecx, [esp+0Ch]
21331
                and     ebp, ebx
21332
                mov     edx, [esp+10h]
21333
                and     ebx, ecx
21334
                mov     edi, [esp+14h]
21335
                and     ecx, edx
21336
                xor     edx, 0FFFFFFFFh
21337
                and     ebx, edi
21338
                and     edi, [esp+4]
21339
                xor     ebx, edx
21340
                ror     eax, 0Bh
21341
                xor     ecx, edi
21342
                mov     edi, [esi]
21343
                and     ebx, [esp]
21344
                xor     ebp, ecx
21345
                lea     edi, [eax+edi+3B8B5EBEh]
21346
                xor     ebp, ebx
21347
                ror     ebp, 7
21348
                add     ebp, edi
21349
                mov     eax, [esp+14h]
21350
                mov     [esp+18h], ebp
21351
                mov     ebx, [esp+4]
21352
                mov     ecx, [esp+8]
21353
                and     ebp, ebx
21354
                mov     edx, [esp+0Ch]
21355
                and     ebx, ecx
21356
                mov     edi, [esp+10h]
21357
                and     ecx, edx
21358
                xor     edx, 0FFFFFFFFh
21359
                and     ebx, edi
21360
                and     edi, [esp]
21361
                xor     ebx, edx
21362
                ror     eax, 0Bh
21363
                xor     ecx, edi
21364
                mov     edi, [esi+30h]
21365
                and     ebx, [esp+1Ch]
21366
                xor     ebp, ecx
21367
                lea     edi, [eax+edi-1F908A28h]
21368
                xor     ebp, ebx
21369
                ror     ebp, 7
21370
                add     ebp, edi
21371
                mov     eax, [esp+10h]
21372
                mov     [esp+14h], ebp
21373
                mov     ebx, [esp]
21374
                mov     ecx, [esp+4]
21375
                and     ebp, ebx
21376
                mov     edx, [esp+8]
21377
                and     ebx, ecx
21378
                mov     edi, [esp+0Ch]
21379
                and     ecx, edx
21380
                xor     edx, 0FFFFFFFFh
21381
                and     ebx, edi
21382
                and     edi, [esp+1Ch]
21383
                xor     ebx, edx
21384
                ror     eax, 0Bh
21385
                xor     ecx, edi
21386
                mov     edi, [esi+1Ch]
21387
                and     ebx, [esp+18h]
21388
                xor     ebp, ecx
21389
                lea     edi, [eax+edi-7A3EDF8Dh]
21390
                xor     ebp, ebx
21391
                ror     ebp, 7
21392
                add     ebp, edi
21393
                mov     eax, [esp+0Ch]
21394
                mov     [esp+10h], ebp
21395
                mov     ebx, [esp+1Ch]
21396
                mov     ecx, [esp]
21397
                and     ebp, ebx
21398
                mov     edx, [esp+4]
21399
                and     ebx, ecx
21400
                mov     edi, [esp+8]
21401
                and     ecx, edx
21402
                xor     edx, 0FFFFFFFFh
21403
                and     ebx, edi
21404
                and     edi, [esp+18h]
21405
                xor     ebx, edx
21406
                ror     eax, 0Bh
21407
                xor     ecx, edi
21408
                mov     edi, [esi+34h]
21409
                and     ebx, [esp+14h]
21410
                xor     ebp, ecx
21411
                lea     edi, [eax+edi+401A449Fh]
21412
                xor     ebp, ebx
21413
                ror     ebp, 7
21414
                add     ebp, edi
21415
                mov     eax, [esp+8]
21416
                mov     [esp+0Ch], ebp
21417
                mov     ebx, [esp+18h]
21418
                mov     ecx, [esp+1Ch]
21419
                and     ebp, ebx
21420
                mov     edx, [esp]
21421
                and     ebx, ecx
21422
                mov     edi, [esp+4]
21423
                and     ecx, edx
21424
                xor     edx, 0FFFFFFFFh
21425
                and     ebx, edi
21426
                and     edi, [esp+14h]
21427
                xor     ebx, edx
21428
                ror     eax, 0Bh
21429
                xor     ecx, edi
21430
                mov     edi, [esi+20h]
21431
                and     ebx, [esp+10h]
21432
                xor     ebp, ecx
21433
                lea     edi, [eax+edi+56C16AA6h]
21434
                xor     ebp, ebx
21435
                ror     ebp, 7
21436
                add     ebp, edi
21437
                mov     eax, [esp+4]
21438
                mov     [esp+8], ebp
21439
                mov     ebx, [esp+14h]
21440
                mov     ecx, [esp+18h]
21441
                and     ebp, ebx
21442
                mov     edx, [esp+1Ch]
21443
                and     ebx, ecx
21444
                mov     edi, [esp]
21445
                and     ecx, edx
21446
                xor     edx, 0FFFFFFFFh
21447
                and     ebx, edi
21448
                and     edi, [esp+10h]
21449
                xor     ebx, edx
21450
                ror     eax, 0Bh
21451
                xor     ecx, edi
21452
                mov     edi, [esi+7Ch]
21453
                and     ebx, [esp+0Ch]
21454
                xor     ebp, ecx
21455
                lea     edi, [eax+edi+4ED3AA62h]
21456
                xor     ebp, ebx
21457
                ror     ebp, 7
21458
                add     ebp, edi
21459
                mov     eax, [esp]
21460
                mov     [esp+4], ebp
21461
                mov     ebx, [esp+10h]
21462
                mov     ecx, [esp+14h]
21463
                and     ebp, ebx
21464
                mov     edx, [esp+18h]
21465
                and     ebx, ecx
21466
                mov     edi, [esp+1Ch]
21467
                and     ecx, edx
21468
                xor     edx, 0FFFFFFFFh
21469
                and     ebx, edi
21470
                and     edi, [esp+0Ch]
21471
                xor     ebx, edx
21472
                ror     eax, 0Bh
21473
                xor     ecx, edi
21474
                mov     edi, [esi+28h]
21475
                and     ebx, [esp+8]
21476
                xor     ebp, ecx
21477
                lea     edi, [eax+edi+363F7706h]
21478
                xor     ebp, ebx
21479
                ror     ebp, 7
21480
                add     ebp, edi
21481
                mov     eax, [esp+1Ch]
21482
                mov     [esp], ebp
21483
                mov     ebx, [esp+0Ch]
21484
                mov     ecx, [esp+10h]
21485
                and     ebp, ebx
21486
                mov     edx, [esp+14h]
21487
                and     ebx, ecx
21488
                mov     edi, [esp+18h]
21489
                and     ecx, edx
21490
                xor     edx, 0FFFFFFFFh
21491
                and     ebx, edi
21492
                and     edi, [esp+8]
21493
                xor     ebx, edx
21494
                ror     eax, 0Bh
21495
                xor     ecx, edi
21496
                mov     edi, [esi+14h]
21497
                and     ebx, [esp+4]
21498
                xor     ebp, ecx
21499
                lea     edi, [eax+edi+1BFEDF72h]
21500
                xor     ebp, ebx
21501
                ror     ebp, 7
21502
                add     ebp, edi
21503
                mov     eax, [esp+18h]
21504
                mov     [esp+1Ch], ebp
21505
                mov     ebx, [esp+8]
21506
                mov     ecx, [esp+0Ch]
21507
                and     ebp, ebx
21508
                mov     edx, [esp+10h]
21509
                and     ebx, ecx
21510
                mov     edi, [esp+14h]
21511
                and     ecx, edx
21512
                xor     edx, 0FFFFFFFFh
21513
                and     ebx, edi
21514
                and     edi, [esp+4]
21515
                xor     ebx, edx
21516
                ror     eax, 0Bh
21517
                xor     ecx, edi
21518
                mov     edi, [esi+24h]
21519
                and     ebx, [esp]
21520
                xor     ebp, ecx
21521
                lea     edi, [eax+edi+429B023Dh]
21522
                xor     ebp, ebx
21523
                ror     ebp, 7
21524
                add     ebp, edi
21525
                mov     eax, [esp+14h]
21526
                mov     [esp+18h], ebp
21527
                mov     ebx, [esp+4]
21528
                mov     ecx, [esp+8]
21529
                and     ebp, ebx
21530
                mov     edx, [esp+0Ch]
21531
                and     ebx, ecx
21532
                mov     edi, [esp+10h]
21533
                and     ecx, edx
21534
                xor     edx, 0FFFFFFFFh
21535
                and     ebx, edi
21536
                and     edi, [esp]
21537
                xor     ebx, edx
21538
                ror     eax, 0Bh
21539
                xor     ecx, edi
21540
                mov     edi, [esi+38h]
21541
                and     ebx, [esp+1Ch]
21542
                xor     ebp, ecx
21543
                lea     edi, [eax+edi+37D0D724h]
21544
                xor     ebp, ebx
21545
                ror     ebp, 7
21546
                add     ebp, edi
21547
                mov     eax, [esp+10h]
21548
                mov     [esp+14h], ebp
21549
                mov     ebx, [esp]
21550
                mov     ecx, [esp+4]
21551
                and     ebp, ebx
21552
                mov     edx, [esp+8]
21553
                and     ebx, ecx
21554
                mov     edi, [esp+0Ch]
21555
                and     ecx, edx
21556
                xor     edx, 0FFFFFFFFh
21557
                and     ebx, edi
21558
                and     edi, [esp+1Ch]
21559
                xor     ebx, edx
21560
                ror     eax, 0Bh
21561
                xor     ecx, edi
21562
                mov     edi, [esi+78h]
21563
                and     ebx, [esp+18h]
21564
                xor     ebp, ecx
21565
                lea     edi, [eax+edi-2FF5EDB8h]
21566
                xor     ebp, ebx
21567
                ror     ebp, 7
21568
                add     ebp, edi
21569
                mov     eax, [esp+0Ch]
21570
                mov     [esp+10h], ebp
21571
                mov     ebx, [esp+1Ch]
21572
                mov     ecx, [esp]
21573
                and     ebp, ebx
21574
                mov     edx, [esp+4]
21575
                and     ebx, ecx
21576
                mov     edi, [esp+8]
21577
                and     ecx, edx
21578
                xor     edx, 0FFFFFFFFh
21579
                and     ebx, edi
21580
                and     edi, [esp+18h]
21581
                xor     ebx, edx
21582
                ror     eax, 0Bh
21583
                xor     ecx, edi
21584
                mov     edi, [esi+48h]
21585
                and     ebx, [esp+14h]
21586
                xor     ebp, ecx
21587
                lea     edi, [eax+edi-24F0152Dh]
21588
                xor     ebp, ebx
21589
                ror     ebp, 7
21590
                add     ebp, edi
21591
                mov     eax, [esp+8]
21592
                mov     [esp+0Ch], ebp
21593
                mov     ebx, [esp+18h]
21594
                mov     ecx, [esp+1Ch]
21595
                and     ebp, ebx
21596
                mov     edx, [esp]
21597
                and     ebx, ecx
21598
                mov     edi, [esp+4]
21599
                and     ecx, edx
21600
                xor     edx, 0FFFFFFFFh
21601
                and     ebx, edi
21602
                and     edi, [esp+14h]
21603
                xor     ebx, edx
21604
                ror     eax, 0Bh
21605
                xor     ecx, edi
21606
                mov     edi, [esi+18h]
21607
                and     ebx, [esp+10h]
21608
                xor     ebp, ecx
21609
                lea     edi, [eax+edi+49F1C09Bh]
21610
                xor     ebp, ebx
21611
                ror     ebp, 7
21612
                add     ebp, edi
21613
                mov     eax, [esp+4]
21614
                mov     [esp+8], ebp
21615
                mov     ebx, [esp+14h]
21616
                mov     ecx, [esp+18h]
21617
                and     ebp, ebx
21618
                mov     edx, [esp+1Ch]
21619
                and     ebx, ecx
21620
                mov     edi, [esp]
21621
                and     ecx, edx
21622
                xor     edx, 0FFFFFFFFh
21623
                and     ebx, edi
21624
                and     edi, [esp+10h]
21625
                xor     ebx, edx
21626
                ror     eax, 0Bh
21627
                xor     ecx, edi
21628
                mov     edi, [esi+70h]
21629
                and     ebx, [esp+0Ch]
21630
                xor     ebp, ecx
21631
                lea     edi, [eax+edi+75372C9h]
21632
                xor     ebp, ebx
21633
                ror     ebp, 7
21634
                add     ebp, edi
21635
                mov     eax, [esp]
21636
                mov     [esp+4], ebp
21637
                mov     ebx, [esp+10h]
21638
                mov     ecx, [esp+14h]
21639
                and     ebp, ebx
21640
                mov     edx, [esp+18h]
21641
                and     ebx, ecx
21642
                mov     edi, [esp+1Ch]
21643
                and     ecx, edx
21644
                xor     edx, 0FFFFFFFFh
21645
                and     ebx, edi
21646
                and     edi, [esp+0Ch]
21647
                xor     ebx, edx
21648
                ror     eax, 0Bh
21649
                xor     ecx, edi
21650
                mov     edi, [esi+60h]
21651
                and     ebx, [esp+8]
21652
                xor     ebp, ecx
21653
                lea     edi, [eax+edi-7F66E485h]
21654
                xor     ebp, ebx
21655
                ror     ebp, 7
21656
                add     ebp, edi
21657
                mov     eax, [esp+1Ch]
21658
                mov     [esp], ebp
21659
                mov     ebx, [esp+0Ch]
21660
                mov     ecx, [esp+10h]
21661
                and     ebp, ebx
21662
                mov     edx, [esp+14h]
21663
                and     ebx, ecx
21664
                mov     edi, [esp+18h]
21665
                and     ecx, edx
21666
                xor     edx, 0FFFFFFFFh
21667
                and     ebx, edi
21668
                and     edi, [esp+8]
21669
                xor     ebx, edx
21670
                ror     eax, 0Bh
21671
                xor     ecx, edi
21672
                mov     edi, [esi+8]
21673
                and     ebx, [esp+4]
21674
                xor     ebp, ecx
21675
                lea     edi, [eax+edi+25D479D8h]
21676
                xor     ebp, ebx
21677
                ror     ebp, 7
21678
                add     ebp, edi
21679
                mov     eax, [esp+18h]
21680
                mov     [esp+1Ch], ebp
21681
                mov     ebx, [esp+8]
21682
                mov     ecx, [esp+0Ch]
21683
                and     ebp, ebx
21684
                mov     edx, [esp+10h]
21685
                and     ebx, ecx
21686
                mov     edi, [esp+14h]
21687
                and     ecx, edx
21688
                xor     edx, 0FFFFFFFFh
21689
                and     ebx, edi
21690
                and     edi, [esp+4]
21691
                xor     ebx, edx
21692
                ror     eax, 0Bh
21693
                xor     ecx, edi
21694
                mov     edi, [esi+5Ch]
21695
                and     ebx, [esp]
21696
                xor     ebp, ecx
21697
                lea     edi, [eax+edi-9172109h]
21698
                xor     ebp, ebx
21699
                ror     ebp, 7
21700
                add     ebp, edi
21701
                mov     eax, [esp+14h]
21702
                mov     [esp+18h], ebp
21703
                mov     ebx, [esp+4]
21704
                mov     ecx, [esp+8]
21705
                and     ebp, ebx
21706
                mov     edx, [esp+0Ch]
21707
                and     ebx, ecx
21708
                mov     edi, [esp+10h]
21709
                and     ecx, edx
21710
                xor     edx, 0FFFFFFFFh
21711
                and     ebx, edi
21712
                and     edi, [esp]
21713
                xor     ebx, edx
21714
                ror     eax, 0Bh
21715
                xor     ecx, edi
21716
                mov     edi, [esi+40h]
21717
                and     ebx, [esp+1Ch]
21718
                xor     ebp, ecx
21719
                lea     edi, [eax+edi-1C01AFE6h]
21720
                xor     ebp, ebx
21721
                ror     ebp, 7
21722
                add     ebp, edi
21723
                mov     eax, [esp+10h]
21724
                mov     [esp+14h], ebp
21725
                mov     ebx, [esp]
21726
                mov     ecx, [esp+4]
21727
                and     ebp, ebx
21728
                mov     edx, [esp+8]
21729
                and     ebx, ecx
21730
                mov     edi, [esp+0Ch]
21731
                and     ecx, edx
21732
                xor     edx, 0FFFFFFFFh
21733
                and     ebx, edi
21734
                and     edi, [esp+1Ch]
21735
                xor     ebx, edx
21736
                ror     eax, 0Bh
21737
                xor     ecx, edi
21738
                mov     edi, [esi+58h]
21739
                and     ebx, [esp+18h]
21740
                xor     ebp, ecx
21741
                lea     edi, [eax+edi-4986B3C5h]
21742
                xor     ebp, ebx
21743
                ror     ebp, 7
21744
                add     ebp, edi
21745
                mov     eax, [esp+0Ch]
21746
                mov     [esp+10h], ebp
21747
                mov     ebx, [esp+1Ch]
21748
                mov     ecx, [esp]
21749
                and     ebp, ebx
21750
                mov     edx, [esp+4]
21751
                and     ebx, ecx
21752
                mov     edi, [esp+8]
21753
                and     ecx, edx
21754
                xor     edx, 0FFFFFFFFh
21755
                and     ebx, edi
21756
                and     edi, [esp+18h]
21757
                xor     ebx, edx
21758
                ror     eax, 0Bh
21759
                xor     ecx, edi
21760
                mov     edi, [esi+10h]
21761
                and     ebx, [esp+14h]
21762
                xor     ebp, ecx
21763
                lea     edi, [eax+edi-68931F43h]
21764
                xor     ebp, ebx
21765
                ror     ebp, 7
21766
                add     ebp, edi
21767
                mov     eax, [esp+8]
21768
                mov     [esp+0Ch], ebp
21769
                mov     ebx, [esp+18h]
21770
                mov     ecx, [esp+1Ch]
21771
                and     ebp, ebx
21772
                mov     edx, [esp]
21773
                and     ebx, ecx
21774
                mov     edi, [esp+4]
21775
                and     ecx, edx
21776
                xor     edx, 0FFFFFFFFh
21777
                and     ebx, edi
21778
                and     edi, [esp+14h]
21779
                xor     ebx, edx
21780
                ror     eax, 0Bh
21781
                xor     ecx, edi
21782
                mov     edi, [esi+4]
21783
                and     ebx, [esp+10h]
21784
                xor     ebp, ecx
21785
                lea     edi, [eax+edi+4C006BAh]
21786
                xor     ebp, ebx
21787
                ror     ebp, 7
21788
                add     ebp, edi
21789
                mov     eax, [esp+4]
21790
                mov     [esp+8], ebp
21791
                mov     ebx, [esp+14h]
21792
                mov     ecx, [esp+18h]
21793
                and     ebp, ebx
21794
                mov     edx, [esp+1Ch]
21795
                and     ebx, ecx
21796
                mov     edi, [esp]
21797
                and     ecx, edx
21798
                xor     edx, 0FFFFFFFFh
21799
                and     ebx, edi
21800
                and     edi, [esp+10h]
21801
                xor     ebx, edx
21802
                ror     eax, 0Bh
21803
                xor     ecx, edi
21804
                mov     edi, [esi+64h]
21805
                and     ebx, [esp+0Ch]
21806
                xor     ebp, ecx
21807
                lea     edi, [eax+edi-3E56B04Ah]
21808
                xor     ebp, ebx
21809
                ror     ebp, 7
21810
                add     ebp, edi
21811
                mov     eax, [esp]
21812
                mov     [esp+4], ebp
21813
                mov     ebx, [esp+10h]
21814
                mov     ecx, [esp+14h]
21815
                and     ebp, ebx
21816
                mov     edx, [esp+18h]
21817
                and     ebx, ecx
21818
                mov     edi, [esp+1Ch]
21819
                and     ecx, edx
21820
                xor     edx, 0FFFFFFFFh
21821
                and     ebx, edi
21822
                and     edi, [esp+0Ch]
21823
                xor     ebx, edx
21824
                ror     eax, 0Bh
21825
                xor     ecx, edi
21826
                mov     edi, [esi+3Ch]
21827
                and     ebx, [esp+8]
21828
                xor     ebp, ecx
21829
                lea     edi, [eax+edi+409F60C4h]
21830
                xor     ebp, ebx
21831
                ror     ebp, 7
21832
                add     ebp, edi
21833
                mov     eax, [esp+1Ch]
21834
                mov     [esp], ebp
21835
                mov     edi, [esp+24h]
21836
                mov     eax, [esp]
21837
                mov     ebx, [esp+4]
21838
                add     [edi], eax
21839
                add     [edi+4], ebx
21840
                mov     ecx, [esp+8]
21841
                mov     edx, [esp+0Ch]
21842
                add     [edi+8], ecx
21843
                add     [edi+0Ch], edx
21844
                mov     eax, [esp+10h]
21845
                mov     ebx, [esp+14h]
21846
                add     [edi+10h], eax
21847
                add     [edi+14h], ebx
21848
                mov     ebp, [esp+28h]
21849
                mov     ecx, [esp+18h]
21850
                mov     edx, [esp+1Ch]
21851
                mov     esp, ebp
21852
                add     [edi+18h], ecx
21853
                add     [edi+1Ch], edx
21854
                pop     ebp
21855
                pop     edi
21856
                pop     esi
21857
                pop     ebx
21858
end;
21859
{$ENDIF}
21860
21861
{$IFDEF THash_Tiger_asm}
21862
procedure THash_Tiger.DoTransform(Buffer: PUInt32Array);
21863
asm
21864
                push    ebx
21865
                push    esi
21866
                push    edi
21867
                lea     edi, [eax].THash_Tiger.FDigest
21868
                mov     esi, edx
21869
                push    ebp
21870
                mov     ebp, [eax].THash_Tiger.FRounds
21871
                lea     eax, Tiger_Data
21872
21873
                mov     ecx, esp
21874
                add     esp, 0FFFFFF94h
21875
                and     esp, 0FFFFFFC0h
21876
                sub     ebp, 3
21877
                mov     [esp+58h], esi
21878
                mov     [esp+5Ch], edi
21879
                mov     [esp+60h], ebp
21880
                mov     [esp+64h], eax
21881
                mov     [esp+68h], ecx
21882
                mov     eax, [esi]
21883
                mov     ebx, [esi+4]
21884
                mov     [esp], eax
21885
                mov     [esp+4], ebx
21886
                mov     ecx, [esi+8]
21887
                mov     edx, [esi+0Ch]
21888
                mov     [esp+8], ecx
21889
                mov     [esp+0Ch], edx
21890
                mov     eax, [esi+10h]
21891
                mov     ebx, [esi+14h]
21892
                mov     [esp+10h], eax
21893
                mov     [esp+14h], ebx
21894
                mov     ecx, [esi+18h]
21895
                mov     edx, [esi+1Ch]
21896
                mov     [esp+18h], ecx
21897
                mov     [esp+1Ch], edx
21898
                mov     eax, [esi+20h]
21899
                mov     ebx, [esi+24h]
21900
                mov     [esp+20h], eax
21901
                mov     [esp+24h], ebx
21902
                mov     ecx, [esi+28h]
21903
                mov     edx, [esi+2Ch]
21904
                mov     [esp+28h], ecx
21905
                mov     [esp+2Ch], edx
21906
                mov     eax, [esi+30h]
21907
                mov     ebx, [esi+34h]
21908
                mov     [esp+30h], eax
21909
                mov     [esp+34h], ebx
21910
                mov     ecx, [esi+38h]
21911
                mov     edx, [esi+3Ch]
21912
                mov     [esp+38h], ecx
21913
                mov     [esp+3Ch], edx
21914
                mov     eax, [edi]
21915
                mov     ebx, [edi+4]
21916
                mov     [esp+40h], eax
21917
                mov     [esp+44h], ebx
21918
                mov     ecx, [edi+8]
21919
                mov     edx, [edi+0Ch]
21920
                mov     [esp+48h], ecx
21921
                mov     [esp+4Ch], edx
21922
                mov     eax, [edi+10h]
21923
                mov     ebx, [edi+14h]
21924
                mov     [esp+50h], eax
21925
                mov     [esp+54h], ebx
21926
                mov     esi, [esp+64h]
21927
                mov     eax, [esp]
21928
                mov     ebx, [esp+4]
21929
                mov     ecx, [esp+50h]
21930
                mov     edx, [esp+54h]
21931
                xor     eax, ecx
21932
                xor     ebx, edx
21933
                mov     edi, eax
21934
                mov     [esp+50h], eax
21935
                shr     eax, 0Dh
21936
                mov     ebp, ebx
21937
                and     edi, 0FFh
21938
                mov     [esp+54h], ebx
21939
                shl     edi, 3
21940
                and     ebp, 0FFh
21941
                shr     ebx, 0Dh
21942
                and     eax, 7F8h
21943
                shl     ebp, 3
21944
                mov     ecx, [esi+edi]
21945
                mov     edx, [esi+edi+4]
21946
                xor     ecx, [esi+eax+800h]
21947
                xor     edx, [esi+eax+804h]
21948
                and     ebx, 7F8h
21949
                xor     ecx, [esi+ebp+1000h]
21950
                xor     edx, [esi+ebp+1004h]
21951
                xor     ecx, [esi+ebx+1800h]
21952
                xor     edx, [esi+ebx+1804h]
21953
                mov     edi, [esp+40h]
21954
                mov     ebp, [esp+44h]
21955
                sub     edi, ecx
21956
                mov     eax, [esp+50h]
21957
                sbb     ebp, edx
21958
                mov     ebx, [esp+54h]
21959
                mov     [esp+40h], edi
21960
                mov     edi, eax
21961
                shr     eax, 5
21962
                mov     [esp+44h], ebp
21963
                shr     edi, 15h
21964
                mov     ebp, ebx
21965
                shr     ebx, 5
21966
                and     eax, 7F8h
21967
                shr     ebp, 15h
21968
                and     edi, 7F8h
21969
                and     ebx, 7F8h
21970
                mov     ecx, [esi+eax+1800h]
21971
                mov     edx, [esi+eax+1804h]
21972
                xor     ecx, [esi+edi+1000h]
21973
                and     ebp, 7F8h
21974
                xor     edx, [esi+edi+1004h]
21975
                xor     ecx, [esi+ebx+800h]
21976
                xor     edx, [esi+ebx+804h]
21977
                xor     ecx, [esi+ebp]
21978
                xor     edx, [esi+ebp+4]
21979
                mov     eax, [esp+48h]
21980
                mov     ebx, [esp+4Ch]
21981
                add     eax, ecx
21982
                adc     ebx, edx
21983
                mov     ecx, eax
21984
                shr     ecx, 1Eh
21985
                mov     ebp, ebx
21986
                shl     ebx, 2
21987
                mov     edi, eax
21988
                shl     eax, 2
21989
                or      ebx, ecx
21990
                add     eax, edi
21991
                adc     ebx, ebp
21992
                mov     [esp+48h], eax
21993
                mov     [esp+4Ch], ebx
21994
                mov     eax, [esp+8]
21995
                mov     ebx, [esp+0Ch]
21996
                mov     ecx, [esp+40h]
21997
                mov     edx, [esp+44h]
21998
                xor     eax, ecx
21999
                xor     ebx, edx
22000
                mov     edi, eax
22001
                mov     [esp+40h], eax
22002
                shr     eax, 0Dh
22003
                mov     ebp, ebx
22004
                and     edi, 0FFh
22005
                mov     [esp+44h], ebx
22006
                shl     edi, 3
22007
                and     ebp, 0FFh
22008
                shr     ebx, 0Dh
22009
                and     eax, 7F8h
22010
                shl     ebp, 3
22011
                mov     ecx, [esi+edi]
22012
                mov     edx, [esi+edi+4]
22013
                xor     ecx, [esi+eax+800h]
22014
                xor     edx, [esi+eax+804h]
22015
                and     ebx, 7F8h
22016
                xor     ecx, [esi+ebp+1000h]
22017
                xor     edx, [esi+ebp+1004h]
22018
                xor     ecx, [esi+ebx+1800h]
22019
                xor     edx, [esi+ebx+1804h]
22020
                mov     edi, [esp+48h]
22021
                mov     ebp, [esp+4Ch]
22022
                sub     edi, ecx
22023
                mov     eax, [esp+40h]
22024
                sbb     ebp, edx
22025
                mov     ebx, [esp+44h]
22026
                mov     [esp+48h], edi
22027
                mov     edi, eax
22028
                shr     eax, 5
22029
                mov     [esp+4Ch], ebp
22030
                shr     edi, 15h
22031
                mov     ebp, ebx
22032
                shr     ebx, 5
22033
                and     eax, 7F8h
22034
                shr     ebp, 15h
22035
                and     edi, 7F8h
22036
                and     ebx, 7F8h
22037
                mov     ecx, [esi+eax+1800h]
22038
                mov     edx, [esi+eax+1804h]
22039
                xor     ecx, [esi+edi+1000h]
22040
                and     ebp, 7F8h
22041
                xor     edx, [esi+edi+1004h]
22042
                xor     ecx, [esi+ebx+800h]
22043
                xor     edx, [esi+ebx+804h]
22044
                xor     ecx, [esi+ebp]
22045
                xor     edx, [esi+ebp+4]
22046
                mov     eax, [esp+50h]
22047
                mov     ebx, [esp+54h]
22048
                add     eax, ecx
22049
                adc     ebx, edx
22050
                mov     ecx, eax
22051
                shr     ecx, 1Eh
22052
                mov     ebp, ebx
22053
                shl     ebx, 2
22054
                mov     edi, eax
22055
                shl     eax, 2
22056
                or      ebx, ecx
22057
                add     eax, edi
22058
                adc     ebx, ebp
22059
                mov     [esp+50h], eax
22060
                mov     [esp+54h], ebx
22061
                mov     eax, [esp+10h]
22062
                mov     ebx, [esp+14h]
22063
                mov     ecx, [esp+48h]
22064
                mov     edx, [esp+4Ch]
22065
                xor     eax, ecx
22066
                xor     ebx, edx
22067
                mov     edi, eax
22068
                mov     [esp+48h], eax
22069
                shr     eax, 0Dh
22070
                mov     ebp, ebx
22071
                and     edi, 0FFh
22072
                mov     [esp+4Ch], ebx
22073
                shl     edi, 3
22074
                and     ebp, 0FFh
22075
                shr     ebx, 0Dh
22076
                and     eax, 7F8h
22077
                shl     ebp, 3
22078
                mov     ecx, [esi+edi]
22079
                mov     edx, [esi+edi+4]
22080
                xor     ecx, [esi+eax+800h]
22081
                xor     edx, [esi+eax+804h]
22082
                and     ebx, 7F8h
22083
                xor     ecx, [esi+ebp+1000h]
22084
                xor     edx, [esi+ebp+1004h]
22085
                xor     ecx, [esi+ebx+1800h]
22086
                xor     edx, [esi+ebx+1804h]
22087
                mov     edi, [esp+50h]
22088
                mov     ebp, [esp+54h]
22089
                sub     edi, ecx
22090
                mov     eax, [esp+48h]
22091
                sbb     ebp, edx
22092
                mov     ebx, [esp+4Ch]
22093
                mov     [esp+50h], edi
22094
                mov     edi, eax
22095
                shr     eax, 5
22096
                mov     [esp+54h], ebp
22097
                shr     edi, 15h
22098
                mov     ebp, ebx
22099
                shr     ebx, 5
22100
                and     eax, 7F8h
22101
                shr     ebp, 15h
22102
                and     edi, 7F8h
22103
                and     ebx, 7F8h
22104
                mov     ecx, [esi+eax+1800h]
22105
                mov     edx, [esi+eax+1804h]
22106
                xor     ecx, [esi+edi+1000h]
22107
                and     ebp, 7F8h
22108
                xor     edx, [esi+edi+1004h]
22109
                xor     ecx, [esi+ebx+800h]
22110
                xor     edx, [esi+ebx+804h]
22111
                xor     ecx, [esi+ebp]
22112
                xor     edx, [esi+ebp+4]
22113
                mov     eax, [esp+40h]
22114
                mov     ebx, [esp+44h]
22115
                add     eax, ecx
22116
                adc     ebx, edx
22117
                mov     ecx, eax
22118
                shr     ecx, 1Eh
22119
                mov     ebp, ebx
22120
                shl     ebx, 2
22121
                mov     edi, eax
22122
                shl     eax, 2
22123
                or      ebx, ecx
22124
                add     eax, edi
22125
                adc     ebx, ebp
22126
                mov     [esp+40h], eax
22127
                mov     [esp+44h], ebx
22128
                mov     eax, [esp+18h]
22129
                mov     ebx, [esp+1Ch]
22130
                mov     ecx, [esp+50h]
22131
                mov     edx, [esp+54h]
22132
                xor     eax, ecx
22133
                xor     ebx, edx
22134
                mov     edi, eax
22135
                mov     [esp+50h], eax
22136
                shr     eax, 0Dh
22137
                mov     ebp, ebx
22138
                and     edi, 0FFh
22139
                mov     [esp+54h], ebx
22140
                shl     edi, 3
22141
                and     ebp, 0FFh
22142
                shr     ebx, 0Dh
22143
                and     eax, 7F8h
22144
                shl     ebp, 3
22145
                mov     ecx, [esi+edi]
22146
                mov     edx, [esi+edi+4]
22147
                xor     ecx, [esi+eax+800h]
22148
                xor     edx, [esi+eax+804h]
22149
                and     ebx, 7F8h
22150
                xor     ecx, [esi+ebp+1000h]
22151
                xor     edx, [esi+ebp+1004h]
22152
                xor     ecx, [esi+ebx+1800h]
22153
                xor     edx, [esi+ebx+1804h]
22154
                mov     edi, [esp+40h]
22155
                mov     ebp, [esp+44h]
22156
                sub     edi, ecx
22157
                mov     eax, [esp+50h]
22158
                sbb     ebp, edx
22159
                mov     ebx, [esp+54h]
22160
                mov     [esp+40h], edi
22161
                mov     edi, eax
22162
                shr     eax, 5
22163
                mov     [esp+44h], ebp
22164
                shr     edi, 15h
22165
                mov     ebp, ebx
22166
                shr     ebx, 5
22167
                and     eax, 7F8h
22168
                shr     ebp, 15h
22169
                and     edi, 7F8h
22170
                and     ebx, 7F8h
22171
                mov     ecx, [esi+eax+1800h]
22172
                mov     edx, [esi+eax+1804h]
22173
                xor     ecx, [esi+edi+1000h]
22174
                and     ebp, 7F8h
22175
                xor     edx, [esi+edi+1004h]
22176
                xor     ecx, [esi+ebx+800h]
22177
                xor     edx, [esi+ebx+804h]
22178
                xor     ecx, [esi+ebp]
22179
                xor     edx, [esi+ebp+4]
22180
                mov     eax, [esp+48h]
22181
                mov     ebx, [esp+4Ch]
22182
                add     eax, ecx
22183
                adc     ebx, edx
22184
                mov     ecx, eax
22185
                shr     ecx, 1Eh
22186
                mov     ebp, ebx
22187
                shl     ebx, 2
22188
                mov     edi, eax
22189
                shl     eax, 2
22190
                or      ebx, ecx
22191
                add     eax, edi
22192
                adc     ebx, ebp
22193
                mov     [esp+48h], eax
22194
                mov     [esp+4Ch], ebx
22195
                mov     eax, [esp+20h]
22196
                mov     ebx, [esp+24h]
22197
                mov     ecx, [esp+40h]
22198
                mov     edx, [esp+44h]
22199
                xor     eax, ecx
22200
                xor     ebx, edx
22201
                mov     edi, eax
22202
                mov     [esp+40h], eax
22203
                shr     eax, 0Dh
22204
                mov     ebp, ebx
22205
                and     edi, 0FFh
22206
                mov     [esp+44h], ebx
22207
                shl     edi, 3
22208
                and     ebp, 0FFh
22209
                shr     ebx, 0Dh
22210
                and     eax, 7F8h
22211
                shl     ebp, 3
22212
                mov     ecx, [esi+edi]
22213
                mov     edx, [esi+edi+4]
22214
                xor     ecx, [esi+eax+800h]
22215
                xor     edx, [esi+eax+804h]
22216
                and     ebx, 7F8h
22217
                xor     ecx, [esi+ebp+1000h]
22218
                xor     edx, [esi+ebp+1004h]
22219
                xor     ecx, [esi+ebx+1800h]
22220
                xor     edx, [esi+ebx+1804h]
22221
                mov     edi, [esp+48h]
22222
                mov     ebp, [esp+4Ch]
22223
                sub     edi, ecx
22224
                mov     eax, [esp+40h]
22225
                sbb     ebp, edx
22226
                mov     ebx, [esp+44h]
22227
                mov     [esp+48h], edi
22228
                mov     edi, eax
22229
                shr     eax, 5
22230
                mov     [esp+4Ch], ebp
22231
                shr     edi, 15h
22232
                mov     ebp, ebx
22233
                shr     ebx, 5
22234
                and     eax, 7F8h
22235
                shr     ebp, 15h
22236
                and     edi, 7F8h
22237
                and     ebx, 7F8h
22238
                mov     ecx, [esi+eax+1800h]
22239
                mov     edx, [esi+eax+1804h]
22240
                xor     ecx, [esi+edi+1000h]
22241
                and     ebp, 7F8h
22242
                xor     edx, [esi+edi+1004h]
22243
                xor     ecx, [esi+ebx+800h]
22244
                xor     edx, [esi+ebx+804h]
22245
                xor     ecx, [esi+ebp]
22246
                xor     edx, [esi+ebp+4]
22247
                mov     eax, [esp+50h]
22248
                mov     ebx, [esp+54h]
22249
                add     eax, ecx
22250
                adc     ebx, edx
22251
                mov     ecx, eax
22252
                shr     ecx, 1Eh
22253
                mov     ebp, ebx
22254
                shl     ebx, 2
22255
                mov     edi, eax
22256
                shl     eax, 2
22257
                or      ebx, ecx
22258
                add     eax, edi
22259
                adc     ebx, ebp
22260
                mov     [esp+50h], eax
22261
                mov     [esp+54h], ebx
22262
                mov     eax, [esp+28h]
22263
                mov     ebx, [esp+2Ch]
22264
                mov     ecx, [esp+48h]
22265
                mov     edx, [esp+4Ch]
22266
                xor     eax, ecx
22267
                xor     ebx, edx
22268
                mov     edi, eax
22269
                mov     [esp+48h], eax
22270
                shr     eax, 0Dh
22271
                mov     ebp, ebx
22272
                and     edi, 0FFh
22273
                mov     [esp+4Ch], ebx
22274
                shl     edi, 3
22275
                and     ebp, 0FFh
22276
                shr     ebx, 0Dh
22277
                and     eax, 7F8h
22278
                shl     ebp, 3
22279
                mov     ecx, [esi+edi]
22280
                mov     edx, [esi+edi+4]
22281
                xor     ecx, [esi+eax+800h]
22282
                xor     edx, [esi+eax+804h]
22283
                and     ebx, 7F8h
22284
                xor     ecx, [esi+ebp+1000h]
22285
                xor     edx, [esi+ebp+1004h]
22286
                xor     ecx, [esi+ebx+1800h]
22287
                xor     edx, [esi+ebx+1804h]
22288
                mov     edi, [esp+50h]
22289
                mov     ebp, [esp+54h]
22290
                sub     edi, ecx
22291
                mov     eax, [esp+48h]
22292
                sbb     ebp, edx
22293
                mov     ebx, [esp+4Ch]
22294
                mov     [esp+50h], edi
22295
                mov     edi, eax
22296
                shr     eax, 5
22297
                mov     [esp+54h], ebp
22298
                shr     edi, 15h
22299
                mov     ebp, ebx
22300
                shr     ebx, 5
22301
                and     eax, 7F8h
22302
                shr     ebp, 15h
22303
                and     edi, 7F8h
22304
                and     ebx, 7F8h
22305
                mov     ecx, [esi+eax+1800h]
22306
                mov     edx, [esi+eax+1804h]
22307
                xor     ecx, [esi+edi+1000h]
22308
                and     ebp, 7F8h
22309
                xor     edx, [esi+edi+1004h]
22310
                xor     ecx, [esi+ebx+800h]
22311
                xor     edx, [esi+ebx+804h]
22312
                xor     ecx, [esi+ebp]
22313
                xor     edx, [esi+ebp+4]
22314
                mov     eax, [esp+40h]
22315
                mov     ebx, [esp+44h]
22316
                add     eax, ecx
22317
                adc     ebx, edx
22318
                mov     ecx, eax
22319
                shr     ecx, 1Eh
22320
                mov     ebp, ebx
22321
                shl     ebx, 2
22322
                mov     edi, eax
22323
                shl     eax, 2
22324
                or      ebx, ecx
22325
                add     eax, edi
22326
                adc     ebx, ebp
22327
                mov     [esp+40h], eax
22328
                mov     [esp+44h], ebx
22329
                mov     eax, [esp+30h]
22330
                mov     ebx, [esp+34h]
22331
                mov     ecx, [esp+50h]
22332
                mov     edx, [esp+54h]
22333
                xor     eax, ecx
22334
                xor     ebx, edx
22335
                mov     edi, eax
22336
                mov     [esp+50h], eax
22337
                shr     eax, 0Dh
22338
                mov     ebp, ebx
22339
                and     edi, 0FFh
22340
                mov     [esp+54h], ebx
22341
                shl     edi, 3
22342
                and     ebp, 0FFh
22343
                shr     ebx, 0Dh
22344
                and     eax, 7F8h
22345
                shl     ebp, 3
22346
                mov     ecx, [esi+edi]
22347
                mov     edx, [esi+edi+4]
22348
                xor     ecx, [esi+eax+800h]
22349
                xor     edx, [esi+eax+804h]
22350
                and     ebx, 7F8h
22351
                xor     ecx, [esi+ebp+1000h]
22352
                xor     edx, [esi+ebp+1004h]
22353
                xor     ecx, [esi+ebx+1800h]
22354
                xor     edx, [esi+ebx+1804h]
22355
                mov     edi, [esp+40h]
22356
                mov     ebp, [esp+44h]
22357
                sub     edi, ecx
22358
                mov     eax, [esp+50h]
22359
                sbb     ebp, edx
22360
                mov     ebx, [esp+54h]
22361
                mov     [esp+40h], edi
22362
                mov     edi, eax
22363
                shr     eax, 5
22364
                mov     [esp+44h], ebp
22365
                shr     edi, 15h
22366
                mov     ebp, ebx
22367
                shr     ebx, 5
22368
                and     eax, 7F8h
22369
                shr     ebp, 15h
22370
                and     edi, 7F8h
22371
                and     ebx, 7F8h
22372
                mov     ecx, [esi+eax+1800h]
22373
                mov     edx, [esi+eax+1804h]
22374
                xor     ecx, [esi+edi+1000h]
22375
                and     ebp, 7F8h
22376
                xor     edx, [esi+edi+1004h]
22377
                xor     ecx, [esi+ebx+800h]
22378
                xor     edx, [esi+ebx+804h]
22379
                xor     ecx, [esi+ebp]
22380
                xor     edx, [esi+ebp+4]
22381
                mov     eax, [esp+48h]
22382
                mov     ebx, [esp+4Ch]
22383
                add     eax, ecx
22384
                adc     ebx, edx
22385
                mov     ecx, eax
22386
                shr     ecx, 1Eh
22387
                mov     ebp, ebx
22388
                shl     ebx, 2
22389
                mov     edi, eax
22390
                shl     eax, 2
22391
                or      ebx, ecx
22392
                add     eax, edi
22393
                adc     ebx, ebp
22394
                mov     [esp+48h], eax
22395
                mov     [esp+4Ch], ebx
22396
                mov     eax, [esp+38h]
22397
                mov     ebx, [esp+3Ch]
22398
                mov     ecx, [esp+40h]
22399
                mov     edx, [esp+44h]
22400
                xor     eax, ecx
22401
                xor     ebx, edx
22402
                mov     edi, eax
22403
                mov     [esp+40h], eax
22404
                shr     eax, 0Dh
22405
                mov     ebp, ebx
22406
                and     edi, 0FFh
22407
                mov     [esp+44h], ebx
22408
                shl     edi, 3
22409
                and     ebp, 0FFh
22410
                shr     ebx, 0Dh
22411
                and     eax, 7F8h
22412
                shl     ebp, 3
22413
                mov     ecx, [esi+edi]
22414
                mov     edx, [esi+edi+4]
22415
                xor     ecx, [esi+eax+800h]
22416
                xor     edx, [esi+eax+804h]
22417
                and     ebx, 7F8h
22418
                xor     ecx, [esi+ebp+1000h]
22419
                xor     edx, [esi+ebp+1004h]
22420
                xor     ecx, [esi+ebx+1800h]
22421
                xor     edx, [esi+ebx+1804h]
22422
                mov     edi, [esp+48h]
22423
                mov     ebp, [esp+4Ch]
22424
                sub     edi, ecx
22425
                mov     eax, [esp+40h]
22426
                sbb     ebp, edx
22427
                mov     ebx, [esp+44h]
22428
                mov     [esp+48h], edi
22429
                mov     edi, eax
22430
                shr     eax, 5
22431
                mov     [esp+4Ch], ebp
22432
                shr     edi, 15h
22433
                mov     ebp, ebx
22434
                shr     ebx, 5
22435
                and     eax, 7F8h
22436
                shr     ebp, 15h
22437
                and     edi, 7F8h
22438
                and     ebx, 7F8h
22439
                mov     ecx, [esi+eax+1800h]
22440
                mov     edx, [esi+eax+1804h]
22441
                xor     ecx, [esi+edi+1000h]
22442
                and     ebp, 7F8h
22443
                xor     edx, [esi+edi+1004h]
22444
                xor     ecx, [esi+ebx+800h]
22445
                xor     edx, [esi+ebx+804h]
22446
                xor     ecx, [esi+ebp]
22447
                xor     edx, [esi+ebp+4]
22448
                mov     eax, [esp+50h]
22449
                mov     ebx, [esp+54h]
22450
                add     eax, ecx
22451
                adc     ebx, edx
22452
                mov     ecx, eax
22453
                shr     ecx, 1Eh
22454
                mov     ebp, ebx
22455
                shl     ebx, 2
22456
                mov     edi, eax
22457
                shl     eax, 2
22458
                or      ebx, ecx
22459
                add     eax, edi
22460
                adc     ebx, ebp
22461
                mov     [esp+50h], eax
22462
                mov     [esp+54h], ebx
22463
                mov     eax, [esp+38h]
22464
                mov     ebx, [esp+3Ch]
22465
                xor     eax, 0A5A5A5A5h
22466
                xor     ebx, 0A5A5A5A5h
22467
                mov     ecx, [esp]
22468
                mov     edx, [esp+4]
22469
                sub     ecx, eax
22470
                sbb     edx, ebx
22471
                mov     [esp], ecx
22472
                mov     [esp+4], edx
22473
                mov     eax, [esp+8]
22474
                mov     ebx, [esp+0Ch]
22475
                xor     eax, ecx
22476
                xor     ebx, edx
22477
                mov     [esp+8], eax
22478
                mov     edi, eax
22479
                mov     esi, eax
22480
                shr     edi, 0Dh
22481
                xor     eax, 0FFFFFFFFh
22482
                mov     [esp+0Ch], ebx
22483
                mov     ecx, [esp+10h]
22484
                shl     eax, 13h
22485
                mov     ebp, ebx
22486
                shl     ebx, 13h
22487
                mov     edx, [esp+14h]
22488
                add     esi, ecx
22489
                mov     ecx, [esp+20h]
22490
                adc     ebp, edx
22491
                or      edi, ebx
22492
                mov     [esp+10h], esi
22493
                xor     esi, eax
22494
                mov     [esp+14h], ebp
22495
                mov     eax, [esp+18h]
22496
                xor     ebp, 0FFFFFFFFh
22497
                mov     ebx, [esp+1Ch]
22498
                xor     ebp, edi
22499
                sub     eax, esi
22500
                sbb     ebx, ebp
22501
                mov     edx, [esp+24h]
22502
                mov     [esp+18h], eax
22503
                xor     eax, ecx
22504
                mov     [esp+1Ch], ebx
22505
                xor     ebx, edx
22506
                mov     ecx, [esp+28h]
22507
                mov     edx, [esp+2Ch]
22508
                mov     edi, ebx
22509
                mov     ebp, ebx
22510
                mov     [esp+20h], eax
22511
                xor     ebp, 0FFFFFFFFh
22512
                shl     ebx, 9
22513
                add     ecx, eax
22514
                adc     edx, edi
22515
                mov     [esp+24h], edi
22516
                shr     ebp, 17h
22517
                mov     [esp+28h], ecx
22518
                shr     eax, 17h
22519
                xor     ecx, 0FFFFFFFFh
22520
                or      ebx, eax
22521
                mov     [esp+2Ch], edx
22522
                mov     eax, [esp+30h]
22523
                xor     ecx, ebx
22524
                mov     ebx, [esp+34h]
22525
                xor     edx, ebp
22526
                mov     edi, [esp+38h]
22527
                sub     eax, ecx
22528
                mov     ebp, [esp+3Ch]
22529
                mov     [esp+30h], eax
22530
                sbb     ebx, edx
22531
                xor     edi, eax
22532
                xor     ebp, ebx
22533
                mov     [esp+34h], ebx
22534
                mov     eax, [esp]
22535
                mov     ecx, edi
22536
                xor     edi, 0FFFFFFFFh
22537
                mov     ebx, [esp+4]
22538
                shl     edi, 13h
22539
                mov     [esp+38h], ecx
22540
                add     eax, ecx
22541
                mov     [esp+3Ch], ebp
22542
                adc     ebx, ebp
22543
                xor     edi, eax
22544
                shr     ecx, 0Dh
22545
                mov     [esp], eax
22546
                shl     ebp, 13h
22547
                mov     [esp+4], ebx
22548
                mov     esi, [esp+8]
22549
                xor     ebx, 0FFFFFFFFh
22550
                or      ebp, ecx
22551
                mov     edx, [esp+0Ch]
22552
                xor     ebp, ebx
22553
                sub     esi, edi
22554
                mov     eax, [esp+10h]
22555
                mov     ebx, [esp+14h]
22556
                sbb     edx, ebp
22557
                mov     [esp+8], esi
22558
                xor     eax, esi
22559
                mov     [esp+0Ch], edx
22560
                mov     edi, [esp+18h]
22561
                mov     ebp, [esp+1Ch]
22562
                xor     ebx, edx
22563
                mov     [esp+10h], eax
22564
                add     edi, eax
22565
                mov     esi, ebx
22566
                adc     ebp, ebx
22567
                mov     [esp+14h], ebx
22568
                shr     eax, 17h
22569
                mov     ecx, [esp+20h]
22570
                xor     ebx, 0FFFFFFFFh
22571
                mov     edx, [esp+24h]
22572
                shl     esi, 9
22573
                mov     [esp+18h], edi
22574
                or      eax, esi
22575
                xor     edi, 0FFFFFFFFh
22576
                shr     ebx, 17h
22577
                mov     [esp+1Ch], ebp
22578
                xor     eax, edi
22579
                mov     edi, [esp+28h]
22580
                xor     ebx, ebp
22581
                sub     ecx, eax
22582
                mov     ebp, [esp+2Ch]
22583
                mov     [esp+20h], ecx
22584
                sbb     edx, ebx
22585
                xor     edi, ecx
22586
                mov     [esp+24h], edx
22587
                xor     ebp, edx
22588
                mov     eax, [esp+30h]
22589
                mov     ebx, [esp+34h]
22590
                mov     [esp+28h], edi
22591
                add     eax, edi
22592
                mov     [esp+2Ch], ebp
22593
                mov     ecx, [esp+38h]
22594
                adc     ebx, ebp
22595
                mov     edx, [esp+3Ch]
22596
                mov     [esp+30h], eax
22597
                xor     eax, 89ABCDEFh
22598
                mov     [esp+34h], ebx
22599
                xor     ebx, 1234567h
22600
                sub     ecx, eax
22601
                sbb     edx, ebx
22602
                mov     [esp+38h], ecx
22603
                mov     [esp+3Ch], edx
22604
                mov     esi, [esp+64h]
22605
                mov     eax, [esp]
22606
                mov     ebx, [esp+4]
22607
                mov     ecx, [esp+48h]
22608
                mov     edx, [esp+4Ch]
22609
                xor     eax, ecx
22610
                xor     ebx, edx
22611
                mov     edi, eax
22612
                mov     [esp+48h], eax
22613
                shr     eax, 0Dh
22614
                mov     ebp, ebx
22615
                and     edi, 0FFh
22616
                mov     [esp+4Ch], ebx
22617
                shl     edi, 3
22618
                and     ebp, 0FFh
22619
                shr     ebx, 0Dh
22620
                and     eax, 7F8h
22621
                shl     ebp, 3
22622
                mov     ecx, [esi+edi]
22623
                mov     edx, [esi+edi+4]
22624
                xor     ecx, [esi+eax+800h]
22625
                xor     edx, [esi+eax+804h]
22626
                and     ebx, 7F8h
22627
                xor     ecx, [esi+ebp+1000h]
22628
                xor     edx, [esi+ebp+1004h]
22629
                xor     ecx, [esi+ebx+1800h]
22630
                xor     edx, [esi+ebx+1804h]
22631
                mov     edi, [esp+50h]
22632
                mov     ebp, [esp+54h]
22633
                sub     edi, ecx
22634
                mov     eax, [esp+48h]
22635
                sbb     ebp, edx
22636
                mov     ebx, [esp+4Ch]
22637
                mov     [esp+50h], edi
22638
                mov     edi, eax
22639
                shr     eax, 5
22640
                mov     [esp+54h], ebp
22641
                shr     edi, 15h
22642
                mov     ebp, ebx
22643
                shr     ebx, 5
22644
                and     eax, 7F8h
22645
                shr     ebp, 15h
22646
                and     edi, 7F8h
22647
                and     ebx, 7F8h
22648
                mov     ecx, [esi+eax+1800h]
22649
                mov     edx, [esi+eax+1804h]
22650
                xor     ecx, [esi+edi+1000h]
22651
                and     ebp, 7F8h
22652
                xor     edx, [esi+edi+1004h]
22653
                xor     ecx, [esi+ebx+800h]
22654
                xor     edx, [esi+ebx+804h]
22655
                xor     ecx, [esi+ebp]
22656
                xor     edx, [esi+ebp+4]
22657
                mov     eax, [esp+40h]
22658
                mov     ebx, [esp+44h]
22659
                add     eax, ecx
22660
                adc     ebx, edx
22661
                mov     ecx, eax
22662
                shr     ecx, 1Dh
22663
                mov     ebp, ebx
22664
                shl     ebx, 3
22665
                mov     edi, eax
22666
                shl     eax, 3
22667
                or      ebx, ecx
22668
                sub     eax, edi
22669
                sbb     ebx, ebp
22670
                mov     [esp+40h], eax
22671
                mov     [esp+44h], ebx
22672
                mov     eax, [esp+8]
22673
                mov     ebx, [esp+0Ch]
22674
                mov     ecx, [esp+50h]
22675
                mov     edx, [esp+54h]
22676
                xor     eax, ecx
22677
                xor     ebx, edx
22678
                mov     edi, eax
22679
                mov     [esp+50h], eax
22680
                shr     eax, 0Dh
22681
                mov     ebp, ebx
22682
                and     edi, 0FFh
22683
                mov     [esp+54h], ebx
22684
                shl     edi, 3
22685
                and     ebp, 0FFh
22686
                shr     ebx, 0Dh
22687
                and     eax, 7F8h
22688
                shl     ebp, 3
22689
                mov     ecx, [esi+edi]
22690
                mov     edx, [esi+edi+4]
22691
                xor     ecx, [esi+eax+800h]
22692
                xor     edx, [esi+eax+804h]
22693
                and     ebx, 7F8h
22694
                xor     ecx, [esi+ebp+1000h]
22695
                xor     edx, [esi+ebp+1004h]
22696
                xor     ecx, [esi+ebx+1800h]
22697
                xor     edx, [esi+ebx+1804h]
22698
                mov     edi, [esp+40h]
22699
                mov     ebp, [esp+44h]
22700
                sub     edi, ecx
22701
                mov     eax, [esp+50h]
22702
                sbb     ebp, edx
22703
                mov     ebx, [esp+54h]
22704
                mov     [esp+40h], edi
22705
                mov     edi, eax
22706
                shr     eax, 5
22707
                mov     [esp+44h], ebp
22708
                shr     edi, 15h
22709
                mov     ebp, ebx
22710
                shr     ebx, 5
22711
                and     eax, 7F8h
22712
                shr     ebp, 15h
22713
                and     edi, 7F8h
22714
                and     ebx, 7F8h
22715
                mov     ecx, [esi+eax+1800h]
22716
                mov     edx, [esi+eax+1804h]
22717
                xor     ecx, [esi+edi+1000h]
22718
                and     ebp, 7F8h
22719
                xor     edx, [esi+edi+1004h]
22720
                xor     ecx, [esi+ebx+800h]
22721
                xor     edx, [esi+ebx+804h]
22722
                xor     ecx, [esi+ebp]
22723
                xor     edx, [esi+ebp+4]
22724
                mov     eax, [esp+48h]
22725
                mov     ebx, [esp+4Ch]
22726
                add     eax, ecx
22727
                adc     ebx, edx
22728
                mov     ecx, eax
22729
                shr     ecx, 1Dh
22730
                mov     ebp, ebx
22731
                shl     ebx, 3
22732
                mov     edi, eax
22733
                shl     eax, 3
22734
                or      ebx, ecx
22735
                sub     eax, edi
22736
                sbb     ebx, ebp
22737
                mov     [esp+48h], eax
22738
                mov     [esp+4Ch], ebx
22739
                mov     eax, [esp+10h]
22740
                mov     ebx, [esp+14h]
22741
                mov     ecx, [esp+40h]
22742
                mov     edx, [esp+44h]
22743
                xor     eax, ecx
22744
                xor     ebx, edx
22745
                mov     edi, eax
22746
                mov     [esp+40h], eax
22747
                shr     eax, 0Dh
22748
                mov     ebp, ebx
22749
                and     edi, 0FFh
22750
                mov     [esp+44h], ebx
22751
                shl     edi, 3
22752
                and     ebp, 0FFh
22753
                shr     ebx, 0Dh
22754
                and     eax, 7F8h
22755
                shl     ebp, 3
22756
                mov     ecx, [esi+edi]
22757
                mov     edx, [esi+edi+4]
22758
                xor     ecx, [esi+eax+800h]
22759
                xor     edx, [esi+eax+804h]
22760
                and     ebx, 7F8h
22761
                xor     ecx, [esi+ebp+1000h]
22762
                xor     edx, [esi+ebp+1004h]
22763
                xor     ecx, [esi+ebx+1800h]
22764
                xor     edx, [esi+ebx+1804h]
22765
                mov     edi, [esp+48h]
22766
                mov     ebp, [esp+4Ch]
22767
                sub     edi, ecx
22768
                mov     eax, [esp+40h]
22769
                sbb     ebp, edx
22770
                mov     ebx, [esp+44h]
22771
                mov     [esp+48h], edi
22772
                mov     edi, eax
22773
                shr     eax, 5
22774
                mov     [esp+4Ch], ebp
22775
                shr     edi, 15h
22776
                mov     ebp, ebx
22777
                shr     ebx, 5
22778
                and     eax, 7F8h
22779
                shr     ebp, 15h
22780
                and     edi, 7F8h
22781
                and     ebx, 7F8h
22782
                mov     ecx, [esi+eax+1800h]
22783
                mov     edx, [esi+eax+1804h]
22784
                xor     ecx, [esi+edi+1000h]
22785
                and     ebp, 7F8h
22786
                xor     edx, [esi+edi+1004h]
22787
                xor     ecx, [esi+ebx+800h]
22788
                xor     edx, [esi+ebx+804h]
22789
                xor     ecx, [esi+ebp]
22790
                xor     edx, [esi+ebp+4]
22791
                mov     eax, [esp+50h]
22792
                mov     ebx, [esp+54h]
22793
                add     eax, ecx
22794
                adc     ebx, edx
22795
                mov     ecx, eax
22796
                shr     ecx, 1Dh
22797
                mov     ebp, ebx
22798
                shl     ebx, 3
22799
                mov     edi, eax
22800
                shl     eax, 3
22801
                or      ebx, ecx
22802
                sub     eax, edi
22803
                sbb     ebx, ebp
22804
                mov     [esp+50h], eax
22805
                mov     [esp+54h], ebx
22806
                mov     eax, [esp+18h]
22807
                mov     ebx, [esp+1Ch]
22808
                mov     ecx, [esp+48h]
22809
                mov     edx, [esp+4Ch]
22810
                xor     eax, ecx
22811
                xor     ebx, edx
22812
                mov     edi, eax
22813
                mov     [esp+48h], eax
22814
                shr     eax, 0Dh
22815
                mov     ebp, ebx
22816
                and     edi, 0FFh
22817
                mov     [esp+4Ch], ebx
22818
                shl     edi, 3
22819
                and     ebp, 0FFh
22820
                shr     ebx, 0Dh
22821
                and     eax, 7F8h
22822
                shl     ebp, 3
22823
                mov     ecx, [esi+edi]
22824
                mov     edx, [esi+edi+4]
22825
                xor     ecx, [esi+eax+800h]
22826
                xor     edx, [esi+eax+804h]
22827
                and     ebx, 7F8h
22828
                xor     ecx, [esi+ebp+1000h]
22829
                xor     edx, [esi+ebp+1004h]
22830
                xor     ecx, [esi+ebx+1800h]
22831
                xor     edx, [esi+ebx+1804h]
22832
                mov     edi, [esp+50h]
22833
                mov     ebp, [esp+54h]
22834
                sub     edi, ecx
22835
                mov     eax, [esp+48h]
22836
                sbb     ebp, edx
22837
                mov     ebx, [esp+4Ch]
22838
                mov     [esp+50h], edi
22839
                mov     edi, eax
22840
                shr     eax, 5
22841
                mov     [esp+54h], ebp
22842
                shr     edi, 15h
22843
                mov     ebp, ebx
22844
                shr     ebx, 5
22845
                and     eax, 7F8h
22846
                shr     ebp, 15h
22847
                and     edi, 7F8h
22848
                and     ebx, 7F8h
22849
                mov     ecx, [esi+eax+1800h]
22850
                mov     edx, [esi+eax+1804h]
22851
                xor     ecx, [esi+edi+1000h]
22852
                and     ebp, 7F8h
22853
                xor     edx, [esi+edi+1004h]
22854
                xor     ecx, [esi+ebx+800h]
22855
                xor     edx, [esi+ebx+804h]
22856
                xor     ecx, [esi+ebp]
22857
                xor     edx, [esi+ebp+4]
22858
                mov     eax, [esp+40h]
22859
                mov     ebx, [esp+44h]
22860
                add     eax, ecx
22861
                adc     ebx, edx
22862
                mov     ecx, eax
22863
                shr     ecx, 1Dh
22864
                mov     ebp, ebx
22865
                shl     ebx, 3
22866
                mov     edi, eax
22867
                shl     eax, 3
22868
                or      ebx, ecx
22869
                sub     eax, edi
22870
                sbb     ebx, ebp
22871
                mov     [esp+40h], eax
22872
                mov     [esp+44h], ebx
22873
                mov     eax, [esp+20h]
22874
                mov     ebx, [esp+24h]
22875
                mov     ecx, [esp+50h]
22876
                mov     edx, [esp+54h]
22877
                xor     eax, ecx
22878
                xor     ebx, edx
22879
                mov     edi, eax
22880
                mov     [esp+50h], eax
22881
                shr     eax, 0Dh
22882
                mov     ebp, ebx
22883
                and     edi, 0FFh
22884
                mov     [esp+54h], ebx
22885
                shl     edi, 3
22886
                and     ebp, 0FFh
22887
                shr     ebx, 0Dh
22888
                and     eax, 7F8h
22889
                shl     ebp, 3
22890
                mov     ecx, [esi+edi]
22891
                mov     edx, [esi+edi+4]
22892
                xor     ecx, [esi+eax+800h]
22893
                xor     edx, [esi+eax+804h]
22894
                and     ebx, 7F8h
22895
                xor     ecx, [esi+ebp+1000h]
22896
                xor     edx, [esi+ebp+1004h]
22897
                xor     ecx, [esi+ebx+1800h]
22898
                xor     edx, [esi+ebx+1804h]
22899
                mov     edi, [esp+40h]
22900
                mov     ebp, [esp+44h]
22901
                sub     edi, ecx
22902
                mov     eax, [esp+50h]
22903
                sbb     ebp, edx
22904
                mov     ebx, [esp+54h]
22905
                mov     [esp+40h], edi
22906
                mov     edi, eax
22907
                shr     eax, 5
22908
                mov     [esp+44h], ebp
22909
                shr     edi, 15h
22910
                mov     ebp, ebx
22911
                shr     ebx, 5
22912
                and     eax, 7F8h
22913
                shr     ebp, 15h
22914
                and     edi, 7F8h
22915
                and     ebx, 7F8h
22916
                mov     ecx, [esi+eax+1800h]
22917
                mov     edx, [esi+eax+1804h]
22918
                xor     ecx, [esi+edi+1000h]
22919
                and     ebp, 7F8h
22920
                xor     edx, [esi+edi+1004h]
22921
                xor     ecx, [esi+ebx+800h]
22922
                xor     edx, [esi+ebx+804h]
22923
                xor     ecx, [esi+ebp]
22924
                xor     edx, [esi+ebp+4]
22925
                mov     eax, [esp+48h]
22926
                mov     ebx, [esp+4Ch]
22927
                add     eax, ecx
22928
                adc     ebx, edx
22929
                mov     ecx, eax
22930
                shr     ecx, 1Dh
22931
                mov     ebp, ebx
22932
                shl     ebx, 3
22933
                mov     edi, eax
22934
                shl     eax, 3
22935
                or      ebx, ecx
22936
                sub     eax, edi
22937
                sbb     ebx, ebp
22938
                mov     [esp+48h], eax
22939
                mov     [esp+4Ch], ebx
22940
                mov     eax, [esp+28h]
22941
                mov     ebx, [esp+2Ch]
22942
                mov     ecx, [esp+40h]
22943
                mov     edx, [esp+44h]
22944
                xor     eax, ecx
22945
                xor     ebx, edx
22946
                mov     edi, eax
22947
                mov     [esp+40h], eax
22948
                shr     eax, 0Dh
22949
                mov     ebp, ebx
22950
                and     edi, 0FFh
22951
                mov     [esp+44h], ebx
22952
                shl     edi, 3
22953
                and     ebp, 0FFh
22954
                shr     ebx, 0Dh
22955
                and     eax, 7F8h
22956
                shl     ebp, 3
22957
                mov     ecx, [esi+edi]
22958
                mov     edx, [esi+edi+4]
22959
                xor     ecx, [esi+eax+800h]
22960
                xor     edx, [esi+eax+804h]
22961
                and     ebx, 7F8h
22962
                xor     ecx, [esi+ebp+1000h]
22963
                xor     edx, [esi+ebp+1004h]
22964
                xor     ecx, [esi+ebx+1800h]
22965
                xor     edx, [esi+ebx+1804h]
22966
                mov     edi, [esp+48h]
22967
                mov     ebp, [esp+4Ch]
22968
                sub     edi, ecx
22969
                mov     eax, [esp+40h]
22970
                sbb     ebp, edx
22971
                mov     ebx, [esp+44h]
22972
                mov     [esp+48h], edi
22973
                mov     edi, eax
22974
                shr     eax, 5
22975
                mov     [esp+4Ch], ebp
22976
                shr     edi, 15h
22977
                mov     ebp, ebx
22978
                shr     ebx, 5
22979
                and     eax, 7F8h
22980
                shr     ebp, 15h
22981
                and     edi, 7F8h
22982
                and     ebx, 7F8h
22983
                mov     ecx, [esi+eax+1800h]
22984
                mov     edx, [esi+eax+1804h]
22985
                xor     ecx, [esi+edi+1000h]
22986
                and     ebp, 7F8h
22987
                xor     edx, [esi+edi+1004h]
22988
                xor     ecx, [esi+ebx+800h]
22989
                xor     edx, [esi+ebx+804h]
22990
                xor     ecx, [esi+ebp]
22991
                xor     edx, [esi+ebp+4]
22992
                mov     eax, [esp+50h]
22993
                mov     ebx, [esp+54h]
22994
                add     eax, ecx
22995
                adc     ebx, edx
22996
                mov     ecx, eax
22997
                shr     ecx, 1Dh
22998
                mov     ebp, ebx
22999
                shl     ebx, 3
23000
                mov     edi, eax
23001
                shl     eax, 3
23002
                or      ebx, ecx
23003
                sub     eax, edi
23004
                sbb     ebx, ebp
23005
                mov     [esp+50h], eax
23006
                mov     [esp+54h], ebx
23007
                mov     eax, [esp+30h]
23008
                mov     ebx, [esp+34h]
23009
                mov     ecx, [esp+48h]
23010
                mov     edx, [esp+4Ch]
23011
                xor     eax, ecx
23012
                xor     ebx, edx
23013
                mov     edi, eax
23014
                mov     [esp+48h], eax
23015
                shr     eax, 0Dh
23016
                mov     ebp, ebx
23017
                and     edi, 0FFh
23018
                mov     [esp+4Ch], ebx
23019
                shl     edi, 3
23020
                and     ebp, 0FFh
23021
                shr     ebx, 0Dh
23022
                and     eax, 7F8h
23023
                shl     ebp, 3
23024
                mov     ecx, [esi+edi]
23025
                mov     edx, [esi+edi+4]
23026
                xor     ecx, [esi+eax+800h]
23027
                xor     edx, [esi+eax+804h]
23028
                and     ebx, 7F8h
23029
                xor     ecx, [esi+ebp+1000h]
23030
                xor     edx, [esi+ebp+1004h]
23031
                xor     ecx, [esi+ebx+1800h]
23032
                xor     edx, [esi+ebx+1804h]
23033
                mov     edi, [esp+50h]
23034
                mov     ebp, [esp+54h]
23035
                sub     edi, ecx
23036
                mov     eax, [esp+48h]
23037
                sbb     ebp, edx
23038
                mov     ebx, [esp+4Ch]
23039
                mov     [esp+50h], edi
23040
                mov     edi, eax
23041
                shr     eax, 5
23042
                mov     [esp+54h], ebp
23043
                shr     edi, 15h
23044
                mov     ebp, ebx
23045
                shr     ebx, 5
23046
                and     eax, 7F8h
23047
                shr     ebp, 15h
23048
                and     edi, 7F8h
23049
                and     ebx, 7F8h
23050
                mov     ecx, [esi+eax+1800h]
23051
                mov     edx, [esi+eax+1804h]
23052
                xor     ecx, [esi+edi+1000h]
23053
                and     ebp, 7F8h
23054
                xor     edx, [esi+edi+1004h]
23055
                xor     ecx, [esi+ebx+800h]
23056
                xor     edx, [esi+ebx+804h]
23057
                xor     ecx, [esi+ebp]
23058
                xor     edx, [esi+ebp+4]
23059
                mov     eax, [esp+40h]
23060
                mov     ebx, [esp+44h]
23061
                add     eax, ecx
23062
                adc     ebx, edx
23063
                mov     ecx, eax
23064
                shr     ecx, 1Dh
23065
                mov     ebp, ebx
23066
                shl     ebx, 3
23067
                mov     edi, eax
23068
                shl     eax, 3
23069
                or      ebx, ecx
23070
                sub     eax, edi
23071
                sbb     ebx, ebp
23072
                mov     [esp+40h], eax
23073
                mov     [esp+44h], ebx
23074
                mov     eax, [esp+38h]
23075
                mov     ebx, [esp+3Ch]
23076
                mov     ecx, [esp+50h]
23077
                mov     edx, [esp+54h]
23078
                xor     eax, ecx
23079
                xor     ebx, edx
23080
                mov     edi, eax
23081
                mov     [esp+50h], eax
23082
                shr     eax, 0Dh
23083
                mov     ebp, ebx
23084
                and     edi, 0FFh
23085
                mov     [esp+54h], ebx
23086
                shl     edi, 3
23087
                and     ebp, 0FFh
23088
                shr     ebx, 0Dh
23089
                and     eax, 7F8h
23090
                shl     ebp, 3
23091
                mov     ecx, [esi+edi]
23092
                mov     edx, [esi+edi+4]
23093
                xor     ecx, [esi+eax+800h]
23094
                xor     edx, [esi+eax+804h]
23095
                and     ebx, 7F8h
23096
                xor     ecx, [esi+ebp+1000h]
23097
                xor     edx, [esi+ebp+1004h]
23098
                xor     ecx, [esi+ebx+1800h]
23099
                xor     edx, [esi+ebx+1804h]
23100
                mov     edi, [esp+40h]
23101
                mov     ebp, [esp+44h]
23102
                sub     edi, ecx
23103
                mov     eax, [esp+50h]
23104
                sbb     ebp, edx
23105
                mov     ebx, [esp+54h]
23106
                mov     [esp+40h], edi
23107
                mov     edi, eax
23108
                shr     eax, 5
23109
                mov     [esp+44h], ebp
23110
                shr     edi, 15h
23111
                mov     ebp, ebx
23112
                shr     ebx, 5
23113
                and     eax, 7F8h
23114
                shr     ebp, 15h
23115
                and     edi, 7F8h
23116
                and     ebx, 7F8h
23117
                mov     ecx, [esi+eax+1800h]
23118
                mov     edx, [esi+eax+1804h]
23119
                xor     ecx, [esi+edi+1000h]
23120
                and     ebp, 7F8h
23121
                xor     edx, [esi+edi+1004h]
23122
                xor     ecx, [esi+ebx+800h]
23123
                xor     edx, [esi+ebx+804h]
23124
                xor     ecx, [esi+ebp]
23125
                xor     edx, [esi+ebp+4]
23126
                mov     eax, [esp+48h]
23127
                mov     ebx, [esp+4Ch]
23128
                add     eax, ecx
23129
                adc     ebx, edx
23130
                mov     ecx, eax
23131
                shr     ecx, 1Dh
23132
                mov     ebp, ebx
23133
                shl     ebx, 3
23134
                mov     edi, eax
23135
                shl     eax, 3
23136
                or      ebx, ecx
23137
                sub     eax, edi
23138
                sbb     ebx, ebp
23139
                mov     [esp+48h], eax
23140
                mov     [esp+4Ch], ebx
23141
                mov     eax, [esp+38h]
23142
                mov     ebx, [esp+3Ch]
23143
                xor     eax, 0A5A5A5A5h
23144
                xor     ebx, 0A5A5A5A5h
23145
                mov     ecx, [esp]
23146
                mov     edx, [esp+4]
23147
                sub     ecx, eax
23148
                sbb     edx, ebx
23149
                mov     [esp], ecx
23150
                mov     [esp+4], edx
23151
                mov     eax, [esp+8]
23152
                mov     ebx, [esp+0Ch]
23153
                xor     eax, ecx
23154
                xor     ebx, edx
23155
                mov     [esp+8], eax
23156
                mov     edi, eax
23157
                mov     esi, eax
23158
                shr     edi, 0Dh
23159
                xor     eax, 0FFFFFFFFh
23160
                mov     [esp+0Ch], ebx
23161
                mov     ecx, [esp+10h]
23162
                shl     eax, 13h
23163
                mov     ebp, ebx
23164
                shl     ebx, 13h
23165
                mov     edx, [esp+14h]
23166
                add     esi, ecx
23167
                mov     ecx, [esp+20h]
23168
                adc     ebp, edx
23169
                or      edi, ebx
23170
                mov     [esp+10h], esi
23171
                xor     esi, eax
23172
                mov     [esp+14h], ebp
23173
                mov     eax, [esp+18h]
23174
                xor     ebp, 0FFFFFFFFh
23175
                mov     ebx, [esp+1Ch]
23176
                xor     ebp, edi
23177
                sub     eax, esi
23178
                sbb     ebx, ebp
23179
                mov     edx, [esp+24h]
23180
                mov     [esp+18h], eax
23181
                xor     eax, ecx
23182
                mov     [esp+1Ch], ebx
23183
                xor     ebx, edx
23184
                mov     ecx, [esp+28h]
23185
                mov     edx, [esp+2Ch]
23186
                mov     edi, ebx
23187
                mov     ebp, ebx
23188
                mov     [esp+20h], eax
23189
                xor     ebp, 0FFFFFFFFh
23190
                shl     ebx, 9
23191
                add     ecx, eax
23192
                adc     edx, edi
23193
                mov     [esp+24h], edi
23194
                shr     ebp, 17h
23195
                mov     [esp+28h], ecx
23196
                shr     eax, 17h
23197
                xor     ecx, 0FFFFFFFFh
23198
                or      ebx, eax
23199
                mov     [esp+2Ch], edx
23200
                mov     eax, [esp+30h]
23201
                xor     ecx, ebx
23202
                mov     ebx, [esp+34h]
23203
                xor     edx, ebp
23204
                mov     edi, [esp+38h]
23205
                sub     eax, ecx
23206
                mov     ebp, [esp+3Ch]
23207
                mov     [esp+30h], eax
23208
                sbb     ebx, edx
23209
                xor     edi, eax
23210
                xor     ebp, ebx
23211
                mov     [esp+34h], ebx
23212
                mov     eax, [esp]
23213
                mov     ecx, edi
23214
                xor     edi, 0FFFFFFFFh
23215
                mov     ebx, [esp+4]
23216
                shl     edi, 13h
23217
                mov     [esp+38h], ecx
23218
                add     eax, ecx
23219
                mov     [esp+3Ch], ebp
23220
                adc     ebx, ebp
23221
                xor     edi, eax
23222
                shr     ecx, 0Dh
23223
                mov     [esp], eax
23224
                shl     ebp, 13h
23225
                mov     [esp+4], ebx
23226
                mov     esi, [esp+8]
23227
                xor     ebx, 0FFFFFFFFh
23228
                or      ebp, ecx
23229
                mov     edx, [esp+0Ch]
23230
                xor     ebp, ebx
23231
                sub     esi, edi
23232
                mov     eax, [esp+10h]
23233
                mov     ebx, [esp+14h]
23234
                sbb     edx, ebp
23235
                mov     [esp+8], esi
23236
                xor     eax, esi
23237
                mov     [esp+0Ch], edx
23238
                mov     edi, [esp+18h]
23239
                mov     ebp, [esp+1Ch]
23240
                xor     ebx, edx
23241
                mov     [esp+10h], eax
23242
                add     edi, eax
23243
                mov     esi, ebx
23244
                adc     ebp, ebx
23245
                mov     [esp+14h], ebx
23246
                shr     eax, 17h
23247
                mov     ecx, [esp+20h]
23248
                xor     ebx, 0FFFFFFFFh
23249
                mov     edx, [esp+24h]
23250
                shl     esi, 9
23251
                mov     [esp+18h], edi
23252
                or      eax, esi
23253
                xor     edi, 0FFFFFFFFh
23254
                shr     ebx, 17h
23255
                mov     [esp+1Ch], ebp
23256
                xor     eax, edi
23257
                mov     edi, [esp+28h]
23258
                xor     ebx, ebp
23259
                sub     ecx, eax
23260
                mov     ebp, [esp+2Ch]
23261
                mov     [esp+20h], ecx
23262
                sbb     edx, ebx
23263
                xor     edi, ecx
23264
                mov     [esp+24h], edx
23265
                xor     ebp, edx
23266
                mov     eax, [esp+30h]
23267
                mov     ebx, [esp+34h]
23268
                mov     [esp+28h], edi
23269
                add     eax, edi
23270
                mov     [esp+2Ch], ebp
23271
                mov     ecx, [esp+38h]
23272
                adc     ebx, ebp
23273
                mov     edx, [esp+3Ch]
23274
                mov     [esp+30h], eax
23275
                xor     eax, 89ABCDEFh
23276
                mov     [esp+34h], ebx
23277
                xor     ebx, 1234567h
23278
                sub     ecx, eax
23279
                sbb     edx, ebx
23280
                mov     [esp+38h], ecx
23281
                mov     [esp+3Ch], edx
23282
23283
            @_pass_loop:
23284
                mov     esi, [esp+64h]
23285
                mov     eax, [esp]
23286
                mov     ebx, [esp+4]
23287
                mov     ecx, [esp+40h]
23288
                mov     edx, [esp+44h]
23289
                xor     eax, ecx
23290
                xor     ebx, edx
23291
                mov     edi, eax
23292
                mov     [esp+40h], eax
23293
                shr     eax, 0Dh
23294
                mov     ebp, ebx
23295
                and     edi, 0FFh
23296
                mov     [esp+44h], ebx
23297
                shl     edi, 3
23298
                and     ebp, 0FFh
23299
                shr     ebx, 0Dh
23300
                and     eax, 7F8h
23301
                shl     ebp, 3
23302
                mov     ecx, [esi+edi]
23303
                mov     edx, [esi+edi+4]
23304
                xor     ecx, [esi+eax+800h]
23305
                xor     edx, [esi+eax+804h]
23306
                and     ebx, 7F8h
23307
                xor     ecx, [esi+ebp+1000h]
23308
                xor     edx, [esi+ebp+1004h]
23309
                xor     ecx, [esi+ebx+1800h]
23310
                xor     edx, [esi+ebx+1804h]
23311
                mov     edi, [esp+48h]
23312
                mov     ebp, [esp+4Ch]
23313
                sub     edi, ecx
23314
                mov     eax, [esp+40h]
23315
                sbb     ebp, edx
23316
                mov     ebx, [esp+44h]
23317
                mov     [esp+48h], edi
23318
                mov     edi, eax
23319
                shr     eax, 5
23320
                mov     [esp+4Ch], ebp
23321
                shr     edi, 15h
23322
                mov     ebp, ebx
23323
                shr     ebx, 5
23324
                and     eax, 7F8h
23325
                shr     ebp, 15h
23326
                and     edi, 7F8h
23327
                and     ebx, 7F8h
23328
                mov     ecx, [esi+eax+1800h]
23329
                mov     edx, [esi+eax+1804h]
23330
                xor     ecx, [esi+edi+1000h]
23331
                and     ebp, 7F8h
23332
                xor     edx, [esi+edi+1004h]
23333
                xor     ecx, [esi+ebx+800h]
23334
                xor     edx, [esi+ebx+804h]
23335
                xor     ecx, [esi+ebp]
23336
                xor     edx, [esi+ebp+4]
23337
                mov     eax, [esp+50h]
23338
                mov     ebx, [esp+54h]
23339
                add     eax, ecx
23340
                adc     ebx, edx
23341
                mov     ecx, eax
23342
                shr     ecx, 1Dh
23343
                mov     ebp, ebx
23344
                shl     ebx, 3
23345
                mov     edi, eax
23346
                shl     eax, 3
23347
                or      ebx, ecx
23348
                add     eax, edi
23349
                adc     ebx, ebp
23350
                mov     [esp+50h], eax
23351
                mov     [esp+54h], ebx
23352
                mov     eax, [esp+8]
23353
                mov     ebx, [esp+0Ch]
23354
                mov     ecx, [esp+48h]
23355
                mov     edx, [esp+4Ch]
23356
                xor     eax, ecx
23357
                xor     ebx, edx
23358
                mov     edi, eax
23359
                mov     [esp+48h], eax
23360
                shr     eax, 0Dh
23361
                mov     ebp, ebx
23362
                and     edi, 0FFh
23363
                mov     [esp+4Ch], ebx
23364
                shl     edi, 3
23365
                and     ebp, 0FFh
23366
                shr     ebx, 0Dh
23367
                and     eax, 7F8h
23368
                shl     ebp, 3
23369
                mov     ecx, [esi+edi]
23370
                mov     edx, [esi+edi+4]
23371
                xor     ecx, [esi+eax+800h]
23372
                xor     edx, [esi+eax+804h]
23373
                and     ebx, 7F8h
23374
                xor     ecx, [esi+ebp+1000h]
23375
                xor     edx, [esi+ebp+1004h]
23376
                xor     ecx, [esi+ebx+1800h]
23377
                xor     edx, [esi+ebx+1804h]
23378
                mov     edi, [esp+50h]
23379
                mov     ebp, [esp+54h]
23380
                sub     edi, ecx
23381
                mov     eax, [esp+48h]
23382
                sbb     ebp, edx
23383
                mov     ebx, [esp+4Ch]
23384
                mov     [esp+50h], edi
23385
                mov     edi, eax
23386
                shr     eax, 5
23387
                mov     [esp+54h], ebp
23388
                shr     edi, 15h
23389
                mov     ebp, ebx
23390
                shr     ebx, 5
23391
                and     eax, 7F8h
23392
                shr     ebp, 15h
23393
                and     edi, 7F8h
23394
                and     ebx, 7F8h
23395
                mov     ecx, [esi+eax+1800h]
23396
                mov     edx, [esi+eax+1804h]
23397
                xor     ecx, [esi+edi+1000h]
23398
                and     ebp, 7F8h
23399
                xor     edx, [esi+edi+1004h]
23400
                xor     ecx, [esi+ebx+800h]
23401
                xor     edx, [esi+ebx+804h]
23402
                xor     ecx, [esi+ebp]
23403
                xor     edx, [esi+ebp+4]
23404
                mov     eax, [esp+40h]
23405
                mov     ebx, [esp+44h]
23406
                add     eax, ecx
23407
                adc     ebx, edx
23408
                mov     ecx, eax
23409
                shr     ecx, 1Dh
23410
                mov     ebp, ebx
23411
                shl     ebx, 3
23412
                mov     edi, eax
23413
                shl     eax, 3
23414
                or      ebx, ecx
23415
                add     eax, edi
23416
                adc     ebx, ebp
23417
                mov     [esp+40h], eax
23418
                mov     [esp+44h], ebx
23419
                mov     eax, [esp+10h]
23420
                mov     ebx, [esp+14h]
23421
                mov     ecx, [esp+50h]
23422
                mov     edx, [esp+54h]
23423
                xor     eax, ecx
23424
                xor     ebx, edx
23425
                mov     edi, eax
23426
                mov     [esp+50h], eax
23427
                shr     eax, 0Dh
23428
                mov     ebp, ebx
23429
                and     edi, 0FFh
23430
                mov     [esp+54h], ebx
23431
                shl     edi, 3
23432
                and     ebp, 0FFh
23433
                shr     ebx, 0Dh
23434
                and     eax, 7F8h
23435
                shl     ebp, 3
23436
                mov     ecx, [esi+edi]
23437
                mov     edx, [esi+edi+4]
23438
                xor     ecx, [esi+eax+800h]
23439
                xor     edx, [esi+eax+804h]
23440
                and     ebx, 7F8h
23441
                xor     ecx, [esi+ebp+1000h]
23442
                xor     edx, [esi+ebp+1004h]
23443
                xor     ecx, [esi+ebx+1800h]
23444
                xor     edx, [esi+ebx+1804h]
23445
                mov     edi, [esp+40h]
23446
                mov     ebp, [esp+44h]
23447
                sub     edi, ecx
23448
                mov     eax, [esp+50h]
23449
                sbb     ebp, edx
23450
                mov     ebx, [esp+54h]
23451
                mov     [esp+40h], edi
23452
                mov     edi, eax
23453
                shr     eax, 5
23454
                mov     [esp+44h], ebp
23455
                shr     edi, 15h
23456
                mov     ebp, ebx
23457
                shr     ebx, 5
23458
                and     eax, 7F8h
23459
                shr     ebp, 15h
23460
                and     edi, 7F8h
23461
                and     ebx, 7F8h
23462
                mov     ecx, [esi+eax+1800h]
23463
                mov     edx, [esi+eax+1804h]
23464
                xor     ecx, [esi+edi+1000h]
23465
                and     ebp, 7F8h
23466
                xor     edx, [esi+edi+1004h]
23467
                xor     ecx, [esi+ebx+800h]
23468
                xor     edx, [esi+ebx+804h]
23469
                xor     ecx, [esi+ebp]
23470
                xor     edx, [esi+ebp+4]
23471
                mov     eax, [esp+48h]
23472
                mov     ebx, [esp+4Ch]
23473
                add     eax, ecx
23474
                adc     ebx, edx
23475
                mov     ecx, eax
23476
                shr     ecx, 1Dh
23477
                mov     ebp, ebx
23478
                shl     ebx, 3
23479
                mov     edi, eax
23480
                shl     eax, 3
23481
                or      ebx, ecx
23482
                add     eax, edi
23483
                adc     ebx, ebp
23484
                mov     [esp+48h], eax
23485
                mov     [esp+4Ch], ebx
23486
                mov     eax, [esp+18h]
23487
                mov     ebx, [esp+1Ch]
23488
                mov     ecx, [esp+40h]
23489
                mov     edx, [esp+44h]
23490
                xor     eax, ecx
23491
                xor     ebx, edx
23492
                mov     edi, eax
23493
                mov     [esp+40h], eax
23494
                shr     eax, 0Dh
23495
                mov     ebp, ebx
23496
                and     edi, 0FFh
23497
                mov     [esp+44h], ebx
23498
                shl     edi, 3
23499
                and     ebp, 0FFh
23500
                shr     ebx, 0Dh
23501
                and     eax, 7F8h
23502
                shl     ebp, 3
23503
                mov     ecx, [esi+edi]
23504
                mov     edx, [esi+edi+4]
23505
                xor     ecx, [esi+eax+800h]
23506
                xor     edx, [esi+eax+804h]
23507
                and     ebx, 7F8h
23508
                xor     ecx, [esi+ebp+1000h]
23509
                xor     edx, [esi+ebp+1004h]
23510
                xor     ecx, [esi+ebx+1800h]
23511
                xor     edx, [esi+ebx+1804h]
23512
                mov     edi, [esp+48h]
23513
                mov     ebp, [esp+4Ch]
23514
                sub     edi, ecx
23515
                mov     eax, [esp+40h]
23516
                sbb     ebp, edx
23517
                mov     ebx, [esp+44h]
23518
                mov     [esp+48h], edi
23519
                mov     edi, eax
23520
                shr     eax, 5
23521
                mov     [esp+4Ch], ebp
23522
                shr     edi, 15h
23523
                mov     ebp, ebx
23524
                shr     ebx, 5
23525
                and     eax, 7F8h
23526
                shr     ebp, 15h
23527
                and     edi, 7F8h
23528
                and     ebx, 7F8h
23529
                mov     ecx, [esi+eax+1800h]
23530
                mov     edx, [esi+eax+1804h]
23531
                xor     ecx, [esi+edi+1000h]
23532
                and     ebp, 7F8h
23533
                xor     edx, [esi+edi+1004h]
23534
                xor     ecx, [esi+ebx+800h]
23535
                xor     edx, [esi+ebx+804h]
23536
                xor     ecx, [esi+ebp]
23537
                xor     edx, [esi+ebp+4]
23538
                mov     eax, [esp+50h]
23539
                mov     ebx, [esp+54h]
23540
                add     eax, ecx
23541
                adc     ebx, edx
23542
                mov     ecx, eax
23543
                shr     ecx, 1Dh
23544
                mov     ebp, ebx
23545
                shl     ebx, 3
23546
                mov     edi, eax
23547
                shl     eax, 3
23548
                or      ebx, ecx
23549
                add     eax, edi
23550
                adc     ebx, ebp
23551
                mov     [esp+50h], eax
23552
                mov     [esp+54h], ebx
23553
                mov     eax, [esp+20h]
23554
                mov     ebx, [esp+24h]
23555
                mov     ecx, [esp+48h]
23556
                mov     edx, [esp+4Ch]
23557
                xor     eax, ecx
23558
                xor     ebx, edx
23559
                mov     edi, eax
23560
                mov     [esp+48h], eax
23561
                shr     eax, 0Dh
23562
                mov     ebp, ebx
23563
                and     edi, 0FFh
23564
                mov     [esp+4Ch], ebx
23565
                shl     edi, 3
23566
                and     ebp, 0FFh
23567
                shr     ebx, 0Dh
23568
                and     eax, 7F8h
23569
                shl     ebp, 3
23570
                mov     ecx, [esi+edi]
23571
                mov     edx, [esi+edi+4]
23572
                xor     ecx, [esi+eax+800h]
23573
                xor     edx, [esi+eax+804h]
23574
                and     ebx, 7F8h
23575
                xor     ecx, [esi+ebp+1000h]
23576
                xor     edx, [esi+ebp+1004h]
23577
                xor     ecx, [esi+ebx+1800h]
23578
                xor     edx, [esi+ebx+1804h]
23579
                mov     edi, [esp+50h]
23580
                mov     ebp, [esp+54h]
23581
                sub     edi, ecx
23582
                mov     eax, [esp+48h]
23583
                sbb     ebp, edx
23584
                mov     ebx, [esp+4Ch]
23585
                mov     [esp+50h], edi
23586
                mov     edi, eax
23587
                shr     eax, 5
23588
                mov     [esp+54h], ebp
23589
                shr     edi, 15h
23590
                mov     ebp, ebx
23591
                shr     ebx, 5
23592
                and     eax, 7F8h
23593
                shr     ebp, 15h
23594
                and     edi, 7F8h
23595
                and     ebx, 7F8h
23596
                mov     ecx, [esi+eax+1800h]
23597
                mov     edx, [esi+eax+1804h]
23598
                xor     ecx, [esi+edi+1000h]
23599
                and     ebp, 7F8h
23600
                xor     edx, [esi+edi+1004h]
23601
                xor     ecx, [esi+ebx+800h]
23602
                xor     edx, [esi+ebx+804h]
23603
                xor     ecx, [esi+ebp]
23604
                xor     edx, [esi+ebp+4]
23605
                mov     eax, [esp+40h]
23606
                mov     ebx, [esp+44h]
23607
                add     eax, ecx
23608
                adc     ebx, edx
23609
                mov     ecx, eax
23610
                shr     ecx, 1Dh
23611
                mov     ebp, ebx
23612
                shl     ebx, 3
23613
                mov     edi, eax
23614
                shl     eax, 3
23615
                or      ebx, ecx
23616
                add     eax, edi
23617
                adc     ebx, ebp
23618
                mov     [esp+40h], eax
23619
                mov     [esp+44h], ebx
23620
                mov     eax, [esp+28h]
23621
                mov     ebx, [esp+2Ch]
23622
                mov     ecx, [esp+50h]
23623
                mov     edx, [esp+54h]
23624
                xor     eax, ecx
23625
                xor     ebx, edx
23626
                mov     edi, eax
23627
                mov     [esp+50h], eax
23628
                shr     eax, 0Dh
23629
                mov     ebp, ebx
23630
                and     edi, 0FFh
23631
                mov     [esp+54h], ebx
23632
                shl     edi, 3
23633
                and     ebp, 0FFh
23634
                shr     ebx, 0Dh
23635
                and     eax, 7F8h
23636
                shl     ebp, 3
23637
                mov     ecx, [esi+edi]
23638
                mov     edx, [esi+edi+4]
23639
                xor     ecx, [esi+eax+800h]
23640
                xor     edx, [esi+eax+804h]
23641
                and     ebx, 7F8h
23642
                xor     ecx, [esi+ebp+1000h]
23643
                xor     edx, [esi+ebp+1004h]
23644
                xor     ecx, [esi+ebx+1800h]
23645
                xor     edx, [esi+ebx+1804h]
23646
                mov     edi, [esp+40h]
23647
                mov     ebp, [esp+44h]
23648
                sub     edi, ecx
23649
                mov     eax, [esp+50h]
23650
                sbb     ebp, edx
23651
                mov     ebx, [esp+54h]
23652
                mov     [esp+40h], edi
23653
                mov     edi, eax
23654
                shr     eax, 5
23655
                mov     [esp+44h], ebp
23656
                shr     edi, 15h
23657
                mov     ebp, ebx
23658
                shr     ebx, 5
23659
                and     eax, 7F8h
23660
                shr     ebp, 15h
23661
                and     edi, 7F8h
23662
                and     ebx, 7F8h
23663
                mov     ecx, [esi+eax+1800h]
23664
                mov     edx, [esi+eax+1804h]
23665
                xor     ecx, [esi+edi+1000h]
23666
                and     ebp, 7F8h
23667
                xor     edx, [esi+edi+1004h]
23668
                xor     ecx, [esi+ebx+800h]
23669
                xor     edx, [esi+ebx+804h]
23670
                xor     ecx, [esi+ebp]
23671
                xor     edx, [esi+ebp+4]
23672
                mov     eax, [esp+48h]
23673
                mov     ebx, [esp+4Ch]
23674
                add     eax, ecx
23675
                adc     ebx, edx
23676
                mov     ecx, eax
23677
                shr     ecx, 1Dh
23678
                mov     ebp, ebx
23679
                shl     ebx, 3
23680
                mov     edi, eax
23681
                shl     eax, 3
23682
                or      ebx, ecx
23683
                add     eax, edi
23684
                adc     ebx, ebp
23685
                mov     [esp+48h], eax
23686
                mov     [esp+4Ch], ebx
23687
                mov     eax, [esp+30h]
23688
                mov     ebx, [esp+34h]
23689
                mov     ecx, [esp+40h]
23690
                mov     edx, [esp+44h]
23691
                xor     eax, ecx
23692
                xor     ebx, edx
23693
                mov     edi, eax
23694
                mov     [esp+40h], eax
23695
                shr     eax, 0Dh
23696
                mov     ebp, ebx
23697
                and     edi, 0FFh
23698
                mov     [esp+44h], ebx
23699
                shl     edi, 3
23700
                and     ebp, 0FFh
23701
                shr     ebx, 0Dh
23702
                and     eax, 7F8h
23703
                shl     ebp, 3
23704
                mov     ecx, [esi+edi]
23705
                mov     edx, [esi+edi+4]
23706
                xor     ecx, [esi+eax+800h]
23707
                xor     edx, [esi+eax+804h]
23708
                and     ebx, 7F8h
23709
                xor     ecx, [esi+ebp+1000h]
23710
                xor     edx, [esi+ebp+1004h]
23711
                xor     ecx, [esi+ebx+1800h]
23712
                xor     edx, [esi+ebx+1804h]
23713
                mov     edi, [esp+48h]
23714
                mov     ebp, [esp+4Ch]
23715
                sub     edi, ecx
23716
                mov     eax, [esp+40h]
23717
                sbb     ebp, edx
23718
                mov     ebx, [esp+44h]
23719
                mov     [esp+48h], edi
23720
                mov     edi, eax
23721
                shr     eax, 5
23722
                mov     [esp+4Ch], ebp
23723
                shr     edi, 15h
23724
                mov     ebp, ebx
23725
                shr     ebx, 5
23726
                and     eax, 7F8h
23727
                shr     ebp, 15h
23728
                and     edi, 7F8h
23729
                and     ebx, 7F8h
23730
                mov     ecx, [esi+eax+1800h]
23731
                mov     edx, [esi+eax+1804h]
23732
                xor     ecx, [esi+edi+1000h]
23733
                and     ebp, 7F8h
23734
                xor     edx, [esi+edi+1004h]
23735
                xor     ecx, [esi+ebx+800h]
23736
                xor     edx, [esi+ebx+804h]
23737
                xor     ecx, [esi+ebp]
23738
                xor     edx, [esi+ebp+4]
23739
                mov     eax, [esp+50h]
23740
                mov     ebx, [esp+54h]
23741
                add     eax, ecx
23742
                adc     ebx, edx
23743
                mov     ecx, eax
23744
                shr     ecx, 1Dh
23745
                mov     ebp, ebx
23746
                shl     ebx, 3
23747
                mov     edi, eax
23748
                shl     eax, 3
23749
                or      ebx, ecx
23750
                add     eax, edi
23751
                adc     ebx, ebp
23752
                mov     [esp+50h], eax
23753
                mov     [esp+54h], ebx
23754
                mov     eax, [esp+38h]
23755
                mov     ebx, [esp+3Ch]
23756
                mov     ecx, [esp+48h]
23757
                mov     edx, [esp+4Ch]
23758
                xor     eax, ecx
23759
                xor     ebx, edx
23760
                mov     edi, eax
23761
                mov     [esp+48h], eax
23762
                shr     eax, 0Dh
23763
                mov     ebp, ebx
23764
                and     edi, 0FFh
23765
                mov     [esp+4Ch], ebx
23766
                shl     edi, 3
23767
                and     ebp, 0FFh
23768
                shr     ebx, 0Dh
23769
                and     eax, 7F8h
23770
                shl     ebp, 3
23771
                mov     ecx, [esi+edi]
23772
                mov     edx, [esi+edi+4]
23773
                xor     ecx, [esi+eax+800h]
23774
                xor     edx, [esi+eax+804h]
23775
                and     ebx, 7F8h
23776
                xor     ecx, [esi+ebp+1000h]
23777
                xor     edx, [esi+ebp+1004h]
23778
                xor     ecx, [esi+ebx+1800h]
23779
                xor     edx, [esi+ebx+1804h]
23780
                mov     edi, [esp+50h]
23781
                mov     ebp, [esp+54h]
23782
                sub     edi, ecx
23783
                mov     eax, [esp+48h]
23784
                sbb     ebp, edx
23785
                mov     ebx, [esp+4Ch]
23786
                mov     [esp+50h], edi
23787
                mov     edi, eax
23788
                shr     eax, 5
23789
                mov     [esp+54h], ebp
23790
                shr     edi, 15h
23791
                mov     ebp, ebx
23792
                shr     ebx, 5
23793
                and     eax, 7F8h
23794
                shr     ebp, 15h
23795
                and     edi, 7F8h
23796
                and     ebx, 7F8h
23797
                mov     ecx, [esi+eax+1800h]
23798
                mov     edx, [esi+eax+1804h]
23799
                xor     ecx, [esi+edi+1000h]
23800
                and     ebp, 7F8h
23801
                xor     edx, [esi+edi+1004h]
23802
                xor     ecx, [esi+ebx+800h]
23803
                xor     edx, [esi+ebx+804h]
23804
                xor     ecx, [esi+ebp]
23805
                xor     edx, [esi+ebp+4]
23806
                mov     eax, [esp+40h]
23807
                mov     ebx, [esp+44h]
23808
                add     eax, ecx
23809
                adc     ebx, edx
23810
                mov     ecx, eax
23811
                shr     ecx, 1Dh
23812
                mov     ebp, ebx
23813
                shl     ebx, 3
23814
                mov     edi, eax
23815
                shl     eax, 3
23816
                or      ebx, ecx
23817
                add     eax, edi
23818
                adc     ebx, ebp
23819
                mov     [esp+40h], eax
23820
                mov     [esp+44h], ebx
23821
                mov     esi, [esp+60h]
23822
                test    esi, esi
23823
                jnz     @_yet_more_cycles
23824
                jmp     @_pass_loop_end
23825
23826
            @_yet_more_cycles:
23827
23828
                dec     esi
23829
                mov     [esp+60h], esi
23830
                mov     eax, [esp+38h]
23831
                mov     ebx, [esp+3Ch]
23832
                xor     eax, 0A5A5A5A5h
23833
                xor     ebx, 0A5A5A5A5h
23834
                mov     ecx, [esp]
23835
                mov     edx, [esp+4]
23836
                sub     ecx, eax
23837
                sbb     edx, ebx
23838
                mov     [esp], ecx
23839
                mov     [esp+4], edx
23840
                mov     eax, [esp+8]
23841
                mov     ebx, [esp+0Ch]
23842
                xor     eax, ecx
23843
                xor     ebx, edx
23844
                mov     [esp+8], eax
23845
                mov     edi, eax
23846
                mov     esi, eax
23847
                shr     edi, 0Dh
23848
                xor     eax, 0FFFFFFFFh
23849
                mov     [esp+0Ch], ebx
23850
                mov     ecx, [esp+10h]
23851
                shl     eax, 13h
23852
                mov     ebp, ebx
23853
                shl     ebx, 13h
23854
                mov     edx, [esp+14h]
23855
                add     esi, ecx
23856
                mov     ecx, [esp+20h]
23857
                adc     ebp, edx
23858
                or      edi, ebx
23859
                mov     [esp+10h], esi
23860
                xor     esi, eax
23861
                mov     [esp+14h], ebp
23862
                mov     eax, [esp+18h]
23863
                xor     ebp, 0FFFFFFFFh
23864
                mov     ebx, [esp+1Ch]
23865
                xor     ebp, edi
23866
                sub     eax, esi
23867
                sbb     ebx, ebp
23868
                mov     edx, [esp+24h]
23869
                mov     [esp+18h], eax
23870
                xor     eax, ecx
23871
                mov     [esp+1Ch], ebx
23872
                xor     ebx, edx
23873
                mov     ecx, [esp+28h]
23874
                mov     edx, [esp+2Ch]
23875
                mov     edi, ebx
23876
                mov     ebp, ebx
23877
                mov     [esp+20h], eax
23878
                xor     ebp, 0FFFFFFFFh
23879
                shl     ebx, 9
23880
                add     ecx, eax
23881
                adc     edx, edi
23882
                mov     [esp+24h], edi
23883
                shr     ebp, 17h
23884
                mov     [esp+28h], ecx
23885
                shr     eax, 17h
23886
                xor     ecx, 0FFFFFFFFh
23887
                or      ebx, eax
23888
                mov     [esp+2Ch], edx
23889
                mov     eax, [esp+30h]
23890
                xor     ecx, ebx
23891
                mov     ebx, [esp+34h]
23892
                xor     edx, ebp
23893
                mov     edi, [esp+38h]
23894
                sub     eax, ecx
23895
                mov     ebp, [esp+3Ch]
23896
                mov     [esp+30h], eax
23897
                sbb     ebx, edx
23898
                xor     edi, eax
23899
                xor     ebp, ebx
23900
                mov     [esp+34h], ebx
23901
                mov     eax, [esp]
23902
                mov     ecx, edi
23903
                xor     edi, 0FFFFFFFFh
23904
                mov     ebx, [esp+4]
23905
                shl     edi, 13h
23906
                mov     [esp+38h], ecx
23907
                add     eax, ecx
23908
                mov     [esp+3Ch], ebp
23909
                adc     ebx, ebp
23910
                xor     edi, eax
23911
                shr     ecx, 0Dh
23912
                mov     [esp], eax
23913
                shl     ebp, 13h
23914
                mov     [esp+4], ebx
23915
                mov     esi, [esp+8]
23916
                xor     ebx, 0FFFFFFFFh
23917
                or      ebp, ecx
23918
                mov     edx, [esp+0Ch]
23919
                xor     ebp, ebx
23920
                sub     esi, edi
23921
                mov     eax, [esp+10h]
23922
                mov     ebx, [esp+14h]
23923
                sbb     edx, ebp
23924
                mov     [esp+8], esi
23925
                xor     eax, esi
23926
                mov     [esp+0Ch], edx
23927
                mov     edi, [esp+18h]
23928
                mov     ebp, [esp+1Ch]
23929
                xor     ebx, edx
23930
                mov     [esp+10h], eax
23931
                add     edi, eax
23932
                mov     esi, ebx
23933
                adc     ebp, ebx
23934
                mov     [esp+14h], ebx
23935
                shr     eax, 17h
23936
                mov     ecx, [esp+20h]
23937
                xor     ebx, 0FFFFFFFFh
23938
                mov     edx, [esp+24h]
23939
                shl     esi, 9
23940
                mov     [esp+18h], edi
23941
                or      eax, esi
23942
                xor     edi, 0FFFFFFFFh
23943
                shr     ebx, 17h
23944
                mov     [esp+1Ch], ebp
23945
                xor     eax, edi
23946
                mov     edi, [esp+28h]
23947
                xor     ebx, ebp
23948
                sub     ecx, eax
23949
                mov     ebp, [esp+2Ch]
23950
                mov     [esp+20h], ecx
23951
                sbb     edx, ebx
23952
                xor     edi, ecx
23953
                mov     [esp+24h], edx
23954
                xor     ebp, edx
23955
                mov     eax, [esp+30h]
23956
                mov     ebx, [esp+34h]
23957
                mov     [esp+28h], edi
23958
                add     eax, edi
23959
                mov     [esp+2Ch], ebp
23960
                mov     ecx, [esp+38h]
23961
                adc     ebx, ebp
23962
                mov     edx, [esp+3Ch]
23963
                mov     [esp+30h], eax
23964
                xor     eax, 89ABCDEFh
23965
                mov     [esp+34h], ebx
23966
                xor     ebx, 1234567h
23967
                sub     ecx, eax
23968
                sbb     edx, ebx
23969
                mov     [esp+38h], ecx
23970
                mov     [esp+3Ch], edx
23971
                mov     eax, [esp+40h]
23972
                mov     ebx, [esp+44h]
23973
                mov     ecx, [esp+48h]
23974
                mov     edx, [esp+4Ch]
23975
                mov     [esp+48h], eax
23976
                mov     [esp+4Ch], ebx
23977
                mov     edi, [esp+50h]
23978
                mov     ebp, [esp+54h]
23979
                mov     [esp+50h], ecx
23980
                mov     [esp+54h], edx
23981
                mov     [esp+40h], edi
23982
                mov     [esp+44h], ebp
23983
                jmp     @_pass_loop
23984
23985
            @_pass_loop_end:
23986
                mov     esi, [esp+5Ch]
23987
                mov     eax, [esp+40h]
23988
                mov     ebx, [esp+44h]
23989
                mov     edi, [esp+48h]
23990
                mov     ebp, [esp+4Ch]
23991
                mov     ecx, [esi]
23992
                mov     edx, [esi+4]
23993
                xor     eax, ecx
23994
                xor     ebx, edx
23995
                mov     [esi], eax
23996
                mov     ecx, [esi+8]
23997
                mov     edx, [esi+0Ch]
23998
                mov     [esi+4], ebx
23999
                sub     edi, ecx
24000
                mov     ecx, [esi+10h]
24001
                mov     [esi+8], edi
24002
                sbb     ebp, edx
24003
                mov     edx, [esi+14h]
24004
                mov     [esi+0Ch], ebp
24005
                mov     eax, [esp+50h]
24006
                mov     ebx, [esp+54h]
24007
                add     ecx, eax
24008
                adc     edx, ebx
24009
                mov     [esi+10h], ecx
24010
                mov     [esi+14h], edx
24011
                mov     ebp, [esp+68h]
24012
                mov     esp, ebp
24013
                pop     ebp
24014
                pop     edi
24015
                pop     esi
24016
                pop     ebx
24017
end;
24018
{$ENDIF}
24019
24020
{$IFDEF THash_Panama_asm}
24021
procedure THash_Panama.DoPull;
24022
asm
24023
                push    ebx
24024
                push    esi
24025
                lea     edx, [eax].THash_Panama.FTap
24026
                push    edi
24027
                lea     edi, [eax].THash_Panama.FDigest
24028
                push    ebp
24029
                lea     eax, [eax].THash_Panama.FLFSRBuffer
24030
                mov     ebp, esp
24031
                add     esp, 0FFFFFF5Ch
24032
                and     esp, 0FFFFFFE0h
24033
                mov     [esp+88h], edi
24034
                mov     [esp+8Ch], edx
24035
                mov     ecx, 20h
24036
                mov     [esp+90h], eax
24037
                mov     [esp+0A0h], ebp
24038
                mov     eax, [edi]
24039
                mov     ebx, [edi+4]
24040
                mov     [esp], eax
24041
                mov     [esp+4], ebx
24042
                mov     ebp, [edi+8]
24043
                mov     esi, [edi+0Ch]
24044
                mov     [esp+8], ebp
24045
                mov     [esp+0Ch], esi
24046
                mov     eax, [edi+10h]
24047
                mov     ebx, [edi+14h]
24048
                mov     [esp+10h], eax
24049
                mov     [esp+14h], ebx
24050
                mov     ebp, [edi+18h]
24051
                mov     esi, [edi+1Ch]
24052
                mov     [esp+18h], ebp
24053
                mov     [esp+1Ch], esi
24054
                mov     eax, [edi+20h]
24055
                mov     ebx, [edi+24h]
24056
                mov     [esp+20h], eax
24057
                mov     [esp+24h], ebx
24058
                mov     ebp, [edi+28h]
24059
                mov     esi, [edi+2Ch]
24060
                mov     [esp+28h], ebp
24061
                mov     [esp+2Ch], esi
24062
                mov     eax, [edi+30h]
24063
                mov     ebx, [edi+34h]
24064
                mov     [esp+30h], eax
24065
                mov     [esp+34h], ebx
24066
                mov     ebp, [edi+38h]
24067
                mov     esi, [edi+3Ch]
24068
                mov     eax, [edi+40h]
24069
                mov     [esp+38h], ebp
24070
                mov     [esp+3Ch], esi
24071
                mov     [esp+40h], eax
24072
            @@_loop_start:
24073
                mov     esi, [esp+8Ch]
24074
                dec     ecx
24075
                mov     ebp, [esp+90h]
24076
                mov     [esp+9Ch], ecx
24077
                mov     edx, [esi]
24078
                mov     eax, edx
24079
                mov     ecx, edx
24080
                add     edx, 10h
24081
                dec     eax
24082
                add     ecx, 4
24083
                and     edx, 1Fh
24084
                and     eax, 1Fh
24085
                and     ecx, 1Fh
24086
                shl     edx, 5
24087
                mov     [esi], eax
24088
                shl     ecx, 5
24089
                mov     ebx, eax
24090
                shl     eax, 5
24091
                add     edx, ebp
24092
                add     ebx, 19h
24093
                add     eax, ebp
24094
                and     ebx, 1Fh
24095
                add     ecx, ebp
24096
                shl     ebx, 5
24097
                mov     [esp+98h], edx
24098
                add     ebx, ebp
24099
                mov     [esp+94h], ecx
24100
                mov     ecx, [ebx]
24101
                mov     edx, [eax+8]
24102
                mov     edi, [ebx+4]
24103
                mov     ebp, [eax+0Ch]
24104
                xor     ecx, edx
24105
                xor     edi, ebp
24106
                mov     [ebx], ecx
24107
                mov     [ebx+4], edi
24108
                mov     ecx, [ebx+8]
24109
                mov     edx, [eax+10h]
24110
                mov     edi, [ebx+0Ch]
24111
                mov     ebp, [eax+14h]
24112
                xor     ecx, edx
24113
                xor     edi, ebp
24114
                mov     [ebx+8], ecx
24115
                mov     [ebx+0Ch], edi
24116
                mov     ecx, [ebx+10h]
24117
                mov     edx, [eax+18h]
24118
                mov     edi, [ebx+14h]
24119
                mov     ebp, [eax+1Ch]
24120
                xor     ecx, edx
24121
                xor     edi, ebp
24122
                mov     [ebx+10h], ecx
24123
                mov     [ebx+14h], edi
24124
                mov     ecx, [ebx+18h]
24125
                mov     edx, [eax]
24126
                mov     edi, [ebx+1Ch]
24127
                mov     ebp, [eax+4]
24128
                xor     ecx, edx
24129
                xor     edi, ebp
24130
                mov     [ebx+18h], ecx
24131
                mov     [ebx+1Ch], edi
24132
                mov     ecx, [eax]
24133
                mov     edx, [esp+4]
24134
                mov     edi, [eax+4]
24135
                mov     ebp, [esp+8]
24136
                xor     ecx, edx
24137
                xor     edi, ebp
24138
                mov     [eax], ecx
24139
                mov     [eax+4], edi
24140
                mov     ecx, [eax+8]
24141
                mov     edx, [esp+0Ch]
24142
                mov     edi, [eax+0Ch]
24143
                mov     ebp, [esp+10h]
24144
                xor     ecx, edx
24145
                xor     edi, ebp
24146
                mov     [eax+8], ecx
24147
                mov     [eax+0Ch], edi
24148
                mov     ecx, [eax+10h]
24149
                mov     edx, [esp+14h]
24150
                mov     edi, [eax+14h]
24151
                mov     ebp, [esp+18h]
24152
                xor     ecx, edx
24153
                xor     edi, ebp
24154
                mov     [eax+10h], ecx
24155
                mov     [eax+14h], edi
24156
                mov     ecx, [eax+18h]
24157
                mov     edx, [esp+1Ch]
24158
                mov     edi, [eax+1Ch]
24159
                mov     ebp, [esp+20h]
24160
                xor     ecx, edx
24161
                xor     edi, ebp
24162
                mov     [eax+18h], ecx
24163
                mov     [eax+1Ch], edi
24164
                mov     eax, [esp]
24165
                mov     ebx, [esp+4]
24166
                mov     ecx, [esp+8]
24167
                mov     esi, ecx
24168
                xor     ecx, 0FFFFFFFFh
24169
                mov     ebp, ebx
24170
                or      ecx, ebx
24171
                xor     ecx, eax
24172
                mov     [esp+44h], ecx
24173
                mov     ecx, [esp+0Ch]
24174
                mov     edx, [esp+10h]
24175
                mov     eax, ecx
24176
                xor     ecx, 0FFFFFFFFh
24177
                mov     ebx, edx
24178
                xor     edx, 0FFFFFFFFh
24179
                or      ecx, esi
24180
                or      edx, eax
24181
                xor     ebp, ecx
24182
                mov     ecx, [esp+14h]
24183
                rol     ebp, 0Fh
24184
                xor     esi, edx
24185
                mov     edx, [esp+18h]
24186
                ror     esi, 9
24187
                mov     [esp+58h], ebp
24188
                mov     ebp, ecx
24189
                xor     ecx, 0FFFFFFFFh
24190
                mov     [esp+6Ch], esi
24191
                mov     esi, edx
24192
                xor     edx, 0FFFFFFFFh
24193
                or      ecx, ebx
24194
                or      edx, ebp
24195
                xor     eax, ecx
24196
                mov     ecx, [esp+1Ch]
24197
                ror     eax, 8
24198
                xor     ebx, edx
24199
                mov     edx, [esp+20h]
24200
                rol     ebx, 6
24201
                mov     [esp+80h], eax
24202
                mov     eax, ecx
24203
                xor     ecx, 0FFFFFFFFh
24204
                mov     [esp+50h], ebx
24205
                mov     ebx, edx
24206
                xor     edx, 0FFFFFFFFh
24207
                or      ecx, esi
24208
                or      edx, eax
24209
                xor     ebp, ecx
24210
                mov     ecx, [esp+24h]
24211
                rol     ebp, 4
24212
                xor     esi, edx
24213
                mov     edx, [esp+28h]
24214
                ror     esi, 5
24215
                mov     [esp+64h], ebp
24216
                mov     ebp, ecx
24217
                xor     ecx, 0FFFFFFFFh
24218
                mov     [esp+78h], esi
24219
                mov     esi, edx
24220
                xor     edx, 0FFFFFFFFh
24221
                or      ecx, ebx
24222
                or      edx, ebp
24223
                xor     eax, ecx
24224
                mov     ecx, [esp+2Ch]
24225
                rol     eax, 1
24226
                xor     ebx, edx
24227
                mov     edx, [esp+30h]
24228
                ror     ebx, 0Bh
24229
                mov     [esp+48h], eax
24230
                mov     eax, ecx
24231
                xor     ecx, 0FFFFFFFFh
24232
                mov     [esp+5Ch], ebx
24233
                mov     ebx, edx
24234
                xor     edx, 0FFFFFFFFh
24235
                or      ecx, esi
24236
                or      edx, eax
24237
                xor     ebp, ecx
24238
                mov     ecx, [esp+34h]
24239
                rol     ebp, 2
24240
                xor     esi, edx
24241
                mov     edx, [esp+38h]
24242
                rol     esi, 8
24243
                mov     [esp+70h], ebp
24244
                mov     ebp, ecx
24245
                xor     ecx, 0FFFFFFFFh
24246
                mov     [esp+84h], esi
24247
                mov     esi, edx
24248
                xor     edx, 0FFFFFFFFh
24249
                or      ecx, ebx
24250
                or      edx, ebp
24251
                xor     eax, ecx
24252
                mov     ecx, [esp+3Ch]
24253
                rol     eax, 0Ah
24254
                xor     ebx, edx
24255
                mov     edx, [esp+40h]
24256
                rol     ebx, 0Dh
24257
                mov     [esp+54h], eax
24258
                mov     eax, ecx
24259
                xor     ecx, 0FFFFFFFFh
24260
                mov     [esp+68h], ebx
24261
                mov     ebx, edx
24262
                xor     edx, 0FFFFFFFFh
24263
                or      ecx, esi
24264
                or      edx, eax
24265
                xor     ebp, ecx
24266
                mov     ecx, [esp]
24267
                rol     ebp, 9
24268
                xor     esi, edx
24269
                mov     edx, [esp+4]
24270
                rol     esi, 3
24271
                mov     [esp+7Ch], ebp
24272
                mov     ebp, ecx
24273
                xor     ecx, 0FFFFFFFFh
24274
                mov     [esp+4Ch], esi
24275
                mov     esi, edx
24276
                xor     edx, 0FFFFFFFFh
24277
                or      ecx, ebx
24278
                or      edx, ebp
24279
                xor     eax, ecx
24280
                xor     ebx, edx
24281
                ror     eax, 4
24282
                rol     ebx, 0Eh
24283
                mov     [esp+60h], eax
24284
                mov     [esp+74h], ebx
24285
                mov     eax, [esp+44h]
24286
                mov     ebx, [esp+48h]
24287
                mov     ecx, [esp+4Ch]
24288
                xor     eax, 1
24289
                mov     edx, [esp+50h]
24290
                xor     eax, ebx
24291
                mov     ebp, [esp+54h]
24292
                xor     eax, ebp
24293
                mov     esi, [esp+94h]
24294
                mov     [esp], eax
24295
                xor     ebx, ecx
24296
                mov     eax, [esp+58h]
24297
                xor     ecx, edx
24298
                mov     edi, [esp+5Ch]
24299
                xor     ebx, eax
24300
                xor     ecx, edi
24301
                xor     ebx, [esi]
24302
                xor     ecx, [esi+4]
24303
                mov     [esp+4], ebx
24304
                mov     [esp+8], ecx
24305
                xor     edx, ebp
24306
                mov     ecx, [esp+60h]
24307
                xor     ebp, eax
24308
                mov     ebx, [esp+64h]
24309
                xor     edx, ecx
24310
                xor     ebp, ebx
24311
                xor     edx, [esi+8]
24312
                xor     ebp, [esi+0Ch]
24313
                mov     [esp+0Ch], edx
24314
                mov     [esp+10h], ebp
24315
                xor     eax, edi
24316
                mov     edx, [esp+68h]
24317
                xor     edi, ecx
24318
                mov     ebp, [esp+6Ch]
24319
                xor     eax, edx
24320
                xor     edi, ebp
24321
                xor     eax, [esi+10h]
24322
                xor     edi, [esi+14h]
24323
                mov     [esp+14h], eax
24324
                mov     [esp+18h], edi
24325
                xor     ecx, ebx
24326
                mov     eax, [esp+70h]
24327
                xor     ebx, edx
24328
                mov     edi, [esp+74h]
24329
                xor     ecx, eax
24330
                xor     ebx, edi
24331
                xor     ecx, [esi+18h]
24332
                xor     ebx, [esi+1Ch]
24333
                mov     [esp+1Ch], ecx
24334
                mov     [esp+20h], ebx
24335
                mov     esi, [esp+98h]
24336
                xor     edx, ebp
24337
                mov     ecx, [esp+78h]
24338
                xor     ebp, eax
24339
                mov     ebx, [esp+7Ch]
24340
                xor     edx, ecx
24341
                xor     ebp, ebx
24342
                xor     edx, [esi]
24343
                xor     ebp, [esi+4]
24344
                mov     [esp+24h], edx
24345
                mov     [esp+28h], ebp
24346
                xor     eax, edi
24347
                mov     edx, [esp+80h]
24348
                xor     edi, ecx
24349
                mov     ebp, [esp+84h]
24350
                xor     eax, edx
24351
                xor     edi, ebp
24352
                xor     eax, [esi+8]
24353
                xor     edi, [esi+0Ch]
24354
                mov     [esp+2Ch], eax
24355
                mov     [esp+30h], edi
24356
                xor     ecx, ebx
24357
                mov     eax, [esp+44h]
24358
                xor     ebx, edx
24359
                mov     edi, [esp+48h]
24360
                xor     ecx, eax
24361
                xor     ebx, edi
24362
                xor     ecx, [esi+10h]
24363
                xor     ebx, [esi+14h]
24364
                mov     [esp+34h], ecx
24365
                mov     [esp+38h], ebx
24366
                mov     ecx, [esp+4Ch]
24367
                xor     edx, ebp
24368
                mov     ebx, [esp+50h]
24369
                xor     ebp, eax
24370
                xor     edx, ecx
24371
                xor     ebp, ebx
24372
                xor     edx, [esi+18h]
24373
                xor     ebp, [esi+1Ch]
24374
                mov     [esp+3Ch], edx
24375
                mov     [esp+40h], ebp
24376
                mov     ecx, [esp+9Ch]
24377
                test    ecx, ecx
24378
                jnz     @@_loop_start
24379
                mov     edi, [esp+88h]
24380
                mov     ebp, [esp+0A0h]
24381
                mov     eax, [esp+24h]
24382
                mov     ebx, [esp+28h]
24383
                mov     [edi], eax
24384
                mov     [edi+4], ebx
24385
                mov     ecx, [esp+2Ch]
24386
                mov     edx, [esp+30h]
24387
                mov     [edi+8], ecx
24388
                mov     [edi+0Ch], edx
24389
                mov     eax, [esp+34h]
24390
                mov     ebx, [esp+38h]
24391
                mov     [edi+10h], eax
24392
                mov     [edi+14h], ebx
24393
                mov     ecx, [esp+3Ch]
24394
                mov     edx, [esp+40h]
24395
                mov     esp, ebp
24396
                mov     [edi+18h], ecx
24397
                mov     [edi+1Ch], edx
24398
                pop     ebp
24399
                pop     edi
24400
                pop     esi
24401
                pop     ebx
24402
end;
24403
24404
procedure THash_Panama.DoTransform(Buffer: PUInt32Array);
24405
asm
24406
                push    ebx
24407
                push    esi
24408
                mov     esi, edx
24409
                push    edi
24410
                lea     edi, [eax].THash_Panama.FDigest
24411
                lea     edx, [eax].THash_Panama.FTap
24412
                push    ebp
24413
                lea     eax, [eax].THash_Panama.FLFSRBuffer
24414
24415
                mov     ebp, esp
24416
                add     esp, 0FFFFFF5Ch
24417
                and     esp, 0FFFFFFE0h
24418
                mov     [esp+88h], edi
24419
                mov     [esp+8Ch], esi
24420
                mov     [esp+90h], edx
24421
                mov     [esp+94h], eax
24422
                mov     [esp+0A0h], ebp
24423
                mov     eax, [edi]
24424
                mov     ebx, [edi+4]
24425
                mov     [esp], eax
24426
                mov     [esp+4], ebx
24427
                mov     ebp, [edi+8]
24428
                mov     esi, [edi+0Ch]
24429
                mov     [esp+8], ebp
24430
                mov     [esp+0Ch], esi
24431
                mov     eax, [edi+10h]
24432
                mov     ebx, [edi+14h]
24433
                mov     [esp+10h], eax
24434
                mov     [esp+14h], ebx
24435
                mov     ebp, [edi+18h]
24436
                mov     esi, [edi+1Ch]
24437
                mov     [esp+18h], ebp
24438
                mov     [esp+1Ch], esi
24439
                mov     eax, [edi+20h]
24440
                mov     ebx, [edi+24h]
24441
                mov     [esp+20h], eax
24442
                mov     [esp+24h], ebx
24443
                mov     ebp, [edi+28h]
24444
                mov     esi, [edi+2Ch]
24445
                mov     [esp+28h], ebp
24446
                mov     [esp+2Ch], esi
24447
                mov     eax, [edi+30h]
24448
                mov     ebx, [edi+34h]
24449
                mov     [esp+30h], eax
24450
                mov     [esp+34h], ebx
24451
                mov     ebp, [edi+38h]
24452
                mov     esi, [edi+3Ch]
24453
                mov     eax, [edi+40h]
24454
                mov     [esp+38h], ebp
24455
                mov     [esp+3Ch], esi
24456
                mov     [esp+40h], eax
24457
24458
                mov     eax, [esp]
24459
                mov     ebx, [esp+4]
24460
                mov     ecx, [esp+8]
24461
                mov     esi, ecx
24462
                xor     ecx, 0FFFFFFFFh
24463
                mov     ebp, ebx
24464
                or      ecx, ebx
24465
                xor     ecx, eax
24466
                mov     [esp+44h], ecx
24467
                mov     ecx, [esp+0Ch]
24468
                mov     edx, [esp+10h]
24469
                mov     eax, ecx
24470
                xor     ecx, 0FFFFFFFFh
24471
                mov     ebx, edx
24472
                xor     edx, 0FFFFFFFFh
24473
                or      ecx, esi
24474
                or      edx, eax
24475
                xor     ebp, ecx
24476
                mov     ecx, [esp+14h]
24477
                rol     ebp, 0Fh
24478
                xor     esi, edx
24479
                mov     edx, [esp+18h]
24480
                ror     esi, 9
24481
                mov     [esp+58h], ebp
24482
                mov     ebp, ecx
24483
                xor     ecx, 0FFFFFFFFh
24484
                mov     [esp+6Ch], esi
24485
                mov     esi, edx
24486
                xor     edx, 0FFFFFFFFh
24487
                or      ecx, ebx
24488
                or      edx, ebp
24489
                xor     eax, ecx
24490
                mov     ecx, [esp+1Ch]
24491
                ror     eax, 8
24492
                xor     ebx, edx
24493
                mov     edx, [esp+20h]
24494
                rol     ebx, 6
24495
                mov     [esp+80h], eax
24496
                mov     eax, ecx
24497
                xor     ecx, 0FFFFFFFFh
24498
                mov     [esp+50h], ebx
24499
                mov     ebx, edx
24500
                xor     edx, 0FFFFFFFFh
24501
                or      ecx, esi
24502
                or      edx, eax
24503
                xor     ebp, ecx
24504
                mov     ecx, [esp+24h]
24505
                rol     ebp, 4
24506
                xor     esi, edx
24507
                mov     edx, [esp+28h]
24508
                ror     esi, 5
24509
                mov     [esp+64h], ebp
24510
                mov     ebp, ecx
24511
                xor     ecx, 0FFFFFFFFh
24512
                mov     [esp+78h], esi
24513
                mov     esi, edx
24514
                xor     edx, 0FFFFFFFFh
24515
                or      ecx, ebx
24516
                or      edx, ebp
24517
                xor     eax, ecx
24518
                mov     ecx, [esp+2Ch]
24519
                rol     eax, 1
24520
                xor     ebx, edx
24521
                mov     edx, [esp+30h]
24522
                ror     ebx, 0Bh
24523
                mov     [esp+48h], eax
24524
                mov     eax, ecx
24525
                xor     ecx, 0FFFFFFFFh
24526
                mov     [esp+5Ch], ebx
24527
                mov     ebx, edx
24528
                xor     edx, 0FFFFFFFFh
24529
                or      ecx, esi
24530
                or      edx, eax
24531
                xor     ebp, ecx
24532
                mov     ecx, [esp+34h]
24533
                rol     ebp, 2
24534
                xor     esi, edx
24535
                mov     edx, [esp+38h]
24536
                rol     esi, 8
24537
                mov     [esp+70h], ebp
24538
                mov     ebp, ecx
24539
                xor     ecx, 0FFFFFFFFh
24540
                mov     [esp+84h], esi
24541
                mov     esi, edx
24542
                xor     edx, 0FFFFFFFFh
24543
                or      ecx, ebx
24544
                or      edx, ebp
24545
                xor     eax, ecx
24546
                mov     ecx, [esp+3Ch]
24547
                rol     eax, 0Ah
24548
                xor     ebx, edx
24549
                mov     edx, [esp+40h]
24550
                rol     ebx, 0Dh
24551
                mov     [esp+54h], eax
24552
                mov     eax, ecx
24553
                xor     ecx, 0FFFFFFFFh
24554
                mov     [esp+68h], ebx
24555
                mov     ebx, edx
24556
                xor     edx, 0FFFFFFFFh
24557
                or      ecx, esi
24558
                or      edx, eax
24559
                xor     ebp, ecx
24560
                mov     ecx, [esp]
24561
                rol     ebp, 9
24562
                xor     esi, edx
24563
                mov     edx, [esp+4]
24564
                rol     esi, 3
24565
                mov     [esp+7Ch], ebp
24566
                mov     ebp, ecx
24567
                xor     ecx, 0FFFFFFFFh
24568
                mov     [esp+4Ch], esi
24569
                mov     esi, edx
24570
                xor     edx, 0FFFFFFFFh
24571
                or      ecx, ebx
24572
                or      edx, ebp
24573
                xor     eax, ecx
24574
                xor     ebx, edx
24575
                ror     eax, 4
24576
                rol     ebx, 0Eh
24577
                mov     [esp+60h], eax
24578
                mov     [esp+74h], ebx
24579
                mov     esi, [esp+90h]
24580
                mov     ebp, [esp+94h]
24581
                mov     edx, [esi]
24582
                mov     eax, edx
24583
                add     edx, 10h
24584
                dec     eax
24585
                and     edx, 1Fh
24586
                and     eax, 1Fh
24587
                shl     edx, 5
24588
                mov     [esi], eax
24589
                add     edx, ebp
24590
                mov     ebx, eax
24591
                shl     eax, 5
24592
                add     ebx, 19h
24593
                add     eax, ebp
24594
                and     ebx, 1Fh
24595
                shl     ebx, 5
24596
                mov     [esp+98h], edx
24597
                add     ebx, ebp
24598
                mov     ecx, [ebx]
24599
                mov     edx, [eax+8]
24600
                mov     edi, [ebx+4]
24601
                mov     ebp, [eax+0Ch]
24602
                xor     ecx, edx
24603
                xor     edi, ebp
24604
                mov     [ebx], ecx
24605
                mov     [ebx+4], edi
24606
                mov     ecx, [ebx+8]
24607
                mov     edx, [eax+10h]
24608
                mov     edi, [ebx+0Ch]
24609
                mov     ebp, [eax+14h]
24610
                xor     ecx, edx
24611
                xor     edi, ebp
24612
                mov     [ebx+8], ecx
24613
                mov     [ebx+0Ch], edi
24614
                mov     ecx, [ebx+10h]
24615
                mov     edx, [eax+18h]
24616
                mov     edi, [ebx+14h]
24617
                mov     ebp, [eax+1Ch]
24618
                xor     ecx, edx
24619
                xor     edi, ebp
24620
                mov     [ebx+10h], ecx
24621
                mov     [ebx+14h], edi
24622
                mov     ecx, [ebx+18h]
24623
                mov     edx, [eax]
24624
                mov     edi, [ebx+1Ch]
24625
                mov     ebp, [eax+4]
24626
                xor     ecx, edx
24627
                xor     edi, ebp
24628
                mov     [ebx+18h], ecx
24629
                mov     [ebx+1Ch], edi
24630
                mov     ebx, [esp+8Ch]
24631
                mov     ecx, [eax]
24632
                mov     edx, [ebx]
24633
                mov     edi, [eax+4]
24634
                mov     ebp, [ebx+4]
24635
                xor     ecx, edx
24636
                xor     edi, ebp
24637
                mov     [eax], ecx
24638
                mov     [eax+4], edi
24639
                mov     ecx, [eax+8]
24640
                mov     edx, [ebx+8]
24641
                mov     edi, [eax+0Ch]
24642
                mov     ebp, [ebx+0Ch]
24643
                xor     ecx, edx
24644
                xor     edi, ebp
24645
                mov     [eax+8], ecx
24646
                mov     [eax+0Ch], edi
24647
                mov     ecx, [eax+10h]
24648
                mov     edx, [ebx+10h]
24649
                mov     edi, [eax+14h]
24650
                mov     ebp, [ebx+14h]
24651
                xor     ecx, edx
24652
                xor     edi, ebp
24653
                mov     [eax+10h], ecx
24654
                mov     [eax+14h], edi
24655
                mov     ecx, [eax+18h]
24656
                mov     edx, [ebx+18h]
24657
                mov     edi, [eax+1Ch]
24658
                mov     ebp, [ebx+1Ch]
24659
                xor     ecx, edx
24660
                xor     edi, ebp
24661
                mov     [eax+18h], ecx
24662
                mov     [eax+1Ch], edi
24663
                mov     eax, [esp+44h]
24664
                mov     ebx, [esp+48h]
24665
                mov     ecx, [esp+4Ch]
24666
                xor     eax, 1
24667
                mov     edx, [esp+50h]
24668
                xor     eax, ebx
24669
                mov     ebp, [esp+54h]
24670
                xor     eax, ebp
24671
                mov     esi, [esp+8Ch]
24672
                mov     [esp], eax
24673
                xor     ebx, ecx
24674
                mov     eax, [esp+58h]
24675
                xor     ecx, edx
24676
                mov     edi, [esp+5Ch]
24677
                xor     ebx, eax
24678
                xor     ecx, edi
24679
                xor     ebx, [esi]
24680
                xor     ecx, [esi+4]
24681
                mov     [esp+4], ebx
24682
                mov     [esp+8], ecx
24683
                xor     edx, ebp
24684
                mov     ecx, [esp+60h]
24685
                xor     ebp, eax
24686
                mov     ebx, [esp+64h]
24687
                xor     edx, ecx
24688
                xor     ebp, ebx
24689
                xor     edx, [esi+8]
24690
                xor     ebp, [esi+0Ch]
24691
                mov     [esp+0Ch], edx
24692
                mov     [esp+10h], ebp
24693
                xor     eax, edi
24694
                mov     edx, [esp+68h]
24695
                xor     edi, ecx
24696
                mov     ebp, [esp+6Ch]
24697
                xor     eax, edx
24698
                xor     edi, ebp
24699
                xor     eax, [esi+10h]
24700
                xor     edi, [esi+14h]
24701
                mov     [esp+14h], eax
24702
                mov     [esp+18h], edi
24703
                xor     ecx, ebx
24704
                mov     eax, [esp+70h]
24705
                xor     ebx, edx
24706
                mov     edi, [esp+74h]
24707
                xor     ecx, eax
24708
                xor     ebx, edi
24709
                xor     ecx, [esi+18h]
24710
                xor     ebx, [esi+1Ch]
24711
                add     esi, 20h
24712
                mov     [esp+1Ch], ecx
24713
                mov     [esp+20h], ebx
24714
                mov     [esp+8Ch], esi
24715
                mov     esi, [esp+98h]
24716
                xor     edx, ebp
24717
                mov     ecx, [esp+78h]
24718
                xor     ebp, eax
24719
                mov     ebx, [esp+7Ch]
24720
                xor     edx, ecx
24721
                xor     ebp, ebx
24722
                xor     edx, [esi]
24723
                xor     ebp, [esi+4]
24724
                mov     [esp+24h], edx
24725
                mov     [esp+28h], ebp
24726
                xor     eax, edi
24727
                mov     edx, [esp+80h]
24728
                xor     edi, ecx
24729
                mov     ebp, [esp+84h]
24730
                xor     eax, edx
24731
                xor     edi, ebp
24732
                xor     eax, [esi+8]
24733
                xor     edi, [esi+0Ch]
24734
                mov     [esp+2Ch], eax
24735
                mov     [esp+30h], edi
24736
                xor     ecx, ebx
24737
                mov     eax, [esp+44h]
24738
                xor     ebx, edx
24739
                mov     edi, [esp+48h]
24740
                xor     ecx, eax
24741
                xor     ebx, edi
24742
                xor     ecx, [esi+10h]
24743
                xor     ebx, [esi+14h]
24744
                mov     [esp+34h], ecx
24745
                mov     [esp+38h], ebx
24746
                mov     ecx, [esp+4Ch]
24747
                xor     edx, ebp
24748
                mov     ebx, [esp+50h]
24749
                xor     ebp, eax
24750
                xor     edx, ecx
24751
                xor     ebp, ebx
24752
                xor     edx, [esi+18h]
24753
                xor     ebp, [esi+1Ch]
24754
                mov     [esp+3Ch], edx
24755
                mov     [esp+40h], ebp
24756
24757
                mov     edi, [esp+88h]
24758
                mov     eax, [esp]
24759
                mov     ebx, [esp+4]
24760
                mov     [edi], eax
24761
                mov     [edi+4], ebx
24762
                mov     ebp, [esp+8]
24763
                mov     esi, [esp+0Ch]
24764
                mov     [edi+8], ebp
24765
                mov     [edi+0Ch], esi
24766
                mov     eax, [esp+10h]
24767
                mov     ebx, [esp+14h]
24768
                mov     [edi+10h], eax
24769
                mov     [edi+14h], ebx
24770
                mov     ebp, [esp+18h]
24771
                mov     esi, [esp+1Ch]
24772
                mov     [edi+18h], ebp
24773
                mov     [edi+1Ch], esi
24774
                mov     eax, [esp+20h]
24775
                mov     ebx, [esp+24h]
24776
                mov     [edi+20h], eax
24777
                mov     [edi+24h], ebx
24778
                mov     ebp, [esp+28h]
24779
                mov     esi, [esp+2Ch]
24780
                mov     [edi+28h], ebp
24781
                mov     [edi+2Ch], esi
24782
                mov     eax, [esp+30h]
24783
                mov     ebx, [esp+34h]
24784
                mov     [edi+30h], eax
24785
                mov     [edi+34h], ebx
24786
                mov     ebp, [esp+38h]
24787
                mov     esi, [esp+3Ch]
24788
                mov     eax, [esp+40h]
24789
                mov     [edi+38h], ebp
24790
                mov     [edi+3Ch], esi
24791
                mov     [edi+40h], eax
24792
                mov     ebp, [esp+0A0h]
24793
                mov     esp, ebp
24794
                pop     ebp
24795
                pop     edi
24796
                pop     esi
24797
                pop     ebx
24798
end;
24799
{$ENDIF}
24800
24801
{$IFDEF THashBaseWhirlpool_asm}
24802
procedure THashBaseWhirlpool.DoTransform(Buffer: PUInt32Array);
24803
asm
24804
                push    ebx
24805
                push    esi
24806
                push    edi
24807
                mov     esi, edx
24808
                lea     edi, [eax].THashBaseWhirlpool.FDigest
24809
                push    ebp
24810
                mov     ebx, [eax].THashBaseWhirlpool.FTableC
24811
                mov     eax, [eax].THashBaseWhirlpool.FTableR
24812
24813
                mov     ebp, esp
24814
                add     esp, 0FFFFFEE8h
24815
                and     esp, 0FFFFFFE0h
24816
                mov     [esp+100h], eax
24817
                mov     [esp+104h], ebx
24818
                mov     [esp+10Ch], edi
24819
                mov     [esp+110h], esi
24820
                mov     [esp+114h], ebp
24821
                xor     ebp, ebp
24822
                mov     eax, [edi]
24823
                mov     ebx, [edi+4]
24824
                mov     [esp+40h], eax
24825
                mov     ecx, [esi]
24826
                mov     edx, [esi+4]
24827
                mov     [esp+44h], ebx
24828
                xor     eax, ecx
24829
                xor     ebx, edx
24830
                mov     [esp], eax
24831
                mov     [esp+4], ebx
24832
                mov     eax, [edi+8]
24833
                mov     ebx, [edi+0Ch]
24834
                mov     [esp+48h], eax
24835
                mov     ecx, [esi+8]
24836
                mov     edx, [esi+0Ch]
24837
                mov     [esp+4Ch], ebx
24838
                xor     eax, ecx
24839
                xor     ebx, edx
24840
                mov     [esp+8], eax
24841
                mov     [esp+0Ch], ebx
24842
                mov     eax, [edi+10h]
24843
                mov     ebx, [edi+14h]
24844
                mov     [esp+50h], eax
24845
                mov     ecx, [esi+10h]
24846
                mov     edx, [esi+14h]
24847
                mov     [esp+54h], ebx
24848
                xor     eax, ecx
24849
                xor     ebx, edx
24850
                mov     [esp+10h], eax
24851
                mov     [esp+14h], ebx
24852
                mov     eax, [edi+18h]
24853
                mov     ebx, [edi+1Ch]
24854
                mov     [esp+58h], eax
24855
                mov     ecx, [esi+18h]
24856
                mov     edx, [esi+1Ch]
24857
                mov     [esp+5Ch], ebx
24858
                xor     eax, ecx
24859
                xor     ebx, edx
24860
                mov     [esp+18h], eax
24861
                mov     [esp+1Ch], ebx
24862
                mov     eax, [edi+20h]
24863
                mov     ebx, [edi+24h]
24864
                mov     [esp+60h], eax
24865
                mov     ecx, [esi+20h]
24866
                mov     edx, [esi+24h]
24867
                mov     [esp+64h], ebx
24868
                xor     eax, ecx
24869
                xor     ebx, edx
24870
                mov     [esp+20h], eax
24871
                mov     [esp+24h], ebx
24872
                mov     eax, [edi+28h]
24873
                mov     ebx, [edi+2Ch]
24874
                mov     [esp+68h], eax
24875
                mov     ecx, [esi+28h]
24876
                mov     edx, [esi+2Ch]
24877
                mov     [esp+6Ch], ebx
24878
                xor     eax, ecx
24879
                xor     ebx, edx
24880
                mov     [esp+28h], eax
24881
                mov     [esp+2Ch], ebx
24882
                mov     eax, [edi+30h]
24883
                mov     ebx, [edi+34h]
24884
                mov     [esp+70h], eax
24885
                mov     ecx, [esi+30h]
24886
                mov     edx, [esi+34h]
24887
                mov     [esp+74h], ebx
24888
                xor     eax, ecx
24889
                xor     ebx, edx
24890
                mov     [esp+30h], eax
24891
                mov     [esp+34h], ebx
24892
                mov     eax, [edi+38h]
24893
                mov     ebx, [edi+3Ch]
24894
                mov     [esp+78h], eax
24895
                mov     ecx, [esi+38h]
24896
                mov     edx, [esi+3Ch]
24897
                mov     [esp+7Ch], ebx
24898
                xor     eax, ecx
24899
                xor     ebx, edx
24900
                mov     [esp+38h], eax
24901
                mov     [esp+3Ch], ebx
24902
24903
            @@_loop_start:
24904
                mov     [esp+108h], ebp
24905
                mov     edi, [esp+100h]
24906
                mov     esi, [esp+104h]
24907
                mov     eax, [edi+ebp]
24908
                mov     ebx, [edi+ebp+4]
24909
                mov     ecx, [esp+40h]
24910
                mov     edx, [esp+78h]
24911
                and     ecx, 0FFh
24912
                shr     edx, 5
24913
                mov     edi, [esi+ecx*8]
24914
                and     edx, 7F8h
24915
                mov     ebp, [esi+ecx*8+4]
24916
                xor     eax, edi
24917
                mov     ecx, [esp+70h]
24918
                mov     edi, [esi+edx+800h]
24919
                xor     ebx, ebp
24920
                shr     ecx, 0Dh
24921
                mov     ebp, [esi+edx+804h]
24922
                and     ecx, 7F8h
24923
                xor     eax, edi
24924
                mov     edx, [esp+68h]
24925
                xor     ebx, ebp
24926
                shr     edx, 18h
24927
                mov     edi, [esi+ecx+1000h]
24928
                mov     ebp, [esi+ecx+1004h]
24929
                xor     eax, edi
24930
                mov     edi, [esi+edx*8+1800h]
24931
                xor     ebx, ebp
24932
                mov     ebp, [esi+edx*8+1804h]
24933
                xor     eax, edi
24934
                xor     ebx, ebp
24935
                mov     ecx, [esp+64h]
24936
                mov     edx, [esp+5Ch]
24937
                and     ecx, 0FFh
24938
                shr     edx, 5
24939
                mov     edi, [esi+ecx*8+2000h]
24940
                and     edx, 7F8h
24941
                mov     ebp, [esi+ecx*8+2004h]
24942
                xor     eax, edi
24943
                mov     ecx, [esp+54h]
24944
                mov     edi, [esi+edx+2800h]
24945
                xor     ebx, ebp
24946
                shr     ecx, 0Dh
24947
                mov     ebp, [esi+edx+2804h]
24948
                and     ecx, 7F8h
24949
                xor     eax, edi
24950
                mov     edx, [esp+4Ch]
24951
                xor     ebx, ebp
24952
                shr     edx, 18h
24953
                mov     edi, [esi+ecx+3000h]
24954
                mov     ebp, [esi+ecx+3004h]
24955
                xor     eax, edi
24956
                mov     edi, [esi+edx*8+3800h]
24957
                xor     ebx, ebp
24958
                mov     ebp, [esi+edx*8+3804h]
24959
                xor     eax, edi
24960
                xor     ebx, ebp
24961
                mov     [esp+80h], eax
24962
                mov     [esp+84h], ebx
24963
                mov     ecx, [esp+48h]
24964
                mov     edx, [esp+40h]
24965
                and     ecx, 0FFh
24966
                shr     edx, 5
24967
                mov     eax, [esi+ecx*8]
24968
                and     edx, 7F8h
24969
                mov     ebx, [esi+ecx*8+4]
24970
                mov     ecx, [esp+78h]
24971
                mov     edi, [esi+edx+800h]
24972
                shr     ecx, 0Dh
24973
                mov     ebp, [esi+edx+804h]
24974
                and     ecx, 7F8h
24975
                mov     edx, [esp+70h]
24976
                xor     eax, edi
24977
                xor     ebx, ebp
24978
                shr     edx, 18h
24979
                mov     edi, [esi+ecx+1000h]
24980
                mov     ebp, [esi+ecx+1004h]
24981
                mov     ecx, [esp+6Ch]
24982
                xor     eax, edi
24983
                mov     edi, [esi+edx*8+1800h]
24984
                and     ecx, 0FFh
24985
                xor     ebx, ebp
24986
                mov     ebp, [esi+edx*8+1804h]
24987
                mov     edx, [esp+64h]
24988
                xor     eax, edi
24989
                xor     ebx, ebp
24990
                shr     edx, 5
24991
                mov     edi, [esi+ecx*8+2000h]
24992
                mov     ebp, [esi+ecx*8+2004h]
24993
                and     edx, 7F8h
24994
                mov     ecx, [esp+5Ch]
24995
                xor     eax, edi
24996
                shr     ecx, 0Dh
24997
                xor     ebx, ebp
24998
                mov     edi, [esi+edx+2800h]
24999
                and     ecx, 7F8h
25000
                mov     ebp, [esi+edx+2804h]
25001
                xor     eax, edi
25002
                mov     edx, [esp+54h]
25003
                xor     ebx, ebp
25004
                shr     edx, 18h
25005
                mov     edi, [esi+ecx+3000h]
25006
                mov     ebp, [esi+ecx+3004h]
25007
                xor     eax, edi
25008
                mov     edi, [esi+edx*8+3800h]
25009
                xor     ebx, ebp
25010
                mov     ebp, [esi+edx*8+3804h]
25011
                xor     eax, edi
25012
                xor     ebx, ebp
25013
                mov     [esp+88h], eax
25014
                mov     [esp+8Ch], ebx
25015
                mov     ecx, [esp+50h]
25016
                mov     edx, [esp+48h]
25017
                and     ecx, 0FFh
25018
                shr     edx, 5
25019
                mov     eax, [esi+ecx*8]
25020
                and     edx, 7F8h
25021
                mov     ebx, [esi+ecx*8+4]
25022
                mov     ecx, [esp+40h]
25023
                mov     edi, [esi+edx+800h]
25024
                shr     ecx, 0Dh
25025
                mov     ebp, [esi+edx+804h]
25026
                and     ecx, 7F8h
25027
                mov     edx, [esp+78h]
25028
                xor     eax, edi
25029
                xor     ebx, ebp
25030
                shr     edx, 18h
25031
                mov     edi, [esi+ecx+1000h]
25032
                mov     ebp, [esi+ecx+1004h]
25033
                mov     ecx, [esp+74h]
25034
                xor     eax, edi
25035
                mov     edi, [esi+edx*8+1800h]
25036
                and     ecx, 0FFh
25037
                xor     ebx, ebp
25038
                mov     ebp, [esi+edx*8+1804h]
25039
                mov     edx, [esp+6Ch]
25040
                xor     eax, edi
25041
                xor     ebx, ebp
25042
                shr     edx, 5
25043
                mov     edi, [esi+ecx*8+2000h]
25044
                mov     ebp, [esi+ecx*8+2004h]
25045
                and     edx, 7F8h
25046
                mov     ecx, [esp+64h]
25047
                xor     eax, edi
25048
                shr     ecx, 0Dh
25049
                xor     ebx, ebp
25050
                mov     edi, [esi+edx+2800h]
25051
                and     ecx, 7F8h
25052
                mov     ebp, [esi+edx+2804h]
25053
                xor     eax, edi
25054
                mov     edx, [esp+5Ch]
25055
                xor     ebx, ebp
25056
                shr     edx, 18h
25057
                mov     edi, [esi+ecx+3000h]
25058
                mov     ebp, [esi+ecx+3004h]
25059
                xor     eax, edi
25060
                mov     edi, [esi+edx*8+3800h]
25061
                xor     ebx, ebp
25062
                mov     ebp, [esi+edx*8+3804h]
25063
                xor     eax, edi
25064
                xor     ebx, ebp
25065
                mov     [esp+90h], eax
25066
                mov     [esp+94h], ebx
25067
                mov     ecx, [esp+58h]
25068
                mov     edx, [esp+50h]
25069
                and     ecx, 0FFh
25070
                shr     edx, 5
25071
                mov     eax, [esi+ecx*8]
25072
                and     edx, 7F8h
25073
                mov     ebx, [esi+ecx*8+4]
25074
                mov     ecx, [esp+48h]
25075
                mov     edi, [esi+edx+800h]
25076
                shr     ecx, 0Dh
25077
                mov     ebp, [esi+edx+804h]
25078
                and     ecx, 7F8h
25079
                mov     edx, [esp+40h]
25080
                xor     eax, edi
25081
                xor     ebx, ebp
25082
                shr     edx, 18h
25083
                mov     edi, [esi+ecx+1000h]
25084
                mov     ebp, [esi+ecx+1004h]
25085
                mov     ecx, [esp+7Ch]
25086
                xor     eax, edi
25087
                mov     edi, [esi+edx*8+1800h]
25088
                and     ecx, 0FFh
25089
                xor     ebx, ebp
25090
                mov     ebp, [esi+edx*8+1804h]
25091
                mov     edx, [esp+74h]
25092
                xor     eax, edi
25093
                xor     ebx, ebp
25094
                shr     edx, 5
25095
                mov     edi, [esi+ecx*8+2000h]
25096
                mov     ebp, [esi+ecx*8+2004h]
25097
                and     edx, 7F8h
25098
                mov     ecx, [esp+6Ch]
25099
                xor     eax, edi
25100
                shr     ecx, 0Dh
25101
                xor     ebx, ebp
25102
                mov     edi, [esi+edx+2800h]
25103
                and     ecx, 7F8h
25104
                mov     ebp, [esi+edx+2804h]
25105
                xor     eax, edi
25106
                mov     edx, [esp+64h]
25107
                xor     ebx, ebp
25108
                shr     edx, 18h
25109
                mov     edi, [esi+ecx+3000h]
25110
                mov     ebp, [esi+ecx+3004h]
25111
                xor     eax, edi
25112
                mov     edi, [esi+edx*8+3800h]
25113
                xor     ebx, ebp
25114
                mov     ebp, [esi+edx*8+3804h]
25115
                xor     eax, edi
25116
                xor     ebx, ebp
25117
                mov     [esp+98h], eax
25118
                mov     [esp+9Ch], ebx
25119
                mov     ecx, [esp+60h]
25120
                mov     edx, [esp+58h]
25121
                and     ecx, 0FFh
25122
                shr     edx, 5
25123
                mov     eax, [esi+ecx*8]
25124
                and     edx, 7F8h
25125
                mov     ebx, [esi+ecx*8+4]
25126
                mov     ecx, [esp+50h]
25127
                mov     edi, [esi+edx+800h]
25128
                shr     ecx, 0Dh
25129
                mov     ebp, [esi+edx+804h]
25130
                and     ecx, 7F8h
25131
                mov     edx, [esp+48h]
25132
                xor     eax, edi
25133
                xor     ebx, ebp
25134
                shr     edx, 18h
25135
                mov     edi, [esi+ecx+1000h]
25136
                mov     ebp, [esi+ecx+1004h]
25137
                mov     ecx, [esp+44h]
25138
                xor     eax, edi
25139
                mov     edi, [esi+edx*8+1800h]
25140
                and     ecx, 0FFh
25141
                xor     ebx, ebp
25142
                mov     ebp, [esi+edx*8+1804h]
25143
                mov     edx, [esp+7Ch]
25144
                xor     eax, edi
25145
                xor     ebx, ebp
25146
                shr     edx, 5
25147
                mov     edi, [esi+ecx*8+2000h]
25148
                mov     ebp, [esi+ecx*8+2004h]
25149
                and     edx, 7F8h
25150
                mov     ecx, [esp+74h]
25151
                xor     eax, edi
25152
                shr     ecx, 0Dh
25153
                xor     ebx, ebp
25154
                mov     edi, [esi+edx+2800h]
25155
                and     ecx, 7F8h
25156
                mov     ebp, [esi+edx+2804h]
25157
                xor     eax, edi
25158
                mov     edx, [esp+6Ch]
25159
                xor     ebx, ebp
25160
                shr     edx, 18h
25161
                mov     edi, [esi+ecx+3000h]
25162
                mov     ebp, [esi+ecx+3004h]
25163
                xor     eax, edi
25164
                mov     edi, [esi+edx*8+3800h]
25165
                xor     ebx, ebp
25166
                mov     ebp, [esi+edx*8+3804h]
25167
                xor     eax, edi
25168
                xor     ebx, ebp
25169
                mov     [esp+0A0h], eax
25170
                mov     [esp+0A4h], ebx
25171
                mov     ecx, [esp+68h]
25172
                mov     edx, [esp+60h]
25173
                and     ecx, 0FFh
25174
                shr     edx, 5
25175
                mov     eax, [esi+ecx*8]
25176
                and     edx, 7F8h
25177
                mov     ebx, [esi+ecx*8+4]
25178
                mov     ecx, [esp+58h]
25179
                mov     edi, [esi+edx+800h]
25180
                shr     ecx, 0Dh
25181
                mov     ebp, [esi+edx+804h]
25182
                and     ecx, 7F8h
25183
                mov     edx, [esp+50h]
25184
                xor     eax, edi
25185
                xor     ebx, ebp
25186
                shr     edx, 18h
25187
                mov     edi, [esi+ecx+1000h]
25188
                mov     ebp, [esi+ecx+1004h]
25189
                mov     ecx, [esp+4Ch]
25190
                xor     eax, edi
25191
                mov     edi, [esi+edx*8+1800h]
25192
                and     ecx, 0FFh
25193
                xor     ebx, ebp
25194
                mov     ebp, [esi+edx*8+1804h]
25195
                mov     edx, [esp+44h]
25196
                xor     eax, edi
25197
                xor     ebx, ebp
25198
                shr     edx, 5
25199
                mov     edi, [esi+ecx*8+2000h]
25200
                mov     ebp, [esi+ecx*8+2004h]
25201
                and     edx, 7F8h
25202
                mov     ecx, [esp+7Ch]
25203
                xor     eax, edi
25204
                shr     ecx, 0Dh
25205
                xor     ebx, ebp
25206
                mov     edi, [esi+edx+2800h]
25207
                and     ecx, 7F8h
25208
                mov     ebp, [esi+edx+2804h]
25209
                xor     eax, edi
25210
                mov     edx, [esp+74h]
25211
                xor     ebx, ebp
25212
                shr     edx, 18h
25213
                mov     edi, [esi+ecx+3000h]
25214
                mov     ebp, [esi+ecx+3004h]
25215
                xor     eax, edi
25216
                mov     edi, [esi+edx*8+3800h]
25217
                xor     ebx, ebp
25218
                mov     ebp, [esi+edx*8+3804h]
25219
                xor     eax, edi
25220
                xor     ebx, ebp
25221
                mov     [esp+0A8h], eax
25222
                mov     [esp+0ACh], ebx
25223
                mov     ecx, [esp+70h]
25224
                mov     edx, [esp+68h]
25225
                and     ecx, 0FFh
25226
                shr     edx, 5
25227
                mov     eax, [esi+ecx*8]
25228
                and     edx, 7F8h
25229
                mov     ebx, [esi+ecx*8+4]
25230
                mov     ecx, [esp+60h]
25231
                mov     edi, [esi+edx+800h]
25232
                shr     ecx, 0Dh
25233
                mov     ebp, [esi+edx+804h]
25234
                and     ecx, 7F8h
25235
                mov     edx, [esp+58h]
25236
                xor     eax, edi
25237
                xor     ebx, ebp
25238
                shr     edx, 18h
25239
                mov     edi, [esi+ecx+1000h]
25240
                mov     ebp, [esi+ecx+1004h]
25241
                mov     ecx, [esp+54h]
25242
                xor     eax, edi
25243
                mov     edi, [esi+edx*8+1800h]
25244
                and     ecx, 0FFh
25245
                xor     ebx, ebp
25246
                mov     ebp, [esi+edx*8+1804h]
25247
                mov     edx, [esp+4Ch]
25248
                xor     eax, edi
25249
                xor     ebx, ebp
25250
                shr     edx, 5
25251
                mov     edi, [esi+ecx*8+2000h]
25252
                mov     ebp, [esi+ecx*8+2004h]
25253
                and     edx, 7F8h
25254
                mov     ecx, [esp+44h]
25255
                xor     eax, edi
25256
                shr     ecx, 0Dh
25257
                xor     ebx, ebp
25258
                mov     edi, [esi+edx+2800h]
25259
                and     ecx, 7F8h
25260
                mov     ebp, [esi+edx+2804h]
25261
                xor     eax, edi
25262
                mov     edx, [esp+7Ch]
25263
                xor     ebx, ebp
25264
                shr     edx, 18h
25265
                mov     edi, [esi+ecx+3000h]
25266
                mov     ebp, [esi+ecx+3004h]
25267
                xor     eax, edi
25268
                mov     edi, [esi+edx*8+3800h]
25269
                xor     ebx, ebp
25270
                mov     ebp, [esi+edx*8+3804h]
25271
                xor     eax, edi
25272
                xor     ebx, ebp
25273
                mov     [esp+0B0h], eax
25274
                mov     [esp+0B4h], ebx
25275
                mov     ecx, [esp+78h]
25276
                mov     edx, [esp+70h]
25277
                and     ecx, 0FFh
25278
                shr     edx, 5
25279
                mov     eax, [esi+ecx*8]
25280
                and     edx, 7F8h
25281
                mov     ebx, [esi+ecx*8+4]
25282
                mov     ecx, [esp+68h]
25283
                mov     edi, [esi+edx+800h]
25284
                shr     ecx, 0Dh
25285
                mov     ebp, [esi+edx+804h]
25286
                and     ecx, 7F8h
25287
                mov     edx, [esp+60h]
25288
                xor     eax, edi
25289
                xor     ebx, ebp
25290
                shr     edx, 18h
25291
                mov     edi, [esi+ecx+1000h]
25292
                mov     ebp, [esi+ecx+1004h]
25293
                mov     ecx, [esp+5Ch]
25294
                xor     eax, edi
25295
                mov     edi, [esi+edx*8+1800h]
25296
                and     ecx, 0FFh
25297
                xor     ebx, ebp
25298
                mov     ebp, [esi+edx*8+1804h]
25299
                mov     edx, [esp+54h]
25300
                xor     eax, edi
25301
                xor     ebx, ebp
25302
                shr     edx, 5
25303
                mov     edi, [esi+ecx*8+2000h]
25304
                mov     ebp, [esi+ecx*8+2004h]
25305
                and     edx, 7F8h
25306
                mov     ecx, [esp+4Ch]
25307
                xor     eax, edi
25308
                shr     ecx, 0Dh
25309
                xor     ebx, ebp
25310
                mov     edi, [esi+edx+2800h]
25311
                and     ecx, 7F8h
25312
                mov     ebp, [esi+edx+2804h]
25313
                xor     eax, edi
25314
                mov     edx, [esp+44h]
25315
                xor     ebx, ebp
25316
                shr     edx, 18h
25317
                mov     edi, [esi+ecx+3000h]
25318
                mov     ebp, [esi+ecx+3004h]
25319
                xor     eax, edi
25320
                mov     edi, [esi+edx*8+3800h]
25321
                xor     ebx, ebp
25322
                mov     ebp, [esi+edx*8+3804h]
25323
                xor     eax, edi
25324
                xor     ebx, ebp
25325
                mov     [esp+0B8h], eax
25326
                mov     [esp+0BCh], ebx
25327
                mov     eax, [esp+80h]
25328
                mov     ebx, [esp+84h]
25329
                mov     ecx, [esp]
25330
                mov     edx, [esp+38h]
25331
                and     ecx, 0FFh
25332
                shr     edx, 5
25333
                mov     edi, [esi+ecx*8]
25334
                and     edx, 7F8h
25335
                mov     ebp, [esi+ecx*8+4]
25336
                xor     eax, edi
25337
                mov     ecx, [esp+30h]
25338
                mov     edi, [esi+edx+800h]
25339
                xor     ebx, ebp
25340
                shr     ecx, 0Dh
25341
                mov     ebp, [esi+edx+804h]
25342
                and     ecx, 7F8h
25343
                xor     eax, edi
25344
                mov     edx, [esp+28h]
25345
                xor     ebx, ebp
25346
                shr     edx, 18h
25347
                mov     edi, [esi+ecx+1000h]
25348
                mov     ebp, [esi+ecx+1004h]
25349
                xor     eax, edi
25350
                mov     edi, [esi+edx*8+1800h]
25351
                xor     ebx, ebp
25352
                mov     ebp, [esi+edx*8+1804h]
25353
                xor     eax, edi
25354
                xor     ebx, ebp
25355
                mov     ecx, [esp+24h]
25356
                mov     edx, [esp+1Ch]
25357
                and     ecx, 0FFh
25358
                shr     edx, 5
25359
                mov     edi, [esi+ecx*8+2000h]
25360
                and     edx, 7F8h
25361
                mov     ebp, [esi+ecx*8+2004h]
25362
                xor     eax, edi
25363
                mov     ecx, [esp+14h]
25364
                mov     edi, [esi+edx+2800h]
25365
                xor     ebx, ebp
25366
                shr     ecx, 0Dh
25367
                mov     ebp, [esi+edx+2804h]
25368
                and     ecx, 7F8h
25369
                xor     eax, edi
25370
                mov     edx, [esp+0Ch]
25371
                xor     ebx, ebp
25372
                shr     edx, 18h
25373
                mov     edi, [esi+ecx+3000h]
25374
                mov     ebp, [esi+ecx+3004h]
25375
                xor     eax, edi
25376
                mov     edi, [esi+edx*8+3800h]
25377
                xor     ebx, ebp
25378
                mov     ebp, [esi+edx*8+3804h]
25379
                xor     eax, edi
25380
                xor     ebx, ebp
25381
                mov     [esp+0C0h], eax
25382
                mov     [esp+0C4h], ebx
25383
                mov     eax, [esp+88h]
25384
                mov     ebx, [esp+8Ch]
25385
                mov     ecx, [esp+8]
25386
                mov     edx, [esp]
25387
                and     ecx, 0FFh
25388
                shr     edx, 5
25389
                mov     edi, [esi+ecx*8]
25390
                and     edx, 7F8h
25391
                mov     ebp, [esi+ecx*8+4]
25392
                xor     eax, edi
25393
                mov     ecx, [esp+38h]
25394
                mov     edi, [esi+edx+800h]
25395
                xor     ebx, ebp
25396
                shr     ecx, 0Dh
25397
                mov     ebp, [esi+edx+804h]
25398
                and     ecx, 7F8h
25399
                xor     eax, edi
25400
                mov     edx, [esp+30h]
25401
                xor     ebx, ebp
25402
                shr     edx, 18h
25403
                mov     edi, [esi+ecx+1000h]
25404
                mov     ebp, [esi+ecx+1004h]
25405
                xor     eax, edi
25406
                mov     edi, [esi+edx*8+1800h]
25407
                xor     ebx, ebp
25408
                mov     ebp, [esi+edx*8+1804h]
25409
                xor     eax, edi
25410
                xor     ebx, ebp
25411
                mov     ecx, [esp+2Ch]
25412
                mov     edx, [esp+24h]
25413
                and     ecx, 0FFh
25414
                shr     edx, 5
25415
                mov     edi, [esi+ecx*8+2000h]
25416
                and     edx, 7F8h
25417
                mov     ebp, [esi+ecx*8+2004h]
25418
                xor     eax, edi
25419
                mov     ecx, [esp+1Ch]
25420
                mov     edi, [esi+edx+2800h]
25421
                xor     ebx, ebp
25422
                shr     ecx, 0Dh
25423
                mov     ebp, [esi+edx+2804h]
25424
                and     ecx, 7F8h
25425
                xor     eax, edi
25426
                mov     edx, [esp+14h]
25427
                xor     ebx, ebp
25428
                shr     edx, 18h
25429
                mov     edi, [esi+ecx+3000h]
25430
                mov     ebp, [esi+ecx+3004h]
25431
                xor     eax, edi
25432
                mov     edi, [esi+edx*8+3800h]
25433
                xor     ebx, ebp
25434
                mov     ebp, [esi+edx*8+3804h]
25435
                xor     eax, edi
25436
                xor     ebx, ebp
25437
                mov     [esp+0C8h], eax
25438
                mov     [esp+0CCh], ebx
25439
                mov     eax, [esp+90h]
25440
                mov     ebx, [esp+94h]
25441
                mov     ecx, [esp+10h]
25442
                mov     edx, [esp+8]
25443
                and     ecx, 0FFh
25444
                shr     edx, 5
25445
                mov     edi, [esi+ecx*8]
25446
                and     edx, 7F8h
25447
                mov     ebp, [esi+ecx*8+4]
25448
                xor     eax, edi
25449
                mov     ecx, [esp]
25450
                mov     edi, [esi+edx+800h]
25451
                xor     ebx, ebp
25452
                shr     ecx, 0Dh
25453
                mov     ebp, [esi+edx+804h]
25454
                and     ecx, 7F8h
25455
                xor     eax, edi
25456
                mov     edx, [esp+38h]
25457
                xor     ebx, ebp
25458
                shr     edx, 18h
25459
                mov     edi, [esi+ecx+1000h]
25460
                mov     ebp, [esi+ecx+1004h]
25461
                xor     eax, edi
25462
                mov     edi, [esi+edx*8+1800h]
25463
                xor     ebx, ebp
25464
                mov     ebp, [esi+edx*8+1804h]
25465
                xor     eax, edi
25466
                xor     ebx, ebp
25467
                mov     ecx, [esp+34h]
25468
                mov     edx, [esp+2Ch]
25469
                and     ecx, 0FFh
25470
                shr     edx, 5
25471
                mov     edi, [esi+ecx*8+2000h]
25472
                and     edx, 7F8h
25473
                mov     ebp, [esi+ecx*8+2004h]
25474
                xor     eax, edi
25475
                mov     ecx, [esp+24h]
25476
                mov     edi, [esi+edx+2800h]
25477
                xor     ebx, ebp
25478
                shr     ecx, 0Dh
25479
                mov     ebp, [esi+edx+2804h]
25480
                and     ecx, 7F8h
25481
                xor     eax, edi
25482
                mov     edx, [esp+1Ch]
25483
                xor     ebx, ebp
25484
                shr     edx, 18h
25485
                mov     edi, [esi+ecx+3000h]
25486
                mov     ebp, [esi+ecx+3004h]
25487
                xor     eax, edi
25488
                mov     edi, [esi+edx*8+3800h]
25489
                xor     ebx, ebp
25490
                mov     ebp, [esi+edx*8+3804h]
25491
                xor     eax, edi
25492
                xor     ebx, ebp
25493
                mov     [esp+0D0h], eax
25494
                mov     [esp+0D4h], ebx
25495
                mov     eax, [esp+98h]
25496
                mov     ebx, [esp+9Ch]
25497
                mov     ecx, [esp+18h]
25498
                mov     edx, [esp+10h]
25499
                and     ecx, 0FFh
25500
                shr     edx, 5
25501
                mov     edi, [esi+ecx*8]
25502
                and     edx, 7F8h
25503
                mov     ebp, [esi+ecx*8+4]
25504
                xor     eax, edi
25505
                mov     ecx, [esp+8]
25506
                mov     edi, [esi+edx+800h]
25507
                xor     ebx, ebp
25508
                shr     ecx, 0Dh
25509
                mov     ebp, [esi+edx+804h]
25510
                and     ecx, 7F8h
25511
                xor     eax, edi
25512
                mov     edx, [esp]
25513
                xor     ebx, ebp
25514
                shr     edx, 18h
25515
                mov     edi, [esi+ecx+1000h]
25516
                mov     ebp, [esi+ecx+1004h]
25517
                xor     eax, edi
25518
                mov     edi, [esi+edx*8+1800h]
25519
                xor     ebx, ebp
25520
                mov     ebp, [esi+edx*8+1804h]
25521
                xor     eax, edi
25522
                xor     ebx, ebp
25523
                mov     ecx, [esp+3Ch]
25524
                mov     edx, [esp+34h]
25525
                and     ecx, 0FFh
25526
                shr     edx, 5
25527
                mov     edi, [esi+ecx*8+2000h]
25528
                and     edx, 7F8h
25529
                mov     ebp, [esi+ecx*8+2004h]
25530
                xor     eax, edi
25531
                mov     ecx, [esp+2Ch]
25532
                mov     edi, [esi+edx+2800h]
25533
                xor     ebx, ebp
25534
                shr     ecx, 0Dh
25535
                mov     ebp, [esi+edx+2804h]
25536
                and     ecx, 7F8h
25537
                xor     eax, edi
25538
                mov     edx, [esp+24h]
25539
                xor     ebx, ebp
25540
                shr     edx, 18h
25541
                mov     edi, [esi+ecx+3000h]
25542
                mov     ebp, [esi+ecx+3004h]
25543
                xor     eax, edi
25544
                mov     edi, [esi+edx*8+3800h]
25545
                xor     ebx, ebp
25546
                mov     ebp, [esi+edx*8+3804h]
25547
                xor     eax, edi
25548
                xor     ebx, ebp
25549
                mov     [esp+0D8h], eax
25550
                mov     [esp+0DCh], ebx
25551
                mov     eax, [esp+0A0h]
25552
                mov     ebx, [esp+0A4h]
25553
                mov     ecx, [esp+20h]
25554
                mov     edx, [esp+18h]
25555
                and     ecx, 0FFh
25556
                shr     edx, 5
25557
                mov     edi, [esi+ecx*8]
25558
                and     edx, 7F8h
25559
                mov     ebp, [esi+ecx*8+4]
25560
                xor     eax, edi
25561
                mov     ecx, [esp+10h]
25562
                mov     edi, [esi+edx+800h]
25563
                xor     ebx, ebp
25564
                shr     ecx, 0Dh
25565
                mov     ebp, [esi+edx+804h]
25566
                and     ecx, 7F8h
25567
                xor     eax, edi
25568
                mov     edx, [esp+8]
25569
                xor     ebx, ebp
25570
                shr     edx, 18h
25571
                mov     edi, [esi+ecx+1000h]
25572
                mov     ebp, [esi+ecx+1004h]
25573
                xor     eax, edi
25574
                mov     edi, [esi+edx*8+1800h]
25575
                xor     ebx, ebp
25576
                mov     ebp, [esi+edx*8+1804h]
25577
                xor     eax, edi
25578
                xor     ebx, ebp
25579
                mov     ecx, [esp+4]
25580
                mov     edx, [esp+3Ch]
25581
                and     ecx, 0FFh
25582
                shr     edx, 5
25583
                mov     edi, [esi+ecx*8+2000h]
25584
                and     edx, 7F8h
25585
                mov     ebp, [esi+ecx*8+2004h]
25586
                xor     eax, edi
25587
                mov     ecx, [esp+34h]
25588
                mov     edi, [esi+edx+2800h]
25589
                xor     ebx, ebp
25590
                shr     ecx, 0Dh
25591
                mov     ebp, [esi+edx+2804h]
25592
                and     ecx, 7F8h
25593
                xor     eax, edi
25594
                mov     edx, [esp+2Ch]
25595
                xor     ebx, ebp
25596
                shr     edx, 18h
25597
                mov     edi, [esi+ecx+3000h]
25598
                mov     ebp, [esi+ecx+3004h]
25599
                xor     eax, edi
25600
                mov     edi, [esi+edx*8+3800h]
25601
                xor     ebx, ebp
25602
                mov     ebp, [esi+edx*8+3804h]
25603
                xor     eax, edi
25604
                xor     ebx, ebp
25605
                mov     [esp+0E0h], eax
25606
                mov     [esp+0E4h], ebx
25607
                mov     eax, [esp+0A8h]
25608
                mov     ebx, [esp+0ACh]
25609
                mov     ecx, [esp+28h]
25610
                mov     edx, [esp+20h]
25611
                and     ecx, 0FFh
25612
                shr     edx, 5
25613
                mov     edi, [esi+ecx*8]
25614
                and     edx, 7F8h
25615
                mov     ebp, [esi+ecx*8+4]
25616
                xor     eax, edi
25617
                mov     ecx, [esp+18h]
25618
                mov     edi, [esi+edx+800h]
25619
                xor     ebx, ebp
25620
                shr     ecx, 0Dh
25621
                mov     ebp, [esi+edx+804h]
25622
                and     ecx, 7F8h
25623
                xor     eax, edi
25624
                mov     edx, [esp+10h]
25625
                xor     ebx, ebp
25626
                shr     edx, 18h
25627
                mov     edi, [esi+ecx+1000h]
25628
                mov     ebp, [esi+ecx+1004h]
25629
                xor     eax, edi
25630
                mov     edi, [esi+edx*8+1800h]
25631
                xor     ebx, ebp
25632
                mov     ebp, [esi+edx*8+1804h]
25633
                xor     eax, edi
25634
                xor     ebx, ebp
25635
                mov     ecx, [esp+0Ch]
25636
                mov     edx, [esp+4]
25637
                and     ecx, 0FFh
25638
                shr     edx, 5
25639
                mov     edi, [esi+ecx*8+2000h]
25640
                and     edx, 7F8h
25641
                mov     ebp, [esi+ecx*8+2004h]
25642
                xor     eax, edi
25643
                mov     ecx, [esp+3Ch]
25644
                mov     edi, [esi+edx+2800h]
25645
                xor     ebx, ebp
25646
                shr     ecx, 0Dh
25647
                mov     ebp, [esi+edx+2804h]
25648
                and     ecx, 7F8h
25649
                xor     eax, edi
25650
                mov     edx, [esp+34h]
25651
                xor     ebx, ebp
25652
                shr     edx, 18h
25653
                mov     edi, [esi+ecx+3000h]
25654
                mov     ebp, [esi+ecx+3004h]
25655
                xor     eax, edi
25656
                mov     edi, [esi+edx*8+3800h]
25657
                xor     ebx, ebp
25658
                mov     ebp, [esi+edx*8+3804h]
25659
                xor     eax, edi
25660
                xor     ebx, ebp
25661
                mov     [esp+0E8h], eax
25662
                mov     [esp+0ECh], ebx
25663
                mov     eax, [esp+0B0h]
25664
                mov     ebx, [esp+0B4h]
25665
                mov     ecx, [esp+30h]
25666
                mov     edx, [esp+28h]
25667
                and     ecx, 0FFh
25668
                shr     edx, 5
25669
                mov     edi, [esi+ecx*8]
25670
                and     edx, 7F8h
25671
                mov     ebp, [esi+ecx*8+4]
25672
                xor     eax, edi
25673
                mov     ecx, [esp+20h]
25674
                mov     edi, [esi+edx+800h]
25675
                xor     ebx, ebp
25676
                shr     ecx, 0Dh
25677
                mov     ebp, [esi+edx+804h]
25678
                and     ecx, 7F8h
25679
                xor     eax, edi
25680
                mov     edx, [esp+18h]
25681
                xor     ebx, ebp
25682
                shr     edx, 18h
25683
                mov     edi, [esi+ecx+1000h]
25684
                mov     ebp, [esi+ecx+1004h]
25685
                xor     eax, edi
25686
                mov     edi, [esi+edx*8+1800h]
25687
                xor     ebx, ebp
25688
                mov     ebp, [esi+edx*8+1804h]
25689
                xor     eax, edi
25690
                xor     ebx, ebp
25691
                mov     ecx, [esp+14h]
25692
                mov     edx, [esp+0Ch]
25693
                and     ecx, 0FFh
25694
                shr     edx, 5
25695
                mov     edi, [esi+ecx*8+2000h]
25696
                and     edx, 7F8h
25697
                mov     ebp, [esi+ecx*8+2004h]
25698
                xor     eax, edi
25699
                mov     ecx, [esp+4]
25700
                mov     edi, [esi+edx+2800h]
25701
                xor     ebx, ebp
25702
                shr     ecx, 0Dh
25703
                mov     ebp, [esi+edx+2804h]
25704
                and     ecx, 7F8h
25705
                xor     eax, edi
25706
                mov     edx, [esp+3Ch]
25707
                xor     ebx, ebp
25708
                shr     edx, 18h
25709
                mov     edi, [esi+ecx+3000h]
25710
                mov     ebp, [esi+ecx+3004h]
25711
                xor     eax, edi
25712
                mov     edi, [esi+edx*8+3800h]
25713
                xor     ebx, ebp
25714
                mov     ebp, [esi+edx*8+3804h]
25715
                xor     eax, edi
25716
                xor     ebx, ebp
25717
                mov     [esp+0F0h], eax
25718
                mov     [esp+0F4h], ebx
25719
                mov     eax, [esp+0B8h]
25720
                mov     ebx, [esp+0BCh]
25721
                mov     ecx, [esp+38h]
25722
                mov     edx, [esp+30h]
25723
                and     ecx, 0FFh
25724
                shr     edx, 5
25725
                mov     edi, [esi+ecx*8]
25726
                and     edx, 7F8h
25727
                mov     ebp, [esi+ecx*8+4]
25728
                xor     eax, edi
25729
                mov     ecx, [esp+28h]
25730
                mov     edi, [esi+edx+800h]
25731
                xor     ebx, ebp
25732
                shr     ecx, 0Dh
25733
                mov     ebp, [esi+edx+804h]
25734
                and     ecx, 7F8h
25735
                xor     eax, edi
25736
                mov     edx, [esp+20h]
25737
                xor     ebx, ebp
25738
                shr     edx, 18h
25739
                mov     edi, [esi+ecx+1000h]
25740
                mov     ebp, [esi+ecx+1004h]
25741
                xor     eax, edi
25742
                mov     edi, [esi+edx*8+1800h]
25743
                xor     ebx, ebp
25744
                mov     ebp, [esi+edx*8+1804h]
25745
                xor     eax, edi
25746
                xor     ebx, ebp
25747
                mov     ecx, [esp+1Ch]
25748
                mov     edx, [esp+14h]
25749
                and     ecx, 0FFh
25750
                shr     edx, 5
25751
                mov     edi, [esi+ecx*8+2000h]
25752
                and     edx, 7F8h
25753
                mov     ebp, [esi+ecx*8+2004h]
25754
                xor     eax, edi
25755
                mov     ecx, [esp+0Ch]
25756
                mov     edi, [esi+edx+2800h]
25757
                xor     ebx, ebp
25758
                shr     ecx, 0Dh
25759
                mov     ebp, [esi+edx+2804h]
25760
                and     ecx, 7F8h
25761
                xor     eax, edi
25762
                mov     edx, [esp+4]
25763
                xor     ebx, ebp
25764
                shr     edx, 18h
25765
                mov     edi, [esi+ecx+3000h]
25766
                mov     ebp, [esi+ecx+3004h]
25767
                xor     eax, edi
25768
                mov     edi, [esi+edx*8+3800h]
25769
                xor     ebx, ebp
25770
                mov     ebp, [esi+edx*8+3804h]
25771
                xor     eax, edi
25772
                xor     ebx, ebp
25773
                mov     [esp+0F8h], eax
25774
                mov     [esp+0FCh], ebx
25775
                mov     ebp, [esp+108h]
25776
                mov     edi, [esp+100h]
25777
                mov     eax, [edi+ebp+8]
25778
                mov     ebx, [edi+ebp+0Ch]
25779
                mov     ecx, [esp+80h]
25780
                mov     edx, [esp+0B8h]
25781
                and     ecx, 0FFh
25782
                shr     edx, 5
25783
                mov     edi, [esi+ecx*8]
25784
                and     edx, 7F8h
25785
                mov     ebp, [esi+ecx*8+4]
25786
                xor     eax, edi
25787
                mov     ecx, [esp+0B0h]
25788
                mov     edi, [esi+edx+800h]
25789
                xor     ebx, ebp
25790
                shr     ecx, 0Dh
25791
                mov     ebp, [esi+edx+804h]
25792
                and     ecx, 7F8h
25793
                xor     eax, edi
25794
                mov     edx, [esp+0A8h]
25795
                xor     ebx, ebp
25796
                shr     edx, 18h
25797
                mov     edi, [esi+ecx+1000h]
25798
                mov     ebp, [esi+ecx+1004h]
25799
                xor     eax, edi
25800
                mov     edi, [esi+edx*8+1800h]
25801
                xor     ebx, ebp
25802
                mov     ebp, [esi+edx*8+1804h]
25803
                xor     eax, edi
25804
                xor     ebx, ebp
25805
                mov     ecx, [esp+0A4h]
25806
                mov     edx, [esp+9Ch]
25807
                and     ecx, 0FFh
25808
                shr     edx, 5
25809
                mov     edi, [esi+ecx*8+2000h]
25810
                and     edx, 7F8h
25811
                mov     ebp, [esi+ecx*8+2004h]
25812
                xor     eax, edi
25813
                mov     ecx, [esp+94h]
25814
                mov     edi, [esi+edx+2800h]
25815
                xor     ebx, ebp
25816
                shr     ecx, 0Dh
25817
                mov     ebp, [esi+edx+2804h]
25818
                and     ecx, 7F8h
25819
                xor     eax, edi
25820
                mov     edx, [esp+8Ch]
25821
                xor     ebx, ebp
25822
                shr     edx, 18h
25823
                mov     edi, [esi+ecx+3000h]
25824
                mov     ebp, [esi+ecx+3004h]
25825
                xor     eax, edi
25826
                mov     edi, [esi+edx*8+3800h]
25827
                xor     ebx, ebp
25828
                mov     ebp, [esi+edx*8+3804h]
25829
                xor     eax, edi
25830
                xor     ebx, ebp
25831
                mov     [esp+40h], eax
25832
                mov     [esp+44h], ebx
25833
                mov     ecx, [esp+88h]
25834
                mov     edx, [esp+80h]
25835
                and     ecx, 0FFh
25836
                shr     edx, 5
25837
                mov     eax, [esi+ecx*8]
25838
                and     edx, 7F8h
25839
                mov     ebx, [esi+ecx*8+4]
25840
                mov     ecx, [esp+0B8h]
25841
                mov     edi, [esi+edx+800h]
25842
                shr     ecx, 0Dh
25843
                mov     ebp, [esi+edx+804h]
25844
                and     ecx, 7F8h
25845
                mov     edx, [esp+0B0h]
25846
                xor     eax, edi
25847
                xor     ebx, ebp
25848
                shr     edx, 18h
25849
                mov     edi, [esi+ecx+1000h]
25850
                mov     ebp, [esi+ecx+1004h]
25851
                mov     ecx, [esp+0ACh]
25852
                xor     eax, edi
25853
                mov     edi, [esi+edx*8+1800h]
25854
                and     ecx, 0FFh
25855
                xor     ebx, ebp
25856
                mov     ebp, [esi+edx*8+1804h]
25857
                mov     edx, [esp+0A4h]
25858
                xor     eax, edi
25859
                xor     ebx, ebp
25860
                shr     edx, 5
25861
                mov     edi, [esi+ecx*8+2000h]
25862
                mov     ebp, [esi+ecx*8+2004h]
25863
                and     edx, 7F8h
25864
                mov     ecx, [esp+9Ch]
25865
                xor     eax, edi
25866
                shr     ecx, 0Dh
25867
                xor     ebx, ebp
25868
                mov     edi, [esi+edx+2800h]
25869
                and     ecx, 7F8h
25870
                mov     ebp, [esi+edx+2804h]
25871
                xor     eax, edi
25872
                mov     edx, [esp+94h]
25873
                xor     ebx, ebp
25874
                shr     edx, 18h
25875
                mov     edi, [esi+ecx+3000h]
25876
                mov     ebp, [esi+ecx+3004h]
25877
                xor     eax, edi
25878
                mov     edi, [esi+edx*8+3800h]
25879
                xor     ebx, ebp
25880
                mov     ebp, [esi+edx*8+3804h]
25881
                xor     eax, edi
25882
                xor     ebx, ebp
25883
                mov     [esp+48h], eax
25884
                mov     [esp+4Ch], ebx
25885
                mov     ecx, [esp+90h]
25886
                mov     edx, [esp+88h]
25887
                and     ecx, 0FFh
25888
                shr     edx, 5
25889
                mov     eax, [esi+ecx*8]
25890
                and     edx, 7F8h
25891
                mov     ebx, [esi+ecx*8+4]
25892
                mov     ecx, [esp+80h]
25893
                mov     edi, [esi+edx+800h]
25894
                shr     ecx, 0Dh
25895
                mov     ebp, [esi+edx+804h]
25896
                and     ecx, 7F8h
25897
                mov     edx, [esp+0B8h]
25898
                xor     eax, edi
25899
                xor     ebx, ebp
25900
                shr     edx, 18h
25901
                mov     edi, [esi+ecx+1000h]
25902
                mov     ebp, [esi+ecx+1004h]
25903
                mov     ecx, [esp+0B4h]
25904
                xor     eax, edi
25905
                mov     edi, [esi+edx*8+1800h]
25906
                and     ecx, 0FFh
25907
                xor     ebx, ebp
25908
                mov     ebp, [esi+edx*8+1804h]
25909
                mov     edx, [esp+0ACh]
25910
                xor     eax, edi
25911
                xor     ebx, ebp
25912
                shr     edx, 5
25913
                mov     edi, [esi+ecx*8+2000h]
25914
                mov     ebp, [esi+ecx*8+2004h]
25915
                and     edx, 7F8h
25916
                mov     ecx, [esp+0A4h]
25917
                xor     eax, edi
25918
                shr     ecx, 0Dh
25919
                xor     ebx, ebp
25920
                mov     edi, [esi+edx+2800h]
25921
                and     ecx, 7F8h
25922
                mov     ebp, [esi+edx+2804h]
25923
                xor     eax, edi
25924
                mov     edx, [esp+9Ch]
25925
                xor     ebx, ebp
25926
                shr     edx, 18h
25927
                mov     edi, [esi+ecx+3000h]
25928
                mov     ebp, [esi+ecx+3004h]
25929
                xor     eax, edi
25930
                mov     edi, [esi+edx*8+3800h]
25931
                xor     ebx, ebp
25932
                mov     ebp, [esi+edx*8+3804h]
25933
                xor     eax, edi
25934
                xor     ebx, ebp
25935
                mov     [esp+50h], eax
25936
                mov     [esp+54h], ebx
25937
                mov     ecx, [esp+98h]
25938
                mov     edx, [esp+90h]
25939
                and     ecx, 0FFh
25940
                shr     edx, 5
25941
                mov     eax, [esi+ecx*8]
25942
                and     edx, 7F8h
25943
                mov     ebx, [esi+ecx*8+4]
25944
                mov     ecx, [esp+88h]
25945
                mov     edi, [esi+edx+800h]
25946
                shr     ecx, 0Dh
25947
                mov     ebp, [esi+edx+804h]
25948
                and     ecx, 7F8h
25949
                mov     edx, [esp+80h]
25950
                xor     eax, edi
25951
                xor     ebx, ebp
25952
                shr     edx, 18h
25953
                mov     edi, [esi+ecx+1000h]
25954
                mov     ebp, [esi+ecx+1004h]
25955
                mov     ecx, [esp+0BCh]
25956
                xor     eax, edi
25957
                mov     edi, [esi+edx*8+1800h]
25958
                and     ecx, 0FFh
25959
                xor     ebx, ebp
25960
                mov     ebp, [esi+edx*8+1804h]
25961
                mov     edx, [esp+0B4h]
25962
                xor     eax, edi
25963
                xor     ebx, ebp
25964
                shr     edx, 5
25965
                mov     edi, [esi+ecx*8+2000h]
25966
                mov     ebp, [esi+ecx*8+2004h]
25967
                and     edx, 7F8h
25968
                mov     ecx, [esp+0ACh]
25969
                xor     eax, edi
25970
                shr     ecx, 0Dh
25971
                xor     ebx, ebp
25972
                mov     edi, [esi+edx+2800h]
25973
                and     ecx, 7F8h
25974
                mov     ebp, [esi+edx+2804h]
25975
                xor     eax, edi
25976
                mov     edx, [esp+0A4h]
25977
                xor     ebx, ebp
25978
                shr     edx, 18h
25979
                mov     edi, [esi+ecx+3000h]
25980
                mov     ebp, [esi+ecx+3004h]
25981
                xor     eax, edi
25982
                mov     edi, [esi+edx*8+3800h]
25983
                xor     ebx, ebp
25984
                mov     ebp, [esi+edx*8+3804h]
25985
                xor     eax, edi
25986
                xor     ebx, ebp
25987
                mov     [esp+58h], eax
25988
                mov     [esp+5Ch], ebx
25989
                mov     ecx, [esp+0A0h]
25990
                mov     edx, [esp+98h]
25991
                and     ecx, 0FFh
25992
                shr     edx, 5
25993
                mov     eax, [esi+ecx*8]
25994
                and     edx, 7F8h
25995
                mov     ebx, [esi+ecx*8+4]
25996
                mov     ecx, [esp+90h]
25997
                mov     edi, [esi+edx+800h]
25998
                shr     ecx, 0Dh
25999
                mov     ebp, [esi+edx+804h]
26000
                and     ecx, 7F8h
26001
                mov     edx, [esp+88h]
26002
                xor     eax, edi
26003
                xor     ebx, ebp
26004
                shr     edx, 18h
26005
                mov     edi, [esi+ecx+1000h]
26006
                mov     ebp, [esi+ecx+1004h]
26007
                mov     ecx, [esp+84h]
26008
                xor     eax, edi
26009
                mov     edi, [esi+edx*8+1800h]
26010
                and     ecx, 0FFh
26011
                xor     ebx, ebp
26012
                mov     ebp, [esi+edx*8+1804h]
26013
                mov     edx, [esp+0BCh]
26014
                xor     eax, edi
26015
                xor     ebx, ebp
26016
                shr     edx, 5
26017
                mov     edi, [esi+ecx*8+2000h]
26018
                mov     ebp, [esi+ecx*8+2004h]
26019
                and     edx, 7F8h
26020
                mov     ecx, [esp+0B4h]
26021
                xor     eax, edi
26022
                shr     ecx, 0Dh
26023
                xor     ebx, ebp
26024
                mov     edi, [esi+edx+2800h]
26025
                and     ecx, 7F8h
26026
                mov     ebp, [esi+edx+2804h]
26027
                xor     eax, edi
26028
                mov     edx, [esp+0ACh]
26029
                xor     ebx, ebp
26030
                shr     edx, 18h
26031
                mov     edi, [esi+ecx+3000h]
26032
                mov     ebp, [esi+ecx+3004h]
26033
                xor     eax, edi
26034
                mov     edi, [esi+edx*8+3800h]
26035
                xor     ebx, ebp
26036
                mov     ebp, [esi+edx*8+3804h]
26037
                xor     eax, edi
26038
                xor     ebx, ebp
26039
                mov     [esp+60h], eax
26040
                mov     [esp+64h], ebx
26041
                mov     ecx, [esp+0A8h]
26042
                mov     edx, [esp+0A0h]
26043
                and     ecx, 0FFh
26044
                shr     edx, 5
26045
                mov     eax, [esi+ecx*8]
26046
                and     edx, 7F8h
26047
                mov     ebx, [esi+ecx*8+4]
26048
                mov     ecx, [esp+98h]
26049
                mov     edi, [esi+edx+800h]
26050
                shr     ecx, 0Dh
26051
                mov     ebp, [esi+edx+804h]
26052
                and     ecx, 7F8h
26053
                mov     edx, [esp+90h]
26054
                xor     eax, edi
26055
                xor     ebx, ebp
26056
                shr     edx, 18h
26057
                mov     edi, [esi+ecx+1000h]
26058
                mov     ebp, [esi+ecx+1004h]
26059
                mov     ecx, [esp+8Ch]
26060
                xor     eax, edi
26061
                mov     edi, [esi+edx*8+1800h]
26062
                and     ecx, 0FFh
26063
                xor     ebx, ebp
26064
                mov     ebp, [esi+edx*8+1804h]
26065
                mov     edx, [esp+84h]
26066
                xor     eax, edi
26067
                xor     ebx, ebp
26068
                shr     edx, 5
26069
                mov     edi, [esi+ecx*8+2000h]
26070
                mov     ebp, [esi+ecx*8+2004h]
26071
                and     edx, 7F8h
26072
                mov     ecx, [esp+0BCh]
26073
                xor     eax, edi
26074
                shr     ecx, 0Dh
26075
                xor     ebx, ebp
26076
                mov     edi, [esi+edx+2800h]
26077
                and     ecx, 7F8h
26078
                mov     ebp, [esi+edx+2804h]
26079
                xor     eax, edi
26080
                mov     edx, [esp+0B4h]
26081
                xor     ebx, ebp
26082
                shr     edx, 18h
26083
                mov     edi, [esi+ecx+3000h]
26084
                mov     ebp, [esi+ecx+3004h]
26085
                xor     eax, edi
26086
                mov     edi, [esi+edx*8+3800h]
26087
                xor     ebx, ebp
26088
                mov     ebp, [esi+edx*8+3804h]
26089
                xor     eax, edi
26090
                xor     ebx, ebp
26091
                mov     [esp+68h], eax
26092
                mov     [esp+6Ch], ebx
26093
                mov     ecx, [esp+0B0h]
26094
                mov     edx, [esp+0A8h]
26095
                and     ecx, 0FFh
26096
                shr     edx, 5
26097
                mov     eax, [esi+ecx*8]
26098
                and     edx, 7F8h
26099
                mov     ebx, [esi+ecx*8+4]
26100
                mov     ecx, [esp+0A0h]
26101
                mov     edi, [esi+edx+800h]
26102
                shr     ecx, 0Dh
26103
                mov     ebp, [esi+edx+804h]
26104
                and     ecx, 7F8h
26105
                mov     edx, [esp+98h]
26106
                xor     eax, edi
26107
                xor     ebx, ebp
26108
                shr     edx, 18h
26109
                mov     edi, [esi+ecx+1000h]
26110
                mov     ebp, [esi+ecx+1004h]
26111
                mov     ecx, [esp+94h]
26112
                xor     eax, edi
26113
                mov     edi, [esi+edx*8+1800h]
26114
                and     ecx, 0FFh
26115
                xor     ebx, ebp
26116
                mov     ebp, [esi+edx*8+1804h]
26117
                mov     edx, [esp+8Ch]
26118
                xor     eax, edi
26119
                xor     ebx, ebp
26120
                shr     edx, 5
26121
                mov     edi, [esi+ecx*8+2000h]
26122
                mov     ebp, [esi+ecx*8+2004h]
26123
                and     edx, 7F8h
26124
                mov     ecx, [esp+84h]
26125
                xor     eax, edi
26126
                shr     ecx, 0Dh
26127
                xor     ebx, ebp
26128
                mov     edi, [esi+edx+2800h]
26129
                and     ecx, 7F8h
26130
                mov     ebp, [esi+edx+2804h]
26131
                xor     eax, edi
26132
                mov     edx, [esp+0BCh]
26133
                xor     ebx, ebp
26134
                shr     edx, 18h
26135
                mov     edi, [esi+ecx+3000h]
26136
                mov     ebp, [esi+ecx+3004h]
26137
                xor     eax, edi
26138
                mov     edi, [esi+edx*8+3800h]
26139
                xor     ebx, ebp
26140
                mov     ebp, [esi+edx*8+3804h]
26141
                xor     eax, edi
26142
                xor     ebx, ebp
26143
                mov     [esp+70h], eax
26144
                mov     [esp+74h], ebx
26145
                mov     ecx, [esp+0B8h]
26146
                mov     edx, [esp+0B0h]
26147
                and     ecx, 0FFh
26148
                shr     edx, 5
26149
                mov     eax, [esi+ecx*8]
26150
                and     edx, 7F8h
26151
                mov     ebx, [esi+ecx*8+4]
26152
                mov     ecx, [esp+0A8h]
26153
                mov     edi, [esi+edx+800h]
26154
                shr     ecx, 0Dh
26155
                mov     ebp, [esi+edx+804h]
26156
                and     ecx, 7F8h
26157
                mov     edx, [esp+0A0h]
26158
                xor     eax, edi
26159
                xor     ebx, ebp
26160
                shr     edx, 18h
26161
                mov     edi, [esi+ecx+1000h]
26162
                mov     ebp, [esi+ecx+1004h]
26163
                mov     ecx, [esp+9Ch]
26164
                xor     eax, edi
26165
                mov     edi, [esi+edx*8+1800h]
26166
                and     ecx, 0FFh
26167
                xor     ebx, ebp
26168
                mov     ebp, [esi+edx*8+1804h]
26169
                mov     edx, [esp+94h]
26170
                xor     eax, edi
26171
                xor     ebx, ebp
26172
                shr     edx, 5
26173
                mov     edi, [esi+ecx*8+2000h]
26174
                mov     ebp, [esi+ecx*8+2004h]
26175
                and     edx, 7F8h
26176
                mov     ecx, [esp+8Ch]
26177
                xor     eax, edi
26178
                shr     ecx, 0Dh
26179
                xor     ebx, ebp
26180
                mov     edi, [esi+edx+2800h]
26181
                and     ecx, 7F8h
26182
                mov     ebp, [esi+edx+2804h]
26183
                xor     eax, edi
26184
                mov     edx, [esp+84h]
26185
                xor     ebx, ebp
26186
                shr     edx, 18h
26187
                mov     edi, [esi+ecx+3000h]
26188
                mov     ebp, [esi+ecx+3004h]
26189
                xor     eax, edi
26190
                mov     edi, [esi+edx*8+3800h]
26191
                xor     ebx, ebp
26192
                mov     ebp, [esi+edx*8+3804h]
26193
                xor     eax, edi
26194
                xor     ebx, ebp
26195
                mov     [esp+78h], eax
26196
                mov     [esp+7Ch], ebx
26197
                mov     eax, [esp+40h]
26198
                mov     ebx, [esp+44h]
26199
                mov     ecx, [esp+0C0h]
26200
                mov     edx, [esp+0F8h]
26201
                and     ecx, 0FFh
26202
                shr     edx, 5
26203
                mov     edi, [esi+ecx*8]
26204
                and     edx, 7F8h
26205
                mov     ebp, [esi+ecx*8+4]
26206
                xor     eax, edi
26207
                mov     ecx, [esp+0F0h]
26208
                mov     edi, [esi+edx+800h]
26209
                xor     ebx, ebp
26210
                shr     ecx, 0Dh
26211
                mov     ebp, [esi+edx+804h]
26212
                and     ecx, 7F8h
26213
                xor     eax, edi
26214
                mov     edx, [esp+0E8h]
26215
                xor     ebx, ebp
26216
                shr     edx, 18h
26217
                mov     edi, [esi+ecx+1000h]
26218
                mov     ebp, [esi+ecx+1004h]
26219
                xor     eax, edi
26220
                mov     edi, [esi+edx*8+1800h]
26221
                xor     ebx, ebp
26222
                mov     ebp, [esi+edx*8+1804h]
26223
                xor     eax, edi
26224
                xor     ebx, ebp
26225
                mov     ecx, [esp+0E4h]
26226
                mov     edx, [esp+0DCh]
26227
                and     ecx, 0FFh
26228
                shr     edx, 5
26229
                mov     edi, [esi+ecx*8+2000h]
26230
                and     edx, 7F8h
26231
                mov     ebp, [esi+ecx*8+2004h]
26232
                xor     eax, edi
26233
                mov     ecx, [esp+0D4h]
26234
                mov     edi, [esi+edx+2800h]
26235
                xor     ebx, ebp
26236
                shr     ecx, 0Dh
26237
                mov     ebp, [esi+edx+2804h]
26238
                and     ecx, 7F8h
26239
                xor     eax, edi
26240
                mov     edx, [esp+0CCh]
26241
                xor     ebx, ebp
26242
                shr     edx, 18h
26243
                mov     edi, [esi+ecx+3000h]
26244
                mov     ebp, [esi+ecx+3004h]
26245
                xor     eax, edi
26246
                mov     edi, [esi+edx*8+3800h]
26247
                xor     ebx, ebp
26248
                mov     ebp, [esi+edx*8+3804h]
26249
                xor     eax, edi
26250
                xor     ebx, ebp
26251
                mov     [esp], eax
26252
                mov     [esp+4], ebx
26253
                mov     eax, [esp+48h]
26254
                mov     ebx, [esp+4Ch]
26255
                mov     ecx, [esp+0C8h]
26256
                mov     edx, [esp+0C0h]
26257
                and     ecx, 0FFh
26258
                shr     edx, 5
26259
                mov     edi, [esi+ecx*8]
26260
                and     edx, 7F8h
26261
                mov     ebp, [esi+ecx*8+4]
26262
                xor     eax, edi
26263
                mov     ecx, [esp+0F8h]
26264
                mov     edi, [esi+edx+800h]
26265
                xor     ebx, ebp
26266
                shr     ecx, 0Dh
26267
                mov     ebp, [esi+edx+804h]
26268
                and     ecx, 7F8h
26269
                xor     eax, edi
26270
                mov     edx, [esp+0F0h]
26271
                xor     ebx, ebp
26272
                shr     edx, 18h
26273
                mov     edi, [esi+ecx+1000h]
26274
                mov     ebp, [esi+ecx+1004h]
26275
                xor     eax, edi
26276
                mov     edi, [esi+edx*8+1800h]
26277
                xor     ebx, ebp
26278
                mov     ebp, [esi+edx*8+1804h]
26279
                xor     eax, edi
26280
                xor     ebx, ebp
26281
                mov     ecx, [esp+0ECh]
26282
                mov     edx, [esp+0E4h]
26283
                and     ecx, 0FFh
26284
                shr     edx, 5
26285
                mov     edi, [esi+ecx*8+2000h]
26286
                and     edx, 7F8h
26287
                mov     ebp, [esi+ecx*8+2004h]
26288
                xor     eax, edi
26289
                mov     ecx, [esp+0DCh]
26290
                mov     edi, [esi+edx+2800h]
26291
                xor     ebx, ebp
26292
                shr     ecx, 0Dh
26293
                mov     ebp, [esi+edx+2804h]
26294
                and     ecx, 7F8h
26295
                xor     eax, edi
26296
                mov     edx, [esp+0D4h]
26297
                xor     ebx, ebp
26298
                shr     edx, 18h
26299
                mov     edi, [esi+ecx+3000h]
26300
                mov     ebp, [esi+ecx+3004h]
26301
                xor     eax, edi
26302
                mov     edi, [esi+edx*8+3800h]
26303
                xor     ebx, ebp
26304
                mov     ebp, [esi+edx*8+3804h]
26305
                xor     eax, edi
26306
                xor     ebx, ebp
26307
                mov     [esp+8], eax
26308
                mov     [esp+0Ch], ebx
26309
                mov     eax, [esp+50h]
26310
                mov     ebx, [esp+54h]
26311
                mov     ecx, [esp+0D0h]
26312
                mov     edx, [esp+0C8h]
26313
                and     ecx, 0FFh
26314
                shr     edx, 5
26315
                mov     edi, [esi+ecx*8]
26316
                and     edx, 7F8h
26317
                mov     ebp, [esi+ecx*8+4]
26318
                xor     eax, edi
26319
                mov     ecx, [esp+0C0h]
26320
                mov     edi, [esi+edx+800h]
26321
                xor     ebx, ebp
26322
                shr     ecx, 0Dh
26323
                mov     ebp, [esi+edx+804h]
26324
                and     ecx, 7F8h
26325
                xor     eax, edi
26326
                mov     edx, [esp+0F8h]
26327
                xor     ebx, ebp
26328
                shr     edx, 18h
26329
                mov     edi, [esi+ecx+1000h]
26330
                mov     ebp, [esi+ecx+1004h]
26331
                xor     eax, edi
26332
                mov     edi, [esi+edx*8+1800h]
26333
                xor     ebx, ebp
26334
                mov     ebp, [esi+edx*8+1804h]
26335
                xor     eax, edi
26336
                xor     ebx, ebp
26337
                mov     ecx, [esp+0F4h]
26338
                mov     edx, [esp+0ECh]
26339
                and     ecx, 0FFh
26340
                shr     edx, 5
26341
                mov     edi, [esi+ecx*8+2000h]
26342
                and     edx, 7F8h
26343
                mov     ebp, [esi+ecx*8+2004h]
26344
                xor     eax, edi
26345
                mov     ecx, [esp+0E4h]
26346
                mov     edi, [esi+edx+2800h]
26347
                xor     ebx, ebp
26348
                shr     ecx, 0Dh
26349
                mov     ebp, [esi+edx+2804h]
26350
                and     ecx, 7F8h
26351
                xor     eax, edi
26352
                mov     edx, [esp+0DCh]
26353
                xor     ebx, ebp
26354
                shr     edx, 18h
26355
                mov     edi, [esi+ecx+3000h]
26356
                mov     ebp, [esi+ecx+3004h]
26357
                xor     eax, edi
26358
                mov     edi, [esi+edx*8+3800h]
26359
                xor     ebx, ebp
26360
                mov     ebp, [esi+edx*8+3804h]
26361
                xor     eax, edi
26362
                xor     ebx, ebp
26363
                mov     [esp+10h], eax
26364
                mov     [esp+14h], ebx
26365
                mov     eax, [esp+58h]
26366
                mov     ebx, [esp+5Ch]
26367
                mov     ecx, [esp+0D8h]
26368
                mov     edx, [esp+0D0h]
26369
                and     ecx, 0FFh
26370
                shr     edx, 5
26371
                mov     edi, [esi+ecx*8]
26372
                and     edx, 7F8h
26373
                mov     ebp, [esi+ecx*8+4]
26374
                xor     eax, edi
26375
                mov     ecx, [esp+0C8h]
26376
                mov     edi, [esi+edx+800h]
26377
                xor     ebx, ebp
26378
                shr     ecx, 0Dh
26379
                mov     ebp, [esi+edx+804h]
26380
                and     ecx, 7F8h
26381
                xor     eax, edi
26382
                mov     edx, [esp+0C0h]
26383
                xor     ebx, ebp
26384
                shr     edx, 18h
26385
                mov     edi, [esi+ecx+1000h]
26386
                mov     ebp, [esi+ecx+1004h]
26387
                xor     eax, edi
26388
                mov     edi, [esi+edx*8+1800h]
26389
                xor     ebx, ebp
26390
                mov     ebp, [esi+edx*8+1804h]
26391
                xor     eax, edi
26392
                xor     ebx, ebp
26393
                mov     ecx, [esp+0FCh]
26394
                mov     edx, [esp+0F4h]
26395
                and     ecx, 0FFh
26396
                shr     edx, 5
26397
                mov     edi, [esi+ecx*8+2000h]
26398
                and     edx, 7F8h
26399
                mov     ebp, [esi+ecx*8+2004h]
26400
                xor     eax, edi
26401
                mov     ecx, [esp+0ECh]
26402
                mov     edi, [esi+edx+2800h]
26403
                xor     ebx, ebp
26404
                shr     ecx, 0Dh
26405
                mov     ebp, [esi+edx+2804h]
26406
                and     ecx, 7F8h
26407
                xor     eax, edi
26408
                mov     edx, [esp+0E4h]
26409
                xor     ebx, ebp
26410
                shr     edx, 18h
26411
                mov     edi, [esi+ecx+3000h]
26412
                mov     ebp, [esi+ecx+3004h]
26413
                xor     eax, edi
26414
                mov     edi, [esi+edx*8+3800h]
26415
                xor     ebx, ebp
26416
                mov     ebp, [esi+edx*8+3804h]
26417
                xor     eax, edi
26418
                xor     ebx, ebp
26419
                mov     [esp+18h], eax
26420
                mov     [esp+1Ch], ebx
26421
                mov     eax, [esp+60h]
26422
                mov     ebx, [esp+64h]
26423
                mov     ecx, [esp+0E0h]
26424
                mov     edx, [esp+0D8h]
26425
                and     ecx, 0FFh
26426
                shr     edx, 5
26427
                mov     edi, [esi+ecx*8]
26428
                and     edx, 7F8h
26429
                mov     ebp, [esi+ecx*8+4]
26430
                xor     eax, edi
26431
                mov     ecx, [esp+0D0h]
26432
                mov     edi, [esi+edx+800h]
26433
                xor     ebx, ebp
26434
                shr     ecx, 0Dh
26435
                mov     ebp, [esi+edx+804h]
26436
                and     ecx, 7F8h
26437
                xor     eax, edi
26438
                mov     edx, [esp+0C8h]
26439
                xor     ebx, ebp
26440
                shr     edx, 18h
26441
                mov     edi, [esi+ecx+1000h]
26442
                mov     ebp, [esi+ecx+1004h]
26443
                xor     eax, edi
26444
                mov     edi, [esi+edx*8+1800h]
26445
                xor     ebx, ebp
26446
                mov     ebp, [esi+edx*8+1804h]
26447
                xor     eax, edi
26448
                xor     ebx, ebp
26449
                mov     ecx, [esp+0C4h]
26450
                mov     edx, [esp+0FCh]
26451
                and     ecx, 0FFh
26452
                shr     edx, 5
26453
                mov     edi, [esi+ecx*8+2000h]
26454
                and     edx, 7F8h
26455
                mov     ebp, [esi+ecx*8+2004h]
26456
                xor     eax, edi
26457
                mov     ecx, [esp+0F4h]
26458
                mov     edi, [esi+edx+2800h]
26459
                xor     ebx, ebp
26460
                shr     ecx, 0Dh
26461
                mov     ebp, [esi+edx+2804h]
26462
                and     ecx, 7F8h
26463
                xor     eax, edi
26464
                mov     edx, [esp+0ECh]
26465
                xor     ebx, ebp
26466
                shr     edx, 18h
26467
                mov     edi, [esi+ecx+3000h]
26468
                mov     ebp, [esi+ecx+3004h]
26469
                xor     eax, edi
26470
                mov     edi, [esi+edx*8+3800h]
26471
                xor     ebx, ebp
26472
                mov     ebp, [esi+edx*8+3804h]
26473
                xor     eax, edi
26474
                xor     ebx, ebp
26475
                mov     [esp+20h], eax
26476
                mov     [esp+24h], ebx
26477
                mov     eax, [esp+68h]
26478
                mov     ebx, [esp+6Ch]
26479
                mov     ecx, [esp+0E8h]
26480
                mov     edx, [esp+0E0h]
26481
                and     ecx, 0FFh
26482
                shr     edx, 5
26483
                mov     edi, [esi+ecx*8]
26484
                and     edx, 7F8h
26485
                mov     ebp, [esi+ecx*8+4]
26486
                xor     eax, edi
26487
                mov     ecx, [esp+0D8h]
26488
                mov     edi, [esi+edx+800h]
26489
                xor     ebx, ebp
26490
                shr     ecx, 0Dh
26491
                mov     ebp, [esi+edx+804h]
26492
                and     ecx, 7F8h
26493
                xor     eax, edi
26494
                mov     edx, [esp+0D0h]
26495
                xor     ebx, ebp
26496
                shr     edx, 18h
26497
                mov     edi, [esi+ecx+1000h]
26498
                mov     ebp, [esi+ecx+1004h]
26499
                xor     eax, edi
26500
                mov     edi, [esi+edx*8+1800h]
26501
                xor     ebx, ebp
26502
                mov     ebp, [esi+edx*8+1804h]
26503
                xor     eax, edi
26504
                xor     ebx, ebp
26505
                mov     ecx, [esp+0CCh]
26506
                mov     edx, [esp+0C4h]
26507
                and     ecx, 0FFh
26508
                shr     edx, 5
26509
                mov     edi, [esi+ecx*8+2000h]
26510
                and     edx, 7F8h
26511
                mov     ebp, [esi+ecx*8+2004h]
26512
                xor     eax, edi
26513
                mov     ecx, [esp+0FCh]
26514
                mov     edi, [esi+edx+2800h]
26515
                xor     ebx, ebp
26516
                shr     ecx, 0Dh
26517
                mov     ebp, [esi+edx+2804h]
26518
                and     ecx, 7F8h
26519
                xor     eax, edi
26520
                mov     edx, [esp+0F4h]
26521
                xor     ebx, ebp
26522
                shr     edx, 18h
26523
                mov     edi, [esi+ecx+3000h]
26524
                mov     ebp, [esi+ecx+3004h]
26525
                xor     eax, edi
26526
                mov     edi, [esi+edx*8+3800h]
26527
                xor     ebx, ebp
26528
                mov     ebp, [esi+edx*8+3804h]
26529
                xor     eax, edi
26530
                xor     ebx, ebp
26531
                mov     [esp+28h], eax
26532
                mov     [esp+2Ch], ebx
26533
                mov     eax, [esp+70h]
26534
                mov     ebx, [esp+74h]
26535
                mov     ecx, [esp+0F0h]
26536
                mov     edx, [esp+0E8h]
26537
                and     ecx, 0FFh
26538
                shr     edx, 5
26539
                mov     edi, [esi+ecx*8]
26540
                and     edx, 7F8h
26541
                mov     ebp, [esi+ecx*8+4]
26542
                xor     eax, edi
26543
                mov     ecx, [esp+0E0h]
26544
                mov     edi, [esi+edx+800h]
26545
                xor     ebx, ebp
26546
                shr     ecx, 0Dh
26547
                mov     ebp, [esi+edx+804h]
26548
                and     ecx, 7F8h
26549
                xor     eax, edi
26550
                mov     edx, [esp+0D8h]
26551
                xor     ebx, ebp
26552
                shr     edx, 18h
26553
                mov     edi, [esi+ecx+1000h]
26554
                mov     ebp, [esi+ecx+1004h]
26555
                xor     eax, edi
26556
                mov     edi, [esi+edx*8+1800h]
26557
                xor     ebx, ebp
26558
                mov     ebp, [esi+edx*8+1804h]
26559
                xor     eax, edi
26560
                xor     ebx, ebp
26561
                mov     ecx, [esp+0D4h]
26562
                mov     edx, [esp+0CCh]
26563
                and     ecx, 0FFh
26564
                shr     edx, 5
26565
                mov     edi, [esi+ecx*8+2000h]
26566
                and     edx, 7F8h
26567
                mov     ebp, [esi+ecx*8+2004h]
26568
                xor     eax, edi
26569
                mov     ecx, [esp+0C4h]
26570
                mov     edi, [esi+edx+2800h]
26571
                xor     ebx, ebp
26572
                shr     ecx, 0Dh
26573
                mov     ebp, [esi+edx+2804h]
26574
                and     ecx, 7F8h
26575
                xor     eax, edi
26576
                mov     edx, [esp+0FCh]
26577
                xor     ebx, ebp
26578
                shr     edx, 18h
26579
                mov     edi, [esi+ecx+3000h]
26580
                mov     ebp, [esi+ecx+3004h]
26581
                xor     eax, edi
26582
                mov     edi, [esi+edx*8+3800h]
26583
                xor     ebx, ebp
26584
                mov     ebp, [esi+edx*8+3804h]
26585
                xor     eax, edi
26586
                xor     ebx, ebp
26587
                mov     [esp+30h], eax
26588
                mov     [esp+34h], ebx
26589
                mov     eax, [esp+78h]
26590
                mov     ebx, [esp+7Ch]
26591
                mov     ecx, [esp+0F8h]
26592
                mov     edx, [esp+0F0h]
26593
                and     ecx, 0FFh
26594
                shr     edx, 5
26595
                mov     edi, [esi+ecx*8]
26596
                and     edx, 7F8h
26597
                mov     ebp, [esi+ecx*8+4]
26598
                xor     eax, edi
26599
                mov     ecx, [esp+0E8h]
26600
                mov     edi, [esi+edx+800h]
26601
                xor     ebx, ebp
26602
                shr     ecx, 0Dh
26603
                mov     ebp, [esi+edx+804h]
26604
                and     ecx, 7F8h
26605
                xor     eax, edi
26606
                mov     edx, [esp+0E0h]
26607
                xor     ebx, ebp
26608
                shr     edx, 18h
26609
                mov     edi, [esi+ecx+1000h]
26610
                mov     ebp, [esi+ecx+1004h]
26611
                xor     eax, edi
26612
                mov     edi, [esi+edx*8+1800h]
26613
                xor     ebx, ebp
26614
                mov     ebp, [esi+edx*8+1804h]
26615
                xor     eax, edi
26616
                xor     ebx, ebp
26617
                mov     ecx, [esp+0DCh]
26618
                mov     edx, [esp+0D4h]
26619
                and     ecx, 0FFh
26620
                shr     edx, 5
26621
                mov     edi, [esi+ecx*8+2000h]
26622
                and     edx, 7F8h
26623
                mov     ebp, [esi+ecx*8+2004h]
26624
                xor     eax, edi
26625
                mov     ecx, [esp+0CCh]
26626
                mov     edi, [esi+edx+2800h]
26627
                xor     ebx, ebp
26628
                shr     ecx, 0Dh
26629
                mov     ebp, [esi+edx+2804h]
26630
                and     ecx, 7F8h
26631
                xor     eax, edi
26632
                mov     edx, [esp+0C4h]
26633
                xor     ebx, ebp
26634
                shr     edx, 18h
26635
                mov     edi, [esi+ecx+3000h]
26636
                mov     ebp, [esi+ecx+3004h]
26637
                xor     eax, edi
26638
                mov     edi, [esi+edx*8+3800h]
26639
                xor     ebx, ebp
26640
                mov     ebp, [esi+edx*8+3804h]
26641
                xor     eax, edi
26642
                xor     ebx, ebp
26643
                mov     [esp+38h], eax
26644
                mov     [esp+3Ch], ebx
26645
                mov     ebp, [esp+108h]
26646
                add     ebp, 10h
26647
                cmp     ebp, 50h
26648
                jnz     @@_loop_start
26649
                mov     ebp, [esp+114h]
26650
                mov     edi, [esp+110h]
26651
                mov     esi, [esp+10Ch]
26652
                mov     eax, [esp]
26653
                mov     ebx, [esp+4]
26654
                mov     ecx, [edi]
26655
                mov     edx, [edi+4]
26656
                xor     eax, ecx
26657
                xor     ebx, edx
26658
                mov     ecx, [esi]
26659
                mov     edx, [esi+4]
26660
                xor     eax, ecx
26661
                xor     ebx, edx
26662
                mov     [esi], eax
26663
                mov     [esi+4], ebx
26664
                mov     eax, [esp+8]
26665
                mov     ebx, [esp+0Ch]
26666
                mov     ecx, [edi+8]
26667
                mov     edx, [edi+0Ch]
26668
                xor     eax, ecx
26669
                xor     ebx, edx
26670
                mov     ecx, [esi+8]
26671
                mov     edx, [esi+0Ch]
26672
                xor     eax, ecx
26673
                xor     ebx, edx
26674
                mov     [esi+8], eax
26675
                mov     [esi+0Ch], ebx
26676
                mov     eax, [esp+10h]
26677
                mov     ebx, [esp+14h]
26678
                mov     ecx, [edi+10h]
26679
                mov     edx, [edi+14h]
26680
                xor     eax, ecx
26681
                xor     ebx, edx
26682
                mov     ecx, [esi+10h]
26683
                mov     edx, [esi+14h]
26684
                xor     eax, ecx
26685
                xor     ebx, edx
26686
                mov     [esi+10h], eax
26687
                mov     [esi+14h], ebx
26688
                mov     eax, [esp+18h]
26689
                mov     ebx, [esp+1Ch]
26690
                mov     ecx, [edi+18h]
26691
                mov     edx, [edi+1Ch]
26692
                xor     eax, ecx
26693
                xor     ebx, edx
26694
                mov     ecx, [esi+18h]
26695
                mov     edx, [esi+1Ch]
26696
                xor     eax, ecx
26697
                xor     ebx, edx
26698
                mov     [esi+18h], eax
26699
                mov     [esi+1Ch], ebx
26700
                mov     eax, [esp+20h]
26701
                mov     ebx, [esp+24h]
26702
                mov     ecx, [edi+20h]
26703
                mov     edx, [edi+24h]
26704
                xor     eax, ecx
26705
                xor     ebx, edx
26706
                mov     ecx, [esi+20h]
26707
                mov     edx, [esi+24h]
26708
                xor     eax, ecx
26709
                xor     ebx, edx
26710
                mov     [esi+20h], eax
26711
                mov     [esi+24h], ebx
26712
                mov     eax, [esp+28h]
26713
                mov     ebx, [esp+2Ch]
26714
                mov     ecx, [edi+28h]
26715
                mov     edx, [edi+2Ch]
26716
                xor     eax, ecx
26717
                xor     ebx, edx
26718
                mov     ecx, [esi+28h]
26719
                mov     edx, [esi+2Ch]
26720
                xor     eax, ecx
26721
                xor     ebx, edx
26722
                mov     [esi+28h], eax
26723
                mov     [esi+2Ch], ebx
26724
                mov     eax, [esp+30h]
26725
                mov     ebx, [esp+34h]
26726
                mov     ecx, [edi+30h]
26727
                mov     edx, [edi+34h]
26728
                xor     eax, ecx
26729
                xor     ebx, edx
26730
                mov     ecx, [esi+30h]
26731
                mov     edx, [esi+34h]
26732
                xor     eax, ecx
26733
                xor     ebx, edx
26734
                mov     [esi+30h], eax
26735
                mov     [esi+34h], ebx
26736
                mov     eax, [esp+38h]
26737
                mov     ebx, [esp+3Ch]
26738
                mov     ecx, [edi+38h]
26739
                mov     edx, [edi+3Ch]
26740
                xor     eax, ecx
26741
                xor     ebx, edx
26742
                mov     ecx, [esi+38h]
26743
                mov     edx, [esi+3Ch]
26744
                xor     eax, ecx
26745
                xor     ebx, edx
26746
                mov     [esi+38h], eax
26747
                mov     [esi+3Ch], ebx
26748
                mov     esp, ebp
26749
                pop  ebp
26750
                pop  edi
26751
                pop  esi
26752
                pop  ebx
26753
end;
26754
{$ENDIF}
26755
26756
{$IFDEF THash_Square_asm}
26757
procedure THash_Square.DoTransform(Buffer: PUInt32Array);
26758
asm
26759
                push    ebx
26760
                push    esi
26761
                push    edi
26762
                mov     esi, edx
26763
                lea     edi, [eax].THash_Square.FDigest
26764
                push    ebp
26765
                lea     eax, Square_PHIr
26766
                lea     edx, Square_TE
26767
                lea     ecx, Square_SEint
26768
26769
                mov     ebp, esp
26770
                add     esp, 0FFFFFF58h
26771
                and     esp, 0FFFFFFE0h
26772
                mov     [esp+90h], edi
26773
                mov     [esp+94h], esi
26774
                mov     [esp+98h], eax
26775
                mov     [esp+9Ch], edx
26776
                mov     [esp+0A0h], ecx
26777
                mov     [esp+0A4h], ebp
26778
                mov     ecx, [edi]
26779
                mov     edx, [edi+4]
26780
                mov     [esp], ecx
26781
                mov     esi, eax
26782
                mov     [esp+4], edx
26783
                mov     ebp, [edi+8]
26784
                mov     edi, [edi+0Ch]
26785
                mov     [esp+8], ebp
26786
                mov     [esp+0Ch], edi
26787
                mov     eax, ecx
26788
                mov     ebx, edx
26789
                mov     ecx, ebp
26790
                mov     ebp, edi
26791
                xor     eax, 1
26792
                ror     ebp, 8
26793
                xor     eax, ebp
26794
                mov     ebp, 0FFh
26795
                xor     ebx, eax
26796
                mov     [esp+10h], eax
26797
                mov     eax, [esp]
26798
                xor     ecx, ebx
26799
                mov     [esp+14h], ebx
26800
                xor     edi, ecx
26801
                mov     [esp+18h], ecx
26802
                mov     [esp+1Ch], edi
26803
                mov     edx, eax
26804
                mov     ebx, eax
26805
                mov     ecx, eax
26806
                shr     eax, 8
26807
                and     ebx, ebp
26808
                shr     ecx, 10h
26809
                and     eax, ebp
26810
                and     ecx, ebp
26811
                mov     ebx, [esi+ebx*4]
26812
                shr     edx, 18h
26813
                mov     eax, [esi+eax*4+400h]
26814
                mov     ecx, [esi+ecx*4+800h]
26815
                xor     ebx, eax
26816
                mov     edx, [esi+edx*4+0C00h]
26817
                xor     ebx, ecx
26818
                mov     eax, [esp+4]
26819
                xor     ebx, edx
26820
                mov     edx, eax
26821
                mov     [esp], ebx
26822
                mov     ebx, eax
26823
                mov     ecx, eax
26824
                shr     eax, 8
26825
                and     ebx, ebp
26826
                shr     ecx, 10h
26827
                and     eax, ebp
26828
                and     ecx, ebp
26829
                mov     ebx, [esi+ebx*4]
26830
                shr     edx, 18h
26831
                mov     eax, [esi+eax*4+400h]
26832
                mov     ecx, [esi+ecx*4+800h]
26833
                xor     ebx, eax
26834
                mov     edx, [esi+edx*4+0C00h]
26835
                xor     ebx, ecx
26836
                mov     eax, [esp+8]
26837
                xor     ebx, edx
26838
                mov     edx, eax
26839
                mov     [esp+4], ebx
26840
                mov     ebx, eax
26841
                mov     ecx, eax
26842
                shr     eax, 8
26843
                and     ebx, ebp
26844
                shr     ecx, 10h
26845
                and     eax, ebp
26846
                and     ecx, ebp
26847
                mov     ebx, [esi+ebx*4]
26848
                shr     edx, 18h
26849
                mov     eax, [esi+eax*4+400h]
26850
                mov     ecx, [esi+ecx*4+800h]
26851
                xor     ebx, eax
26852
                mov     edx, [esi+edx*4+0C00h]
26853
                xor     ebx, ecx
26854
                mov     eax, [esp+0Ch]
26855
                xor     ebx, edx
26856
                mov     edx, eax
26857
                mov     [esp+8], ebx
26858
                mov     ebx, eax
26859
                mov     ecx, eax
26860
                shr     eax, 8
26861
                and     ebx, ebp
26862
                shr     ecx, 10h
26863
                and     eax, ebp
26864
                mov     ebx, [esi+ebx*4]
26865
                and     ecx, ebp
26866
                shr     edx, 18h
26867
                mov     eax, [esi+eax*4+400h]
26868
                mov     ecx, [esi+ecx*4+800h]
26869
                xor     ebx, eax
26870
                mov     edx, [esi+edx*4+0C00h]
26871
                xor     ebx, ecx
26872
                xor     ebx, edx
26873
                mov     [esp+0Ch], ebx
26874
                mov     eax, [esp+10h]
26875
                mov     ebx, [esp+14h]
26876
                mov     ecx, [esp+18h]
26877
                mov     ebp, [esp+1Ch]
26878
                xor     eax, 2
26879
                mov     edi, ebp
26880
                ror     ebp, 8
26881
                xor     eax, ebp
26882
                mov     ebp, 0FFh
26883
                xor     ebx, eax
26884
                mov     [esp+20h], eax
26885
                mov     eax, [esp+10h]
26886
                xor     ecx, ebx
26887
                mov     [esp+24h], ebx
26888
                xor     edi, ecx
26889
                mov     [esp+28h], ecx
26890
                mov     [esp+2Ch], edi
26891
                mov     edx, eax
26892
                mov     ebx, eax
26893
                mov     ecx, eax
26894
                shr     eax, 8
26895
                and     ebx, ebp
26896
                shr     ecx, 10h
26897
                and     eax, ebp
26898
                and     ecx, ebp
26899
                mov     ebx, [esi+ebx*4]
26900
                shr     edx, 18h
26901
                mov     eax, [esi+eax*4+400h]
26902
                mov     ecx, [esi+ecx*4+800h]
26903
                xor     ebx, eax
26904
                mov     edx, [esi+edx*4+0C00h]
26905
                xor     ebx, ecx
26906
                mov     eax, [esp+14h]
26907
                xor     ebx, edx
26908
                mov     edx, eax
26909
                mov     [esp+10h], ebx
26910
                mov     ebx, eax
26911
                mov     ecx, eax
26912
                shr     eax, 8
26913
                and     ebx, ebp
26914
                shr     ecx, 10h
26915
                and     eax, ebp
26916
                and     ecx, ebp
26917
                mov     ebx, [esi+ebx*4]
26918
                shr     edx, 18h
26919
                mov     eax, [esi+eax*4+400h]
26920
                mov     ecx, [esi+ecx*4+800h]
26921
                xor     ebx, eax
26922
                mov     edx, [esi+edx*4+0C00h]
26923
                xor     ebx, ecx
26924
                mov     eax, [esp+18h]
26925
                xor     ebx, edx
26926
                mov     edx, eax
26927
                mov     [esp+14h], ebx
26928
                mov     ebx, eax
26929
                mov     ecx, eax
26930
                shr     eax, 8
26931
                and     ebx, ebp
26932
                shr     ecx, 10h
26933
                and     eax, ebp
26934
                and     ecx, ebp
26935
                mov     ebx, [esi+ebx*4]
26936
                shr     edx, 18h
26937
                mov     eax, [esi+eax*4+400h]
26938
                mov     ecx, [esi+ecx*4+800h]
26939
                xor     ebx, eax
26940
                mov     edx, [esi+edx*4+0C00h]
26941
                xor     ebx, ecx
26942
                mov     eax, [esp+1Ch]
26943
                xor     ebx, edx
26944
                mov     edx, eax
26945
                mov     [esp+18h], ebx
26946
                mov     ebx, eax
26947
                mov     ecx, eax
26948
                shr     eax, 8
26949
                and     ebx, ebp
26950
                shr     ecx, 10h
26951
                and     eax, ebp
26952
                mov     ebx, [esi+ebx*4]
26953
                and     ecx, ebp
26954
                shr     edx, 18h
26955
                mov     eax, [esi+eax*4+400h]
26956
                mov     ecx, [esi+ecx*4+800h]
26957
                xor     ebx, eax
26958
                mov     edx, [esi+edx*4+0C00h]
26959
                xor     ebx, ecx
26960
                xor     ebx, edx
26961
                mov     [esp+1Ch], ebx
26962
                mov     eax, [esp+20h]
26963
                mov     ebx, [esp+24h]
26964
                mov     ecx, [esp+28h]
26965
                mov     ebp, [esp+2Ch]
26966
                xor     eax, 4
26967
                mov     edi, ebp
26968
                ror     ebp, 8
26969
                xor     eax, ebp
26970
                mov     ebp, 0FFh
26971
                xor     ebx, eax
26972
                mov     [esp+30h], eax
26973
                mov     eax, [esp+20h]
26974
                xor     ecx, ebx
26975
                mov     [esp+34h], ebx
26976
                xor     edi, ecx
26977
                mov     [esp+38h], ecx
26978
                mov     [esp+3Ch], edi
26979
                mov     edx, eax
26980
                mov     ebx, eax
26981
                mov     ecx, eax
26982
                shr     eax, 8
26983
                and     ebx, ebp
26984
                shr     ecx, 10h
26985
                and     eax, ebp
26986
                and     ecx, ebp
26987
                mov     ebx, [esi+ebx*4]
26988
                shr     edx, 18h
26989
                mov     eax, [esi+eax*4+400h]
26990
                mov     ecx, [esi+ecx*4+800h]
26991
                xor     ebx, eax
26992
                mov     edx, [esi+edx*4+0C00h]
26993
                xor     ebx, ecx
26994
                mov     eax, [esp+24h]
26995
                xor     ebx, edx
26996
                mov     edx, eax
26997
                mov     [esp+20h], ebx
26998
                mov     ebx, eax
26999
                mov     ecx, eax
27000
                shr     eax, 8
27001
                and     ebx, ebp
27002
                shr     ecx, 10h
27003
                and     eax, ebp
27004
                and     ecx, ebp
27005
                mov     ebx, [esi+ebx*4]
27006
                shr     edx, 18h
27007
                mov     eax, [esi+eax*4+400h]
27008
                mov     ecx, [esi+ecx*4+800h]
27009
                xor     ebx, eax
27010
                mov     edx, [esi+edx*4+0C00h]
27011
                xor     ebx, ecx
27012
                mov     eax, [esp+28h]
27013
                xor     ebx, edx
27014
                mov     edx, eax
27015
                mov     [esp+24h], ebx
27016
                mov     ebx, eax
27017
                mov     ecx, eax
27018
                shr     eax, 8
27019
                and     ebx, ebp
27020
                shr     ecx, 10h
27021
                and     eax, ebp
27022
                and     ecx, ebp
27023
                mov     ebx, [esi+ebx*4]
27024
                shr     edx, 18h
27025
                mov     eax, [esi+eax*4+400h]
27026
                mov     ecx, [esi+ecx*4+800h]
27027
                xor     ebx, eax
27028
                mov     edx, [esi+edx*4+0C00h]
27029
                xor     ebx, ecx
27030
                mov     eax, [esp+2Ch]
27031
                xor     ebx, edx
27032
                mov     edx, eax
27033
                mov     [esp+28h], ebx
27034
                mov     ebx, eax
27035
                mov     ecx, eax
27036
                shr     eax, 8
27037
                and     ebx, ebp
27038
                shr     ecx, 10h
27039
                and     eax, ebp
27040
                mov     ebx, [esi+ebx*4]
27041
                and     ecx, ebp
27042
                shr     edx, 18h
27043
                mov     eax, [esi+eax*4+400h]
27044
                mov     ecx, [esi+ecx*4+800h]
27045
                xor     ebx, eax
27046
                mov     edx, [esi+edx*4+0C00h]
27047
                xor     ebx, ecx
27048
                xor     ebx, edx
27049
                mov     [esp+2Ch], ebx
27050
                mov     eax, [esp+30h]
27051
                mov     ebx, [esp+34h]
27052
                mov     ecx, [esp+38h]
27053
                mov     ebp, [esp+3Ch]
27054
                xor     eax, 8
27055
                mov     edi, ebp
27056
                ror     ebp, 8
27057
                xor     eax, ebp
27058
                mov     ebp, 0FFh
27059
                xor     ebx, eax
27060
                mov     [esp+40h], eax
27061
                mov     eax, [esp+30h]
27062
                xor     ecx, ebx
27063
                mov     [esp+44h], ebx
27064
                xor     edi, ecx
27065
                mov     [esp+48h], ecx
27066
                mov     [esp+4Ch], edi
27067
                mov     edx, eax
27068
                mov     ebx, eax
27069
                mov     ecx, eax
27070
                shr     eax, 8
27071
                and     ebx, ebp
27072
                shr     ecx, 10h
27073
                and     eax, ebp
27074
                and     ecx, ebp
27075
                mov     ebx, [esi+ebx*4]
27076
                shr     edx, 18h
27077
                mov     eax, [esi+eax*4+400h]
27078
                mov     ecx, [esi+ecx*4+800h]
27079
                xor     ebx, eax
27080
                mov     edx, [esi+edx*4+0C00h]
27081
                xor     ebx, ecx
27082
                mov     eax, [esp+34h]
27083
                xor     ebx, edx
27084
                mov     edx, eax
27085
                mov     [esp+30h], ebx
27086
                mov     ebx, eax
27087
                mov     ecx, eax
27088
                shr     eax, 8
27089
                and     ebx, ebp
27090
                shr     ecx, 10h
27091
                and     eax, ebp
27092
                and     ecx, ebp
27093
                mov     ebx, [esi+ebx*4]
27094
                shr     edx, 18h
27095
                mov     eax, [esi+eax*4+400h]
27096
                mov     ecx, [esi+ecx*4+800h]
27097
                xor     ebx, eax
27098
                mov     edx, [esi+edx*4+0C00h]
27099
                xor     ebx, ecx
27100
                mov     eax, [esp+38h]
27101
                xor     ebx, edx
27102
                mov     edx, eax
27103
                mov     [esp+34h], ebx
27104
                mov     ebx, eax
27105
                mov     ecx, eax
27106
                shr     eax, 8
27107
                and     ebx, ebp
27108
                shr     ecx, 10h
27109
                and     eax, ebp
27110
                and     ecx, ebp
27111
                mov     ebx, [esi+ebx*4]
27112
                shr     edx, 18h
27113
                mov     eax, [esi+eax*4+400h]
27114
                mov     ecx, [esi+ecx*4+800h]
27115
                xor     ebx, eax
27116
                mov     edx, [esi+edx*4+0C00h]
27117
                xor     ebx, ecx
27118
                mov     eax, [esp+3Ch]
27119
                xor     ebx, edx
27120
                mov     edx, eax
27121
                mov     [esp+38h], ebx
27122
                mov     ebx, eax
27123
                mov     ecx, eax
27124
                shr     eax, 8
27125
                and     ebx, ebp
27126
                shr     ecx, 10h
27127
                and     eax, ebp
27128
                mov     ebx, [esi+ebx*4]
27129
                and     ecx, ebp
27130
                shr     edx, 18h
27131
                mov     eax, [esi+eax*4+400h]
27132
                mov     ecx, [esi+ecx*4+800h]
27133
                xor     ebx, eax
27134
                mov     edx, [esi+edx*4+0C00h]
27135
                xor     ebx, ecx
27136
                xor     ebx, edx
27137
                mov     [esp+3Ch], ebx
27138
                mov     eax, [esp+40h]
27139
                mov     ebx, [esp+44h]
27140
                mov     ecx, [esp+48h]
27141
                mov     ebp, [esp+4Ch]
27142
                xor     eax, 10h
27143
                mov     edi, ebp
27144
                ror     ebp, 8
27145
                xor     eax, ebp
27146
                mov     ebp, 0FFh
27147
                xor     ebx, eax
27148
                mov     [esp+50h], eax
27149
                mov     eax, [esp+40h]
27150
                xor     ecx, ebx
27151
                mov     [esp+54h], ebx
27152
                xor     edi, ecx
27153
                mov     [esp+58h], ecx
27154
                mov     [esp+5Ch], edi
27155
                mov     edx, eax
27156
                mov     ebx, eax
27157
                mov     ecx, eax
27158
                shr     eax, 8
27159
                and     ebx, ebp
27160
                shr     ecx, 10h
27161
                and     eax, ebp
27162
                and     ecx, ebp
27163
                mov     ebx, [esi+ebx*4]
27164
                shr     edx, 18h
27165
                mov     eax, [esi+eax*4+400h]
27166
                mov     ecx, [esi+ecx*4+800h]
27167
                xor     ebx, eax
27168
                mov     edx, [esi+edx*4+0C00h]
27169
                xor     ebx, ecx
27170
                mov     eax, [esp+44h]
27171
                xor     ebx, edx
27172
                mov     edx, eax
27173
                mov     [esp+40h], ebx
27174
                mov     ebx, eax
27175
                mov     ecx, eax
27176
                shr     eax, 8
27177
                and     ebx, ebp
27178
                shr     ecx, 10h
27179
                and     eax, ebp
27180
                and     ecx, ebp
27181
                mov     ebx, [esi+ebx*4]
27182
                shr     edx, 18h
27183
                mov     eax, [esi+eax*4+400h]
27184
                mov     ecx, [esi+ecx*4+800h]
27185
                xor     ebx, eax
27186
                mov     edx, [esi+edx*4+0C00h]
27187
                xor     ebx, ecx
27188
                mov     eax, [esp+48h]
27189
                xor     ebx, edx
27190
                mov     edx, eax
27191
                mov     [esp+44h], ebx
27192
                mov     ebx, eax
27193
                mov     ecx, eax
27194
                shr     eax, 8
27195
                and     ebx, ebp
27196
                shr     ecx, 10h
27197
                and     eax, ebp
27198
                and     ecx, ebp
27199
                mov     ebx, [esi+ebx*4]
27200
                shr     edx, 18h
27201
                mov     eax, [esi+eax*4+400h]
27202
                mov     ecx, [esi+ecx*4+800h]
27203
                xor     ebx, eax
27204
                mov     edx, [esi+edx*4+0C00h]
27205
                xor     ebx, ecx
27206
                mov     eax, [esp+4Ch]
27207
                xor     ebx, edx
27208
                mov     edx, eax
27209
                mov     [esp+48h], ebx
27210
                mov     ebx, eax
27211
                mov     ecx, eax
27212
                shr     eax, 8
27213
                and     ebx, ebp
27214
                shr     ecx, 10h
27215
                and     eax, ebp
27216
                mov     ebx, [esi+ebx*4]
27217
                and     ecx, ebp
27218
                shr     edx, 18h
27219
                mov     eax, [esi+eax*4+400h]
27220
                mov     ecx, [esi+ecx*4+800h]
27221
                xor     ebx, eax
27222
                mov     edx, [esi+edx*4+0C00h]
27223
                xor     ebx, ecx
27224
                xor     ebx, edx
27225
                mov     [esp+4Ch], ebx
27226
                mov     eax, [esp+50h]
27227
                mov     ebx, [esp+54h]
27228
                mov     ecx, [esp+58h]
27229
                mov     ebp, [esp+5Ch]
27230
                xor     eax, 20h
27231
                mov     edi, ebp
27232
                ror     ebp, 8
27233
                xor     eax, ebp
27234
                mov     ebp, 0FFh
27235
                xor     ebx, eax
27236
                mov     [esp+60h], eax
27237
                mov     eax, [esp+50h]
27238
                xor     ecx, ebx
27239
                mov     [esp+64h], ebx
27240
                xor     edi, ecx
27241
                mov     [esp+68h], ecx
27242
                mov     [esp+6Ch], edi
27243
                mov     edx, eax
27244
                mov     ebx, eax
27245
                mov     ecx, eax
27246
                shr     eax, 8
27247
                and     ebx, ebp
27248
                shr     ecx, 10h
27249
                and     eax, ebp
27250
                and     ecx, ebp
27251
                mov     ebx, [esi+ebx*4]
27252
                shr     edx, 18h
27253
                mov     eax, [esi+eax*4+400h]
27254
                mov     ecx, [esi+ecx*4+800h]
27255
                xor     ebx, eax
27256
                mov     edx, [esi+edx*4+0C00h]
27257
                xor     ebx, ecx
27258
                mov     eax, [esp+54h]
27259
                xor     ebx, edx
27260
                mov     edx, eax
27261
                mov     [esp+50h], ebx
27262
                mov     ebx, eax
27263
                mov     ecx, eax
27264
                shr     eax, 8
27265
                and     ebx, ebp
27266
                shr     ecx, 10h
27267
                and     eax, ebp
27268
                and     ecx, ebp
27269
                mov     ebx, [esi+ebx*4]
27270
                shr     edx, 18h
27271
                mov     eax, [esi+eax*4+400h]
27272
                mov     ecx, [esi+ecx*4+800h]
27273
                xor     ebx, eax
27274
                mov     edx, [esi+edx*4+0C00h]
27275
                xor     ebx, ecx
27276
                mov     eax, [esp+58h]
27277
                xor     ebx, edx
27278
                mov     edx, eax
27279
                mov     [esp+54h], ebx
27280
                mov     ebx, eax
27281
                mov     ecx, eax
27282
                shr     eax, 8
27283
                and     ebx, ebp
27284
                shr     ecx, 10h
27285
                and     eax, ebp
27286
                and     ecx, ebp
27287
                mov     ebx, [esi+ebx*4]
27288
                shr     edx, 18h
27289
                mov     eax, [esi+eax*4+400h]
27290
                mov     ecx, [esi+ecx*4+800h]
27291
                xor     ebx, eax
27292
                mov     edx, [esi+edx*4+0C00h]
27293
                xor     ebx, ecx
27294
                mov     eax, [esp+5Ch]
27295
                xor     ebx, edx
27296
                mov     edx, eax
27297
                mov     [esp+58h], ebx
27298
                mov     ebx, eax
27299
                mov     ecx, eax
27300
                shr     eax, 8
27301
                and     ebx, ebp
27302
                shr     ecx, 10h
27303
                and     eax, ebp
27304
                mov     ebx, [esi+ebx*4]
27305
                and     ecx, ebp
27306
                shr     edx, 18h
27307
                mov     eax, [esi+eax*4+400h]
27308
                mov     ecx, [esi+ecx*4+800h]
27309
                xor     ebx, eax
27310
                mov     edx, [esi+edx*4+0C00h]
27311
                xor     ebx, ecx
27312
                xor     ebx, edx
27313
                mov     [esp+5Ch], ebx
27314
                mov     eax, [esp+60h]
27315
                mov     ebx, [esp+64h]
27316
                mov     ecx, [esp+68h]
27317
                mov     ebp, [esp+6Ch]
27318
                xor     eax, 40h
27319
                mov     edi, ebp
27320
                ror     ebp, 8
27321
                xor     eax, ebp
27322
                mov     ebp, 0FFh
27323
                xor     ebx, eax
27324
                mov     [esp+70h], eax
27325
                mov     eax, [esp+60h]
27326
                xor     ecx, ebx
27327
                mov     [esp+74h], ebx
27328
                xor     edi, ecx
27329
                mov     [esp+78h], ecx
27330
                mov     [esp+7Ch], edi
27331
                mov     edx, eax
27332
                mov     ebx, eax
27333
                mov     ecx, eax
27334
                shr     eax, 8
27335
                and     ebx, ebp
27336
                shr     ecx, 10h
27337
                and     eax, ebp
27338
                and     ecx, ebp
27339
                mov     ebx, [esi+ebx*4]
27340
                shr     edx, 18h
27341
                mov     eax, [esi+eax*4+400h]
27342
                mov     ecx, [esi+ecx*4+800h]
27343
                xor     ebx, eax
27344
                mov     edx, [esi+edx*4+0C00h]
27345
                xor     ebx, ecx
27346
                mov     eax, [esp+64h]
27347
                xor     ebx, edx
27348
                mov     edx, eax
27349
                mov     [esp+60h], ebx
27350
                mov     ebx, eax
27351
                mov     ecx, eax
27352
                shr     eax, 8
27353
                and     ebx, ebp
27354
                shr     ecx, 10h
27355
                and     eax, ebp
27356
                and     ecx, ebp
27357
                mov     ebx, [esi+ebx*4]
27358
                shr     edx, 18h
27359
                mov     eax, [esi+eax*4+400h]
27360
                mov     ecx, [esi+ecx*4+800h]
27361
                xor     ebx, eax
27362
                mov     edx, [esi+edx*4+0C00h]
27363
                xor     ebx, ecx
27364
                mov     eax, [esp+68h]
27365
                xor     ebx, edx
27366
                mov     edx, eax
27367
                mov     [esp+64h], ebx
27368
                mov     ebx, eax
27369
                mov     ecx, eax
27370
                shr     eax, 8
27371
                and     ebx, ebp
27372
                shr     ecx, 10h
27373
                and     eax, ebp
27374
                and     ecx, ebp
27375
                mov     ebx, [esi+ebx*4]
27376
                shr     edx, 18h
27377
                mov     eax, [esi+eax*4+400h]
27378
                mov     ecx, [esi+ecx*4+800h]
27379
                xor     ebx, eax
27380
                mov     edx, [esi+edx*4+0C00h]
27381
                xor     ebx, ecx
27382
                mov     eax, [esp+6Ch]
27383
                xor     ebx, edx
27384
                mov     edx, eax
27385
                mov     [esp+68h], ebx
27386
                mov     ebx, eax
27387
                mov     ecx, eax
27388
                shr     eax, 8
27389
                and     ebx, ebp
27390
                shr     ecx, 10h
27391
                and     eax, ebp
27392
                mov     ebx, [esi+ebx*4]
27393
                and     ecx, ebp
27394
                shr     edx, 18h
27395
                mov     eax, [esi+eax*4+400h]
27396
                mov     ecx, [esi+ecx*4+800h]
27397
                xor     ebx, eax
27398
                mov     edx, [esi+edx*4+0C00h]
27399
                xor     ebx, ecx
27400
                xor     ebx, edx
27401
                mov     [esp+6Ch], ebx
27402
                mov     eax, [esp+70h]
27403
                mov     ebx, [esp+74h]
27404
                mov     ecx, [esp+78h]
27405
                mov     ebp, [esp+7Ch]
27406
                xor     eax, 80h
27407
                mov     edi, ebp
27408
                ror     ebp, 8
27409
                xor     eax, ebp
27410
                mov     ebp, 0FFh
27411
                xor     ebx, eax
27412
                mov     [esp+80h], eax
27413
                mov     eax, [esp+70h]
27414
                xor     ecx, ebx
27415
                mov     [esp+84h], ebx
27416
                xor     edi, ecx
27417
                mov     [esp+88h], ecx
27418
                mov     [esp+8Ch], edi
27419
                mov     edx, eax
27420
                mov     ebx, eax
27421
                mov     ecx, eax
27422
                shr     eax, 8
27423
                and     ebx, ebp
27424
                shr     ecx, 10h
27425
                and     eax, ebp
27426
                and     ecx, ebp
27427
                mov     ebx, [esi+ebx*4]
27428
                shr     edx, 18h
27429
                mov     eax, [esi+eax*4+400h]
27430
                mov     ecx, [esi+ecx*4+800h]
27431
                xor     ebx, eax
27432
                mov     edx, [esi+edx*4+0C00h]
27433
                xor     ebx, ecx
27434
                mov     eax, [esp+74h]
27435
                xor     ebx, edx
27436
                mov     edx, eax
27437
                mov     [esp+70h], ebx
27438
                mov     ebx, eax
27439
                mov     ecx, eax
27440
                shr     eax, 8
27441
                and     ebx, ebp
27442
                shr     ecx, 10h
27443
                and     eax, ebp
27444
                and     ecx, ebp
27445
                mov     ebx, [esi+ebx*4]
27446
                shr     edx, 18h
27447
                mov     eax, [esi+eax*4+400h]
27448
                mov     ecx, [esi+ecx*4+800h]
27449
                xor     ebx, eax
27450
                mov     edx, [esi+edx*4+0C00h]
27451
                xor     ebx, ecx
27452
                mov     eax, [esp+78h]
27453
                xor     ebx, edx
27454
                mov     edx, eax
27455
                mov     [esp+74h], ebx
27456
                mov     ebx, eax
27457
                mov     ecx, eax
27458
                shr     eax, 8
27459
                and     ebx, ebp
27460
                shr     ecx, 10h
27461
                and     eax, ebp
27462
                and     ecx, ebp
27463
                mov     ebx, [esi+ebx*4]
27464
                shr     edx, 18h
27465
                mov     eax, [esi+eax*4+400h]
27466
                mov     ecx, [esi+ecx*4+800h]
27467
                xor     ebx, eax
27468
                mov     edx, [esi+edx*4+0C00h]
27469
                xor     ebx, ecx
27470
                mov     eax, [esp+7Ch]
27471
                xor     ebx, edx
27472
                mov     edx, eax
27473
                mov     [esp+78h], ebx
27474
                mov     ebx, eax
27475
                mov     ecx, eax
27476
                shr     eax, 8
27477
                and     ebx, ebp
27478
                shr     ecx, 10h
27479
                and     eax, ebp
27480
                mov     ebx, [esi+ebx*4]
27481
                and     ecx, ebp
27482
                shr     edx, 18h
27483
                mov     eax, [esi+eax*4+400h]
27484
                mov     ecx, [esi+ecx*4+800h]
27485
                xor     ebx, eax
27486
                mov     edx, [esi+edx*4+0C00h]
27487
                xor     ebx, ecx
27488
                xor     ebx, edx
27489
                mov     [esp+7Ch], ebx
27490
                mov     esi, [esp+94h]
27491
                mov     eax, [esp]
27492
                mov     ebx, [esp+4]
27493
                mov     ecx, [esp+8]
27494
                mov     edx, [esp+0Ch]
27495
                mov     edi, [esi]
27496
                mov     ebp, [esi+4]
27497
                xor     eax, edi
27498
                xor     ebx, ebp
27499
                mov     edi, [esi+8]
27500
                mov     ebp, [esi+0Ch]
27501
                mov     [esp], eax
27502
                mov     [esp+4], ebx
27503
                xor     ecx, edi
27504
                xor     edx, ebp
27505
                mov     [esp+8], ecx
27506
                mov     [esp+0Ch], edx
27507
                mov     esi, [esp+9Ch]
27508
                mov     eax, [esp]
27509
                mov     ecx, [esp+4]
27510
                mov     ebx, eax
27511
                mov     edx, ecx
27512
                shr     eax, 8
27513
                mov     edi, [esp+8]
27514
                and     ebx, 0FFh
27515
                mov     ebp, [esp+0Ch]
27516
                shr     ecx, 8
27517
                and     eax, 0FFh
27518
                and     edx, 0FFh
27519
                and     ecx, 0FFh
27520
                mov     ebx, [esi+ebx*4]
27521
                mov     eax, [esi+eax*4]
27522
                mov     edx, [esi+edx*4+400h]
27523
                mov     ecx, [esi+ecx*4+400h]
27524
                xor     ebx, edx
27525
                mov     edx, edi
27526
                shr     edi, 8
27527
                xor     eax, ecx
27528
                mov     ecx, ebp
27529
                and     edx, 0FFh
27530
                shr     ebp, 8
27531
                and     edi, 0FFh
27532
                and     ecx, 0FFh
27533
                mov     edx, [esi+edx*4+800h]
27534
                and     ebp, 0FFh
27535
                mov     edi, [esi+edi*4+800h]
27536
                xor     ebx, edx
27537
                mov     edx, [esp+10h]
27538
                mov     ecx, [esi+ecx*4+0C00h]
27539
                xor     eax, edi
27540
                xor     ebx, ecx
27541
                mov     ecx, [esp+14h]
27542
                xor     ebx, edx
27543
                xor     eax, ecx
27544
                mov     ebp, [esi+ebp*4+0C00h]
27545
                mov     [esp+10h], ebx
27546
                xor     eax, ebp
27547
                mov     [esp+14h], eax
27548
                mov     ecx, [esp]
27549
                mov     edx, [esp+4]
27550
                mov     edi, ecx
27551
                shr     ecx, 10h
27552
                mov     eax, [esp+8]
27553
                mov     ebp, edx
27554
                mov     ebx, [esp+0Ch]
27555
                shr     edx, 10h
27556
                and     ecx, 0FFh
27557
                shr     edi, 18h
27558
                and     edx, 0FFh
27559
                shr     ebp, 18h
27560
                mov     ecx, [esi+ecx*4]
27561
                shr     eax, 10h
27562
                mov     edi, [esi+edi*4]
27563
                shr     ebx, 10h
27564
                mov     edx, [esi+edx*4+400h]
27565
                mov     ebp, [esi+ebp*4+400h]
27566
                xor     ecx, edx
27567
                mov     edx, eax
27568
                xor     edi, ebp
27569
                shr     eax, 8
27570
                mov     ebp, ebx
27571
                and     edx, 0FFh
27572
                and     ebx, 0FFh
27573
                shr     ebp, 8
27574
                mov     eax, [esi+eax*4+800h]
27575
                mov     edx, [esi+edx*4+800h]
27576
                xor     edi, eax
27577
                xor     ecx, edx
27578
                mov     ebx, [esi+ebx*4+0C00h]
27579
                mov     ebp, [esi+ebp*4+0C00h]
27580
                xor     ecx, ebx
27581
                xor     edi, ebp
27582
                mov     eax, [esp+18h]
27583
                mov     ebx, [esp+1Ch]
27584
                xor     ecx, eax
27585
                xor     edi, ebx
27586
                mov     [esp+18h], ecx
27587
                mov     [esp+1Ch], edi
27588
                mov     eax, [esp+10h]
27589
                mov     ecx, [esp+14h]
27590
                mov     ebx, eax
27591
                mov     edx, ecx
27592
                shr     eax, 8
27593
                mov     edi, [esp+18h]
27594
                and     ebx, 0FFh
27595
                mov     ebp, [esp+1Ch]
27596
                shr     ecx, 8
27597
                and     eax, 0FFh
27598
                and     edx, 0FFh
27599
                and     ecx, 0FFh
27600
                mov     ebx, [esi+ebx*4]
27601
                mov     eax, [esi+eax*4]
27602
                mov     edx, [esi+edx*4+400h]
27603
                mov     ecx, [esi+ecx*4+400h]
27604
                xor     ebx, edx
27605
                mov     edx, edi
27606
                shr     edi, 8
27607
                xor     eax, ecx
27608
                mov     ecx, ebp
27609
                and     edx, 0FFh
27610
                shr     ebp, 8
27611
                and     edi, 0FFh
27612
                and     ecx, 0FFh
27613
                mov     edx, [esi+edx*4+800h]
27614
                and     ebp, 0FFh
27615
                mov     edi, [esi+edi*4+800h]
27616
                xor     ebx, edx
27617
                mov     edx, [esp+20h]
27618
                mov     ecx, [esi+ecx*4+0C00h]
27619
                xor     eax, edi
27620
                xor     ebx, ecx
27621
                mov     ecx, [esp+24h]
27622
                xor     ebx, edx
27623
                xor     eax, ecx
27624
                mov     ebp, [esi+ebp*4+0C00h]
27625
                mov     [esp+20h], ebx
27626
                xor     eax, ebp
27627
                mov     [esp+24h], eax
27628
                mov     ecx, [esp+10h]
27629
                mov     edx, [esp+14h]
27630
                mov     edi, ecx
27631
                shr     ecx, 10h
27632
                mov     eax, [esp+18h]
27633
                mov     ebp, edx
27634
                mov     ebx, [esp+1Ch]
27635
                shr     edx, 10h
27636
                and     ecx, 0FFh
27637
                shr     edi, 18h
27638
                and     edx, 0FFh
27639
                shr     ebp, 18h
27640
                mov     ecx, [esi+ecx*4]
27641
                shr     eax, 10h
27642
                mov     edi, [esi+edi*4]
27643
                shr     ebx, 10h
27644
                mov     edx, [esi+edx*4+400h]
27645
                mov     ebp, [esi+ebp*4+400h]
27646
                xor     ecx, edx
27647
                mov     edx, eax
27648
                xor     edi, ebp
27649
                shr     eax, 8
27650
                mov     ebp, ebx
27651
                and     edx, 0FFh
27652
                and     ebx, 0FFh
27653
                shr     ebp, 8
27654
                mov     eax, [esi+eax*4+800h]
27655
                mov     edx, [esi+edx*4+800h]
27656
                xor     edi, eax
27657
                xor     ecx, edx
27658
                mov     ebx, [esi+ebx*4+0C00h]
27659
                mov     ebp, [esi+ebp*4+0C00h]
27660
                xor     ecx, ebx
27661
                xor     edi, ebp
27662
                mov     eax, [esp+28h]
27663
                mov     ebx, [esp+2Ch]
27664
                xor     ecx, eax
27665
                xor     edi, ebx
27666
                mov     [esp+28h], ecx
27667
                mov     [esp+2Ch], edi
27668
                mov     eax, [esp+20h]
27669
                mov     ecx, [esp+24h]
27670
                mov     ebx, eax
27671
                mov     edx, ecx
27672
                shr     eax, 8
27673
                mov     edi, [esp+28h]
27674
                and     ebx, 0FFh
27675
                mov     ebp, [esp+2Ch]
27676
                shr     ecx, 8
27677
                and     eax, 0FFh
27678
                and     edx, 0FFh
27679
                and     ecx, 0FFh
27680
                mov     ebx, [esi+ebx*4]
27681
                mov     eax, [esi+eax*4]
27682
                mov     edx, [esi+edx*4+400h]
27683
                mov     ecx, [esi+ecx*4+400h]
27684
                xor     ebx, edx
27685
                mov     edx, edi
27686
                shr     edi, 8
27687
                xor     eax, ecx
27688
                mov     ecx, ebp
27689
                and     edx, 0FFh
27690
                shr     ebp, 8
27691
                and     edi, 0FFh
27692
                and     ecx, 0FFh
27693
                mov     edx, [esi+edx*4+800h]
27694
                and     ebp, 0FFh
27695
                mov     edi, [esi+edi*4+800h]
27696
                xor     ebx, edx
27697
                mov     edx, [esp+30h]
27698
                mov     ecx, [esi+ecx*4+0C00h]
27699
                xor     eax, edi
27700
                xor     ebx, ecx
27701
                mov     ecx, [esp+34h]
27702
                xor     ebx, edx
27703
                xor     eax, ecx
27704
                mov     ebp, [esi+ebp*4+0C00h]
27705
                mov     [esp+30h], ebx
27706
                xor     eax, ebp
27707
                mov     [esp+34h], eax
27708
                mov     ecx, [esp+20h]
27709
                mov     edx, [esp+24h]
27710
                mov     edi, ecx
27711
                shr     ecx, 10h
27712
                mov     eax, [esp+28h]
27713
                mov     ebp, edx
27714
                mov     ebx, [esp+2Ch]
27715
                shr     edx, 10h
27716
                and     ecx, 0FFh
27717
                shr     edi, 18h
27718
                and     edx, 0FFh
27719
                shr     ebp, 18h
27720
                mov     ecx, [esi+ecx*4]
27721
                shr     eax, 10h
27722
                mov     edi, [esi+edi*4]
27723
                shr     ebx, 10h
27724
                mov     edx, [esi+edx*4+400h]
27725
                mov     ebp, [esi+ebp*4+400h]
27726
                xor     ecx, edx
27727
                mov     edx, eax
27728
                xor     edi, ebp
27729
                shr     eax, 8
27730
                mov     ebp, ebx
27731
                and     edx, 0FFh
27732
                and     ebx, 0FFh
27733
                shr     ebp, 8
27734
                mov     eax, [esi+eax*4+800h]
27735
                mov     edx, [esi+edx*4+800h]
27736
                xor     edi, eax
27737
                xor     ecx, edx
27738
                mov     ebx, [esi+ebx*4+0C00h]
27739
                mov     ebp, [esi+ebp*4+0C00h]
27740
                xor     ecx, ebx
27741
                xor     edi, ebp
27742
                mov     eax, [esp+38h]
27743
                mov     ebx, [esp+3Ch]
27744
                xor     ecx, eax
27745
                xor     edi, ebx
27746
                mov     [esp+38h], ecx
27747
                mov     [esp+3Ch], edi
27748
                mov     eax, [esp+30h]
27749
                mov     ecx, [esp+34h]
27750
                mov     ebx, eax
27751
                mov     edx, ecx
27752
                shr     eax, 8
27753
                mov     edi, [esp+38h]
27754
                and     ebx, 0FFh
27755
                mov     ebp, [esp+3Ch]
27756
                shr     ecx, 8
27757
                and     eax, 0FFh
27758
                and     edx, 0FFh
27759
                and     ecx, 0FFh
27760
                mov     ebx, [esi+ebx*4]
27761
                mov     eax, [esi+eax*4]
27762
                mov     edx, [esi+edx*4+400h]
27763
                mov     ecx, [esi+ecx*4+400h]
27764
                xor     ebx, edx
27765
                mov     edx, edi
27766
                shr     edi, 8
27767
                xor     eax, ecx
27768
                mov     ecx, ebp
27769
                and     edx, 0FFh
27770
                shr     ebp, 8
27771
                and     edi, 0FFh
27772
                and     ecx, 0FFh
27773
                mov     edx, [esi+edx*4+800h]
27774
                and     ebp, 0FFh
27775
                mov     edi, [esi+edi*4+800h]
27776
                xor     ebx, edx
27777
                mov     edx, [esp+40h]
27778
                mov     ecx, [esi+ecx*4+0C00h]
27779
                xor     eax, edi
27780
                xor     ebx, ecx
27781
                mov     ecx, [esp+44h]
27782
                xor     ebx, edx
27783
                xor     eax, ecx
27784
                mov     ebp, [esi+ebp*4+0C00h]
27785
                mov     [esp+40h], ebx
27786
                xor     eax, ebp
27787
                mov     [esp+44h], eax
27788
                mov     ecx, [esp+30h]
27789
                mov     edx, [esp+34h]
27790
                mov     edi, ecx
27791
                shr     ecx, 10h
27792
                mov     eax, [esp+38h]
27793
                mov     ebp, edx
27794
                mov     ebx, [esp+3Ch]
27795
                shr     edx, 10h
27796
                and     ecx, 0FFh
27797
                shr     edi, 18h
27798
                and     edx, 0FFh
27799
                shr     ebp, 18h
27800
                mov     ecx, [esi+ecx*4]
27801
                shr     eax, 10h
27802
                mov     edi, [esi+edi*4]
27803
                shr     ebx, 10h
27804
                mov     edx, [esi+edx*4+400h]
27805
                mov     ebp, [esi+ebp*4+400h]
27806
                xor     ecx, edx
27807
                mov     edx, eax
27808
                xor     edi, ebp
27809
                shr     eax, 8
27810
                mov     ebp, ebx
27811
                and     edx, 0FFh
27812
                and     ebx, 0FFh
27813
                shr     ebp, 8
27814
                mov     eax, [esi+eax*4+800h]
27815
                mov     edx, [esi+edx*4+800h]
27816
                xor     edi, eax
27817
                xor     ecx, edx
27818
                mov     ebx, [esi+ebx*4+0C00h]
27819
                mov     ebp, [esi+ebp*4+0C00h]
27820
                xor     ecx, ebx
27821
                xor     edi, ebp
27822
                mov     eax, [esp+48h]
27823
                mov     ebx, [esp+4Ch]
27824
                xor     ecx, eax
27825
                xor     edi, ebx
27826
                mov     [esp+48h], ecx
27827
                mov     [esp+4Ch], edi
27828
                mov     eax, [esp+40h]
27829
                mov     ecx, [esp+44h]
27830
                mov     ebx, eax
27831
                mov     edx, ecx
27832
                shr     eax, 8
27833
                mov     edi, [esp+48h]
27834
                and     ebx, 0FFh
27835
                mov     ebp, [esp+4Ch]
27836
                shr     ecx, 8
27837
                and     eax, 0FFh
27838
                and     edx, 0FFh
27839
                and     ecx, 0FFh
27840
                mov     ebx, [esi+ebx*4]
27841
                mov     eax, [esi+eax*4]
27842
                mov     edx, [esi+edx*4+400h]
27843
                mov     ecx, [esi+ecx*4+400h]
27844
                xor     ebx, edx
27845
                mov     edx, edi
27846
                shr     edi, 8
27847
                xor     eax, ecx
27848
                mov     ecx, ebp
27849
                and     edx, 0FFh
27850
                shr     ebp, 8
27851
                and     edi, 0FFh
27852
                and     ecx, 0FFh
27853
                mov     edx, [esi+edx*4+800h]
27854
                and     ebp, 0FFh
27855
                mov     edi, [esi+edi*4+800h]
27856
                xor     ebx, edx
27857
                mov     edx, [esp+50h]
27858
                mov     ecx, [esi+ecx*4+0C00h]
27859
                xor     eax, edi
27860
                xor     ebx, ecx
27861
                mov     ecx, [esp+54h]
27862
                xor     ebx, edx
27863
                xor     eax, ecx
27864
                mov     ebp, [esi+ebp*4+0C00h]
27865
                mov     [esp+50h], ebx
27866
                xor     eax, ebp
27867
                mov     [esp+54h], eax
27868
                mov     ecx, [esp+40h]
27869
                mov     edx, [esp+44h]
27870
                mov     edi, ecx
27871
                shr     ecx, 10h
27872
                mov     eax, [esp+48h]
27873
                mov     ebp, edx
27874
                mov     ebx, [esp+4Ch]
27875
                shr     edx, 10h
27876
                and     ecx, 0FFh
27877
                shr     edi, 18h
27878
                and     edx, 0FFh
27879
                shr     ebp, 18h
27880
                mov     ecx, [esi+ecx*4]
27881
                shr     eax, 10h
27882
                mov     edi, [esi+edi*4]
27883
                shr     ebx, 10h
27884
                mov     edx, [esi+edx*4+400h]
27885
                mov     ebp, [esi+ebp*4+400h]
27886
                xor     ecx, edx
27887
                mov     edx, eax
27888
                xor     edi, ebp
27889
                shr     eax, 8
27890
                mov     ebp, ebx
27891
                and     edx, 0FFh
27892
                and     ebx, 0FFh
27893
                shr     ebp, 8
27894
                mov     eax, [esi+eax*4+800h]
27895
                mov     edx, [esi+edx*4+800h]
27896
                xor     edi, eax
27897
                xor     ecx, edx
27898
                mov     ebx, [esi+ebx*4+0C00h]
27899
                mov     ebp, [esi+ebp*4+0C00h]
27900
                xor     ecx, ebx
27901
                xor     edi, ebp
27902
                mov     eax, [esp+58h]
27903
                mov     ebx, [esp+5Ch]
27904
                xor     ecx, eax
27905
                xor     edi, ebx
27906
                mov     [esp+58h], ecx
27907
                mov     [esp+5Ch], edi
27908
                mov     eax, [esp+50h]
27909
                mov     ecx, [esp+54h]
27910
                mov     ebx, eax
27911
                mov     edx, ecx
27912
                shr     eax, 8
27913
                mov     edi, [esp+58h]
27914
                and     ebx, 0FFh
27915
                mov     ebp, [esp+5Ch]
27916
                shr     ecx, 8
27917
                and     eax, 0FFh
27918
                and     edx, 0FFh
27919
                and     ecx, 0FFh
27920
                mov     ebx, [esi+ebx*4]
27921
                mov     eax, [esi+eax*4]
27922
                mov     edx, [esi+edx*4+400h]
27923
                mov     ecx, [esi+ecx*4+400h]
27924
                xor     ebx, edx
27925
                mov     edx, edi
27926
                shr     edi, 8
27927
                xor     eax, ecx
27928
                mov     ecx, ebp
27929
                and     edx, 0FFh
27930
                shr     ebp, 8
27931
                and     edi, 0FFh
27932
                and     ecx, 0FFh
27933
                mov     edx, [esi+edx*4+800h]
27934
                and     ebp, 0FFh
27935
                mov     edi, [esi+edi*4+800h]
27936
                xor     ebx, edx
27937
                mov     edx, [esp+60h]
27938
                mov     ecx, [esi+ecx*4+0C00h]
27939
                xor     eax, edi
27940
                xor     ebx, ecx
27941
                mov     ecx, [esp+64h]
27942
                xor     ebx, edx
27943
                xor     eax, ecx
27944
                mov     ebp, [esi+ebp*4+0C00h]
27945
                mov     [esp+60h], ebx
27946
                xor     eax, ebp
27947
                mov     [esp+64h], eax
27948
                mov     ecx, [esp+50h]
27949
                mov     edx, [esp+54h]
27950
                mov     edi, ecx
27951
                shr     ecx, 10h
27952
                mov     eax, [esp+58h]
27953
                mov     ebp, edx
27954
                mov     ebx, [esp+5Ch]
27955
                shr     edx, 10h
27956
                and     ecx, 0FFh
27957
                shr     edi, 18h
27958
                and     edx, 0FFh
27959
                shr     ebp, 18h
27960
                mov     ecx, [esi+ecx*4]
27961
                shr     eax, 10h
27962
                mov     edi, [esi+edi*4]
27963
                shr     ebx, 10h
27964
                mov     edx, [esi+edx*4+400h]
27965
                mov     ebp, [esi+ebp*4+400h]
27966
                xor     ecx, edx
27967
                mov     edx, eax
27968
                xor     edi, ebp
27969
                shr     eax, 8
27970
                mov     ebp, ebx
27971
                and     edx, 0FFh
27972
                and     ebx, 0FFh
27973
                shr     ebp, 8
27974
                mov     eax, [esi+eax*4+800h]
27975
                mov     edx, [esi+edx*4+800h]
27976
                xor     edi, eax
27977
                xor     ecx, edx
27978
                mov     ebx, [esi+ebx*4+0C00h]
27979
                mov     ebp, [esi+ebp*4+0C00h]
27980
                xor     ecx, ebx
27981
                xor     edi, ebp
27982
                mov     eax, [esp+68h]
27983
                mov     ebx, [esp+6Ch]
27984
                xor     ecx, eax
27985
                xor     edi, ebx
27986
                mov     [esp+68h], ecx
27987
                mov     [esp+6Ch], edi
27988
                mov     eax, [esp+60h]
27989
                mov     ecx, [esp+64h]
27990
                mov     ebx, eax
27991
                mov     edx, ecx
27992
                shr     eax, 8
27993
                mov     edi, [esp+68h]
27994
                and     ebx, 0FFh
27995
                mov     ebp, [esp+6Ch]
27996
                shr     ecx, 8
27997
                and     eax, 0FFh
27998
                and     edx, 0FFh
27999
                and     ecx, 0FFh
28000
                mov     ebx, [esi+ebx*4]
28001
                mov     eax, [esi+eax*4]
28002
                mov     edx, [esi+edx*4+400h]
28003
                mov     ecx, [esi+ecx*4+400h]
28004
                xor     ebx, edx
28005
                mov     edx, edi
28006
                shr     edi, 8
28007
                xor     eax, ecx
28008
                mov     ecx, ebp
28009
                and     edx, 0FFh
28010
                shr     ebp, 8
28011
                and     edi, 0FFh
28012
                and     ecx, 0FFh
28013
                mov     edx, [esi+edx*4+800h]
28014
                and     ebp, 0FFh
28015
                mov     edi, [esi+edi*4+800h]
28016
                xor     ebx, edx
28017
                mov     edx, [esp+70h]
28018
                mov     ecx, [esi+ecx*4+0C00h]
28019
                xor     eax, edi
28020
                xor     ebx, ecx
28021
                mov     ecx, [esp+74h]
28022
                xor     ebx, edx
28023
                xor     eax, ecx
28024
                mov     ebp, [esi+ebp*4+0C00h]
28025
                mov     [esp+70h], ebx
28026
                xor     eax, ebp
28027
                mov     [esp+74h], eax
28028
                mov     ecx, [esp+60h]
28029
                mov     edx, [esp+64h]
28030
                mov     edi, ecx
28031
                shr     ecx, 10h
28032
                mov     eax, [esp+68h]
28033
                mov     ebp, edx
28034
                mov     ebx, [esp+6Ch]
28035
                shr     edx, 10h
28036
                and     ecx, 0FFh
28037
                shr     edi, 18h
28038
                and     edx, 0FFh
28039
                shr     ebp, 18h
28040
                mov     ecx, [esi+ecx*4]
28041
                shr     eax, 10h
28042
                mov     edi, [esi+edi*4]
28043
                shr     ebx, 10h
28044
                mov     edx, [esi+edx*4+400h]
28045
                mov     ebp, [esi+ebp*4+400h]
28046
                xor     ecx, edx
28047
                mov     edx, eax
28048
                xor     edi, ebp
28049
                shr     eax, 8
28050
                mov     ebp, ebx
28051
                and     edx, 0FFh
28052
                and     ebx, 0FFh
28053
                shr     ebp, 8
28054
                mov     eax, [esi+eax*4+800h]
28055
                mov     edx, [esi+edx*4+800h]
28056
                xor     edi, eax
28057
                xor     ecx, edx
28058
                mov     ebx, [esi+ebx*4+0C00h]
28059
                mov     ebp, [esi+ebp*4+0C00h]
28060
                xor     ecx, ebx
28061
                xor     edi, ebp
28062
                mov     eax, [esp+78h]
28063
                mov     ebx, [esp+7Ch]
28064
                xor     ecx, eax
28065
                xor     edi, ebx
28066
                mov     [esp+78h], ecx
28067
                mov     [esp+7Ch], edi
28068
                mov     esi, [esp+0A0h]
28069
                mov     eax, [esp+70h]
28070
                mov     ebx, [esp+74h]
28071
                mov     ecx, eax
28072
                mov     edi, [esp+78h]
28073
                shr     eax, 8
28074
                mov     ebp, [esp+7Ch]
28075
                mov     edx, ebx
28076
                and     ecx, 0FFh
28077
                and     eax, 0FFh
28078
                shr     ebx, 8
28079
                and     edx, 0FFh
28080
                and     ebx, 0FFh
28081
                mov     ecx, [esi+ecx*4]
28082
                mov     edx, [esi+edx*4]
28083
                mov     eax, [esi+eax*4]
28084
                shl     edx, 8
28085
                mov     ebx, [esi+ebx*4]
28086
                shl     ebx, 8
28087
                xor     ecx, edx
28088
                mov     edx, edi
28089
                xor     eax, ebx
28090
                shr     edi, 8
28091
                mov     ebx, ebp
28092
                shr     ebp, 8
28093
                and     edx, 0FFh
28094
                and     edi, 0FFh
28095
                and     ebx, 0FFh
28096
                and     ebp, 0FFh
28097
                mov     edx, [esi+edx*4]
28098
                mov     edi, [esi+edi*4]
28099
                mov     ebx, [esi+ebx*4]
28100
                shl     edx, 10h
28101
                mov     ebp, [esi+ebp*4]
28102
                shl     edi, 10h
28103
                xor     ecx, edx
28104
                shl     ebx, 18h
28105
                xor     eax, edi
28106
                shl     ebp, 18h
28107
                mov     edx, [esp+94h]
28108
                xor     ecx, ebx
28109
                xor     eax, ebp
28110
                mov     ebx, [edx]
28111
                mov     ebp, [edx+4]
28112
                mov     edx, [esp+90h]
28113
                xor     ecx, ebx
28114
                xor     eax, ebp
28115
                mov     ebx, [esp+80h]
28116
                mov     ebp, [esp+84h]
28117
                xor     ecx, ebx
28118
                xor     eax, ebp
28119
                mov     [edx], ecx
28120
                mov     [edx+4], eax
28121
                mov     eax, [esp+70h]
28122
                mov     ebx, [esp+74h]
28123
                mov     ecx, eax
28124
                shr     eax, 10h
28125
                mov     edi, [esp+78h]
28126
                mov     ebp, [esp+7Ch]
28127
                mov     edx, ebx
28128
                shr     ebx, 10h
28129
                and     eax, 0FFh
28130
                shr     ecx, 18h
28131
                and     ebx, 0FFh
28132
                shr     edx, 18h
28133
                mov     eax, [esi+eax*4]
28134
                mov     ebx, [esi+ebx*4]
28135
                mov     ecx, [esi+ecx*4]
28136
                shl     ebx, 8
28137
                mov     edx, [esi+edx*4]
28138
                shl     edx, 8
28139
                xor     eax, ebx
28140
                mov     ebx, edi
28141
                xor     ecx, edx
28142
                shr     edi, 10h
28143
                mov     edx, ebp
28144
                shr     ebp, 10h
28145
                and     edi, 0FFh
28146
                shr     ebx, 18h
28147
                and     ebp, 0FFh
28148
                shr     edx, 18h
28149
                mov     edi, [esi+edi*4]
28150
                mov     ebx, [esi+ebx*4]
28151
                mov     ebp, [esi+ebp*4]
28152
                shl     edi, 10h
28153
                mov     edx, [esi+edx*4]
28154
                shl     ebp, 18h
28155
                xor     eax, edi
28156
                shl     ebx, 10h
28157
                xor     eax, ebp
28158
                shl     edx, 18h
28159
                mov     edi, [esp+94h]
28160
                xor     ecx, ebx
28161
                mov     ebx, [esp+88h]
28162
                xor     ecx, edx
28163
                mov     edx, [esp+8Ch]
28164
                xor     eax, ebx
28165
                mov     ebx, [edi+8]
28166
                mov     edi, [edi+0Ch]
28167
                xor     ecx, edx
28168
                mov     edx, [esp+90h]
28169
                mov     ebp, [esp+0A4h]
28170
                xor     eax, ebx
28171
                mov     esp, ebp
28172
                xor     ecx, edi
28173
                mov     [edx+8], eax
28174
                mov     [edx+0Ch], ecx
28175
                pop  ebp
28176
                pop  edi
28177
                pop  esi
28178
                pop  ebx
28179
end;
28180
{$ENDIF}
28181
28182
{$IFDEF THash_Snefru128_asm}
28183
procedure THash_Snefru128.DoTransform(Buffer: PUInt32Array);
28184
begin
28185
  SwapUInt32Buffer(Buffer[0], FDigest[4], 12);
28186
  asm
28187
                push    ebx
28188
                mov     eax, Self
28189
                push    esi
28190
                push    edi
28191
                lea     edi, [eax].THash_Snefru128.FDigest
28192
                push    ebp
28193
                lea     esi, Snefru_Data
28194
                mov     ecx, [eax].THash_Snefru128.FRounds
28195
28196
                mov     ebp, esp
28197
                add     esp, 0FFFFFF94h
28198
                and     esp, 0FFFFFFE0h
28199
                mov     [esp+60h], edi
28200
                mov     [esp+68h], ebp
28201
                mov     eax, [edi]
28202
                mov     ebx, [edi+4]
28203
                mov     ebp, [edi+8]
28204
                mov     edx, [edi+0Ch]
28205
                mov     [esp], eax
28206
                mov     [esp+4], ebx
28207
                mov     [esp+8], ebp
28208
                mov     [esp+0Ch], edx
28209
                mov     [esp+40h], eax
28210
                mov     [esp+44h], ebx
28211
                mov     [esp+48h], ebp
28212
                mov     [esp+4Ch], edx
28213
                mov     eax, [edi+10h]
28214
                mov     ebx, [edi+14h]
28215
                mov     ebp, [edi+18h]
28216
                mov     edx, [edi+1Ch]
28217
                mov     [esp+10h], eax
28218
                mov     [esp+14h], ebx
28219
                mov     [esp+18h], ebp
28220
                mov     [esp+1Ch], edx
28221
                mov     eax, [edi+20h]
28222
                mov     ebx, [edi+24h]
28223
                mov     ebp, [edi+28h]
28224
                mov     edx, [edi+2Ch]
28225
                mov     [esp+20h], eax
28226
                mov     [esp+24h], ebx
28227
                mov     [esp+28h], ebp
28228
                mov     [esp+2Ch], edx
28229
                mov     eax, [edi+30h]
28230
                mov     ebx, [edi+34h]
28231
                mov     ebp, [edi+38h]
28232
                mov     edx, [edi+3Ch]
28233
                mov     [esp+30h], eax
28234
                mov     [esp+34h], ebx
28235
                mov     [esp+38h], ebp
28236
                mov     [esp+3Ch], edx
28237
28238
            @@_level_loop:
28239
                mov     [esp+64h], ecx
28240
                mov     ebx, [esp]
28241
                mov     ecx, [esp+4]
28242
                mov     edi, ebx
28243
                and     ebx, 0FFh
28244
                mov     eax, [esp+3Ch]
28245
                mov     ebx, [esi+ebx*4]
28246
                mov     edx, [esp+8]
28247
                xor     ecx, ebx
28248
                xor     eax, ebx
28249
                mov     ebp, ecx
28250
                and     ecx, 0FFh
28251
                mov     [esp+3Ch], eax
28252
                mov     ecx, [esi+ecx*4]
28253
                mov     ebx, [esp+0Ch]
28254
                xor     edx, ecx
28255
                xor     edi, ecx
28256
                mov     ecx, edx
28257
                and     edx, 0FFh
28258
                mov     [esp], edi
28259
                mov     edx, [esi+edx*4+400h]
28260
                mov     edi, [esp+10h]
28261
                xor     ebx, edx
28262
                xor     ebp, edx
28263
                mov     edx, ebx
28264
                and     ebx, 0FFh
28265
                ror     ebp, 10h
28266
                mov     ebx, [esi+ebx*4+400h]
28267
                mov     eax, [esp+14h]
28268
                mov     [esp+4], ebp
28269
                xor     edi, ebx
28270
                xor     ecx, ebx
28271
                mov     ebx, edi
28272
                and     edi, 0FFh
28273
                mov     ebp, [esp+18h]
28274
                ror     ecx, 10h
28275
                mov     edi, [esi+edi*4]
28276
                mov     [esp+8], ecx
28277
                xor     eax, edi
28278
                xor     edx, edi
28279
                mov     edi, eax
28280
                and     eax, 0FFh
28281
                ror     edx, 10h
28282
                mov     eax, [esi+eax*4]
28283
                mov     ecx, [esp+1Ch]
28284
                mov     [esp+0Ch], edx
28285
                xor     ebp, eax
28286
                xor     ebx, eax
28287
                mov     eax, ebp
28288
                and     ebp, 0FFh
28289
                mov     edx, [esp+20h]
28290
                ror     ebx, 10h
28291
                mov     ebp, [esi+ebp*4+400h]
28292
                mov     [esp+10h], ebx
28293
                xor     ecx, ebp
28294
                xor     edi, ebp
28295
                mov     ebp, ecx
28296
                and     ecx, 0FFh
28297
                ror     edi, 10h
28298
                mov     ecx, [esi+ecx*4+400h]
28299
                mov     ebx, [esp+24h]
28300
                mov     [esp+14h], edi
28301
                xor     edx, ecx
28302
                xor     eax, ecx
28303
                mov     ecx, edx
28304
                and     edx, 0FFh
28305
                mov     edi, [esp+28h]
28306
                ror     eax, 10h
28307
                mov     edx, [esi+edx*4]
28308
                mov     [esp+18h], eax
28309
                xor     ebx, edx
28310
                xor     ebp, edx
28311
                mov     edx, ebx
28312
                and     ebx, 0FFh
28313
                ror     ebp, 10h
28314
                mov     ebx, [esi+ebx*4]
28315
                mov     eax, [esp+2Ch]
28316
                mov     [esp+1Ch], ebp
28317
                xor     edi, ebx
28318
                xor     ecx, ebx
28319
                mov     ebx, edi
28320
                and     edi, 0FFh
28321
                mov     ebp, [esp+30h]
28322
                ror     ecx, 10h
28323
                mov     edi, [esi+edi*4+400h]
28324
                mov     [esp+20h], ecx
28325
                xor     eax, edi
28326
                xor     edx, edi
28327
                mov     edi, eax
28328
                and     eax, 0FFh
28329
                ror     edx, 10h
28330
                mov     eax, [esi+eax*4+400h]
28331
                mov     ecx, [esp+34h]
28332
                mov     [esp+24h], edx
28333
                xor     ebp, eax
28334
                xor     ebx, eax
28335
                mov     eax, ebp
28336
                and     ebp, 0FFh
28337
                mov     edx, [esp+38h]
28338
                ror     ebx, 10h
28339
                mov     ebp, [esi+ebp*4]
28340
                mov     [esp+28h], ebx
28341
                xor     ecx, ebp
28342
                xor     edi, ebp
28343
                mov     ebp, ecx
28344
                and     ecx, 0FFh
28345
                ror     edi, 10h
28346
                mov     ecx, [esi+ecx*4]
28347
                mov     ebx, [esp+3Ch]
28348
                mov     [esp+2Ch], edi
28349
                xor     edx, ecx
28350
                xor     eax, ecx
28351
                mov     ecx, edx
28352
                and     edx, 0FFh
28353
                mov     edi, [esp]
28354
                ror     eax, 10h
28355
                mov     edx, [esi+edx*4+400h]
28356
                mov     [esp+30h], eax
28357
                xor     ebx, edx
28358
                xor     ebp, edx
28359
                mov     edx, ebx
28360
                and     ebx, 0FFh
28361
                ror     ebp, 10h
28362
                ror     edx, 10h
28363
                mov     ebx, [esi+ebx*4+400h]
28364
                mov     [esp+34h], ebp
28365
                xor     edi, ebx
28366
                xor     ecx, ebx
28367
                ror     edi, 10h
28368
                ror     ecx, 10h
28369
                mov     [esp], edi
28370
                mov     [esp+38h], ecx
28371
                mov     [esp+3Ch], edx
28372
                mov     ebx, [esp]
28373
                mov     ecx, [esp+4]
28374
                mov     edi, ebx
28375
                and     ebx, 0FFh
28376
                mov     eax, [esp+3Ch]
28377
                mov     ebx, [esi+ebx*4]
28378
                mov     edx, [esp+8]
28379
                xor     ecx, ebx
28380
                xor     eax, ebx
28381
                mov     ebp, ecx
28382
                and     ecx, 0FFh
28383
                mov     [esp+3Ch], eax
28384
                mov     ecx, [esi+ecx*4]
28385
                mov     ebx, [esp+0Ch]
28386
                xor     edx, ecx
28387
                xor     edi, ecx
28388
                mov     ecx, edx
28389
                and     edx, 0FFh
28390
                mov     [esp], edi
28391
                mov     edx, [esi+edx*4+400h]
28392
                mov     edi, [esp+10h]
28393
                xor     ebx, edx
28394
                xor     ebp, edx
28395
                mov     edx, ebx
28396
                and     ebx, 0FFh
28397
                ror     ebp, 8
28398
                mov     ebx, [esi+ebx*4+400h]
28399
                mov     eax, [esp+14h]
28400
                mov     [esp+4], ebp
28401
                xor     edi, ebx
28402
                xor     ecx, ebx
28403
                mov     ebx, edi
28404
                and     edi, 0FFh
28405
                mov     ebp, [esp+18h]
28406
                ror     ecx, 8
28407
                mov     edi, [esi+edi*4]
28408
                mov     [esp+8], ecx
28409
                xor     eax, edi
28410
                xor     edx, edi
28411
                mov     edi, eax
28412
                and     eax, 0FFh
28413
                ror     edx, 8
28414
                mov     eax, [esi+eax*4]
28415
                mov     ecx, [esp+1Ch]
28416
                mov     [esp+0Ch], edx
28417
                xor     ebp, eax
28418
                xor     ebx, eax
28419
                mov     eax, ebp
28420
                and     ebp, 0FFh
28421
                mov     edx, [esp+20h]
28422
                ror     ebx, 8
28423
                mov     ebp, [esi+ebp*4+400h]
28424
                mov     [esp+10h], ebx
28425
                xor     ecx, ebp
28426
                xor     edi, ebp
28427
                mov     ebp, ecx
28428
                and     ecx, 0FFh
28429
                ror     edi, 8
28430
                mov     ecx, [esi+ecx*4+400h]
28431
                mov     ebx, [esp+24h]
28432
                mov     [esp+14h], edi
28433
                xor     edx, ecx
28434
                xor     eax, ecx
28435
                mov     ecx, edx
28436
                and     edx, 0FFh
28437
                mov     edi, [esp+28h]
28438
                ror     eax, 8
28439
                mov     edx, [esi+edx*4]
28440
                mov     [esp+18h], eax
28441
                xor     ebx, edx
28442
                xor     ebp, edx
28443
                mov     edx, ebx
28444
                and     ebx, 0FFh
28445
                ror     ebp, 8
28446
                mov     ebx, [esi+ebx*4]
28447
                mov     eax, [esp+2Ch]
28448
                mov     [esp+1Ch], ebp
28449
                xor     edi, ebx
28450
                xor     ecx, ebx
28451
                mov     ebx, edi
28452
                and     edi, 0FFh
28453
                mov     ebp, [esp+30h]
28454
                ror     ecx, 8
28455
                mov     edi, [esi+edi*4+400h]
28456
                mov     [esp+20h], ecx
28457
                xor     eax, edi
28458
                xor     edx, edi
28459
                mov     edi, eax
28460
                and     eax, 0FFh
28461
                ror     edx, 8
28462
                mov     eax, [esi+eax*4+400h]
28463
                mov     ecx, [esp+34h]
28464
                mov     [esp+24h], edx
28465
                xor     ebp, eax
28466
                xor     ebx, eax
28467
                mov     eax, ebp
28468
                and     ebp, 0FFh
28469
                mov     edx, [esp+38h]
28470
                ror     ebx, 8
28471
                mov     ebp, [esi+ebp*4]
28472
                mov     [esp+28h], ebx
28473
                xor     ecx, ebp
28474
                xor     edi, ebp
28475
                mov     ebp, ecx
28476
                and     ecx, 0FFh
28477
                ror     edi, 8
28478
                mov     ecx, [esi+ecx*4]
28479
                mov     ebx, [esp+3Ch]
28480
                mov     [esp+2Ch], edi
28481
                xor     edx, ecx
28482
                xor     eax, ecx
28483
                mov     ecx, edx
28484
                and     edx, 0FFh
28485
                mov     edi, [esp]
28486
                ror     eax, 8
28487
                mov     edx, [esi+edx*4+400h]
28488
                mov     [esp+30h], eax
28489
                xor     ebx, edx
28490
                xor     ebp, edx
28491
                mov     edx, ebx
28492
                and     ebx, 0FFh
28493
                ror     ebp, 8
28494
                ror     edx, 8
28495
                mov     ebx, [esi+ebx*4+400h]
28496
                mov     [esp+34h], ebp
28497
                xor     edi, ebx
28498
                xor     ecx, ebx
28499
                ror     edi, 8
28500
                ror     ecx, 8
28501
                mov     [esp], edi
28502
                mov     [esp+38h], ecx
28503
                mov     [esp+3Ch], edx
28504
                mov     ebx, [esp]
28505
                mov     ecx, [esp+4]
28506
                mov     edi, ebx
28507
                and     ebx, 0FFh
28508
                mov     eax, [esp+3Ch]
28509
                mov     ebx, [esi+ebx*4]
28510
                mov     edx, [esp+8]
28511
                xor     ecx, ebx
28512
                xor     eax, ebx
28513
                mov     ebp, ecx
28514
                and     ecx, 0FFh
28515
                mov     [esp+3Ch], eax
28516
                mov     ecx, [esi+ecx*4]
28517
                mov     ebx, [esp+0Ch]
28518
                xor     edx, ecx
28519
                xor     edi, ecx
28520
                mov     ecx, edx
28521
                and     edx, 0FFh
28522
                mov     [esp], edi
28523
                mov     edx, [esi+edx*4+400h]
28524
                mov     edi, [esp+10h]
28525
                xor     ebx, edx
28526
                xor     ebp, edx
28527
                mov     edx, ebx
28528
                and     ebx, 0FFh
28529
                ror     ebp, 10h
28530
                mov     ebx, [esi+ebx*4+400h]
28531
                mov     eax, [esp+14h]
28532
                mov     [esp+4], ebp
28533
                xor     edi, ebx
28534
                xor     ecx, ebx
28535
                mov     ebx, edi
28536
                and     edi, 0FFh
28537
                mov     ebp, [esp+18h]
28538
                ror     ecx, 10h
28539
                mov     edi, [esi+edi*4]
28540
                mov     [esp+8], ecx
28541
                xor     eax, edi
28542
                xor     edx, edi
28543
                mov     edi, eax
28544
                and     eax, 0FFh
28545
                ror     edx, 10h
28546
                mov     eax, [esi+eax*4]
28547
                mov     ecx, [esp+1Ch]
28548
                mov     [esp+0Ch], edx
28549
                xor     ebp, eax
28550
                xor     ebx, eax
28551
                mov     eax, ebp
28552
                and     ebp, 0FFh
28553
                mov     edx, [esp+20h]
28554
                ror     ebx, 10h
28555
                mov     ebp, [esi+ebp*4+400h]
28556
                mov     [esp+10h], ebx
28557
                xor     ecx, ebp
28558
                xor     edi, ebp
28559
                mov     ebp, ecx
28560
                and     ecx, 0FFh
28561
                ror     edi, 10h
28562
                mov     ecx, [esi+ecx*4+400h]
28563
                mov     ebx, [esp+24h]
28564
                mov     [esp+14h], edi
28565
                xor     edx, ecx
28566
                xor     eax, ecx
28567
                mov     ecx, edx
28568
                and     edx, 0FFh
28569
                mov     edi, [esp+28h]
28570
                ror     eax, 10h
28571
                mov     edx, [esi+edx*4]
28572
                mov     [esp+18h], eax
28573
                xor     ebx, edx
28574
                xor     ebp, edx
28575
                mov     edx, ebx
28576
                and     ebx, 0FFh
28577
                ror     ebp, 10h
28578
                mov     ebx, [esi+ebx*4]
28579
                mov     eax, [esp+2Ch]
28580
                mov     [esp+1Ch], ebp
28581
                xor     edi, ebx
28582
                xor     ecx, ebx
28583
                mov     ebx, edi
28584
                and     edi, 0FFh
28585
                mov     ebp, [esp+30h]
28586
                ror     ecx, 10h
28587
                mov     edi, [esi+edi*4+400h]
28588
                mov     [esp+20h], ecx
28589
                xor     eax, edi
28590
                xor     edx, edi
28591
                mov     edi, eax
28592
                and     eax, 0FFh
28593
                ror     edx, 10h
28594
                mov     eax, [esi+eax*4+400h]
28595
                mov     ecx, [esp+34h]
28596
                mov     [esp+24h], edx
28597
                xor     ebp, eax
28598
                xor     ebx, eax
28599
                mov     eax, ebp
28600
                and     ebp, 0FFh
28601
                mov     edx, [esp+38h]
28602
                ror     ebx, 10h
28603
                mov     ebp, [esi+ebp*4]
28604
                mov     [esp+28h], ebx
28605
                xor     ecx, ebp
28606
                xor     edi, ebp
28607
                mov     ebp, ecx
28608
                and     ecx, 0FFh
28609
                ror     edi, 10h
28610
                mov     ecx, [esi+ecx*4]
28611
                mov     ebx, [esp+3Ch]
28612
                mov     [esp+2Ch], edi
28613
                xor     edx, ecx
28614
                xor     eax, ecx
28615
                mov     ecx, edx
28616
                and     edx, 0FFh
28617
                mov     edi, [esp]
28618
                ror     eax, 10h
28619
                mov     edx, [esi+edx*4+400h]
28620
                mov     [esp+30h], eax
28621
                xor     ebx, edx
28622
                xor     ebp, edx
28623
                mov     edx, ebx
28624
                and     ebx, 0FFh
28625
                ror     ebp, 10h
28626
                ror     edx, 10h
28627
                mov     ebx, [esi+ebx*4+400h]
28628
                mov     [esp+34h], ebp
28629
                xor     edi, ebx
28630
                xor     ecx, ebx
28631
                ror     edi, 10h
28632
                ror     ecx, 10h
28633
                mov     [esp], edi
28634
                mov     [esp+38h], ecx
28635
                mov     [esp+3Ch], edx
28636
                mov     ebx, [esp]
28637
                mov     ecx, [esp+4]
28638
                mov     edi, ebx
28639
                and     ebx, 0FFh
28640
                mov     eax, [esp+3Ch]
28641
                mov     ebx, [esi+ebx*4]
28642
                mov     edx, [esp+8]
28643
                xor     ecx, ebx
28644
                xor     eax, ebx
28645
                mov     ebp, ecx
28646
                and     ecx, 0FFh
28647
                mov     [esp+3Ch], eax
28648
                mov     ecx, [esi+ecx*4]
28649
                mov     ebx, [esp+0Ch]
28650
                xor     edx, ecx
28651
                xor     edi, ecx
28652
                mov     ecx, edx
28653
                and     edx, 0FFh
28654
                mov     [esp], edi
28655
                mov     edx, [esi+edx*4+400h]
28656
                mov     edi, [esp+10h]
28657
                xor     ebx, edx
28658
                xor     ebp, edx
28659
                mov     edx, ebx
28660
                and     ebx, 0FFh
28661
                rol     ebp, 8
28662
                mov     ebx, [esi+ebx*4+400h]
28663
                mov     eax, [esp+14h]
28664
                mov     [esp+4], ebp
28665
                xor     edi, ebx
28666
                xor     ecx, ebx
28667
                mov     ebx, edi
28668
                and     edi, 0FFh
28669
                mov     ebp, [esp+18h]
28670
                rol     ecx, 8
28671
                mov     edi, [esi+edi*4]
28672
                mov     [esp+8], ecx
28673
                xor     eax, edi
28674
                xor     edx, edi
28675
                mov     edi, eax
28676
                and     eax, 0FFh
28677
                rol     edx, 8
28678
                mov     eax, [esi+eax*4]
28679
                mov     ecx, [esp+1Ch]
28680
                mov     [esp+0Ch], edx
28681
                xor     ebp, eax
28682
                xor     ebx, eax
28683
                mov     eax, ebp
28684
                and     ebp, 0FFh
28685
                mov     edx, [esp+20h]
28686
                rol     ebx, 8
28687
                mov     ebp, [esi+ebp*4+400h]
28688
                mov     [esp+10h], ebx
28689
                xor     ecx, ebp
28690
                xor     edi, ebp
28691
                mov     ebp, ecx
28692
                and     ecx, 0FFh
28693
                rol     edi, 8
28694
                mov     ecx, [esi+ecx*4+400h]
28695
                mov     ebx, [esp+24h]
28696
                mov     [esp+14h], edi
28697
                xor     edx, ecx
28698
                xor     eax, ecx
28699
                mov     ecx, edx
28700
                and     edx, 0FFh
28701
                mov     edi, [esp+28h]
28702
                rol     eax, 8
28703
                mov     edx, [esi+edx*4]
28704
                mov     [esp+18h], eax
28705
                xor     ebx, edx
28706
                xor     ebp, edx
28707
                mov     edx, ebx
28708
                and     ebx, 0FFh
28709
                rol     ebp, 8
28710
                mov     ebx, [esi+ebx*4]
28711
                mov     eax, [esp+2Ch]
28712
                mov     [esp+1Ch], ebp
28713
                xor     edi, ebx
28714
                xor     ecx, ebx
28715
                mov     ebx, edi
28716
                and     edi, 0FFh
28717
                mov     ebp, [esp+30h]
28718
                rol     ecx, 8
28719
                mov     edi, [esi+edi*4+400h]
28720
                mov     [esp+20h], ecx
28721
                xor     eax, edi
28722
                xor     edx, edi
28723
                mov     edi, eax
28724
                and     eax, 0FFh
28725
                rol     edx, 8
28726
                mov     eax, [esi+eax*4+400h]
28727
                mov     ecx, [esp+34h]
28728
                mov     [esp+24h], edx
28729
                xor     ebp, eax
28730
                xor     ebx, eax
28731
                mov     eax, ebp
28732
                and     ebp, 0FFh
28733
                mov     edx, [esp+38h]
28734
                rol     ebx, 8
28735
                mov     ebp, [esi+ebp*4]
28736
                mov     [esp+28h], ebx
28737
                xor     ecx, ebp
28738
                xor     edi, ebp
28739
                mov     ebp, ecx
28740
                and     ecx, 0FFh
28741
                rol     edi, 8
28742
                mov     ecx, [esi+ecx*4]
28743
                mov     ebx, [esp+3Ch]
28744
                mov     [esp+2Ch], edi
28745
                xor     edx, ecx
28746
                xor     eax, ecx
28747
                mov     ecx, edx
28748
                and     edx, 0FFh
28749
                mov     edi, [esp]
28750
                rol     eax, 8
28751
                mov     edx, [esi+edx*4+400h]
28752
                mov     [esp+30h], eax
28753
                xor     ebx, edx
28754
                xor     ebp, edx
28755
                mov     edx, ebx
28756
                and     ebx, 0FFh
28757
                rol     ebp, 8
28758
                rol     edx, 8
28759
                mov     ebx, [esi+ebx*4+400h]
28760
                mov     [esp+34h], ebp
28761
                xor     edi, ebx
28762
                xor     ecx, ebx
28763
                rol     edi, 8
28764
                rol     ecx, 8
28765
                mov     [esp], edi
28766
                mov     [esp+38h], ecx
28767
                mov     [esp+3Ch], edx
28768
                mov     ecx, [esp+64h]
28769
                add     esi, 800h
28770
                dec     ecx
28771
                jnz     @@_level_loop
28772
                mov     edi, [esp+60h]
28773
                mov     eax, [esp+40h]
28774
                mov     ebx, [esp+44h]
28775
                mov     ecx, [esp+3Ch]
28776
                mov     edx, [esp+38h]
28777
                xor     eax, ecx
28778
                xor     ebx, edx
28779
                mov     [edi], eax
28780
                mov     [edi+4], ebx
28781
                mov     eax, [esp+48h]
28782
                mov     ebx, [esp+4Ch]
28783
                mov     ecx, [esp+34h]
28784
                mov     edx, [esp+30h]
28785
                xor     eax, ecx
28786
                xor     ebx, edx
28787
                mov     [edi+8], eax
28788
                mov     [edi+0Ch], ebx
28789
                mov     ebp, [esp+68h]
28790
                mov     esp, ebp
28791
28792
                pop  ebp
28793
                pop  edi
28794
                pop  esi
28795
                pop  ebx
28796
  end;
28797
end;
28798
{$ENDIF}
28799
28800
{$IFDEF THash_Snefru256_asm}
28801
procedure THash_Snefru256.DoTransform(Buffer: PUInt32Array);
28802
begin
28803
  SwapUInt32Buffer(Buffer[0], FDigest[8], 8);
28804
  asm
28805
                push    ebx
28806
                mov     eax, Self
28807
                push    esi
28808
                push    edi
28809
                lea     edi, [eax].THash_Snefru256.FDigest
28810
                push    ebp
28811
                lea     esi, Snefru_Data
28812
                mov     ecx, [eax].THash_Snefru256.FRounds
28813
                mov     ebp, esp
28814
                add     esp, 0FFFFFF94h
28815
                and     esp, 0FFFFFFE0h
28816
                mov     [esp+60h], edi
28817
                mov     [esp+68h], ebp
28818
                mov     eax, [edi]
28819
                mov     ebx, [edi+4]
28820
                mov     ebp, [edi+8]
28821
                mov     edx, [edi+0Ch]
28822
                mov     [esp], eax
28823
                mov     [esp+4], ebx
28824
                mov     [esp+8], ebp
28825
                mov     [esp+0Ch], edx
28826
                mov     [esp+40h], eax
28827
                mov     [esp+44h], ebx
28828
                mov     [esp+48h], ebp
28829
                mov     [esp+4Ch], edx
28830
                mov     eax, [edi+10h]
28831
                mov     ebx, [edi+14h]
28832
                mov     ebp, [edi+18h]
28833
                mov     edx, [edi+1Ch]
28834
                mov     [esp+10h], eax
28835
                mov     [esp+14h], ebx
28836
                mov     [esp+18h], ebp
28837
                mov     [esp+1Ch], edx
28838
                mov     [esp+50h], eax
28839
                mov     [esp+54h], ebx
28840
                mov     [esp+58h], ebp
28841
                mov     [esp+5Ch], edx
28842
                mov     eax, [edi+20h]
28843
                mov     ebx, [edi+24h]
28844
                mov     ebp, [edi+28h]
28845
                mov     edx, [edi+2Ch]
28846
                mov     [esp+20h], eax
28847
                mov     [esp+24h], ebx
28848
                mov     [esp+28h], ebp
28849
                mov     [esp+2Ch], edx
28850
                mov     eax, [edi+30h]
28851
                mov     ebx, [edi+34h]
28852
                mov     ebp, [edi+38h]
28853
                mov     edx, [edi+3Ch]
28854
                mov     [esp+30h], eax
28855
                mov     [esp+34h], ebx
28856
                mov     [esp+38h], ebp
28857
                mov     [esp+3Ch], edx
28858
28859
            @@_level_loop:
28860
                mov     [esp+64h], ecx
28861
                mov     ebx, [esp]
28862
                mov     ecx, [esp+4]
28863
                mov     edi, ebx
28864
                and     ebx, 0FFh
28865
                mov     eax, [esp+3Ch]
28866
                mov     ebx, [esi+ebx*4]
28867
                mov     edx, [esp+8]
28868
                xor     ecx, ebx
28869
                xor     eax, ebx
28870
                mov     ebp, ecx
28871
                and     ecx, 0FFh
28872
                mov     [esp+3Ch], eax
28873
                mov     ecx, [esi+ecx*4]
28874
                mov     ebx, [esp+0Ch]
28875
                xor     edx, ecx
28876
                xor     edi, ecx
28877
                mov     ecx, edx
28878
                and     edx, 0FFh
28879
                mov     [esp], edi
28880
                mov     edx, [esi+edx*4+400h]
28881
                mov     edi, [esp+10h]
28882
                xor     ebx, edx
28883
                xor     ebp, edx
28884
                mov     edx, ebx
28885
                and     ebx, 0FFh
28886
                ror     ebp, 10h
28887
                mov     ebx, [esi+ebx*4+400h]
28888
                mov     eax, [esp+14h]
28889
                mov     [esp+4], ebp
28890
                xor     edi, ebx
28891
                xor     ecx, ebx
28892
                mov     ebx, edi
28893
                and     edi, 0FFh
28894
                mov     ebp, [esp+18h]
28895
                ror     ecx, 10h
28896
                mov     edi, [esi+edi*4]
28897
                mov     [esp+8], ecx
28898
                xor     eax, edi
28899
                xor     edx, edi
28900
                mov     edi, eax
28901
                and     eax, 0FFh
28902
                ror     edx, 10h
28903
                mov     eax, [esi+eax*4]
28904
                mov     ecx, [esp+1Ch]
28905
                mov     [esp+0Ch], edx
28906
                xor     ebp, eax
28907
                xor     ebx, eax
28908
                mov     eax, ebp
28909
                and     ebp, 0FFh
28910
                mov     edx, [esp+20h]
28911
                ror     ebx, 10h
28912
                mov     ebp, [esi+ebp*4+400h]
28913
                mov     [esp+10h], ebx
28914
                xor     ecx, ebp
28915
                xor     edi, ebp
28916
                mov     ebp, ecx
28917
                and     ecx, 0FFh
28918
                ror     edi, 10h
28919
                mov     ecx, [esi+ecx*4+400h]
28920
                mov     ebx, [esp+24h]
28921
                mov     [esp+14h], edi
28922
                xor     edx, ecx
28923
                xor     eax, ecx
28924
                mov     ecx, edx
28925
                and     edx, 0FFh
28926
                mov     edi, [esp+28h]
28927
                ror     eax, 10h
28928
                mov     edx, [esi+edx*4]
28929
                mov     [esp+18h], eax
28930
                xor     ebx, edx
28931
                xor     ebp, edx
28932
                mov     edx, ebx
28933
                and     ebx, 0FFh
28934
                ror     ebp, 10h
28935
                mov     ebx, [esi+ebx*4]
28936
                mov     eax, [esp+2Ch]
28937
                mov     [esp+1Ch], ebp
28938
                xor     edi, ebx
28939
                xor     ecx, ebx
28940
                mov     ebx, edi
28941
                and     edi, 0FFh
28942
                mov     ebp, [esp+30h]
28943
                ror     ecx, 10h
28944
                mov     edi, [esi+edi*4+400h]
28945
                mov     [esp+20h], ecx
28946
                xor     eax, edi
28947
                xor     edx, edi
28948
                mov     edi, eax
28949
                and     eax, 0FFh
28950
                ror     edx, 10h
28951
                mov     eax, [esi+eax*4+400h]
28952
                mov     ecx, [esp+34h]
28953
                mov     [esp+24h], edx
28954
                xor     ebp, eax
28955
                xor     ebx, eax
28956
                mov     eax, ebp
28957
                and     ebp, 0FFh
28958
                mov     edx, [esp+38h]
28959
                ror     ebx, 10h
28960
                mov     ebp, [esi+ebp*4]
28961
                mov     [esp+28h], ebx
28962
                xor     ecx, ebp
28963
                xor     edi, ebp
28964
                mov     ebp, ecx
28965
                and     ecx, 0FFh
28966
                ror     edi, 10h
28967
                mov     ecx, [esi+ecx*4]
28968
                mov     ebx, [esp+3Ch]
28969
                mov     [esp+2Ch], edi
28970
                xor     edx, ecx
28971
                xor     eax, ecx
28972
                mov     ecx, edx
28973
                and     edx, 0FFh
28974
                mov     edi, [esp]
28975
                ror     eax, 10h
28976
                mov     edx, [esi+edx*4+400h]
28977
                mov     [esp+30h], eax
28978
                xor     ebx, edx
28979
                xor     ebp, edx
28980
                mov     edx, ebx
28981
                and     ebx, 0FFh
28982
                ror     ebp, 10h
28983
                ror     edx, 10h
28984
                mov     ebx, [esi+ebx*4+400h]
28985
                mov     [esp+34h], ebp
28986
                xor     edi, ebx
28987
                xor     ecx, ebx
28988
                ror     edi, 10h
28989
                ror     ecx, 10h
28990
                mov     [esp], edi
28991
                mov     [esp+38h], ecx
28992
                mov     [esp+3Ch], edx
28993
                mov     ebx, [esp]
28994
                mov     ecx, [esp+4]
28995
                mov     edi, ebx
28996
                and     ebx, 0FFh
28997
                mov     eax, [esp+3Ch]
28998
                mov     ebx, [esi+ebx*4]
28999
                mov     edx, [esp+8]
29000
                xor     ecx, ebx
29001
                xor     eax, ebx
29002
                mov     ebp, ecx
29003
                and     ecx, 0FFh
29004
                mov     [esp+3Ch], eax
29005
                mov     ecx, [esi+ecx*4]
29006
                mov     ebx, [esp+0Ch]
29007
                xor     edx, ecx
29008
                xor     edi, ecx
29009
                mov     ecx, edx
29010
                and     edx, 0FFh
29011
                mov     [esp], edi
29012
                mov     edx, [esi+edx*4+400h]
29013
                mov     edi, [esp+10h]
29014
                xor     ebx, edx
29015
                xor     ebp, edx
29016
                mov     edx, ebx
29017
                and     ebx, 0FFh
29018
                ror     ebp, 8
29019
                mov     ebx, [esi+ebx*4+400h]
29020
                mov     eax, [esp+14h]
29021
                mov     [esp+4], ebp
29022
                xor     edi, ebx
29023
                xor     ecx, ebx
29024
                mov     ebx, edi
29025
                and     edi, 0FFh
29026
                mov     ebp, [esp+18h]
29027
                ror     ecx, 8
29028
                mov     edi, [esi+edi*4]
29029
                mov     [esp+8], ecx
29030
                xor     eax, edi
29031
                xor     edx, edi
29032
                mov     edi, eax
29033
                and     eax, 0FFh
29034
                ror     edx, 8
29035
                mov     eax, [esi+eax*4]
29036
                mov     ecx, [esp+1Ch]
29037
                mov     [esp+0Ch], edx
29038
                xor     ebp, eax
29039
                xor     ebx, eax
29040
                mov     eax, ebp
29041
                and     ebp, 0FFh
29042
                mov     edx, [esp+20h]
29043
                ror     ebx, 8
29044
                mov     ebp, [esi+ebp*4+400h]
29045
                mov     [esp+10h], ebx
29046
                xor     ecx, ebp
29047
                xor     edi, ebp
29048
                mov     ebp, ecx
29049
                and     ecx, 0FFh
29050
                ror     edi, 8
29051
                mov     ecx, [esi+ecx*4+400h]
29052
                mov     ebx, [esp+24h]
29053
                mov     [esp+14h], edi
29054
                xor     edx, ecx
29055
                xor     eax, ecx
29056
                mov     ecx, edx
29057
                and     edx, 0FFh
29058
                mov     edi, [esp+28h]
29059
                ror     eax, 8
29060
                mov     edx, [esi+edx*4]
29061
                mov     [esp+18h], eax
29062
                xor     ebx, edx
29063
                xor     ebp, edx
29064
                mov     edx, ebx
29065
                and     ebx, 0FFh
29066
                ror     ebp, 8
29067
                mov     ebx, [esi+ebx*4]
29068
                mov     eax, [esp+2Ch]
29069
                mov     [esp+1Ch], ebp
29070
                xor     edi, ebx
29071
                xor     ecx, ebx
29072
                mov     ebx, edi
29073
                and     edi, 0FFh
29074
                mov     ebp, [esp+30h]
29075
                ror     ecx, 8
29076
                mov     edi, [esi+edi*4+400h]
29077
                mov     [esp+20h], ecx
29078
                xor     eax, edi
29079
                xor     edx, edi
29080
                mov     edi, eax
29081
                and     eax, 0FFh
29082
                ror     edx, 8
29083
                mov     eax, [esi+eax*4+400h]
29084
                mov     ecx, [esp+34h]
29085
                mov     [esp+24h], edx
29086
                xor     ebp, eax
29087
                xor     ebx, eax
29088
                mov     eax, ebp
29089
                and     ebp, 0FFh
29090
                mov     edx, [esp+38h]
29091
                ror     ebx, 8
29092
                mov     ebp, [esi+ebp*4]
29093
                mov     [esp+28h], ebx
29094
                xor     ecx, ebp
29095
                xor     edi, ebp
29096
                mov     ebp, ecx
29097
                and     ecx, 0FFh
29098
                ror     edi, 8
29099
                mov     ecx, [esi+ecx*4]
29100
                mov     ebx, [esp+3Ch]
29101
                mov     [esp+2Ch], edi
29102
                xor     edx, ecx
29103
                xor     eax, ecx
29104
                mov     ecx, edx
29105
                and     edx, 0FFh
29106
                mov     edi, [esp]
29107
                ror     eax, 8
29108
                mov     edx, [esi+edx*4+400h]
29109
                mov     [esp+30h], eax
29110
                xor     ebx, edx
29111
                xor     ebp, edx
29112
                mov     edx, ebx
29113
                and     ebx, 0FFh
29114
                ror     ebp, 8
29115
                ror     edx, 8
29116
                mov     ebx, [esi+ebx*4+400h]
29117
                mov     [esp+34h], ebp
29118
                xor     edi, ebx
29119
                xor     ecx, ebx
29120
                ror     edi, 8
29121
                ror     ecx, 8
29122
                mov     [esp], edi
29123
                mov     [esp+38h], ecx
29124
                mov     [esp+3Ch], edx
29125
                mov     ebx, [esp]
29126
                mov     ecx, [esp+4]
29127
                mov     edi, ebx
29128
                and     ebx, 0FFh
29129
                mov     eax, [esp+3Ch]
29130
                mov     ebx, [esi+ebx*4]
29131
                mov     edx, [esp+8]
29132
                xor     ecx, ebx
29133
                xor     eax, ebx
29134
                mov     ebp, ecx
29135
                and     ecx, 0FFh
29136
                mov     [esp+3Ch], eax
29137
                mov     ecx, [esi+ecx*4]
29138
                mov     ebx, [esp+0Ch]
29139
                xor     edx, ecx
29140
                xor     edi, ecx
29141
                mov     ecx, edx
29142
                and     edx, 0FFh
29143
                mov     [esp], edi
29144
                mov     edx, [esi+edx*4+400h]
29145
                mov     edi, [esp+10h]
29146
                xor     ebx, edx
29147
                xor     ebp, edx
29148
                mov     edx, ebx
29149
                and     ebx, 0FFh
29150
                ror     ebp, 10h
29151
                mov     ebx, [esi+ebx*4+400h]
29152
                mov     eax, [esp+14h]
29153
                mov     [esp+4], ebp
29154
                xor     edi, ebx
29155
                xor     ecx, ebx
29156
                mov     ebx, edi
29157
                and     edi, 0FFh
29158
                mov     ebp, [esp+18h]
29159
                ror     ecx, 10h
29160
                mov     edi, [esi+edi*4]
29161
                mov     [esp+8], ecx
29162
                xor     eax, edi
29163
                xor     edx, edi
29164
                mov     edi, eax
29165
                and     eax, 0FFh
29166
                ror     edx, 10h
29167
                mov     eax, [esi+eax*4]
29168
                mov     ecx, [esp+1Ch]
29169
                mov     [esp+0Ch], edx
29170
                xor     ebp, eax
29171
                xor     ebx, eax
29172
                mov     eax, ebp
29173
                and     ebp, 0FFh
29174
                mov     edx, [esp+20h]
29175
                ror     ebx, 10h
29176
                mov     ebp, [esi+ebp*4+400h]
29177
                mov     [esp+10h], ebx
29178
                xor     ecx, ebp
29179
                xor     edi, ebp
29180
                mov     ebp, ecx
29181
                and     ecx, 0FFh
29182
                ror     edi, 10h
29183
                mov     ecx, [esi+ecx*4+400h]
29184
                mov     ebx, [esp+24h]
29185
                mov     [esp+14h], edi
29186
                xor     edx, ecx
29187
                xor     eax, ecx
29188
                mov     ecx, edx
29189
                and     edx, 0FFh
29190
                mov     edi, [esp+28h]
29191
                ror     eax, 10h
29192
                mov     edx, [esi+edx*4]
29193
                mov     [esp+18h], eax
29194
                xor     ebx, edx
29195
                xor     ebp, edx
29196
                mov     edx, ebx
29197
                and     ebx, 0FFh
29198
                ror     ebp, 10h
29199
                mov     ebx, [esi+ebx*4]
29200
                mov     eax, [esp+2Ch]
29201
                mov     [esp+1Ch], ebp
29202
                xor     edi, ebx
29203
                xor     ecx, ebx
29204
                mov     ebx, edi
29205
                and     edi, 0FFh
29206
                mov     ebp, [esp+30h]
29207
                ror     ecx, 10h
29208
                mov     edi, [esi+edi*4+400h]
29209
                mov     [esp+20h], ecx
29210
                xor     eax, edi
29211
                xor     edx, edi
29212
                mov     edi, eax
29213
                and     eax, 0FFh
29214
                ror     edx, 10h
29215
                mov     eax, [esi+eax*4+400h]
29216
                mov     ecx, [esp+34h]
29217
                mov     [esp+24h], edx
29218
                xor     ebp, eax
29219
                xor     ebx, eax
29220
                mov     eax, ebp
29221
                and     ebp, 0FFh
29222
                mov     edx, [esp+38h]
29223
                ror     ebx, 10h
29224
                mov     ebp, [esi+ebp*4]
29225
                mov     [esp+28h], ebx
29226
                xor     ecx, ebp
29227
                xor     edi, ebp
29228
                mov     ebp, ecx
29229
                and     ecx, 0FFh
29230
                ror     edi, 10h
29231
                mov     ecx, [esi+ecx*4]
29232
                mov     ebx, [esp+3Ch]
29233
                mov     [esp+2Ch], edi
29234
                xor     edx, ecx
29235
                xor     eax, ecx
29236
                mov     ecx, edx
29237
                and     edx, 0FFh
29238
                mov     edi, [esp]
29239
                ror     eax, 10h
29240
                mov     edx, [esi+edx*4+400h]
29241
                mov     [esp+30h], eax
29242
                xor     ebx, edx
29243
                xor     ebp, edx
29244
                mov     edx, ebx
29245
                and     ebx, 0FFh
29246
                ror     ebp, 10h
29247
                ror     edx, 10h
29248
                mov     ebx, [esi+ebx*4+400h]
29249
                mov     [esp+34h], ebp
29250
                xor     edi, ebx
29251
                xor     ecx, ebx
29252
                ror     edi, 10h
29253
                ror     ecx, 10h
29254
                mov     [esp], edi
29255
                mov     [esp+38h], ecx
29256
                mov     [esp+3Ch], edx
29257
                mov     ebx, [esp]
29258
                mov     ecx, [esp+4]
29259
                mov     edi, ebx
29260
                and     ebx, 0FFh
29261
                mov     eax, [esp+3Ch]
29262
                mov     ebx, [esi+ebx*4]
29263
                mov     edx, [esp+8]
29264
                xor     ecx, ebx
29265
                xor     eax, ebx
29266
                mov     ebp, ecx
29267
                and     ecx, 0FFh
29268
                mov     [esp+3Ch], eax
29269
                mov     ecx, [esi+ecx*4]
29270
                mov     ebx, [esp+0Ch]
29271
                xor     edx, ecx
29272
                xor     edi, ecx
29273
                mov     ecx, edx
29274
                and     edx, 0FFh
29275
                mov     [esp], edi
29276
                mov     edx, [esi+edx*4+400h]
29277
                mov     edi, [esp+10h]
29278
                xor     ebx, edx
29279
                xor     ebp, edx
29280
                mov     edx, ebx
29281
                and     ebx, 0FFh
29282
                rol     ebp, 8
29283
                mov     ebx, [esi+ebx*4+400h]
29284
                mov     eax, [esp+14h]
29285
                mov     [esp+4], ebp
29286
                xor     edi, ebx
29287
                xor     ecx, ebx
29288
                mov     ebx, edi
29289
                and     edi, 0FFh
29290
                mov     ebp, [esp+18h]
29291
                rol     ecx, 8
29292
                mov     edi, [esi+edi*4]
29293
                mov     [esp+8], ecx
29294
                xor     eax, edi
29295
                xor     edx, edi
29296
                mov     edi, eax
29297
                and     eax, 0FFh
29298
                rol     edx, 8
29299
                mov     eax, [esi+eax*4]
29300
                mov     ecx, [esp+1Ch]
29301
                mov     [esp+0Ch], edx
29302
                xor     ebp, eax
29303
                xor     ebx, eax
29304
                mov     eax, ebp
29305
                and     ebp, 0FFh
29306
                mov     edx, [esp+20h]
29307
                rol     ebx, 8
29308
                mov     ebp, [esi+ebp*4+400h]
29309
                mov     [esp+10h], ebx
29310
                xor     ecx, ebp
29311
                xor     edi, ebp
29312
                mov     ebp, ecx
29313
                and     ecx, 0FFh
29314
                rol     edi, 8
29315
                mov     ecx, [esi+ecx*4+400h]
29316
                mov     ebx, [esp+24h]
29317
                mov     [esp+14h], edi
29318
                xor     edx, ecx
29319
                xor     eax, ecx
29320
                mov     ecx, edx
29321
                and     edx, 0FFh
29322
                mov     edi, [esp+28h]
29323
                rol     eax, 8
29324
                mov     edx, [esi+edx*4]
29325
                mov     [esp+18h], eax
29326
                xor     ebx, edx
29327
                xor     ebp, edx
29328
                mov     edx, ebx
29329
                and     ebx, 0FFh
29330
                rol     ebp, 8
29331
                mov     ebx, [esi+ebx*4]
29332
                mov     eax, [esp+2Ch]
29333
                mov     [esp+1Ch], ebp
29334
                xor     edi, ebx
29335
                xor     ecx, ebx
29336
                mov     ebx, edi
29337
                and     edi, 0FFh
29338
                mov     ebp, [esp+30h]
29339
                rol     ecx, 8
29340
                mov     edi, [esi+edi*4+400h]
29341
                mov     [esp+20h], ecx
29342
                xor     eax, edi
29343
                xor     edx, edi
29344
                mov     edi, eax
29345
                and     eax, 0FFh
29346
                rol     edx, 8
29347
                mov     eax, [esi+eax*4+400h]
29348
                mov     ecx, [esp+34h]
29349
                mov     [esp+24h], edx
29350
                xor     ebp, eax
29351
                xor     ebx, eax
29352
                mov     eax, ebp
29353
                and     ebp, 0FFh
29354
                mov     edx, [esp+38h]
29355
                rol     ebx, 8
29356
                mov     ebp, [esi+ebp*4]
29357
                mov     [esp+28h], ebx
29358
                xor     ecx, ebp
29359
                xor     edi, ebp
29360
                mov     ebp, ecx
29361
                and     ecx, 0FFh
29362
                rol     edi, 8
29363
                mov     ecx, [esi+ecx*4]
29364
                mov     ebx, [esp+3Ch]
29365
                mov     [esp+2Ch], edi
29366
                xor     edx, ecx
29367
                xor     eax, ecx
29368
                mov     ecx, edx
29369
                and     edx, 0FFh
29370
                mov     edi, [esp]
29371
                rol     eax, 8
29372
                mov     edx, [esi+edx*4+400h]
29373
                mov     [esp+30h], eax
29374
                xor     ebx, edx
29375
                xor     ebp, edx
29376
                mov     edx, ebx
29377
                and     ebx, 0FFh
29378
                rol     ebp, 8
29379
                rol     edx, 8
29380
                mov     ebx, [esi+ebx*4+400h]
29381
                mov     [esp+34h], ebp
29382
                xor     edi, ebx
29383
                xor     ecx, ebx
29384
                rol     edi, 8
29385
                rol     ecx, 8
29386
                mov     [esp], edi
29387
                mov     [esp+38h], ecx
29388
                mov     [esp+3Ch], edx
29389
                mov     ecx, [esp+64h]
29390
                add     esi, 800h
29391
                dec     ecx
29392
                jnz     @@_level_loop
29393
                mov     edi, [esp+60h]
29394
                mov     eax, [esp+40h]
29395
                mov     ebx, [esp+44h]
29396
                mov     ecx, [esp+3Ch]
29397
                mov     edx, [esp+38h]
29398
                xor     eax, ecx
29399
                xor     ebx, edx
29400
                mov     [edi], eax
29401
                mov     [edi+4], ebx
29402
                mov     eax, [esp+48h]
29403
                mov     ebx, [esp+4Ch]
29404
                mov     ecx, [esp+34h]
29405
                mov     edx, [esp+30h]
29406
                xor     eax, ecx
29407
                xor     ebx, edx
29408
                mov     [edi+8], eax
29409
                mov     [edi+0Ch], ebx
29410
                mov     eax, [esp+50h]
29411
                mov     ebx, [esp+54h]
29412
                mov     ecx, [esp+2Ch]
29413
                mov     edx, [esp+28h]
29414
                xor     eax, ecx
29415
                xor     ebx, edx
29416
                mov     [edi+10h], eax
29417
                mov     [edi+14h], ebx
29418
                mov     eax, [esp+58h]
29419
                mov     ebx, [esp+5Ch]
29420
                mov     ecx, [esp+24h]
29421
                mov     edx, [esp+20h]
29422
                xor     eax, ecx
29423
                xor     ebx, edx
29424
                mov     [edi+18h], eax
29425
                mov     [edi+1Ch], ebx
29426
                mov     ebp, [esp+68h]
29427
                mov     esp, ebp
29428
                pop  ebp
29429
                pop  edi
29430
                pop  esi
29431
                pop  ebx
29432
  end;
29433
end;
29434
{$ENDIF}
29435
29436
{$IFDEF THash_Sapphire_asm}
29437
procedure THash_Sapphire.Calc(const Data; DataSize: Integer);
29438
asm
29439
                test    ecx,ecx
29440
                jle     @Exit
29441
29442
                push    ebx
29443
                push    esi
29444
                push    edi              // let edi points to Sapphire partial context (w/o cards array)
29445
                lea     esi,[eax].THash_Sapphire.FCards
29446
                lea     edi,[eax].THash_Sapphire.FRotor // let esi points to Sapphire cards array
29447
                push    ebp              // edx points to data, ecx contains DataSize
29448
29449
                mov     ebp, esp
29450
                sub     esp, 18h
29451
                and     esp, 0FFFFFFE0h
29452
                mov     eax, [edi]
29453
                mov     ebx, [edi+4]
29454
                mov     [esp+14h], ebp
29455
                mov     ebp, [edi+8]
29456
                mov     [esp], ebx
29457
                mov     [esp+4], ebp
29458
                mov     ebp, eax
29459
                mov     eax, [edi+0Ch]
29460
                mov     ebx, [edi+10h]
29461
                mov     [esp+8], edx
29462
                mov     [esp+10h], edi
29463
29464
            @@data_loop:
29465
                mov     [esp+0Ch], ecx
29466
                mov     ecx, [esi+ebp*4]
29467
                mov     edi, [esp]
29468
                inc     ebp
29469
                add     edi, ecx
29470
                mov     ecx, [esi+ebx*4]
29471
                and     edi, 0FFh
29472
                and     ebp, 0FFh
29473
                mov     edx, [esi+edi*4]
29474
                mov     [esp], edi
29475
                mov     [esi+ebx*4], edx
29476
                mov     edx, [esi+eax*4]
29477
                mov     [esi+edi*4], edx
29478
                mov     edx, [esi+ebp*4]
29479
                mov     [esi+eax*4], edx
29480
                mov     [esi+ebp*4], ecx
29481
                mov     ecx, [esi+ecx*4]
29482
                mov     edx, [esi+eax*4]
29483
                mov     eax, [esp+4]
29484
                mov     edi, [esi+edi*4]
29485
                add     ecx, eax
29486
                mov     eax, [esi+ebp*4]
29487
                and     ecx, 0FFh
29488
                add     edi, eax
29489
                mov     [esp+4], ecx
29490
                and     edi, 0FFh
29491
                mov     eax, [esi+ecx*4]
29492
                mov     ecx, [esp+8]
29493
                add     edx, eax
29494
                mov     eax, [esi+ebx*4]
29495
                add     edx, eax
29496
                movzx   eax, byte ptr [ecx]
29497
                and     edx, 0FFh
29498
                mov     edi, [esi+edi*4]
29499
                inc     ecx
29500
                mov     ebx, eax
29501
                mov     edx, [esi+edx*4]
29502
                mov     [esp+8], ecx
29503
                xor     ebx, edi
29504
                mov     edx, [esi+edx*4]
29505
                mov     ecx, [esp+0Ch]
29506
                xor     ebx, edx
29507
                dec     ecx
29508
                jnz     @@data_loop
29509
                mov     edi, [esp+10h]
29510
                mov     ecx, [esp]
29511
                mov     esi, [esp+4]
29512
                mov     edx, [esp+14h]
29513
                mov     [edi], ebp
29514
                mov     [edi+4], ecx
29515
                mov     esp, edx
29516
                mov     [edi+8], esi
29517
                mov     [edi+0Ch], eax
29518
                mov     [edi+10h], ebx
29519
                pop     ebp
29520
                pop     edi
29521
                pop     esi
29522
                pop     ebx
29523
29524
            @Exit:
29525
end;
29526
{$ENDIF}
29527
29528
{$ENDIF INCLUDED}
29529
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.asm86.inc).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.asm86.inc

+
Number of lines covered28308
Number of lines with code gen28308
Line coverage100%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{
19
  x86 Assembler optimized hash functions
20
}
21
22
{$IFDEF INCLUDED}
23
24
{$IFDEF THash_MD2_asm}
25
procedure THash_MD2.DoTransform(Buffer: PUInt32Array);
26
asm
27
                push    ebx
28
                push    esi
29
                push    edi
30
                push    ebp
31
32
                lea  esi, [eax].THash_MD2.FDigest
33
34
                // copying incoming buffer into work buffer
35
                mov  eax, [edx]
36
                mov  ecx, [edx + 4]
37
                mov  ebx, [edx + 8]
38
                mov  edi, [edx + 12]
39
                mov  [esi + 16], eax
40
                mov  [esi + 16 + 4], ecx
41
                mov  [esi + 16 + 8], ebx
42
                mov  [esi + 16 + 12], edi
43
44
                // recalculating message checksum
45
                //  loop unrolled to 4 iterations,
46
                // combined with
47
                //  xor first 16 bytes with second 16 and move res to third
48
                mov   ecx, dword ptr [esi + 60]
49
                mov   edi, -16
50
                shr   ecx, 24
51
52
            @checksumloop:
53
54
                mov  edx, dword ptr [esi + edi + 16]       // digest
55
                mov  ebp, dword ptr [esi + edi + 16 + 16]  // source data
56
                mov  ebx, dword ptr [esi + edi + 16 + 48]  // checksum
57
58
                xor  ecx, ebp
59
                xor  edx, ebp
60
                and  ecx, 0ffh
61
                xor  eax, eax
62
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
63
                shr  ebp, 8
64
                xor  ecx, ebx
65
                mov  dword ptr [esi + edi + 16 + 32], edx
66
                and  ecx, 0ffh
67
                shr  ebx, 8
68
                or   eax, ecx
69
                shl  eax, 24
70
71
                xor  ecx, ebp
72
                and  ecx, 0ffh
73
                shr  ebp, 8
74
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
75
                xor  ecx, ebx
76
                and  ecx, 0ffh
77
                shr  ebx, 8
78
                or   eax, ecx
79
                ror  eax, 8
80
81
                xor  ecx, ebp
82
                and  ecx, 0ffh
83
                shr  ebp, 8
84
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
85
                xor  ecx, ebx
86
                and  ecx, 0ffh
87
                shr  ebx, 8
88
                or   eax, ecx
89
                ror  eax, 8
90
91
                xor  ecx, ebp
92
                and  ecx, 0ffh
93
                mov  ecx, dword ptr MD2_PiSubst[ecx*4]
94
                xor  ecx, ebx
95
                or   eax, ecx
96
                ror  eax, 8
97
98
                mov  dword ptr [esi + edi + 16 + 48], eax
99
100
                add  edi, 4
101
                jnz  @checksumloop
102
103
                // do 18 rounds of transformation
104
                //  internal loop unrolled
105
106
                lea  edi, MD2_PiSubst  // MD2 permutation array pointer
107
                xor  ecx, ecx       // T variable
108
                xor  ebp, ebp       // external 18 rounds loop
109
                mov  ebx, 0ffh      // mask constant
110
111
            @roundsloop:
112
113
                // part 1
114
                mov  edx, dword ptr [esi]
115
                mov  ecx, dword ptr [edi + ecx*4]
116
                xor  eax, eax
117
                xor  ecx, edx
118
                shr  edx, 8
119
                and  ecx, ebx
120
                or   eax, ecx
121
122
                mov  ecx, dword ptr [edi + ecx*4]
123
                shl  eax, 24
124
                xor  ecx, edx
125
                shr  edx, 8
126
                and  ecx, ebx
127
                or   eax, ecx
128
129
                mov  ecx, dword ptr [edi + ecx*4]
130
                ror  eax, 8
131
                xor  ecx, edx
132
                shr  edx, 8
133
                and  ecx, ebx
134
                or   eax, ecx
135
136
                mov  ecx, dword ptr [edi + ecx*4]
137
                ror  eax, 8
138
                xor  ecx, edx
139
                or   eax, ecx
140
                ror  eax, 8
141
                mov  dword ptr [esi], eax
142
143
                // part 2
144
                mov  edx, dword ptr [esi + 4]
145
                mov  ecx, dword ptr [edi + ecx*4]
146
                xor  eax, eax
147
                xor  ecx, edx
148
                shr  edx, 8
149
                and  ecx, ebx
150
                or   eax, ecx
151
152
                mov  ecx, dword ptr [edi + ecx*4]
153
                shl  eax, 24
154
                xor  ecx, edx
155
                shr  edx, 8
156
                and  ecx, ebx
157
                or   eax, ecx
158
159
                mov  ecx, dword ptr [edi + ecx*4]
160
                ror  eax, 8
161
                xor  ecx, edx
162
                shr  edx, 8
163
                and  ecx, ebx
164
                or   eax, ecx
165
166
                mov  ecx, dword ptr [edi + ecx*4]
167
                ror  eax, 8
168
                xor  ecx, edx
169
                or   eax, ecx
170
                ror  eax, 8
171
                mov  dword ptr [esi + 4], eax
172
173
                // part 3
174
                mov  edx, dword ptr [esi + 8]
175
                mov  ecx, dword ptr [edi + ecx*4]
176
                xor  eax, eax
177
                xor  ecx, edx
178
                shr  edx, 8
179
                and  ecx, ebx
180
                or   eax, ecx
181
182
                mov  ecx, dword ptr [edi + ecx*4]
183
                shl  eax, 24
184
                xor  ecx, edx
185
                shr  edx, 8
186
                and  ecx, ebx
187
                or   eax, ecx
188
189
                mov  ecx, dword ptr [edi + ecx*4]
190
                ror  eax, 8
191
                xor  ecx, edx
192
                shr  edx, 8
193
                and  ecx, ebx
194
                or   eax, ecx
195
196
                mov  ecx, dword ptr [edi + ecx*4]
197
                ror  eax, 8
198
                xor  ecx, edx
199
                or   eax, ecx
200
                ror  eax, 8
201
                mov  dword ptr [esi + 8], eax
202
203
                // part 4
204
                mov  edx, dword ptr [esi + 12]
205
                mov  ecx, dword ptr [edi + ecx*4]
206
                xor  eax, eax
207
                xor  ecx, edx
208
                shr  edx, 8
209
                and  ecx, ebx
210
                or   eax, ecx
211
212
                mov  ecx, dword ptr [edi + ecx*4]
213
                shl  eax, 24
214
                xor  ecx, edx
215
                shr  edx, 8
216
                and  ecx, ebx
217
                or   eax, ecx
218
219
                mov  ecx, dword ptr [edi + ecx*4]
220
                ror  eax, 8
221
                xor  ecx, edx
222
                shr  edx, 8
223
                and  ecx, ebx
224
                or   eax, ecx
225
226
                mov  ecx, dword ptr [edi + ecx*4]
227
                ror  eax, 8
228
                xor  ecx, edx
229
                or   eax, ecx
230
                ror  eax, 8
231
                mov  dword ptr [esi + 12], eax
232
233
                // part 5
234
                mov  edx, dword ptr [esi + 16]
235
                mov  ecx, dword ptr [edi + ecx*4]
236
                xor  eax, eax
237
                xor  ecx, edx
238
                shr  edx, 8
239
                and  ecx, ebx
240
                or   eax, ecx
241
242
                mov  ecx, dword ptr [edi + ecx*4]
243
                shl  eax, 24
244
                xor  ecx, edx
245
                shr  edx, 8
246
                and  ecx, ebx
247
                or   eax, ecx
248
249
                mov  ecx, dword ptr [edi + ecx*4]
250
                ror  eax, 8
251
                xor  ecx, edx
252
                shr  edx, 8
253
                and  ecx, ebx
254
                or   eax, ecx
255
256
                mov  ecx, dword ptr [edi + ecx*4]
257
                ror  eax, 8
258
                xor  ecx, edx
259
                or   eax, ecx
260
                ror  eax, 8
261
                mov  dword ptr [esi + 16], eax
262
263
                // part 6
264
                mov  edx, dword ptr [esi + 20]
265
                mov  ecx, dword ptr [edi + ecx*4]
266
                xor  eax, eax
267
                xor  ecx, edx
268
                shr  edx, 8
269
                and  ecx, ebx
270
                or   eax, ecx
271
272
                mov  ecx, dword ptr [edi + ecx*4]
273
                shl  eax, 24
274
                xor  ecx, edx
275
                shr  edx, 8
276
                and  ecx, ebx
277
                or   eax, ecx
278
279
                mov  ecx, dword ptr [edi + ecx*4]
280
                ror  eax, 8
281
                xor  ecx, edx
282
                shr  edx, 8
283
                and  ecx, ebx
284
                or   eax, ecx
285
286
                mov  ecx, dword ptr [edi + ecx*4]
287
                ror  eax, 8
288
                xor  ecx, edx
289
                or   eax, ecx
290
                ror  eax, 8
291
                mov  dword ptr [esi + 20], eax
292
293
                // part 7
294
                mov  edx, dword ptr [esi + 24]
295
                mov  ecx, dword ptr [edi + ecx*4]
296
                xor  eax, eax
297
                xor  ecx, edx
298
                shr  edx, 8
299
                and  ecx, ebx
300
                or   eax, ecx
301
302
                mov  ecx, dword ptr [edi + ecx*4]
303
                shl  eax, 24
304
                xor  ecx, edx
305
                shr  edx, 8
306
                and  ecx, ebx
307
                or   eax, ecx
308
309
                mov  ecx, dword ptr [edi + ecx*4]
310
                ror  eax, 8
311
                xor  ecx, edx
312
                shr  edx, 8
313
                and  ecx, ebx
314
                or   eax, ecx
315
316
                mov  ecx, dword ptr [edi + ecx*4]
317
                ror  eax, 8
318
                xor  ecx, edx
319
                or   eax, ecx
320
                ror  eax, 8
321
                mov  dword ptr [esi + 24], eax
322
323
                // part 8
324
                mov  edx, dword ptr [esi + 28]
325
                mov  ecx, dword ptr [edi + ecx*4]
326
                xor  eax, eax
327
                xor  ecx, edx
328
                shr  edx, 8
329
                and  ecx, ebx
330
                or   eax, ecx
331
332
                mov  ecx, dword ptr [edi + ecx*4]
333
                shl  eax, 24
334
                xor  ecx, edx
335
                shr  edx, 8
336
                and  ecx, ebx
337
                or   eax, ecx
338
339
                mov  ecx, dword ptr [edi + ecx*4]
340
                ror  eax, 8
341
                xor  ecx, edx
342
                shr  edx, 8
343
                and  ecx, ebx
344
                or   eax, ecx
345
346
                mov  ecx, dword ptr [edi + ecx*4]
347
                ror  eax, 8
348
                xor  ecx, edx
349
                or   eax, ecx
350
                ror  eax, 8
351
                mov  dword ptr [esi + 28], eax
352
353
                // part 9
354
                mov  edx, dword ptr [esi + 32]
355
                mov  ecx, dword ptr [edi + ecx*4]
356
                xor  eax, eax
357
                xor  ecx, edx
358
                shr  edx, 8
359
                and  ecx, ebx
360
                or   eax, ecx
361
362
                mov  ecx, dword ptr [edi + ecx*4]
363
                shl  eax, 24
364
                xor  ecx, edx
365
                shr  edx, 8
366
                and  ecx, ebx
367
                or   eax, ecx
368
369
                mov  ecx, dword ptr [edi + ecx*4]
370
                ror  eax, 8
371
                xor  ecx, edx
372
                shr  edx, 8
373
                and  ecx, ebx
374
                or   eax, ecx
375
376
                mov  ecx, dword ptr [edi + ecx*4]
377
                ror  eax, 8
378
                xor  ecx, edx
379
                or   eax, ecx
380
                ror  eax, 8
381
                mov  dword ptr [esi + 32], eax
382
383
                // part 10
384
                mov  edx, dword ptr [esi + 36]
385
                mov  ecx, dword ptr [edi + ecx*4]
386
                xor  eax, eax
387
                xor  ecx, edx
388
                shr  edx, 8
389
                and  ecx, ebx
390
                or   eax, ecx
391
392
                mov  ecx, dword ptr [edi + ecx*4]
393
                shl  eax, 24
394
                xor  ecx, edx
395
                shr  edx, 8
396
                and  ecx, ebx
397
                or   eax, ecx
398
399
                mov  ecx, dword ptr [edi + ecx*4]
400
                ror  eax, 8
401
                xor  ecx, edx
402
                shr  edx, 8
403
                and  ecx, ebx
404
                or   eax, ecx
405
406
                mov  ecx, dword ptr [edi + ecx*4]
407
                ror  eax, 8
408
                xor  ecx, edx
409
                or   eax, ecx
410
                ror  eax, 8
411
                mov  dword ptr [esi + 36], eax
412
413
                // part 11
414
                mov  edx, dword ptr [esi + 40]
415
                mov  ecx, dword ptr [edi + ecx*4]
416
                xor  eax, eax
417
                xor  ecx, edx
418
                shr  edx, 8
419
                and  ecx, ebx
420
                or   eax, ecx
421
422
                mov  ecx, dword ptr [edi + ecx*4]
423
                shl  eax, 24
424
                xor  ecx, edx
425
                shr  edx, 8
426
                and  ecx, ebx
427
                or   eax, ecx
428
429
                mov  ecx, dword ptr [edi + ecx*4]
430
                ror  eax, 8
431
                xor  ecx, edx
432
                shr  edx, 8
433
                and  ecx, ebx
434
                or   eax, ecx
435
436
                mov  ecx, dword ptr [edi + ecx*4]
437
                ror  eax, 8
438
                xor  ecx, edx
439
                or   eax, ecx
440
                ror  eax, 8
441
                mov  dword ptr [esi + 40], eax
442
443
                // part 12
444
                mov  edx, dword ptr [esi + 44]
445
                mov  ecx, dword ptr [edi + ecx*4]
446
                xor  eax, eax
447
                xor  ecx, edx
448
                shr  edx, 8
449
                and  ecx, ebx
450
                or   eax, ecx
451
452
                mov  ecx, dword ptr [edi + ecx*4]
453
                shl  eax, 24
454
                xor  ecx, edx
455
                shr  edx, 8
456
                and  ecx, ebx
457
                or   eax, ecx
458
459
                mov  ecx, dword ptr [edi + ecx*4]
460
                ror  eax, 8
461
                xor  ecx, edx
462
                shr  edx, 8
463
                and  ecx, ebx
464
                or   eax, ecx
465
466
                mov  ecx, dword ptr [edi + ecx*4]
467
                ror  eax, 8
468
                xor  ecx, edx
469
                or   eax, ecx
470
                ror  eax, 8
471
                mov  dword ptr [esi + 44], eax
472
473
                add  ecx, ebp
474
                inc  ebp
475
                and  ecx, ebx
476
                cmp  ebp, 18
477
                jnz  @roundsloop
478
479
                pop  ebp
480
                pop  edi
481
                pop  esi
482
                pop  ebx
483
end;
484
{$ENDIF}
485
486
{$IFDEF THash_MD4_asm}
487
procedure THash_MD4.DoTransform(Buffer: PUInt32Array);
488
asm
489
                push    ebx
490
                push    esi
491
                push    edi
492
                lea     edi, [eax].THash_MD4.FDigest  // let edi points to A,B ..
493
                mov     esi, edx                      // let esi points to Buffer
494
                push    ebp
495
496
                mov     eax, [edi]
497
                mov     ebx, [edi+4]
498
                push    edi
499
                mov     ecx, [edi+8]
500
                mov     edx, [edi+0Ch]
501
                mov     edi, ecx
502
                xor     edi, edx
503
                and     edi, ebx
504
                mov     ebp, [esi]
505
                xor     edi, edx
506
                add     eax, ebp
507
                mov     ebp, ebx
508
                add     eax, edi
509
                rol     eax, 3
510
                xor     ebp, ecx
511
                mov     edi, [esi+4]
512
                and     ebp, eax
513
                add     edx, edi
514
                xor     ebp, ecx
515
                mov     edi, eax
516
                add     edx, ebp
517
                xor     edi, ebx
518
                rol     edx, 7
519
                and     edi, edx
520
                mov     ebp, [esi+8]
521
                xor     edi, ebx
522
                add     ecx, ebp
523
                mov     ebp, edx
524
                add     ecx, edi
525
                rol     ecx, 0Bh
526
                xor     ebp, eax
527
                mov     edi, [esi+0Ch]
528
                and     ebp, ecx
529
                add     ebx, edi
530
                xor     ebp, eax
531
                mov     edi, ecx
532
                add     ebx, ebp
533
                xor     edi, edx
534
                ror     ebx, 0Dh
535
                and     edi, ebx
536
                mov     ebp, [esi+10h]
537
                xor     edi, edx
538
                add     eax, ebp
539
                mov     ebp, ebx
540
                add     eax, edi
541
                rol     eax, 3
542
                xor     ebp, ecx
543
                mov     edi, [esi+14h]
544
                and     ebp, eax
545
                add     edx, edi
546
                xor     ebp, ecx
547
                mov     edi, eax
548
                add     edx, ebp
549
                xor     edi, ebx
550
                rol     edx, 7
551
                and     edi, edx
552
                mov     ebp, [esi+18h]
553
                xor     edi, ebx
554
                add     ecx, ebp
555
                mov     ebp, edx
556
                add     ecx, edi
557
                rol     ecx, 0Bh
558
                xor     ebp, eax
559
                mov     edi, [esi+1Ch]
560
                and     ebp, ecx
561
                add     ebx, edi
562
                xor     ebp, eax
563
                mov     edi, ecx
564
                add     ebx, ebp
565
                xor     edi, edx
566
                ror     ebx, 0Dh
567
                and     edi, ebx
568
                mov     ebp, [esi+20h]
569
                xor     edi, edx
570
                add     eax, ebp
571
                mov     ebp, ebx
572
                add     eax, edi
573
                rol     eax, 3
574
                xor     ebp, ecx
575
                mov     edi, [esi+24h]
576
                and     ebp, eax
577
                add     edx, edi
578
                xor     ebp, ecx
579
                mov     edi, eax
580
                add     edx, ebp
581
                xor     edi, ebx
582
                rol     edx, 7
583
                and     edi, edx
584
                mov     ebp, [esi+28h]
585
                xor     edi, ebx
586
                add     ecx, ebp
587
                mov     ebp, edx
588
                add     ecx, edi
589
                rol     ecx, 0Bh
590
                xor     ebp, eax
591
                mov     edi, [esi+2Ch]
592
                and     ebp, ecx
593
                add     ebx, edi
594
                xor     ebp, eax
595
                mov     edi, ecx
596
                add     ebx, ebp
597
                xor     edi, edx
598
                ror     ebx, 0Dh
599
                and     edi, ebx
600
                mov     ebp, [esi+30h]
601
                xor     edi, edx
602
                add     eax, ebp
603
                mov     ebp, ebx
604
                add     eax, edi
605
                rol     eax, 3
606
                xor     ebp, ecx
607
                mov     edi, [esi+34h]
608
                and     ebp, eax
609
                add     edx, edi
610
                xor     ebp, ecx
611
                mov     edi, eax
612
                add     edx, ebp
613
                xor     edi, ebx
614
                rol     edx, 7
615
                and     edi, edx
616
                mov     ebp, [esi+38h]
617
                xor     edi, ebx
618
                add     ecx, ebp
619
                mov     ebp, edx
620
                add     ecx, edi
621
                rol     ecx, 0Bh
622
                xor     ebp, eax
623
                mov     edi, [esi+3Ch]
624
                and     ebp, ecx
625
                add     ebx, edi
626
                xor     ebp, eax
627
                mov     edi, edx
628
                add     ebx, ebp
629
                mov     ebp, edx
630
                ror     ebx, 0Dh
631
                or      edi, ecx
632
                and     ebp, ecx
633
                and     edi, ebx
634
                add     eax, [esi]
635
                or      edi, ebp
636
                mov     ebp, ecx
637
                lea     eax, [eax+edi+5A827999h]
638
                mov     edi, ecx
639
                rol     eax, 3
640
                or      edi, ebx
641
                and     ebp, ebx
642
                and     edi, eax
643
                add     edx, [esi+10h]
644
                or      edi, ebp
645
                mov     ebp, ebx
646
                lea     edx, [edx+edi+5A827999h]
647
                mov     edi, ebx
648
                rol     edx, 5
649
                or      edi, eax
650
                and     ebp, eax
651
                and     edi, edx
652
                add     ecx, [esi+20h]
653
                or      edi, ebp
654
                mov     ebp, eax
655
                lea     ecx, [ecx+edi+5A827999h]
656
                mov     edi, eax
657
                rol     ecx, 9
658
                or      edi, edx
659
                and     ebp, edx
660
                and     edi, ecx
661
                add     ebx, [esi+30h]
662
                or      edi, ebp
663
                mov     ebp, edx
664
                lea     ebx, [ebx+edi+5A827999h]
665
                mov     edi, edx
666
                rol     ebx, 0Dh
667
                or      edi, ecx
668
                and     ebp, ecx
669
                and     edi, ebx
670
                add     eax, [esi+4]
671
                or      edi, ebp
672
                mov     ebp, ecx
673
                lea     eax, [eax+edi+5A827999h]
674
                mov     edi, ecx
675
                rol     eax, 3
676
                or      edi, ebx
677
                and     ebp, ebx
678
                and     edi, eax
679
                add     edx, [esi+14h]
680
                or      edi, ebp
681
                mov     ebp, ebx
682
                lea     edx, [edx+edi+5A827999h]
683
                mov     edi, ebx
684
                rol     edx, 5
685
                or      edi, eax
686
                and     ebp, eax
687
                and     edi, edx
688
                add     ecx, [esi+24h]
689
                or      edi, ebp
690
                mov     ebp, eax
691
                lea     ecx, [ecx+edi+5A827999h]
692
                mov     edi, eax
693
                rol     ecx, 9
694
                or      edi, edx
695
                and     ebp, edx
696
                and     edi, ecx
697
                add     ebx, [esi+34h]
698
                or      edi, ebp
699
                mov     ebp, edx
700
                lea     ebx, [ebx+edi+5A827999h]
701
                mov     edi, edx
702
                rol     ebx, 0Dh
703
                or      edi, ecx
704
                and     ebp, ecx
705
                and     edi, ebx
706
                add     eax, [esi+8]
707
                or      edi, ebp
708
                mov     ebp, ecx
709
                lea     eax, [eax+edi+5A827999h]
710
                mov     edi, ecx
711
                rol     eax, 3
712
                or      edi, ebx
713
                and     ebp, ebx
714
                and     edi, eax
715
                add     edx, [esi+18h]
716
                or      edi, ebp
717
                mov     ebp, ebx
718
                lea     edx, [edx+edi+5A827999h]
719
                mov     edi, ebx
720
                rol     edx, 5
721
                or      edi, eax
722
                and     ebp, eax
723
                and     edi, edx
724
                add     ecx, [esi+28h]
725
                or      edi, ebp
726
                mov     ebp, eax
727
                lea     ecx, [ecx+edi+5A827999h]
728
                mov     edi, eax
729
                rol     ecx, 9
730
                or      edi, edx
731
                and     ebp, edx
732
                and     edi, ecx
733
                add     ebx, [esi+38h]
734
                or      edi, ebp
735
                mov     ebp, edx
736
                lea     ebx, [ebx+edi+5A827999h]
737
                mov     edi, edx
738
                rol     ebx, 0Dh
739
                or      edi, ecx
740
                and     ebp, ecx
741
                and     edi, ebx
742
                add     eax, [esi+0Ch]
743
                or      edi, ebp
744
                mov     ebp, ecx
745
                lea     eax, [eax+edi+5A827999h]
746
                mov     edi, ecx
747
                rol     eax, 3
748
                or      edi, ebx
749
                and     ebp, ebx
750
                and     edi, eax
751
                add     edx, [esi+1Ch]
752
                or      edi, ebp
753
                mov     ebp, ebx
754
                lea     edx, [edx+edi+5A827999h]
755
                mov     edi, ebx
756
                rol     edx, 5
757
                or      edi, eax
758
                and     ebp, eax
759
                and     edi, edx
760
                add     ecx, [esi+2Ch]
761
                or      edi, ebp
762
                mov     ebp, eax
763
                lea     ecx, [ecx+edi+5A827999h]
764
                mov     edi, eax
765
                rol     ecx, 9
766
                or      edi, edx
767
                and     ebp, edx
768
                and     edi, ecx
769
                add     ebx, [esi+3Ch]
770
                or      edi, ebp
771
                mov     ebp, edx
772
                lea     ebx, [ebx+edi+5A827999h]
773
                mov     edi, edx
774
                rol     ebx, 0Dh
775
                xor     edi, ecx
776
                mov     ebp, [esi]
777
                xor     edi, ebx
778
                add     eax, ebp
779
                lea     eax, [eax+edi+6ED9EBA1h]
780
                mov     ebp, ecx
781
                rol     eax, 3
782
                xor     ebp, ebx
783
                mov     edi, [esi+20h]
784
                xor     ebp, eax
785
                add     edx, edi
786
                lea     edx, [edx+ebp+6ED9EBA1h]
787
                mov     edi, ebx
788
                rol     edx, 9
789
                xor     edi, eax
790
                mov     ebp, [esi+10h]
791
                xor     edi, edx
792
                add     ecx, ebp
793
                lea     ecx, [ecx+edi+6ED9EBA1h]
794
                mov     ebp, eax
795
                rol     ecx, 0Bh
796
                xor     ebp, edx
797
                mov     edi, [esi+30h]
798
                xor     ebp, ecx
799
                add     ebx, edi
800
                lea     ebx, [ebx+ebp+6ED9EBA1h]
801
                mov     edi, edx
802
                rol     ebx, 0Fh
803
                xor     edi, ecx
804
                mov     ebp, [esi+8]
805
                xor     edi, ebx
806
                add     eax, ebp
807
                lea     eax, [eax+edi+6ED9EBA1h]
808
                mov     ebp, ecx
809
                rol     eax, 3
810
                xor     ebp, ebx
811
                mov     edi, [esi+28h]
812
                xor     ebp, eax
813
                add     edx, edi
814
                lea     edx, [edx+ebp+6ED9EBA1h]
815
                mov     edi, ebx
816
                rol     edx, 9
817
                xor     edi, eax
818
                mov     ebp, [esi+18h]
819
                xor     edi, edx
820
                add     ecx, ebp
821
                lea     ecx, [ecx+edi+6ED9EBA1h]
822
                mov     ebp, eax
823
                rol     ecx, 0Bh
824
                xor     ebp, edx
825
                mov     edi, [esi+38h]
826
                xor     ebp, ecx
827
                add     ebx, edi
828
                lea     ebx, [ebx+ebp+6ED9EBA1h]
829
                mov     edi, edx
830
                rol     ebx, 0Fh
831
                xor     edi, ecx
832
                mov     ebp, [esi+4]
833
                xor     edi, ebx
834
                add     eax, ebp
835
                lea     eax, [eax+edi+6ED9EBA1h]
836
                mov     ebp, ecx
837
                rol     eax, 3
838
                xor     ebp, ebx
839
                mov     edi, [esi+24h]
840
                xor     ebp, eax
841
                add     edx, edi
842
                lea     edx, [edx+ebp+6ED9EBA1h]
843
                mov     edi, ebx
844
                rol     edx, 9
845
                xor     edi, eax
846
                mov     ebp, [esi+14h]
847
                xor     edi, edx
848
                add     ecx, ebp
849
                lea     ecx, [ecx+edi+6ED9EBA1h]
850
                mov     ebp, eax
851
                rol     ecx, 0Bh
852
                xor     ebp, edx
853
                mov     edi, [esi+34h]
854
                xor     ebp, ecx
855
                add     ebx, edi
856
                lea     ebx, [ebx+ebp+6ED9EBA1h]
857
                mov     edi, edx
858
                rol     ebx, 0Fh
859
                xor     edi, ecx
860
                mov     ebp, [esi+0Ch]
861
                xor     edi, ebx
862
                add     eax, ebp
863
                lea     eax, [eax+edi+6ED9EBA1h]
864
                mov     ebp, ecx
865
                rol     eax, 3
866
                xor     ebp, ebx
867
                mov     edi, [esi+2Ch]
868
                xor     ebp, eax
869
                add     edx, edi
870
                lea     edx, [edx+ebp+6ED9EBA1h]
871
                mov     edi, ebx
872
                rol     edx, 9
873
                xor     edi, eax
874
                mov     ebp, [esi+1Ch]
875
                xor     edi, edx
876
                add     ecx, ebp
877
                lea     ecx, [ecx+edi+6ED9EBA1h]
878
                mov     ebp, eax
879
                rol     ecx, 0Bh
880
                xor     ebp, edx
881
                mov     edi, [esi+3Ch]
882
                xor     ebp, ecx
883
                add     ebx, edi
884
                lea     ebx, [ebx+ebp+6ED9EBA1h]
885
                rol     ebx, 0Fh
886
                pop     edi
887
                add     [edi], eax
888
                add     [edi+4], ebx
889
                add     [edi+8], ecx
890
                add     [edi+0Ch], edx
891
892
                pop     ebp
893
                pop     edi
894
                pop     esi
895
                pop     ebx
896
end;
897
{$ENDIF}
898
899
{$IFDEF THash_MD5_asm}
900
procedure THash_MD5.DoTransform(Buffer: PUInt32Array);
901
asm
902
                push    ebx
903
                push    esi
904
                push    edi
905
                lea     edi, [eax].THash_MD5.FDigest   // let edi points to A,B ..
906
                mov     esi, edx                       // let esi points to Buffer
907
                push    ebp
908
                mov     eax, [edi]
909
                mov     ebx, [edi+4]
910
                push    edi
911
                mov     ecx, [edi+8]
912
                mov     edx, [edi+0Ch]
913
                mov     edi, ecx
914
                mov     ebp, [esi]
915
                xor     edi, edx
916
                lea     eax, [eax+ebp-28955B88h]
917
                and     edi, ebx
918
                mov     ebp, [esi+4]
919
                xor     edi, edx
920
                add     eax, edi
921
                mov     edi, ebx
922
                rol     eax, 7
923
                xor     edi, ecx
924
                add     eax, ebx
925
                lea     edx, [edx+ebp-173848AAh]
926
                and     edi, eax
927
                mov     ebp, [esi+8]
928
                xor     edi, ecx
929
                add     edx, edi
930
                mov     edi, eax
931
                rol     edx, 0Ch
932
                xor     edi, ebx
933
                add     edx, eax
934
                lea     ecx, [ecx+ebp+242070DBh]
935
                and     edi, edx
936
                mov     ebp, [esi+0Ch]
937
                xor     edi, ebx
938
                add     ecx, edi
939
                mov     edi, edx
940
                ror     ecx, 0Fh
941
                xor     edi, eax
942
                add     ecx, edx
943
                lea     ebx, [ebx+ebp-3E423112h]
944
                and     edi, ecx
945
                mov     ebp, [esi+10h]
946
                xor     edi, eax
947
                add     ebx, edi
948
                mov     edi, ecx
949
                ror     ebx, 0Ah
950
                xor     edi, edx
951
                add     ebx, ecx
952
                lea     eax, [eax+ebp-0A83F051h]
953
                and     edi, ebx
954
                mov     ebp, [esi+14h]
955
                xor     edi, edx
956
                add     eax, edi
957
                mov     edi, ebx
958
                rol     eax, 7
959
                xor     edi, ecx
960
                add     eax, ebx
961
                lea     edx, [edx+ebp+4787C62Ah]
962
                and     edi, eax
963
                mov     ebp, [esi+18h]
964
                xor     edi, ecx
965
                add     edx, edi
966
                mov     edi, eax
967
                rol     edx, 0Ch
968
                xor     edi, ebx
969
                add     edx, eax
970
                lea     ecx, [ecx+ebp-57CFB9EDh]
971
                and     edi, edx
972
                mov     ebp, [esi+1Ch]
973
                xor     edi, ebx
974
                add     ecx, edi
975
                mov     edi, edx
976
                ror     ecx, 0Fh
977
                xor     edi, eax
978
                add     ecx, edx
979
                lea     ebx, [ebx+ebp-2B96AFFh]
980
                and     edi, ecx
981
                mov     ebp, [esi+20h]
982
                xor     edi, eax
983
                add     ebx, edi
984
                mov     edi, ecx
985
                ror     ebx, 0Ah
986
                xor     edi, edx
987
                add     ebx, ecx
988
                lea     eax, [eax+ebp+698098D8h]
989
                and     edi, ebx
990
                mov     ebp, [esi+24h]
991
                xor     edi, edx
992
                add     eax, edi
993
                mov     edi, ebx
994
                rol     eax, 7
995
                xor     edi, ecx
996
                add     eax, ebx
997
                lea     edx, [edx+ebp-74BB0851h]
998
                and     edi, eax
999
                mov     ebp, [esi+28h]
1000
                xor     edi, ecx
1001
                add     edx, edi
1002
                mov     edi, eax
1003
                rol     edx, 0Ch
1004
                xor     edi, ebx
1005
                add     edx, eax
1006
                lea     ecx, [ecx+ebp-0A44Fh]
1007
                and     edi, edx
1008
                mov     ebp, [esi+2Ch]
1009
                xor     edi, ebx
1010
                add     ecx, edi
1011
                mov     edi, edx
1012
                ror     ecx, 0Fh
1013
                xor     edi, eax
1014
                add     ecx, edx
1015
                lea     ebx, [ebx+ebp-76A32842h]
1016
                and     edi, ecx
1017
                mov     ebp, [esi+30h]
1018
                xor     edi, eax
1019
                add     ebx, edi
1020
                mov     edi, ecx
1021
                ror     ebx, 0Ah
1022
                xor     edi, edx
1023
                add     ebx, ecx
1024
                lea     eax, [eax+ebp+6B901122h]
1025
                and     edi, ebx
1026
                mov     ebp, [esi+34h]
1027
                xor     edi, edx
1028
                add     eax, edi
1029
                mov     edi, ebx
1030
                rol     eax, 7
1031
                xor     edi, ecx
1032
                add     eax, ebx
1033
                lea     edx, [edx+ebp-2678E6Dh]
1034
                and     edi, eax
1035
                mov     ebp, [esi+38h]
1036
                xor     edi, ecx
1037
                add     edx, edi
1038
                mov     edi, eax
1039
                rol     edx, 0Ch
1040
                xor     edi, ebx
1041
                add     edx, eax
1042
                lea     ecx, [ecx+ebp-5986BC72h]
1043
                and     edi, edx
1044
                mov     ebp, [esi+3Ch]
1045
                xor     edi, ebx
1046
                add     ecx, edi
1047
                mov     edi, edx
1048
                ror     ecx, 0Fh
1049
                xor     edi, eax
1050
                add     ecx, edx
1051
                lea     ebx, [ebx+ebp+49B40821h]
1052
                and     edi, ecx
1053
                mov     ebp, [esi+4]
1054
                xor     edi, eax
1055
                add     ebx, edi
1056
                mov     edi, ecx
1057
                ror     ebx, 0Ah
1058
                xor     edi, edx
1059
                add     ebx, ecx
1060
                mov     edi, ecx
1061
                xor     edi, ebx
1062
                lea     eax, [eax+ebp-9E1DA9Eh]
1063
                and     edi, edx
1064
                mov     ebp, [esi+18h]
1065
                xor     edi, ecx
1066
                add     eax, edi
1067
                mov     edi, ebx
1068
                rol     eax, 5
1069
                add     eax, ebx
1070
                xor     edi, eax
1071
                lea     edx, [edx+ebp-3FBF4CC0h]
1072
                and     edi, ecx
1073
                mov     ebp, [esi+2Ch]
1074
                xor     edi, ebx
1075
                add     edx, edi
1076
                mov     edi, eax
1077
                rol     edx, 9
1078
                add     edx, eax
1079
                xor     edi, edx
1080
                lea     ecx, [ecx+ebp+265E5A51h]
1081
                and     edi, ebx
1082
                mov     ebp, [esi]
1083
                xor     edi, eax
1084
                add     ecx, edi
1085
                mov     edi, edx
1086
                rol     ecx, 0Eh
1087
                add     ecx, edx
1088
                xor     edi, ecx
1089
                lea     ebx, [ebx+ebp-16493856h]
1090
                and     edi, eax
1091
                mov     ebp, [esi+14h]
1092
                xor     edi, edx
1093
                add     ebx, edi
1094
                mov     edi, ecx
1095
                ror     ebx, 0Ch
1096
                add     ebx, ecx
1097
                xor     edi, ebx
1098
                lea     eax, [eax+ebp-29D0EFA3h]
1099
                and     edi, edx
1100
                mov     ebp, [esi+28h]
1101
                xor     edi, ecx
1102
                add     eax, edi
1103
                mov     edi, ebx
1104
                rol     eax, 5
1105
                add     eax, ebx
1106
                xor     edi, eax
1107
                lea     edx, [edx+ebp+2441453h]
1108
                and     edi, ecx
1109
                mov     ebp, [esi+3Ch]
1110
                xor     edi, ebx
1111
                add     edx, edi
1112
                mov     edi, eax
1113
                rol     edx, 9
1114
                add     edx, eax
1115
                xor     edi, edx
1116
                lea     ecx, [ecx+ebp-275E197Fh]
1117
                and     edi, ebx
1118
                mov     ebp, [esi+10h]
1119
                xor     edi, eax
1120
                add     ecx, edi
1121
                mov     edi, edx
1122
                rol     ecx, 0Eh
1123
                add     ecx, edx
1124
                xor     edi, ecx
1125
                lea     ebx, [ebx+ebp-182C0438h]
1126
                and     edi, eax
1127
                mov     ebp, [esi+24h]
1128
                xor     edi, edx
1129
                add     ebx, edi
1130
                mov     edi, ecx
1131
                ror     ebx, 0Ch
1132
                add     ebx, ecx
1133
                xor     edi, ebx
1134
                lea     eax, [eax+ebp+21E1CDE6h]
1135
                and     edi, edx
1136
                mov     ebp, [esi+38h]
1137
                xor     edi, ecx
1138
                add     eax, edi
1139
                mov     edi, ebx
1140
                rol     eax, 5
1141
                add     eax, ebx
1142
                xor     edi, eax
1143
                lea     edx, [edx+ebp-3CC8F82Ah]
1144
                and     edi, ecx
1145
                mov     ebp, [esi+0Ch]
1146
                xor     edi, ebx
1147
                add     edx, edi
1148
                mov     edi, eax
1149
                rol     edx, 9
1150
                add     edx, eax
1151
                xor     edi, edx
1152
                lea     ecx, [ecx+ebp-0B2AF279h]
1153
                and     edi, ebx
1154
                mov     ebp, [esi+20h]
1155
                xor     edi, eax
1156
                add     ecx, edi
1157
                mov     edi, edx
1158
                rol     ecx, 0Eh
1159
                add     ecx, edx
1160
                xor     edi, ecx
1161
                lea     ebx, [ebx+ebp+455A14EDh]
1162
                and     edi, eax
1163
                mov     ebp, [esi+34h]
1164
                xor     edi, edx
1165
                add     ebx, edi
1166
                mov     edi, ecx
1167
                ror     ebx, 0Ch
1168
                add     ebx, ecx
1169
                xor     edi, ebx
1170
                lea     eax, [eax+ebp-561C16FBh]
1171
                and     edi, edx
1172
                mov     ebp, [esi+8]
1173
                xor     edi, ecx
1174
                add     eax, edi
1175
                mov     edi, ebx
1176
                rol     eax, 5
1177
                add     eax, ebx
1178
                xor     edi, eax
1179
                lea     edx, [edx+ebp-3105C08h]
1180
                and     edi, ecx
1181
                mov     ebp, [esi+1Ch]
1182
                xor     edi, ebx
1183
                add     edx, edi
1184
                mov     edi, eax
1185
                rol     edx, 9
1186
                add     edx, eax
1187
                xor     edi, edx
1188
                lea     ecx, [ecx+ebp+676F02D9h]
1189
                and     edi, ebx
1190
                mov     ebp, [esi+30h]
1191
                xor     edi, eax
1192
                add     ecx, edi
1193
                mov     edi, edx
1194
                rol     ecx, 0Eh
1195
                add     ecx, edx
1196
                xor     edi, ecx
1197
                lea     ebx, [ebx+ebp-72D5B376h]
1198
                and     edi, eax
1199
                mov     ebp, [esi+14h]
1200
                xor     edi, edx
1201
                add     ebx, edi
1202
                mov     edi, ecx
1203
                ror     ebx, 0Ch
1204
                add     ebx, ecx
1205
                xor     edi, edx
1206
                lea     eax, [eax+ebp-5C6BEh]
1207
                xor     edi, ebx
1208
                mov     ebp, [esi+20h]
1209
                add     eax, edi
1210
                rol     eax, 4
1211
                lea     edx, [edx+ebp-788E097Fh]
1212
                mov     edi, ebx
1213
                add     eax, ebx
1214
                xor     edi, ecx
1215
                mov     ebp, [esi+2Ch]
1216
                xor     edi, eax
1217
                add     edx, edi
1218
                mov     edi, eax
1219
                rol     edx, 0Bh
1220
                add     edx, eax
1221
                xor     edi, ebx
1222
                lea     ecx, [ecx+ebp+6D9D6122h]
1223
                xor     edi, edx
1224
                mov     ebp, [esi+38h]
1225
                add     ecx, edi
1226
                rol     ecx, 10h
1227
                lea     ebx, [ebx+ebp-21AC7F4h]
1228
                mov     edi, edx
1229
                add     ecx, edx
1230
                xor     edi, eax
1231
                mov     ebp, [esi+4]
1232
                xor     edi, ecx
1233
                add     ebx, edi
1234
                mov     edi, ecx
1235
                ror     ebx, 9
1236
                add     ebx, ecx
1237
                xor     edi, edx
1238
                lea     eax, [eax+ebp-5B4115BCh]
1239
                xor     edi, ebx
1240
                mov     ebp, [esi+10h]
1241
                add     eax, edi
1242
                rol     eax, 4
1243
                lea     edx, [edx+ebp+4BDECFA9h]
1244
                mov     edi, ebx
1245
                add     eax, ebx
1246
                xor     edi, ecx
1247
                mov     ebp, [esi+1Ch]
1248
                xor     edi, eax
1249
                add     edx, edi
1250
                mov     edi, eax
1251
                rol     edx, 0Bh
1252
                add     edx, eax
1253
                xor     edi, ebx
1254
                lea     ecx, [ecx+ebp-944B4A0h]
1255
                xor     edi, edx
1256
                mov     ebp, [esi+28h]
1257
                add     ecx, edi
1258
                rol     ecx, 10h
1259
                lea     ebx, [ebx+ebp-41404390h]
1260
                mov     edi, edx
1261
                add     ecx, edx
1262
                xor     edi, eax
1263
                mov     ebp, [esi+34h]
1264
                xor     edi, ecx
1265
                add     ebx, edi
1266
                mov     edi, ecx
1267
                ror     ebx, 9
1268
                add     ebx, ecx
1269
                xor     edi, edx
1270
                lea     eax, [eax+ebp+289B7EC6h]
1271
                xor     edi, ebx
1272
                mov     ebp, [esi]
1273
                add     eax, edi
1274
                rol     eax, 4
1275
                lea     edx, [edx+ebp-155ED806h]
1276
                mov     edi, ebx
1277
                add     eax, ebx
1278
                xor     edi, ecx
1279
                mov     ebp, [esi+0Ch]
1280
                xor     edi, eax
1281
                add     edx, edi
1282
                mov     edi, eax
1283
                rol     edx, 0Bh
1284
                add     edx, eax
1285
                xor     edi, ebx
1286
                lea     ecx, [ecx+ebp-2B10CF7Bh]
1287
                xor     edi, edx
1288
                mov     ebp, [esi+18h]
1289
                add     ecx, edi
1290
                rol     ecx, 10h
1291
                lea     ebx, [ebx+ebp+4881D05h]
1292
                mov     edi, edx
1293
                add     ecx, edx
1294
                xor     edi, eax
1295
                mov     ebp, [esi+24h]
1296
                xor     edi, ecx
1297
                add     ebx, edi
1298
                mov     edi, ecx
1299
                ror     ebx, 9
1300
                add     ebx, ecx
1301
                xor     edi, edx
1302
                lea     eax, [eax+ebp-262B2FC7h]
1303
                xor     edi, ebx
1304
                mov     ebp, [esi+30h]
1305
                add     eax, edi
1306
                rol     eax, 4
1307
                lea     edx, [edx+ebp-1924661Bh]
1308
                mov     edi, ebx
1309
                add     eax, ebx
1310
                xor     edi, ecx
1311
                mov     ebp, [esi+3Ch]
1312
                xor     edi, eax
1313
                add     edx, edi
1314
                mov     edi, eax
1315
                rol     edx, 0Bh
1316
                add     edx, eax
1317
                xor     edi, ebx
1318
                lea     ecx, [ecx+ebp+1FA27CF8h]
1319
                xor     edi, edx
1320
                mov     ebp, [esi+8]
1321
                add     ecx, edi
1322
                rol     ecx, 10h
1323
                lea     ebx, [ebx+ebp-3B53A99Bh]
1324
                mov     edi, edx
1325
                add     ecx, edx
1326
                xor     edi, eax
1327
                mov     ebp, [esi]
1328
                xor     edi, ecx
1329
                add     ebx, edi
1330
                mov     edi, edx
1331
                ror     ebx, 9
1332
                add     ebx, ecx
1333
                xor     edi, 0FFFFFFFFh
1334
                lea     eax, [eax+ebp-0BD6DDBCh]
1335
                or      edi, ebx
1336
                mov     ebp, [esi+1Ch]
1337
                xor     edi, ecx
1338
                add     eax, edi
1339
                mov     edi, ecx
1340
                rol     eax, 6
1341
                add     eax, ebx
1342
                xor     edi, 0FFFFFFFFh
1343
                lea     edx, [edx+ebp+432AFF97h]
1344
                or      edi, eax
1345
                mov     ebp, [esi+38h]
1346
                xor     edi, ebx
1347
                add     edx, edi
1348
                mov     edi, ebx
1349
                rol     edx, 0Ah
1350
                add     edx, eax
1351
                xor     edi, 0FFFFFFFFh
1352
                lea     ecx, [ecx+ebp-546BDC59h]
1353
                or      edi, edx
1354
                mov     ebp, [esi+14h]
1355
                xor     edi, eax
1356
                add     ecx, edi
1357
                mov     edi, eax
1358
                rol     ecx, 0Fh
1359
                add     ecx, edx
1360
                xor     edi, 0FFFFFFFFh
1361
                lea     ebx, [ebx+ebp-36C5FC7h]
1362
                or      edi, ecx
1363
                mov     ebp, [esi+30h]
1364
                xor     edi, edx
1365
                add     ebx, edi
1366
                mov     edi, edx
1367
                ror     ebx, 0Bh
1368
                add     ebx, ecx
1369
                xor     edi, 0FFFFFFFFh
1370
                lea     eax, [eax+ebp+655B59C3h]
1371
                or      edi, ebx
1372
                mov     ebp, [esi+0Ch]
1373
                xor     edi, ecx
1374
                add     eax, edi
1375
                mov     edi, ecx
1376
                rol     eax, 6
1377
                add     eax, ebx
1378
                xor     edi, 0FFFFFFFFh
1379
                lea     edx, [edx+ebp-70F3336Eh]
1380
                or      edi, eax
1381
                mov     ebp, [esi+28h]
1382
                xor     edi, ebx
1383
                add     edx, edi
1384
                mov     edi, ebx
1385
                rol     edx, 0Ah
1386
                add     edx, eax
1387
                xor     edi, 0FFFFFFFFh
1388
                lea     ecx, [ecx+ebp-100B83h]
1389
                or      edi, edx
1390
                mov     ebp, [esi+4]
1391
                xor     edi, eax
1392
                add     ecx, edi
1393
                mov     edi, eax
1394
                rol     ecx, 0Fh
1395
                add     ecx, edx
1396
                xor     edi, 0FFFFFFFFh
1397
                lea     ebx, [ebx+ebp-7A7BA22Fh]
1398
                or      edi, ecx
1399
                mov     ebp, [esi+20h]
1400
                xor     edi, edx
1401
                add     ebx, edi
1402
                mov     edi, edx
1403
                ror     ebx, 0Bh
1404
                add     ebx, ecx
1405
                xor     edi, 0FFFFFFFFh
1406
                lea     eax, [eax+ebp+6FA87E4Fh]
1407
                or      edi, ebx
1408
                mov     ebp, [esi+3Ch]
1409
                xor     edi, ecx
1410
                add     eax, edi
1411
                mov     edi, ecx
1412
                rol     eax, 6
1413
                add     eax, ebx
1414
                xor     edi, 0FFFFFFFFh
1415
                lea     edx, [edx+ebp-1D31920h]
1416
                or      edi, eax
1417
                mov     ebp, [esi+18h]
1418
                xor     edi, ebx
1419
                add     edx, edi
1420
                mov     edi, ebx
1421
                rol     edx, 0Ah
1422
                add     edx, eax
1423
                xor     edi, 0FFFFFFFFh
1424
                lea     ecx, [ecx+ebp-5CFEBCECh]
1425
                or      edi, edx
1426
                mov     ebp, [esi+34h]
1427
                xor     edi, eax
1428
                add     ecx, edi
1429
                mov     edi, eax
1430
                rol     ecx, 0Fh
1431
                add     ecx, edx
1432
                xor     edi, 0FFFFFFFFh
1433
                lea     ebx, [ebx+ebp+4E0811A1h]
1434
                or      edi, ecx
1435
                mov     ebp, [esi+10h]
1436
                xor     edi, edx
1437
                add     ebx, edi
1438
                mov     edi, edx
1439
                ror     ebx, 0Bh
1440
                add     ebx, ecx
1441
                xor     edi, 0FFFFFFFFh
1442
                lea     eax, [eax+ebp-8AC817Eh]
1443
                or      edi, ebx
1444
                mov     ebp, [esi+2Ch]
1445
                xor     edi, ecx
1446
                add     eax, edi
1447
                mov     edi, ecx
1448
                rol     eax, 6
1449
                add     eax, ebx
1450
                xor     edi, 0FFFFFFFFh
1451
                lea     edx, [edx+ebp-42C50DCBh]
1452
                or      edi, eax
1453
                mov     ebp, [esi+8]
1454
                xor     edi, ebx
1455
                add     edx, edi
1456
                mov     edi, ebx
1457
                rol     edx, 0Ah
1458
                add     edx, eax
1459
                xor     edi, 0FFFFFFFFh
1460
                lea     ecx, [ecx+ebp+2AD7D2BBh]
1461
                or      edi, edx
1462
                mov     ebp, [esi+24h]
1463
                xor     edi, eax
1464
                add     ecx, edi
1465
                mov     edi, eax
1466
                rol     ecx, 0Fh
1467
                add     ecx, edx
1468
                xor     edi, 0FFFFFFFFh
1469
                lea     ebx, [ebx+ebp-14792C6Fh]
1470
                or      edi, ecx
1471
                xor     edi, edx
1472
                add     ebx, edi
1473
                ror     ebx, 0Bh
1474
                add     ebx, ecx
1475
                pop     edi
1476
                add     [edi], eax
1477
                add     [edi+4], ebx
1478
                add     [edi+8], ecx
1479
                add     [edi+0Ch], edx
1480
1481
                pop     ebp
1482
                pop     edi
1483
                pop     esi
1484
                pop     ebx
1485
end;
1486
{$ENDIF}
1487
1488
{$IFDEF THash_RipeMD128_asm}
1489
procedure THash_RipeMD128.DoTransform(Buffer: PUInt32Array);
1490
asm
1491
                push    ebx
1492
                push    esi
1493
                push    edi
1494
                lea     edi, [eax].THash_RipeMD128.FDigest
1495
                mov     esi, edx
1496
                push    ebp
1497
1498
                mov     eax, [edi]
1499
                mov     ebx, [edi+4]
1500
                push    edi
1501
                mov     ecx, [edi+8]
1502
                mov     edx, [edi+0Ch]
1503
                add     esp, 0FFFFFFF0h
1504
                mov     edi, edx
1505
                xor     edi, ecx
1506
                mov     ebp, [esi]
1507
                xor     edi, ebx
1508
                add     eax, ebp
1509
                add     eax, edi
1510
                mov     edi, ecx
1511
                rol     eax, 0Bh
1512
                xor     edi, ebx
1513
                mov     ebp, [esi+4]
1514
                xor     edi, eax
1515
                add     edx, ebp
1516
                add     edx, edi
1517
                mov     edi, ebx
1518
                rol     edx, 0Eh
1519
                xor     edi, eax
1520
                mov     ebp, [esi+8]
1521
                xor     edi, edx
1522
                add     ecx, ebp
1523
                add     ecx, edi
1524
                mov     edi, eax
1525
                rol     ecx, 0Fh
1526
                xor     edi, edx
1527
                mov     ebp, [esi+0Ch]
1528
                xor     edi, ecx
1529
                add     ebx, ebp
1530
                add     ebx, edi
1531
                mov     edi, edx
1532
                rol     ebx, 0Ch
1533
                xor     edi, ecx
1534
                mov     ebp, [esi+10h]
1535
                xor     edi, ebx
1536
                add     eax, ebp
1537
                add     eax, edi
1538
                mov     edi, ecx
1539
                rol     eax, 5
1540
                xor     edi, ebx
1541
                mov     ebp, [esi+14h]
1542
                xor     edi, eax
1543
                add     edx, ebp
1544
                add     edx, edi
1545
                mov     edi, ebx
1546
                rol     edx, 8
1547
                xor     edi, eax
1548
                mov     ebp, [esi+18h]
1549
                xor     edi, edx
1550
                add     ecx, ebp
1551
                add     ecx, edi
1552
                mov     edi, eax
1553
                rol     ecx, 7
1554
                xor     edi, edx
1555
                mov     ebp, [esi+1Ch]
1556
                xor     edi, ecx
1557
                add     ebx, ebp
1558
                add     ebx, edi
1559
                mov     edi, edx
1560
                rol     ebx, 9
1561
                xor     edi, ecx
1562
                mov     ebp, [esi+20h]
1563
                xor     edi, ebx
1564
                add     eax, ebp
1565
                add     eax, edi
1566
                mov     edi, ecx
1567
                rol     eax, 0Bh
1568
                xor     edi, ebx
1569
                mov     ebp, [esi+24h]
1570
                xor     edi, eax
1571
                add     edx, ebp
1572
                add     edx, edi
1573
                mov     edi, ebx
1574
                rol     edx, 0Dh
1575
                xor     edi, eax
1576
                mov     ebp, [esi+28h]
1577
                xor     edi, edx
1578
                add     ecx, ebp
1579
                add     ecx, edi
1580
                mov     edi, eax
1581
                rol     ecx, 0Eh
1582
                xor     edi, edx
1583
                mov     ebp, [esi+2Ch]
1584
                xor     edi, ecx
1585
                add     ebx, ebp
1586
                add     ebx, edi
1587
                mov     edi, edx
1588
                rol     ebx, 0Fh
1589
                xor     edi, ecx
1590
                mov     ebp, [esi+30h]
1591
                xor     edi, ebx
1592
                add     eax, ebp
1593
                add     eax, edi
1594
                mov     edi, ecx
1595
                rol     eax, 6
1596
                xor     edi, ebx
1597
                mov     ebp, [esi+34h]
1598
                xor     edi, eax
1599
                add     edx, ebp
1600
                add     edx, edi
1601
                mov     edi, ebx
1602
                rol     edx, 7
1603
                xor     edi, eax
1604
                mov     ebp, [esi+38h]
1605
                xor     edi, edx
1606
                add     ecx, ebp
1607
                add     ecx, edi
1608
                mov     edi, eax
1609
                rol     ecx, 9
1610
                xor     edi, edx
1611
                mov     ebp, [esi+3Ch]
1612
                xor     edi, ecx
1613
                add     ebx, ebp
1614
                add     ebx, edi
1615
                rol     ebx, 8
1616
                mov     ebp, [esi+1Ch]
1617
                mov     edi, ecx
1618
                xor     edi, edx
1619
                lea     eax, [eax+ebp+5A827999h]
1620
                and     edi, ebx
1621
                mov     ebp, ebx
1622
                xor     edi, edx
1623
                xor     ebp, ecx
1624
                add     eax, edi
1625
                mov     edi, [esi+10h]
1626
                rol     eax, 7
1627
                and     ebp, eax
1628
                lea     edx, [edx+edi+5A827999h]
1629
                xor     ebp, ecx
1630
                mov     edi, eax
1631
                add     edx, ebp
1632
                mov     ebp, [esi+34h]
1633
                rol     edx, 6
1634
                xor     edi, ebx
1635
                lea     ecx, [ecx+ebp+5A827999h]
1636
                and     edi, edx
1637
                mov     ebp, edx
1638
                xor     edi, ebx
1639
                xor     ebp, eax
1640
                add     ecx, edi
1641
                mov     edi, [esi+4]
1642
                rol     ecx, 8
1643
                and     ebp, ecx
1644
                lea     ebx, [ebx+edi+5A827999h]
1645
                xor     ebp, eax
1646
                mov     edi, ecx
1647
                add     ebx, ebp
1648
                mov     ebp, [esi+28h]
1649
                rol     ebx, 0Dh
1650
                xor     edi, edx
1651
                lea     eax, [eax+ebp+5A827999h]
1652
                and     edi, ebx
1653
                mov     ebp, ebx
1654
                xor     edi, edx
1655
                xor     ebp, ecx
1656
                add     eax, edi
1657
                mov     edi, [esi+18h]
1658
                rol     eax, 0Bh
1659
                and     ebp, eax
1660
                lea     edx, [edx+edi+5A827999h]
1661
                xor     ebp, ecx
1662
                mov     edi, eax
1663
                add     edx, ebp
1664
                mov     ebp, [esi+3Ch]
1665
                rol     edx, 9
1666
                xor     edi, ebx
1667
                lea     ecx, [ecx+ebp+5A827999h]
1668
                and     edi, edx
1669
                mov     ebp, edx
1670
                xor     edi, ebx
1671
                xor     ebp, eax
1672
                add     ecx, edi
1673
                mov     edi, [esi+0Ch]
1674
                rol     ecx, 7
1675
                and     ebp, ecx
1676
                lea     ebx, [ebx+edi+5A827999h]
1677
                xor     ebp, eax
1678
                mov     edi, ecx
1679
                add     ebx, ebp
1680
                mov     ebp, [esi+30h]
1681
                rol     ebx, 0Fh
1682
                xor     edi, edx
1683
                lea     eax, [eax+ebp+5A827999h]
1684
                and     edi, ebx
1685
                mov     ebp, ebx
1686
                xor     edi, edx
1687
                xor     ebp, ecx
1688
                add     eax, edi
1689
                mov     edi, [esi]
1690
                rol     eax, 7
1691
                and     ebp, eax
1692
                lea     edx, [edx+edi+5A827999h]
1693
                xor     ebp, ecx
1694
                mov     edi, eax
1695
                add     edx, ebp
1696
                mov     ebp, [esi+24h]
1697
                rol     edx, 0Ch
1698
                xor     edi, ebx
1699
                lea     ecx, [ecx+ebp+5A827999h]
1700
                and     edi, edx
1701
                mov     ebp, edx
1702
                xor     edi, ebx
1703
                xor     ebp, eax
1704
                add     ecx, edi
1705
                mov     edi, [esi+14h]
1706
                rol     ecx, 0Fh
1707
                and     ebp, ecx
1708
                lea     ebx, [ebx+edi+5A827999h]
1709
                xor     ebp, eax
1710
                mov     edi, ecx
1711
                add     ebx, ebp
1712
                mov     ebp, [esi+8]
1713
                rol     ebx, 9
1714
                xor     edi, edx
1715
                lea     eax, [eax+ebp+5A827999h]
1716
                and     edi, ebx
1717
                mov     ebp, ebx
1718
                xor     edi, edx
1719
                xor     ebp, ecx
1720
                add     eax, edi
1721
                mov     edi, [esi+38h]
1722
                rol     eax, 0Bh
1723
                and     ebp, eax
1724
                lea     edx, [edx+edi+5A827999h]
1725
                xor     ebp, ecx
1726
                mov     edi, eax
1727
                add     edx, ebp
1728
                mov     ebp, [esi+2Ch]
1729
                rol     edx, 7
1730
                xor     edi, ebx
1731
                lea     ecx, [ecx+ebp+5A827999h]
1732
                and     edi, edx
1733
                mov     ebp, edx
1734
                xor     edi, ebx
1735
                xor     ebp, eax
1736
                add     ecx, edi
1737
                mov     edi, [esi+20h]
1738
                rol     ecx, 0Dh
1739
                and     ebp, ecx
1740
                lea     ebx, [ebx+edi+5A827999h]
1741
                xor     ebp, eax
1742
                add     ebx, ebp
1743
                rol     ebx, 0Ch
1744
                mov     edi, ecx
1745
                mov     ebp, [esi+0Ch]
1746
                xor     edi, 0FFFFFFFFh
1747
                lea     eax, [eax+ebp+6ED9EBA1h]
1748
                or      edi, ebx
1749
                mov     ebp, ebx
1750
                xor     edi, edx
1751
                xor     ebp, 0FFFFFFFFh
1752
                add     eax, edi
1753
                mov     edi, [esi+28h]
1754
                rol     eax, 0Bh
1755
                or      ebp, eax
1756
                lea     edx, [edx+edi+6ED9EBA1h]
1757
                xor     ebp, ecx
1758
                mov     edi, eax
1759
                add     edx, ebp
1760
                mov     ebp, [esi+38h]
1761
                rol     edx, 0Dh
1762
                xor     edi, 0FFFFFFFFh
1763
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1764
                or      edi, edx
1765
                mov     ebp, edx
1766
                xor     edi, ebx
1767
                xor     ebp, 0FFFFFFFFh
1768
                add     ecx, edi
1769
                mov     edi, [esi+10h]
1770
                rol     ecx, 6
1771
                or      ebp, ecx
1772
                lea     ebx, [ebx+edi+6ED9EBA1h]
1773
                xor     ebp, eax
1774
                mov     edi, ecx
1775
                add     ebx, ebp
1776
                mov     ebp, [esi+24h]
1777
                rol     ebx, 7
1778
                xor     edi, 0FFFFFFFFh
1779
                lea     eax, [eax+ebp+6ED9EBA1h]
1780
                or      edi, ebx
1781
                mov     ebp, ebx
1782
                xor     edi, edx
1783
                xor     ebp, 0FFFFFFFFh
1784
                add     eax, edi
1785
                mov     edi, [esi+3Ch]
1786
                rol     eax, 0Eh
1787
                or      ebp, eax
1788
                lea     edx, [edx+edi+6ED9EBA1h]
1789
                xor     ebp, ecx
1790
                mov     edi, eax
1791
                add     edx, ebp
1792
                mov     ebp, [esi+20h]
1793
                rol     edx, 9
1794
                xor     edi, 0FFFFFFFFh
1795
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1796
                or      edi, edx
1797
                mov     ebp, edx
1798
                xor     edi, ebx
1799
                xor     ebp, 0FFFFFFFFh
1800
                add     ecx, edi
1801
                mov     edi, [esi+4]
1802
                rol     ecx, 0Dh
1803
                or      ebp, ecx
1804
                lea     ebx, [ebx+edi+6ED9EBA1h]
1805
                xor     ebp, eax
1806
                mov     edi, ecx
1807
                add     ebx, ebp
1808
                mov     ebp, [esi+8]
1809
                rol     ebx, 0Fh
1810
                xor     edi, 0FFFFFFFFh
1811
                lea     eax, [eax+ebp+6ED9EBA1h]
1812
                or      edi, ebx
1813
                mov     ebp, ebx
1814
                xor     edi, edx
1815
                xor     ebp, 0FFFFFFFFh
1816
                add     eax, edi
1817
                mov     edi, [esi+1Ch]
1818
                rol     eax, 0Eh
1819
                or      ebp, eax
1820
                lea     edx, [edx+edi+6ED9EBA1h]
1821
                xor     ebp, ecx
1822
                mov     edi, eax
1823
                add     edx, ebp
1824
                mov     ebp, [esi]
1825
                rol     edx, 8
1826
                xor     edi, 0FFFFFFFFh
1827
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1828
                or      edi, edx
1829
                mov     ebp, edx
1830
                xor     edi, ebx
1831
                xor     ebp, 0FFFFFFFFh
1832
                add     ecx, edi
1833
                mov     edi, [esi+18h]
1834
                rol     ecx, 0Dh
1835
                or      ebp, ecx
1836
                lea     ebx, [ebx+edi+6ED9EBA1h]
1837
                xor     ebp, eax
1838
                mov     edi, ecx
1839
                add     ebx, ebp
1840
                mov     ebp, [esi+34h]
1841
                rol     ebx, 6
1842
                xor     edi, 0FFFFFFFFh
1843
                lea     eax, [eax+ebp+6ED9EBA1h]
1844
                or      edi, ebx
1845
                mov     ebp, ebx
1846
                xor     edi, edx
1847
                xor     ebp, 0FFFFFFFFh
1848
                add     eax, edi
1849
                mov     edi, [esi+2Ch]
1850
                rol     eax, 5
1851
                or      ebp, eax
1852
                lea     edx, [edx+edi+6ED9EBA1h]
1853
                xor     ebp, ecx
1854
                mov     edi, eax
1855
                add     edx, ebp
1856
                mov     ebp, [esi+14h]
1857
                rol     edx, 0Ch
1858
                xor     edi, 0FFFFFFFFh
1859
                lea     ecx, [ecx+ebp+6ED9EBA1h]
1860
                or      edi, edx
1861
                mov     ebp, edx
1862
                xor     edi, ebx
1863
                xor     ebp, 0FFFFFFFFh
1864
                add     ecx, edi
1865
                mov     edi, [esi+30h]
1866
                rol     ecx, 7
1867
                or      ebp, ecx
1868
                lea     ebx, [ebx+edi+6ED9EBA1h]
1869
                xor     ebp, eax
1870
                mov     edi, ecx
1871
                add     ebx, ebp
1872
                mov     ebp, [esi+4]
1873
                rol     ebx, 5
1874
                xor     edi, ebx
1875
                lea     eax, [eax+ebp-70E44324h]
1876
                and     edi, edx
1877
                mov     ebp, [esi+24h]
1878
                xor     edi, ecx
1879
                add     eax, edi
1880
                mov     edi, ebx
1881
                rol     eax, 0Bh
1882
                xor     edi, eax
1883
                lea     edx, [edx+ebp-70E44324h]
1884
                and     edi, ecx
1885
                mov     ebp, [esi+2Ch]
1886
                xor     edi, ebx
1887
                add     edx, edi
1888
                mov     edi, eax
1889
                rol     edx, 0Ch
1890
                xor     edi, edx
1891
                lea     ecx, [ecx+ebp-70E44324h]
1892
                and     edi, ebx
1893
                mov     ebp, [esi+28h]
1894
                xor     edi, eax
1895
                add     ecx, edi
1896
                mov     edi, edx
1897
                rol     ecx, 0Eh
1898
                xor     edi, ecx
1899
                lea     ebx, [ebx+ebp-70E44324h]
1900
                and     edi, eax
1901
                mov     ebp, [esi]
1902
                xor     edi, edx
1903
                add     ebx, edi
1904
                mov     edi, ecx
1905
                rol     ebx, 0Fh
1906
                xor     edi, ebx
1907
                lea     eax, [eax+ebp-70E44324h]
1908
                and     edi, edx
1909
                mov     ebp, [esi+20h]
1910
                xor     edi, ecx
1911
                add     eax, edi
1912
                mov     edi, ebx
1913
                rol     eax, 0Eh
1914
                xor     edi, eax
1915
                lea     edx, [edx+ebp-70E44324h]
1916
                and     edi, ecx
1917
                mov     ebp, [esi+30h]
1918
                xor     edi, ebx
1919
                add     edx, edi
1920
                mov     edi, eax
1921
                rol     edx, 0Fh
1922
                xor     edi, edx
1923
                lea     ecx, [ecx+ebp-70E44324h]
1924
                and     edi, ebx
1925
                mov     ebp, [esi+10h]
1926
                xor     edi, eax
1927
                add     ecx, edi
1928
                mov     edi, edx
1929
                rol     ecx, 9
1930
                xor     edi, ecx
1931
                lea     ebx, [ebx+ebp-70E44324h]
1932
                and     edi, eax
1933
                mov     ebp, [esi+34h]
1934
                xor     edi, edx
1935
                add     ebx, edi
1936
                mov     edi, ecx
1937
                rol     ebx, 8
1938
                xor     edi, ebx
1939
                lea     eax, [eax+ebp-70E44324h]
1940
                and     edi, edx
1941
                mov     ebp, [esi+0Ch]
1942
                xor     edi, ecx
1943
                add     eax, edi
1944
                mov     edi, ebx
1945
                rol     eax, 9
1946
                xor     edi, eax
1947
                lea     edx, [edx+ebp-70E44324h]
1948
                and     edi, ecx
1949
                mov     ebp, [esi+1Ch]
1950
                xor     edi, ebx
1951
                add     edx, edi
1952
                mov     edi, eax
1953
                rol     edx, 0Eh
1954
                xor     edi, edx
1955
                lea     ecx, [ecx+ebp-70E44324h]
1956
                and     edi, ebx
1957
                mov     ebp, [esi+3Ch]
1958
                xor     edi, eax
1959
                add     ecx, edi
1960
                mov     edi, edx
1961
                rol     ecx, 5
1962
                xor     edi, ecx
1963
                lea     ebx, [ebx+ebp-70E44324h]
1964
                and     edi, eax
1965
                mov     ebp, [esi+38h]
1966
                xor     edi, edx
1967
                add     ebx, edi
1968
                mov     edi, ecx
1969
                rol     ebx, 6
1970
                xor     edi, ebx
1971
                lea     eax, [eax+ebp-70E44324h]
1972
                and     edi, edx
1973
                mov     ebp, [esi+14h]
1974
                xor     edi, ecx
1975
                add     eax, edi
1976
                mov     edi, ebx
1977
                rol     eax, 8
1978
                xor     edi, eax
1979
                lea     edx, [edx+ebp-70E44324h]
1980
                and     edi, ecx
1981
                mov     ebp, [esi+18h]
1982
                xor     edi, ebx
1983
                add     edx, edi
1984
                mov     edi, eax
1985
                rol     edx, 6
1986
                xor     edi, edx
1987
                lea     ecx, [ecx+ebp-70E44324h]
1988
                and     edi, ebx
1989
                mov     ebp, [esi+8]
1990
                xor     edi, eax
1991
                add     ecx, edi
1992
                mov     edi, edx
1993
                rol     ecx, 5
1994
                xor     edi, ecx
1995
                lea     ebx, [ebx+ebp-70E44324h]
1996
                and     edi, eax
1997
                xor     edi, edx
1998
                add     ebx, edi
1999
                rol     ebx, 0Ch
2000
                mov     edi, [esp+10h]
2001
                mov     [esp], eax
2002
                mov     [esp+4], ebx
2003
                mov     eax, [edi]
2004
                mov     ebx, [edi+4]
2005
                mov     [esp+8], ecx
2006
                mov     ecx, [edi+8]
2007
                mov     ebp, [esi+14h]
2008
                mov     [esp+0Ch], edx
2009
                mov     edx, [edi+0Ch]
2010
                mov     edi, ecx
2011
                xor     edi, ebx
2012
                lea     eax, [eax+ebp+50A28BE6h]
2013
                and     edi, edx
2014
                mov     ebp, [esi+38h]
2015
                xor     edi, ecx
2016
                add     eax, edi
2017
                mov     edi, ebx
2018
                rol     eax, 8
2019
                xor     edi, eax
2020
                lea     edx, [edx+ebp+50A28BE6h]
2021
                and     edi, ecx
2022
                mov     ebp, [esi+1Ch]
2023
                xor     edi, ebx
2024
                add     edx, edi
2025
                mov     edi, eax
2026
                rol     edx, 9
2027
                xor     edi, edx
2028
                lea     ecx, [ecx+ebp+50A28BE6h]
2029
                and     edi, ebx
2030
                mov     ebp, [esi]
2031
                xor     edi, eax
2032
                add     ecx, edi
2033
                mov     edi, edx
2034
                rol     ecx, 9
2035
                xor     edi, ecx
2036
                lea     ebx, [ebx+ebp+50A28BE6h]
2037
                and     edi, eax
2038
                mov     ebp, [esi+24h]
2039
                xor     edi, edx
2040
                add     ebx, edi
2041
                mov     edi, ecx
2042
                rol     ebx, 0Bh
2043
                xor     edi, ebx
2044
                lea     eax, [eax+ebp+50A28BE6h]
2045
                and     edi, edx
2046
                mov     ebp, [esi+8]
2047
                xor     edi, ecx
2048
                add     eax, edi
2049
                mov     edi, ebx
2050
                rol     eax, 0Dh
2051
                xor     edi, eax
2052
                lea     edx, [edx+ebp+50A28BE6h]
2053
                and     edi, ecx
2054
                mov     ebp, [esi+2Ch]
2055
                xor     edi, ebx
2056
                add     edx, edi
2057
                mov     edi, eax
2058
                rol     edx, 0Fh
2059
                xor     edi, edx
2060
                lea     ecx, [ecx+ebp+50A28BE6h]
2061
                and     edi, ebx
2062
                mov     ebp, [esi+10h]
2063
                xor     edi, eax
2064
                add     ecx, edi
2065
                mov     edi, edx
2066
                rol     ecx, 0Fh
2067
                xor     edi, ecx
2068
                lea     ebx, [ebx+ebp+50A28BE6h]
2069
                and     edi, eax
2070
                mov     ebp, [esi+34h]
2071
                xor     edi, edx
2072
                add     ebx, edi
2073
                mov     edi, ecx
2074
                rol     ebx, 5
2075
                xor     edi, ebx
2076
                lea     eax, [eax+ebp+50A28BE6h]
2077
                and     edi, edx
2078
                mov     ebp, [esi+18h]
2079
                xor     edi, ecx
2080
                add     eax, edi
2081
                mov     edi, ebx
2082
                rol     eax, 7
2083
                xor     edi, eax
2084
                lea     edx, [edx+ebp+50A28BE6h]
2085
                and     edi, ecx
2086
                mov     ebp, [esi+3Ch]
2087
                xor     edi, ebx
2088
                add     edx, edi
2089
                mov     edi, eax
2090
                rol     edx, 7
2091
                xor     edi, edx
2092
                lea     ecx, [ecx+ebp+50A28BE6h]
2093
                and     edi, ebx
2094
                mov     ebp, [esi+20h]
2095
                xor     edi, eax
2096
                add     ecx, edi
2097
                mov     edi, edx
2098
                rol     ecx, 8
2099
                xor     edi, ecx
2100
                lea     ebx, [ebx+ebp+50A28BE6h]
2101
                and     edi, eax
2102
                mov     ebp, [esi+4]
2103
                xor     edi, edx
2104
                add     ebx, edi
2105
                mov     edi, ecx
2106
                rol     ebx, 0Bh
2107
                xor     edi, ebx
2108
                lea     eax, [eax+ebp+50A28BE6h]
2109
                and     edi, edx
2110
                mov     ebp, [esi+28h]
2111
                xor     edi, ecx
2112
                add     eax, edi
2113
                mov     edi, ebx
2114
                rol     eax, 0Eh
2115
                xor     edi, eax
2116
                lea     edx, [edx+ebp+50A28BE6h]
2117
                and     edi, ecx
2118
                mov     ebp, [esi+0Ch]
2119
                xor     edi, ebx
2120
                add     edx, edi
2121
                mov     edi, eax
2122
                rol     edx, 0Eh
2123
                xor     edi, edx
2124
                lea     ecx, [ecx+ebp+50A28BE6h]
2125
                and     edi, ebx
2126
                mov     ebp, [esi+30h]
2127
                xor     edi, eax
2128
                add     ecx, edi
2129
                mov     edi, edx
2130
                rol     ecx, 0Ch
2131
                xor     edi, ecx
2132
                lea     ebx, [ebx+ebp+50A28BE6h]
2133
                and     edi, eax
2134
                mov     ebp, [esi+18h]
2135
                xor     edi, edx
2136
                add     ebx, edi
2137
                mov     edi, ecx
2138
                rol     ebx, 6
2139
                xor     edi, 0FFFFFFFFh
2140
                lea     eax, [eax+ebp+5C4DD124h]
2141
                or      edi, ebx
2142
                mov     ebp, ebx
2143
                xor     edi, edx
2144
                xor     ebp, 0FFFFFFFFh
2145
                add     eax, edi
2146
                mov     edi, [esi+2Ch]
2147
                rol     eax, 9
2148
                or      ebp, eax
2149
                lea     edx, [edx+edi+5C4DD124h]
2150
                xor     ebp, ecx
2151
                mov     edi, eax
2152
                add     edx, ebp
2153
                mov     ebp, [esi+0Ch]
2154
                rol     edx, 0Dh
2155
                xor     edi, 0FFFFFFFFh
2156
                lea     ecx, [ecx+ebp+5C4DD124h]
2157
                or      edi, edx
2158
                mov     ebp, edx
2159
                xor     edi, ebx
2160
                xor     ebp, 0FFFFFFFFh
2161
                add     ecx, edi
2162
                mov     edi, [esi+1Ch]
2163
                rol     ecx, 0Fh
2164
                or      ebp, ecx
2165
                lea     ebx, [ebx+edi+5C4DD124h]
2166
                xor     ebp, eax
2167
                mov     edi, ecx
2168
                add     ebx, ebp
2169
                mov     ebp, [esi]
2170
                rol     ebx, 7
2171
                xor     edi, 0FFFFFFFFh
2172
                lea     eax, [eax+ebp+5C4DD124h]
2173
                or      edi, ebx
2174
                mov     ebp, ebx
2175
                xor     edi, edx
2176
                xor     ebp, 0FFFFFFFFh
2177
                add     eax, edi
2178
                mov     edi, [esi+34h]
2179
                rol     eax, 0Ch
2180
                or      ebp, eax
2181
                lea     edx, [edx+edi+5C4DD124h]
2182
                xor     ebp, ecx
2183
                mov     edi, eax
2184
                add     edx, ebp
2185
                mov     ebp, [esi+14h]
2186
                rol     edx, 8
2187
                xor     edi, 0FFFFFFFFh
2188
                lea     ecx, [ecx+ebp+5C4DD124h]
2189
                or      edi, edx
2190
                mov     ebp, edx
2191
                xor     edi, ebx
2192
                xor     ebp, 0FFFFFFFFh
2193
                add     ecx, edi
2194
                mov     edi, [esi+28h]
2195
                rol     ecx, 9
2196
                or      ebp, ecx
2197
                lea     ebx, [ebx+edi+5C4DD124h]
2198
                xor     ebp, eax
2199
                mov     edi, ecx
2200
                add     ebx, ebp
2201
                mov     ebp, [esi+38h]
2202
                rol     ebx, 0Bh
2203
                xor     edi, 0FFFFFFFFh
2204
                lea     eax, [eax+ebp+5C4DD124h]
2205
                or      edi, ebx
2206
                mov     ebp, ebx
2207
                xor     edi, edx
2208
                xor     ebp, 0FFFFFFFFh
2209
                add     eax, edi
2210
                mov     edi, [esi+3Ch]
2211
                rol     eax, 7
2212
                or      ebp, eax
2213
                lea     edx, [edx+edi+5C4DD124h]
2214
                xor     ebp, ecx
2215
                mov     edi, eax
2216
                add     edx, ebp
2217
                mov     ebp, [esi+20h]
2218
                rol     edx, 7
2219
                xor     edi, 0FFFFFFFFh
2220
                lea     ecx, [ecx+ebp+5C4DD124h]
2221
                or      edi, edx
2222
                mov     ebp, edx
2223
                xor     edi, ebx
2224
                xor     ebp, 0FFFFFFFFh
2225
                add     ecx, edi
2226
                mov     edi, [esi+30h]
2227
                rol     ecx, 0Ch
2228
                or      ebp, ecx
2229
                lea     ebx, [ebx+edi+5C4DD124h]
2230
                xor     ebp, eax
2231
                mov     edi, ecx
2232
                add     ebx, ebp
2233
                mov     ebp, [esi+10h]
2234
                rol     ebx, 7
2235
                xor     edi, 0FFFFFFFFh
2236
                lea     eax, [eax+ebp+5C4DD124h]
2237
                or      edi, ebx
2238
                mov     ebp, ebx
2239
                xor     edi, edx
2240
                xor     ebp, 0FFFFFFFFh
2241
                add     eax, edi
2242
                mov     edi, [esi+24h]
2243
                rol     eax, 6
2244
                or      ebp, eax
2245
                lea     edx, [edx+edi+5C4DD124h]
2246
                xor     ebp, ecx
2247
                mov     edi, eax
2248
                add     edx, ebp
2249
                mov     ebp, [esi+4]
2250
                rol     edx, 0Fh
2251
                xor     edi, 0FFFFFFFFh
2252
                lea     ecx, [ecx+ebp+5C4DD124h]
2253
                or      edi, edx
2254
                mov     ebp, edx
2255
                xor     edi, ebx
2256
                xor     ebp, 0FFFFFFFFh
2257
                add     ecx, edi
2258
                mov     edi, [esi+8]
2259
                rol     ecx, 0Dh
2260
                or      ebp, ecx
2261
                lea     ebx, [ebx+edi+5C4DD124h]
2262
                xor     ebp, eax
2263
                mov     edi, ecx
2264
                add     ebx, ebp
2265
                mov     ebp, [esi+3Ch]
2266
                rol     ebx, 0Bh
2267
                xor     edi, edx
2268
                lea     eax, [eax+ebp+6D703EF3h]
2269
                and     edi, ebx
2270
                mov     ebp, ebx
2271
                xor     edi, edx
2272
                xor     ebp, ecx
2273
                add     eax, edi
2274
                mov     edi, [esi+14h]
2275
                rol     eax, 9
2276
                and     ebp, eax
2277
                lea     edx, [edx+edi+6D703EF3h]
2278
                xor     ebp, ecx
2279
                mov     edi, eax
2280
                add     edx, ebp
2281
                mov     ebp, [esi+4]
2282
                rol     edx, 7
2283
                xor     edi, ebx
2284
                lea     ecx, [ecx+ebp+6D703EF3h]
2285
                and     edi, edx
2286
                mov     ebp, edx
2287
                xor     edi, ebx
2288
                xor     ebp, eax
2289
                add     ecx, edi
2290
                mov     edi, [esi+0Ch]
2291
                rol     ecx, 0Fh
2292
                and     ebp, ecx
2293
                lea     ebx, [ebx+edi+6D703EF3h]
2294
                xor     ebp, eax
2295
                mov     edi, ecx
2296
                add     ebx, ebp
2297
                mov     ebp, [esi+1Ch]
2298
                rol     ebx, 0Bh
2299
                xor     edi, edx
2300
                lea     eax, [eax+ebp+6D703EF3h]
2301
                and     edi, ebx
2302
                mov     ebp, ebx
2303
                xor     edi, edx
2304
                xor     ebp, ecx
2305
                add     eax, edi
2306
                mov     edi, [esi+38h]
2307
                rol     eax, 8
2308
                and     ebp, eax
2309
                lea     edx, [edx+edi+6D703EF3h]
2310
                xor     ebp, ecx
2311
                mov     edi, eax
2312
                add     edx, ebp
2313
                mov     ebp, [esi+18h]
2314
                rol     edx, 6
2315
                xor     edi, ebx
2316
                lea     ecx, [ecx+ebp+6D703EF3h]
2317
                and     edi, edx
2318
                mov     ebp, edx
2319
                xor     edi, ebx
2320
                xor     ebp, eax
2321
                add     ecx, edi
2322
                mov     edi, [esi+24h]
2323
                rol     ecx, 6
2324
                and     ebp, ecx
2325
                lea     ebx, [ebx+edi+6D703EF3h]
2326
                xor     ebp, eax
2327
                mov     edi, ecx
2328
                add     ebx, ebp
2329
                mov     ebp, [esi+2Ch]
2330
                rol     ebx, 0Eh
2331
                xor     edi, edx
2332
                lea     eax, [eax+ebp+6D703EF3h]
2333
                and     edi, ebx
2334
                mov     ebp, ebx
2335
                xor     edi, edx
2336
                xor     ebp, ecx
2337
                add     eax, edi
2338
                mov     edi, [esi+20h]
2339
                rol     eax, 0Ch
2340
                and     ebp, eax
2341
                lea     edx, [edx+edi+6D703EF3h]
2342
                xor     ebp, ecx
2343
                mov     edi, eax
2344
                add     edx, ebp
2345
                mov     ebp, [esi+30h]
2346
                rol     edx, 0Dh
2347
                xor     edi, ebx
2348
                lea     ecx, [ecx+ebp+6D703EF3h]
2349
                and     edi, edx
2350
                mov     ebp, edx
2351
                xor     edi, ebx
2352
                xor     ebp, eax
2353
                add     ecx, edi
2354
                mov     edi, [esi+8]
2355
                rol     ecx, 5
2356
                and     ebp, ecx
2357
                lea     ebx, [ebx+edi+6D703EF3h]
2358
                xor     ebp, eax
2359
                mov     edi, ecx
2360
                add     ebx, ebp
2361
                mov     ebp, [esi+28h]
2362
                rol     ebx, 0Eh
2363
                xor     edi, edx
2364
                lea     eax, [eax+ebp+6D703EF3h]
2365
                and     edi, ebx
2366
                mov     ebp, ebx
2367
                xor     edi, edx
2368
                xor     ebp, ecx
2369
                add     eax, edi
2370
                mov     edi, [esi]
2371
                rol     eax, 0Dh
2372
                and     ebp, eax
2373
                lea     edx, [edx+edi+6D703EF3h]
2374
                xor     ebp, ecx
2375
                mov     edi, eax
2376
                add     edx, ebp
2377
                mov     ebp, [esi+10h]
2378
                rol     edx, 0Dh
2379
                xor     edi, ebx
2380
                lea     ecx, [ecx+ebp+6D703EF3h]
2381
                and     edi, edx
2382
                mov     ebp, edx
2383
                xor     edi, ebx
2384
                xor     ebp, eax
2385
                add     ecx, edi
2386
                mov     edi, [esi+34h]
2387
                rol     ecx, 7
2388
                and     ebp, ecx
2389
                lea     ebx, [ebx+edi+6D703EF3h]
2390
                xor     ebp, eax
2391
                add     ebx, ebp
2392
                rol     ebx, 5
2393
                mov     edi, edx
2394
                xor     edi, ecx
2395
                mov     ebp, [esi+20h]
2396
                xor     edi, ebx
2397
                add     eax, ebp
2398
                add     eax, edi
2399
                mov     edi, ecx
2400
                rol     eax, 0Fh
2401
                xor     edi, ebx
2402
                mov     ebp, [esi+18h]
2403
                xor     edi, eax
2404
                add     edx, ebp
2405
                add     edx, edi
2406
                mov     edi, ebx
2407
                rol     edx, 5
2408
                xor     edi, eax
2409
                mov     ebp, [esi+10h]
2410
                xor     edi, edx
2411
                add     ecx, ebp
2412
                add     ecx, edi
2413
                mov     edi, eax
2414
                rol     ecx, 8
2415
                xor     edi, edx
2416
                mov     ebp, [esi+4]
2417
                xor     edi, ecx
2418
                add     ebx, ebp
2419
                add     ebx, edi
2420
                mov     edi, edx
2421
                rol     ebx, 0Bh
2422
                xor     edi, ecx
2423
                mov     ebp, [esi+0Ch]
2424
                xor     edi, ebx
2425
                add     eax, ebp
2426
                add     eax, edi
2427
                mov     edi, ecx
2428
                rol     eax, 0Eh
2429
                xor     edi, ebx
2430
                mov     ebp, [esi+2Ch]
2431
                xor     edi, eax
2432
                add     edx, ebp
2433
                add     edx, edi
2434
                mov     edi, ebx
2435
                rol     edx, 0Eh
2436
                xor     edi, eax
2437
                mov     ebp, [esi+3Ch]
2438
                xor     edi, edx
2439
                add     ecx, ebp
2440
                add     ecx, edi
2441
                mov     edi, eax
2442
                rol     ecx, 6
2443
                xor     edi, edx
2444
                mov     ebp, [esi]
2445
                xor     edi, ecx
2446
                add     ebx, ebp
2447
                add     ebx, edi
2448
                mov     edi, edx
2449
                rol     ebx, 0Eh
2450
                xor     edi, ecx
2451
                mov     ebp, [esi+14h]
2452
                xor     edi, ebx
2453
                add     eax, ebp
2454
                add     eax, edi
2455
                mov     edi, ecx
2456
                rol     eax, 6
2457
                xor     edi, ebx
2458
                mov     ebp, [esi+30h]
2459
                xor     edi, eax
2460
                add     edx, ebp
2461
                add     edx, edi
2462
                mov     edi, ebx
2463
                rol     edx, 9
2464
                xor     edi, eax
2465
                mov     ebp, [esi+8]
2466
                xor     edi, edx
2467
                add     ecx, ebp
2468
                add     ecx, edi
2469
                mov     edi, eax
2470
                rol     ecx, 0Ch
2471
                xor     edi, edx
2472
                mov     ebp, [esi+34h]
2473
                xor     edi, ecx
2474
                add     ebx, ebp
2475
                add     ebx, edi
2476
                mov     edi, edx
2477
                rol     ebx, 9
2478
                xor     edi, ecx
2479
                mov     ebp, [esi+24h]
2480
                xor     edi, ebx
2481
                add     eax, ebp
2482
                add     eax, edi
2483
                mov     edi, ecx
2484
                rol     eax, 0Ch
2485
                xor     edi, ebx
2486
                mov     ebp, [esi+1Ch]
2487
                xor     edi, eax
2488
                add     edx, ebp
2489
                add     edx, edi
2490
                mov     edi, ebx
2491
                rol     edx, 5
2492
                xor     edi, eax
2493
                mov     ebp, [esi+28h]
2494
                xor     edi, edx
2495
                add     ecx, ebp
2496
                add     ecx, edi
2497
                mov     edi, eax
2498
                rol     ecx, 0Fh
2499
                xor     edi, edx
2500
                mov     ebp, [esi+38h]
2501
                xor     edi, ecx
2502
                add     ebx, ebp
2503
                add     ebx, edi
2504
                rol     ebx, 8
2505
                mov     edi, [esp+10h]
2506
                mov     ebp, [esp+8]
2507
                mov     esi, [esp+0Ch]
2508
                add     edx, ebp
2509
                add     eax, esi
2510
                mov     ebp, [edi+4]
2511
                mov     esi, [edi+8]
2512
                add     edx, ebp
2513
                add     eax, esi
2514
                mov     [edi+4], eax
2515
                mov     ebp, [esp]
2516
                mov     esi, [esp+4]
2517
                add     ebx, ebp
2518
                add     ecx, esi
2519
                mov     ebp, [edi+0Ch]
2520
                mov     esi, [edi]
2521
                add     ebx, ebp
2522
                add     ecx, esi
2523
                mov     [edi+8], ebx
2524
                add     esp, 14h
2525
                mov     [edi+0Ch], ecx
2526
                mov     [edi], edx
2527
2528
                pop     ebp
2529
                pop     edi
2530
                pop     esi
2531
                pop     ebx
2532
end;
2533
{$ENDIF}
2534
2535
{$IFDEF THash_RipeMD160_asm}
2536
procedure THash_RipeMD160.DoTransform(Buffer: PUInt32Array);
2537
asm
2538
                push    ebx
2539
                push    esi
2540
                push    edi
2541
                lea     edi, [eax].THash_RipeMD160.FDigest
2542
                mov     esi, edx
2543
                push    ebp
2544
2545
                mov     eax, [edi]
2546
                mov     ebx, [edi+4]
2547
                push    edi
2548
                mov     ecx, [edi+8]
2549
                mov     edx, [edi+0Ch]
2550
                mov     ebp, [edi+10h]
2551
                add     esp, 0FFFFFFECh
2552
                mov     edi, edx
2553
                xor     edi, ecx
2554
                xor     edi, ebx
2555
                add     eax, [esi]
2556
                rol     ecx, 0Ah
2557
                add     eax, edi
2558
                mov     edi, ecx
2559
                rol     eax, 0Bh
2560
                add     eax, ebp
2561
                xor     edi, ebx
2562
                xor     edi, eax
2563
                add     ebp, [esi+4]
2564
                rol     ebx, 0Ah
2565
                add     ebp, edi
2566
                mov     edi, ebx
2567
                rol     ebp, 0Eh
2568
                add     ebp, edx
2569
                xor     edi, eax
2570
                xor     edi, ebp
2571
                add     edx, [esi+8]
2572
                rol     eax, 0Ah
2573
                add     edx, edi
2574
                mov     edi, eax
2575
                rol     edx, 0Fh
2576
                add     edx, ecx
2577
                xor     edi, ebp
2578
                xor     edi, edx
2579
                add     ecx, [esi+0Ch]
2580
                rol     ebp, 0Ah
2581
                add     ecx, edi
2582
                mov     edi, ebp
2583
                rol     ecx, 0Ch
2584
                add     ecx, ebx
2585
                xor     edi, edx
2586
                xor     edi, ecx
2587
                add     ebx, [esi+10h]
2588
                rol     edx, 0Ah
2589
                add     ebx, edi
2590
                mov     edi, edx
2591
                rol     ebx, 5
2592
                add     ebx, eax
2593
                xor     edi, ecx
2594
                xor     edi, ebx
2595
                add     eax, [esi+14h]
2596
                rol     ecx, 0Ah
2597
                add     eax, edi
2598
                mov     edi, ecx
2599
                rol     eax, 8
2600
                add     eax, ebp
2601
                xor     edi, ebx
2602
                xor     edi, eax
2603
                add     ebp, [esi+18h]
2604
                rol     ebx, 0Ah
2605
                add     ebp, edi
2606
                mov     edi, ebx
2607
                rol     ebp, 7
2608
                add     ebp, edx
2609
                xor     edi, eax
2610
                xor     edi, ebp
2611
                add     edx, [esi+1Ch]
2612
                rol     eax, 0Ah
2613
                add     edx, edi
2614
                mov     edi, eax
2615
                rol     edx, 9
2616
                add     edx, ecx
2617
                xor     edi, ebp
2618
                xor     edi, edx
2619
                add     ecx, [esi+20h]
2620
                rol     ebp, 0Ah
2621
                add     ecx, edi
2622
                mov     edi, ebp
2623
                rol     ecx, 0Bh
2624
                add     ecx, ebx
2625
                xor     edi, edx
2626
                xor     edi, ecx
2627
                add     ebx, [esi+24h]
2628
                rol     edx, 0Ah
2629
                add     ebx, edi
2630
                mov     edi, edx
2631
                rol     ebx, 0Dh
2632
                add     ebx, eax
2633
                xor     edi, ecx
2634
                xor     edi, ebx
2635
                add     eax, [esi+28h]
2636
                rol     ecx, 0Ah
2637
                add     eax, edi
2638
                mov     edi, ecx
2639
                rol     eax, 0Eh
2640
                add     eax, ebp
2641
                xor     edi, ebx
2642
                xor     edi, eax
2643
                add     ebp, [esi+2Ch]
2644
                rol     ebx, 0Ah
2645
                add     ebp, edi
2646
                mov     edi, ebx
2647
                rol     ebp, 0Fh
2648
                add     ebp, edx
2649
                xor     edi, eax
2650
                xor     edi, ebp
2651
                add     edx, [esi+30h]
2652
                rol     eax, 0Ah
2653
                add     edx, edi
2654
                mov     edi, eax
2655
                rol     edx, 6
2656
                add     edx, ecx
2657
                xor     edi, ebp
2658
                xor     edi, edx
2659
                add     ecx, [esi+34h]
2660
                rol     ebp, 0Ah
2661
                add     ecx, edi
2662
                mov     edi, ebp
2663
                rol     ecx, 7
2664
                add     ecx, ebx
2665
                xor     edi, edx
2666
                xor     edi, ecx
2667
                add     ebx, [esi+38h]
2668
                rol     edx, 0Ah
2669
                add     ebx, edi
2670
                mov     edi, edx
2671
                rol     ebx, 9
2672
                add     ebx, eax
2673
                xor     edi, ecx
2674
                xor     edi, ebx
2675
                add     eax, [esi+3Ch]
2676
                rol     ecx, 0Ah
2677
                add     eax, edi
2678
                mov     edi, ecx
2679
                rol     eax, 8
2680
                add     eax, ebp
2681
                xor     edi, ebx
2682
                add     ebp, [esi+1Ch]
2683
                and     edi, eax
2684
                xor     edi, ecx
2685
                rol     ebx, 0Ah
2686
                lea     ebp, [ebp+edi+5A827999h]
2687
                mov     edi, ebx
2688
                rol     ebp, 7
2689
                add     ebp, edx
2690
                xor     edi, eax
2691
                add     edx, [esi+10h]
2692
                and     edi, ebp
2693
                xor     edi, ebx
2694
                rol     eax, 0Ah
2695
                lea     edx, [edx+edi+5A827999h]
2696
                mov     edi, eax
2697
                rol     edx, 6
2698
                add     edx, ecx
2699
                xor     edi, ebp
2700
                add     ecx, [esi+34h]
2701
                and     edi, edx
2702
                xor     edi, eax
2703
                rol     ebp, 0Ah
2704
                lea     ecx, [ecx+edi+5A827999h]
2705
                mov     edi, ebp
2706
                rol     ecx, 8
2707
                add     ecx, ebx
2708
                xor     edi, edx
2709
                add     ebx, [esi+4]
2710
                and     edi, ecx
2711
                xor     edi, ebp
2712
                rol     edx, 0Ah
2713
                lea     ebx, [ebx+edi+5A827999h]
2714
                mov     edi, edx
2715
                rol     ebx, 0Dh
2716
                add     ebx, eax
2717
                xor     edi, ecx
2718
                add     eax, [esi+28h]
2719
                and     edi, ebx
2720
                xor     edi, edx
2721
                rol     ecx, 0Ah
2722
                lea     eax, [eax+edi+5A827999h]
2723
                mov     edi, ecx
2724
                rol     eax, 0Bh
2725
                add     eax, ebp
2726
                xor     edi, ebx
2727
                add     ebp, [esi+18h]
2728
                and     edi, eax
2729
                xor     edi, ecx
2730
                rol     ebx, 0Ah
2731
                lea     ebp, [ebp+edi+5A827999h]
2732
                mov     edi, ebx
2733
                rol     ebp, 9
2734
                add     ebp, edx
2735
                xor     edi, eax
2736
                add     edx, [esi+3Ch]
2737
                and     edi, ebp
2738
                xor     edi, ebx
2739
                rol     eax, 0Ah
2740
                lea     edx, [edx+edi+5A827999h]
2741
                mov     edi, eax
2742
                rol     edx, 7
2743
                add     edx, ecx
2744
                xor     edi, ebp
2745
                add     ecx, [esi+0Ch]
2746
                and     edi, edx
2747
                xor     edi, eax
2748
                rol     ebp, 0Ah
2749
                lea     ecx, [ecx+edi+5A827999h]
2750
                mov     edi, ebp
2751
                rol     ecx, 0Fh
2752
                add     ecx, ebx
2753
                xor     edi, edx
2754
                add     ebx, [esi+30h]
2755
                and     edi, ecx
2756
                xor     edi, ebp
2757
                rol     edx, 0Ah
2758
                lea     ebx, [ebx+edi+5A827999h]
2759
                mov     edi, edx
2760
                rol     ebx, 7
2761
                add     ebx, eax
2762
                xor     edi, ecx
2763
                add     eax, [esi]
2764
                and     edi, ebx
2765
                xor     edi, edx
2766
                rol     ecx, 0Ah
2767
                lea     eax, [eax+edi+5A827999h]
2768
                mov     edi, ecx
2769
                rol     eax, 0Ch
2770
                add     eax, ebp
2771
                xor     edi, ebx
2772
                add     ebp, [esi+24h]
2773
                and     edi, eax
2774
                xor     edi, ecx
2775
                rol     ebx, 0Ah
2776
                lea     ebp, [ebp+edi+5A827999h]
2777
                mov     edi, ebx
2778
                rol     ebp, 0Fh
2779
                add     ebp, edx
2780
                xor     edi, eax
2781
                add     edx, [esi+14h]
2782
                and     edi, ebp
2783
                xor     edi, ebx
2784
                rol     eax, 0Ah
2785
                lea     edx, [edx+edi+5A827999h]
2786
                mov     edi, eax
2787
                rol     edx, 9
2788
                add     edx, ecx
2789
                xor     edi, ebp
2790
                add     ecx, [esi+8]
2791
                and     edi, edx
2792
                xor     edi, eax
2793
                rol     ebp, 0Ah
2794
                lea     ecx, [ecx+edi+5A827999h]
2795
                mov     edi, ebp
2796
                rol     ecx, 0Bh
2797
                add     ecx, ebx
2798
                xor     edi, edx
2799
                add     ebx, [esi+38h]
2800
                and     edi, ecx
2801
                xor     edi, ebp
2802
                rol     edx, 0Ah
2803
                lea     ebx, [ebx+edi+5A827999h]
2804
                mov     edi, edx
2805
                rol     ebx, 7
2806
                add     ebx, eax
2807
                xor     edi, ecx
2808
                add     eax, [esi+2Ch]
2809
                and     edi, ebx
2810
                xor     edi, edx
2811
                rol     ecx, 0Ah
2812
                lea     eax, [eax+edi+5A827999h]
2813
                mov     edi, ecx
2814
                rol     eax, 0Dh
2815
                add     eax, ebp
2816
                xor     edi, ebx
2817
                add     ebp, [esi+20h]
2818
                and     edi, eax
2819
                xor     edi, ecx
2820
                rol     ebx, 0Ah
2821
                lea     ebp, [ebp+edi+5A827999h]
2822
                mov     edi, ebx
2823
                rol     ebp, 0Ch
2824
                add     ebp, edx
2825
                mov     edi, eax
2826
                xor     edi, 0FFFFFFFFh
2827
                or      edi, ebp
2828
                add     edx, [esi+0Ch]
2829
                xor     edi, ebx
2830
                rol     eax, 0Ah
2831
                lea     edx, [edx+edi+6ED9EBA1h]
2832
                mov     edi, ebp
2833
                rol     edx, 0Bh
2834
                xor     edi, 0FFFFFFFFh
2835
                add     edx, ecx
2836
                or      edi, edx
2837
                add     ecx, [esi+28h]
2838
                xor     edi, eax
2839
                rol     ebp, 0Ah
2840
                lea     ecx, [ecx+edi+6ED9EBA1h]
2841
                mov     edi, edx
2842
                rol     ecx, 0Dh
2843
                xor     edi, 0FFFFFFFFh
2844
                add     ecx, ebx
2845
                or      edi, ecx
2846
                add     ebx, [esi+38h]
2847
                xor     edi, ebp
2848
                rol     edx, 0Ah
2849
                lea     ebx, [ebx+edi+6ED9EBA1h]
2850
                mov     edi, ecx
2851
                rol     ebx, 6
2852
                xor     edi, 0FFFFFFFFh
2853
                add     ebx, eax
2854
                or      edi, ebx
2855
                add     eax, [esi+10h]
2856
                xor     edi, edx
2857
                rol     ecx, 0Ah
2858
                lea     eax, [eax+edi+6ED9EBA1h]
2859
                mov     edi, ebx
2860
                rol     eax, 7
2861
                xor     edi, 0FFFFFFFFh
2862
                add     eax, ebp
2863
                or      edi, eax
2864
                add     ebp, [esi+24h]
2865
                xor     edi, ecx
2866
                rol     ebx, 0Ah
2867
                lea     ebp, [ebp+edi+6ED9EBA1h]
2868
                mov     edi, eax
2869
                rol     ebp, 0Eh
2870
                xor     edi, 0FFFFFFFFh
2871
                add     ebp, edx
2872
                or      edi, ebp
2873
                add     edx, [esi+3Ch]
2874
                xor     edi, ebx
2875
                rol     eax, 0Ah
2876
                lea     edx, [edx+edi+6ED9EBA1h]
2877
                mov     edi, ebp
2878
                rol     edx, 9
2879
                xor     edi, 0FFFFFFFFh
2880
                add     edx, ecx
2881
                or      edi, edx
2882
                add     ecx, [esi+20h]
2883
                xor     edi, eax
2884
                rol     ebp, 0Ah
2885
                lea     ecx, [ecx+edi+6ED9EBA1h]
2886
                mov     edi, edx
2887
                rol     ecx, 0Dh
2888
                xor     edi, 0FFFFFFFFh
2889
                add     ecx, ebx
2890
                or      edi, ecx
2891
                add     ebx, [esi+4]
2892
                xor     edi, ebp
2893
                rol     edx, 0Ah
2894
                lea     ebx, [ebx+edi+6ED9EBA1h]
2895
                mov     edi, ecx
2896
                rol     ebx, 0Fh
2897
                xor     edi, 0FFFFFFFFh
2898
                add     ebx, eax
2899
                or      edi, ebx
2900
                add     eax, [esi+8]
2901
                xor     edi, edx
2902
                rol     ecx, 0Ah
2903
                lea     eax, [eax+edi+6ED9EBA1h]
2904
                mov     edi, ebx
2905
                rol     eax, 0Eh
2906
                xor     edi, 0FFFFFFFFh
2907
                add     eax, ebp
2908
                or      edi, eax
2909
                add     ebp, [esi+1Ch]
2910
                xor     edi, ecx
2911
                rol     ebx, 0Ah
2912
                lea     ebp, [ebp+edi+6ED9EBA1h]
2913
                mov     edi, eax
2914
                rol     ebp, 8
2915
                xor     edi, 0FFFFFFFFh
2916
                add     ebp, edx
2917
                or      edi, ebp
2918
                add     edx, [esi]
2919
                xor     edi, ebx
2920
                rol     eax, 0Ah
2921
                lea     edx, [edx+edi+6ED9EBA1h]
2922
                mov     edi, ebp
2923
                rol     edx, 0Dh
2924
                xor     edi, 0FFFFFFFFh
2925
                add     edx, ecx
2926
                or      edi, edx
2927
                add     ecx, [esi+18h]
2928
                xor     edi, eax
2929
                rol     ebp, 0Ah
2930
                lea     ecx, [ecx+edi+6ED9EBA1h]
2931
                mov     edi, edx
2932
                rol     ecx, 6
2933
                xor     edi, 0FFFFFFFFh
2934
                add     ecx, ebx
2935
                or      edi, ecx
2936
                add     ebx, [esi+34h]
2937
                xor     edi, ebp
2938
                rol     edx, 0Ah
2939
                lea     ebx, [ebx+edi+6ED9EBA1h]
2940
                mov     edi, ecx
2941
                rol     ebx, 5
2942
                xor     edi, 0FFFFFFFFh
2943
                add     ebx, eax
2944
                or      edi, ebx
2945
                add     eax, [esi+2Ch]
2946
                xor     edi, edx
2947
                rol     ecx, 0Ah
2948
                lea     eax, [eax+edi+6ED9EBA1h]
2949
                mov     edi, ebx
2950
                rol     eax, 0Ch
2951
                xor     edi, 0FFFFFFFFh
2952
                add     eax, ebp
2953
                or      edi, eax
2954
                add     ebp, [esi+14h]
2955
                xor     edi, ecx
2956
                rol     ebx, 0Ah
2957
                lea     ebp, [ebp+edi+6ED9EBA1h]
2958
                mov     edi, eax
2959
                rol     ebp, 7
2960
                xor     edi, 0FFFFFFFFh
2961
                add     ebp, edx
2962
                or      edi, ebp
2963
                add     edx, [esi+30h]
2964
                xor     edi, ebx
2965
                rol     eax, 0Ah
2966
                lea     edx, [edx+edi+6ED9EBA1h]
2967
                mov     edi, ebp
2968
                rol     edx, 5
2969
                xor     edi, 0FFFFFFFFh
2970
                add     edx, ecx
2971
                mov     edi, ebp
2972
                xor     edi, edx
2973
                and     edi, eax
2974
                add     ecx, [esi+4]
2975
                xor     edi, ebp
2976
                rol     ebp, 0Ah
2977
                lea     ecx, [ecx+edi-70E44324h]
2978
                mov     edi, edx
2979
                rol     ecx, 0Bh
2980
                add     ecx, ebx
2981
                xor     edi, ecx
2982
                and     edi, ebp
2983
                add     ebx, [esi+24h]
2984
                xor     edi, edx
2985
                rol     edx, 0Ah
2986
                lea     ebx, [ebx+edi-70E44324h]
2987
                mov     edi, ecx
2988
                rol     ebx, 0Ch
2989
                add     ebx, eax
2990
                xor     edi, ebx
2991
                and     edi, edx
2992
                add     eax, [esi+2Ch]
2993
                xor     edi, ecx
2994
                rol     ecx, 0Ah
2995
                lea     eax, [eax+edi-70E44324h]
2996
                mov     edi, ebx
2997
                rol     eax, 0Eh
2998
                add     eax, ebp
2999
                xor     edi, eax
3000
                and     edi, ecx
3001
                add     ebp, [esi+28h]
3002
                xor     edi, ebx
3003
                rol     ebx, 0Ah
3004
                lea     ebp, [ebp+edi-70E44324h]
3005
                mov     edi, eax
3006
                rol     ebp, 0Fh
3007
                add     ebp, edx
3008
                xor     edi, ebp
3009
                and     edi, ebx
3010
                add     edx, [esi]
3011
                xor     edi, eax
3012
                rol     eax, 0Ah
3013
                lea     edx, [edx+edi-70E44324h]
3014
                mov     edi, ebp
3015
                rol     edx, 0Eh
3016
                add     edx, ecx
3017
                xor     edi, edx
3018
                and     edi, eax
3019
                add     ecx, [esi+20h]
3020
                xor     edi, ebp
3021
                rol     ebp, 0Ah
3022
                lea     ecx, [ecx+edi-70E44324h]
3023
                mov     edi, edx
3024
                rol     ecx, 0Fh
3025
                add     ecx, ebx
3026
                xor     edi, ecx
3027
                and     edi, ebp
3028
                add     ebx, [esi+30h]
3029
                xor     edi, edx
3030
                rol     edx, 0Ah
3031
                lea     ebx, [ebx+edi-70E44324h]
3032
                mov     edi, ecx
3033
                rol     ebx, 9
3034
                add     ebx, eax
3035
                xor     edi, ebx
3036
                and     edi, edx
3037
                add     eax, [esi+10h]
3038
                xor     edi, ecx
3039
                rol     ecx, 0Ah
3040
                lea     eax, [eax+edi-70E44324h]
3041
                mov     edi, ebx
3042
                rol     eax, 8
3043
                add     eax, ebp
3044
                xor     edi, eax
3045
                and     edi, ecx
3046
                add     ebp, [esi+34h]
3047
                xor     edi, ebx
3048
                rol     ebx, 0Ah
3049
                lea     ebp, [ebp+edi-70E44324h]
3050
                mov     edi, eax
3051
                rol     ebp, 9
3052
                add     ebp, edx
3053
                xor     edi, ebp
3054
                and     edi, ebx
3055
                add     edx, [esi+0Ch]
3056
                xor     edi, eax
3057
                rol     eax, 0Ah
3058
                lea     edx, [edx+edi-70E44324h]
3059
                mov     edi, ebp
3060
                rol     edx, 0Eh
3061
                add     edx, ecx
3062
                xor     edi, edx
3063
                and     edi, eax
3064
                add     ecx, [esi+1Ch]
3065
                xor     edi, ebp
3066
                rol     ebp, 0Ah
3067
                lea     ecx, [ecx+edi-70E44324h]
3068
                mov     edi, edx
3069
                rol     ecx, 5
3070
                add     ecx, ebx
3071
                xor     edi, ecx
3072
                and     edi, ebp
3073
                add     ebx, [esi+3Ch]
3074
                xor     edi, edx
3075
                rol     edx, 0Ah
3076
                lea     ebx, [ebx+edi-70E44324h]
3077
                mov     edi, ecx
3078
                rol     ebx, 6
3079
                add     ebx, eax
3080
                xor     edi, ebx
3081
                and     edi, edx
3082
                add     eax, [esi+38h]
3083
                xor     edi, ecx
3084
                rol     ecx, 0Ah
3085
                lea     eax, [eax+edi-70E44324h]
3086
                mov     edi, ebx
3087
                rol     eax, 8
3088
                add     eax, ebp
3089
                xor     edi, eax
3090
                and     edi, ecx
3091
                add     ebp, [esi+14h]
3092
                xor     edi, ebx
3093
                rol     ebx, 0Ah
3094
                lea     ebp, [ebp+edi-70E44324h]
3095
                mov     edi, eax
3096
                rol     ebp, 6
3097
                add     ebp, edx
3098
                xor     edi, ebp
3099
                and     edi, ebx
3100
                add     edx, [esi+18h]
3101
                xor     edi, eax
3102
                rol     eax, 0Ah
3103
                lea     edx, [edx+edi-70E44324h]
3104
                mov     edi, ebp
3105
                rol     edx, 5
3106
                add     edx, ecx
3107
                xor     edi, edx
3108
                and     edi, eax
3109
                add     ecx, [esi+8]
3110
                xor     edi, ebp
3111
                rol     ebp, 0Ah
3112
                lea     ecx, [ecx+edi-70E44324h]
3113
                mov     edi, edx
3114
                rol     ecx, 0Ch
3115
                add     ecx, ebx
3116
                mov     edi, ebp
3117
                xor     edi, 0FFFFFFFFh
3118
                or      edi, edx
3119
                add     ebx, [esi+10h]
3120
                xor     edi, ecx
3121
                rol     edx, 0Ah
3122
                lea     ebx, [ebx+edi-56AC02B2h]
3123
                mov     edi, edx
3124
                rol     ebx, 9
3125
                add     ebx, eax
3126
                xor     edi, 0FFFFFFFFh
3127
                or      edi, ecx
3128
                add     eax, [esi]
3129
                xor     edi, ebx
3130
                rol     ecx, 0Ah
3131
                lea     eax, [eax+edi-56AC02B2h]
3132
                mov     edi, ecx
3133
                rol     eax, 0Fh
3134
                add     eax, ebp
3135
                xor     edi, 0FFFFFFFFh
3136
                or      edi, ebx
3137
                add     ebp, [esi+14h]
3138
                xor     edi, eax
3139
                rol     ebx, 0Ah
3140
                lea     ebp, [ebp+edi-56AC02B2h]
3141
                mov     edi, ebx
3142
                rol     ebp, 5
3143
                add     ebp, edx
3144
                xor     edi, 0FFFFFFFFh
3145
                or      edi, eax
3146
                add     edx, [esi+24h]
3147
                xor     edi, ebp
3148
                rol     eax, 0Ah
3149
                lea     edx, [edx+edi-56AC02B2h]
3150
                mov     edi, eax
3151
                rol     edx, 0Bh
3152
                add     edx, ecx
3153
                xor     edi, 0FFFFFFFFh
3154
                or      edi, ebp
3155
                add     ecx, [esi+1Ch]
3156
                xor     edi, edx
3157
                rol     ebp, 0Ah
3158
                lea     ecx, [ecx+edi-56AC02B2h]
3159
                mov     edi, ebp
3160
                rol     ecx, 6
3161
                add     ecx, ebx
3162
                xor     edi, 0FFFFFFFFh
3163
                or      edi, edx
3164
                add     ebx, [esi+30h]
3165
                xor     edi, ecx
3166
                rol     edx, 0Ah
3167
                lea     ebx, [ebx+edi-56AC02B2h]
3168
                mov     edi, edx
3169
                rol     ebx, 8
3170
                add     ebx, eax
3171
                xor     edi, 0FFFFFFFFh
3172
                or      edi, ecx
3173
                add     eax, [esi+8]
3174
                xor     edi, ebx
3175
                rol     ecx, 0Ah
3176
                lea     eax, [eax+edi-56AC02B2h]
3177
                mov     edi, ecx
3178
                rol     eax, 0Dh
3179
                add     eax, ebp
3180
                xor     edi, 0FFFFFFFFh
3181
                or      edi, ebx
3182
                add     ebp, [esi+28h]
3183
                xor     edi, eax
3184
                rol     ebx, 0Ah
3185
                lea     ebp, [ebp+edi-56AC02B2h]
3186
                mov     edi, ebx
3187
                rol     ebp, 0Ch
3188
                add     ebp, edx
3189
                xor     edi, 0FFFFFFFFh
3190
                or      edi, eax
3191
                add     edx, [esi+38h]
3192
                xor     edi, ebp
3193
                rol     eax, 0Ah
3194
                lea     edx, [edx+edi-56AC02B2h]
3195
                mov     edi, eax
3196
                rol     edx, 5
3197
                add     edx, ecx
3198
                xor     edi, 0FFFFFFFFh
3199
                or      edi, ebp
3200
                add     ecx, [esi+4]
3201
                xor     edi, edx
3202
                rol     ebp, 0Ah
3203
                lea     ecx, [ecx+edi-56AC02B2h]
3204
                mov     edi, ebp
3205
                rol     ecx, 0Ch
3206
                add     ecx, ebx
3207
                xor     edi, 0FFFFFFFFh
3208
                or      edi, edx
3209
                add     ebx, [esi+0Ch]
3210
                xor     edi, ecx
3211
                rol     edx, 0Ah
3212
                lea     ebx, [ebx+edi-56AC02B2h]
3213
                mov     edi, edx
3214
                rol     ebx, 0Dh
3215
                add     ebx, eax
3216
                xor     edi, 0FFFFFFFFh
3217
                or      edi, ecx
3218
                add     eax, [esi+20h]
3219
                xor     edi, ebx
3220
                rol     ecx, 0Ah
3221
                lea     eax, [eax+edi-56AC02B2h]
3222
                mov     edi, ecx
3223
                rol     eax, 0Eh
3224
                add     eax, ebp
3225
                xor     edi, 0FFFFFFFFh
3226
                or      edi, ebx
3227
                add     ebp, [esi+2Ch]
3228
                xor     edi, eax
3229
                rol     ebx, 0Ah
3230
                lea     ebp, [ebp+edi-56AC02B2h]
3231
                mov     edi, ebx
3232
                rol     ebp, 0Bh
3233
                add     ebp, edx
3234
                xor     edi, 0FFFFFFFFh
3235
                or      edi, eax
3236
                add     edx, [esi+18h]
3237
                xor     edi, ebp
3238
                rol     eax, 0Ah
3239
                lea     edx, [edx+edi-56AC02B2h]
3240
                mov     edi, eax
3241
                rol     edx, 8
3242
                add     edx, ecx
3243
                xor     edi, 0FFFFFFFFh
3244
                or      edi, ebp
3245
                add     ecx, [esi+3Ch]
3246
                xor     edi, edx
3247
                rol     ebp, 0Ah
3248
                lea     ecx, [ecx+edi-56AC02B2h]
3249
                mov     edi, ebp
3250
                rol     ecx, 5
3251
                add     ecx, ebx
3252
                xor     edi, 0FFFFFFFFh
3253
                or      edi, edx
3254
                add     ebx, [esi+34h]
3255
                xor     edi, ecx
3256
                rol     edx, 0Ah
3257
                lea     ebx, [ebx+edi-56AC02B2h]
3258
                mov     edi, edx
3259
                rol     ebx, 6
3260
                add     ebx, eax
3261
                mov     edi, [esp+14h]
3262
                mov     [esp], eax
3263
                mov     [esp+4], ebx
3264
                mov     eax, [edi]
3265
                mov     ebx, [edi+4]
3266
                mov     [esp+8], ecx
3267
                mov     [esp+0Ch], edx
3268
                mov     ecx, [edi+8]
3269
                mov     edx, [edi+0Ch]
3270
                mov     [esp+10h], ebp
3271
                mov     ebp, [edi+10h]
3272
                mov     edi, edx
3273
                xor     edi, 0FFFFFFFFh
3274
                or      edi, ecx
3275
                add     eax, [esi+14h]
3276
                xor     edi, ebx
3277
                rol     ecx, 0Ah
3278
                lea     eax, [eax+edi+50A28BE6h]
3279
                mov     edi, ecx
3280
                rol     eax, 8
3281
                add     eax, ebp
3282
                xor     edi, 0FFFFFFFFh
3283
                or      edi, ebx
3284
                add     ebp, [esi+38h]
3285
                xor     edi, eax
3286
                rol     ebx, 0Ah
3287
                lea     ebp, [ebp+edi+50A28BE6h]
3288
                mov     edi, ebx
3289
                rol     ebp, 9
3290
                add     ebp, edx
3291
                xor     edi, 0FFFFFFFFh
3292
                or      edi, eax
3293
                add     edx, [esi+1Ch]
3294
                xor     edi, ebp
3295
                rol     eax, 0Ah
3296
                lea     edx, [edx+edi+50A28BE6h]
3297
                mov     edi, eax
3298
                rol     edx, 9
3299
                add     edx, ecx
3300
                xor     edi, 0FFFFFFFFh
3301
                or      edi, ebp
3302
                add     ecx, [esi]
3303
                xor     edi, edx
3304
                rol     ebp, 0Ah
3305
                lea     ecx, [ecx+edi+50A28BE6h]
3306
                mov     edi, ebp
3307
                rol     ecx, 0Bh
3308
                add     ecx, ebx
3309
                xor     edi, 0FFFFFFFFh
3310
                or      edi, edx
3311
                add     ebx, [esi+24h]
3312
                xor     edi, ecx
3313
                rol     edx, 0Ah
3314
                lea     ebx, [ebx+edi+50A28BE6h]
3315
                mov     edi, edx
3316
                rol     ebx, 0Dh
3317
                add     ebx, eax
3318
                xor     edi, 0FFFFFFFFh
3319
                or      edi, ecx
3320
                add     eax, [esi+8]
3321
                xor     edi, ebx
3322
                rol     ecx, 0Ah
3323
                lea     eax, [eax+edi+50A28BE6h]
3324
                mov     edi, ecx
3325
                rol     eax, 0Fh
3326
                add     eax, ebp
3327
                xor     edi, 0FFFFFFFFh
3328
                or      edi, ebx
3329
                add     ebp, [esi+2Ch]
3330
                xor     edi, eax
3331
                rol     ebx, 0Ah
3332
                lea     ebp, [ebp+edi+50A28BE6h]
3333
                mov     edi, ebx
3334
                rol     ebp, 0Fh
3335
                add     ebp, edx
3336
                xor     edi, 0FFFFFFFFh
3337
                or      edi, eax
3338
                add     edx, [esi+10h]
3339
                xor     edi, ebp
3340
                rol     eax, 0Ah
3341
                lea     edx, [edx+edi+50A28BE6h]
3342
                mov     edi, eax
3343
                rol     edx, 5
3344
                add     edx, ecx
3345
                xor     edi, 0FFFFFFFFh
3346
                or      edi, ebp
3347
                add     ecx, [esi+34h]
3348
                xor     edi, edx
3349
                rol     ebp, 0Ah
3350
                lea     ecx, [ecx+edi+50A28BE6h]
3351
                mov     edi, ebp
3352
                rol     ecx, 7
3353
                add     ecx, ebx
3354
                xor     edi, 0FFFFFFFFh
3355
                or      edi, edx
3356
                add     ebx, [esi+18h]
3357
                xor     edi, ecx
3358
                rol     edx, 0Ah
3359
                lea     ebx, [ebx+edi+50A28BE6h]
3360
                mov     edi, edx
3361
                rol     ebx, 7
3362
                add     ebx, eax
3363
                xor     edi, 0FFFFFFFFh
3364
                or      edi, ecx
3365
                add     eax, [esi+3Ch]
3366
                xor     edi, ebx
3367
                rol     ecx, 0Ah
3368
                lea     eax, [eax+edi+50A28BE6h]
3369
                mov     edi, ecx
3370
                rol     eax, 8
3371
                add     eax, ebp
3372
                xor     edi, 0FFFFFFFFh
3373
                or      edi, ebx
3374
                add     ebp, [esi+20h]
3375
                xor     edi, eax
3376
                rol     ebx, 0Ah
3377
                lea     ebp, [ebp+edi+50A28BE6h]
3378
                mov     edi, ebx
3379
                rol     ebp, 0Bh
3380
                add     ebp, edx
3381
                xor     edi, 0FFFFFFFFh
3382
                or      edi, eax
3383
                add     edx, [esi+4]
3384
                xor     edi, ebp
3385
                rol     eax, 0Ah
3386
                lea     edx, [edx+edi+50A28BE6h]
3387
                mov     edi, eax
3388
                rol     edx, 0Eh
3389
                add     edx, ecx
3390
                xor     edi, 0FFFFFFFFh
3391
                or      edi, ebp
3392
                add     ecx, [esi+28h]
3393
                xor     edi, edx
3394
                rol     ebp, 0Ah
3395
                lea     ecx, [ecx+edi+50A28BE6h]
3396
                mov     edi, ebp
3397
                rol     ecx, 0Eh
3398
                add     ecx, ebx
3399
                xor     edi, 0FFFFFFFFh
3400
                or      edi, edx
3401
                add     ebx, [esi+0Ch]
3402
                xor     edi, ecx
3403
                rol     edx, 0Ah
3404
                lea     ebx, [ebx+edi+50A28BE6h]
3405
                mov     edi, edx
3406
                rol     ebx, 0Ch
3407
                add     ebx, eax
3408
                xor     edi, 0FFFFFFFFh
3409
                or      edi, ecx
3410
                add     eax, [esi+30h]
3411
                xor     edi, ebx
3412
                rol     ecx, 0Ah
3413
                lea     eax, [eax+edi+50A28BE6h]
3414
                mov     edi, ecx
3415
                rol     eax, 6
3416
                add     eax, ebp
3417
                mov     edi, ebx
3418
                xor     edi, eax
3419
                and     edi, ecx
3420
                add     ebp, [esi+18h]
3421
                xor     edi, ebx
3422
                rol     ebx, 0Ah
3423
                lea     ebp, [ebp+edi+5C4DD124h]
3424
                mov     edi, eax
3425
                rol     ebp, 9
3426
                add     ebp, edx
3427
                xor     edi, ebp
3428
                and     edi, ebx
3429
                add     edx, [esi+2Ch]
3430
                xor     edi, eax
3431
                rol     eax, 0Ah
3432
                lea     edx, [edx+edi+5C4DD124h]
3433
                mov     edi, ebp
3434
                rol     edx, 0Dh
3435
                add     edx, ecx
3436
                xor     edi, edx
3437
                and     edi, eax
3438
                add     ecx, [esi+0Ch]
3439
                xor     edi, ebp
3440
                rol     ebp, 0Ah
3441
                lea     ecx, [ecx+edi+5C4DD124h]
3442
                mov     edi, edx
3443
                rol     ecx, 0Fh
3444
                add     ecx, ebx
3445
                xor     edi, ecx
3446
                and     edi, ebp
3447
                add     ebx, [esi+1Ch]
3448
                xor     edi, edx
3449
                rol     edx, 0Ah
3450
                lea     ebx, [ebx+edi+5C4DD124h]
3451
                mov     edi, ecx
3452
                rol     ebx, 7
3453
                add     ebx, eax
3454
                xor     edi, ebx
3455
                and     edi, edx
3456
                add     eax, [esi]
3457
                xor     edi, ecx
3458
                rol     ecx, 0Ah
3459
                lea     eax, [eax+edi+5C4DD124h]
3460
                mov     edi, ebx
3461
                rol     eax, 0Ch
3462
                add     eax, ebp
3463
                xor     edi, eax
3464
                and     edi, ecx
3465
                add     ebp, [esi+34h]
3466
                xor     edi, ebx
3467
                rol     ebx, 0Ah
3468
                lea     ebp, [ebp+edi+5C4DD124h]
3469
                mov     edi, eax
3470
                rol     ebp, 8
3471
                add     ebp, edx
3472
                xor     edi, ebp
3473
                and     edi, ebx
3474
                add     edx, [esi+14h]
3475
                xor     edi, eax
3476
                rol     eax, 0Ah
3477
                lea     edx, [edx+edi+5C4DD124h]
3478
                mov     edi, ebp
3479
                rol     edx, 9
3480
                add     edx, ecx
3481
                xor     edi, edx
3482
                and     edi, eax
3483
                add     ecx, [esi+28h]
3484
                xor     edi, ebp
3485
                rol     ebp, 0Ah
3486
                lea     ecx, [ecx+edi+5C4DD124h]
3487
                mov     edi, edx
3488
                rol     ecx, 0Bh
3489
                add     ecx, ebx
3490
                xor     edi, ecx
3491
                and     edi, ebp
3492
                add     ebx, [esi+38h]
3493
                xor     edi, edx
3494
                rol     edx, 0Ah
3495
                lea     ebx, [ebx+edi+5C4DD124h]
3496
                mov     edi, ecx
3497
                rol     ebx, 7
3498
                add     ebx, eax
3499
                xor     edi, ebx
3500
                and     edi, edx
3501
                add     eax, [esi+3Ch]
3502
                xor     edi, ecx
3503
                rol     ecx, 0Ah
3504
                lea     eax, [eax+edi+5C4DD124h]
3505
                mov     edi, ebx
3506
                rol     eax, 7
3507
                add     eax, ebp
3508
                xor     edi, eax
3509
                and     edi, ecx
3510
                add     ebp, [esi+20h]
3511
                xor     edi, ebx
3512
                rol     ebx, 0Ah
3513
                lea     ebp, [ebp+edi+5C4DD124h]
3514
                mov     edi, eax
3515
                rol     ebp, 0Ch
3516
                add     ebp, edx
3517
                xor     edi, ebp
3518
                and     edi, ebx
3519
                add     edx, [esi+30h]
3520
                xor     edi, eax
3521
                rol     eax, 0Ah
3522
                lea     edx, [edx+edi+5C4DD124h]
3523
                mov     edi, ebp
3524
                rol     edx, 7
3525
                add     edx, ecx
3526
                xor     edi, edx
3527
                and     edi, eax
3528
                add     ecx, [esi+10h]
3529
                xor     edi, ebp
3530
                rol     ebp, 0Ah
3531
                lea     ecx, [ecx+edi+5C4DD124h]
3532
                mov     edi, edx
3533
                rol     ecx, 6
3534
                add     ecx, ebx
3535
                xor     edi, ecx
3536
                and     edi, ebp
3537
                add     ebx, [esi+24h]
3538
                xor     edi, edx
3539
                rol     edx, 0Ah
3540
                lea     ebx, [ebx+edi+5C4DD124h]
3541
                mov     edi, ecx
3542
                rol     ebx, 0Fh
3543
                add     ebx, eax
3544
                xor     edi, ebx
3545
                and     edi, edx
3546
                add     eax, [esi+4]
3547
                xor     edi, ecx
3548
                rol     ecx, 0Ah
3549
                lea     eax, [eax+edi+5C4DD124h]
3550
                mov     edi, ebx
3551
                rol     eax, 0Dh
3552
                add     eax, ebp
3553
                xor     edi, eax
3554
                and     edi, ecx
3555
                add     ebp, [esi+8]
3556
                xor     edi, ebx
3557
                rol     ebx, 0Ah
3558
                lea     ebp, [ebp+edi+5C4DD124h]
3559
                mov     edi, eax
3560
                rol     ebp, 0Bh
3561
                add     ebp, edx
3562
                mov     edi, eax
3563
                xor     edi, 0FFFFFFFFh
3564
                or      edi, ebp
3565
                add     edx, [esi+3Ch]
3566
                xor     edi, ebx
3567
                rol     eax, 0Ah
3568
                lea     edx, [edx+edi+6D703EF3h]
3569
                mov     edi, ebp
3570
                rol     edx, 9
3571
                xor     edi, 0FFFFFFFFh
3572
                add     edx, ecx
3573
                or      edi, edx
3574
                add     ecx, [esi+14h]
3575
                xor     edi, eax
3576
                rol     ebp, 0Ah
3577
                lea     ecx, [ecx+edi+6D703EF3h]
3578
                mov     edi, edx
3579
                rol     ecx, 7
3580
                xor     edi, 0FFFFFFFFh
3581
                add     ecx, ebx
3582
                or      edi, ecx
3583
                add     ebx, [esi+4]
3584
                xor     edi, ebp
3585
                rol     edx, 0Ah
3586
                lea     ebx, [ebx+edi+6D703EF3h]
3587
                mov     edi, ecx
3588
                rol     ebx, 0Fh
3589
                xor     edi, 0FFFFFFFFh
3590
                add     ebx, eax
3591
                or      edi, ebx
3592
                add     eax, [esi+0Ch]
3593
                xor     edi, edx
3594
                rol     ecx, 0Ah
3595
                lea     eax, [eax+edi+6D703EF3h]
3596
                mov     edi, ebx
3597
                rol     eax, 0Bh
3598
                xor     edi, 0FFFFFFFFh
3599
                add     eax, ebp
3600
                or      edi, eax
3601
                add     ebp, [esi+1Ch]
3602
                xor     edi, ecx
3603
                rol     ebx, 0Ah
3604
                lea     ebp, [ebp+edi+6D703EF3h]
3605
                mov     edi, eax
3606
                rol     ebp, 8
3607
                xor     edi, 0FFFFFFFFh
3608
                add     ebp, edx
3609
                or      edi, ebp
3610
                add     edx, [esi+38h]
3611
                xor     edi, ebx
3612
                rol     eax, 0Ah
3613
                lea     edx, [edx+edi+6D703EF3h]
3614
                mov     edi, ebp
3615
                rol     edx, 6
3616
                xor     edi, 0FFFFFFFFh
3617
                add     edx, ecx
3618
                or      edi, edx
3619
                add     ecx, [esi+18h]
3620
                xor     edi, eax
3621
                rol     ebp, 0Ah
3622
                lea     ecx, [ecx+edi+6D703EF3h]
3623
                mov     edi, edx
3624
                rol     ecx, 6
3625
                xor     edi, 0FFFFFFFFh
3626
                add     ecx, ebx
3627
                or      edi, ecx
3628
                add     ebx, [esi+24h]
3629
                xor     edi, ebp
3630
                rol     edx, 0Ah
3631
                lea     ebx, [ebx+edi+6D703EF3h]
3632
                mov     edi, ecx
3633
                rol     ebx, 0Eh
3634
                xor     edi, 0FFFFFFFFh
3635
                add     ebx, eax
3636
                or      edi, ebx
3637
                add     eax, [esi+2Ch]
3638
                xor     edi, edx
3639
                rol     ecx, 0Ah
3640
                lea     eax, [eax+edi+6D703EF3h]
3641
                mov     edi, ebx
3642
                rol     eax, 0Ch
3643
                xor     edi, 0FFFFFFFFh
3644
                add     eax, ebp
3645
                or      edi, eax
3646
                add     ebp, [esi+20h]
3647
                xor     edi, ecx
3648
                rol     ebx, 0Ah
3649
                lea     ebp, [ebp+edi+6D703EF3h]
3650
                mov     edi, eax
3651
                rol     ebp, 0Dh
3652
                xor     edi, 0FFFFFFFFh
3653
                add     ebp, edx
3654
                or      edi, ebp
3655
                add     edx, [esi+30h]
3656
                xor     edi, ebx
3657
                rol     eax, 0Ah
3658
                lea     edx, [edx+edi+6D703EF3h]
3659
                mov     edi, ebp
3660
                rol     edx, 5
3661
                xor     edi, 0FFFFFFFFh
3662
                add     edx, ecx
3663
                or      edi, edx
3664
                add     ecx, [esi+8]
3665
                xor     edi, eax
3666
                rol     ebp, 0Ah
3667
                lea     ecx, [ecx+edi+6D703EF3h]
3668
                mov     edi, edx
3669
                rol     ecx, 0Eh
3670
                xor     edi, 0FFFFFFFFh
3671
                add     ecx, ebx
3672
                or      edi, ecx
3673
                add     ebx, [esi+28h]
3674
                xor     edi, ebp
3675
                rol     edx, 0Ah
3676
                lea     ebx, [ebx+edi+6D703EF3h]
3677
                mov     edi, ecx
3678
                rol     ebx, 0Dh
3679
                xor     edi, 0FFFFFFFFh
3680
                add     ebx, eax
3681
                or      edi, ebx
3682
                add     eax, [esi]
3683
                xor     edi, edx
3684
                rol     ecx, 0Ah
3685
                lea     eax, [eax+edi+6D703EF3h]
3686
                mov     edi, ebx
3687
                rol     eax, 0Dh
3688
                xor     edi, 0FFFFFFFFh
3689
                add     eax, ebp
3690
                or      edi, eax
3691
                add     ebp, [esi+10h]
3692
                xor     edi, ecx
3693
                rol     ebx, 0Ah
3694
                lea     ebp, [ebp+edi+6D703EF3h]
3695
                mov     edi, eax
3696
                rol     ebp, 7
3697
                xor     edi, 0FFFFFFFFh
3698
                add     ebp, edx
3699
                or      edi, ebp
3700
                add     edx, [esi+34h]
3701
                xor     edi, ebx
3702
                rol     eax, 0Ah
3703
                lea     edx, [edx+edi+6D703EF3h]
3704
                mov     edi, ebp
3705
                rol     edx, 5
3706
                xor     edi, 0FFFFFFFFh
3707
                add     edx, ecx
3708
                mov     edi, eax
3709
                xor     edi, ebp
3710
                add     ecx, [esi+20h]
3711
                and     edi, edx
3712
                xor     edi, eax
3713
                rol     ebp, 0Ah
3714
                lea     ecx, [ecx+edi+7A6D76E9h]
3715
                mov     edi, ebp
3716
                rol     ecx, 0Fh
3717
                add     ecx, ebx
3718
                xor     edi, edx
3719
                add     ebx, [esi+18h]
3720
                and     edi, ecx
3721
                xor     edi, ebp
3722
                rol     edx, 0Ah
3723
                lea     ebx, [ebx+edi+7A6D76E9h]
3724
                mov     edi, edx
3725
                rol     ebx, 5
3726
                add     ebx, eax
3727
                xor     edi, ecx
3728
                add     eax, [esi+10h]
3729
                and     edi, ebx
3730
                xor     edi, edx
3731
                rol     ecx, 0Ah
3732
                lea     eax, [eax+edi+7A6D76E9h]
3733
                mov     edi, ecx
3734
                rol     eax, 8
3735
                add     eax, ebp
3736
                xor     edi, ebx
3737
                add     ebp, [esi+4]
3738
                and     edi, eax
3739
                xor     edi, ecx
3740
                rol     ebx, 0Ah
3741
                lea     ebp, [ebp+edi+7A6D76E9h]
3742
                mov     edi, ebx
3743
                rol     ebp, 0Bh
3744
                add     ebp, edx
3745
                xor     edi, eax
3746
                add     edx, [esi+0Ch]
3747
                and     edi, ebp
3748
                xor     edi, ebx
3749
                rol     eax, 0Ah
3750
                lea     edx, [edx+edi+7A6D76E9h]
3751
                mov     edi, eax
3752
                rol     edx, 0Eh
3753
                add     edx, ecx
3754
                xor     edi, ebp
3755
                add     ecx, [esi+2Ch]
3756
                and     edi, edx
3757
                xor     edi, eax
3758
                rol     ebp, 0Ah
3759
                lea     ecx, [ecx+edi+7A6D76E9h]
3760
                mov     edi, ebp
3761
                rol     ecx, 0Eh
3762
                add     ecx, ebx
3763
                xor     edi, edx
3764
                add     ebx, [esi+3Ch]
3765
                and     edi, ecx
3766
                xor     edi, ebp
3767
                rol     edx, 0Ah
3768
                lea     ebx, [ebx+edi+7A6D76E9h]
3769
                mov     edi, edx
3770
                rol     ebx, 6
3771
                add     ebx, eax
3772
                xor     edi, ecx
3773
                add     eax, [esi]
3774
                and     edi, ebx
3775
                xor     edi, edx
3776
                rol     ecx, 0Ah
3777
                lea     eax, [eax+edi+7A6D76E9h]
3778
                mov     edi, ecx
3779
                rol     eax, 0Eh
3780
                add     eax, ebp
3781
                xor     edi, ebx
3782
                add     ebp, [esi+14h]
3783
                and     edi, eax
3784
                xor     edi, ecx
3785
                rol     ebx, 0Ah
3786
                lea     ebp, [ebp+edi+7A6D76E9h]
3787
                mov     edi, ebx
3788
                rol     ebp, 6
3789
                add     ebp, edx
3790
                xor     edi, eax
3791
                add     edx, [esi+30h]
3792
                and     edi, ebp
3793
                xor     edi, ebx
3794
                rol     eax, 0Ah
3795
                lea     edx, [edx+edi+7A6D76E9h]
3796
                mov     edi, eax
3797
                rol     edx, 9
3798
                add     edx, ecx
3799
                xor     edi, ebp
3800
                add     ecx, [esi+8]
3801
                and     edi, edx
3802
                xor     edi, eax
3803
                rol     ebp, 0Ah
3804
                lea     ecx, [ecx+edi+7A6D76E9h]
3805
                mov     edi, ebp
3806
                rol     ecx, 0Ch
3807
                add     ecx, ebx
3808
                xor     edi, edx
3809
                add     ebx, [esi+34h]
3810
                and     edi, ecx
3811
                xor     edi, ebp
3812
                rol     edx, 0Ah
3813
                lea     ebx, [ebx+edi+7A6D76E9h]
3814
                mov     edi, edx
3815
                rol     ebx, 9
3816
                add     ebx, eax
3817
                xor     edi, ecx
3818
                add     eax, [esi+24h]
3819
                and     edi, ebx
3820
                xor     edi, edx
3821
                rol     ecx, 0Ah
3822
                lea     eax, [eax+edi+7A6D76E9h]
3823
                mov     edi, ecx
3824
                rol     eax, 0Ch
3825
                add     eax, ebp
3826
                xor     edi, ebx
3827
                add     ebp, [esi+1Ch]
3828
                and     edi, eax
3829
                xor     edi, ecx
3830
                rol     ebx, 0Ah
3831
                lea     ebp, [ebp+edi+7A6D76E9h]
3832
                mov     edi, ebx
3833
                rol     ebp, 5
3834
                add     ebp, edx
3835
                xor     edi, eax
3836
                add     edx, [esi+28h]
3837
                and     edi, ebp
3838
                xor     edi, ebx
3839
                rol     eax, 0Ah
3840
                lea     edx, [edx+edi+7A6D76E9h]
3841
                mov     edi, eax
3842
                rol     edx, 0Fh
3843
                add     edx, ecx
3844
                xor     edi, ebp
3845
                add     ecx, [esi+38h]
3846
                and     edi, edx
3847
                xor     edi, eax
3848
                rol     ebp, 0Ah
3849
                lea     ecx, [ecx+edi+7A6D76E9h]
3850
                mov     edi, ebp
3851
                rol     ecx, 8
3852
                add     ecx, ebx
3853
                xor     edi, edx
3854
                xor     edi, ecx
3855
                add     ebx, [esi+30h]
3856
                rol     edx, 0Ah
3857
                add     ebx, edi
3858
                mov     edi, edx
3859
                rol     ebx, 8
3860
                add     ebx, eax
3861
                xor     edi, ecx
3862
                xor     edi, ebx
3863
                add     eax, [esi+3Ch]
3864
                rol     ecx, 0Ah
3865
                add     eax, edi
3866
                mov     edi, ecx
3867
                rol     eax, 5
3868
                add     eax, ebp
3869
                xor     edi, ebx
3870
                xor     edi, eax
3871
                add     ebp, [esi+28h]
3872
                rol     ebx, 0Ah
3873
                add     ebp, edi
3874
                mov     edi, ebx
3875
                rol     ebp, 0Ch
3876
                add     ebp, edx
3877
                xor     edi, eax
3878
                xor     edi, ebp
3879
                add     edx, [esi+10h]
3880
                rol     eax, 0Ah
3881
                add     edx, edi
3882
                mov     edi, eax
3883
                rol     edx, 9
3884
                add     edx, ecx
3885
                xor     edi, ebp
3886
                xor     edi, edx
3887
                add     ecx, [esi+4]
3888
                rol     ebp, 0Ah
3889
                add     ecx, edi
3890
                mov     edi, ebp
3891
                rol     ecx, 0Ch
3892
                add     ecx, ebx
3893
                xor     edi, edx
3894
                xor     edi, ecx
3895
                add     ebx, [esi+14h]
3896
                rol     edx, 0Ah
3897
                add     ebx, edi
3898
                mov     edi, edx
3899
                rol     ebx, 5
3900
                add     ebx, eax
3901
                xor     edi, ecx
3902
                xor     edi, ebx
3903
                add     eax, [esi+20h]
3904
                rol     ecx, 0Ah
3905
                add     eax, edi
3906
                mov     edi, ecx
3907
                rol     eax, 0Eh
3908
                add     eax, ebp
3909
                xor     edi, ebx
3910
                xor     edi, eax
3911
                add     ebp, [esi+1Ch]
3912
                rol     ebx, 0Ah
3913
                add     ebp, edi
3914
                mov     edi, ebx
3915
                rol     ebp, 6
3916
                add     ebp, edx
3917
                xor     edi, eax
3918
                xor     edi, ebp
3919
                add     edx, [esi+18h]
3920
                rol     eax, 0Ah
3921
                add     edx, edi
3922
                mov     edi, eax
3923
                rol     edx, 8
3924
                add     edx, ecx
3925
                xor     edi, ebp
3926
                xor     edi, edx
3927
                add     ecx, [esi+8]
3928
                rol     ebp, 0Ah
3929
                add     ecx, edi
3930
                mov     edi, ebp
3931
                rol     ecx, 0Dh
3932
                add     ecx, ebx
3933
                xor     edi, edx
3934
                xor     edi, ecx
3935
                add     ebx, [esi+34h]
3936
                rol     edx, 0Ah
3937
                add     ebx, edi
3938
                mov     edi, edx
3939
                rol     ebx, 6
3940
                add     ebx, eax
3941
                xor     edi, ecx
3942
                xor     edi, ebx
3943
                add     eax, [esi+38h]
3944
                rol     ecx, 0Ah
3945
                add     eax, edi
3946
                mov     edi, ecx
3947
                rol     eax, 5
3948
                add     eax, ebp
3949
                xor     edi, ebx
3950
                xor     edi, eax
3951
                add     ebp, [esi]
3952
                rol     ebx, 0Ah
3953
                add     ebp, edi
3954
                mov     edi, ebx
3955
                rol     ebp, 0Fh
3956
                add     ebp, edx
3957
                xor     edi, eax
3958
                xor     edi, ebp
3959
                add     edx, [esi+0Ch]
3960
                rol     eax, 0Ah
3961
                add     edx, edi
3962
                mov     edi, eax
3963
                rol     edx, 0Dh
3964
                add     edx, ecx
3965
                xor     edi, ebp
3966
                xor     edi, edx
3967
                add     ecx, [esi+24h]
3968
                rol     ebp, 0Ah
3969
                add     ecx, edi
3970
                mov     edi, ebp
3971
                rol     ecx, 0Bh
3972
                add     ecx, ebx
3973
                xor     edi, edx
3974
                xor     edi, ecx
3975
                add     ebx, [esi+2Ch]
3976
                rol     edx, 0Ah
3977
                add     ebx, edi
3978
                mov     edi, edx
3979
                rol     ebx, 0Bh
3980
                add     ebx, eax
3981
                mov     edi, [esp+14h]
3982
                add     edx, [esp+8]
3983
                mov     esi, [edi+4]
3984
                add     ebp, [esp+0Ch]
3985
                add     edx, esi
3986
                mov     esi, [esp+10h]
3987
                add     ecx, [edi]
3988
                mov     [edi], edx
3989
                mov     edx, [edi+8]
3990
                add     eax, esi
3991
                mov     esi, [edi+0Ch]
3992
                add     ebp, edx
3993
                mov     edx, [esp]
3994
                mov     [edi+4], ebp
3995
                add     eax, esi
3996
                mov     esi, [edi+10h]
3997
                add     ebx, edx
3998
                mov     edx, [esp+4]
3999
                mov     [edi+8], eax
4000
                add     ebx, esi
4001
                add     ecx, edx
4002
                mov     [edi+0Ch], ebx
4003
                add     esp, 18h
4004
                mov     [edi+10h], ecx
4005
4006
                pop     ebp
4007
                pop     edi
4008
                pop     esi
4009
                pop     ebx
4010
end;
4011
{$ENDIF}
4012
4013
{$IFDEF THash_RipeMD256_asm}
4014
procedure THash_RipeMD256.DoTransform(Buffer: PUInt32Array);
4015
asm
4016
                push    ebx
4017
                push    esi
4018
                push    edi
4019
                lea     edi, [eax].THash_RipeMD256.FDigest
4020
                mov     esi, edx
4021
                push    ebp
4022
4023
                mov     eax, [edi]
4024
                mov     ebx, [edi+4]
4025
                push    edi
4026
                mov     ecx, [edi+8]
4027
                mov     edx, [edi+0Ch]
4028
                add     esp, 0FFFFFFE0h
4029
                mov     edi, ecx
4030
                xor     edi, edx
4031
                mov     ebp, [esi]
4032
                xor     edi, ebx
4033
                add     eax, ebp
4034
                add     eax, edi
4035
                mov     edi, ebx
4036
                rol     eax, 0Bh
4037
                xor     edi, ecx
4038
                mov     ebp, [esi+4]
4039
                xor     edi, eax
4040
                add     edx, ebp
4041
                add     edx, edi
4042
                mov     edi, eax
4043
                rol     edx, 0Eh
4044
                xor     edi, ebx
4045
                mov     ebp, [esi+8]
4046
                xor     edi, edx
4047
                add     ecx, ebp
4048
                add     ecx, edi
4049
                mov     edi, edx
4050
                rol     ecx, 0Fh
4051
                xor     edi, eax
4052
                mov     ebp, [esi+0Ch]
4053
                xor     edi, ecx
4054
                add     ebx, ebp
4055
                add     ebx, edi
4056
                mov     edi, ecx
4057
                rol     ebx, 0Ch
4058
                xor     edi, edx
4059
                mov     ebp, [esi+10h]
4060
                xor     edi, ebx
4061
                add     eax, ebp
4062
                add     eax, edi
4063
                mov     edi, ebx
4064
                rol     eax, 5
4065
                xor     edi, ecx
4066
                mov     ebp, [esi+14h]
4067
                xor     edi, eax
4068
                add     edx, ebp
4069
                add     edx, edi
4070
                mov     edi, eax
4071
                rol     edx, 8
4072
                xor     edi, ebx
4073
                mov     ebp, [esi+18h]
4074
                xor     edi, edx
4075
                add     ecx, ebp
4076
                add     ecx, edi
4077
                mov     edi, edx
4078
                rol     ecx, 7
4079
                xor     edi, eax
4080
                mov     ebp, [esi+1Ch]
4081
                xor     edi, ecx
4082
                add     ebx, ebp
4083
                add     ebx, edi
4084
                mov     edi, ecx
4085
                rol     ebx, 9
4086
                xor     edi, edx
4087
                mov     ebp, [esi+20h]
4088
                xor     edi, ebx
4089
                add     eax, ebp
4090
                add     eax, edi
4091
                mov     edi, ebx
4092
                rol     eax, 0Bh
4093
                xor     edi, ecx
4094
                mov     ebp, [esi+24h]
4095
                xor     edi, eax
4096
                add     edx, ebp
4097
                add     edx, edi
4098
                mov     edi, eax
4099
                rol     edx, 0Dh
4100
                xor     edi, ebx
4101
                mov     ebp, [esi+28h]
4102
                xor     edi, edx
4103
                add     ecx, ebp
4104
                add     ecx, edi
4105
                mov     edi, edx
4106
                rol     ecx, 0Eh
4107
                xor     edi, eax
4108
                mov     ebp, [esi+2Ch]
4109
                xor     edi, ecx
4110
                add     ebx, ebp
4111
                add     ebx, edi
4112
                mov     edi, ecx
4113
                rol     ebx, 0Fh
4114
                xor     edi, edx
4115
                mov     ebp, [esi+30h]
4116
                xor     edi, ebx
4117
                add     eax, ebp
4118
                add     eax, edi
4119
                mov     edi, ebx
4120
                rol     eax, 6
4121
                xor     edi, ecx
4122
                mov     ebp, [esi+34h]
4123
                xor     edi, eax
4124
                add     edx, ebp
4125
                add     edx, edi
4126
                mov     edi, eax
4127
                rol     edx, 7
4128
                xor     edi, ebx
4129
                mov     ebp, [esi+38h]
4130
                xor     edi, edx
4131
                add     ecx, ebp
4132
                add     ecx, edi
4133
                mov     edi, edx
4134
                rol     ecx, 9
4135
                xor     edi, eax
4136
                mov     ebp, [esi+3Ch]
4137
                xor     edi, ecx
4138
                add     ebx, ebp
4139
                add     ebx, edi
4140
                rol     ebx, 8
4141
                mov     edi, [esp+20h]
4142
                mov     [esp], eax
4143
                mov     [esp+4], ebx
4144
                mov     ebp, [esi+14h]
4145
                mov     eax, [edi+10h]
4146
                mov     [esp+8], ecx
4147
                mov     ebx, [edi+14h]
4148
                mov     ecx, [edi+18h]
4149
                mov     [esp+0Ch], edx
4150
                mov     edx, [edi+1Ch]
4151
                mov     edi, ecx
4152
                xor     edi, ebx
4153
                lea     eax, [eax+ebp+50A28BE6h]
4154
                and     edi, edx
4155
                mov     ebp, [esi+38h]
4156
                xor     edi, ecx
4157
                add     eax, edi
4158
                mov     edi, ebx
4159
                rol     eax, 8
4160
                xor     edi, eax
4161
                lea     edx, [edx+ebp+50A28BE6h]
4162
                and     edi, ecx
4163
                mov     ebp, [esi+1Ch]
4164
                xor     edi, ebx
4165
                add     edx, edi
4166
                mov     edi, eax
4167
                rol     edx, 9
4168
                xor     edi, edx
4169
                lea     ecx, [ecx+ebp+50A28BE6h]
4170
                and     edi, ebx
4171
                mov     ebp, [esi]
4172
                xor     edi, eax
4173
                add     ecx, edi
4174
                mov     edi, edx
4175
                rol     ecx, 9
4176
                xor     edi, ecx
4177
                lea     ebx, [ebx+ebp+50A28BE6h]
4178
                and     edi, eax
4179
                mov     ebp, [esi+24h]
4180
                xor     edi, edx
4181
                add     ebx, edi
4182
                mov     edi, ecx
4183
                rol     ebx, 0Bh
4184
                xor     edi, ebx
4185
                lea     eax, [eax+ebp+50A28BE6h]
4186
                and     edi, edx
4187
                mov     ebp, [esi+8]
4188
                xor     edi, ecx
4189
                add     eax, edi
4190
                mov     edi, ebx
4191
                rol     eax, 0Dh
4192
                xor     edi, eax
4193
                lea     edx, [edx+ebp+50A28BE6h]
4194
                and     edi, ecx
4195
                mov     ebp, [esi+2Ch]
4196
                xor     edi, ebx
4197
                add     edx, edi
4198
                mov     edi, eax
4199
                rol     edx, 0Fh
4200
                xor     edi, edx
4201
                lea     ecx, [ecx+ebp+50A28BE6h]
4202
                and     edi, ebx
4203
                mov     ebp, [esi+10h]
4204
                xor     edi, eax
4205
                add     ecx, edi
4206
                mov     edi, edx
4207
                rol     ecx, 0Fh
4208
                xor     edi, ecx
4209
                lea     ebx, [ebx+ebp+50A28BE6h]
4210
                and     edi, eax
4211
                mov     ebp, [esi+34h]
4212
                xor     edi, edx
4213
                add     ebx, edi
4214
                mov     edi, ecx
4215
                rol     ebx, 5
4216
                xor     edi, ebx
4217
                lea     eax, [eax+ebp+50A28BE6h]
4218
                and     edi, edx
4219
                mov     ebp, [esi+18h]
4220
                xor     edi, ecx
4221
                add     eax, edi
4222
                mov     edi, ebx
4223
                rol     eax, 7
4224
                xor     edi, eax
4225
                lea     edx, [edx+ebp+50A28BE6h]
4226
                and     edi, ecx
4227
                mov     ebp, [esi+3Ch]
4228
                xor     edi, ebx
4229
                add     edx, edi
4230
                mov     edi, eax
4231
                rol     edx, 7
4232
                xor     edi, edx
4233
                lea     ecx, [ecx+ebp+50A28BE6h]
4234
                and     edi, ebx
4235
                mov     ebp, [esi+20h]
4236
                xor     edi, eax
4237
                add     ecx, edi
4238
                mov     edi, edx
4239
                rol     ecx, 8
4240
                xor     edi, ecx
4241
                lea     ebx, [ebx+ebp+50A28BE6h]
4242
                and     edi, eax
4243
                mov     ebp, [esi+4]
4244
                xor     edi, edx
4245
                add     ebx, edi
4246
                mov     edi, ecx
4247
                rol     ebx, 0Bh
4248
                xor     edi, ebx
4249
                lea     eax, [eax+ebp+50A28BE6h]
4250
                and     edi, edx
4251
                mov     ebp, [esi+28h]
4252
                xor     edi, ecx
4253
                add     eax, edi
4254
                mov     edi, ebx
4255
                rol     eax, 0Eh
4256
                xor     edi, eax
4257
                lea     edx, [edx+ebp+50A28BE6h]
4258
                and     edi, ecx
4259
                mov     ebp, [esi+0Ch]
4260
                xor     edi, ebx
4261
                add     edx, edi
4262
                mov     edi, eax
4263
                rol     edx, 0Eh
4264
                xor     edi, edx
4265
                lea     ecx, [ecx+ebp+50A28BE6h]
4266
                and     edi, ebx
4267
                mov     ebp, [esi+30h]
4268
                xor     edi, eax
4269
                add     ecx, edi
4270
                mov     edi, edx
4271
                rol     ecx, 0Ch
4272
                xor     edi, ecx
4273
                lea     ebx, [ebx+ebp+50A28BE6h]
4274
                and     edi, eax
4275
                mov     ebp, [esi+1Ch]
4276
                xor     edi, edx
4277
                add     ebx, edi
4278
                rol     ebx, 6
4279
                mov     [esp+14h], ebx
4280
                mov     ebx, [esp+4]
4281
                mov     [esp+1Ch], edx
4282
                mov     [esp+18h], ecx
4283
                mov     edx, [esp]
4284
                mov     ecx, [esp+8]
4285
                mov     [esp+10h], edx
4286
                mov     edx, [esp+0Ch]
4287
                mov     edi, ecx
4288
                xor     edi, edx
4289
                lea     eax, [eax+ebp+5A827999h]
4290
                and     edi, ebx
4291
                mov     ebp, ebx
4292
                xor     edi, edx
4293
                xor     ebp, ecx
4294
                add     eax, edi
4295
                mov     edi, [esi+10h]
4296
                rol     eax, 7
4297
                and     ebp, eax
4298
                lea     edx, [edx+edi+5A827999h]
4299
                xor     ebp, ecx
4300
                mov     edi, eax
4301
                add     edx, ebp
4302
                mov     ebp, [esi+34h]
4303
                rol     edx, 6
4304
                xor     edi, ebx
4305
                lea     ecx, [ecx+ebp+5A827999h]
4306
                and     edi, edx
4307
                mov     ebp, edx
4308
                xor     edi, ebx
4309
                xor     ebp, eax
4310
                add     ecx, edi
4311
                mov     edi, [esi+4]
4312
                rol     ecx, 8
4313
                and     ebp, ecx
4314
                lea     ebx, [ebx+edi+5A827999h]
4315
                xor     ebp, eax
4316
                mov     edi, ecx
4317
                add     ebx, ebp
4318
                mov     ebp, [esi+28h]
4319
                rol     ebx, 0Dh
4320
                xor     edi, edx
4321
                lea     eax, [eax+ebp+5A827999h]
4322
                and     edi, ebx
4323
                mov     ebp, ebx
4324
                xor     edi, edx
4325
                xor     ebp, ecx
4326
                add     eax, edi
4327
                mov     edi, [esi+18h]
4328
                rol     eax, 0Bh
4329
                and     ebp, eax
4330
                lea     edx, [edx+edi+5A827999h]
4331
                xor     ebp, ecx
4332
                mov     edi, eax
4333
                add     edx, ebp
4334
                mov     ebp, [esi+3Ch]
4335
                rol     edx, 9
4336
                xor     edi, ebx
4337
                lea     ecx, [ecx+ebp+5A827999h]
4338
                and     edi, edx
4339
                mov     ebp, edx
4340
                xor     edi, ebx
4341
                xor     ebp, eax
4342
                add     ecx, edi
4343
                mov     edi, [esi+0Ch]
4344
                rol     ecx, 7
4345
                and     ebp, ecx
4346
                lea     ebx, [ebx+edi+5A827999h]
4347
                xor     ebp, eax
4348
                mov     edi, ecx
4349
                add     ebx, ebp
4350
                mov     ebp, [esi+30h]
4351
                rol     ebx, 0Fh
4352
                xor     edi, edx
4353
                lea     eax, [eax+ebp+5A827999h]
4354
                and     edi, ebx
4355
                mov     ebp, ebx
4356
                xor     edi, edx
4357
                xor     ebp, ecx
4358
                add     eax, edi
4359
                mov     edi, [esi]
4360
                rol     eax, 7
4361
                and     ebp, eax
4362
                lea     edx, [edx+edi+5A827999h]
4363
                xor     ebp, ecx
4364
                mov     edi, eax
4365
                add     edx, ebp
4366
                mov     ebp, [esi+24h]
4367
                rol     edx, 0Ch
4368
                xor     edi, ebx
4369
                lea     ecx, [ecx+ebp+5A827999h]
4370
                and     edi, edx
4371
                mov     ebp, edx
4372
                xor     edi, ebx
4373
                xor     ebp, eax
4374
                add     ecx, edi
4375
                mov     edi, [esi+14h]
4376
                rol     ecx, 0Fh
4377
                and     ebp, ecx
4378
                lea     ebx, [ebx+edi+5A827999h]
4379
                xor     ebp, eax
4380
                mov     edi, ecx
4381
                add     ebx, ebp
4382
                mov     ebp, [esi+8]
4383
                rol     ebx, 9
4384
                xor     edi, edx
4385
                lea     eax, [eax+ebp+5A827999h]
4386
                and     edi, ebx
4387
                mov     ebp, ebx
4388
                xor     edi, edx
4389
                xor     ebp, ecx
4390
                add     eax, edi
4391
                mov     edi, [esi+38h]
4392
                rol     eax, 0Bh
4393
                and     ebp, eax
4394
                lea     edx, [edx+edi+5A827999h]
4395
                xor     ebp, ecx
4396
                mov     edi, eax
4397
                add     edx, ebp
4398
                mov     ebp, [esi+2Ch]
4399
                rol     edx, 7
4400
                xor     edi, ebx
4401
                lea     ecx, [ecx+ebp+5A827999h]
4402
                and     edi, edx
4403
                mov     ebp, edx
4404
                xor     edi, ebx
4405
                xor     ebp, eax
4406
                add     ecx, edi
4407
                mov     edi, [esi+20h]
4408
                rol     ecx, 0Dh
4409
                and     ebp, ecx
4410
                lea     ebx, [ebx+edi+5A827999h]
4411
                xor     ebp, eax
4412
                add     ebx, ebp
4413
                mov     ebp, [esi+18h]
4414
                rol     ebx, 0Ch
4415
                mov     [esp], eax
4416
                mov     [esp+4], ebx
4417
                mov     eax, [esp+10h]
4418
                mov     ebx, [esp+14h]
4419
                mov     [esp+8], ecx
4420
                mov     ecx, [esp+18h]
4421
                mov     [esp+0Ch], edx
4422
                mov     edx, [esp+1Ch]
4423
                mov     edi, ecx
4424
                xor     edi, 0FFFFFFFFh
4425
                lea     eax, [eax+ebp+5C4DD124h]
4426
                or      edi, ebx
4427
                mov     ebp, [esi+2Ch]
4428
                xor     edi, edx
4429
                add     eax, edi
4430
                mov     edi, ebx
4431
                rol     eax, 9
4432
                xor     edi, 0FFFFFFFFh
4433
                lea     edx, [edx+ebp+5C4DD124h]
4434
                or      edi, eax
4435
                mov     ebp, [esi+0Ch]
4436
                xor     edi, ecx
4437
                add     edx, edi
4438
                mov     edi, eax
4439
                rol     edx, 0Dh
4440
                xor     edi, 0FFFFFFFFh
4441
                lea     ecx, [ecx+ebp+5C4DD124h]
4442
                or      edi, edx
4443
                mov     ebp, [esi+1Ch]
4444
                xor     edi, ebx
4445
                add     ecx, edi
4446
                mov     edi, edx
4447
                rol     ecx, 0Fh
4448
                xor     edi, 0FFFFFFFFh
4449
                lea     ebx, [ebx+ebp+5C4DD124h]
4450
                or      edi, ecx
4451
                mov     ebp, [esi]
4452
                xor     edi, eax
4453
                add     ebx, edi
4454
                mov     edi, ecx
4455
                rol     ebx, 7
4456
                xor     edi, 0FFFFFFFFh
4457
                lea     eax, [eax+ebp+5C4DD124h]
4458
                or      edi, ebx
4459
                mov     ebp, [esi+34h]
4460
                xor     edi, edx
4461
                add     eax, edi
4462
                mov     edi, ebx
4463
                rol     eax, 0Ch
4464
                xor     edi, 0FFFFFFFFh
4465
                lea     edx, [edx+ebp+5C4DD124h]
4466
                or      edi, eax
4467
                mov     ebp, [esi+14h]
4468
                xor     edi, ecx
4469
                add     edx, edi
4470
                mov     edi, eax
4471
                rol     edx, 8
4472
                xor     edi, 0FFFFFFFFh
4473
                lea     ecx, [ecx+ebp+5C4DD124h]
4474
                or      edi, edx
4475
                mov     ebp, [esi+28h]
4476
                xor     edi, ebx
4477
                add     ecx, edi
4478
                mov     edi, edx
4479
                rol     ecx, 9
4480
                xor     edi, 0FFFFFFFFh
4481
                lea     ebx, [ebx+ebp+5C4DD124h]
4482
                or      edi, ecx
4483
                mov     ebp, [esi+38h]
4484
                xor     edi, eax
4485
                add     ebx, edi
4486
                mov     edi, ecx
4487
                rol     ebx, 0Bh
4488
                xor     edi, 0FFFFFFFFh
4489
                lea     eax, [eax+ebp+5C4DD124h]
4490
                or      edi, ebx
4491
                mov     ebp, [esi+3Ch]
4492
                xor     edi, edx
4493
                add     eax, edi
4494
                mov     edi, ebx
4495
                rol     eax, 7
4496
                xor     edi, 0FFFFFFFFh
4497
                lea     edx, [edx+ebp+5C4DD124h]
4498
                or      edi, eax
4499
                mov     ebp, [esi+20h]
4500
                xor     edi, ecx
4501
                add     edx, edi
4502
                mov     edi, eax
4503
                rol     edx, 7
4504
                xor     edi, 0FFFFFFFFh
4505
                lea     ecx, [ecx+ebp+5C4DD124h]
4506
                or      edi, edx
4507
                mov     ebp, [esi+30h]
4508
                xor     edi, ebx
4509
                add     ecx, edi
4510
                mov     edi, edx
4511
                rol     ecx, 0Ch
4512
                xor     edi, 0FFFFFFFFh
4513
                lea     ebx, [ebx+ebp+5C4DD124h]
4514
                or      edi, ecx
4515
                mov     ebp, [esi+10h]
4516
                xor     edi, eax
4517
                add     ebx, edi
4518
                mov     edi, ecx
4519
                rol     ebx, 7
4520
                xor     edi, 0FFFFFFFFh
4521
                lea     eax, [eax+ebp+5C4DD124h]
4522
                or      edi, ebx
4523
                mov     ebp, [esi+24h]
4524
                xor     edi, edx
4525
                add     eax, edi
4526
                mov     edi, ebx
4527
                rol     eax, 6
4528
                xor     edi, 0FFFFFFFFh
4529
                lea     edx, [edx+ebp+5C4DD124h]
4530
                or      edi, eax
4531
                mov     ebp, [esi+4]
4532
                xor     edi, ecx
4533
                add     edx, edi
4534
                mov     edi, eax
4535
                rol     edx, 0Fh
4536
                xor     edi, 0FFFFFFFFh
4537
                lea     ecx, [ecx+ebp+5C4DD124h]
4538
                or      edi, edx
4539
                mov     ebp, [esi+8]
4540
                xor     edi, ebx
4541
                add     ecx, edi
4542
                mov     edi, edx
4543
                rol     ecx, 0Dh
4544
                xor     edi, 0FFFFFFFFh
4545
                lea     ebx, [ebx+ebp+5C4DD124h]
4546
                or      edi, ecx
4547
                mov     ebp, [esi+0Ch]
4548
                xor     edi, eax
4549
                add     ebx, edi
4550
                rol     ebx, 0Bh
4551
                mov     [esp+10h], eax
4552
                mov     [esp+18h], ecx
4553
                mov     eax, [esp]
4554
                mov     ecx, [esp+8]
4555
                mov     [esp+1Ch], edx
4556
                mov     edx, [esp+4]
4557
                mov     [esp+14h], edx
4558
                mov     edx, [esp+0Ch]
4559
                mov     edi, ecx
4560
                xor     edi, 0FFFFFFFFh
4561
                lea     eax, [eax+ebp+6ED9EBA1h]
4562
                or      edi, ebx
4563
                mov     ebp, [esi+28h]
4564
                xor     edi, edx
4565
                add     eax, edi
4566
                mov     edi, ebx
4567
                rol     eax, 0Bh
4568
                xor     edi, 0FFFFFFFFh
4569
                lea     edx, [edx+ebp+6ED9EBA1h]
4570
                or      edi, eax
4571
                mov     ebp, [esi+38h]
4572
                xor     edi, ecx
4573
                add     edx, edi
4574
                mov     edi, eax
4575
                rol     edx, 0Dh
4576
                xor     edi, 0FFFFFFFFh
4577
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4578
                or      edi, edx
4579
                mov     ebp, [esi+10h]
4580
                xor     edi, ebx
4581
                add     ecx, edi
4582
                mov     edi, edx
4583
                rol     ecx, 6
4584
                xor     edi, 0FFFFFFFFh
4585
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4586
                or      edi, ecx
4587
                mov     ebp, [esi+24h]
4588
                xor     edi, eax
4589
                add     ebx, edi
4590
                mov     edi, ecx
4591
                rol     ebx, 7
4592
                xor     edi, 0FFFFFFFFh
4593
                lea     eax, [eax+ebp+6ED9EBA1h]
4594
                or      edi, ebx
4595
                mov     ebp, [esi+3Ch]
4596
                xor     edi, edx
4597
                add     eax, edi
4598
                mov     edi, ebx
4599
                rol     eax, 0Eh
4600
                xor     edi, 0FFFFFFFFh
4601
                lea     edx, [edx+ebp+6ED9EBA1h]
4602
                or      edi, eax
4603
                mov     ebp, [esi+20h]
4604
                xor     edi, ecx
4605
                add     edx, edi
4606
                mov     edi, eax
4607
                rol     edx, 9
4608
                xor     edi, 0FFFFFFFFh
4609
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4610
                or      edi, edx
4611
                mov     ebp, [esi+4]
4612
                xor     edi, ebx
4613
                add     ecx, edi
4614
                mov     edi, edx
4615
                rol     ecx, 0Dh
4616
                xor     edi, 0FFFFFFFFh
4617
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4618
                or      edi, ecx
4619
                mov     ebp, [esi+8]
4620
                xor     edi, eax
4621
                add     ebx, edi
4622
                mov     edi, ecx
4623
                rol     ebx, 0Fh
4624
                xor     edi, 0FFFFFFFFh
4625
                lea     eax, [eax+ebp+6ED9EBA1h]
4626
                or      edi, ebx
4627
                mov     ebp, [esi+1Ch]
4628
                xor     edi, edx
4629
                add     eax, edi
4630
                mov     edi, ebx
4631
                rol     eax, 0Eh
4632
                xor     edi, 0FFFFFFFFh
4633
                lea     edx, [edx+ebp+6ED9EBA1h]
4634
                or      edi, eax
4635
                mov     ebp, [esi]
4636
                xor     edi, ecx
4637
                add     edx, edi
4638
                mov     edi, eax
4639
                rol     edx, 8
4640
                xor     edi, 0FFFFFFFFh
4641
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4642
                or      edi, edx
4643
                mov     ebp, [esi+18h]
4644
                xor     edi, ebx
4645
                add     ecx, edi
4646
                mov     edi, edx
4647
                rol     ecx, 0Dh
4648
                xor     edi, 0FFFFFFFFh
4649
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4650
                or      edi, ecx
4651
                mov     ebp, [esi+34h]
4652
                xor     edi, eax
4653
                add     ebx, edi
4654
                mov     edi, ecx
4655
                rol     ebx, 6
4656
                xor     edi, 0FFFFFFFFh
4657
                lea     eax, [eax+ebp+6ED9EBA1h]
4658
                or      edi, ebx
4659
                mov     ebp, [esi+2Ch]
4660
                xor     edi, edx
4661
                add     eax, edi
4662
                mov     edi, ebx
4663
                rol     eax, 5
4664
                xor     edi, 0FFFFFFFFh
4665
                lea     edx, [edx+ebp+6ED9EBA1h]
4666
                or      edi, eax
4667
                mov     ebp, [esi+14h]
4668
                xor     edi, ecx
4669
                add     edx, edi
4670
                mov     edi, eax
4671
                rol     edx, 0Ch
4672
                xor     edi, 0FFFFFFFFh
4673
                lea     ecx, [ecx+ebp+6ED9EBA1h]
4674
                or      edi, edx
4675
                mov     ebp, [esi+30h]
4676
                xor     edi, ebx
4677
                add     ecx, edi
4678
                mov     edi, edx
4679
                rol     ecx, 7
4680
                xor     edi, 0FFFFFFFFh
4681
                lea     ebx, [ebx+ebp+6ED9EBA1h]
4682
                or      edi, ecx
4683
                mov     ebp, [esi+3Ch]
4684
                xor     edi, eax
4685
                add     ebx, edi
4686
                rol     ebx, 5
4687
                mov     [esp], eax
4688
                mov     [esp+4], ebx
4689
                mov     eax, [esp+10h]
4690
                mov     ebx, [esp+14h]
4691
                mov     [esp+8], ecx
4692
                mov     ecx, [esp+18h]
4693
                mov     [esp+0Ch], edx
4694
                mov     edx, [esp+1Ch]
4695
                mov     edi, ecx
4696
                xor     edi, edx
4697
                lea     eax, [eax+ebp+6D703EF3h]
4698
                and     edi, ebx
4699
                mov     ebp, ebx
4700
                xor     edi, edx
4701
                xor     ebp, ecx
4702
                add     eax, edi
4703
                mov     edi, [esi+14h]
4704
                rol     eax, 9
4705
                and     ebp, eax
4706
                lea     edx, [edx+edi+6D703EF3h]
4707
                xor     ebp, ecx
4708
                mov     edi, eax
4709
                add     edx, ebp
4710
                mov     ebp, [esi+4]
4711
                rol     edx, 7
4712
                xor     edi, ebx
4713
                lea     ecx, [ecx+ebp+6D703EF3h]
4714
                and     edi, edx
4715
                mov     ebp, edx
4716
                xor     edi, ebx
4717
                xor     ebp, eax
4718
                add     ecx, edi
4719
                mov     edi, [esi+0Ch]
4720
                rol     ecx, 0Fh
4721
                and     ebp, ecx
4722
                lea     ebx, [ebx+edi+6D703EF3h]
4723
                xor     ebp, eax
4724
                mov     edi, ecx
4725
                add     ebx, ebp
4726
                mov     ebp, [esi+1Ch]
4727
                rol     ebx, 0Bh
4728
                xor     edi, edx
4729
                lea     eax, [eax+ebp+6D703EF3h]
4730
                and     edi, ebx
4731
                mov     ebp, ebx
4732
                xor     edi, edx
4733
                xor     ebp, ecx
4734
                add     eax, edi
4735
                mov     edi, [esi+38h]
4736
                rol     eax, 8
4737
                and     ebp, eax
4738
                lea     edx, [edx+edi+6D703EF3h]
4739
                xor     ebp, ecx
4740
                mov     edi, eax
4741
                add     edx, ebp
4742
                mov     ebp, [esi+18h]
4743
                rol     edx, 6
4744
                xor     edi, ebx
4745
                lea     ecx, [ecx+ebp+6D703EF3h]
4746
                and     edi, edx
4747
                mov     ebp, edx
4748
                xor     edi, ebx
4749
                xor     ebp, eax
4750
                add     ecx, edi
4751
                mov     edi, [esi+24h]
4752
                rol     ecx, 6
4753
                and     ebp, ecx
4754
                lea     ebx, [ebx+edi+6D703EF3h]
4755
                xor     ebp, eax
4756
                mov     edi, ecx
4757
                add     ebx, ebp
4758
                mov     ebp, [esi+2Ch]
4759
                rol     ebx, 0Eh
4760
                xor     edi, edx
4761
                lea     eax, [eax+ebp+6D703EF3h]
4762
                and     edi, ebx
4763
                mov     ebp, ebx
4764
                xor     edi, edx
4765
                xor     ebp, ecx
4766
                add     eax, edi
4767
                mov     edi, [esi+20h]
4768
                rol     eax, 0Ch
4769
                and     ebp, eax
4770
                lea     edx, [edx+edi+6D703EF3h]
4771
                xor     ebp, ecx
4772
                mov     edi, eax
4773
                add     edx, ebp
4774
                mov     ebp, [esi+30h]
4775
                rol     edx, 0Dh
4776
                xor     edi, ebx
4777
                lea     ecx, [ecx+ebp+6D703EF3h]
4778
                and     edi, edx
4779
                mov     ebp, edx
4780
                xor     edi, ebx
4781
                xor     ebp, eax
4782
                add     ecx, edi
4783
                mov     edi, [esi+8]
4784
                rol     ecx, 5
4785
                and     ebp, ecx
4786
                lea     ebx, [ebx+edi+6D703EF3h]
4787
                xor     ebp, eax
4788
                mov     edi, ecx
4789
                add     ebx, ebp
4790
                mov     ebp, [esi+28h]
4791
                rol     ebx, 0Eh
4792
                xor     edi, edx
4793
                lea     eax, [eax+ebp+6D703EF3h]
4794
                and     edi, ebx
4795
                mov     ebp, ebx
4796
                xor     edi, edx
4797
                xor     ebp, ecx
4798
                add     eax, edi
4799
                mov     edi, [esi]
4800
                rol     eax, 0Dh
4801
                and     ebp, eax
4802
                lea     edx, [edx+edi+6D703EF3h]
4803
                xor     ebp, ecx
4804
                mov     edi, eax
4805
                add     edx, ebp
4806
                mov     ebp, [esi+10h]
4807
                rol     edx, 0Dh
4808
                xor     edi, ebx
4809
                lea     ecx, [ecx+ebp+6D703EF3h]
4810
                and     edi, edx
4811
                mov     ebp, edx
4812
                xor     edi, ebx
4813
                xor     ebp, eax
4814
                add     ecx, edi
4815
                mov     edi, [esi+34h]
4816
                rol     ecx, 7
4817
                and     ebp, ecx
4818
                lea     ebx, [ebx+edi+6D703EF3h]
4819
                xor     ebp, eax
4820
                add     ebx, ebp
4821
                mov     ebp, [esi+4]
4822
                rol     ebx, 5
4823
                mov     [esp+10h], eax
4824
                mov     [esp+14h], ebx
4825
                mov     eax, [esp]
4826
                mov     ebx, [esp+4]
4827
                mov     [esp+1Ch], edx
4828
                mov     edx, [esp+8]
4829
                mov     [esp+18h], edx
4830
                mov     edx, [esp+0Ch]
4831
                mov     edi, ecx
4832
                xor     edi, ebx
4833
                lea     eax, [eax+ebp-70E44324h]
4834
                and     edi, edx
4835
                mov     ebp, [esi+24h]
4836
                xor     edi, ecx
4837
                add     eax, edi
4838
                mov     edi, ebx
4839
                rol     eax, 0Bh
4840
                xor     edi, eax
4841
                lea     edx, [edx+ebp-70E44324h]
4842
                and     edi, ecx
4843
                mov     ebp, [esi+2Ch]
4844
                xor     edi, ebx
4845
                add     edx, edi
4846
                mov     edi, eax
4847
                rol     edx, 0Ch
4848
                xor     edi, edx
4849
                lea     ecx, [ecx+ebp-70E44324h]
4850
                and     edi, ebx
4851
                mov     ebp, [esi+28h]
4852
                xor     edi, eax
4853
                add     ecx, edi
4854
                mov     edi, edx
4855
                rol     ecx, 0Eh
4856
                xor     edi, ecx
4857
                lea     ebx, [ebx+ebp-70E44324h]
4858
                and     edi, eax
4859
                mov     ebp, [esi]
4860
                xor     edi, edx
4861
                add     ebx, edi
4862
                mov     edi, ecx
4863
                rol     ebx, 0Fh
4864
                xor     edi, ebx
4865
                lea     eax, [eax+ebp-70E44324h]
4866
                and     edi, edx
4867
                mov     ebp, [esi+20h]
4868
                xor     edi, ecx
4869
                add     eax, edi
4870
                mov     edi, ebx
4871
                rol     eax, 0Eh
4872
                xor     edi, eax
4873
                lea     edx, [edx+ebp-70E44324h]
4874
                and     edi, ecx
4875
                mov     ebp, [esi+30h]
4876
                xor     edi, ebx
4877
                add     edx, edi
4878
                mov     edi, eax
4879
                rol     edx, 0Fh
4880
                xor     edi, edx
4881
                lea     ecx, [ecx+ebp-70E44324h]
4882
                and     edi, ebx
4883
                mov     ebp, [esi+10h]
4884
                xor     edi, eax
4885
                add     ecx, edi
4886
                mov     edi, edx
4887
                rol     ecx, 9
4888
                xor     edi, ecx
4889
                lea     ebx, [ebx+ebp-70E44324h]
4890
                and     edi, eax
4891
                mov     ebp, [esi+34h]
4892
                xor     edi, edx
4893
                add     ebx, edi
4894
                mov     edi, ecx
4895
                rol     ebx, 8
4896
                xor     edi, ebx
4897
                lea     eax, [eax+ebp-70E44324h]
4898
                and     edi, edx
4899
                mov     ebp, [esi+0Ch]
4900
                xor     edi, ecx
4901
                add     eax, edi
4902
                mov     edi, ebx
4903
                rol     eax, 9
4904
                xor     edi, eax
4905
                lea     edx, [edx+ebp-70E44324h]
4906
                and     edi, ecx
4907
                mov     ebp, [esi+1Ch]
4908
                xor     edi, ebx
4909
                add     edx, edi
4910
                mov     edi, eax
4911
                rol     edx, 0Eh
4912
                xor     edi, edx
4913
                lea     ecx, [ecx+ebp-70E44324h]
4914
                and     edi, ebx
4915
                mov     ebp, [esi+3Ch]
4916
                xor     edi, eax
4917
                add     ecx, edi
4918
                mov     edi, edx
4919
                rol     ecx, 5
4920
                xor     edi, ecx
4921
                lea     ebx, [ebx+ebp-70E44324h]
4922
                and     edi, eax
4923
                mov     ebp, [esi+38h]
4924
                xor     edi, edx
4925
                add     ebx, edi
4926
                mov     edi, ecx
4927
                rol     ebx, 6
4928
                xor     edi, ebx
4929
                lea     eax, [eax+ebp-70E44324h]
4930
                and     edi, edx
4931
                mov     ebp, [esi+14h]
4932
                xor     edi, ecx
4933
                add     eax, edi
4934
                mov     edi, ebx
4935
                rol     eax, 8
4936
                xor     edi, eax
4937
                lea     edx, [edx+ebp-70E44324h]
4938
                and     edi, ecx
4939
                mov     ebp, [esi+18h]
4940
                xor     edi, ebx
4941
                add     edx, edi
4942
                mov     edi, eax
4943
                rol     edx, 6
4944
                xor     edi, edx
4945
                lea     ecx, [ecx+ebp-70E44324h]
4946
                and     edi, ebx
4947
                mov     ebp, [esi+8]
4948
                xor     edi, eax
4949
                add     ecx, edi
4950
                mov     edi, edx
4951
                rol     ecx, 5
4952
                xor     edi, ecx
4953
                lea     ebx, [ebx+ebp-70E44324h]
4954
                and     edi, eax
4955
                mov     ebp, [esi+20h]
4956
                xor     edi, edx
4957
                add     ebx, edi
4958
                rol     ebx, 0Ch
4959
                mov     [esp], eax
4960
                mov     [esp+4], ebx
4961
                mov     eax, [esp+10h]
4962
                mov     ebx, [esp+14h]
4963
                mov     [esp+8], ecx
4964
                mov     ecx, [esp+18h]
4965
                mov     edi, ecx
4966
                mov     [esp+0Ch], edx
4967
                mov     edx, [esp+1Ch]
4968
                xor     edi, edx
4969
                mov     ebp, [esi+20h]
4970
                xor     edi, ebx
4971
                add     eax, ebp
4972
                add     eax, edi
4973
                mov     edi, ebx
4974
                rol     eax, 0Fh
4975
                xor     edi, ecx
4976
                mov     ebp, [esi+18h]
4977
                xor     edi, eax
4978
                add     edx, ebp
4979
                add     edx, edi
4980
                mov     edi, eax
4981
                rol     edx, 5
4982
                xor     edi, ebx
4983
                mov     ebp, [esi+10h]
4984
                xor     edi, edx
4985
                add     ecx, ebp
4986
                add     ecx, edi
4987
                mov     edi, edx
4988
                rol     ecx, 8
4989
                xor     edi, eax
4990
                mov     ebp, [esi+4]
4991
                xor     edi, ecx
4992
                add     ebx, ebp
4993
                add     ebx, edi
4994
                mov     edi, ecx
4995
                rol     ebx, 0Bh
4996
                xor     edi, edx
4997
                mov     ebp, [esi+0Ch]
4998
                xor     edi, ebx
4999
                add     eax, ebp
5000
                add     eax, edi
5001
                mov     edi, ebx
5002
                rol     eax, 0Eh
5003
                xor     edi, ecx
5004
                mov     ebp, [esi+2Ch]
5005
                xor     edi, eax
5006
                add     edx, ebp
5007
                add     edx, edi
5008
                mov     edi, eax
5009
                rol     edx, 0Eh
5010
                xor     edi, ebx
5011
                mov     ebp, [esi+3Ch]
5012
                xor     edi, edx
5013
                add     ecx, ebp
5014
                add     ecx, edi
5015
                mov     edi, edx
5016
                rol     ecx, 6
5017
                xor     edi, eax
5018
                mov     ebp, [esi]
5019
                xor     edi, ecx
5020
                add     ebx, ebp
5021
                add     ebx, edi
5022
                mov     edi, ecx
5023
                rol     ebx, 0Eh
5024
                xor     edi, edx
5025
                mov     ebp, [esi+14h]
5026
                xor     edi, ebx
5027
                add     eax, ebp
5028
                add     eax, edi
5029
                mov     edi, ebx
5030
                rol     eax, 6
5031
                xor     edi, ecx
5032
                mov     ebp, [esi+30h]
5033
                xor     edi, eax
5034
                add     edx, ebp
5035
                add     edx, edi
5036
                mov     edi, eax
5037
                rol     edx, 9
5038
                xor     edi, ebx
5039
                mov     ebp, [esi+8]
5040
                xor     edi, edx
5041
                add     ecx, ebp
5042
                add     ecx, edi
5043
                mov     edi, edx
5044
                rol     ecx, 0Ch
5045
                xor     edi, eax
5046
                mov     ebp, [esi+34h]
5047
                xor     edi, ecx
5048
                add     ebx, ebp
5049
                add     ebx, edi
5050
                mov     edi, ecx
5051
                rol     ebx, 9
5052
                xor     edi, edx
5053
                mov     ebp, [esi+24h]
5054
                xor     edi, ebx
5055
                add     eax, ebp
5056
                add     eax, edi
5057
                mov     edi, ebx
5058
                rol     eax, 0Ch
5059
                xor     edi, ecx
5060
                mov     ebp, [esi+1Ch]
5061
                xor     edi, eax
5062
                add     edx, ebp
5063
                add     edx, edi
5064
                mov     edi, eax
5065
                rol     edx, 5
5066
                xor     edi, ebx
5067
                mov     ebp, [esi+28h]
5068
                xor     edi, edx
5069
                add     ecx, ebp
5070
                add     ecx, edi
5071
                mov     edi, edx
5072
                rol     ecx, 0Fh
5073
                xor     edi, eax
5074
                mov     ebp, [esi+38h]
5075
                xor     edi, ecx
5076
                add     ebx, ebp
5077
                add     ebx, edi
5078
                mov     edi, ecx
5079
                rol     ebx, 8
5080
                mov     edi, [esp+20h]
5081
                add     [edi+0Ch], edx
5082
                add     [edi+10h], eax
5083
                add     [edi+14h], ebx
5084
                mov     eax, [esp]
5085
                mov     ebx, [esp+4]
5086
                add     [edi+18h], ecx
5087
                mov     ecx, [esp+8]
5088
                mov     edx, [esp+0Ch]
5089
                add     [edi], eax
5090
                add     esp, 24h
5091
                add     [edi+4], ebx
5092
                add     [edi+8], ecx
5093
                add     [edi+1Ch], edx
5094
5095
                pop     ebp
5096
                pop     edi
5097
                pop     esi
5098
                pop     ebx
5099
end;
5100
{$ENDIF}
5101
5102
{$IFDEF THash_RipeMD320_asm}
5103
procedure THash_RipeMD320.DoTransform(Buffer: PUInt32Array);
5104
asm
5105
                push    ebx
5106
                push    esi
5107
                push    edi
5108
                lea     edi, [eax].THash_RipeMD320.FDigest
5109
                mov     esi, edx
5110
                push    ebp
5111
                mov     eax, [edi]
5112
                mov     ebx, [edi+4]
5113
                push    edi
5114
                mov     ecx, [edi+8]
5115
                mov     edx, [edi+0Ch]
5116
                add     esp, 0FFFFFFD8h
5117
                mov     ebp, [edi+10h]
5118
                mov     edi, edx
5119
                xor     edi, ecx
5120
                xor     edi, ebx
5121
                add     eax, [esi]
5122
                rol     ecx, 0Ah
5123
                add     eax, edi
5124
                mov     edi, ecx
5125
                rol     eax, 0Bh
5126
                add     eax, ebp
5127
                xor     edi, ebx
5128
                xor     edi, eax
5129
                add     ebp, [esi+4]
5130
                rol     ebx, 0Ah
5131
                add     ebp, edi
5132
                mov     edi, ebx
5133
                rol     ebp, 0Eh
5134
                add     ebp, edx
5135
                xor     edi, eax
5136
                xor     edi, ebp
5137
                add     edx, [esi+8]
5138
                rol     eax, 0Ah
5139
                add     edx, edi
5140
                mov     edi, eax
5141
                rol     edx, 0Fh
5142
                add     edx, ecx
5143
                xor     edi, ebp
5144
                xor     edi, edx
5145
                add     ecx, [esi+0Ch]
5146
                rol     ebp, 0Ah
5147
                add     ecx, edi
5148
                mov     edi, ebp
5149
                rol     ecx, 0Ch
5150
                add     ecx, ebx
5151
                xor     edi, edx
5152
                xor     edi, ecx
5153
                add     ebx, [esi+10h]
5154
                rol     edx, 0Ah
5155
                add     ebx, edi
5156
                mov     edi, edx
5157
                rol     ebx, 5
5158
                add     ebx, eax
5159
                xor     edi, ecx
5160
                xor     edi, ebx
5161
                add     eax, [esi+14h]
5162
                rol     ecx, 0Ah
5163
                add     eax, edi
5164
                mov     edi, ecx
5165
                rol     eax, 8
5166
                add     eax, ebp
5167
                xor     edi, ebx
5168
                xor     edi, eax
5169
                add     ebp, [esi+18h]
5170
                rol     ebx, 0Ah
5171
                add     ebp, edi
5172
                mov     edi, ebx
5173
                rol     ebp, 7
5174
                add     ebp, edx
5175
                xor     edi, eax
5176
                xor     edi, ebp
5177
                add     edx, [esi+1Ch]
5178
                rol     eax, 0Ah
5179
                add     edx, edi
5180
                mov     edi, eax
5181
                rol     edx, 9
5182
                add     edx, ecx
5183
                xor     edi, ebp
5184
                xor     edi, edx
5185
                add     ecx, [esi+20h]
5186
                rol     ebp, 0Ah
5187
                add     ecx, edi
5188
                mov     edi, ebp
5189
                rol     ecx, 0Bh
5190
                add     ecx, ebx
5191
                xor     edi, edx
5192
                xor     edi, ecx
5193
                add     ebx, [esi+24h]
5194
                rol     edx, 0Ah
5195
                add     ebx, edi
5196
                mov     edi, edx
5197
                rol     ebx, 0Dh
5198
                add     ebx, eax
5199
                xor     edi, ecx
5200
                xor     edi, ebx
5201
                add     eax, [esi+28h]
5202
                rol     ecx, 0Ah
5203
                add     eax, edi
5204
                mov     edi, ecx
5205
                rol     eax, 0Eh
5206
                add     eax, ebp
5207
                xor     edi, ebx
5208
                xor     edi, eax
5209
                add     ebp, [esi+2Ch]
5210
                rol     ebx, 0Ah
5211
                add     ebp, edi
5212
                mov     edi, ebx
5213
                rol     ebp, 0Fh
5214
                add     ebp, edx
5215
                xor     edi, eax
5216
                xor     edi, ebp
5217
                add     edx, [esi+30h]
5218
                rol     eax, 0Ah
5219
                add     edx, edi
5220
                mov     edi, eax
5221
                rol     edx, 6
5222
                add     edx, ecx
5223
                xor     edi, ebp
5224
                xor     edi, edx
5225
                add     ecx, [esi+34h]
5226
                rol     ebp, 0Ah
5227
                add     ecx, edi
5228
                mov     edi, ebp
5229
                rol     ecx, 7
5230
                add     ecx, ebx
5231
                xor     edi, edx
5232
                xor     edi, ecx
5233
                add     ebx, [esi+38h]
5234
                rol     edx, 0Ah
5235
                add     ebx, edi
5236
                mov     edi, edx
5237
                rol     ebx, 9
5238
                add     ebx, eax
5239
                xor     edi, ecx
5240
                xor     edi, ebx
5241
                add     eax, [esi+3Ch]
5242
                rol     ecx, 0Ah
5243
                add     eax, edi
5244
                rol     eax, 8
5245
                add     eax, ebp
5246
                mov     edi, [esp+28h]
5247
                mov     [esp], eax
5248
                mov     [esp+4], ebx
5249
                mov     eax, [edi+14h]
5250
                mov     ebx, [edi+18h]
5251
                mov     [esp+8], ecx
5252
                mov     [esp+0Ch], edx
5253
                mov     ecx, [edi+1Ch]
5254
                mov     edx, [edi+20h]
5255
                mov     [esp+10h], ebp
5256
                mov     ebp, [edi+24h]
5257
                mov     edi, edx
5258
                xor     edi, 0FFFFFFFFh
5259
                or      edi, ecx
5260
                add     eax, [esi+14h]
5261
                xor     edi, ebx
5262
                rol     ecx, 0Ah
5263
                lea     eax, [eax+edi+50A28BE6h]
5264
                mov     edi, ecx
5265
                rol     eax, 8
5266
                add     eax, ebp
5267
                xor     edi, 0FFFFFFFFh
5268
                or      edi, ebx
5269
                add     ebp, [esi+38h]
5270
                xor     edi, eax
5271
                rol     ebx, 0Ah
5272
                lea     ebp, [ebp+edi+50A28BE6h]
5273
                mov     edi, ebx
5274
                rol     ebp, 9
5275
                add     ebp, edx
5276
                xor     edi, 0FFFFFFFFh
5277
                or      edi, eax
5278
                add     edx, [esi+1Ch]
5279
                xor     edi, ebp
5280
                rol     eax, 0Ah
5281
                lea     edx, [edx+edi+50A28BE6h]
5282
                mov     edi, eax
5283
                rol     edx, 9
5284
                add     edx, ecx
5285
                xor     edi, 0FFFFFFFFh
5286
                or      edi, ebp
5287
                add     ecx, [esi]
5288
                xor     edi, edx
5289
                rol     ebp, 0Ah
5290
                lea     ecx, [ecx+edi+50A28BE6h]
5291
                mov     edi, ebp
5292
                rol     ecx, 0Bh
5293
                add     ecx, ebx
5294
                xor     edi, 0FFFFFFFFh
5295
                or      edi, edx
5296
                add     ebx, [esi+24h]
5297
                xor     edi, ecx
5298
                rol     edx, 0Ah
5299
                lea     ebx, [ebx+edi+50A28BE6h]
5300
                mov     edi, edx
5301
                rol     ebx, 0Dh
5302
                add     ebx, eax
5303
                xor     edi, 0FFFFFFFFh
5304
                or      edi, ecx
5305
                add     eax, [esi+8]
5306
                xor     edi, ebx
5307
                rol     ecx, 0Ah
5308
                lea     eax, [eax+edi+50A28BE6h]
5309
                mov     edi, ecx
5310
                rol     eax, 0Fh
5311
                add     eax, ebp
5312
                xor     edi, 0FFFFFFFFh
5313
                or      edi, ebx
5314
                add     ebp, [esi+2Ch]
5315
                xor     edi, eax
5316
                rol     ebx, 0Ah
5317
                lea     ebp, [ebp+edi+50A28BE6h]
5318
                mov     edi, ebx
5319
                rol     ebp, 0Fh
5320
                add     ebp, edx
5321
                xor     edi, 0FFFFFFFFh
5322
                or      edi, eax
5323
                add     edx, [esi+10h]
5324
                xor     edi, ebp
5325
                rol     eax, 0Ah
5326
                lea     edx, [edx+edi+50A28BE6h]
5327
                mov     edi, eax
5328
                rol     edx, 5
5329
                add     edx, ecx
5330
                xor     edi, 0FFFFFFFFh
5331
                or      edi, ebp
5332
                add     ecx, [esi+34h]
5333
                xor     edi, edx
5334
                rol     ebp, 0Ah
5335
                lea     ecx, [ecx+edi+50A28BE6h]
5336
                mov     edi, ebp
5337
                rol     ecx, 7
5338
                add     ecx, ebx
5339
                xor     edi, 0FFFFFFFFh
5340
                or      edi, edx
5341
                add     ebx, [esi+18h]
5342
                xor     edi, ecx
5343
                rol     edx, 0Ah
5344
                lea     ebx, [ebx+edi+50A28BE6h]
5345
                mov     edi, edx
5346
                rol     ebx, 7
5347
                add     ebx, eax
5348
                xor     edi, 0FFFFFFFFh
5349
                or      edi, ecx
5350
                add     eax, [esi+3Ch]
5351
                xor     edi, ebx
5352
                rol     ecx, 0Ah
5353
                lea     eax, [eax+edi+50A28BE6h]
5354
                mov     edi, ecx
5355
                rol     eax, 8
5356
                add     eax, ebp
5357
                xor     edi, 0FFFFFFFFh
5358
                or      edi, ebx
5359
                add     ebp, [esi+20h]
5360
                xor     edi, eax
5361
                rol     ebx, 0Ah
5362
                lea     ebp, [ebp+edi+50A28BE6h]
5363
                mov     edi, ebx
5364
                rol     ebp, 0Bh
5365
                add     ebp, edx
5366
                xor     edi, 0FFFFFFFFh
5367
                or      edi, eax
5368
                add     edx, [esi+4]
5369
                xor     edi, ebp
5370
                rol     eax, 0Ah
5371
                lea     edx, [edx+edi+50A28BE6h]
5372
                mov     edi, eax
5373
                rol     edx, 0Eh
5374
                add     edx, ecx
5375
                xor     edi, 0FFFFFFFFh
5376
                or      edi, ebp
5377
                add     ecx, [esi+28h]
5378
                xor     edi, edx
5379
                rol     ebp, 0Ah
5380
                lea     ecx, [ecx+edi+50A28BE6h]
5381
                mov     edi, ebp
5382
                rol     ecx, 0Eh
5383
                add     ecx, ebx
5384
                xor     edi, 0FFFFFFFFh
5385
                or      edi, edx
5386
                add     ebx, [esi+0Ch]
5387
                xor     edi, ecx
5388
                rol     edx, 0Ah
5389
                lea     ebx, [ebx+edi+50A28BE6h]
5390
                mov     edi, edx
5391
                rol     ebx, 0Ch
5392
                add     ebx, eax
5393
                xor     edi, 0FFFFFFFFh
5394
                or      edi, ecx
5395
                add     eax, [esi+30h]
5396
                xor     edi, ebx
5397
                rol     ecx, 0Ah
5398
                lea     eax, [eax+edi+50A28BE6h]
5399
                rol     eax, 6
5400
                add     eax, ebp
5401
                mov     [esp+18h], ebx
5402
                mov     [esp+1Ch], ecx
5403
                mov     ebx, [esp+4]
5404
                mov     ecx, [esp+8]
5405
                mov     [esp+20h], edx
5406
                mov     [esp+24h], ebp
5407
                mov     edx, [esp+0Ch]
5408
                mov     ebp, [esp]
5409
                mov     [esp+14h], ebp
5410
                mov     ebp, [esp+10h]
5411
                mov     edi, ecx
5412
                xor     edi, ebx
5413
                add     ebp, [esi+1Ch]
5414
                and     edi, eax
5415
                xor     edi, ecx
5416
                rol     ebx, 0Ah
5417
                lea     ebp, [ebp+edi+5A827999h]
5418
                mov     edi, ebx
5419
                rol     ebp, 7
5420
                add     ebp, edx
5421
                xor     edi, eax
5422
                add     edx, [esi+10h]
5423
                and     edi, ebp
5424
                xor     edi, ebx
5425
                rol     eax, 0Ah
5426
                lea     edx, [edx+edi+5A827999h]
5427
                mov     edi, eax
5428
                rol     edx, 6
5429
                add     edx, ecx
5430
                xor     edi, ebp
5431
                add     ecx, [esi+34h]
5432
                and     edi, edx
5433
                xor     edi, eax
5434
                rol     ebp, 0Ah
5435
                lea     ecx, [ecx+edi+5A827999h]
5436
                mov     edi, ebp
5437
                rol     ecx, 8
5438
                add     ecx, ebx
5439
                xor     edi, edx
5440
                add     ebx, [esi+4]
5441
                and     edi, ecx
5442
                xor     edi, ebp
5443
                rol     edx, 0Ah
5444
                lea     ebx, [ebx+edi+5A827999h]
5445
                mov     edi, edx
5446
                rol     ebx, 0Dh
5447
                add     ebx, eax
5448
                xor     edi, ecx
5449
                add     eax, [esi+28h]
5450
                and     edi, ebx
5451
                xor     edi, edx
5452
                rol     ecx, 0Ah
5453
                lea     eax, [eax+edi+5A827999h]
5454
                mov     edi, ecx
5455
                rol     eax, 0Bh
5456
                add     eax, ebp
5457
                xor     edi, ebx
5458
                add     ebp, [esi+18h]
5459
                and     edi, eax
5460
                xor     edi, ecx
5461
                rol     ebx, 0Ah
5462
                lea     ebp, [ebp+edi+5A827999h]
5463
                mov     edi, ebx
5464
                rol     ebp, 9
5465
                add     ebp, edx
5466
                xor     edi, eax
5467
                add     edx, [esi+3Ch]
5468
                and     edi, ebp
5469
                xor     edi, ebx
5470
                rol     eax, 0Ah
5471
                lea     edx, [edx+edi+5A827999h]
5472
                mov     edi, eax
5473
                rol     edx, 7
5474
                add     edx, ecx
5475
                xor     edi, ebp
5476
                add     ecx, [esi+0Ch]
5477
                and     edi, edx
5478
                xor     edi, eax
5479
                rol     ebp, 0Ah
5480
                lea     ecx, [ecx+edi+5A827999h]
5481
                mov     edi, ebp
5482
                rol     ecx, 0Fh
5483
                add     ecx, ebx
5484
                xor     edi, edx
5485
                add     ebx, [esi+30h]
5486
                and     edi, ecx
5487
                xor     edi, ebp
5488
                rol     edx, 0Ah
5489
                lea     ebx, [ebx+edi+5A827999h]
5490
                mov     edi, edx
5491
                rol     ebx, 7
5492
                add     ebx, eax
5493
                xor     edi, ecx
5494
                add     eax, [esi]
5495
                and     edi, ebx
5496
                xor     edi, edx
5497
                rol     ecx, 0Ah
5498
                lea     eax, [eax+edi+5A827999h]
5499
                mov     edi, ecx
5500
                rol     eax, 0Ch
5501
                add     eax, ebp
5502
                xor     edi, ebx
5503
                add     ebp, [esi+24h]
5504
                and     edi, eax
5505
                xor     edi, ecx
5506
                rol     ebx, 0Ah
5507
                lea     ebp, [ebp+edi+5A827999h]
5508
                mov     edi, ebx
5509
                rol     ebp, 0Fh
5510
                add     ebp, edx
5511
                xor     edi, eax
5512
                add     edx, [esi+14h]
5513
                and     edi, ebp
5514
                xor     edi, ebx
5515
                rol     eax, 0Ah
5516
                lea     edx, [edx+edi+5A827999h]
5517
                mov     edi, eax
5518
                rol     edx, 9
5519
                add     edx, ecx
5520
                xor     edi, ebp
5521
                add     ecx, [esi+8]
5522
                and     edi, edx
5523
                xor     edi, eax
5524
                rol     ebp, 0Ah
5525
                lea     ecx, [ecx+edi+5A827999h]
5526
                mov     edi, ebp
5527
                rol     ecx, 0Bh
5528
                add     ecx, ebx
5529
                xor     edi, edx
5530
                add     ebx, [esi+38h]
5531
                and     edi, ecx
5532
                xor     edi, ebp
5533
                rol     edx, 0Ah
5534
                lea     ebx, [ebx+edi+5A827999h]
5535
                mov     edi, edx
5536
                rol     ebx, 7
5537
                add     ebx, eax
5538
                xor     edi, ecx
5539
                add     eax, [esi+2Ch]
5540
                and     edi, ebx
5541
                xor     edi, edx
5542
                rol     ecx, 0Ah
5543
                lea     eax, [eax+edi+5A827999h]
5544
                mov     edi, ecx
5545
                rol     eax, 0Dh
5546
                add     eax, ebp
5547
                xor     edi, ebx
5548
                add     ebp, [esi+20h]
5549
                and     edi, eax
5550
                xor     edi, ecx
5551
                rol     ebx, 0Ah
5552
                lea     ebp, [ebp+edi+5A827999h]
5553
                rol     ebp, 0Ch
5554
                add     ebp, edx
5555
                mov     [esp], eax
5556
                mov     [esp+4], ebx
5557
                mov     eax, [esp+14h]
5558
                mov     ebx, [esp+18h]
5559
                mov     [esp+8], ecx
5560
                mov     [esp+0Ch], edx
5561
                mov     ecx, [esp+1Ch]
5562
                mov     edx, [esp+20h]
5563
                mov     [esp+10h], ebp
5564
                mov     ebp, [esp+24h]
5565
                mov     edi, ebx
5566
                xor     edi, eax
5567
                and     edi, ecx
5568
                add     ebp, [esi+18h]
5569
                xor     edi, ebx
5570
                rol     ebx, 0Ah
5571
                lea     ebp, [ebp+edi+5C4DD124h]
5572
                mov     edi, eax
5573
                rol     ebp, 9
5574
                add     ebp, edx
5575
                xor     edi, ebp
5576
                and     edi, ebx
5577
                add     edx, [esi+2Ch]
5578
                xor     edi, eax
5579
                rol     eax, 0Ah
5580
                lea     edx, [edx+edi+5C4DD124h]
5581
                mov     edi, ebp
5582
                rol     edx, 0Dh
5583
                add     edx, ecx
5584
                xor     edi, edx
5585
                and     edi, eax
5586
                add     ecx, [esi+0Ch]
5587
                xor     edi, ebp
5588
                rol     ebp, 0Ah
5589
                lea     ecx, [ecx+edi+5C4DD124h]
5590
                mov     edi, edx
5591
                rol     ecx, 0Fh
5592
                add     ecx, ebx
5593
                xor     edi, ecx
5594
                and     edi, ebp
5595
                add     ebx, [esi+1Ch]
5596
                xor     edi, edx
5597
                rol     edx, 0Ah
5598
                lea     ebx, [ebx+edi+5C4DD124h]
5599
                mov     edi, ecx
5600
                rol     ebx, 7
5601
                add     ebx, eax
5602
                xor     edi, ebx
5603
                and     edi, edx
5604
                add     eax, [esi]
5605
                xor     edi, ecx
5606
                rol     ecx, 0Ah
5607
                lea     eax, [eax+edi+5C4DD124h]
5608
                mov     edi, ebx
5609
                rol     eax, 0Ch
5610
                add     eax, ebp
5611
                xor     edi, eax
5612
                and     edi, ecx
5613
                add     ebp, [esi+34h]
5614
                xor     edi, ebx
5615
                rol     ebx, 0Ah
5616
                lea     ebp, [ebp+edi+5C4DD124h]
5617
                mov     edi, eax
5618
                rol     ebp, 8
5619
                add     ebp, edx
5620
                xor     edi, ebp
5621
                and     edi, ebx
5622
                add     edx, [esi+14h]
5623
                xor     edi, eax
5624
                rol     eax, 0Ah
5625
                lea     edx, [edx+edi+5C4DD124h]
5626
                mov     edi, ebp
5627
                rol     edx, 9
5628
                add     edx, ecx
5629
                xor     edi, edx
5630
                and     edi, eax
5631
                add     ecx, [esi+28h]
5632
                xor     edi, ebp
5633
                rol     ebp, 0Ah
5634
                lea     ecx, [ecx+edi+5C4DD124h]
5635
                mov     edi, edx
5636
                rol     ecx, 0Bh
5637
                add     ecx, ebx
5638
                xor     edi, ecx
5639
                and     edi, ebp
5640
                add     ebx, [esi+38h]
5641
                xor     edi, edx
5642
                rol     edx, 0Ah
5643
                lea     ebx, [ebx+edi+5C4DD124h]
5644
                mov     edi, ecx
5645
                rol     ebx, 7
5646
                add     ebx, eax
5647
                xor     edi, ebx
5648
                and     edi, edx
5649
                add     eax, [esi+3Ch]
5650
                xor     edi, ecx
5651
                rol     ecx, 0Ah
5652
                lea     eax, [eax+edi+5C4DD124h]
5653
                mov     edi, ebx
5654
                rol     eax, 7
5655
                add     eax, ebp
5656
                xor     edi, eax
5657
                and     edi, ecx
5658
                add     ebp, [esi+20h]
5659
                xor     edi, ebx
5660
                rol     ebx, 0Ah
5661
                lea     ebp, [ebp+edi+5C4DD124h]
5662
                mov     edi, eax
5663
                rol     ebp, 0Ch
5664
                add     ebp, edx
5665
                xor     edi, ebp
5666
                and     edi, ebx
5667
                add     edx, [esi+30h]
5668
                xor     edi, eax
5669
                rol     eax, 0Ah
5670
                lea     edx, [edx+edi+5C4DD124h]
5671
                mov     edi, ebp
5672
                rol     edx, 7
5673
                add     edx, ecx
5674
                xor     edi, edx
5675
                and     edi, eax
5676
                add     ecx, [esi+10h]
5677
                xor     edi, ebp
5678
                rol     ebp, 0Ah
5679
                lea     ecx, [ecx+edi+5C4DD124h]
5680
                mov     edi, edx
5681
                rol     ecx, 6
5682
                add     ecx, ebx
5683
                xor     edi, ecx
5684
                and     edi, ebp
5685
                add     ebx, [esi+24h]
5686
                xor     edi, edx
5687
                rol     edx, 0Ah
5688
                lea     ebx, [ebx+edi+5C4DD124h]
5689
                mov     edi, ecx
5690
                rol     ebx, 0Fh
5691
                add     ebx, eax
5692
                xor     edi, ebx
5693
                and     edi, edx
5694
                add     eax, [esi+4]
5695
                xor     edi, ecx
5696
                rol     ecx, 0Ah
5697
                lea     eax, [eax+edi+5C4DD124h]
5698
                mov     edi, ebx
5699
                rol     eax, 0Dh
5700
                add     eax, ebp
5701
                xor     edi, eax
5702
                and     edi, ecx
5703
                add     ebp, [esi+8]
5704
                xor     edi, ebx
5705
                rol     ebx, 0Ah
5706
                lea     ebp, [ebp+edi+5C4DD124h]
5707
                rol     ebp, 0Bh
5708
                add     ebp, edx
5709
                mov     [esp+14h], eax
5710
                mov     [esp+1Ch], ecx
5711
                mov     eax, [esp]
5712
                mov     ecx, [esp+8]
5713
                mov     [esp+20h], edx
5714
                mov     [esp+24h], ebp
5715
                mov     edx, [esp+0Ch]
5716
                mov     ebp, [esp+4]
5717
                mov     [esp+18h], ebp
5718
                mov     ebp, [esp+10h]
5719
                mov     edi, eax
5720
                xor     edi, 0FFFFFFFFh
5721
                or      edi, ebp
5722
                add     edx, [esi+0Ch]
5723
                xor     edi, ebx
5724
                rol     eax, 0Ah
5725
                lea     edx, [edx+edi+6ED9EBA1h]
5726
                mov     edi, ebp
5727
                rol     edx, 0Bh
5728
                add     edx, ecx
5729
                xor     edi, 0FFFFFFFFh
5730
                or      edi, edx
5731
                add     ecx, [esi+28h]
5732
                xor     edi, eax
5733
                rol     ebp, 0Ah
5734
                lea     ecx, [ecx+edi+6ED9EBA1h]
5735
                mov     edi, edx
5736
                rol     ecx, 0Dh
5737
                add     ecx, ebx
5738
                xor     edi, 0FFFFFFFFh
5739
                or      edi, ecx
5740
                add     ebx, [esi+38h]
5741
                xor     edi, ebp
5742
                rol     edx, 0Ah
5743
                lea     ebx, [ebx+edi+6ED9EBA1h]
5744
                mov     edi, ecx
5745
                rol     ebx, 6
5746
                add     ebx, eax
5747
                xor     edi, 0FFFFFFFFh
5748
                or      edi, ebx
5749
                add     eax, [esi+10h]
5750
                xor     edi, edx
5751
                rol     ecx, 0Ah
5752
                lea     eax, [eax+edi+6ED9EBA1h]
5753
                mov     edi, ebx
5754
                rol     eax, 7
5755
                add     eax, ebp
5756
                xor     edi, 0FFFFFFFFh
5757
                or      edi, eax
5758
                add     ebp, [esi+24h]
5759
                xor     edi, ecx
5760
                rol     ebx, 0Ah
5761
                lea     ebp, [ebp+edi+6ED9EBA1h]
5762
                mov     edi, eax
5763
                rol     ebp, 0Eh
5764
                add     ebp, edx
5765
                xor     edi, 0FFFFFFFFh
5766
                or      edi, ebp
5767
                add     edx, [esi+3Ch]
5768
                xor     edi, ebx
5769
                rol     eax, 0Ah
5770
                lea     edx, [edx+edi+6ED9EBA1h]
5771
                mov     edi, ebp
5772
                rol     edx, 9
5773
                add     edx, ecx
5774
                xor     edi, 0FFFFFFFFh
5775
                or      edi, edx
5776
                add     ecx, [esi+20h]
5777
                xor     edi, eax
5778
                rol     ebp, 0Ah
5779
                lea     ecx, [ecx+edi+6ED9EBA1h]
5780
                mov     edi, edx
5781
                rol     ecx, 0Dh
5782
                add     ecx, ebx
5783
                xor     edi, 0FFFFFFFFh
5784
                or      edi, ecx
5785
                add     ebx, [esi+4]
5786
                xor     edi, ebp
5787
                rol     edx, 0Ah
5788
                lea     ebx, [ebx+edi+6ED9EBA1h]
5789
                mov     edi, ecx
5790
                rol     ebx, 0Fh
5791
                add     ebx, eax
5792
                xor     edi, 0FFFFFFFFh
5793
                or      edi, ebx
5794
                add     eax, [esi+8]
5795
                xor     edi, edx
5796
                rol     ecx, 0Ah
5797
                lea     eax, [eax+edi+6ED9EBA1h]
5798
                mov     edi, ebx
5799
                rol     eax, 0Eh
5800
                add     eax, ebp
5801
                xor     edi, 0FFFFFFFFh
5802
                or      edi, eax
5803
                add     ebp, [esi+1Ch]
5804
                xor     edi, ecx
5805
                rol     ebx, 0Ah
5806
                lea     ebp, [ebp+edi+6ED9EBA1h]
5807
                mov     edi, eax
5808
                rol     ebp, 8
5809
                add     ebp, edx
5810
                xor     edi, 0FFFFFFFFh
5811
                or      edi, ebp
5812
                add     edx, [esi]
5813
                xor     edi, ebx
5814
                rol     eax, 0Ah
5815
                lea     edx, [edx+edi+6ED9EBA1h]
5816
                mov     edi, ebp
5817
                rol     edx, 0Dh
5818
                add     edx, ecx
5819
                xor     edi, 0FFFFFFFFh
5820
                or      edi, edx
5821
                add     ecx, [esi+18h]
5822
                xor     edi, eax
5823
                rol     ebp, 0Ah
5824
                lea     ecx, [ecx+edi+6ED9EBA1h]
5825
                mov     edi, edx
5826
                rol     ecx, 6
5827
                add     ecx, ebx
5828
                xor     edi, 0FFFFFFFFh
5829
                or      edi, ecx
5830
                add     ebx, [esi+34h]
5831
                xor     edi, ebp
5832
                rol     edx, 0Ah
5833
                lea     ebx, [ebx+edi+6ED9EBA1h]
5834
                mov     edi, ecx
5835
                rol     ebx, 5
5836
                add     ebx, eax
5837
                xor     edi, 0FFFFFFFFh
5838
                or      edi, ebx
5839
                add     eax, [esi+2Ch]
5840
                xor     edi, edx
5841
                rol     ecx, 0Ah
5842
                lea     eax, [eax+edi+6ED9EBA1h]
5843
                mov     edi, ebx
5844
                rol     eax, 0Ch
5845
                add     eax, ebp
5846
                xor     edi, 0FFFFFFFFh
5847
                or      edi, eax
5848
                add     ebp, [esi+14h]
5849
                xor     edi, ecx
5850
                rol     ebx, 0Ah
5851
                lea     ebp, [ebp+edi+6ED9EBA1h]
5852
                mov     edi, eax
5853
                rol     ebp, 7
5854
                add     ebp, edx
5855
                xor     edi, 0FFFFFFFFh
5856
                or      edi, ebp
5857
                add     edx, [esi+30h]
5858
                xor     edi, ebx
5859
                rol     eax, 0Ah
5860
                lea     edx, [edx+edi+6ED9EBA1h]
5861
                rol     edx, 5
5862
                add     edx, ecx
5863
                mov     [esp], eax
5864
                mov     [esp+4], ebx
5865
                mov     eax, [esp+14h]
5866
                mov     ebx, [esp+18h]
5867
                mov     [esp+8], ecx
5868
                mov     [esp+0Ch], edx
5869
                mov     ecx, [esp+1Ch]
5870
                mov     edx, [esp+20h]
5871
                mov     [esp+10h], ebp
5872
                mov     ebp, [esp+24h]
5873
                mov     edi, eax
5874
                xor     edi, 0FFFFFFFFh
5875
                or      edi, ebp
5876
                add     edx, [esi+3Ch]
5877
                xor     edi, ebx
5878
                rol     eax, 0Ah
5879
                lea     edx, [edx+edi+6D703EF3h]
5880
                mov     edi, ebp
5881
                rol     edx, 9
5882
                add     edx, ecx
5883
                xor     edi, 0FFFFFFFFh
5884
                or      edi, edx
5885
                add     ecx, [esi+14h]
5886
                xor     edi, eax
5887
                rol     ebp, 0Ah
5888
                lea     ecx, [ecx+edi+6D703EF3h]
5889
                mov     edi, edx
5890
                rol     ecx, 7
5891
                add     ecx, ebx
5892
                xor     edi, 0FFFFFFFFh
5893
                or      edi, ecx
5894
                add     ebx, [esi+4]
5895
                xor     edi, ebp
5896
                rol     edx, 0Ah
5897
                lea     ebx, [ebx+edi+6D703EF3h]
5898
                mov     edi, ecx
5899
                rol     ebx, 0Fh
5900
                add     ebx, eax
5901
                xor     edi, 0FFFFFFFFh
5902
                or      edi, ebx
5903
                add     eax, [esi+0Ch]
5904
                xor     edi, edx
5905
                rol     ecx, 0Ah
5906
                lea     eax, [eax+edi+6D703EF3h]
5907
                mov     edi, ebx
5908
                rol     eax, 0Bh
5909
                add     eax, ebp
5910
                xor     edi, 0FFFFFFFFh
5911
                or      edi, eax
5912
                add     ebp, [esi+1Ch]
5913
                xor     edi, ecx
5914
                rol     ebx, 0Ah
5915
                lea     ebp, [ebp+edi+6D703EF3h]
5916
                mov     edi, eax
5917
                rol     ebp, 8
5918
                add     ebp, edx
5919
                xor     edi, 0FFFFFFFFh
5920
                or      edi, ebp
5921
                add     edx, [esi+38h]
5922
                xor     edi, ebx
5923
                rol     eax, 0Ah
5924
                lea     edx, [edx+edi+6D703EF3h]
5925
                mov     edi, ebp
5926
                rol     edx, 6
5927
                add     edx, ecx
5928
                xor     edi, 0FFFFFFFFh
5929
                or      edi, edx
5930
                add     ecx, [esi+18h]
5931
                xor     edi, eax
5932
                rol     ebp, 0Ah
5933
                lea     ecx, [ecx+edi+6D703EF3h]
5934
                mov     edi, edx
5935
                rol     ecx, 6
5936
                add     ecx, ebx
5937
                xor     edi, 0FFFFFFFFh
5938
                or      edi, ecx
5939
                add     ebx, [esi+24h]
5940
                xor     edi, ebp
5941
                rol     edx, 0Ah
5942
                lea     ebx, [ebx+edi+6D703EF3h]
5943
                mov     edi, ecx
5944
                rol     ebx, 0Eh
5945
                add     ebx, eax
5946
                xor     edi, 0FFFFFFFFh
5947
                or      edi, ebx
5948
                add     eax, [esi+2Ch]
5949
                xor     edi, edx
5950
                rol     ecx, 0Ah
5951
                lea     eax, [eax+edi+6D703EF3h]
5952
                mov     edi, ebx
5953
                rol     eax, 0Ch
5954
                add     eax, ebp
5955
                xor     edi, 0FFFFFFFFh
5956
                or      edi, eax
5957
                add     ebp, [esi+20h]
5958
                xor     edi, ecx
5959
                rol     ebx, 0Ah
5960
                lea     ebp, [ebp+edi+6D703EF3h]
5961
                mov     edi, eax
5962
                rol     ebp, 0Dh
5963
                add     ebp, edx
5964
                xor     edi, 0FFFFFFFFh
5965
                or      edi, ebp
5966
                add     edx, [esi+30h]
5967
                xor     edi, ebx
5968
                rol     eax, 0Ah
5969
                lea     edx, [edx+edi+6D703EF3h]
5970
                mov     edi, ebp
5971
                rol     edx, 5
5972
                add     edx, ecx
5973
                xor     edi, 0FFFFFFFFh
5974
                or      edi, edx
5975
                add     ecx, [esi+8]
5976
                xor     edi, eax
5977
                rol     ebp, 0Ah
5978
                lea     ecx, [ecx+edi+6D703EF3h]
5979
                mov     edi, edx
5980
                rol     ecx, 0Eh
5981
                add     ecx, ebx
5982
                xor     edi, 0FFFFFFFFh
5983
                or      edi, ecx
5984
                add     ebx, [esi+28h]
5985
                xor     edi, ebp
5986
                rol     edx, 0Ah
5987
                lea     ebx, [ebx+edi+6D703EF3h]
5988
                mov     edi, ecx
5989
                rol     ebx, 0Dh
5990
                add     ebx, eax
5991
                xor     edi, 0FFFFFFFFh
5992
                or      edi, ebx
5993
                add     eax, [esi]
5994
                xor     edi, edx
5995
                rol     ecx, 0Ah
5996
                lea     eax, [eax+edi+6D703EF3h]
5997
                mov     edi, ebx
5998
                rol     eax, 0Dh
5999
                add     eax, ebp
6000
                xor     edi, 0FFFFFFFFh
6001
                or      edi, eax
6002
                add     ebp, [esi+10h]
6003
                xor     edi, ecx
6004
                rol     ebx, 0Ah
6005
                lea     ebp, [ebp+edi+6D703EF3h]
6006
                mov     edi, eax
6007
                rol     ebp, 7
6008
                add     ebp, edx
6009
                xor     edi, 0FFFFFFFFh
6010
                or      edi, ebp
6011
                add     edx, [esi+34h]
6012
                xor     edi, ebx
6013
                rol     eax, 0Ah
6014
                lea     edx, [edx+edi+6D703EF3h]
6015
                rol     edx, 5
6016
                add     edx, ecx
6017
                mov     [esp+14h], eax
6018
                mov     [esp+18h], ebx
6019
                mov     eax, [esp]
6020
                mov     ebx, [esp+4]
6021
                mov     [esp+20h], edx
6022
                mov     [esp+24h], ebp
6023
                mov     edx, [esp+0Ch]
6024
                mov     ebp, [esp+8]
6025
                mov     [esp+1Ch], ebp
6026
                mov     ebp, [esp+10h]
6027
                mov     edi, ebp
6028
                xor     edi, edx
6029
                and     edi, eax
6030
                add     ecx, [esi+4]
6031
                xor     edi, ebp
6032
                rol     ebp, 0Ah
6033
                lea     ecx, [ecx+edi-70E44324h]
6034
                mov     edi, edx
6035
                rol     ecx, 0Bh
6036
                add     ecx, ebx
6037
                xor     edi, ecx
6038
                and     edi, ebp
6039
                add     ebx, [esi+24h]
6040
                xor     edi, edx
6041
                rol     edx, 0Ah
6042
                lea     ebx, [ebx+edi-70E44324h]
6043
                mov     edi, ecx
6044
                rol     ebx, 0Ch
6045
                add     ebx, eax
6046
                xor     edi, ebx
6047
                and     edi, edx
6048
                add     eax, [esi+2Ch]
6049
                xor     edi, ecx
6050
                rol     ecx, 0Ah
6051
                lea     eax, [eax+edi-70E44324h]
6052
                mov     edi, ebx
6053
                rol     eax, 0Eh
6054
                add     eax, ebp
6055
                xor     edi, eax
6056
                and     edi, ecx
6057
                add     ebp, [esi+28h]
6058
                xor     edi, ebx
6059
                rol     ebx, 0Ah
6060
                lea     ebp, [ebp+edi-70E44324h]
6061
                mov     edi, eax
6062
                rol     ebp, 0Fh
6063
                add     ebp, edx
6064
                xor     edi, ebp
6065
                and     edi, ebx
6066
                add     edx, [esi]
6067
                xor     edi, eax
6068
                rol     eax, 0Ah
6069
                lea     edx, [edx+edi-70E44324h]
6070
                mov     edi, ebp
6071
                rol     edx, 0Eh
6072
                add     edx, ecx
6073
                xor     edi, edx
6074
                and     edi, eax
6075
                add     ecx, [esi+20h]
6076
                xor     edi, ebp
6077
                rol     ebp, 0Ah
6078
                lea     ecx, [ecx+edi-70E44324h]
6079
                mov     edi, edx
6080
                rol     ecx, 0Fh
6081
                add     ecx, ebx
6082
                xor     edi, ecx
6083
                and     edi, ebp
6084
                add     ebx, [esi+30h]
6085
                xor     edi, edx
6086
                rol     edx, 0Ah
6087
                lea     ebx, [ebx+edi-70E44324h]
6088
                mov     edi, ecx
6089
                rol     ebx, 9
6090
                add     ebx, eax
6091
                xor     edi, ebx
6092
                and     edi, edx
6093
                add     eax, [esi+10h]
6094
                xor     edi, ecx
6095
                rol     ecx, 0Ah
6096
                lea     eax, [eax+edi-70E44324h]
6097
                mov     edi, ebx
6098
                rol     eax, 8
6099
                add     eax, ebp
6100
                xor     edi, eax
6101
                and     edi, ecx
6102
                add     ebp, [esi+34h]
6103
                xor     edi, ebx
6104
                rol     ebx, 0Ah
6105
                lea     ebp, [ebp+edi-70E44324h]
6106
                mov     edi, eax
6107
                rol     ebp, 9
6108
                add     ebp, edx
6109
                xor     edi, ebp
6110
                and     edi, ebx
6111
                add     edx, [esi+0Ch]
6112
                xor     edi, eax
6113
                rol     eax, 0Ah
6114
                lea     edx, [edx+edi-70E44324h]
6115
                mov     edi, ebp
6116
                rol     edx, 0Eh
6117
                add     edx, ecx
6118
                xor     edi, edx
6119
                and     edi, eax
6120
                add     ecx, [esi+1Ch]
6121
                xor     edi, ebp
6122
                rol     ebp, 0Ah
6123
                lea     ecx, [ecx+edi-70E44324h]
6124
                mov     edi, edx
6125
                rol     ecx, 5
6126
                add     ecx, ebx
6127
                xor     edi, ecx
6128
                and     edi, ebp
6129
                add     ebx, [esi+3Ch]
6130
                xor     edi, edx
6131
                rol     edx, 0Ah
6132
                lea     ebx, [ebx+edi-70E44324h]
6133
                mov     edi, ecx
6134
                rol     ebx, 6
6135
                add     ebx, eax
6136
                xor     edi, ebx
6137
                and     edi, edx
6138
                add     eax, [esi+38h]
6139
                xor     edi, ecx
6140
                rol     ecx, 0Ah
6141
                lea     eax, [eax+edi-70E44324h]
6142
                mov     edi, ebx
6143
                rol     eax, 8
6144
                add     eax, ebp
6145
                xor     edi, eax
6146
                and     edi, ecx
6147
                add     ebp, [esi+14h]
6148
                xor     edi, ebx
6149
                rol     ebx, 0Ah
6150
                lea     ebp, [ebp+edi-70E44324h]
6151
                mov     edi, eax
6152
                rol     ebp, 6
6153
                add     ebp, edx
6154
                xor     edi, ebp
6155
                and     edi, ebx
6156
                add     edx, [esi+18h]
6157
                xor     edi, eax
6158
                rol     eax, 0Ah
6159
                lea     edx, [edx+edi-70E44324h]
6160
                mov     edi, ebp
6161
                rol     edx, 5
6162
                add     edx, ecx
6163
                xor     edi, edx
6164
                and     edi, eax
6165
                add     ecx, [esi+8]
6166
                xor     edi, ebp
6167
                rol     ebp, 0Ah
6168
                lea     ecx, [ecx+edi-70E44324h]
6169
                rol     ecx, 0Ch
6170
                add     ecx, ebx
6171
                mov     [esp], eax
6172
                mov     [esp+4], ebx
6173
                mov     eax, [esp+14h]
6174
                mov     ebx, [esp+18h]
6175
                mov     [esp+8], ecx
6176
                mov     [esp+0Ch], edx
6177
                mov     ecx, [esp+1Ch]
6178
                mov     edx, [esp+20h]
6179
                mov     [esp+10h], ebp
6180
                mov     ebp, [esp+24h]
6181
                mov     edi, eax
6182
                xor     edi, ebp
6183
                add     ecx, [esi+20h]
6184
                and     edi, edx
6185
                xor     edi, eax
6186
                rol     ebp, 0Ah
6187
                lea     ecx, [ecx+edi+7A6D76E9h]
6188
                mov     edi, ebp
6189
                rol     ecx, 0Fh
6190
                add     ecx, ebx
6191
                xor     edi, edx
6192
                add     ebx, [esi+18h]
6193
                and     edi, ecx
6194
                xor     edi, ebp
6195
                rol     edx, 0Ah
6196
                lea     ebx, [ebx+edi+7A6D76E9h]
6197
                mov     edi, edx
6198
                rol     ebx, 5
6199
                add     ebx, eax
6200
                xor     edi, ecx
6201
                add     eax, [esi+10h]
6202
                and     edi, ebx
6203
                xor     edi, edx
6204
                rol     ecx, 0Ah
6205
                lea     eax, [eax+edi+7A6D76E9h]
6206
                mov     edi, ecx
6207
                rol     eax, 8
6208
                add     eax, ebp
6209
                xor     edi, ebx
6210
                add     ebp, [esi+4]
6211
                and     edi, eax
6212
                xor     edi, ecx
6213
                rol     ebx, 0Ah
6214
                lea     ebp, [ebp+edi+7A6D76E9h]
6215
                mov     edi, ebx
6216
                rol     ebp, 0Bh
6217
                add     ebp, edx
6218
                xor     edi, eax
6219
                add     edx, [esi+0Ch]
6220
                and     edi, ebp
6221
                xor     edi, ebx
6222
                rol     eax, 0Ah
6223
                lea     edx, [edx+edi+7A6D76E9h]
6224
                mov     edi, eax
6225
                rol     edx, 0Eh
6226
                add     edx, ecx
6227
                xor     edi, ebp
6228
                add     ecx, [esi+2Ch]
6229
                and     edi, edx
6230
                xor     edi, eax
6231
                rol     ebp, 0Ah
6232
                lea     ecx, [ecx+edi+7A6D76E9h]
6233
                mov     edi, ebp
6234
                rol     ecx, 0Eh
6235
                add     ecx, ebx
6236
                xor     edi, edx
6237
                add     ebx, [esi+3Ch]
6238
                and     edi, ecx
6239
                xor     edi, ebp
6240
                rol     edx, 0Ah
6241
                lea     ebx, [ebx+edi+7A6D76E9h]
6242
                mov     edi, edx
6243
                rol     ebx, 6
6244
                add     ebx, eax
6245
                xor     edi, ecx
6246
                add     eax, [esi]
6247
                and     edi, ebx
6248
                xor     edi, edx
6249
                rol     ecx, 0Ah
6250
                lea     eax, [eax+edi+7A6D76E9h]
6251
                mov     edi, ecx
6252
                rol     eax, 0Eh
6253
                add     eax, ebp
6254
                xor     edi, ebx
6255
                add     ebp, [esi+14h]
6256
                and     edi, eax
6257
                xor     edi, ecx
6258
                rol     ebx, 0Ah
6259
                lea     ebp, [ebp+edi+7A6D76E9h]
6260
                mov     edi, ebx
6261
                rol     ebp, 6
6262
                add     ebp, edx
6263
                xor     edi, eax
6264
                add     edx, [esi+30h]
6265
                and     edi, ebp
6266
                xor     edi, ebx
6267
                rol     eax, 0Ah
6268
                lea     edx, [edx+edi+7A6D76E9h]
6269
                mov     edi, eax
6270
                rol     edx, 9
6271
                add     edx, ecx
6272
                xor     edi, ebp
6273
                add     ecx, [esi+8]
6274
                and     edi, edx
6275
                xor     edi, eax
6276
                rol     ebp, 0Ah
6277
                lea     ecx, [ecx+edi+7A6D76E9h]
6278
                mov     edi, ebp
6279
                rol     ecx, 0Ch
6280
                add     ecx, ebx
6281
                xor     edi, edx
6282
                add     ebx, [esi+34h]
6283
                and     edi, ecx
6284
                xor     edi, ebp
6285
                rol     edx, 0Ah
6286
                lea     ebx, [ebx+edi+7A6D76E9h]
6287
                mov     edi, edx
6288
                rol     ebx, 9
6289
                add     ebx, eax
6290
                xor     edi, ecx
6291
                add     eax, [esi+24h]
6292
                and     edi, ebx
6293
                xor     edi, edx
6294
                rol     ecx, 0Ah
6295
                lea     eax, [eax+edi+7A6D76E9h]
6296
                mov     edi, ecx
6297
                rol     eax, 0Ch
6298
                add     eax, ebp
6299
                xor     edi, ebx
6300
                add     ebp, [esi+1Ch]
6301
                and     edi, eax
6302
                xor     edi, ecx
6303
                rol     ebx, 0Ah
6304
                lea     ebp, [ebp+edi+7A6D76E9h]
6305
                mov     edi, ebx
6306
                rol     ebp, 5
6307
                add     ebp, edx
6308
                xor     edi, eax
6309
                add     edx, [esi+28h]
6310
                and     edi, ebp
6311
                xor     edi, ebx
6312
                rol     eax, 0Ah
6313
                lea     edx, [edx+edi+7A6D76E9h]
6314
                mov     edi, eax
6315
                rol     edx, 0Fh
6316
                add     edx, ecx
6317
                xor     edi, ebp
6318
                add     ecx, [esi+38h]
6319
                and     edi, edx
6320
                xor     edi, eax
6321
                rol     ebp, 0Ah
6322
                lea     ecx, [ecx+edi+7A6D76E9h]
6323
                rol     ecx, 8
6324
                add     ecx, ebx
6325
                mov     [esp+14h], eax
6326
                mov     [esp+18h], ebx
6327
                mov     eax, [esp]
6328
                mov     ebx, [esp+4]
6329
                mov     [esp+1Ch], ecx
6330
                mov     [esp+24h], ebp
6331
                mov     ecx, [esp+8]
6332
                mov     ebp, [esp+0Ch]
6333
                mov     [esp+20h], ebp
6334
                mov     ebp, [esp+10h]
6335
                mov     edi, ebp
6336
                xor     edi, 0FFFFFFFFh
6337
                or      edi, edx
6338
                add     ebx, [esi+10h]
6339
                xor     edi, ecx
6340
                rol     edx, 0Ah
6341
                lea     ebx, [ebx+edi-56AC02B2h]
6342
                mov     edi, edx
6343
                rol     ebx, 9
6344
                add     ebx, eax
6345
                xor     edi, 0FFFFFFFFh
6346
                or      edi, ecx
6347
                add     eax, [esi]
6348
                xor     edi, ebx
6349
                rol     ecx, 0Ah
6350
                lea     eax, [eax+edi-56AC02B2h]
6351
                mov     edi, ecx
6352
                rol     eax, 0Fh
6353
                add     eax, ebp
6354
                xor     edi, 0FFFFFFFFh
6355
                or      edi, ebx
6356
                add     ebp, [esi+14h]
6357
                xor     edi, eax
6358
                rol     ebx, 0Ah
6359
                lea     ebp, [ebp+edi-56AC02B2h]
6360
                mov     edi, ebx
6361
                rol     ebp, 5
6362
                add     ebp, edx
6363
                xor     edi, 0FFFFFFFFh
6364
                or      edi, eax
6365
                add     edx, [esi+24h]
6366
                xor     edi, ebp
6367
                rol     eax, 0Ah
6368
                lea     edx, [edx+edi-56AC02B2h]
6369
                mov     edi, eax
6370
                rol     edx, 0Bh
6371
                add     edx, ecx
6372
                xor     edi, 0FFFFFFFFh
6373
                or      edi, ebp
6374
                add     ecx, [esi+1Ch]
6375
                xor     edi, edx
6376
                rol     ebp, 0Ah
6377
                lea     ecx, [ecx+edi-56AC02B2h]
6378
                mov     edi, ebp
6379
                rol     ecx, 6
6380
                add     ecx, ebx
6381
                xor     edi, 0FFFFFFFFh
6382
                or      edi, edx
6383
                add     ebx, [esi+30h]
6384
                xor     edi, ecx
6385
                rol     edx, 0Ah
6386
                lea     ebx, [ebx+edi-56AC02B2h]
6387
                mov     edi, edx
6388
                rol     ebx, 8
6389
                add     ebx, eax
6390
                xor     edi, 0FFFFFFFFh
6391
                or      edi, ecx
6392
                add     eax, [esi+8]
6393
                xor     edi, ebx
6394
                rol     ecx, 0Ah
6395
                lea     eax, [eax+edi-56AC02B2h]
6396
                mov     edi, ecx
6397
                rol     eax, 0Dh
6398
                add     eax, ebp
6399
                xor     edi, 0FFFFFFFFh
6400
                or      edi, ebx
6401
                add     ebp, [esi+28h]
6402
                xor     edi, eax
6403
                rol     ebx, 0Ah
6404
                lea     ebp, [ebp+edi-56AC02B2h]
6405
                mov     edi, ebx
6406
                rol     ebp, 0Ch
6407
                add     ebp, edx
6408
                xor     edi, 0FFFFFFFFh
6409
                or      edi, eax
6410
                add     edx, [esi+38h]
6411
                xor     edi, ebp
6412
                rol     eax, 0Ah
6413
                lea     edx, [edx+edi-56AC02B2h]
6414
                mov     edi, eax
6415
                rol     edx, 5
6416
                add     edx, ecx
6417
                xor     edi, 0FFFFFFFFh
6418
                or      edi, ebp
6419
                add     ecx, [esi+4]
6420
                xor     edi, edx
6421
                rol     ebp, 0Ah
6422
                lea     ecx, [ecx+edi-56AC02B2h]
6423
                mov     edi, ebp
6424
                rol     ecx, 0Ch
6425
                add     ecx, ebx
6426
                xor     edi, 0FFFFFFFFh
6427
                or      edi, edx
6428
                add     ebx, [esi+0Ch]
6429
                xor     edi, ecx
6430
                rol     edx, 0Ah
6431
                lea     ebx, [ebx+edi-56AC02B2h]
6432
                mov     edi, edx
6433
                rol     ebx, 0Dh
6434
                add     ebx, eax
6435
                xor     edi, 0FFFFFFFFh
6436
                or      edi, ecx
6437
                add     eax, [esi+20h]
6438
                xor     edi, ebx
6439
                rol     ecx, 0Ah
6440
                lea     eax, [eax+edi-56AC02B2h]
6441
                mov     edi, ecx
6442
                rol     eax, 0Eh
6443
                add     eax, ebp
6444
                xor     edi, 0FFFFFFFFh
6445
                or      edi, ebx
6446
                add     ebp, [esi+2Ch]
6447
                xor     edi, eax
6448
                rol     ebx, 0Ah
6449
                lea     ebp, [ebp+edi-56AC02B2h]
6450
                mov     edi, ebx
6451
                rol     ebp, 0Bh
6452
                add     ebp, edx
6453
                xor     edi, 0FFFFFFFFh
6454
                or      edi, eax
6455
                add     edx, [esi+18h]
6456
                xor     edi, ebp
6457
                rol     eax, 0Ah
6458
                lea     edx, [edx+edi-56AC02B2h]
6459
                mov     edi, eax
6460
                rol     edx, 8
6461
                add     edx, ecx
6462
                xor     edi, 0FFFFFFFFh
6463
                or      edi, ebp
6464
                add     ecx, [esi+3Ch]
6465
                xor     edi, edx
6466
                rol     ebp, 0Ah
6467
                lea     ecx, [ecx+edi-56AC02B2h]
6468
                mov     edi, ebp
6469
                rol     ecx, 5
6470
                add     ecx, ebx
6471
                xor     edi, 0FFFFFFFFh
6472
                or      edi, edx
6473
                add     ebx, [esi+34h]
6474
                xor     edi, ecx
6475
                rol     edx, 0Ah
6476
                lea     ebx, [ebx+edi-56AC02B2h]
6477
                rol     ebx, 6
6478
                add     ebx, eax
6479
                mov     [esp], eax
6480
                mov     [esp+4], ebx
6481
                mov     eax, [esp+14h]
6482
                mov     ebx, [esp+18h]
6483
                mov     [esp+8], ecx
6484
                mov     [esp+0Ch], edx
6485
                mov     ecx, [esp+1Ch]
6486
                mov     edx, [esp+20h]
6487
                mov     [esp+10h], ebp
6488
                mov     ebp, [esp+24h]
6489
                mov     edi, ebp
6490
                xor     edi, edx
6491
                xor     edi, ecx
6492
                add     ebx, [esi+30h]
6493
                rol     edx, 0Ah
6494
                add     ebx, edi
6495
                mov     edi, edx
6496
                rol     ebx, 8
6497
                add     ebx, eax
6498
                xor     edi, ecx
6499
                xor     edi, ebx
6500
                add     eax, [esi+3Ch]
6501
                rol     ecx, 0Ah
6502
                add     eax, edi
6503
                mov     edi, ecx
6504
                rol     eax, 5
6505
                add     eax, ebp
6506
                xor     edi, ebx
6507
                xor     edi, eax
6508
                add     ebp, [esi+28h]
6509
                rol     ebx, 0Ah
6510
                add     ebp, edi
6511
                mov     edi, ebx
6512
                rol     ebp, 0Ch
6513
                add     ebp, edx
6514
                xor     edi, eax
6515
                xor     edi, ebp
6516
                add     edx, [esi+10h]
6517
                rol     eax, 0Ah
6518
                add     edx, edi
6519
                mov     edi, eax
6520
                rol     edx, 9
6521
                add     edx, ecx
6522
                xor     edi, ebp
6523
                xor     edi, edx
6524
                add     ecx, [esi+4]
6525
                rol     ebp, 0Ah
6526
                add     ecx, edi
6527
                mov     edi, ebp
6528
                rol     ecx, 0Ch
6529
                add     ecx, ebx
6530
                xor     edi, edx
6531
                xor     edi, ecx
6532
                add     ebx, [esi+14h]
6533
                rol     edx, 0Ah
6534
                add     ebx, edi
6535
                mov     edi, edx
6536
                rol     ebx, 5
6537
                add     ebx, eax
6538
                xor     edi, ecx
6539
                xor     edi, ebx
6540
                add     eax, [esi+20h]
6541
                rol     ecx, 0Ah
6542
                add     eax, edi
6543
                mov     edi, ecx
6544
                rol     eax, 0Eh
6545
                add     eax, ebp
6546
                xor     edi, ebx
6547
                xor     edi, eax
6548
                add     ebp, [esi+1Ch]
6549
                rol     ebx, 0Ah
6550
                add     ebp, edi
6551
                mov     edi, ebx
6552
                rol     ebp, 6
6553
                add     ebp, edx
6554
                xor     edi, eax
6555
                xor     edi, ebp
6556
                add     edx, [esi+18h]
6557
                rol     eax, 0Ah
6558
                add     edx, edi
6559
                mov     edi, eax
6560
                rol     edx, 8
6561
                add     edx, ecx
6562
                xor     edi, ebp
6563
                xor     edi, edx
6564
                add     ecx, [esi+8]
6565
                rol     ebp, 0Ah
6566
                add     ecx, edi
6567
                mov     edi, ebp
6568
                rol     ecx, 0Dh
6569
                add     ecx, ebx
6570
                xor     edi, edx
6571
                xor     edi, ecx
6572
                add     ebx, [esi+34h]
6573
                rol     edx, 0Ah
6574
                add     ebx, edi
6575
                mov     edi, edx
6576
                rol     ebx, 6
6577
                add     ebx, eax
6578
                xor     edi, ecx
6579
                xor     edi, ebx
6580
                add     eax, [esi+38h]
6581
                rol     ecx, 0Ah
6582
                add     eax, edi
6583
                mov     edi, ecx
6584
                rol     eax, 5
6585
                add     eax, ebp
6586
                xor     edi, ebx
6587
                xor     edi, eax
6588
                add     ebp, [esi]
6589
                rol     ebx, 0Ah
6590
                add     ebp, edi
6591
                mov     edi, ebx
6592
                rol     ebp, 0Fh
6593
                add     ebp, edx
6594
                xor     edi, eax
6595
                xor     edi, ebp
6596
                add     edx, [esi+0Ch]
6597
                rol     eax, 0Ah
6598
                add     edx, edi
6599
                mov     edi, eax
6600
                rol     edx, 0Dh
6601
                add     edx, ecx
6602
                xor     edi, ebp
6603
                xor     edi, edx
6604
                add     ecx, [esi+24h]
6605
                rol     ebp, 0Ah
6606
                add     ecx, edi
6607
                mov     edi, ebp
6608
                rol     ecx, 0Bh
6609
                add     ecx, ebx
6610
                xor     edi, edx
6611
                xor     edi, ecx
6612
                add     ebx, [esi+2Ch]
6613
                rol     edx, 0Ah
6614
                add     ebx, edi
6615
                rol     ebx, 0Bh
6616
                add     ebx, eax
6617
                mov     edi, [esp+28h]
6618
                add     [edi+10h], ebp
6619
                add     [edi+14h], eax
6620
                add     [edi+18h], ebx
6621
                mov     eax, [esp]
6622
                mov     ebx, [esp+4]
6623
                add     [edi+1Ch], ecx
6624
                mov     ebp, [esp+10h]
6625
                add     [edi+20h], edx
6626
                mov     ecx, [esp+8]
6627
                mov     edx, [esp+0Ch]
6628
                add     [edi], eax
6629
                add     [edi+4], ebx
6630
                add     esp, 2Ch
6631
                add     [edi+8], ecx
6632
                add     [edi+0Ch], edx
6633
                add     [edi+24h], ebp
6634
                pop     ebp
6635
                pop     edi
6636
                pop     esi
6637
                pop     ebx
6638
end;
6639
{$ENDIF}
6640
6641
{$IFDEF THash_SHA_asm}
6642
procedure SHABuffer(W,S: PUInt32Array; Rotate: Boolean);
6643
var
6644
  I: Integer;
6645
  T: UInt32; //LongWord;
6646
begin
6647
  SwapUInt32Buffer(S[0], W[0], 16);
6648
  if Rotate then
6649
    for I := 16 to 79 do
6650
    begin
6651
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
6652
      W[I] := T shl 1 or T shr 31;
6653
    end
6654
  else
6655
    for I := 16 to 79 do
6656
    begin
6657
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
6658
      W[I] := T;
6659
    end
6660
end;
6661
6662
procedure THash_SHA0.DoTransform(Buffer: PUInt32Array);
6663
var
6664
  W: array[0..79] of LongWord;
6665
begin
6666
  SHABuffer(PUInt32Array(@W), Buffer, ClassType <> THash_SHA0);
6667
6668
  asm
6669
                push    ebx
6670
                mov     eax, Self
6671
                push    esi
6672
                push    edi
6673
                lea     edi, [eax].THash_SHA0.FDigest
6674
                lea     esi, W
6675
                push    ebp
6676
6677
                sub     esp, 8
6678
                mov     eax, [edi]
6679
                mov     ebx, [edi+4]
6680
                mov     ecx, [edi+8]
6681
                mov     [esp], edi
6682
                mov     edx, [edi+0Ch]
6683
                mov     ebp, [edi+10h]
6684
                mov     [esp+4], esi
6685
                mov     edi, ecx
6686
                xor     edi, edx
6687
                and     edi, ebx
6688
                add     ebp, [esi]
6689
                xor     edi, edx
6690
                ror     ebx, 2
6691
                lea     ebp, [ebp+edi+5A827999h]
6692
                mov     edi, eax
6693
                rol     edi, 5
6694
                add     ebp, edi
6695
                mov     edi, ecx
6696
                xor     edi, ebx
6697
                and     edi, eax
6698
                add     edx, [esi+4]
6699
                xor     edi, ecx
6700
                ror     eax, 2
6701
                lea     edx, [edx+edi+5A827999h]
6702
                mov     edi, ebp
6703
                rol     edi, 5
6704
                add     edx, edi
6705
                mov     edi, ebx
6706
                xor     edi, eax
6707
                and     edi, ebp
6708
                add     ecx, [esi+8]
6709
                xor     edi, ebx
6710
                ror     ebp, 2
6711
                lea     ecx, [ecx+edi+5A827999h]
6712
                mov     edi, edx
6713
                rol     edi, 5
6714
                add     ecx, edi
6715
                mov     edi, eax
6716
                xor     edi, ebp
6717
                and     edi, edx
6718
                add     ebx, [esi+0Ch]
6719
                xor     edi, eax
6720
                ror     edx, 2
6721
                lea     ebx, [ebx+edi+5A827999h]
6722
                mov     edi, ecx
6723
                rol     edi, 5
6724
                add     ebx, edi
6725
                mov     edi, ebp
6726
                xor     edi, edx
6727
                and     edi, ecx
6728
                add     eax, [esi+10h]
6729
                xor     edi, ebp
6730
                ror     ecx, 2
6731
                lea     eax, [eax+edi+5A827999h]
6732
                mov     edi, ebx
6733
                rol     edi, 5
6734
                add     eax, edi
6735
                mov     edi, edx
6736
                xor     edi, ecx
6737
                and     edi, ebx
6738
                add     ebp, [esi+14h]
6739
                xor     edi, edx
6740
                ror     ebx, 2
6741
                lea     ebp, [ebp+edi+5A827999h]
6742
                mov     edi, eax
6743
                rol     edi, 5
6744
                add     ebp, edi
6745
                mov     edi, ecx
6746
                xor     edi, ebx
6747
                and     edi, eax
6748
                add     edx, [esi+18h]
6749
                xor     edi, ecx
6750
                ror     eax, 2
6751
                lea     edx, [edx+edi+5A827999h]
6752
                mov     edi, ebp
6753
                rol     edi, 5
6754
                add     edx, edi
6755
                mov     edi, ebx
6756
                xor     edi, eax
6757
                and     edi, ebp
6758
                add     ecx, [esi+1Ch]
6759
                xor     edi, ebx
6760
                ror     ebp, 2
6761
                lea     ecx, [ecx+edi+5A827999h]
6762
                mov     edi, edx
6763
                rol     edi, 5
6764
                add     ecx, edi
6765
                mov     edi, eax
6766
                xor     edi, ebp
6767
                and     edi, edx
6768
                add     ebx, [esi+20h]
6769
                xor     edi, eax
6770
                ror     edx, 2
6771
                lea     ebx, [ebx+edi+5A827999h]
6772
                mov     edi, ecx
6773
                rol     edi, 5
6774
                add     ebx, edi
6775
                mov     edi, ebp
6776
                xor     edi, edx
6777
                and     edi, ecx
6778
                add     eax, [esi+24h]
6779
                xor     edi, ebp
6780
                ror     ecx, 2
6781
                lea     eax, [eax+edi+5A827999h]
6782
                mov     edi, ebx
6783
                rol     edi, 5
6784
                add     eax, edi
6785
                mov     edi, edx
6786
                xor     edi, ecx
6787
                and     edi, ebx
6788
                add     ebp, [esi+28h]
6789
                xor     edi, edx
6790
                ror     ebx, 2
6791
                lea     ebp, [ebp+edi+5A827999h]
6792
                mov     edi, eax
6793
                rol     edi, 5
6794
                add     ebp, edi
6795
                mov     edi, ecx
6796
                xor     edi, ebx
6797
                and     edi, eax
6798
                add     edx, [esi+2Ch]
6799
                xor     edi, ecx
6800
                ror     eax, 2
6801
                lea     edx, [edx+edi+5A827999h]
6802
                mov     edi, ebp
6803
                rol     edi, 5
6804
                add     edx, edi
6805
                mov     edi, ebx
6806
                xor     edi, eax
6807
                and     edi, ebp
6808
                add     ecx, [esi+30h]
6809
                xor     edi, ebx
6810
                ror     ebp, 2
6811
                lea     ecx, [ecx+edi+5A827999h]
6812
                mov     edi, edx
6813
                rol     edi, 5
6814
                add     ecx, edi
6815
                mov     edi, eax
6816
                xor     edi, ebp
6817
                and     edi, edx
6818
                add     ebx, [esi+34h]
6819
                xor     edi, eax
6820
                ror     edx, 2
6821
                lea     ebx, [ebx+edi+5A827999h]
6822
                mov     edi, ecx
6823
                rol     edi, 5
6824
                add     ebx, edi
6825
                mov     edi, ebp
6826
                xor     edi, edx
6827
                and     edi, ecx
6828
                add     eax, [esi+38h]
6829
                xor     edi, ebp
6830
                ror     ecx, 2
6831
                lea     eax, [eax+edi+5A827999h]
6832
                mov     edi, ebx
6833
                rol     edi, 5
6834
                add     eax, edi
6835
                mov     edi, edx
6836
                xor     edi, ecx
6837
                and     edi, ebx
6838
                add     ebp, [esi+3Ch]
6839
                xor     edi, edx
6840
                ror     ebx, 2
6841
                lea     ebp, [ebp+edi+5A827999h]
6842
                mov     edi, eax
6843
                rol     edi, 5
6844
                add     ebp, edi
6845
                mov     edi, ecx
6846
                xor     edi, ebx
6847
                and     edi, eax
6848
                add     edx, [esi+40h]
6849
                xor     edi, ecx
6850
                ror     eax, 2
6851
                lea     edx, [edx+edi+5A827999h]
6852
                mov     edi, ebp
6853
                rol     edi, 5
6854
                add     edx, edi
6855
                mov     edi, ebx
6856
                xor     edi, eax
6857
                and     edi, ebp
6858
                add     ecx, [esi+44h]
6859
                xor     edi, ebx
6860
                ror     ebp, 2
6861
                lea     ecx, [ecx+edi+5A827999h]
6862
                mov     edi, edx
6863
                rol     edi, 5
6864
                add     ecx, edi
6865
                mov     edi, eax
6866
                xor     edi, ebp
6867
                and     edi, edx
6868
                add     ebx, [esi+48h]
6869
                xor     edi, eax
6870
                ror     edx, 2
6871
                lea     ebx, [ebx+edi+5A827999h]
6872
                mov     edi, ecx
6873
                rol     edi, 5
6874
                add     ebx, edi
6875
                mov     edi, ebp
6876
                xor     edi, edx
6877
                and     edi, ecx
6878
                add     eax, [esi+4Ch]
6879
                xor     edi, ebp
6880
                ror     ecx, 2
6881
                lea     eax, [eax+edi+5A827999h]
6882
                mov     edi, ebx
6883
                rol     edi, 5
6884
                add     eax, edi
6885
                mov     edi, edx
6886
                xor     edi, ecx
6887
                xor     edi, ebx
6888
                add     ebp, edi
6889
                mov     edi, [esi+50h]
6890
                ror     ebx, 2
6891
                lea     ebp, [ebp+edi+6ED9EBA1h]
6892
                mov     edi, eax
6893
                rol     edi, 5
6894
                add     ebp, edi
6895
                mov     edi, ecx
6896
                xor     edi, ebx
6897
                xor     edi, eax
6898
                add     edx, edi
6899
                mov     edi, [esi+54h]
6900
                ror     eax, 2
6901
                lea     edx, [edx+edi+6ED9EBA1h]
6902
                mov     edi, ebp
6903
                rol     edi, 5
6904
                add     edx, edi
6905
                mov     edi, ebx
6906
                xor     edi, eax
6907
                xor     edi, ebp
6908
                add     ecx, edi
6909
                mov     edi, [esi+58h]
6910
                ror     ebp, 2
6911
                lea     ecx, [ecx+edi+6ED9EBA1h]
6912
                mov     edi, edx
6913
                rol     edi, 5
6914
                add     ecx, edi
6915
                mov     edi, eax
6916
                xor     edi, ebp
6917
                xor     edi, edx
6918
                add     ebx, edi
6919
                mov     edi, [esi+5Ch]
6920
                ror     edx, 2
6921
                lea     ebx, [ebx+edi+6ED9EBA1h]
6922
                mov     edi, ecx
6923
                rol     edi, 5
6924
                add     ebx, edi
6925
                mov     edi, ebp
6926
                xor     edi, edx
6927
                xor     edi, ecx
6928
                add     eax, edi
6929
                mov     edi, [esi+60h]
6930
                ror     ecx, 2
6931
                lea     eax, [eax+edi+6ED9EBA1h]
6932
                mov     edi, ebx
6933
                rol     edi, 5
6934
                add     eax, edi
6935
                mov     edi, edx
6936
                xor     edi, ecx
6937
                xor     edi, ebx
6938
                add     ebp, edi
6939
                mov     edi, [esi+64h]
6940
                ror     ebx, 2
6941
                lea     ebp, [ebp+edi+6ED9EBA1h]
6942
                mov     edi, eax
6943
                rol     edi, 5
6944
                add     ebp, edi
6945
                mov     edi, ecx
6946
                xor     edi, ebx
6947
                xor     edi, eax
6948
                add     edx, edi
6949
                mov     edi, [esi+68h]
6950
                ror     eax, 2
6951
                lea     edx, [edx+edi+6ED9EBA1h]
6952
                mov     edi, ebp
6953
                rol     edi, 5
6954
                add     edx, edi
6955
                mov     edi, ebx
6956
                xor     edi, eax
6957
                xor     edi, ebp
6958
                add     ecx, edi
6959
                mov     edi, [esi+6Ch]
6960
                ror     ebp, 2
6961
                lea     ecx, [ecx+edi+6ED9EBA1h]
6962
                mov     edi, edx
6963
                rol     edi, 5
6964
                add     ecx, edi
6965
                mov     edi, eax
6966
                xor     edi, ebp
6967
                xor     edi, edx
6968
                add     ebx, edi
6969
                mov     edi, [esi+70h]
6970
                ror     edx, 2
6971
                lea     ebx, [ebx+edi+6ED9EBA1h]
6972
                mov     edi, ecx
6973
                rol     edi, 5
6974
                add     ebx, edi
6975
                mov     edi, ebp
6976
                xor     edi, edx
6977
                xor     edi, ecx
6978
                add     eax, edi
6979
                mov     edi, [esi+74h]
6980
                ror     ecx, 2
6981
                lea     eax, [eax+edi+6ED9EBA1h]
6982
                mov     edi, ebx
6983
                rol     edi, 5
6984
                add     eax, edi
6985
                mov     edi, edx
6986
                xor     edi, ecx
6987
                xor     edi, ebx
6988
                add     ebp, edi
6989
                mov     edi, [esi+78h]
6990
                ror     ebx, 2
6991
                lea     ebp, [ebp+edi+6ED9EBA1h]
6992
                mov     edi, eax
6993
                rol     edi, 5
6994
                add     ebp, edi
6995
                mov     edi, ecx
6996
                xor     edi, ebx
6997
                xor     edi, eax
6998
                add     edx, edi
6999
                mov     edi, [esi+7Ch]
7000
                ror     eax, 2
7001
                lea     edx, [edx+edi+6ED9EBA1h]
7002
                mov     edi, ebp
7003
                rol     edi, 5
7004
                add     edx, edi
7005
                mov     edi, ebx
7006
                xor     edi, eax
7007
                xor     edi, ebp
7008
                add     ecx, edi
7009
                mov     edi, [esi+80h]
7010
                ror     ebp, 2
7011
                lea     ecx, [ecx+edi+6ED9EBA1h]
7012
                mov     edi, edx
7013
                rol     edi, 5
7014
                add     ecx, edi
7015
                mov     edi, eax
7016
                xor     edi, ebp
7017
                xor     edi, edx
7018
                add     ebx, edi
7019
                mov     edi, [esi+84h]
7020
                ror     edx, 2
7021
                lea     ebx, [ebx+edi+6ED9EBA1h]
7022
                mov     edi, ecx
7023
                rol     edi, 5
7024
                add     ebx, edi
7025
                mov     edi, ebp
7026
                xor     edi, edx
7027
                xor     edi, ecx
7028
                add     eax, edi
7029
                mov     edi, [esi+88h]
7030
                ror     ecx, 2
7031
                lea     eax, [eax+edi+6ED9EBA1h]
7032
                mov     edi, ebx
7033
                rol     edi, 5
7034
                add     eax, edi
7035
                mov     edi, edx
7036
                xor     edi, ecx
7037
                xor     edi, ebx
7038
                add     ebp, edi
7039
                mov     edi, [esi+8Ch]
7040
                ror     ebx, 2
7041
                lea     ebp, [ebp+edi+6ED9EBA1h]
7042
                mov     edi, eax
7043
                rol     edi, 5
7044
                add     ebp, edi
7045
                mov     edi, ecx
7046
                xor     edi, ebx
7047
                xor     edi, eax
7048
                add     edx, edi
7049
                mov     edi, [esi+90h]
7050
                ror     eax, 2
7051
                lea     edx, [edx+edi+6ED9EBA1h]
7052
                mov     edi, ebp
7053
                rol     edi, 5
7054
                add     edx, edi
7055
                mov     edi, ebx
7056
                xor     edi, eax
7057
                xor     edi, ebp
7058
                add     ecx, edi
7059
                mov     edi, [esi+94h]
7060
                ror     ebp, 2
7061
                lea     ecx, [ecx+edi+6ED9EBA1h]
7062
                mov     edi, edx
7063
                rol     edi, 5
7064
                add     ecx, edi
7065
                mov     edi, eax
7066
                xor     edi, ebp
7067
                xor     edi, edx
7068
                add     ebx, edi
7069
                mov     edi, [esi+98h]
7070
                ror     edx, 2
7071
                lea     ebx, [ebx+edi+6ED9EBA1h]
7072
                mov     edi, ecx
7073
                rol     edi, 5
7074
                add     ebx, edi
7075
                mov     edi, ebp
7076
                xor     edi, edx
7077
                xor     edi, ecx
7078
                add     eax, edi
7079
                mov     edi, [esi+9Ch]
7080
                ror     ecx, 2
7081
                lea     eax, [eax+edi+6ED9EBA1h]
7082
                mov     edi, ebx
7083
                rol     edi, 5
7084
                add     eax, edi
7085
                mov     edi, edx
7086
                xor     edi, ecx
7087
                mov     esi, ecx
7088
                mov     edi, ecx
7089
                or      esi, edx
7090
                and     edi, edx
7091
                and     esi, ebx
7092
                or      esi, edi
7093
                mov     edi, eax
7094
                add     ebp, esi
7095
                mov     esi, [esp+4]
7096
                rol     edi, 5
7097
                add     ebp, edi
7098
                mov     edi, [esi+0A0h]
7099
                ror     ebx, 2
7100
                lea     ebp, [ebp+edi-70E44324h]
7101
                mov     esi, ebx
7102
                mov     edi, ebx
7103
                or      esi, ecx
7104
                and     edi, ecx
7105
                and     esi, eax
7106
                or      esi, edi
7107
                mov     edi, ebp
7108
                add     edx, esi
7109
                mov     esi, [esp+4]
7110
                rol     edi, 5
7111
                add     edx, edi
7112
                mov     edi, [esi+0A4h]
7113
                ror     eax, 2
7114
                lea     edx, [edx+edi-70E44324h]
7115
                mov     esi, eax
7116
                mov     edi, eax
7117
                or      esi, ebx
7118
                and     edi, ebx
7119
                and     esi, ebp
7120
                or      esi, edi
7121
                mov     edi, edx
7122
                add     ecx, esi
7123
                mov     esi, [esp+4]
7124
                rol     edi, 5
7125
                add     ecx, edi
7126
                mov     edi, [esi+0A8h]
7127
                ror     ebp, 2
7128
                lea     ecx, [ecx+edi-70E44324h]
7129
                mov     esi, ebp
7130
                mov     edi, ebp
7131
                or      esi, eax
7132
                and     edi, eax
7133
                and     esi, edx
7134
                or      esi, edi
7135
                mov     edi, ecx
7136
                add     ebx, esi
7137
                mov     esi, [esp+4]
7138
                rol     edi, 5
7139
                add     ebx, edi
7140
                mov     edi, [esi+0ACh]
7141
                ror     edx, 2
7142
                lea     ebx, [ebx+edi-70E44324h]
7143
                mov     esi, edx
7144
                mov     edi, edx
7145
                or      esi, ebp
7146
                and     edi, ebp
7147
                and     esi, ecx
7148
                or      esi, edi
7149
                mov     edi, ebx
7150
                add     eax, esi
7151
                mov     esi, [esp+4]
7152
                rol     edi, 5
7153
                add     eax, edi
7154
                mov     edi, [esi+0B0h]
7155
                ror     ecx, 2
7156
                lea     eax, [eax+edi-70E44324h]
7157
                mov     esi, ecx
7158
                mov     edi, ecx
7159
                or      esi, edx
7160
                and     edi, edx
7161
                and     esi, ebx
7162
                or      esi, edi
7163
                mov     edi, eax
7164
                add     ebp, esi
7165
                mov     esi, [esp+4]
7166
                rol     edi, 5
7167
                add     ebp, edi
7168
                mov     edi, [esi+0B4h]
7169
                ror     ebx, 2
7170
                lea     ebp, [ebp+edi-70E44324h]
7171
                mov     esi, ebx
7172
                mov     edi, ebx
7173
                or      esi, ecx
7174
                and     edi, ecx
7175
                and     esi, eax
7176
                or      esi, edi
7177
                mov     edi, ebp
7178
                add     edx, esi
7179
                mov     esi, [esp+4]
7180
                rol     edi, 5
7181
                add     edx, edi
7182
                mov     edi, [esi+0B8h]
7183
                ror     eax, 2
7184
                lea     edx, [edx+edi-70E44324h]
7185
                mov     esi, eax
7186
                mov     edi, eax
7187
                or      esi, ebx
7188
                and     edi, ebx
7189
                and     esi, ebp
7190
                or      esi, edi
7191
                mov     edi, edx
7192
                add     ecx, esi
7193
                mov     esi, [esp+4]
7194
                rol     edi, 5
7195
                add     ecx, edi
7196
                mov     edi, [esi+0BCh]
7197
                ror     ebp, 2
7198
                lea     ecx, [ecx+edi-70E44324h]
7199
                mov     esi, ebp
7200
                mov     edi, ebp
7201
                or      esi, eax
7202
                and     edi, eax
7203
                and     esi, edx
7204
                or      esi, edi
7205
                mov     edi, ecx
7206
                add     ebx, esi
7207
                mov     esi, [esp+4]
7208
                rol     edi, 5
7209
                add     ebx, edi
7210
                mov     edi, [esi+0C0h]
7211
                ror     edx, 2
7212
                lea     ebx, [ebx+edi-70E44324h]
7213
                mov     esi, edx
7214
                mov     edi, edx
7215
                or      esi, ebp
7216
                and     edi, ebp
7217
                and     esi, ecx
7218
                or      esi, edi
7219
                mov     edi, ebx
7220
                add     eax, esi
7221
                mov     esi, [esp+4]
7222
                rol     edi, 5
7223
                add     eax, edi
7224
                mov     edi, [esi+0C4h]
7225
                ror     ecx, 2
7226
                lea     eax, [eax+edi-70E44324h]
7227
                mov     esi, ecx
7228
                mov     edi, ecx
7229
                or      esi, edx
7230
                and     edi, edx
7231
                and     esi, ebx
7232
                or      esi, edi
7233
                mov     edi, eax
7234
                add     ebp, esi
7235
                mov     esi, [esp+4]
7236
                rol     edi, 5
7237
                add     ebp, edi
7238
                mov     edi, [esi+0C8h]
7239
                ror     ebx, 2
7240
                lea     ebp, [ebp+edi-70E44324h]
7241
                mov     esi, ebx
7242
                mov     edi, ebx
7243
                or      esi, ecx
7244
                and     edi, ecx
7245
                and     esi, eax
7246
                or      esi, edi
7247
                mov     edi, ebp
7248
                add     edx, esi
7249
                mov     esi, [esp+4]
7250
                rol     edi, 5
7251
                add     edx, edi
7252
                mov     edi, [esi+0CCh]
7253
                ror     eax, 2
7254
                lea     edx, [edx+edi-70E44324h]
7255
                mov     esi, eax
7256
                mov     edi, eax
7257
                or      esi, ebx
7258
                and     edi, ebx
7259
                and     esi, ebp
7260
                or      esi, edi
7261
                mov     edi, edx
7262
                add     ecx, esi
7263
                mov     esi, [esp+4]
7264
                rol     edi, 5
7265
                add     ecx, edi
7266
                mov     edi, [esi+0D0h]
7267
                ror     ebp, 2
7268
                lea     ecx, [ecx+edi-70E44324h]
7269
                mov     esi, ebp
7270
                mov     edi, ebp
7271
                or      esi, eax
7272
                and     edi, eax
7273
                and     esi, edx
7274
                or      esi, edi
7275
                mov     edi, ecx
7276
                add     ebx, esi
7277
                mov     esi, [esp+4]
7278
                rol     edi, 5
7279
                add     ebx, edi
7280
                mov     edi, [esi+0D4h]
7281
                ror     edx, 2
7282
                lea     ebx, [ebx+edi-70E44324h]
7283
                mov     esi, edx
7284
                mov     edi, edx
7285
                or      esi, ebp
7286
                and     edi, ebp
7287
                and     esi, ecx
7288
                or      esi, edi
7289
                mov     edi, ebx
7290
                add     eax, esi
7291
                mov     esi, [esp+4]
7292
                rol     edi, 5
7293
                add     eax, edi
7294
                mov     edi, [esi+0D8h]
7295
                ror     ecx, 2
7296
                lea     eax, [eax+edi-70E44324h]
7297
                mov     esi, ecx
7298
                mov     edi, ecx
7299
                or      esi, edx
7300
                and     edi, edx
7301
                and     esi, ebx
7302
                or      esi, edi
7303
                mov     edi, eax
7304
                add     ebp, esi
7305
                mov     esi, [esp+4]
7306
                rol     edi, 5
7307
                add     ebp, edi
7308
                mov     edi, [esi+0DCh]
7309
                ror     ebx, 2
7310
                lea     ebp, [ebp+edi-70E44324h]
7311
                mov     esi, ebx
7312
                mov     edi, ebx
7313
                or      esi, ecx
7314
                and     edi, ecx
7315
                and     esi, eax
7316
                or      esi, edi
7317
                mov     edi, ebp
7318
                add     edx, esi
7319
                mov     esi, [esp+4]
7320
                rol     edi, 5
7321
                add     edx, edi
7322
                mov     edi, [esi+0E0h]
7323
                ror     eax, 2
7324
                lea     edx, [edx+edi-70E44324h]
7325
                mov     esi, eax
7326
                mov     edi, eax
7327
                or      esi, ebx
7328
                and     edi, ebx
7329
                and     esi, ebp
7330
                or      esi, edi
7331
                mov     edi, edx
7332
                add     ecx, esi
7333
                mov     esi, [esp+4]
7334
                rol     edi, 5
7335
                add     ecx, edi
7336
                mov     edi, [esi+0E4h]
7337
                ror     ebp, 2
7338
                lea     ecx, [ecx+edi-70E44324h]
7339
                mov     esi, ebp
7340
                mov     edi, ebp
7341
                or      esi, eax
7342
                and     edi, eax
7343
                and     esi, edx
7344
                or      esi, edi
7345
                mov     edi, ecx
7346
                add     ebx, esi
7347
                mov     esi, [esp+4]
7348
                rol     edi, 5
7349
                add     ebx, edi
7350
                mov     edi, [esi+0E8h]
7351
                ror     edx, 2
7352
                lea     ebx, [ebx+edi-70E44324h]
7353
                mov     esi, edx
7354
                mov     edi, edx
7355
                or      esi, ebp
7356
                and     edi, ebp
7357
                and     esi, ecx
7358
                or      esi, edi
7359
                mov     edi, ebx
7360
                add     eax, esi
7361
                mov     esi, [esp+4]
7362
                rol     edi, 5
7363
                add     eax, edi
7364
                mov     edi, [esi+0ECh]
7365
                ror     ecx, 2
7366
                lea     eax, [eax+edi-70E44324h]
7367
                mov     edi, ecx
7368
                xor     edi, edx
7369
                xor     edi, ebx
7370
                add     ebp, edi
7371
                mov     edi, [esi+0F0h]
7372
                ror     ebx, 2
7373
                lea     ebp, [ebp+edi-359D3E2Ah]
7374
                mov     edi, eax
7375
                rol     edi, 5
7376
                add     ebp, edi
7377
                mov     edi, ecx
7378
                xor     edi, ebx
7379
                xor     edi, eax
7380
                add     edx, edi
7381
                mov     edi, [esi+0F4h]
7382
                ror     eax, 2
7383
                lea     edx, [edx+edi-359D3E2Ah]
7384
                mov     edi, ebp
7385
                rol     edi, 5
7386
                add     edx, edi
7387
                mov     edi, ebx
7388
                xor     edi, eax
7389
                xor     edi, ebp
7390
                add     ecx, edi
7391
                mov     edi, [esi+0F8h]
7392
                ror     ebp, 2
7393
                lea     ecx, [ecx+edi-359D3E2Ah]
7394
                mov     edi, edx
7395
                rol     edi, 5
7396
                add     ecx, edi
7397
                mov     edi, eax
7398
                xor     edi, ebp
7399
                xor     edi, edx
7400
                add     ebx, edi
7401
                mov     edi, [esi+0FCh]
7402
                ror     edx, 2
7403
                lea     ebx, [ebx+edi-359D3E2Ah]
7404
                mov     edi, ecx
7405
                rol     edi, 5
7406
                add     ebx, edi
7407
                mov     edi, ebp
7408
                xor     edi, edx
7409
                xor     edi, ecx
7410
                add     eax, edi
7411
                mov     edi, [esi+100h]
7412
                ror     ecx, 2
7413
                lea     eax, [eax+edi-359D3E2Ah]
7414
                mov     edi, ebx
7415
                rol     edi, 5
7416
                add     eax, edi
7417
                mov     edi, edx
7418
                xor     edi, ecx
7419
                xor     edi, ebx
7420
                add     ebp, edi
7421
                mov     edi, [esi+104h]
7422
                ror     ebx, 2
7423
                lea     ebp, [ebp+edi-359D3E2Ah]
7424
                mov     edi, eax
7425
                rol     edi, 5
7426
                add     ebp, edi
7427
                mov     edi, ecx
7428
                xor     edi, ebx
7429
                xor     edi, eax
7430
                add     edx, edi
7431
                mov     edi, [esi+108h]
7432
                ror     eax, 2
7433
                lea     edx, [edx+edi-359D3E2Ah]
7434
                mov     edi, ebp
7435
                rol     edi, 5
7436
                add     edx, edi
7437
                mov     edi, ebx
7438
                xor     edi, eax
7439
                xor     edi, ebp
7440
                add     ecx, edi
7441
                mov     edi, [esi+10Ch]
7442
                ror     ebp, 2
7443
                lea     ecx, [ecx+edi-359D3E2Ah]
7444
                mov     edi, edx
7445
                rol     edi, 5
7446
                add     ecx, edi
7447
                mov     edi, eax
7448
                xor     edi, ebp
7449
                xor     edi, edx
7450
                add     ebx, edi
7451
                mov     edi, [esi+110h]
7452
                ror     edx, 2
7453
                lea     ebx, [ebx+edi-359D3E2Ah]
7454
                mov     edi, ecx
7455
                rol     edi, 5
7456
                add     ebx, edi
7457
                mov     edi, ebp
7458
                xor     edi, edx
7459
                xor     edi, ecx
7460
                add     eax, edi
7461
                mov     edi, [esi+114h]
7462
                ror     ecx, 2
7463
                lea     eax, [eax+edi-359D3E2Ah]
7464
                mov     edi, ebx
7465
                rol     edi, 5
7466
                add     eax, edi
7467
                mov     edi, edx
7468
                xor     edi, ecx
7469
                xor     edi, ebx
7470
                add     ebp, edi
7471
                mov     edi, [esi+118h]
7472
                ror     ebx, 2
7473
                lea     ebp, [ebp+edi-359D3E2Ah]
7474
                mov     edi, eax
7475
                rol     edi, 5
7476
                add     ebp, edi
7477
                mov     edi, ecx
7478
                xor     edi, ebx
7479
                xor     edi, eax
7480
                add     edx, edi
7481
                mov     edi, [esi+11Ch]
7482
                ror     eax, 2
7483
                lea     edx, [edx+edi-359D3E2Ah]
7484
                mov     edi, ebp
7485
                rol     edi, 5
7486
                add     edx, edi
7487
                mov     edi, ebx
7488
                xor     edi, eax
7489
                xor     edi, ebp
7490
                add     ecx, edi
7491
                mov     edi, [esi+120h]
7492
                ror     ebp, 2
7493
                lea     ecx, [ecx+edi-359D3E2Ah]
7494
                mov     edi, edx
7495
                rol     edi, 5
7496
                add     ecx, edi
7497
                mov     edi, eax
7498
                xor     edi, ebp
7499
                xor     edi, edx
7500
                add     ebx, edi
7501
                mov     edi, [esi+124h]
7502
                ror     edx, 2
7503
                lea     ebx, [ebx+edi-359D3E2Ah]
7504
                mov     edi, ecx
7505
                rol     edi, 5
7506
                add     ebx, edi
7507
                mov     edi, ebp
7508
                xor     edi, edx
7509
                xor     edi, ecx
7510
                add     eax, edi
7511
                mov     edi, [esi+128h]
7512
                ror     ecx, 2
7513
                lea     eax, [eax+edi-359D3E2Ah]
7514
                mov     edi, ebx
7515
                rol     edi, 5
7516
                add     eax, edi
7517
                mov     edi, edx
7518
                xor     edi, ecx
7519
                xor     edi, ebx
7520
                add     ebp, edi
7521
                mov     edi, [esi+12Ch]
7522
                ror     ebx, 2
7523
                lea     ebp, [ebp+edi-359D3E2Ah]
7524
                mov     edi, eax
7525
                rol     edi, 5
7526
                add     ebp, edi
7527
                mov     edi, ecx
7528
                xor     edi, ebx
7529
                xor     edi, eax
7530
                add     edx, edi
7531
                mov     edi, [esi+130h]
7532
                ror     eax, 2
7533
                lea     edx, [edx+edi-359D3E2Ah]
7534
                mov     edi, ebp
7535
                rol     edi, 5
7536
                add     edx, edi
7537
                mov     edi, ebx
7538
                xor     edi, eax
7539
                xor     edi, ebp
7540
                add     ecx, edi
7541
                mov     edi, [esi+134h]
7542
                ror     ebp, 2
7543
                lea     ecx, [ecx+edi-359D3E2Ah]
7544
                mov     edi, edx
7545
                rol     edi, 5
7546
                add     ecx, edi
7547
                mov     edi, eax
7548
                xor     edi, ebp
7549
                xor     edi, edx
7550
                add     ebx, edi
7551
                mov     edi, [esi+138h]
7552
                ror     edx, 2
7553
                lea     ebx, [ebx+edi-359D3E2Ah]
7554
                mov     edi, ecx
7555
                rol     edi, 5
7556
                add     ebx, edi
7557
                mov     edi, ebp
7558
                xor     edi, edx
7559
                xor     edi, ecx
7560
                add     eax, edi
7561
                mov     edi, [esi+13Ch]
7562
                ror     ecx, 2
7563
                lea     eax, [eax+edi-359D3E2Ah]
7564
                mov     edi, ebx
7565
                rol     edi, 5
7566
                add     eax, edi
7567
                mov     edi, [esp]
7568
                add     esp, 8
7569
                add     [edi], eax
7570
                mov     eax, [edi+4]
7571
                mov     esi, [edi+8]
7572
                add     ebx, eax
7573
                mov     eax, [edi+0Ch]
7574
                add     ecx, esi
7575
                mov     esi, [edi+10h]
7576
                mov     [edi+4], ebx
7577
                add     edx, eax
7578
                add     ebp, esi
7579
                mov     [edi+8], ecx
7580
                mov     [edi+0Ch], edx
7581
                mov     [edi+10h], ebp
7582
7583
                pop     ebp
7584
                pop     edi
7585
                pop     esi
7586
                pop     ebx
7587
  end;
7588
end;
7589
7590
{$IFDEF OLD_SHA_NAME}
7591
procedure THash_SHA.DoTransform(Buffer: PUInt32Array);
7592
var
7593
  W: array[0..79] of LongWord;
7594
begin
7595
  SHABuffer(PUInt32Array(@W), Buffer, ClassType <> THash_SHA);
7596
7597
  asm
7598
                push    ebx
7599
                mov     eax, Self
7600
                push    esi
7601
                push    edi
7602
                lea     edi, [eax].THash_SHA.FDigest
7603
                lea     esi, W
7604
                push    ebp
7605
7606
                sub     esp, 8
7607
                mov     eax, [edi]
7608
                mov     ebx, [edi+4]
7609
                mov     ecx, [edi+8]
7610
                mov     [esp], edi
7611
                mov     edx, [edi+0Ch]
7612
                mov     ebp, [edi+10h]
7613
                mov     [esp+4], esi
7614
                mov     edi, ecx
7615
                xor     edi, edx
7616
                and     edi, ebx
7617
                add     ebp, [esi]
7618
                xor     edi, edx
7619
                ror     ebx, 2
7620
                lea     ebp, [ebp+edi+5A827999h]
7621
                mov     edi, eax
7622
                rol     edi, 5
7623
                add     ebp, edi
7624
                mov     edi, ecx
7625
                xor     edi, ebx
7626
                and     edi, eax
7627
                add     edx, [esi+4]
7628
                xor     edi, ecx
7629
                ror     eax, 2
7630
                lea     edx, [edx+edi+5A827999h]
7631
                mov     edi, ebp
7632
                rol     edi, 5
7633
                add     edx, edi
7634
                mov     edi, ebx
7635
                xor     edi, eax
7636
                and     edi, ebp
7637
                add     ecx, [esi+8]
7638
                xor     edi, ebx
7639
                ror     ebp, 2
7640
                lea     ecx, [ecx+edi+5A827999h]
7641
                mov     edi, edx
7642
                rol     edi, 5
7643
                add     ecx, edi
7644
                mov     edi, eax
7645
                xor     edi, ebp
7646
                and     edi, edx
7647
                add     ebx, [esi+0Ch]
7648
                xor     edi, eax
7649
                ror     edx, 2
7650
                lea     ebx, [ebx+edi+5A827999h]
7651
                mov     edi, ecx
7652
                rol     edi, 5
7653
                add     ebx, edi
7654
                mov     edi, ebp
7655
                xor     edi, edx
7656
                and     edi, ecx
7657
                add     eax, [esi+10h]
7658
                xor     edi, ebp
7659
                ror     ecx, 2
7660
                lea     eax, [eax+edi+5A827999h]
7661
                mov     edi, ebx
7662
                rol     edi, 5
7663
                add     eax, edi
7664
                mov     edi, edx
7665
                xor     edi, ecx
7666
                and     edi, ebx
7667
                add     ebp, [esi+14h]
7668
                xor     edi, edx
7669
                ror     ebx, 2
7670
                lea     ebp, [ebp+edi+5A827999h]
7671
                mov     edi, eax
7672
                rol     edi, 5
7673
                add     ebp, edi
7674
                mov     edi, ecx
7675
                xor     edi, ebx
7676
                and     edi, eax
7677
                add     edx, [esi+18h]
7678
                xor     edi, ecx
7679
                ror     eax, 2
7680
                lea     edx, [edx+edi+5A827999h]
7681
                mov     edi, ebp
7682
                rol     edi, 5
7683
                add     edx, edi
7684
                mov     edi, ebx
7685
                xor     edi, eax
7686
                and     edi, ebp
7687
                add     ecx, [esi+1Ch]
7688
                xor     edi, ebx
7689
                ror     ebp, 2
7690
                lea     ecx, [ecx+edi+5A827999h]
7691
                mov     edi, edx
7692
                rol     edi, 5
7693
                add     ecx, edi
7694
                mov     edi, eax
7695
                xor     edi, ebp
7696
                and     edi, edx
7697
                add     ebx, [esi+20h]
7698
                xor     edi, eax
7699
                ror     edx, 2
7700
                lea     ebx, [ebx+edi+5A827999h]
7701
                mov     edi, ecx
7702
                rol     edi, 5
7703
                add     ebx, edi
7704
                mov     edi, ebp
7705
                xor     edi, edx
7706
                and     edi, ecx
7707
                add     eax, [esi+24h]
7708
                xor     edi, ebp
7709
                ror     ecx, 2
7710
                lea     eax, [eax+edi+5A827999h]
7711
                mov     edi, ebx
7712
                rol     edi, 5
7713
                add     eax, edi
7714
                mov     edi, edx
7715
                xor     edi, ecx
7716
                and     edi, ebx
7717
                add     ebp, [esi+28h]
7718
                xor     edi, edx
7719
                ror     ebx, 2
7720
                lea     ebp, [ebp+edi+5A827999h]
7721
                mov     edi, eax
7722
                rol     edi, 5
7723
                add     ebp, edi
7724
                mov     edi, ecx
7725
                xor     edi, ebx
7726
                and     edi, eax
7727
                add     edx, [esi+2Ch]
7728
                xor     edi, ecx
7729
                ror     eax, 2
7730
                lea     edx, [edx+edi+5A827999h]
7731
                mov     edi, ebp
7732
                rol     edi, 5
7733
                add     edx, edi
7734
                mov     edi, ebx
7735
                xor     edi, eax
7736
                and     edi, ebp
7737
                add     ecx, [esi+30h]
7738
                xor     edi, ebx
7739
                ror     ebp, 2
7740
                lea     ecx, [ecx+edi+5A827999h]
7741
                mov     edi, edx
7742
                rol     edi, 5
7743
                add     ecx, edi
7744
                mov     edi, eax
7745
                xor     edi, ebp
7746
                and     edi, edx
7747
                add     ebx, [esi+34h]
7748
                xor     edi, eax
7749
                ror     edx, 2
7750
                lea     ebx, [ebx+edi+5A827999h]
7751
                mov     edi, ecx
7752
                rol     edi, 5
7753
                add     ebx, edi
7754
                mov     edi, ebp
7755
                xor     edi, edx
7756
                and     edi, ecx
7757
                add     eax, [esi+38h]
7758
                xor     edi, ebp
7759
                ror     ecx, 2
7760
                lea     eax, [eax+edi+5A827999h]
7761
                mov     edi, ebx
7762
                rol     edi, 5
7763
                add     eax, edi
7764
                mov     edi, edx
7765
                xor     edi, ecx
7766
                and     edi, ebx
7767
                add     ebp, [esi+3Ch]
7768
                xor     edi, edx
7769
                ror     ebx, 2
7770
                lea     ebp, [ebp+edi+5A827999h]
7771
                mov     edi, eax
7772
                rol     edi, 5
7773
                add     ebp, edi
7774
                mov     edi, ecx
7775
                xor     edi, ebx
7776
                and     edi, eax
7777
                add     edx, [esi+40h]
7778
                xor     edi, ecx
7779
                ror     eax, 2
7780
                lea     edx, [edx+edi+5A827999h]
7781
                mov     edi, ebp
7782
                rol     edi, 5
7783
                add     edx, edi
7784
                mov     edi, ebx
7785
                xor     edi, eax
7786
                and     edi, ebp
7787
                add     ecx, [esi+44h]
7788
                xor     edi, ebx
7789
                ror     ebp, 2
7790
                lea     ecx, [ecx+edi+5A827999h]
7791
                mov     edi, edx
7792
                rol     edi, 5
7793
                add     ecx, edi
7794
                mov     edi, eax
7795
                xor     edi, ebp
7796
                and     edi, edx
7797
                add     ebx, [esi+48h]
7798
                xor     edi, eax
7799
                ror     edx, 2
7800
                lea     ebx, [ebx+edi+5A827999h]
7801
                mov     edi, ecx
7802
                rol     edi, 5
7803
                add     ebx, edi
7804
                mov     edi, ebp
7805
                xor     edi, edx
7806
                and     edi, ecx
7807
                add     eax, [esi+4Ch]
7808
                xor     edi, ebp
7809
                ror     ecx, 2
7810
                lea     eax, [eax+edi+5A827999h]
7811
                mov     edi, ebx
7812
                rol     edi, 5
7813
                add     eax, edi
7814
                mov     edi, edx
7815
                xor     edi, ecx
7816
                xor     edi, ebx
7817
                add     ebp, edi
7818
                mov     edi, [esi+50h]
7819
                ror     ebx, 2
7820
                lea     ebp, [ebp+edi+6ED9EBA1h]
7821
                mov     edi, eax
7822
                rol     edi, 5
7823
                add     ebp, edi
7824
                mov     edi, ecx
7825
                xor     edi, ebx
7826
                xor     edi, eax
7827
                add     edx, edi
7828
                mov     edi, [esi+54h]
7829
                ror     eax, 2
7830
                lea     edx, [edx+edi+6ED9EBA1h]
7831
                mov     edi, ebp
7832
                rol     edi, 5
7833
                add     edx, edi
7834
                mov     edi, ebx
7835
                xor     edi, eax
7836
                xor     edi, ebp
7837
                add     ecx, edi
7838
                mov     edi, [esi+58h]
7839
                ror     ebp, 2
7840
                lea     ecx, [ecx+edi+6ED9EBA1h]
7841
                mov     edi, edx
7842
                rol     edi, 5
7843
                add     ecx, edi
7844
                mov     edi, eax
7845
                xor     edi, ebp
7846
                xor     edi, edx
7847
                add     ebx, edi
7848
                mov     edi, [esi+5Ch]
7849
                ror     edx, 2
7850
                lea     ebx, [ebx+edi+6ED9EBA1h]
7851
                mov     edi, ecx
7852
                rol     edi, 5
7853
                add     ebx, edi
7854
                mov     edi, ebp
7855
                xor     edi, edx
7856
                xor     edi, ecx
7857
                add     eax, edi
7858
                mov     edi, [esi+60h]
7859
                ror     ecx, 2
7860
                lea     eax, [eax+edi+6ED9EBA1h]
7861
                mov     edi, ebx
7862
                rol     edi, 5
7863
                add     eax, edi
7864
                mov     edi, edx
7865
                xor     edi, ecx
7866
                xor     edi, ebx
7867
                add     ebp, edi
7868
                mov     edi, [esi+64h]
7869
                ror     ebx, 2
7870
                lea     ebp, [ebp+edi+6ED9EBA1h]
7871
                mov     edi, eax
7872
                rol     edi, 5
7873
                add     ebp, edi
7874
                mov     edi, ecx
7875
                xor     edi, ebx
7876
                xor     edi, eax
7877
                add     edx, edi
7878
                mov     edi, [esi+68h]
7879
                ror     eax, 2
7880
                lea     edx, [edx+edi+6ED9EBA1h]
7881
                mov     edi, ebp
7882
                rol     edi, 5
7883
                add     edx, edi
7884
                mov     edi, ebx
7885
                xor     edi, eax
7886
                xor     edi, ebp
7887
                add     ecx, edi
7888
                mov     edi, [esi+6Ch]
7889
                ror     ebp, 2
7890
                lea     ecx, [ecx+edi+6ED9EBA1h]
7891
                mov     edi, edx
7892
                rol     edi, 5
7893
                add     ecx, edi
7894
                mov     edi, eax
7895
                xor     edi, ebp
7896
                xor     edi, edx
7897
                add     ebx, edi
7898
                mov     edi, [esi+70h]
7899
                ror     edx, 2
7900
                lea     ebx, [ebx+edi+6ED9EBA1h]
7901
                mov     edi, ecx
7902
                rol     edi, 5
7903
                add     ebx, edi
7904
                mov     edi, ebp
7905
                xor     edi, edx
7906
                xor     edi, ecx
7907
                add     eax, edi
7908
                mov     edi, [esi+74h]
7909
                ror     ecx, 2
7910
                lea     eax, [eax+edi+6ED9EBA1h]
7911
                mov     edi, ebx
7912
                rol     edi, 5
7913
                add     eax, edi
7914
                mov     edi, edx
7915
                xor     edi, ecx
7916
                xor     edi, ebx
7917
                add     ebp, edi
7918
                mov     edi, [esi+78h]
7919
                ror     ebx, 2
7920
                lea     ebp, [ebp+edi+6ED9EBA1h]
7921
                mov     edi, eax
7922
                rol     edi, 5
7923
                add     ebp, edi
7924
                mov     edi, ecx
7925
                xor     edi, ebx
7926
                xor     edi, eax
7927
                add     edx, edi
7928
                mov     edi, [esi+7Ch]
7929
                ror     eax, 2
7930
                lea     edx, [edx+edi+6ED9EBA1h]
7931
                mov     edi, ebp
7932
                rol     edi, 5
7933
                add     edx, edi
7934
                mov     edi, ebx
7935
                xor     edi, eax
7936
                xor     edi, ebp
7937
                add     ecx, edi
7938
                mov     edi, [esi+80h]
7939
                ror     ebp, 2
7940
                lea     ecx, [ecx+edi+6ED9EBA1h]
7941
                mov     edi, edx
7942
                rol     edi, 5
7943
                add     ecx, edi
7944
                mov     edi, eax
7945
                xor     edi, ebp
7946
                xor     edi, edx
7947
                add     ebx, edi
7948
                mov     edi, [esi+84h]
7949
                ror     edx, 2
7950
                lea     ebx, [ebx+edi+6ED9EBA1h]
7951
                mov     edi, ecx
7952
                rol     edi, 5
7953
                add     ebx, edi
7954
                mov     edi, ebp
7955
                xor     edi, edx
7956
                xor     edi, ecx
7957
                add     eax, edi
7958
                mov     edi, [esi+88h]
7959
                ror     ecx, 2
7960
                lea     eax, [eax+edi+6ED9EBA1h]
7961
                mov     edi, ebx
7962
                rol     edi, 5
7963
                add     eax, edi
7964
                mov     edi, edx
7965
                xor     edi, ecx
7966
                xor     edi, ebx
7967
                add     ebp, edi
7968
                mov     edi, [esi+8Ch]
7969
                ror     ebx, 2
7970
                lea     ebp, [ebp+edi+6ED9EBA1h]
7971
                mov     edi, eax
7972
                rol     edi, 5
7973
                add     ebp, edi
7974
                mov     edi, ecx
7975
                xor     edi, ebx
7976
                xor     edi, eax
7977
                add     edx, edi
7978
                mov     edi, [esi+90h]
7979
                ror     eax, 2
7980
                lea     edx, [edx+edi+6ED9EBA1h]
7981
                mov     edi, ebp
7982
                rol     edi, 5
7983
                add     edx, edi
7984
                mov     edi, ebx
7985
                xor     edi, eax
7986
                xor     edi, ebp
7987
                add     ecx, edi
7988
                mov     edi, [esi+94h]
7989
                ror     ebp, 2
7990
                lea     ecx, [ecx+edi+6ED9EBA1h]
7991
                mov     edi, edx
7992
                rol     edi, 5
7993
                add     ecx, edi
7994
                mov     edi, eax
7995
                xor     edi, ebp
7996
                xor     edi, edx
7997
                add     ebx, edi
7998
                mov     edi, [esi+98h]
7999
                ror     edx, 2
8000
                lea     ebx, [ebx+edi+6ED9EBA1h]
8001
                mov     edi, ecx
8002
                rol     edi, 5
8003
                add     ebx, edi
8004
                mov     edi, ebp
8005
                xor     edi, edx
8006
                xor     edi, ecx
8007
                add     eax, edi
8008
                mov     edi, [esi+9Ch]
8009
                ror     ecx, 2
8010
                lea     eax, [eax+edi+6ED9EBA1h]
8011
                mov     edi, ebx
8012
                rol     edi, 5
8013
                add     eax, edi
8014
                mov     edi, edx
8015
                xor     edi, ecx
8016
                mov     esi, ecx
8017
                mov     edi, ecx
8018
                or      esi, edx
8019
                and     edi, edx
8020
                and     esi, ebx
8021
                or      esi, edi
8022
                mov     edi, eax
8023
                add     ebp, esi
8024
                mov     esi, [esp+4]
8025
                rol     edi, 5
8026
                add     ebp, edi
8027
                mov     edi, [esi+0A0h]
8028
                ror     ebx, 2
8029
                lea     ebp, [ebp+edi-70E44324h]
8030
                mov     esi, ebx
8031
                mov     edi, ebx
8032
                or      esi, ecx
8033
                and     edi, ecx
8034
                and     esi, eax
8035
                or      esi, edi
8036
                mov     edi, ebp
8037
                add     edx, esi
8038
                mov     esi, [esp+4]
8039
                rol     edi, 5
8040
                add     edx, edi
8041
                mov     edi, [esi+0A4h]
8042
                ror     eax, 2
8043
                lea     edx, [edx+edi-70E44324h]
8044
                mov     esi, eax
8045
                mov     edi, eax
8046
                or      esi, ebx
8047
                and     edi, ebx
8048
                and     esi, ebp
8049
                or      esi, edi
8050
                mov     edi, edx
8051
                add     ecx, esi
8052
                mov     esi, [esp+4]
8053
                rol     edi, 5
8054
                add     ecx, edi
8055
                mov     edi, [esi+0A8h]
8056
                ror     ebp, 2
8057
                lea     ecx, [ecx+edi-70E44324h]
8058
                mov     esi, ebp
8059
                mov     edi, ebp
8060
                or      esi, eax
8061
                and     edi, eax
8062
                and     esi, edx
8063
                or      esi, edi
8064
                mov     edi, ecx
8065
                add     ebx, esi
8066
                mov     esi, [esp+4]
8067
                rol     edi, 5
8068
                add     ebx, edi
8069
                mov     edi, [esi+0ACh]
8070
                ror     edx, 2
8071
                lea     ebx, [ebx+edi-70E44324h]
8072
                mov     esi, edx
8073
                mov     edi, edx
8074
                or      esi, ebp
8075
                and     edi, ebp
8076
                and     esi, ecx
8077
                or      esi, edi
8078
                mov     edi, ebx
8079
                add     eax, esi
8080
                mov     esi, [esp+4]
8081
                rol     edi, 5
8082
                add     eax, edi
8083
                mov     edi, [esi+0B0h]
8084
                ror     ecx, 2
8085
                lea     eax, [eax+edi-70E44324h]
8086
                mov     esi, ecx
8087
                mov     edi, ecx
8088
                or      esi, edx
8089
                and     edi, edx
8090
                and     esi, ebx
8091
                or      esi, edi
8092
                mov     edi, eax
8093
                add     ebp, esi
8094
                mov     esi, [esp+4]
8095
                rol     edi, 5
8096
                add     ebp, edi
8097
                mov     edi, [esi+0B4h]
8098
                ror     ebx, 2
8099
                lea     ebp, [ebp+edi-70E44324h]
8100
                mov     esi, ebx
8101
                mov     edi, ebx
8102
                or      esi, ecx
8103
                and     edi, ecx
8104
                and     esi, eax
8105
                or      esi, edi
8106
                mov     edi, ebp
8107
                add     edx, esi
8108
                mov     esi, [esp+4]
8109
                rol     edi, 5
8110
                add     edx, edi
8111
                mov     edi, [esi+0B8h]
8112
                ror     eax, 2
8113
                lea     edx, [edx+edi-70E44324h]
8114
                mov     esi, eax
8115
                mov     edi, eax
8116
                or      esi, ebx
8117
                and     edi, ebx
8118
                and     esi, ebp
8119
                or      esi, edi
8120
                mov     edi, edx
8121
                add     ecx, esi
8122
                mov     esi, [esp+4]
8123
                rol     edi, 5
8124
                add     ecx, edi
8125
                mov     edi, [esi+0BCh]
8126
                ror     ebp, 2
8127
                lea     ecx, [ecx+edi-70E44324h]
8128
                mov     esi, ebp
8129
                mov     edi, ebp
8130
                or      esi, eax
8131
                and     edi, eax
8132
                and     esi, edx
8133
                or      esi, edi
8134
                mov     edi, ecx
8135
                add     ebx, esi
8136
                mov     esi, [esp+4]
8137
                rol     edi, 5
8138
                add     ebx, edi
8139
                mov     edi, [esi+0C0h]
8140
                ror     edx, 2
8141
                lea     ebx, [ebx+edi-70E44324h]
8142
                mov     esi, edx
8143
                mov     edi, edx
8144
                or      esi, ebp
8145
                and     edi, ebp
8146
                and     esi, ecx
8147
                or      esi, edi
8148
                mov     edi, ebx
8149
                add     eax, esi
8150
                mov     esi, [esp+4]
8151
                rol     edi, 5
8152
                add     eax, edi
8153
                mov     edi, [esi+0C4h]
8154
                ror     ecx, 2
8155
                lea     eax, [eax+edi-70E44324h]
8156
                mov     esi, ecx
8157
                mov     edi, ecx
8158
                or      esi, edx
8159
                and     edi, edx
8160
                and     esi, ebx
8161
                or      esi, edi
8162
                mov     edi, eax
8163
                add     ebp, esi
8164
                mov     esi, [esp+4]
8165
                rol     edi, 5
8166
                add     ebp, edi
8167
                mov     edi, [esi+0C8h]
8168
                ror     ebx, 2
8169
                lea     ebp, [ebp+edi-70E44324h]
8170
                mov     esi, ebx
8171
                mov     edi, ebx
8172
                or      esi, ecx
8173
                and     edi, ecx
8174
                and     esi, eax
8175
                or      esi, edi
8176
                mov     edi, ebp
8177
                add     edx, esi
8178
                mov     esi, [esp+4]
8179
                rol     edi, 5
8180
                add     edx, edi
8181
                mov     edi, [esi+0CCh]
8182
                ror     eax, 2
8183
                lea     edx, [edx+edi-70E44324h]
8184
                mov     esi, eax
8185
                mov     edi, eax
8186
                or      esi, ebx
8187
                and     edi, ebx
8188
                and     esi, ebp
8189
                or      esi, edi
8190
                mov     edi, edx
8191
                add     ecx, esi
8192
                mov     esi, [esp+4]
8193
                rol     edi, 5
8194
                add     ecx, edi
8195
                mov     edi, [esi+0D0h]
8196
                ror     ebp, 2
8197
                lea     ecx, [ecx+edi-70E44324h]
8198
                mov     esi, ebp
8199
                mov     edi, ebp
8200
                or      esi, eax
8201
                and     edi, eax
8202
                and     esi, edx
8203
                or      esi, edi
8204
                mov     edi, ecx
8205
                add     ebx, esi
8206
                mov     esi, [esp+4]
8207
                rol     edi, 5
8208
                add     ebx, edi
8209
                mov     edi, [esi+0D4h]
8210
                ror     edx, 2
8211
                lea     ebx, [ebx+edi-70E44324h]
8212
                mov     esi, edx
8213
                mov     edi, edx
8214
                or      esi, ebp
8215
                and     edi, ebp
8216
                and     esi, ecx
8217
                or      esi, edi
8218
                mov     edi, ebx
8219
                add     eax, esi
8220
                mov     esi, [esp+4]
8221
                rol     edi, 5
8222
                add     eax, edi
8223
                mov     edi, [esi+0D8h]
8224
                ror     ecx, 2
8225
                lea     eax, [eax+edi-70E44324h]
8226
                mov     esi, ecx
8227
                mov     edi, ecx
8228
                or      esi, edx
8229
                and     edi, edx
8230
                and     esi, ebx
8231
                or      esi, edi
8232
                mov     edi, eax
8233
                add     ebp, esi
8234
                mov     esi, [esp+4]
8235
                rol     edi, 5
8236
                add     ebp, edi
8237
                mov     edi, [esi+0DCh]
8238
                ror     ebx, 2
8239
                lea     ebp, [ebp+edi-70E44324h]
8240
                mov     esi, ebx
8241
                mov     edi, ebx
8242
                or      esi, ecx
8243
                and     edi, ecx
8244
                and     esi, eax
8245
                or      esi, edi
8246
                mov     edi, ebp
8247
                add     edx, esi
8248
                mov     esi, [esp+4]
8249
                rol     edi, 5
8250
                add     edx, edi
8251
                mov     edi, [esi+0E0h]
8252
                ror     eax, 2
8253
                lea     edx, [edx+edi-70E44324h]
8254
                mov     esi, eax
8255
                mov     edi, eax
8256
                or      esi, ebx
8257
                and     edi, ebx
8258
                and     esi, ebp
8259
                or      esi, edi
8260
                mov     edi, edx
8261
                add     ecx, esi
8262
                mov     esi, [esp+4]
8263
                rol     edi, 5
8264
                add     ecx, edi
8265
                mov     edi, [esi+0E4h]
8266
                ror     ebp, 2
8267
                lea     ecx, [ecx+edi-70E44324h]
8268
                mov     esi, ebp
8269
                mov     edi, ebp
8270
                or      esi, eax
8271
                and     edi, eax
8272
                and     esi, edx
8273
                or      esi, edi
8274
                mov     edi, ecx
8275
                add     ebx, esi
8276
                mov     esi, [esp+4]
8277
                rol     edi, 5
8278
                add     ebx, edi
8279
                mov     edi, [esi+0E8h]
8280
                ror     edx, 2
8281
                lea     ebx, [ebx+edi-70E44324h]
8282
                mov     esi, edx
8283
                mov     edi, edx
8284
                or      esi, ebp
8285
                and     edi, ebp
8286
                and     esi, ecx
8287
                or      esi, edi
8288
                mov     edi, ebx
8289
                add     eax, esi
8290
                mov     esi, [esp+4]
8291
                rol     edi, 5
8292
                add     eax, edi
8293
                mov     edi, [esi+0ECh]
8294
                ror     ecx, 2
8295
                lea     eax, [eax+edi-70E44324h]
8296
                mov     edi, ecx
8297
                xor     edi, edx
8298
                xor     edi, ebx
8299
                add     ebp, edi
8300
                mov     edi, [esi+0F0h]
8301
                ror     ebx, 2
8302
                lea     ebp, [ebp+edi-359D3E2Ah]
8303
                mov     edi, eax
8304
                rol     edi, 5
8305
                add     ebp, edi
8306
                mov     edi, ecx
8307
                xor     edi, ebx
8308
                xor     edi, eax
8309
                add     edx, edi
8310
                mov     edi, [esi+0F4h]
8311
                ror     eax, 2
8312
                lea     edx, [edx+edi-359D3E2Ah]
8313
                mov     edi, ebp
8314
                rol     edi, 5
8315
                add     edx, edi
8316
                mov     edi, ebx
8317
                xor     edi, eax
8318
                xor     edi, ebp
8319
                add     ecx, edi
8320
                mov     edi, [esi+0F8h]
8321
                ror     ebp, 2
8322
                lea     ecx, [ecx+edi-359D3E2Ah]
8323
                mov     edi, edx
8324
                rol     edi, 5
8325
                add     ecx, edi
8326
                mov     edi, eax
8327
                xor     edi, ebp
8328
                xor     edi, edx
8329
                add     ebx, edi
8330
                mov     edi, [esi+0FCh]
8331
                ror     edx, 2
8332
                lea     ebx, [ebx+edi-359D3E2Ah]
8333
                mov     edi, ecx
8334
                rol     edi, 5
8335
                add     ebx, edi
8336
                mov     edi, ebp
8337
                xor     edi, edx
8338
                xor     edi, ecx
8339
                add     eax, edi
8340
                mov     edi, [esi+100h]
8341
                ror     ecx, 2
8342
                lea     eax, [eax+edi-359D3E2Ah]
8343
                mov     edi, ebx
8344
                rol     edi, 5
8345
                add     eax, edi
8346
                mov     edi, edx
8347
                xor     edi, ecx
8348
                xor     edi, ebx
8349
                add     ebp, edi
8350
                mov     edi, [esi+104h]
8351
                ror     ebx, 2
8352
                lea     ebp, [ebp+edi-359D3E2Ah]
8353
                mov     edi, eax
8354
                rol     edi, 5
8355
                add     ebp, edi
8356
                mov     edi, ecx
8357
                xor     edi, ebx
8358
                xor     edi, eax
8359
                add     edx, edi
8360
                mov     edi, [esi+108h]
8361
                ror     eax, 2
8362
                lea     edx, [edx+edi-359D3E2Ah]
8363
                mov     edi, ebp
8364
                rol     edi, 5
8365
                add     edx, edi
8366
                mov     edi, ebx
8367
                xor     edi, eax
8368
                xor     edi, ebp
8369
                add     ecx, edi
8370
                mov     edi, [esi+10Ch]
8371
                ror     ebp, 2
8372
                lea     ecx, [ecx+edi-359D3E2Ah]
8373
                mov     edi, edx
8374
                rol     edi, 5
8375
                add     ecx, edi
8376
                mov     edi, eax
8377
                xor     edi, ebp
8378
                xor     edi, edx
8379
                add     ebx, edi
8380
                mov     edi, [esi+110h]
8381
                ror     edx, 2
8382
                lea     ebx, [ebx+edi-359D3E2Ah]
8383
                mov     edi, ecx
8384
                rol     edi, 5
8385
                add     ebx, edi
8386
                mov     edi, ebp
8387
                xor     edi, edx
8388
                xor     edi, ecx
8389
                add     eax, edi
8390
                mov     edi, [esi+114h]
8391
                ror     ecx, 2
8392
                lea     eax, [eax+edi-359D3E2Ah]
8393
                mov     edi, ebx
8394
                rol     edi, 5
8395
                add     eax, edi
8396
                mov     edi, edx
8397
                xor     edi, ecx
8398
                xor     edi, ebx
8399
                add     ebp, edi
8400
                mov     edi, [esi+118h]
8401
                ror     ebx, 2
8402
                lea     ebp, [ebp+edi-359D3E2Ah]
8403
                mov     edi, eax
8404
                rol     edi, 5
8405
                add     ebp, edi
8406
                mov     edi, ecx
8407
                xor     edi, ebx
8408
                xor     edi, eax
8409
                add     edx, edi
8410
                mov     edi, [esi+11Ch]
8411
                ror     eax, 2
8412
                lea     edx, [edx+edi-359D3E2Ah]
8413
                mov     edi, ebp
8414
                rol     edi, 5
8415
                add     edx, edi
8416
                mov     edi, ebx
8417
                xor     edi, eax
8418
                xor     edi, ebp
8419
                add     ecx, edi
8420
                mov     edi, [esi+120h]
8421
                ror     ebp, 2
8422
                lea     ecx, [ecx+edi-359D3E2Ah]
8423
                mov     edi, edx
8424
                rol     edi, 5
8425
                add     ecx, edi
8426
                mov     edi, eax
8427
                xor     edi, ebp
8428
                xor     edi, edx
8429
                add     ebx, edi
8430
                mov     edi, [esi+124h]
8431
                ror     edx, 2
8432
                lea     ebx, [ebx+edi-359D3E2Ah]
8433
                mov     edi, ecx
8434
                rol     edi, 5
8435
                add     ebx, edi
8436
                mov     edi, ebp
8437
                xor     edi, edx
8438
                xor     edi, ecx
8439
                add     eax, edi
8440
                mov     edi, [esi+128h]
8441
                ror     ecx, 2
8442
                lea     eax, [eax+edi-359D3E2Ah]
8443
                mov     edi, ebx
8444
                rol     edi, 5
8445
                add     eax, edi
8446
                mov     edi, edx
8447
                xor     edi, ecx
8448
                xor     edi, ebx
8449
                add     ebp, edi
8450
                mov     edi, [esi+12Ch]
8451
                ror     ebx, 2
8452
                lea     ebp, [ebp+edi-359D3E2Ah]
8453
                mov     edi, eax
8454
                rol     edi, 5
8455
                add     ebp, edi
8456
                mov     edi, ecx
8457
                xor     edi, ebx
8458
                xor     edi, eax
8459
                add     edx, edi
8460
                mov     edi, [esi+130h]
8461
                ror     eax, 2
8462
                lea     edx, [edx+edi-359D3E2Ah]
8463
                mov     edi, ebp
8464
                rol     edi, 5
8465
                add     edx, edi
8466
                mov     edi, ebx
8467
                xor     edi, eax
8468
                xor     edi, ebp
8469
                add     ecx, edi
8470
                mov     edi, [esi+134h]
8471
                ror     ebp, 2
8472
                lea     ecx, [ecx+edi-359D3E2Ah]
8473
                mov     edi, edx
8474
                rol     edi, 5
8475
                add     ecx, edi
8476
                mov     edi, eax
8477
                xor     edi, ebp
8478
                xor     edi, edx
8479
                add     ebx, edi
8480
                mov     edi, [esi+138h]
8481
                ror     edx, 2
8482
                lea     ebx, [ebx+edi-359D3E2Ah]
8483
                mov     edi, ecx
8484
                rol     edi, 5
8485
                add     ebx, edi
8486
                mov     edi, ebp
8487
                xor     edi, edx
8488
                xor     edi, ecx
8489
                add     eax, edi
8490
                mov     edi, [esi+13Ch]
8491
                ror     ecx, 2
8492
                lea     eax, [eax+edi-359D3E2Ah]
8493
                mov     edi, ebx
8494
                rol     edi, 5
8495
                add     eax, edi
8496
                mov     edi, [esp]
8497
                add     esp, 8
8498
                add     [edi], eax
8499
                mov     eax, [edi+4]
8500
                mov     esi, [edi+8]
8501
                add     ebx, eax
8502
                mov     eax, [edi+0Ch]
8503
                add     ecx, esi
8504
                mov     esi, [edi+10h]
8505
                mov     [edi+4], ebx
8506
                add     edx, eax
8507
                add     ebp, esi
8508
                mov     [edi+8], ecx
8509
                mov     [edi+0Ch], edx
8510
                mov     [edi+10h], ebp
8511
8512
                pop     ebp
8513
                pop     edi
8514
                pop     esi
8515
                pop     ebx
8516
  end;
8517
end;
8518
{$ENDIF} // DEFINE OLD_SHA_NAME
8519
{$ENDIF}
8520
8521
{$IFDEF THash_SHA256_asm}
8522
procedure SHA256Buffer(S, D: Pointer);
8523
asm
8524
                push ebx
8525
                push edi
8526
                mov  edi, eax
8527
                push esi
8528
                mov  esi, edx
8529
8530
                mov     eax, [esi]
8531
                mov     ebx, [esi+4]
8532
                bswap   eax
8533
                mov     ecx, [esi+8]
8534
                mov     edx, [esi+0Ch]
8535
                bswap   ebx
8536
                bswap   ecx
8537
                bswap   edx
8538
                mov     [edi], eax
8539
                mov     [edi+4], ebx
8540
                mov     [edi+8], ecx
8541
                mov     [edi+0Ch], edx
8542
                mov     eax, [esi+10h]
8543
                mov     ebx, [esi+14h]
8544
                bswap   eax
8545
                mov     ecx, [esi+18h]
8546
                mov     edx, [esi+1Ch]
8547
                bswap   ebx
8548
                bswap   ecx
8549
                bswap   edx
8550
                mov     [edi+10h], eax
8551
                mov     [edi+14h], ebx
8552
                mov     [edi+18h], ecx
8553
                mov     [edi+1Ch], edx
8554
                mov     eax, [esi+20h]
8555
                mov     ebx, [esi+24h]
8556
                bswap   eax
8557
                mov     ecx, [esi+28h]
8558
                mov     edx, [esi+2Ch]
8559
                bswap   ebx
8560
                bswap   ecx
8561
                bswap   edx
8562
                mov     [edi+20h], eax
8563
                mov     [edi+24h], ebx
8564
                mov     [edi+28h], ecx
8565
                mov     [edi+2Ch], edx
8566
                mov     eax, [esi+30h]
8567
                mov     ebx, [esi+34h]
8568
                bswap   eax
8569
                mov     ecx, [esi+38h]
8570
                mov     edx, [esi+3Ch]
8571
                bswap   ebx
8572
                bswap   ecx
8573
                bswap   edx
8574
                mov     [edi+30h], eax
8575
                mov     [edi+34h], ebx
8576
                mov     [edi+38h], ecx
8577
                mov     [edi+3Ch], edx
8578
8579
                pop  esi
8580
                pop  edi
8581
                pop  ebx
8582
end;
8583
8584
procedure THash_SHA256.DoTransform(Buffer: PUInt32Array);
8585
var
8586
  W: array[0..63] of LongWord;
8587
begin
8588
  // swap first 16 uint32
8589
  SHA256Buffer(@W, Buffer);
8590
  asm
8591
                push    ebx
8592
                push    esi
8593
                push    edi
8594
                push    ebp
8595
8596
                mov     eax, Self
8597
                lea     edi, [eax].THash_SHA256.FDigest
8598
                lea     esi, W
8599
8600
                mov     eax, esp
8601
                add     esp, 0FFFFFFD4h
8602
                and     esp, 0FFFFFFC0h
8603
                mov     [esp+20h], esi
8604
                mov     [esp+24h], edi
8605
                mov     [esp+28h], eax
8606
                mov     edi, [esi]
8607
                mov     eax, [esi+4]
8608
                mov     edx, [esi+24h]
8609
                mov     ebx, [esi+38h]
8610
                mov     ecx, eax
8611
                ror     ecx, 7
8612
                shr     eax, 3
8613
                mov     ebp, ebx
8614
                shr     ebx, 0Ah
8615
                xor     eax, ecx
8616
                ror     ecx, 0Bh
8617
                rol     ebp, 0Fh
8618
                xor     eax, ecx
8619
                xor     ebx, ebp
8620
                ror     ebp, 2
8621
                xor     ebx, ebp
8622
                add     edx, edi
8623
                add     eax, ebx
8624
                mov     edi, [esi+4]
8625
                add     edx, eax
8626
                mov     eax, [esi+8]
8627
                mov     [esi+40h], edx
8628
                mov     edx, [esi+28h]
8629
                mov     ebx, [esi+3Ch]
8630
                mov     ecx, eax
8631
                ror     ecx, 7
8632
                shr     eax, 3
8633
                mov     ebp, ebx
8634
                shr     ebx, 0Ah
8635
                xor     eax, ecx
8636
                ror     ecx, 0Bh
8637
                rol     ebp, 0Fh
8638
                xor     eax, ecx
8639
                xor     ebx, ebp
8640
                ror     ebp, 2
8641
                xor     ebx, ebp
8642
                add     edx, edi
8643
                add     eax, ebx
8644
                mov     edi, [esi+8]
8645
                add     edx, eax
8646
                mov     eax, [esi+0Ch]
8647
                mov     [esi+44h], edx
8648
                mov     edx, [esi+2Ch]
8649
                mov     ebx, [esi+40h]
8650
                mov     ecx, eax
8651
                ror     ecx, 7
8652
                shr     eax, 3
8653
                mov     ebp, ebx
8654
                shr     ebx, 0Ah
8655
                xor     eax, ecx
8656
                ror     ecx, 0Bh
8657
                rol     ebp, 0Fh
8658
                xor     eax, ecx
8659
                xor     ebx, ebp
8660
                ror     ebp, 2
8661
                xor     ebx, ebp
8662
                add     edx, edi
8663
                add     eax, ebx
8664
                mov     edi, [esi+0Ch]
8665
                add     edx, eax
8666
                mov     eax, [esi+10h]
8667
                mov     [esi+48h], edx
8668
                mov     edx, [esi+30h]
8669
                mov     ebx, [esi+44h]
8670
                mov     ecx, eax
8671
                ror     ecx, 7
8672
                shr     eax, 3
8673
                mov     ebp, ebx
8674
                shr     ebx, 0Ah
8675
                xor     eax, ecx
8676
                ror     ecx, 0Bh
8677
                rol     ebp, 0Fh
8678
                xor     eax, ecx
8679
                xor     ebx, ebp
8680
                ror     ebp, 2
8681
                xor     ebx, ebp
8682
                add     edx, edi
8683
                add     eax, ebx
8684
                mov     edi, [esi+10h]
8685
                add     edx, eax
8686
                mov     eax, [esi+14h]
8687
                mov     [esi+4Ch], edx
8688
                mov     edx, [esi+34h]
8689
                mov     ebx, [esi+48h]
8690
                mov     ecx, eax
8691
                ror     ecx, 7
8692
                shr     eax, 3
8693
                mov     ebp, ebx
8694
                shr     ebx, 0Ah
8695
                xor     eax, ecx
8696
                ror     ecx, 0Bh
8697
                rol     ebp, 0Fh
8698
                xor     eax, ecx
8699
                xor     ebx, ebp
8700
                ror     ebp, 2
8701
                xor     ebx, ebp
8702
                add     edx, edi
8703
                add     eax, ebx
8704
                mov     edi, [esi+14h]
8705
                add     edx, eax
8706
                mov     eax, [esi+18h]
8707
                mov     [esi+50h], edx
8708
                mov     edx, [esi+38h]
8709
                mov     ebx, [esi+4Ch]
8710
                mov     ecx, eax
8711
                ror     ecx, 7
8712
                shr     eax, 3
8713
                mov     ebp, ebx
8714
                shr     ebx, 0Ah
8715
                xor     eax, ecx
8716
                ror     ecx, 0Bh
8717
                rol     ebp, 0Fh
8718
                xor     eax, ecx
8719
                xor     ebx, ebp
8720
                ror     ebp, 2
8721
                xor     ebx, ebp
8722
                add     edx, edi
8723
                add     eax, ebx
8724
                mov     edi, [esi+18h]
8725
                add     edx, eax
8726
                mov     eax, [esi+1Ch]
8727
                mov     [esi+54h], edx
8728
                mov     edx, [esi+3Ch]
8729
                mov     ebx, [esi+50h]
8730
                mov     ecx, eax
8731
                ror     ecx, 7
8732
                shr     eax, 3
8733
                mov     ebp, ebx
8734
                shr     ebx, 0Ah
8735
                xor     eax, ecx
8736
                ror     ecx, 0Bh
8737
                rol     ebp, 0Fh
8738
                xor     eax, ecx
8739
                xor     ebx, ebp
8740
                ror     ebp, 2
8741
                xor     ebx, ebp
8742
                add     edx, edi
8743
                add     eax, ebx
8744
                mov     edi, [esi+1Ch]
8745
                add     edx, eax
8746
                mov     eax, [esi+20h]
8747
                mov     [esi+58h], edx
8748
                mov     edx, [esi+40h]
8749
                mov     ebx, [esi+54h]
8750
                mov     ecx, eax
8751
                ror     ecx, 7
8752
                shr     eax, 3
8753
                mov     ebp, ebx
8754
                shr     ebx, 0Ah
8755
                xor     eax, ecx
8756
                ror     ecx, 0Bh
8757
                rol     ebp, 0Fh
8758
                xor     eax, ecx
8759
                xor     ebx, ebp
8760
                ror     ebp, 2
8761
                xor     ebx, ebp
8762
                add     edx, edi
8763
                add     eax, ebx
8764
                mov     edi, [esi+20h]
8765
                add     edx, eax
8766
                mov     eax, [esi+24h]
8767
                mov     [esi+5Ch], edx
8768
                mov     edx, [esi+44h]
8769
                mov     ebx, [esi+58h]
8770
                mov     ecx, eax
8771
                ror     ecx, 7
8772
                shr     eax, 3
8773
                mov     ebp, ebx
8774
                shr     ebx, 0Ah
8775
                xor     eax, ecx
8776
                ror     ecx, 0Bh
8777
                rol     ebp, 0Fh
8778
                xor     eax, ecx
8779
                xor     ebx, ebp
8780
                ror     ebp, 2
8781
                xor     ebx, ebp
8782
                add     edx, edi
8783
                add     eax, ebx
8784
                mov     edi, [esi+24h]
8785
                add     edx, eax
8786
                mov     eax, [esi+28h]
8787
                mov     [esi+60h], edx
8788
                mov     edx, [esi+48h]
8789
                mov     ebx, [esi+5Ch]
8790
                mov     ecx, eax
8791
                ror     ecx, 7
8792
                shr     eax, 3
8793
                mov     ebp, ebx
8794
                shr     ebx, 0Ah
8795
                xor     eax, ecx
8796
                ror     ecx, 0Bh
8797
                rol     ebp, 0Fh
8798
                xor     eax, ecx
8799
                xor     ebx, ebp
8800
                ror     ebp, 2
8801
                xor     ebx, ebp
8802
                add     edx, edi
8803
                add     eax, ebx
8804
                mov     edi, [esi+28h]
8805
                add     edx, eax
8806
                mov     eax, [esi+2Ch]
8807
                mov     [esi+64h], edx
8808
                mov     edx, [esi+4Ch]
8809
                mov     ebx, [esi+60h]
8810
                mov     ecx, eax
8811
                ror     ecx, 7
8812
                shr     eax, 3
8813
                mov     ebp, ebx
8814
                shr     ebx, 0Ah
8815
                xor     eax, ecx
8816
                ror     ecx, 0Bh
8817
                rol     ebp, 0Fh
8818
                xor     eax, ecx
8819
                xor     ebx, ebp
8820
                ror     ebp, 2
8821
                xor     ebx, ebp
8822
                add     edx, edi
8823
                add     eax, ebx
8824
                mov     edi, [esi+2Ch]
8825
                add     edx, eax
8826
                mov     eax, [esi+30h]
8827
                mov     [esi+68h], edx
8828
                mov     edx, [esi+50h]
8829
                mov     ebx, [esi+64h]
8830
                mov     ecx, eax
8831
                ror     ecx, 7
8832
                shr     eax, 3
8833
                mov     ebp, ebx
8834
                shr     ebx, 0Ah
8835
                xor     eax, ecx
8836
                ror     ecx, 0Bh
8837
                rol     ebp, 0Fh
8838
                xor     eax, ecx
8839
                xor     ebx, ebp
8840
                ror     ebp, 2
8841
                xor     ebx, ebp
8842
                add     edx, edi
8843
                add     eax, ebx
8844
                mov     edi, [esi+30h]
8845
                add     edx, eax
8846
                mov     eax, [esi+34h]
8847
                mov     [esi+6Ch], edx
8848
                mov     edx, [esi+54h]
8849
                mov     ebx, [esi+68h]
8850
                mov     ecx, eax
8851
                ror     ecx, 7
8852
                shr     eax, 3
8853
                mov     ebp, ebx
8854
                shr     ebx, 0Ah
8855
                xor     eax, ecx
8856
                ror     ecx, 0Bh
8857
                rol     ebp, 0Fh
8858
                xor     eax, ecx
8859
                xor     ebx, ebp
8860
                ror     ebp, 2
8861
                xor     ebx, ebp
8862
                add     edx, edi
8863
                add     eax, ebx
8864
                mov     edi, [esi+34h]
8865
                add     edx, eax
8866
                mov     eax, [esi+38h]
8867
                mov     [esi+70h], edx
8868
                mov     edx, [esi+58h]
8869
                mov     ebx, [esi+6Ch]
8870
                mov     ecx, eax
8871
                ror     ecx, 7
8872
                shr     eax, 3
8873
                mov     ebp, ebx
8874
                shr     ebx, 0Ah
8875
                xor     eax, ecx
8876
                ror     ecx, 0Bh
8877
                rol     ebp, 0Fh
8878
                xor     eax, ecx
8879
                xor     ebx, ebp
8880
                ror     ebp, 2
8881
                xor     ebx, ebp
8882
                add     edx, edi
8883
                add     eax, ebx
8884
                mov     edi, [esi+38h]
8885
                add     edx, eax
8886
                mov     eax, [esi+3Ch]
8887
                mov     [esi+74h], edx
8888
                mov     edx, [esi+5Ch]
8889
                mov     ebx, [esi+70h]
8890
                mov     ecx, eax
8891
                ror     ecx, 7
8892
                shr     eax, 3
8893
                mov     ebp, ebx
8894
                shr     ebx, 0Ah
8895
                xor     eax, ecx
8896
                ror     ecx, 0Bh
8897
                rol     ebp, 0Fh
8898
                xor     eax, ecx
8899
                xor     ebx, ebp
8900
                ror     ebp, 2
8901
                xor     ebx, ebp
8902
                add     edx, edi
8903
                add     eax, ebx
8904
                mov     edi, [esi+3Ch]
8905
                add     edx, eax
8906
                mov     eax, [esi+40h]
8907
                mov     [esi+78h], edx
8908
                mov     edx, [esi+60h]
8909
                mov     ebx, [esi+74h]
8910
                mov     ecx, eax
8911
                ror     ecx, 7
8912
                shr     eax, 3
8913
                mov     ebp, ebx
8914
                shr     ebx, 0Ah
8915
                xor     eax, ecx
8916
                ror     ecx, 0Bh
8917
                rol     ebp, 0Fh
8918
                xor     eax, ecx
8919
                xor     ebx, ebp
8920
                ror     ebp, 2
8921
                xor     ebx, ebp
8922
                add     edx, edi
8923
                add     eax, ebx
8924
                mov     edi, [esi+40h]
8925
                add     edx, eax
8926
                mov     eax, [esi+44h]
8927
                mov     [esi+7Ch], edx
8928
                mov     edx, [esi+64h]
8929
                mov     ebx, [esi+78h]
8930
                mov     ecx, eax
8931
                ror     ecx, 7
8932
                shr     eax, 3
8933
                mov     ebp, ebx
8934
                shr     ebx, 0Ah
8935
                xor     eax, ecx
8936
                ror     ecx, 0Bh
8937
                rol     ebp, 0Fh
8938
                xor     eax, ecx
8939
                xor     ebx, ebp
8940
                ror     ebp, 2
8941
                xor     ebx, ebp
8942
                add     edx, edi
8943
                add     eax, ebx
8944
                mov     edi, [esi+44h]
8945
                add     edx, eax
8946
                mov     eax, [esi+48h]
8947
                mov     [esi+80h], edx
8948
                mov     edx, [esi+68h]
8949
                mov     ebx, [esi+7Ch]
8950
                mov     ecx, eax
8951
                ror     ecx, 7
8952
                shr     eax, 3
8953
                mov     ebp, ebx
8954
                shr     ebx, 0Ah
8955
                xor     eax, ecx
8956
                ror     ecx, 0Bh
8957
                rol     ebp, 0Fh
8958
                xor     eax, ecx
8959
                xor     ebx, ebp
8960
                ror     ebp, 2
8961
                xor     ebx, ebp
8962
                add     edx, edi
8963
                add     eax, ebx
8964
                mov     edi, [esi+48h]
8965
                add     edx, eax
8966
                mov     eax, [esi+4Ch]
8967
                mov     [esi+84h], edx
8968
                mov     edx, [esi+6Ch]
8969
                mov     ebx, [esi+80h]
8970
                mov     ecx, eax
8971
                ror     ecx, 7
8972
                shr     eax, 3
8973
                mov     ebp, ebx
8974
                shr     ebx, 0Ah
8975
                xor     eax, ecx
8976
                ror     ecx, 0Bh
8977
                rol     ebp, 0Fh
8978
                xor     eax, ecx
8979
                xor     ebx, ebp
8980
                ror     ebp, 2
8981
                xor     ebx, ebp
8982
                add     edx, edi
8983
                add     eax, ebx
8984
                mov     edi, [esi+4Ch]
8985
                add     edx, eax
8986
                mov     eax, [esi+50h]
8987
                mov     [esi+88h], edx
8988
                mov     edx, [esi+70h]
8989
                mov     ebx, [esi+84h]
8990
                mov     ecx, eax
8991
                ror     ecx, 7
8992
                shr     eax, 3
8993
                mov     ebp, ebx
8994
                shr     ebx, 0Ah
8995
                xor     eax, ecx
8996
                ror     ecx, 0Bh
8997
                rol     ebp, 0Fh
8998
                xor     eax, ecx
8999
                xor     ebx, ebp
9000
                ror     ebp, 2
9001
                xor     ebx, ebp
9002
                add     edx, edi
9003
                add     eax, ebx
9004
                mov     edi, [esi+50h]
9005
                add     edx, eax
9006
                mov     eax, [esi+54h]
9007
                mov     [esi+8Ch], edx
9008
                mov     edx, [esi+74h]
9009
                mov     ebx, [esi+88h]
9010
                mov     ecx, eax
9011
                ror     ecx, 7
9012
                shr     eax, 3
9013
                mov     ebp, ebx
9014
                shr     ebx, 0Ah
9015
                xor     eax, ecx
9016
                ror     ecx, 0Bh
9017
                rol     ebp, 0Fh
9018
                xor     eax, ecx
9019
                xor     ebx, ebp
9020
                ror     ebp, 2
9021
                xor     ebx, ebp
9022
                add     edx, edi
9023
                add     eax, ebx
9024
                mov     edi, [esi+54h]
9025
                add     edx, eax
9026
                mov     eax, [esi+58h]
9027
                mov     [esi+90h], edx
9028
                mov     edx, [esi+78h]
9029
                mov     ebx, [esi+8Ch]
9030
                mov     ecx, eax
9031
                ror     ecx, 7
9032
                shr     eax, 3
9033
                mov     ebp, ebx
9034
                shr     ebx, 0Ah
9035
                xor     eax, ecx
9036
                ror     ecx, 0Bh
9037
                rol     ebp, 0Fh
9038
                xor     eax, ecx
9039
                xor     ebx, ebp
9040
                ror     ebp, 2
9041
                xor     ebx, ebp
9042
                add     edx, edi
9043
                add     eax, ebx
9044
                mov     edi, [esi+58h]
9045
                add     edx, eax
9046
                mov     eax, [esi+5Ch]
9047
                mov     [esi+94h], edx
9048
                mov     edx, [esi+7Ch]
9049
                mov     ebx, [esi+90h]
9050
                mov     ecx, eax
9051
                ror     ecx, 7
9052
                shr     eax, 3
9053
                mov     ebp, ebx
9054
                shr     ebx, 0Ah
9055
                xor     eax, ecx
9056
                ror     ecx, 0Bh
9057
                rol     ebp, 0Fh
9058
                xor     eax, ecx
9059
                xor     ebx, ebp
9060
                ror     ebp, 2
9061
                xor     ebx, ebp
9062
                add     edx, edi
9063
                add     eax, ebx
9064
                mov     edi, [esi+5Ch]
9065
                add     edx, eax
9066
                mov     eax, [esi+60h]
9067
                mov     [esi+98h], edx
9068
                mov     edx, [esi+80h]
9069
                mov     ebx, [esi+94h]
9070
                mov     ecx, eax
9071
                ror     ecx, 7
9072
                shr     eax, 3
9073
                mov     ebp, ebx
9074
                shr     ebx, 0Ah
9075
                xor     eax, ecx
9076
                ror     ecx, 0Bh
9077
                rol     ebp, 0Fh
9078
                xor     eax, ecx
9079
                xor     ebx, ebp
9080
                ror     ebp, 2
9081
                xor     ebx, ebp
9082
                add     edx, edi
9083
                add     eax, ebx
9084
                mov     edi, [esi+60h]
9085
                add     edx, eax
9086
                mov     eax, [esi+64h]
9087
                mov     [esi+9Ch], edx
9088
                mov     edx, [esi+84h]
9089
                mov     ebx, [esi+98h]
9090
                mov     ecx, eax
9091
                ror     ecx, 7
9092
                shr     eax, 3
9093
                mov     ebp, ebx
9094
                shr     ebx, 0Ah
9095
                xor     eax, ecx
9096
                ror     ecx, 0Bh
9097
                rol     ebp, 0Fh
9098
                xor     eax, ecx
9099
                xor     ebx, ebp
9100
                ror     ebp, 2
9101
                xor     ebx, ebp
9102
                add     edx, edi
9103
                add     eax, ebx
9104
                mov     edi, [esi+64h]
9105
                add     edx, eax
9106
                mov     eax, [esi+68h]
9107
                mov     [esi+0A0h], edx
9108
                mov     edx, [esi+88h]
9109
                mov     ebx, [esi+9Ch]
9110
                mov     ecx, eax
9111
                ror     ecx, 7
9112
                shr     eax, 3
9113
                mov     ebp, ebx
9114
                shr     ebx, 0Ah
9115
                xor     eax, ecx
9116
                ror     ecx, 0Bh
9117
                rol     ebp, 0Fh
9118
                xor     eax, ecx
9119
                xor     ebx, ebp
9120
                ror     ebp, 2
9121
                xor     ebx, ebp
9122
                add     edx, edi
9123
                add     eax, ebx
9124
                mov     edi, [esi+68h]
9125
                add     edx, eax
9126
                mov     eax, [esi+6Ch]
9127
                mov     [esi+0A4h], edx
9128
                mov     edx, [esi+8Ch]
9129
                mov     ebx, [esi+0A0h]
9130
                mov     ecx, eax
9131
                ror     ecx, 7
9132
                shr     eax, 3
9133
                mov     ebp, ebx
9134
                shr     ebx, 0Ah
9135
                xor     eax, ecx
9136
                ror     ecx, 0Bh
9137
                rol     ebp, 0Fh
9138
                xor     eax, ecx
9139
                xor     ebx, ebp
9140
                ror     ebp, 2
9141
                xor     ebx, ebp
9142
                add     edx, edi
9143
                add     eax, ebx
9144
                mov     edi, [esi+6Ch]
9145
                add     edx, eax
9146
                mov     eax, [esi+70h]
9147
                mov     [esi+0A8h], edx
9148
                mov     edx, [esi+90h]
9149
                mov     ebx, [esi+0A4h]
9150
                mov     ecx, eax
9151
                ror     ecx, 7
9152
                shr     eax, 3
9153
                mov     ebp, ebx
9154
                shr     ebx, 0Ah
9155
                xor     eax, ecx
9156
                ror     ecx, 0Bh
9157
                rol     ebp, 0Fh
9158
                xor     eax, ecx
9159
                xor     ebx, ebp
9160
                ror     ebp, 2
9161
                xor     ebx, ebp
9162
                add     edx, edi
9163
                add     eax, ebx
9164
                mov     edi, [esi+70h]
9165
                add     edx, eax
9166
                mov     eax, [esi+74h]
9167
                mov     [esi+0ACh], edx
9168
                mov     edx, [esi+94h]
9169
                mov     ebx, [esi+0A8h]
9170
                mov     ecx, eax
9171
                ror     ecx, 7
9172
                shr     eax, 3
9173
                mov     ebp, ebx
9174
                shr     ebx, 0Ah
9175
                xor     eax, ecx
9176
                ror     ecx, 0Bh
9177
                rol     ebp, 0Fh
9178
                xor     eax, ecx
9179
                xor     ebx, ebp
9180
                ror     ebp, 2
9181
                xor     ebx, ebp
9182
                add     edx, edi
9183
                add     eax, ebx
9184
                mov     edi, [esi+74h]
9185
                add     edx, eax
9186
                mov     eax, [esi+78h]
9187
                mov     [esi+0B0h], edx
9188
                mov     edx, [esi+98h]
9189
                mov     ebx, [esi+0ACh]
9190
                mov     ecx, eax
9191
                ror     ecx, 7
9192
                shr     eax, 3
9193
                mov     ebp, ebx
9194
                shr     ebx, 0Ah
9195
                xor     eax, ecx
9196
                ror     ecx, 0Bh
9197
                rol     ebp, 0Fh
9198
                xor     eax, ecx
9199
                xor     ebx, ebp
9200
                ror     ebp, 2
9201
                xor     ebx, ebp
9202
                add     edx, edi
9203
                add     eax, ebx
9204
                mov     edi, [esi+78h]
9205
                add     edx, eax
9206
                mov     eax, [esi+7Ch]
9207
                mov     [esi+0B4h], edx
9208
                mov     edx, [esi+9Ch]
9209
                mov     ebx, [esi+0B0h]
9210
                mov     ecx, eax
9211
                ror     ecx, 7
9212
                shr     eax, 3
9213
                mov     ebp, ebx
9214
                shr     ebx, 0Ah
9215
                xor     eax, ecx
9216
                ror     ecx, 0Bh
9217
                rol     ebp, 0Fh
9218
                xor     eax, ecx
9219
                xor     ebx, ebp
9220
                ror     ebp, 2
9221
                xor     ebx, ebp
9222
                add     edx, edi
9223
                add     eax, ebx
9224
                mov     edi, [esi+7Ch]
9225
                add     edx, eax
9226
                mov     eax, [esi+80h]
9227
                mov     [esi+0B8h], edx
9228
                mov     edx, [esi+0A0h]
9229
                mov     ebx, [esi+0B4h]
9230
                mov     ecx, eax
9231
                ror     ecx, 7
9232
                shr     eax, 3
9233
                mov     ebp, ebx
9234
                shr     ebx, 0Ah
9235
                xor     eax, ecx
9236
                ror     ecx, 0Bh
9237
                rol     ebp, 0Fh
9238
                xor     eax, ecx
9239
                xor     ebx, ebp
9240
                ror     ebp, 2
9241
                xor     ebx, ebp
9242
                add     edx, edi
9243
                add     eax, ebx
9244
                mov     edi, [esi+80h]
9245
                add     edx, eax
9246
                mov     eax, [esi+84h]
9247
                mov     [esi+0BCh], edx
9248
                mov     edx, [esi+0A4h]
9249
                mov     ebx, [esi+0B8h]
9250
                mov     ecx, eax
9251
                ror     ecx, 7
9252
                shr     eax, 3
9253
                mov     ebp, ebx
9254
                shr     ebx, 0Ah
9255
                xor     eax, ecx
9256
                ror     ecx, 0Bh
9257
                rol     ebp, 0Fh
9258
                xor     eax, ecx
9259
                xor     ebx, ebp
9260
                ror     ebp, 2
9261
                xor     ebx, ebp
9262
                add     edx, edi
9263
                add     eax, ebx
9264
                mov     edi, [esi+84h]
9265
                add     edx, eax
9266
                mov     eax, [esi+88h]
9267
                mov     [esi+0C0h], edx
9268
                mov     edx, [esi+0A8h]
9269
                mov     ebx, [esi+0BCh]
9270
                mov     ecx, eax
9271
                ror     ecx, 7
9272
                shr     eax, 3
9273
                mov     ebp, ebx
9274
                shr     ebx, 0Ah
9275
                xor     eax, ecx
9276
                ror     ecx, 0Bh
9277
                rol     ebp, 0Fh
9278
                xor     eax, ecx
9279
                xor     ebx, ebp
9280
                ror     ebp, 2
9281
                xor     ebx, ebp
9282
                add     edx, edi
9283
                add     eax, ebx
9284
                mov     edi, [esi+88h]
9285
                add     edx, eax
9286
                mov     eax, [esi+8Ch]
9287
                mov     [esi+0C4h], edx
9288
                mov     edx, [esi+0ACh]
9289
                mov     ebx, [esi+0C0h]
9290
                mov     ecx, eax
9291
                ror     ecx, 7
9292
                shr     eax, 3
9293
                mov     ebp, ebx
9294
                shr     ebx, 0Ah
9295
                xor     eax, ecx
9296
                ror     ecx, 0Bh
9297
                rol     ebp, 0Fh
9298
                xor     eax, ecx
9299
                xor     ebx, ebp
9300
                ror     ebp, 2
9301
                xor     ebx, ebp
9302
                add     edx, edi
9303
                add     eax, ebx
9304
                mov     edi, [esi+8Ch]
9305
                add     edx, eax
9306
                mov     eax, [esi+90h]
9307
                mov     [esi+0C8h], edx
9308
                mov     edx, [esi+0B0h]
9309
                mov     ebx, [esi+0C4h]
9310
                mov     ecx, eax
9311
                ror     ecx, 7
9312
                shr     eax, 3
9313
                mov     ebp, ebx
9314
                shr     ebx, 0Ah
9315
                xor     eax, ecx
9316
                ror     ecx, 0Bh
9317
                rol     ebp, 0Fh
9318
                xor     eax, ecx
9319
                xor     ebx, ebp
9320
                ror     ebp, 2
9321
                xor     ebx, ebp
9322
                add     edx, edi
9323
                add     eax, ebx
9324
                mov     edi, [esi+90h]
9325
                add     edx, eax
9326
                mov     eax, [esi+94h]
9327
                mov     [esi+0CCh], edx
9328
                mov     edx, [esi+0B4h]
9329
                mov     ebx, [esi+0C8h]
9330
                mov     ecx, eax
9331
                ror     ecx, 7
9332
                shr     eax, 3
9333
                mov     ebp, ebx
9334
                shr     ebx, 0Ah
9335
                xor     eax, ecx
9336
                ror     ecx, 0Bh
9337
                rol     ebp, 0Fh
9338
                xor     eax, ecx
9339
                xor     ebx, ebp
9340
                ror     ebp, 2
9341
                xor     ebx, ebp
9342
                add     edx, edi
9343
                add     eax, ebx
9344
                mov     edi, [esi+94h]
9345
                add     edx, eax
9346
                mov     eax, [esi+98h]
9347
                mov     [esi+0D0h], edx
9348
                mov     edx, [esi+0B8h]
9349
                mov     ebx, [esi+0CCh]
9350
                mov     ecx, eax
9351
                ror     ecx, 7
9352
                shr     eax, 3
9353
                mov     ebp, ebx
9354
                shr     ebx, 0Ah
9355
                xor     eax, ecx
9356
                ror     ecx, 0Bh
9357
                rol     ebp, 0Fh
9358
                xor     eax, ecx
9359
                xor     ebx, ebp
9360
                ror     ebp, 2
9361
                xor     ebx, ebp
9362
                add     edx, edi
9363
                add     eax, ebx
9364
                mov     edi, [esi+98h]
9365
                add     edx, eax
9366
                mov     eax, [esi+9Ch]
9367
                mov     [esi+0D4h], edx
9368
                mov     edx, [esi+0BCh]
9369
                mov     ebx, [esi+0D0h]
9370
                mov     ecx, eax
9371
                ror     ecx, 7
9372
                shr     eax, 3
9373
                mov     ebp, ebx
9374
                shr     ebx, 0Ah
9375
                xor     eax, ecx
9376
                ror     ecx, 0Bh
9377
                rol     ebp, 0Fh
9378
                xor     eax, ecx
9379
                xor     ebx, ebp
9380
                ror     ebp, 2
9381
                xor     ebx, ebp
9382
                add     edx, edi
9383
                add     eax, ebx
9384
                mov     edi, [esi+9Ch]
9385
                add     edx, eax
9386
                mov     eax, [esi+0A0h]
9387
                mov     [esi+0D8h], edx
9388
                mov     edx, [esi+0C0h]
9389
                mov     ebx, [esi+0D4h]
9390
                mov     ecx, eax
9391
                ror     ecx, 7
9392
                shr     eax, 3
9393
                mov     ebp, ebx
9394
                shr     ebx, 0Ah
9395
                xor     eax, ecx
9396
                ror     ecx, 0Bh
9397
                rol     ebp, 0Fh
9398
                xor     eax, ecx
9399
                xor     ebx, ebp
9400
                ror     ebp, 2
9401
                xor     ebx, ebp
9402
                add     edx, edi
9403
                add     eax, ebx
9404
                mov     edi, [esi+0A0h]
9405
                add     edx, eax
9406
                mov     eax, [esi+0A4h]
9407
                mov     [esi+0DCh], edx
9408
                mov     edx, [esi+0C4h]
9409
                mov     ebx, [esi+0D8h]
9410
                mov     ecx, eax
9411
                ror     ecx, 7
9412
                shr     eax, 3
9413
                mov     ebp, ebx
9414
                shr     ebx, 0Ah
9415
                xor     eax, ecx
9416
                ror     ecx, 0Bh
9417
                rol     ebp, 0Fh
9418
                xor     eax, ecx
9419
                xor     ebx, ebp
9420
                ror     ebp, 2
9421
                xor     ebx, ebp
9422
                add     edx, edi
9423
                add     eax, ebx
9424
                mov     edi, [esi+0A4h]
9425
                add     edx, eax
9426
                mov     eax, [esi+0A8h]
9427
                mov     [esi+0E0h], edx
9428
                mov     edx, [esi+0C8h]
9429
                mov     ebx, [esi+0DCh]
9430
                mov     ecx, eax
9431
                ror     ecx, 7
9432
                shr     eax, 3
9433
                mov     ebp, ebx
9434
                shr     ebx, 0Ah
9435
                xor     eax, ecx
9436
                ror     ecx, 0Bh
9437
                rol     ebp, 0Fh
9438
                xor     eax, ecx
9439
                xor     ebx, ebp
9440
                ror     ebp, 2
9441
                xor     ebx, ebp
9442
                add     edx, edi
9443
                add     eax, ebx
9444
                mov     edi, [esi+0A8h]
9445
                add     edx, eax
9446
                mov     eax, [esi+0ACh]
9447
                mov     [esi+0E4h], edx
9448
                mov     edx, [esi+0CCh]
9449
                mov     ebx, [esi+0E0h]
9450
                mov     ecx, eax
9451
                ror     ecx, 7
9452
                shr     eax, 3
9453
                mov     ebp, ebx
9454
                shr     ebx, 0Ah
9455
                xor     eax, ecx
9456
                ror     ecx, 0Bh
9457
                rol     ebp, 0Fh
9458
                xor     eax, ecx
9459
                xor     ebx, ebp
9460
                ror     ebp, 2
9461
                xor     ebx, ebp
9462
                add     edx, edi
9463
                add     eax, ebx
9464
                mov     edi, [esi+0ACh]
9465
                add     edx, eax
9466
                mov     eax, [esi+0B0h]
9467
                mov     [esi+0E8h], edx
9468
                mov     edx, [esi+0D0h]
9469
                mov     ebx, [esi+0E4h]
9470
                mov     ecx, eax
9471
                ror     ecx, 7
9472
                shr     eax, 3
9473
                mov     ebp, ebx
9474
                shr     ebx, 0Ah
9475
                xor     eax, ecx
9476
                ror     ecx, 0Bh
9477
                rol     ebp, 0Fh
9478
                xor     eax, ecx
9479
                xor     ebx, ebp
9480
                ror     ebp, 2
9481
                xor     ebx, ebp
9482
                add     edx, edi
9483
                add     eax, ebx
9484
                mov     edi, [esi+0B0h]
9485
                add     edx, eax
9486
                mov     eax, [esi+0B4h]
9487
                mov     [esi+0ECh], edx
9488
                mov     edx, [esi+0D4h]
9489
                mov     ebx, [esi+0E8h]
9490
                mov     ecx, eax
9491
                ror     ecx, 7
9492
                shr     eax, 3
9493
                mov     ebp, ebx
9494
                shr     ebx, 0Ah
9495
                xor     eax, ecx
9496
                ror     ecx, 0Bh
9497
                rol     ebp, 0Fh
9498
                xor     eax, ecx
9499
                xor     ebx, ebp
9500
                ror     ebp, 2
9501
                xor     ebx, ebp
9502
                add     edx, edi
9503
                add     eax, ebx
9504
                mov     edi, [esi+0B4h]
9505
                add     edx, eax
9506
                mov     eax, [esi+0B8h]
9507
                mov     [esi+0F0h], edx
9508
                mov     edx, [esi+0D8h]
9509
                mov     ebx, [esi+0ECh]
9510
                mov     ecx, eax
9511
                ror     ecx, 7
9512
                shr     eax, 3
9513
                mov     ebp, ebx
9514
                shr     ebx, 0Ah
9515
                xor     eax, ecx
9516
                ror     ecx, 0Bh
9517
                rol     ebp, 0Fh
9518
                xor     eax, ecx
9519
                xor     ebx, ebp
9520
                ror     ebp, 2
9521
                xor     ebx, ebp
9522
                add     edx, edi
9523
                add     eax, ebx
9524
                mov     edi, [esi+0B8h]
9525
                add     edx, eax
9526
                mov     eax, [esi+0BCh]
9527
                mov     [esi+0F4h], edx
9528
                mov     edx, [esi+0DCh]
9529
                mov     ebx, [esi+0F0h]
9530
                mov     ecx, eax
9531
                ror     ecx, 7
9532
                shr     eax, 3
9533
                mov     ebp, ebx
9534
                shr     ebx, 0Ah
9535
                xor     eax, ecx
9536
                ror     ecx, 0Bh
9537
                rol     ebp, 0Fh
9538
                xor     eax, ecx
9539
                xor     ebx, ebp
9540
                ror     ebp, 2
9541
                xor     ebx, ebp
9542
                add     edx, edi
9543
                add     eax, ebx
9544
                mov     edi, [esi+0BCh]
9545
                add     edx, eax
9546
                mov     eax, [esi+0C0h]
9547
                mov     [esi+0F8h], edx
9548
                mov     edx, [esi+0E0h]
9549
                mov     ebx, [esi+0F4h]
9550
                mov     ecx, eax
9551
                ror     ecx, 7
9552
                shr     eax, 3
9553
                mov     ebp, ebx
9554
                shr     ebx, 0Ah
9555
                xor     eax, ecx
9556
                ror     ecx, 0Bh
9557
                rol     ebp, 0Fh
9558
                xor     eax, ecx
9559
                xor     ebx, ebp
9560
                ror     ebp, 2
9561
                xor     ebx, ebp
9562
                add     edx, edi
9563
                add     eax, ebx
9564
                mov     edi, [esi+0C0h]
9565
                add     edx, eax
9566
                mov     eax, [esi+0C4h]
9567
                mov     [esi+0FCh], edx
9568
                mov     edi, [esp+24h]
9569
                mov     eax, [edi]
9570
                mov     ebx, [edi+4]
9571
                mov     ecx, [edi+8]
9572
                mov     edx, [edi+0Ch]
9573
                mov     [esp], eax
9574
                mov     [esp+4], ebx
9575
                mov     [esp+8], ecx
9576
                mov     [esp+0Ch], edx
9577
                mov     eax, [edi+10h]
9578
                mov     ebx, [edi+14h]
9579
                mov     ecx, [edi+18h]
9580
                mov     edx, [edi+1Ch]
9581
                mov     [esp+10h], eax
9582
                mov     [esp+14h], ebx
9583
                mov     [esp+18h], ecx
9584
                mov     [esp+1Ch], edx
9585
                mov     ebp, eax
9586
                mov     edi, eax
9587
                ror     ebp, 6
9588
                rol     edi, 7
9589
                xor     edi, ebp
9590
                ror     ebp, 5
9591
                xor     edi, ebp
9592
                mov     ebp, ebx
9593
                xor     ebp, ecx
9594
                and     ebp, eax
9595
                lea     edx, [edi+edx+428A2F98h]
9596
                mov     edi, [esp+4]
9597
                xor     ebp, ecx
9598
                add     edx, [esi]
9599
                add     edx, ebp
9600
                mov     ebp, [esp+8]
9601
                mov     eax, edi
9602
                and     edi, ebp
9603
                or      eax, ebp
9604
                mov     ebp, [esp]
9605
                and     eax, ebp
9606
                ror     ebp, 2
9607
                or      eax, edi
9608
                mov     edi, ebp
9609
                rol     edi, 0Ch
9610
                add     eax, edx
9611
                xor     ebp, edi
9612
                add     edx, [esp+0Ch]
9613
                rol     edi, 9
9614
                xor     ebp, edi
9615
                mov     [esp+0Ch], edx
9616
                add     eax, ebp
9617
                mov     [esp+1Ch], eax
9618
                mov     eax, [esp+10h]
9619
                mov     ebp, edx
9620
                mov     edi, edx
9621
                ror     ebp, 6
9622
                rol     edi, 7
9623
                xor     edi, ebp
9624
                ror     ebp, 5
9625
                xor     edi, ebp
9626
                mov     ebp, eax
9627
                xor     ebp, ebx
9628
                and     ebp, edx
9629
                lea     ecx, [edi+ecx+71374491h]
9630
                mov     edi, [esp]
9631
                xor     ebp, ebx
9632
                add     ecx, [esi+4]
9633
                add     ecx, ebp
9634
                mov     ebp, [esp+4]
9635
                mov     edx, edi
9636
                and     edi, ebp
9637
                or      edx, ebp
9638
                mov     ebp, [esp+1Ch]
9639
                and     edx, ebp
9640
                ror     ebp, 2
9641
                or      edx, edi
9642
                mov     edi, ebp
9643
                rol     edi, 0Ch
9644
                add     edx, ecx
9645
                xor     ebp, edi
9646
                add     ecx, [esp+8]
9647
                rol     edi, 9
9648
                xor     ebp, edi
9649
                mov     [esp+8], ecx
9650
                add     edx, ebp
9651
                mov     [esp+18h], edx
9652
                mov     edx, [esp+0Ch]
9653
                mov     ebp, ecx
9654
                mov     edi, ecx
9655
                ror     ebp, 6
9656
                rol     edi, 7
9657
                xor     edi, ebp
9658
                ror     ebp, 5
9659
                xor     edi, ebp
9660
                mov     ebp, edx
9661
                xor     ebp, eax
9662
                and     ebp, ecx
9663
                lea     ebx, [edi+ebx-4A3F0431h]
9664
                mov     edi, [esp+1Ch]
9665
                xor     ebp, eax
9666
                add     ebx, [esi+8]
9667
                add     ebx, ebp
9668
                mov     ebp, [esp]
9669
                mov     ecx, edi
9670
                and     edi, ebp
9671
                or      ecx, ebp
9672
                mov     ebp, [esp+18h]
9673
                and     ecx, ebp
9674
                ror     ebp, 2
9675
                or      ecx, edi
9676
                mov     edi, ebp
9677
                rol     edi, 0Ch
9678
                add     ecx, ebx
9679
                xor     ebp, edi
9680
                add     ebx, [esp+4]
9681
                rol     edi, 9
9682
                xor     ebp, edi
9683
                mov     [esp+4], ebx
9684
                add     ecx, ebp
9685
                mov     [esp+14h], ecx
9686
                mov     ecx, [esp+8]
9687
                mov     ebp, ebx
9688
                mov     edi, ebx
9689
                ror     ebp, 6
9690
                rol     edi, 7
9691
                xor     edi, ebp
9692
                ror     ebp, 5
9693
                xor     edi, ebp
9694
                mov     ebp, ecx
9695
                xor     ebp, edx
9696
                and     ebp, ebx
9697
                lea     eax, [edi+eax-164A245Bh]
9698
                mov     edi, [esp+18h]
9699
                xor     ebp, edx
9700
                add     eax, [esi+0Ch]
9701
                add     eax, ebp
9702
                mov     ebp, [esp+1Ch]
9703
                mov     ebx, edi
9704
                and     edi, ebp
9705
                or      ebx, ebp
9706
                mov     ebp, [esp+14h]
9707
                and     ebx, ebp
9708
                ror     ebp, 2
9709
                or      ebx, edi
9710
                mov     edi, ebp
9711
                rol     edi, 0Ch
9712
                add     ebx, eax
9713
                xor     ebp, edi
9714
                add     eax, [esp]
9715
                rol     edi, 9
9716
                xor     ebp, edi
9717
                mov     [esp], eax
9718
                add     ebx, ebp
9719
                mov     [esp+10h], ebx
9720
                mov     ebx, [esp+4]
9721
                mov     ebp, eax
9722
                mov     edi, eax
9723
                ror     ebp, 6
9724
                rol     edi, 7
9725
                xor     edi, ebp
9726
                ror     ebp, 5
9727
                xor     edi, ebp
9728
                mov     ebp, ebx
9729
                xor     ebp, ecx
9730
                and     ebp, eax
9731
                lea     edx, [edi+edx+3956C25Bh]
9732
                mov     edi, [esp+14h]
9733
                xor     ebp, ecx
9734
                add     edx, [esi+10h]
9735
                add     edx, ebp
9736
                mov     ebp, [esp+18h]
9737
                mov     eax, edi
9738
                and     edi, ebp
9739
                or      eax, ebp
9740
                mov     ebp, [esp+10h]
9741
                and     eax, ebp
9742
                ror     ebp, 2
9743
                or      eax, edi
9744
                mov     edi, ebp
9745
                rol     edi, 0Ch
9746
                add     eax, edx
9747
                xor     ebp, edi
9748
                add     edx, [esp+1Ch]
9749
                rol     edi, 9
9750
                xor     ebp, edi
9751
                mov     [esp+1Ch], edx
9752
                add     eax, ebp
9753
                mov     [esp+0Ch], eax
9754
                mov     eax, [esp]
9755
                mov     ebp, edx
9756
                mov     edi, edx
9757
                ror     ebp, 6
9758
                rol     edi, 7
9759
                xor     edi, ebp
9760
                ror     ebp, 5
9761
                xor     edi, ebp
9762
                mov     ebp, eax
9763
                xor     ebp, ebx
9764
                and     ebp, edx
9765
                lea     ecx, [edi+ecx+59F111F1h]
9766
                mov     edi, [esp+10h]
9767
                xor     ebp, ebx
9768
                add     ecx, [esi+14h]
9769
                add     ecx, ebp
9770
                mov     ebp, [esp+14h]
9771
                mov     edx, edi
9772
                and     edi, ebp
9773
                or      edx, ebp
9774
                mov     ebp, [esp+0Ch]
9775
                and     edx, ebp
9776
                ror     ebp, 2
9777
                or      edx, edi
9778
                mov     edi, ebp
9779
                rol     edi, 0Ch
9780
                add     edx, ecx
9781
                xor     ebp, edi
9782
                add     ecx, [esp+18h]
9783
                rol     edi, 9
9784
                xor     ebp, edi
9785
                mov     [esp+18h], ecx
9786
                add     edx, ebp
9787
                mov     [esp+8], edx
9788
                mov     edx, [esp+1Ch]
9789
                mov     ebp, ecx
9790
                mov     edi, ecx
9791
                ror     ebp, 6
9792
                rol     edi, 7
9793
                xor     edi, ebp
9794
                ror     ebp, 5
9795
                xor     edi, ebp
9796
                mov     ebp, edx
9797
                xor     ebp, eax
9798
                and     ebp, ecx
9799
                lea     ebx, [edi+ebx-6DC07D5Ch]
9800
                mov     edi, [esp+0Ch]
9801
                xor     ebp, eax
9802
                add     ebx, [esi+18h]
9803
                add     ebx, ebp
9804
                mov     ebp, [esp+10h]
9805
                mov     ecx, edi
9806
                and     edi, ebp
9807
                or      ecx, ebp
9808
                mov     ebp, [esp+8]
9809
                and     ecx, ebp
9810
                ror     ebp, 2
9811
                or      ecx, edi
9812
                mov     edi, ebp
9813
                rol     edi, 0Ch
9814
                add     ecx, ebx
9815
                xor     ebp, edi
9816
                add     ebx, [esp+14h]
9817
                rol     edi, 9
9818
                xor     ebp, edi
9819
                mov     [esp+14h], ebx
9820
                add     ecx, ebp
9821
                mov     [esp+4], ecx
9822
                mov     ecx, [esp+18h]
9823
                mov     ebp, ebx
9824
                mov     edi, ebx
9825
                ror     ebp, 6
9826
                rol     edi, 7
9827
                xor     edi, ebp
9828
                ror     ebp, 5
9829
                xor     edi, ebp
9830
                mov     ebp, ecx
9831
                xor     ebp, edx
9832
                and     ebp, ebx
9833
                lea     eax, [edi+eax-54E3A12Bh]
9834
                mov     edi, [esp+8]
9835
                xor     ebp, edx
9836
                add     eax, [esi+1Ch]
9837
                add     eax, ebp
9838
                mov     ebp, [esp+0Ch]
9839
                mov     ebx, edi
9840
                and     edi, ebp
9841
                or      ebx, ebp
9842
                mov     ebp, [esp+4]
9843
                and     ebx, ebp
9844
                ror     ebp, 2
9845
                or      ebx, edi
9846
                mov     edi, ebp
9847
                rol     edi, 0Ch
9848
                add     ebx, eax
9849
                xor     ebp, edi
9850
                add     eax, [esp+10h]
9851
                rol     edi, 9
9852
                xor     ebp, edi
9853
                mov     [esp+10h], eax
9854
                add     ebx, ebp
9855
                mov     [esp], ebx
9856
                mov     ebx, [esp+14h]
9857
                mov     ebp, eax
9858
                mov     edi, eax
9859
                ror     ebp, 6
9860
                rol     edi, 7
9861
                xor     edi, ebp
9862
                ror     ebp, 5
9863
                xor     edi, ebp
9864
                mov     ebp, ebx
9865
                xor     ebp, ecx
9866
                and     ebp, eax
9867
                lea     edx, [edi+edx-27F85568h]
9868
                mov     edi, [esp+4]
9869
                xor     ebp, ecx
9870
                add     edx, [esi+20h]
9871
                add     edx, ebp
9872
                mov     ebp, [esp+8]
9873
                mov     eax, edi
9874
                and     edi, ebp
9875
                or      eax, ebp
9876
                mov     ebp, [esp]
9877
                and     eax, ebp
9878
                ror     ebp, 2
9879
                or      eax, edi
9880
                mov     edi, ebp
9881
                rol     edi, 0Ch
9882
                add     eax, edx
9883
                xor     ebp, edi
9884
                add     edx, [esp+0Ch]
9885
                rol     edi, 9
9886
                xor     ebp, edi
9887
                mov     [esp+0Ch], edx
9888
                add     eax, ebp
9889
                mov     [esp+1Ch], eax
9890
                mov     eax, [esp+10h]
9891
                mov     ebp, edx
9892
                mov     edi, edx
9893
                ror     ebp, 6
9894
                rol     edi, 7
9895
                xor     edi, ebp
9896
                ror     ebp, 5
9897
                xor     edi, ebp
9898
                mov     ebp, eax
9899
                xor     ebp, ebx
9900
                and     ebp, edx
9901
                lea     ecx, [edi+ecx+12835B01h]
9902
                mov     edi, [esp]
9903
                xor     ebp, ebx
9904
                add     ecx, [esi+24h]
9905
                add     ecx, ebp
9906
                mov     ebp, [esp+4]
9907
                mov     edx, edi
9908
                and     edi, ebp
9909
                or      edx, ebp
9910
                mov     ebp, [esp+1Ch]
9911
                and     edx, ebp
9912
                ror     ebp, 2
9913
                or      edx, edi
9914
                mov     edi, ebp
9915
                rol     edi, 0Ch
9916
                add     edx, ecx
9917
                xor     ebp, edi
9918
                add     ecx, [esp+8]
9919
                rol     edi, 9
9920
                xor     ebp, edi
9921
                mov     [esp+8], ecx
9922
                add     edx, ebp
9923
                mov     [esp+18h], edx
9924
                mov     edx, [esp+0Ch]
9925
                mov     ebp, ecx
9926
                mov     edi, ecx
9927
                ror     ebp, 6
9928
                rol     edi, 7
9929
                xor     edi, ebp
9930
                ror     ebp, 5
9931
                xor     edi, ebp
9932
                mov     ebp, edx
9933
                xor     ebp, eax
9934
                and     ebp, ecx
9935
                lea     ebx, [edi+ebx+243185BEh]
9936
                mov     edi, [esp+1Ch]
9937
                xor     ebp, eax
9938
                add     ebx, [esi+28h]
9939
                add     ebx, ebp
9940
                mov     ebp, [esp]
9941
                mov     ecx, edi
9942
                and     edi, ebp
9943
                or      ecx, ebp
9944
                mov     ebp, [esp+18h]
9945
                and     ecx, ebp
9946
                ror     ebp, 2
9947
                or      ecx, edi
9948
                mov     edi, ebp
9949
                rol     edi, 0Ch
9950
                add     ecx, ebx
9951
                xor     ebp, edi
9952
                add     ebx, [esp+4]
9953
                rol     edi, 9
9954
                xor     ebp, edi
9955
                mov     [esp+4], ebx
9956
                add     ecx, ebp
9957
                mov     [esp+14h], ecx
9958
                mov     ecx, [esp+8]
9959
                mov     ebp, ebx
9960
                mov     edi, ebx
9961
                ror     ebp, 6
9962
                rol     edi, 7
9963
                xor     edi, ebp
9964
                ror     ebp, 5
9965
                xor     edi, ebp
9966
                mov     ebp, ecx
9967
                xor     ebp, edx
9968
                and     ebp, ebx
9969
                lea     eax, [edi+eax+550C7DC3h]
9970
                mov     edi, [esp+18h]
9971
                xor     ebp, edx
9972
                add     eax, [esi+2Ch]
9973
                add     eax, ebp
9974
                mov     ebp, [esp+1Ch]
9975
                mov     ebx, edi
9976
                and     edi, ebp
9977
                or      ebx, ebp
9978
                mov     ebp, [esp+14h]
9979
                and     ebx, ebp
9980
                ror     ebp, 2
9981
                or      ebx, edi
9982
                mov     edi, ebp
9983
                rol     edi, 0Ch
9984
                add     ebx, eax
9985
                xor     ebp, edi
9986
                add     eax, [esp]
9987
                rol     edi, 9
9988
                xor     ebp, edi
9989
                mov     [esp], eax
9990
                add     ebx, ebp
9991
                mov     [esp+10h], ebx
9992
                mov     ebx, [esp+4]
9993
                mov     ebp, eax
9994
                mov     edi, eax
9995
                ror     ebp, 6
9996
                rol     edi, 7
9997
                xor     edi, ebp
9998
                ror     ebp, 5
9999
                xor     edi, ebp
10000
                mov     ebp, ebx
10001
                xor     ebp, ecx
10002
                and     ebp, eax
10003
                lea     edx, [edi+edx+72BE5D74h]
10004
                mov     edi, [esp+14h]
10005
                xor     ebp, ecx
10006
                add     edx, [esi+30h]
10007
                add     edx, ebp
10008
                mov     ebp, [esp+18h]
10009
                mov     eax, edi
10010
                and     edi, ebp
10011
                or      eax, ebp
10012
                mov     ebp, [esp+10h]
10013
                and     eax, ebp
10014
                ror     ebp, 2
10015
                or      eax, edi
10016
                mov     edi, ebp
10017
                rol     edi, 0Ch
10018
                add     eax, edx
10019
                xor     ebp, edi
10020
                add     edx, [esp+1Ch]
10021
                rol     edi, 9
10022
                xor     ebp, edi
10023
                mov     [esp+1Ch], edx
10024
                add     eax, ebp
10025
                mov     [esp+0Ch], eax
10026
                mov     eax, [esp]
10027
                mov     ebp, edx
10028
                mov     edi, edx
10029
                ror     ebp, 6
10030
                rol     edi, 7
10031
                xor     edi, ebp
10032
                ror     ebp, 5
10033
                xor     edi, ebp
10034
                mov     ebp, eax
10035
                xor     ebp, ebx
10036
                and     ebp, edx
10037
                lea     ecx, [edi+ecx-7F214E02h]
10038
                mov     edi, [esp+10h]
10039
                xor     ebp, ebx
10040
                add     ecx, [esi+34h]
10041
                add     ecx, ebp
10042
                mov     ebp, [esp+14h]
10043
                mov     edx, edi
10044
                and     edi, ebp
10045
                or      edx, ebp
10046
                mov     ebp, [esp+0Ch]
10047
                and     edx, ebp
10048
                ror     ebp, 2
10049
                or      edx, edi
10050
                mov     edi, ebp
10051
                rol     edi, 0Ch
10052
                add     edx, ecx
10053
                xor     ebp, edi
10054
                add     ecx, [esp+18h]
10055
                rol     edi, 9
10056
                xor     ebp, edi
10057
                mov     [esp+18h], ecx
10058
                add     edx, ebp
10059
                mov     [esp+8], edx
10060
                mov     edx, [esp+1Ch]
10061
                mov     ebp, ecx
10062
                mov     edi, ecx
10063
                ror     ebp, 6
10064
                rol     edi, 7
10065
                xor     edi, ebp
10066
                ror     ebp, 5
10067
                xor     edi, ebp
10068
                mov     ebp, edx
10069
                xor     ebp, eax
10070
                and     ebp, ecx
10071
                lea     ebx, [edi+ebx-6423F959h]
10072
                mov     edi, [esp+0Ch]
10073
                xor     ebp, eax
10074
                add     ebx, [esi+38h]
10075
                add     ebx, ebp
10076
                mov     ebp, [esp+10h]
10077
                mov     ecx, edi
10078
                and     edi, ebp
10079
                or      ecx, ebp
10080
                mov     ebp, [esp+8]
10081
                and     ecx, ebp
10082
                ror     ebp, 2
10083
                or      ecx, edi
10084
                mov     edi, ebp
10085
                rol     edi, 0Ch
10086
                add     ecx, ebx
10087
                xor     ebp, edi
10088
                add     ebx, [esp+14h]
10089
                rol     edi, 9
10090
                xor     ebp, edi
10091
                mov     [esp+14h], ebx
10092
                add     ecx, ebp
10093
                mov     [esp+4], ecx
10094
                mov     ecx, [esp+18h]
10095
                mov     ebp, ebx
10096
                mov     edi, ebx
10097
                ror     ebp, 6
10098
                rol     edi, 7
10099
                xor     edi, ebp
10100
                ror     ebp, 5
10101
                xor     edi, ebp
10102
                mov     ebp, ecx
10103
                xor     ebp, edx
10104
                and     ebp, ebx
10105
                lea     eax, [edi+eax-3E640E8Ch]
10106
                mov     edi, [esp+8]
10107
                xor     ebp, edx
10108
                add     eax, [esi+3Ch]
10109
                add     eax, ebp
10110
                mov     ebp, [esp+0Ch]
10111
                mov     ebx, edi
10112
                and     edi, ebp
10113
                or      ebx, ebp
10114
                mov     ebp, [esp+4]
10115
                and     ebx, ebp
10116
                ror     ebp, 2
10117
                or      ebx, edi
10118
                mov     edi, ebp
10119
                rol     edi, 0Ch
10120
                add     ebx, eax
10121
                xor     ebp, edi
10122
                add     eax, [esp+10h]
10123
                rol     edi, 9
10124
                xor     ebp, edi
10125
                mov     [esp+10h], eax
10126
                add     ebx, ebp
10127
                mov     [esp], ebx
10128
                mov     ebx, [esp+14h]
10129
                mov     ebp, eax
10130
                mov     edi, eax
10131
                ror     ebp, 6
10132
                rol     edi, 7
10133
                xor     edi, ebp
10134
                ror     ebp, 5
10135
                xor     edi, ebp
10136
                mov     ebp, ebx
10137
                xor     ebp, ecx
10138
                and     ebp, eax
10139
                lea     edx, [edi+edx-1B64963Fh]
10140
                mov     edi, [esp+4]
10141
                xor     ebp, ecx
10142
                add     edx, [esi+40h]
10143
                add     edx, ebp
10144
                mov     ebp, [esp+8]
10145
                mov     eax, edi
10146
                and     edi, ebp
10147
                or      eax, ebp
10148
                mov     ebp, [esp]
10149
                and     eax, ebp
10150
                ror     ebp, 2
10151
                or      eax, edi
10152
                mov     edi, ebp
10153
                rol     edi, 0Ch
10154
                add     eax, edx
10155
                xor     ebp, edi
10156
                add     edx, [esp+0Ch]
10157
                rol     edi, 9
10158
                xor     ebp, edi
10159
                mov     [esp+0Ch], edx
10160
                add     eax, ebp
10161
                mov     [esp+1Ch], eax
10162
                mov     eax, [esp+10h]
10163
                mov     ebp, edx
10164
                mov     edi, edx
10165
                ror     ebp, 6
10166
                rol     edi, 7
10167
                xor     edi, ebp
10168
                ror     ebp, 5
10169
                xor     edi, ebp
10170
                mov     ebp, eax
10171
                xor     ebp, ebx
10172
                and     ebp, edx
10173
                lea     ecx, [edi+ecx-1041B87Ah]
10174
                mov     edi, [esp]
10175
                xor     ebp, ebx
10176
                add     ecx, [esi+44h]
10177
                add     ecx, ebp
10178
                mov     ebp, [esp+4]
10179
                mov     edx, edi
10180
                and     edi, ebp
10181
                or      edx, ebp
10182
                mov     ebp, [esp+1Ch]
10183
                and     edx, ebp
10184
                ror     ebp, 2
10185
                or      edx, edi
10186
                mov     edi, ebp
10187
                rol     edi, 0Ch
10188
                add     edx, ecx
10189
                xor     ebp, edi
10190
                add     ecx, [esp+8]
10191
                rol     edi, 9
10192
                xor     ebp, edi
10193
                mov     [esp+8], ecx
10194
                add     edx, ebp
10195
                mov     [esp+18h], edx
10196
                mov     edx, [esp+0Ch]
10197
                mov     ebp, ecx
10198
                mov     edi, ecx
10199
                ror     ebp, 6
10200
                rol     edi, 7
10201
                xor     edi, ebp
10202
                ror     ebp, 5
10203
                xor     edi, ebp
10204
                mov     ebp, edx
10205
                xor     ebp, eax
10206
                and     ebp, ecx
10207
                lea     ebx, [edi+ebx+0FC19DC6h]
10208
                mov     edi, [esp+1Ch]
10209
                xor     ebp, eax
10210
                add     ebx, [esi+48h]
10211
                add     ebx, ebp
10212
                mov     ebp, [esp]
10213
                mov     ecx, edi
10214
                and     edi, ebp
10215
                or      ecx, ebp
10216
                mov     ebp, [esp+18h]
10217
                and     ecx, ebp
10218
                ror     ebp, 2
10219
                or      ecx, edi
10220
                mov     edi, ebp
10221
                rol     edi, 0Ch
10222
                add     ecx, ebx
10223
                xor     ebp, edi
10224
                add     ebx, [esp+4]
10225
                rol     edi, 9
10226
                xor     ebp, edi
10227
                mov     [esp+4], ebx
10228
                add     ecx, ebp
10229
                mov     [esp+14h], ecx
10230
                mov     ecx, [esp+8]
10231
                mov     ebp, ebx
10232
                mov     edi, ebx
10233
                ror     ebp, 6
10234
                rol     edi, 7
10235
                xor     edi, ebp
10236
                ror     ebp, 5
10237
                xor     edi, ebp
10238
                mov     ebp, ecx
10239
                xor     ebp, edx
10240
                and     ebp, ebx
10241
                lea     eax, [edi+eax+240CA1CCh]
10242
                mov     edi, [esp+18h]
10243
                xor     ebp, edx
10244
                add     eax, [esi+4Ch]
10245
                add     eax, ebp
10246
                mov     ebp, [esp+1Ch]
10247
                mov     ebx, edi
10248
                and     edi, ebp
10249
                or      ebx, ebp
10250
                mov     ebp, [esp+14h]
10251
                and     ebx, ebp
10252
                ror     ebp, 2
10253
                or      ebx, edi
10254
                mov     edi, ebp
10255
                rol     edi, 0Ch
10256
                add     ebx, eax
10257
                xor     ebp, edi
10258
                add     eax, [esp]
10259
                rol     edi, 9
10260
                xor     ebp, edi
10261
                mov     [esp], eax
10262
                add     ebx, ebp
10263
                mov     [esp+10h], ebx
10264
                mov     ebx, [esp+4]
10265
                mov     ebp, eax
10266
                mov     edi, eax
10267
                ror     ebp, 6
10268
                rol     edi, 7
10269
                xor     edi, ebp
10270
                ror     ebp, 5
10271
                xor     edi, ebp
10272
                mov     ebp, ebx
10273
                xor     ebp, ecx
10274
                and     ebp, eax
10275
                lea     edx, [edi+edx+2DE92C6Fh]
10276
                mov     edi, [esp+14h]
10277
                xor     ebp, ecx
10278
                add     edx, [esi+50h]
10279
                add     edx, ebp
10280
                mov     ebp, [esp+18h]
10281
                mov     eax, edi
10282
                and     edi, ebp
10283
                or      eax, ebp
10284
                mov     ebp, [esp+10h]
10285
                and     eax, ebp
10286
                ror     ebp, 2
10287
                or      eax, edi
10288
                mov     edi, ebp
10289
                rol     edi, 0Ch
10290
                add     eax, edx
10291
                xor     ebp, edi
10292
                add     edx, [esp+1Ch]
10293
                rol     edi, 9
10294
                xor     ebp, edi
10295
                mov     [esp+1Ch], edx
10296
                add     eax, ebp
10297
                mov     [esp+0Ch], eax
10298
                mov     eax, [esp]
10299
                mov     ebp, edx
10300
                mov     edi, edx
10301
                ror     ebp, 6
10302
                rol     edi, 7
10303
                xor     edi, ebp
10304
                ror     ebp, 5
10305
                xor     edi, ebp
10306
                mov     ebp, eax
10307
                xor     ebp, ebx
10308
                and     ebp, edx
10309
                lea     ecx, [edi+ecx+4A7484AAh]
10310
                mov     edi, [esp+10h]
10311
                xor     ebp, ebx
10312
                add     ecx, [esi+54h]
10313
                add     ecx, ebp
10314
                mov     ebp, [esp+14h]
10315
                mov     edx, edi
10316
                and     edi, ebp
10317
                or      edx, ebp
10318
                mov     ebp, [esp+0Ch]
10319
                and     edx, ebp
10320
                ror     ebp, 2
10321
                or      edx, edi
10322
                mov     edi, ebp
10323
                rol     edi, 0Ch
10324
                add     edx, ecx
10325
                xor     ebp, edi
10326
                add     ecx, [esp+18h]
10327
                rol     edi, 9
10328
                xor     ebp, edi
10329
                mov     [esp+18h], ecx
10330
                add     edx, ebp
10331
                mov     [esp+8], edx
10332
                mov     edx, [esp+1Ch]
10333
                mov     ebp, ecx
10334
                mov     edi, ecx
10335
                ror     ebp, 6
10336
                rol     edi, 7
10337
                xor     edi, ebp
10338
                ror     ebp, 5
10339
                xor     edi, ebp
10340
                mov     ebp, edx
10341
                xor     ebp, eax
10342
                and     ebp, ecx
10343
                lea     ebx, [edi+ebx+5CB0A9DCh]
10344
                mov     edi, [esp+0Ch]
10345
                xor     ebp, eax
10346
                add     ebx, [esi+58h]
10347
                add     ebx, ebp
10348
                mov     ebp, [esp+10h]
10349
                mov     ecx, edi
10350
                and     edi, ebp
10351
                or      ecx, ebp
10352
                mov     ebp, [esp+8]
10353
                and     ecx, ebp
10354
                ror     ebp, 2
10355
                or      ecx, edi
10356
                mov     edi, ebp
10357
                rol     edi, 0Ch
10358
                add     ecx, ebx
10359
                xor     ebp, edi
10360
                add     ebx, [esp+14h]
10361
                rol     edi, 9
10362
                xor     ebp, edi
10363
                mov     [esp+14h], ebx
10364
                add     ecx, ebp
10365
                mov     [esp+4], ecx
10366
                mov     ecx, [esp+18h]
10367
                mov     ebp, ebx
10368
                mov     edi, ebx
10369
                ror     ebp, 6
10370
                rol     edi, 7
10371
                xor     edi, ebp
10372
                ror     ebp, 5
10373
                xor     edi, ebp
10374
                mov     ebp, ecx
10375
                xor     ebp, edx
10376
                and     ebp, ebx
10377
                lea     eax, [edi+eax+76F988DAh]
10378
                mov     edi, [esp+8]
10379
                xor     ebp, edx
10380
                add     eax, [esi+5Ch]
10381
                add     eax, ebp
10382
                mov     ebp, [esp+0Ch]
10383
                mov     ebx, edi
10384
                and     edi, ebp
10385
                or      ebx, ebp
10386
                mov     ebp, [esp+4]
10387
                and     ebx, ebp
10388
                ror     ebp, 2
10389
                or      ebx, edi
10390
                mov     edi, ebp
10391
                rol     edi, 0Ch
10392
                add     ebx, eax
10393
                xor     ebp, edi
10394
                add     eax, [esp+10h]
10395
                rol     edi, 9
10396
                xor     ebp, edi
10397
                mov     [esp+10h], eax
10398
                add     ebx, ebp
10399
                mov     [esp], ebx
10400
                mov     ebx, [esp+14h]
10401
                mov     ebp, eax
10402
                mov     edi, eax
10403
                ror     ebp, 6
10404
                rol     edi, 7
10405
                xor     edi, ebp
10406
                ror     ebp, 5
10407
                xor     edi, ebp
10408
                mov     ebp, ebx
10409
                xor     ebp, ecx
10410
                and     ebp, eax
10411
                lea     edx, [edi+edx-67C1AEAEh]
10412
                mov     edi, [esp+4]
10413
                xor     ebp, ecx
10414
                add     edx, [esi+60h]
10415
                add     edx, ebp
10416
                mov     ebp, [esp+8]
10417
                mov     eax, edi
10418
                and     edi, ebp
10419
                or      eax, ebp
10420
                mov     ebp, [esp]
10421
                and     eax, ebp
10422
                ror     ebp, 2
10423
                or      eax, edi
10424
                mov     edi, ebp
10425
                rol     edi, 0Ch
10426
                add     eax, edx
10427
                xor     ebp, edi
10428
                add     edx, [esp+0Ch]
10429
                rol     edi, 9
10430
                xor     ebp, edi
10431
                mov     [esp+0Ch], edx
10432
                add     eax, ebp
10433
                mov     [esp+1Ch], eax
10434
                mov     eax, [esp+10h]
10435
                mov     ebp, edx
10436
                mov     edi, edx
10437
                ror     ebp, 6
10438
                rol     edi, 7
10439
                xor     edi, ebp
10440
                ror     ebp, 5
10441
                xor     edi, ebp
10442
                mov     ebp, eax
10443
                xor     ebp, ebx
10444
                and     ebp, edx
10445
                lea     ecx, [edi+ecx-57CE3993h]
10446
                mov     edi, [esp]
10447
                xor     ebp, ebx
10448
                add     ecx, [esi+64h]
10449
                add     ecx, ebp
10450
                mov     ebp, [esp+4]
10451
                mov     edx, edi
10452
                and     edi, ebp
10453
                or      edx, ebp
10454
                mov     ebp, [esp+1Ch]
10455
                and     edx, ebp
10456
                ror     ebp, 2
10457
                or      edx, edi
10458
                mov     edi, ebp
10459
                rol     edi, 0Ch
10460
                add     edx, ecx
10461
                xor     ebp, edi
10462
                add     ecx, [esp+8]
10463
                rol     edi, 9
10464
                xor     ebp, edi
10465
                mov     [esp+8], ecx
10466
                add     edx, ebp
10467
                mov     [esp+18h], edx
10468
                mov     edx, [esp+0Ch]
10469
                mov     ebp, ecx
10470
                mov     edi, ecx
10471
                ror     ebp, 6
10472
                rol     edi, 7
10473
                xor     edi, ebp
10474
                ror     ebp, 5
10475
                xor     edi, ebp
10476
                mov     ebp, edx
10477
                xor     ebp, eax
10478
                and     ebp, ecx
10479
                lea     ebx, [edi+ebx-4FFCD838h]
10480
                mov     edi, [esp+1Ch]
10481
                xor     ebp, eax
10482
                add     ebx, [esi+68h]
10483
                add     ebx, ebp
10484
                mov     ebp, [esp]
10485
                mov     ecx, edi
10486
                and     edi, ebp
10487
                or      ecx, ebp
10488
                mov     ebp, [esp+18h]
10489
                and     ecx, ebp
10490
                ror     ebp, 2
10491
                or      ecx, edi
10492
                mov     edi, ebp
10493
                rol     edi, 0Ch
10494
                add     ecx, ebx
10495
                xor     ebp, edi
10496
                add     ebx, [esp+4]
10497
                rol     edi, 9
10498
                xor     ebp, edi
10499
                mov     [esp+4], ebx
10500
                add     ecx, ebp
10501
                mov     [esp+14h], ecx
10502
                mov     ecx, [esp+8]
10503
                mov     ebp, ebx
10504
                mov     edi, ebx
10505
                ror     ebp, 6
10506
                rol     edi, 7
10507
                xor     edi, ebp
10508
                ror     ebp, 5
10509
                xor     edi, ebp
10510
                mov     ebp, ecx
10511
                xor     ebp, edx
10512
                and     ebp, ebx
10513
                lea     eax, [edi+eax-40A68039h]
10514
                mov     edi, [esp+18h]
10515
                xor     ebp, edx
10516
                add     eax, [esi+6Ch]
10517
                add     eax, ebp
10518
                mov     ebp, [esp+1Ch]
10519
                mov     ebx, edi
10520
                and     edi, ebp
10521
                or      ebx, ebp
10522
                mov     ebp, [esp+14h]
10523
                and     ebx, ebp
10524
                ror     ebp, 2
10525
                or      ebx, edi
10526
                mov     edi, ebp
10527
                rol     edi, 0Ch
10528
                add     ebx, eax
10529
                xor     ebp, edi
10530
                add     eax, [esp]
10531
                rol     edi, 9
10532
                xor     ebp, edi
10533
                mov     [esp], eax
10534
                add     ebx, ebp
10535
                mov     [esp+10h], ebx
10536
                mov     ebx, [esp+4]
10537
                mov     ebp, eax
10538
                mov     edi, eax
10539
                ror     ebp, 6
10540
                rol     edi, 7
10541
                xor     edi, ebp
10542
                ror     ebp, 5
10543
                xor     edi, ebp
10544
                mov     ebp, ebx
10545
                xor     ebp, ecx
10546
                and     ebp, eax
10547
                lea     edx, [edi+edx-391FF40Dh]
10548
                mov     edi, [esp+14h]
10549
                xor     ebp, ecx
10550
                add     edx, [esi+70h]
10551
                add     edx, ebp
10552
                mov     ebp, [esp+18h]
10553
                mov     eax, edi
10554
                and     edi, ebp
10555
                or      eax, ebp
10556
                mov     ebp, [esp+10h]
10557
                and     eax, ebp
10558
                ror     ebp, 2
10559
                or      eax, edi
10560
                mov     edi, ebp
10561
                rol     edi, 0Ch
10562
                add     eax, edx
10563
                xor     ebp, edi
10564
                add     edx, [esp+1Ch]
10565
                rol     edi, 9
10566
                xor     ebp, edi
10567
                mov     [esp+1Ch], edx
10568
                add     eax, ebp
10569
                mov     [esp+0Ch], eax
10570
                mov     eax, [esp]
10571
                mov     ebp, edx
10572
                mov     edi, edx
10573
                ror     ebp, 6
10574
                rol     edi, 7
10575
                xor     edi, ebp
10576
                ror     ebp, 5
10577
                xor     edi, ebp
10578
                mov     ebp, eax
10579
                xor     ebp, ebx
10580
                and     ebp, edx
10581
                lea     ecx, [edi+ecx-2A586EB9h]
10582
                mov     edi, [esp+10h]
10583
                xor     ebp, ebx
10584
                add     ecx, [esi+74h]
10585
                add     ecx, ebp
10586
                mov     ebp, [esp+14h]
10587
                mov     edx, edi
10588
                and     edi, ebp
10589
                or      edx, ebp
10590
                mov     ebp, [esp+0Ch]
10591
                and     edx, ebp
10592
                ror     ebp, 2
10593
                or      edx, edi
10594
                mov     edi, ebp
10595
                rol     edi, 0Ch
10596
                add     edx, ecx
10597
                xor     ebp, edi
10598
                add     ecx, [esp+18h]
10599
                rol     edi, 9
10600
                xor     ebp, edi
10601
                mov     [esp+18h], ecx
10602
                add     edx, ebp
10603
                mov     [esp+8], edx
10604
                mov     edx, [esp+1Ch]
10605
                mov     ebp, ecx
10606
                mov     edi, ecx
10607
                ror     ebp, 6
10608
                rol     edi, 7
10609
                xor     edi, ebp
10610
                ror     ebp, 5
10611
                xor     edi, ebp
10612
                mov     ebp, edx
10613
                xor     ebp, eax
10614
                and     ebp, ecx
10615
                lea     ebx, [edi+ebx+6CA6351h]
10616
                mov     edi, [esp+0Ch]
10617
                xor     ebp, eax
10618
                add     ebx, [esi+78h]
10619
                add     ebx, ebp
10620
                mov     ebp, [esp+10h]
10621
                mov     ecx, edi
10622
                and     edi, ebp
10623
                or      ecx, ebp
10624
                mov     ebp, [esp+8]
10625
                and     ecx, ebp
10626
                ror     ebp, 2
10627
                or      ecx, edi
10628
                mov     edi, ebp
10629
                rol     edi, 0Ch
10630
                add     ecx, ebx
10631
                xor     ebp, edi
10632
                add     ebx, [esp+14h]
10633
                rol     edi, 9
10634
                xor     ebp, edi
10635
                mov     [esp+14h], ebx
10636
                add     ecx, ebp
10637
                mov     [esp+4], ecx
10638
                mov     ecx, [esp+18h]
10639
                mov     ebp, ebx
10640
                mov     edi, ebx
10641
                ror     ebp, 6
10642
                rol     edi, 7
10643
                xor     edi, ebp
10644
                ror     ebp, 5
10645
                xor     edi, ebp
10646
                mov     ebp, ecx
10647
                xor     ebp, edx
10648
                and     ebp, ebx
10649
                lea     eax, [edi+eax+14292967h]
10650
                mov     edi, [esp+8]
10651
                xor     ebp, edx
10652
                add     eax, [esi+7Ch]
10653
                add     eax, ebp
10654
                mov     ebp, [esp+0Ch]
10655
                mov     ebx, edi
10656
                and     edi, ebp
10657
                or      ebx, ebp
10658
                mov     ebp, [esp+4]
10659
                and     ebx, ebp
10660
                ror     ebp, 2
10661
                or      ebx, edi
10662
                mov     edi, ebp
10663
                rol     edi, 0Ch
10664
                add     ebx, eax
10665
                xor     ebp, edi
10666
                add     eax, [esp+10h]
10667
                rol     edi, 9
10668
                xor     ebp, edi
10669
                mov     [esp+10h], eax
10670
                add     ebx, ebp
10671
                mov     [esp], ebx
10672
                mov     ebx, [esp+14h]
10673
                mov     ebp, eax
10674
                mov     edi, eax
10675
                ror     ebp, 6
10676
                rol     edi, 7
10677
                xor     edi, ebp
10678
                ror     ebp, 5
10679
                xor     edi, ebp
10680
                mov     ebp, ebx
10681
                xor     ebp, ecx
10682
                and     ebp, eax
10683
                lea     edx, [edi+edx+27B70A85h]
10684
                mov     edi, [esp+4]
10685
                xor     ebp, ecx
10686
                add     edx, [esi+80h]
10687
                add     edx, ebp
10688
                mov     ebp, [esp+8]
10689
                mov     eax, edi
10690
                and     edi, ebp
10691
                or      eax, ebp
10692
                mov     ebp, [esp]
10693
                and     eax, ebp
10694
                ror     ebp, 2
10695
                or      eax, edi
10696
                mov     edi, ebp
10697
                rol     edi, 0Ch
10698
                add     eax, edx
10699
                xor     ebp, edi
10700
                add     edx, [esp+0Ch]
10701
                rol     edi, 9
10702
                xor     ebp, edi
10703
                mov     [esp+0Ch], edx
10704
                add     eax, ebp
10705
                mov     [esp+1Ch], eax
10706
                mov     eax, [esp+10h]
10707
                mov     ebp, edx
10708
                mov     edi, edx
10709
                ror     ebp, 6
10710
                rol     edi, 7
10711
                xor     edi, ebp
10712
                ror     ebp, 5
10713
                xor     edi, ebp
10714
                mov     ebp, eax
10715
                xor     ebp, ebx
10716
                and     ebp, edx
10717
                lea     ecx, [edi+ecx+2E1B2138h]
10718
                mov     edi, [esp]
10719
                xor     ebp, ebx
10720
                add     ecx, [esi+84h]
10721
                add     ecx, ebp
10722
                mov     ebp, [esp+4]
10723
                mov     edx, edi
10724
                and     edi, ebp
10725
                or      edx, ebp
10726
                mov     ebp, [esp+1Ch]
10727
                and     edx, ebp
10728
                ror     ebp, 2
10729
                or      edx, edi
10730
                mov     edi, ebp
10731
                rol     edi, 0Ch
10732
                add     edx, ecx
10733
                xor     ebp, edi
10734
                add     ecx, [esp+8]
10735
                rol     edi, 9
10736
                xor     ebp, edi
10737
                mov     [esp+8], ecx
10738
                add     edx, ebp
10739
                mov     [esp+18h], edx
10740
                mov     edx, [esp+0Ch]
10741
                mov     ebp, ecx
10742
                mov     edi, ecx
10743
                ror     ebp, 6
10744
                rol     edi, 7
10745
                xor     edi, ebp
10746
                ror     ebp, 5
10747
                xor     edi, ebp
10748
                mov     ebp, edx
10749
                xor     ebp, eax
10750
                and     ebp, ecx
10751
                lea     ebx, [edi+ebx+4D2C6DFCh]
10752
                mov     edi, [esp+1Ch]
10753
                xor     ebp, eax
10754
                add     ebx, [esi+88h]
10755
                add     ebx, ebp
10756
                mov     ebp, [esp]
10757
                mov     ecx, edi
10758
                and     edi, ebp
10759
                or      ecx, ebp
10760
                mov     ebp, [esp+18h]
10761
                and     ecx, ebp
10762
                ror     ebp, 2
10763
                or      ecx, edi
10764
                mov     edi, ebp
10765
                rol     edi, 0Ch
10766
                add     ecx, ebx
10767
                xor     ebp, edi
10768
                add     ebx, [esp+4]
10769
                rol     edi, 9
10770
                xor     ebp, edi
10771
                mov     [esp+4], ebx
10772
                add     ecx, ebp
10773
                mov     [esp+14h], ecx
10774
                mov     ecx, [esp+8]
10775
                mov     ebp, ebx
10776
                mov     edi, ebx
10777
                ror     ebp, 6
10778
                rol     edi, 7
10779
                xor     edi, ebp
10780
                ror     ebp, 5
10781
                xor     edi, ebp
10782
                mov     ebp, ecx
10783
                xor     ebp, edx
10784
                and     ebp, ebx
10785
                lea     eax, [edi+eax+53380D13h]
10786
                mov     edi, [esp+18h]
10787
                xor     ebp, edx
10788
                add     eax, [esi+8Ch]
10789
                add     eax, ebp
10790
                mov     ebp, [esp+1Ch]
10791
                mov     ebx, edi
10792
                and     edi, ebp
10793
                or      ebx, ebp
10794
                mov     ebp, [esp+14h]
10795
                and     ebx, ebp
10796
                ror     ebp, 2
10797
                or      ebx, edi
10798
                mov     edi, ebp
10799
                rol     edi, 0Ch
10800
                add     ebx, eax
10801
                xor     ebp, edi
10802
                add     eax, [esp]
10803
                rol     edi, 9
10804
                xor     ebp, edi
10805
                mov     [esp], eax
10806
                add     ebx, ebp
10807
                mov     [esp+10h], ebx
10808
                mov     ebx, [esp+4]
10809
                mov     ebp, eax
10810
                mov     edi, eax
10811
                ror     ebp, 6
10812
                rol     edi, 7
10813
                xor     edi, ebp
10814
                ror     ebp, 5
10815
                xor     edi, ebp
10816
                mov     ebp, ebx
10817
                xor     ebp, ecx
10818
                and     ebp, eax
10819
                lea     edx, [edi+edx+650A7354h]
10820
                mov     edi, [esp+14h]
10821
                xor     ebp, ecx
10822
                add     edx, [esi+90h]
10823
                add     edx, ebp
10824
                mov     ebp, [esp+18h]
10825
                mov     eax, edi
10826
                and     edi, ebp
10827
                or      eax, ebp
10828
                mov     ebp, [esp+10h]
10829
                and     eax, ebp
10830
                ror     ebp, 2
10831
                or      eax, edi
10832
                mov     edi, ebp
10833
                rol     edi, 0Ch
10834
                add     eax, edx
10835
                xor     ebp, edi
10836
                add     edx, [esp+1Ch]
10837
                rol     edi, 9
10838
                xor     ebp, edi
10839
                mov     [esp+1Ch], edx
10840
                add     eax, ebp
10841
                mov     [esp+0Ch], eax
10842
                mov     eax, [esp]
10843
                mov     ebp, edx
10844
                mov     edi, edx
10845
                ror     ebp, 6
10846
                rol     edi, 7
10847
                xor     edi, ebp
10848
                ror     ebp, 5
10849
                xor     edi, ebp
10850
                mov     ebp, eax
10851
                xor     ebp, ebx
10852
                and     ebp, edx
10853
                lea     ecx, [edi+ecx+766A0ABBh]
10854
                mov     edi, [esp+10h]
10855
                xor     ebp, ebx
10856
                add     ecx, [esi+94h]
10857
                add     ecx, ebp
10858
                mov     ebp, [esp+14h]
10859
                mov     edx, edi
10860
                and     edi, ebp
10861
                or      edx, ebp
10862
                mov     ebp, [esp+0Ch]
10863
                and     edx, ebp
10864
                ror     ebp, 2
10865
                or      edx, edi
10866
                mov     edi, ebp
10867
                rol     edi, 0Ch
10868
                add     edx, ecx
10869
                xor     ebp, edi
10870
                add     ecx, [esp+18h]
10871
                rol     edi, 9
10872
                xor     ebp, edi
10873
                mov     [esp+18h], ecx
10874
                add     edx, ebp
10875
                mov     [esp+8], edx
10876
                mov     edx, [esp+1Ch]
10877
                mov     ebp, ecx
10878
                mov     edi, ecx
10879
                ror     ebp, 6
10880
                rol     edi, 7
10881
                xor     edi, ebp
10882
                ror     ebp, 5
10883
                xor     edi, ebp
10884
                mov     ebp, edx
10885
                xor     ebp, eax
10886
                and     ebp, ecx
10887
                lea     ebx, [edi+ebx-7E3D36D2h]
10888
                mov     edi, [esp+0Ch]
10889
                xor     ebp, eax
10890
                add     ebx, [esi+98h]
10891
                add     ebx, ebp
10892
                mov     ebp, [esp+10h]
10893
                mov     ecx, edi
10894
                and     edi, ebp
10895
                or      ecx, ebp
10896
                mov     ebp, [esp+8]
10897
                and     ecx, ebp
10898
                ror     ebp, 2
10899
                or      ecx, edi
10900
                mov     edi, ebp
10901
                rol     edi, 0Ch
10902
                add     ecx, ebx
10903
                xor     ebp, edi
10904
                add     ebx, [esp+14h]
10905
                rol     edi, 9
10906
                xor     ebp, edi
10907
                mov     [esp+14h], ebx
10908
                add     ecx, ebp
10909
                mov     [esp+4], ecx
10910
                mov     ecx, [esp+18h]
10911
                mov     ebp, ebx
10912
                mov     edi, ebx
10913
                ror     ebp, 6
10914
                rol     edi, 7
10915
                xor     edi, ebp
10916
                ror     ebp, 5
10917
                xor     edi, ebp
10918
                mov     ebp, ecx
10919
                xor     ebp, edx
10920
                and     ebp, ebx
10921
                lea     eax, [edi+eax-6D8DD37Bh]
10922
                mov     edi, [esp+8]
10923
                xor     ebp, edx
10924
                add     eax, [esi+9Ch]
10925
                add     eax, ebp
10926
                mov     ebp, [esp+0Ch]
10927
                mov     ebx, edi
10928
                and     edi, ebp
10929
                or      ebx, ebp
10930
                mov     ebp, [esp+4]
10931
                and     ebx, ebp
10932
                ror     ebp, 2
10933
                or      ebx, edi
10934
                mov     edi, ebp
10935
                rol     edi, 0Ch
10936
                add     ebx, eax
10937
                xor     ebp, edi
10938
                add     eax, [esp+10h]
10939
                rol     edi, 9
10940
                xor     ebp, edi
10941
                mov     [esp+10h], eax
10942
                add     ebx, ebp
10943
                mov     [esp], ebx
10944
                mov     ebx, [esp+14h]
10945
                mov     ebp, eax
10946
                mov     edi, eax
10947
                ror     ebp, 6
10948
                rol     edi, 7
10949
                xor     edi, ebp
10950
                ror     ebp, 5
10951
                xor     edi, ebp
10952
                mov     ebp, ebx
10953
                xor     ebp, ecx
10954
                and     ebp, eax
10955
                lea     edx, [edi+edx-5D40175Fh]
10956
                mov     edi, [esp+4]
10957
                xor     ebp, ecx
10958
                add     edx, [esi+0A0h]
10959
                add     edx, ebp
10960
                mov     ebp, [esp+8]
10961
                mov     eax, edi
10962
                and     edi, ebp
10963
                or      eax, ebp
10964
                mov     ebp, [esp]
10965
                and     eax, ebp
10966
                ror     ebp, 2
10967
                or      eax, edi
10968
                mov     edi, ebp
10969
                rol     edi, 0Ch
10970
                add     eax, edx
10971
                xor     ebp, edi
10972
                add     edx, [esp+0Ch]
10973
                rol     edi, 9
10974
                xor     ebp, edi
10975
                mov     [esp+0Ch], edx
10976
                add     eax, ebp
10977
                mov     [esp+1Ch], eax
10978
                mov     eax, [esp+10h]
10979
                mov     ebp, edx
10980
                mov     edi, edx
10981
                ror     ebp, 6
10982
                rol     edi, 7
10983
                xor     edi, ebp
10984
                ror     ebp, 5
10985
                xor     edi, ebp
10986
                mov     ebp, eax
10987
                xor     ebp, ebx
10988
                and     ebp, edx
10989
                lea     ecx, [edi+ecx-57E599B5h]
10990
                mov     edi, [esp]
10991
                xor     ebp, ebx
10992
                add     ecx, [esi+0A4h]
10993
                add     ecx, ebp
10994
                mov     ebp, [esp+4]
10995
                mov     edx, edi
10996
                and     edi, ebp
10997
                or      edx, ebp
10998
                mov     ebp, [esp+1Ch]
10999
                and     edx, ebp
11000
                ror     ebp, 2
11001
                or      edx, edi
11002
                mov     edi, ebp
11003
                rol     edi, 0Ch
11004
                add     edx, ecx
11005
                xor     ebp, edi
11006
                add     ecx, [esp+8]
11007
                rol     edi, 9
11008
                xor     ebp, edi
11009
                mov     [esp+8], ecx
11010
                add     edx, ebp
11011
                mov     [esp+18h], edx
11012
                mov     edx, [esp+0Ch]
11013
                mov     ebp, ecx
11014
                mov     edi, ecx
11015
                ror     ebp, 6
11016
                rol     edi, 7
11017
                xor     edi, ebp
11018
                ror     ebp, 5
11019
                xor     edi, ebp
11020
                mov     ebp, edx
11021
                xor     ebp, eax
11022
                and     ebp, ecx
11023
                lea     ebx, [edi+ebx-3DB47490h]
11024
                mov     edi, [esp+1Ch]
11025
                xor     ebp, eax
11026
                add     ebx, [esi+0A8h]
11027
                add     ebx, ebp
11028
                mov     ebp, [esp]
11029
                mov     ecx, edi
11030
                and     edi, ebp
11031
                or      ecx, ebp
11032
                mov     ebp, [esp+18h]
11033
                and     ecx, ebp
11034
                ror     ebp, 2
11035
                or      ecx, edi
11036
                mov     edi, ebp
11037
                rol     edi, 0Ch
11038
                add     ecx, ebx
11039
                xor     ebp, edi
11040
                add     ebx, [esp+4]
11041
                rol     edi, 9
11042
                xor     ebp, edi
11043
                mov     [esp+4], ebx
11044
                add     ecx, ebp
11045
                mov     [esp+14h], ecx
11046
                mov     ecx, [esp+8]
11047
                mov     ebp, ebx
11048
                mov     edi, ebx
11049
                ror     ebp, 6
11050
                rol     edi, 7
11051
                xor     edi, ebp
11052
                ror     ebp, 5
11053
                xor     edi, ebp
11054
                mov     ebp, ecx
11055
                xor     ebp, edx
11056
                and     ebp, ebx
11057
                lea     eax, [edi+eax-3893AE5Dh]
11058
                mov     edi, [esp+18h]
11059
                xor     ebp, edx
11060
                add     eax, [esi+0ACh]
11061
                add     eax, ebp
11062
                mov     ebp, [esp+1Ch]
11063
                mov     ebx, edi
11064
                and     edi, ebp
11065
                or      ebx, ebp
11066
                mov     ebp, [esp+14h]
11067
                and     ebx, ebp
11068
                ror     ebp, 2
11069
                or      ebx, edi
11070
                mov     edi, ebp
11071
                rol     edi, 0Ch
11072
                add     ebx, eax
11073
                xor     ebp, edi
11074
                add     eax, [esp]
11075
                rol     edi, 9
11076
                xor     ebp, edi
11077
                mov     [esp], eax
11078
                add     ebx, ebp
11079
                mov     [esp+10h], ebx
11080
                mov     ebx, [esp+4]
11081
                mov     ebp, eax
11082
                mov     edi, eax
11083
                ror     ebp, 6
11084
                rol     edi, 7
11085
                xor     edi, ebp
11086
                ror     ebp, 5
11087
                xor     edi, ebp
11088
                mov     ebp, ebx
11089
                xor     ebp, ecx
11090
                and     ebp, eax
11091
                lea     edx, [edi+edx-2E6D17E7h]
11092
                mov     edi, [esp+14h]
11093
                xor     ebp, ecx
11094
                add     edx, [esi+0B0h]
11095
                add     edx, ebp
11096
                mov     ebp, [esp+18h]
11097
                mov     eax, edi
11098
                and     edi, ebp
11099
                or      eax, ebp
11100
                mov     ebp, [esp+10h]
11101
                and     eax, ebp
11102
                ror     ebp, 2
11103
                or      eax, edi
11104
                mov     edi, ebp
11105
                rol     edi, 0Ch
11106
                add     eax, edx
11107
                xor     ebp, edi
11108
                add     edx, [esp+1Ch]
11109
                rol     edi, 9
11110
                xor     ebp, edi
11111
                mov     [esp+1Ch], edx
11112
                add     eax, ebp
11113
                mov     [esp+0Ch], eax
11114
                mov     eax, [esp]
11115
                mov     ebp, edx
11116
                mov     edi, edx
11117
                ror     ebp, 6
11118
                rol     edi, 7
11119
                xor     edi, ebp
11120
                ror     ebp, 5
11121
                xor     edi, ebp
11122
                mov     ebp, eax
11123
                xor     ebp, ebx
11124
                and     ebp, edx
11125
                lea     ecx, [edi+ecx-2966F9DCh]
11126
                mov     edi, [esp+10h]
11127
                xor     ebp, ebx
11128
                add     ecx, [esi+0B4h]
11129
                add     ecx, ebp
11130
                mov     ebp, [esp+14h]
11131
                mov     edx, edi
11132
                and     edi, ebp
11133
                or      edx, ebp
11134
                mov     ebp, [esp+0Ch]
11135
                and     edx, ebp
11136
                ror     ebp, 2
11137
                or      edx, edi
11138
                mov     edi, ebp
11139
                rol     edi, 0Ch
11140
                add     edx, ecx
11141
                xor     ebp, edi
11142
                add     ecx, [esp+18h]
11143
                rol     edi, 9
11144
                xor     ebp, edi
11145
                mov     [esp+18h], ecx
11146
                add     edx, ebp
11147
                mov     [esp+8], edx
11148
                mov     edx, [esp+1Ch]
11149
                mov     ebp, ecx
11150
                mov     edi, ecx
11151
                ror     ebp, 6
11152
                rol     edi, 7
11153
                xor     edi, ebp
11154
                ror     ebp, 5
11155
                xor     edi, ebp
11156
                mov     ebp, edx
11157
                xor     ebp, eax
11158
                and     ebp, ecx
11159
                lea     ebx, [edi+ebx-0BF1CA7Bh]
11160
                mov     edi, [esp+0Ch]
11161
                xor     ebp, eax
11162
                add     ebx, [esi+0B8h]
11163
                add     ebx, ebp
11164
                mov     ebp, [esp+10h]
11165
                mov     ecx, edi
11166
                and     edi, ebp
11167
                or      ecx, ebp
11168
                mov     ebp, [esp+8]
11169
                and     ecx, ebp
11170
                ror     ebp, 2
11171
                or      ecx, edi
11172
                mov     edi, ebp
11173
                rol     edi, 0Ch
11174
                add     ecx, ebx
11175
                xor     ebp, edi
11176
                add     ebx, [esp+14h]
11177
                rol     edi, 9
11178
                xor     ebp, edi
11179
                mov     [esp+14h], ebx
11180
                add     ecx, ebp
11181
                mov     [esp+4], ecx
11182
                mov     ecx, [esp+18h]
11183
                mov     ebp, ebx
11184
                mov     edi, ebx
11185
                ror     ebp, 6
11186
                rol     edi, 7
11187
                xor     edi, ebp
11188
                ror     ebp, 5
11189
                xor     edi, ebp
11190
                mov     ebp, ecx
11191
                xor     ebp, edx
11192
                and     ebp, ebx
11193
                lea     eax, [edi+eax+106AA070h]
11194
                mov     edi, [esp+8]
11195
                xor     ebp, edx
11196
                add     eax, [esi+0BCh]
11197
                add     eax, ebp
11198
                mov     ebp, [esp+0Ch]
11199
                mov     ebx, edi
11200
                and     edi, ebp
11201
                or      ebx, ebp
11202
                mov     ebp, [esp+4]
11203
                and     ebx, ebp
11204
                ror     ebp, 2
11205
                or      ebx, edi
11206
                mov     edi, ebp
11207
                rol     edi, 0Ch
11208
                add     ebx, eax
11209
                xor     ebp, edi
11210
                add     eax, [esp+10h]
11211
                rol     edi, 9
11212
                xor     ebp, edi
11213
                mov     [esp+10h], eax
11214
                add     ebx, ebp
11215
                mov     [esp], ebx
11216
                mov     ebx, [esp+14h]
11217
                mov     ebp, eax
11218
                mov     edi, eax
11219
                ror     ebp, 6
11220
                rol     edi, 7
11221
                xor     edi, ebp
11222
                ror     ebp, 5
11223
                xor     edi, ebp
11224
                mov     ebp, ebx
11225
                xor     ebp, ecx
11226
                and     ebp, eax
11227
                lea     edx, [edi+edx+19A4C116h]
11228
                mov     edi, [esp+4]
11229
                xor     ebp, ecx
11230
                add     edx, [esi+0C0h]
11231
                add     edx, ebp
11232
                mov     ebp, [esp+8]
11233
                mov     eax, edi
11234
                and     edi, ebp
11235
                or      eax, ebp
11236
                mov     ebp, [esp]
11237
                and     eax, ebp
11238
                ror     ebp, 2
11239
                or      eax, edi
11240
                mov     edi, ebp
11241
                rol     edi, 0Ch
11242
                add     eax, edx
11243
                xor     ebp, edi
11244
                add     edx, [esp+0Ch]
11245
                rol     edi, 9
11246
                xor     ebp, edi
11247
                mov     [esp+0Ch], edx
11248
                add     eax, ebp
11249
                mov     [esp+1Ch], eax
11250
                mov     eax, [esp+10h]
11251
                mov     ebp, edx
11252
                mov     edi, edx
11253
                ror     ebp, 6
11254
                rol     edi, 7
11255
                xor     edi, ebp
11256
                ror     ebp, 5
11257
                xor     edi, ebp
11258
                mov     ebp, eax
11259
                xor     ebp, ebx
11260
                and     ebp, edx
11261
                lea     ecx, [edi+ecx+1E376C08h]
11262
                mov     edi, [esp]
11263
                xor     ebp, ebx
11264
                add     ecx, [esi+0C4h]
11265
                add     ecx, ebp
11266
                mov     ebp, [esp+4]
11267
                mov     edx, edi
11268
                and     edi, ebp
11269
                or      edx, ebp
11270
                mov     ebp, [esp+1Ch]
11271
                and     edx, ebp
11272
                ror     ebp, 2
11273
                or      edx, edi
11274
                mov     edi, ebp
11275
                rol     edi, 0Ch
11276
                add     edx, ecx
11277
                xor     ebp, edi
11278
                add     ecx, [esp+8]
11279
                rol     edi, 9
11280
                xor     ebp, edi
11281
                mov     [esp+8], ecx
11282
                add     edx, ebp
11283
                mov     [esp+18h], edx
11284
                mov     edx, [esp+0Ch]
11285
                mov     ebp, ecx
11286
                mov     edi, ecx
11287
                ror     ebp, 6
11288
                rol     edi, 7
11289
                xor     edi, ebp
11290
                ror     ebp, 5
11291
                xor     edi, ebp
11292
                mov     ebp, edx
11293
                xor     ebp, eax
11294
                and     ebp, ecx
11295
                lea     ebx, [edi+ebx+2748774Ch]
11296
                mov     edi, [esp+1Ch]
11297
                xor     ebp, eax
11298
                add     ebx, [esi+0C8h]
11299
                add     ebx, ebp
11300
                mov     ebp, [esp]
11301
                mov     ecx, edi
11302
                and     edi, ebp
11303
                or      ecx, ebp
11304
                mov     ebp, [esp+18h]
11305
                and     ecx, ebp
11306
                ror     ebp, 2
11307
                or      ecx, edi
11308
                mov     edi, ebp
11309
                rol     edi, 0Ch
11310
                add     ecx, ebx
11311
                xor     ebp, edi
11312
                add     ebx, [esp+4]
11313
                rol     edi, 9
11314
                xor     ebp, edi
11315
                mov     [esp+4], ebx
11316
                add     ecx, ebp
11317
                mov     [esp+14h], ecx
11318
                mov     ecx, [esp+8]
11319
                mov     ebp, ebx
11320
                mov     edi, ebx
11321
                ror     ebp, 6
11322
                rol     edi, 7
11323
                xor     edi, ebp
11324
                ror     ebp, 5
11325
                xor     edi, ebp
11326
                mov     ebp, ecx
11327
                xor     ebp, edx
11328
                and     ebp, ebx
11329
                lea     eax, [edi+eax+34B0BCB5h]
11330
                mov     edi, [esp+18h]
11331
                xor     ebp, edx
11332
                add     eax, [esi+0CCh]
11333
                add     eax, ebp
11334
                mov     ebp, [esp+1Ch]
11335
                mov     ebx, edi
11336
                and     edi, ebp
11337
                or      ebx, ebp
11338
                mov     ebp, [esp+14h]
11339
                and     ebx, ebp
11340
                ror     ebp, 2
11341
                or      ebx, edi
11342
                mov     edi, ebp
11343
                rol     edi, 0Ch
11344
                add     ebx, eax
11345
                xor     ebp, edi
11346
                add     eax, [esp]
11347
                rol     edi, 9
11348
                xor     ebp, edi
11349
                mov     [esp], eax
11350
                add     ebx, ebp
11351
                mov     [esp+10h], ebx
11352
                mov     ebx, [esp+4]
11353
                mov     ebp, eax
11354
                mov     edi, eax
11355
                ror     ebp, 6
11356
                rol     edi, 7
11357
                xor     edi, ebp
11358
                ror     ebp, 5
11359
                xor     edi, ebp
11360
                mov     ebp, ebx
11361
                xor     ebp, ecx
11362
                and     ebp, eax
11363
                lea     edx, [edi+edx+391C0CB3h]
11364
                mov     edi, [esp+14h]
11365
                xor     ebp, ecx
11366
                add     edx, [esi+0D0h]
11367
                add     edx, ebp
11368
                mov     ebp, [esp+18h]
11369
                mov     eax, edi
11370
                and     edi, ebp
11371
                or      eax, ebp
11372
                mov     ebp, [esp+10h]
11373
                and     eax, ebp
11374
                ror     ebp, 2
11375
                or      eax, edi
11376
                mov     edi, ebp
11377
                rol     edi, 0Ch
11378
                add     eax, edx
11379
                xor     ebp, edi
11380
                add     edx, [esp+1Ch]
11381
                rol     edi, 9
11382
                xor     ebp, edi
11383
                mov     [esp+1Ch], edx
11384
                add     eax, ebp
11385
                mov     [esp+0Ch], eax
11386
                mov     eax, [esp]
11387
                mov     ebp, edx
11388
                mov     edi, edx
11389
                ror     ebp, 6
11390
                rol     edi, 7
11391
                xor     edi, ebp
11392
                ror     ebp, 5
11393
                xor     edi, ebp
11394
                mov     ebp, eax
11395
                xor     ebp, ebx
11396
                and     ebp, edx
11397
                lea     ecx, [edi+ecx+4ED8AA4Ah]
11398
                mov     edi, [esp+10h]
11399
                xor     ebp, ebx
11400
                add     ecx, [esi+0D4h]
11401
                add     ecx, ebp
11402
                mov     ebp, [esp+14h]
11403
                mov     edx, edi
11404
                and     edi, ebp
11405
                or      edx, ebp
11406
                mov     ebp, [esp+0Ch]
11407
                and     edx, ebp
11408
                ror     ebp, 2
11409
                or      edx, edi
11410
                mov     edi, ebp
11411
                rol     edi, 0Ch
11412
                add     edx, ecx
11413
                xor     ebp, edi
11414
                add     ecx, [esp+18h]
11415
                rol     edi, 9
11416
                xor     ebp, edi
11417
                mov     [esp+18h], ecx
11418
                add     edx, ebp
11419
                mov     [esp+8], edx
11420
                mov     edx, [esp+1Ch]
11421
                mov     ebp, ecx
11422
                mov     edi, ecx
11423
                ror     ebp, 6
11424
                rol     edi, 7
11425
                xor     edi, ebp
11426
                ror     ebp, 5
11427
                xor     edi, ebp
11428
                mov     ebp, edx
11429
                xor     ebp, eax
11430
                and     ebp, ecx
11431
                lea     ebx, [edi+ebx+5B9CCA4Fh]
11432
                mov     edi, [esp+0Ch]
11433
                xor     ebp, eax
11434
                add     ebx, [esi+0D8h]
11435
                add     ebx, ebp
11436
                mov     ebp, [esp+10h]
11437
                mov     ecx, edi
11438
                and     edi, ebp
11439
                or      ecx, ebp
11440
                mov     ebp, [esp+8]
11441
                and     ecx, ebp
11442
                ror     ebp, 2
11443
                or      ecx, edi
11444
                mov     edi, ebp
11445
                rol     edi, 0Ch
11446
                add     ecx, ebx
11447
                xor     ebp, edi
11448
                add     ebx, [esp+14h]
11449
                rol     edi, 9
11450
                xor     ebp, edi
11451
                mov     [esp+14h], ebx
11452
                add     ecx, ebp
11453
                mov     [esp+4], ecx
11454
                mov     ecx, [esp+18h]
11455
                mov     ebp, ebx
11456
                mov     edi, ebx
11457
                ror     ebp, 6
11458
                rol     edi, 7
11459
                xor     edi, ebp
11460
                ror     ebp, 5
11461
                xor     edi, ebp
11462
                mov     ebp, ecx
11463
                xor     ebp, edx
11464
                and     ebp, ebx
11465
                lea     eax, [edi+eax+682E6FF3h]
11466
                mov     edi, [esp+8]
11467
                xor     ebp, edx
11468
                add     eax, [esi+0DCh]
11469
                add     eax, ebp
11470
                mov     ebp, [esp+0Ch]
11471
                mov     ebx, edi
11472
                and     edi, ebp
11473
                or      ebx, ebp
11474
                mov     ebp, [esp+4]
11475
                and     ebx, ebp
11476
                ror     ebp, 2
11477
                or      ebx, edi
11478
                mov     edi, ebp
11479
                rol     edi, 0Ch
11480
                add     ebx, eax
11481
                xor     ebp, edi
11482
                add     eax, [esp+10h]
11483
                rol     edi, 9
11484
                xor     ebp, edi
11485
                mov     [esp+10h], eax
11486
                add     ebx, ebp
11487
                mov     [esp], ebx
11488
                mov     ebx, [esp+14h]
11489
                mov     ebp, eax
11490
                mov     edi, eax
11491
                ror     ebp, 6
11492
                rol     edi, 7
11493
                xor     edi, ebp
11494
                ror     ebp, 5
11495
                xor     edi, ebp
11496
                mov     ebp, ebx
11497
                xor     ebp, ecx
11498
                and     ebp, eax
11499
                lea     edx, [edi+edx+748F82EEh]
11500
                mov     edi, [esp+4]
11501
                xor     ebp, ecx
11502
                add     edx, [esi+0E0h]
11503
                add     edx, ebp
11504
                mov     ebp, [esp+8]
11505
                mov     eax, edi
11506
                and     edi, ebp
11507
                or      eax, ebp
11508
                mov     ebp, [esp]
11509
                and     eax, ebp
11510
                ror     ebp, 2
11511
                or      eax, edi
11512
                mov     edi, ebp
11513
                rol     edi, 0Ch
11514
                add     eax, edx
11515
                xor     ebp, edi
11516
                add     edx, [esp+0Ch]
11517
                rol     edi, 9
11518
                xor     ebp, edi
11519
                mov     [esp+0Ch], edx
11520
                add     eax, ebp
11521
                mov     [esp+1Ch], eax
11522
                mov     eax, [esp+10h]
11523
                mov     ebp, edx
11524
                mov     edi, edx
11525
                ror     ebp, 6
11526
                rol     edi, 7
11527
                xor     edi, ebp
11528
                ror     ebp, 5
11529
                xor     edi, ebp
11530
                mov     ebp, eax
11531
                xor     ebp, ebx
11532
                and     ebp, edx
11533
                lea     ecx, [edi+ecx+78A5636Fh]
11534
                mov     edi, [esp]
11535
                xor     ebp, ebx
11536
                add     ecx, [esi+0E4h]
11537
                add     ecx, ebp
11538
                mov     ebp, [esp+4]
11539
                mov     edx, edi
11540
                and     edi, ebp
11541
                or      edx, ebp
11542
                mov     ebp, [esp+1Ch]
11543
                and     edx, ebp
11544
                ror     ebp, 2
11545
                or      edx, edi
11546
                mov     edi, ebp
11547
                rol     edi, 0Ch
11548
                add     edx, ecx
11549
                xor     ebp, edi
11550
                add     ecx, [esp+8]
11551
                rol     edi, 9
11552
                xor     ebp, edi
11553
                mov     [esp+8], ecx
11554
                add     edx, ebp
11555
                mov     [esp+18h], edx
11556
                mov     edx, [esp+0Ch]
11557
                mov     ebp, ecx
11558
                mov     edi, ecx
11559
                ror     ebp, 6
11560
                rol     edi, 7
11561
                xor     edi, ebp
11562
                ror     ebp, 5
11563
                xor     edi, ebp
11564
                mov     ebp, edx
11565
                xor     ebp, eax
11566
                and     ebp, ecx
11567
                lea     ebx, [edi+ebx-7B3787ECh]
11568
                mov     edi, [esp+1Ch]
11569
                xor     ebp, eax
11570
                add     ebx, [esi+0E8h]
11571
                add     ebx, ebp
11572
                mov     ebp, [esp]
11573
                mov     ecx, edi
11574
                and     edi, ebp
11575
                or      ecx, ebp
11576
                mov     ebp, [esp+18h]
11577
                and     ecx, ebp
11578
                ror     ebp, 2
11579
                or      ecx, edi
11580
                mov     edi, ebp
11581
                rol     edi, 0Ch
11582
                add     ecx, ebx
11583
                xor     ebp, edi
11584
                add     ebx, [esp+4]
11585
                rol     edi, 9
11586
                xor     ebp, edi
11587
                mov     [esp+4], ebx
11588
                add     ecx, ebp
11589
                mov     [esp+14h], ecx
11590
                mov     ecx, [esp+8]
11591
                mov     ebp, ebx
11592
                mov     edi, ebx
11593
                ror     ebp, 6
11594
                rol     edi, 7
11595
                xor     edi, ebp
11596
                ror     ebp, 5
11597
                xor     edi, ebp
11598
                mov     ebp, ecx
11599
                xor     ebp, edx
11600
                and     ebp, ebx
11601
                lea     eax, [edi+eax-7338FDF8h]
11602
                mov     edi, [esp+18h]
11603
                xor     ebp, edx
11604
                add     eax, [esi+0ECh]
11605
                add     eax, ebp
11606
                mov     ebp, [esp+1Ch]
11607
                mov     ebx, edi
11608
                and     edi, ebp
11609
                or      ebx, ebp
11610
                mov     ebp, [esp+14h]
11611
                and     ebx, ebp
11612
                ror     ebp, 2
11613
                or      ebx, edi
11614
                mov     edi, ebp
11615
                rol     edi, 0Ch
11616
                add     ebx, eax
11617
                xor     ebp, edi
11618
                add     eax, [esp]
11619
                rol     edi, 9
11620
                xor     ebp, edi
11621
                mov     [esp], eax
11622
                add     ebx, ebp
11623
                mov     [esp+10h], ebx
11624
                mov     ebx, [esp+4]
11625
                mov     ebp, eax
11626
                mov     edi, eax
11627
                ror     ebp, 6
11628
                rol     edi, 7
11629
                xor     edi, ebp
11630
                ror     ebp, 5
11631
                xor     edi, ebp
11632
                mov     ebp, ebx
11633
                xor     ebp, ecx
11634
                and     ebp, eax
11635
                lea     edx, [edi+edx-6F410006h]
11636
                mov     edi, [esp+14h]
11637
                xor     ebp, ecx
11638
                add     edx, [esi+0F0h]
11639
                add     edx, ebp
11640
                mov     ebp, [esp+18h]
11641
                mov     eax, edi
11642
                and     edi, ebp
11643
                or      eax, ebp
11644
                mov     ebp, [esp+10h]
11645
                and     eax, ebp
11646
                ror     ebp, 2
11647
                or      eax, edi
11648
                mov     edi, ebp
11649
                rol     edi, 0Ch
11650
                add     eax, edx
11651
                xor     ebp, edi
11652
                add     edx, [esp+1Ch]
11653
                rol     edi, 9
11654
                xor     ebp, edi
11655
                mov     [esp+1Ch], edx
11656
                add     eax, ebp
11657
                mov     [esp+0Ch], eax
11658
                mov     eax, [esp]
11659
                mov     ebp, edx
11660
                mov     edi, edx
11661
                ror     ebp, 6
11662
                rol     edi, 7
11663
                xor     edi, ebp
11664
                ror     ebp, 5
11665
                xor     edi, ebp
11666
                mov     ebp, eax
11667
                xor     ebp, ebx
11668
                and     ebp, edx
11669
                lea     ecx, [edi+ecx-5BAF9315h]
11670
                mov     edi, [esp+10h]
11671
                xor     ebp, ebx
11672
                add     ecx, [esi+0F4h]
11673
                add     ecx, ebp
11674
                mov     ebp, [esp+14h]
11675
                mov     edx, edi
11676
                and     edi, ebp
11677
                or      edx, ebp
11678
                mov     ebp, [esp+0Ch]
11679
                and     edx, ebp
11680
                ror     ebp, 2
11681
                or      edx, edi
11682
                mov     edi, ebp
11683
                rol     edi, 0Ch
11684
                add     edx, ecx
11685
                xor     ebp, edi
11686
                add     ecx, [esp+18h]
11687
                rol     edi, 9
11688
                xor     ebp, edi
11689
                mov     [esp+18h], ecx
11690
                add     edx, ebp
11691
                mov     [esp+8], edx
11692
                mov     edx, [esp+1Ch]
11693
                mov     ebp, ecx
11694
                mov     edi, ecx
11695
                ror     ebp, 6
11696
                rol     edi, 7
11697
                xor     edi, ebp
11698
                ror     ebp, 5
11699
                xor     edi, ebp
11700
                mov     ebp, edx
11701
                xor     ebp, eax
11702
                and     ebp, ecx
11703
                lea     ebx, [edi+ebx-41065C09h]
11704
                mov     edi, [esp+0Ch]
11705
                xor     ebp, eax
11706
                add     ebx, [esi+0F8h]
11707
                add     ebx, ebp
11708
                mov     ebp, [esp+10h]
11709
                mov     ecx, edi
11710
                and     edi, ebp
11711
                or      ecx, ebp
11712
                mov     ebp, [esp+8]
11713
                and     ecx, ebp
11714
                ror     ebp, 2
11715
                or      ecx, edi
11716
                mov     edi, ebp
11717
                rol     edi, 0Ch
11718
                add     ecx, ebx
11719
                xor     ebp, edi
11720
                add     ebx, [esp+14h]
11721
                rol     edi, 9
11722
                xor     ebp, edi
11723
                mov     [esp+14h], ebx
11724
                add     ecx, ebp
11725
                mov     [esp+4], ecx
11726
                mov     ecx, [esp+18h]
11727
                mov     ebp, ebx
11728
                mov     edi, ebx
11729
                ror     ebp, 6
11730
                rol     edi, 7
11731
                xor     edi, ebp
11732
                ror     ebp, 5
11733
                xor     edi, ebp
11734
                mov     ebp, ecx
11735
                xor     ebp, edx
11736
                and     ebp, ebx
11737
                lea     eax, [edi+eax-398E870Eh]
11738
                mov     edi, [esp+8]
11739
                xor     ebp, edx
11740
                add     eax, [esi+0FCh]
11741
                add     eax, ebp
11742
                mov     ebp, [esp+0Ch]
11743
                mov     ebx, edi
11744
                and     edi, ebp
11745
                or      ebx, ebp
11746
                mov     ebp, [esp+4]
11747
                and     ebx, ebp
11748
                ror     ebp, 2
11749
                or      ebx, edi
11750
                mov     edi, ebp
11751
                rol     edi, 0Ch
11752
                add     ebx, eax
11753
                xor     ebp, edi
11754
                add     eax, [esp+10h]
11755
                rol     edi, 9
11756
                xor     ebp, edi
11757
                mov     [esp+10h], eax
11758
                add     ebx, ebp
11759
                mov     [esp], ebx
11760
                mov     ebx, [esp+14h]
11761
                mov     edi, [esp+24h]
11762
                add     [edi+10h], eax
11763
                add     [edi+14h], ebx
11764
                add     [edi+18h], ecx
11765
                add     [edi+1Ch], edx
11766
                mov     eax, [esp]
11767
                mov     ebx, [esp+4]
11768
                mov     ecx, [esp+8]
11769
                mov     edx, [esp+0Ch]
11770
                mov     ebp, [esp+28h]
11771
                add     [edi], eax
11772
                add     [edi+4], ebx
11773
                mov     esp, ebp
11774
                add     [edi+8], ecx
11775
                add     [edi+0Ch], edx
11776
                pop     ebp
11777
                pop     edi
11778
                pop     esi
11779
                pop     ebx
11780
  end;
11781
end;
11782
{$ENDIF}
11783
11784
{$IFDEF THash_SHA384_asm}
11785
procedure SHA384Buffer(S, D: Pointer);
11786
asm
11787
                push ebx
11788
                push edi
11789
                mov  edi, eax
11790
                push esi
11791
                mov  esi, edx
11792
11793
                mov     eax, [esi]
11794
                mov     ebx, [esi+4]
11795
                bswap   eax
11796
                bswap   ebx
11797
                mov     ecx, [esi+8]
11798
                mov     edx, [esi+0Ch]
11799
                bswap   ecx
11800
                bswap   edx
11801
                mov     [edi], ebx
11802
                mov     [edi+4], eax
11803
                mov     [edi+8], edx
11804
                mov     [edi+0Ch], ecx
11805
                mov     eax, [esi+10h]
11806
                mov     ebx, [esi+14h]
11807
                bswap   eax
11808
                bswap   ebx
11809
                mov     ecx, [esi+18h]
11810
                mov     edx, [esi+1Ch]
11811
                bswap   ecx
11812
                bswap   edx
11813
                mov     [edi+10h], ebx
11814
                mov     [edi+14h], eax
11815
                mov     [edi+18h], edx
11816
                mov     [edi+1Ch], ecx
11817
                mov     eax, [esi+20h]
11818
                mov     ebx, [esi+24h]
11819
                bswap   eax
11820
                bswap   ebx
11821
                mov     ecx, [esi+28h]
11822
                mov     edx, [esi+2Ch]
11823
                bswap   ecx
11824
                bswap   edx
11825
                mov     [edi+20h], ebx
11826
                mov     [edi+24h], eax
11827
                mov     [edi+28h], edx
11828
                mov     [edi+2Ch], ecx
11829
                mov     eax, [esi+30h]
11830
                mov     ebx, [esi+34h]
11831
                bswap   eax
11832
                bswap   ebx
11833
                mov     ecx, [esi+38h]
11834
                mov     edx, [esi+3Ch]
11835
                bswap   ecx
11836
                bswap   edx
11837
                mov     [edi+30h], ebx
11838
                mov     [edi+34h], eax
11839
                mov     [edi+38h], edx
11840
                mov     [edi+3Ch], ecx
11841
11842
                pop  esi
11843
                pop  edi
11844
                pop  ebx
11845
end;
11846
11847
procedure THash_SHA384.DoTransform(Buffer: PUInt32Array);
11848
var
11849
  W: array [0..159] of LongWord;
11850
begin
11851
  // swap first 16 uint64
11852
  SHA384Buffer(@W[0],  @Buffer[0]);
11853
  SHA384Buffer(Pointer(LongInt(@W[0]) + 16*4), Pointer(LongInt(@Buffer[0]) + 16*4));
11854
  asm
11855
                push    ebx
11856
                push    esi
11857
                push    edi
11858
                push    ebp
11859
11860
                mov     eax, Self
11861
                lea     edi, [eax].THash_SHA512.FDigest
11862
                lea     esi, W
11863
                lea     ebp, SHA_512K
11864
11865
                sub     esp, 60h
11866
                mov     [esp+54h], ebp
11867
                mov     [esp+5Ch], edi
11868
                mov     [esp+58h], esi
11869
                mov     dword ptr [esp+50h], 10h
11870
11871
            @@buffexpand_loop:
11872
                mov     ebp, [esi+8]
11873
                mov     eax, [esi+0Ch]
11874
                mov     ecx, ebp
11875
                mov     edi, eax
11876
                shl     eax, 18h
11877
                mov     edx, edi
11878
                shr     ecx, 1
11879
                mov     ebx, eax
11880
                shl     edx, 1Fh
11881
                shl     ebx, 1
11882
                or      edx, ecx
11883
                shr     ecx, 6
11884
                or      ebx, ecx
11885
                shr     ecx, 1
11886
                xor     edx, ebx
11887
                shl     ebp, 18h
11888
                or      eax, ecx
11889
                shr     edi, 1
11890
                mov     ecx, ebp
11891
                shl     ecx, 7
11892
                or      ecx, edi
11893
                shr     edi, 6
11894
                xor     edx, eax
11895
                xor     ecx, edi
11896
                mov     [esp+40h], edx
11897
                shr     edi, 1
11898
                or      ebp, edi
11899
                xor     ecx, ebp
11900
                mov     ebp, [esi+70h]
11901
                mov     edi, [esi+74h]
11902
                mov     [esp+44h], ecx
11903
                mov     ecx, ebp
11904
                mov     edx, edi
11905
                shl     ecx, 3
11906
                mov     eax, ebp
11907
                shr     edx, 1Dh
11908
                mov     ebx, edi
11909
                shr     eax, 6
11910
                or      edx, ecx
11911
                shl     ebx, 1Ah
11912
                or      eax, ebx
11913
                mov     ebx, edi
11914
                xor     edx, eax
11915
                shr     eax, 0Dh
11916
                mov     ecx, ebp
11917
                shl     ebx, 0Dh
11918
                or      eax, ebx
11919
                shr     ecx, 1Dh
11920
                xor     eax, edx
11921
                mov     edx, edi
11922
                shl     edx, 3
11923
                shr     edi, 6
11924
                or      edx, ecx
11925
                xor     edx, edi
11926
                shr     edi, 0Dh
11927
                mov     ecx, eax
11928
                shl     ebp, 0Dh
11929
                mov     eax, [esp+40h]
11930
                or      edi, ebp
11931
                mov     ebx, [esp+44h]
11932
                xor     edx, edi
11933
                mov     ebp, [esi]
11934
                mov     edi, [esi+4]
11935
                add     eax, ecx
11936
                adc     ebx, edx
11937
                add     eax, ebp
11938
                adc     ebx, edi
11939
                mov     ebp, [esi+48h]
11940
                mov     edi, [esi+4Ch]
11941
                add     eax, ebp
11942
                adc     ebx, edi
11943
                mov     [esi+80h], eax
11944
                mov     [esi+84h], ebx
11945
                mov     ebp, [esi+10h]
11946
                mov     eax, [esi+14h]
11947
                mov     ecx, ebp
11948
                mov     edi, eax
11949
                shl     eax, 18h
11950
                mov     edx, edi
11951
                shr     ecx, 1
11952
                mov     ebx, eax
11953
                shl     edx, 1Fh
11954
                shl     ebx, 1
11955
                or      edx, ecx
11956
                shr     ecx, 6
11957
                or      ebx, ecx
11958
                shr     ecx, 1
11959
                xor     edx, ebx
11960
                shl     ebp, 18h
11961
                or      eax, ecx
11962
                shr     edi, 1
11963
                mov     ecx, ebp
11964
                shl     ecx, 7
11965
                or      ecx, edi
11966
                shr     edi, 6
11967
                xor     edx, eax
11968
                xor     ecx, edi
11969
                mov     [esp+40h], edx
11970
                shr     edi, 1
11971
                or      ebp, edi
11972
                xor     ecx, ebp
11973
                mov     ebp, [esi+78h]
11974
                mov     edi, [esi+7Ch]
11975
                mov     [esp+44h], ecx
11976
                mov     ecx, ebp
11977
                mov     edx, edi
11978
                shl     ecx, 3
11979
                mov     eax, ebp
11980
                shr     edx, 1Dh
11981
                mov     ebx, edi
11982
                shr     eax, 6
11983
                or      edx, ecx
11984
                shl     ebx, 1Ah
11985
                or      eax, ebx
11986
                mov     ebx, edi
11987
                xor     edx, eax
11988
                shr     eax, 0Dh
11989
                mov     ecx, ebp
11990
                shl     ebx, 0Dh
11991
                or      eax, ebx
11992
                shr     ecx, 1Dh
11993
                xor     eax, edx
11994
                mov     edx, edi
11995
                shl     edx, 3
11996
                shr     edi, 6
11997
                or      edx, ecx
11998
                xor     edx, edi
11999
                shr     edi, 0Dh
12000
                mov     ecx, eax
12001
                shl     ebp, 0Dh
12002
                mov     eax, [esp+40h]
12003
                or      edi, ebp
12004
                mov     ebx, [esp+44h]
12005
                xor     edx, edi
12006
                mov     ebp, [esi+8]
12007
                mov     edi, [esi+0Ch]
12008
                add     eax, ecx
12009
                adc     ebx, edx
12010
                add     eax, ebp
12011
                adc     ebx, edi
12012
                mov     ebp, [esi+50h]
12013
                mov     edi, [esi+54h]
12014
                add     eax, ebp
12015
                adc     ebx, edi
12016
                mov     [esi+88h], eax
12017
                mov     [esi+8Ch], ebx
12018
                add     esi, 10h
12019
                add     dword ptr [esp+50h], 2
12020
                cmp     dword ptr [esp+50h], 50h
12021
                jnz     @@buffexpand_loop
12022
                mov     edi, [esp+5Ch]
12023
                mov     esi, [esp+58h]
12024
                mov     eax, [edi]
12025
                mov     ebx, [edi+4]
12026
                mov     ecx, [edi+8]
12027
                mov     edx, [edi+0Ch]
12028
                mov     [esp], eax
12029
                mov     [esp+4], ebx
12030
                mov     [esp+8], ecx
12031
                mov     [esp+0Ch], edx
12032
                mov     eax, [edi+10h]
12033
                mov     ebx, [edi+14h]
12034
                mov     ecx, [edi+18h]
12035
                mov     edx, [edi+1Ch]
12036
                mov     [esp+10h], eax
12037
                mov     [esp+14h], ebx
12038
                mov     [esp+18h], ecx
12039
                mov     [esp+1Ch], edx
12040
                mov     eax, [edi+20h]
12041
                mov     ebx, [edi+24h]
12042
                mov     ecx, [edi+28h]
12043
                mov     edx, [edi+2Ch]
12044
                mov     [esp+20h], eax
12045
                mov     [esp+24h], ebx
12046
                mov     [esp+28h], ecx
12047
                mov     [esp+2Ch], edx
12048
                mov     eax, [edi+30h]
12049
                mov     ebx, [edi+34h]
12050
                mov     ecx, [edi+38h]
12051
                mov     edx, [edi+3Ch]
12052
                mov     [esp+30h], eax
12053
                mov     [esp+34h], ebx
12054
                xor     eax, eax
12055
                mov     [esp+38h], ecx
12056
                mov     [esp+3Ch], edx
12057
                mov     [esp+50h], eax
12058
12059
            @@body_loop:
12060
                mov     eax, [esp+20h]
12061
                mov     ebx, [esp+24h]
12062
                mov     ecx, eax
12063
                mov     edx, ebx
12064
                shr     ecx, 0Eh
12065
                mov     ebp, eax
12066
                shl     edx, 12h
12067
                mov     edi, ebx
12068
                shr     ebp, 12h
12069
                or      ecx, edx
12070
                shl     edi, 0Eh
12071
                or      ebp, edi
12072
                mov     edx, ebx
12073
                xor     ebp, ecx
12074
                mov     ecx, eax
12075
                shl     ecx, 17h
12076
                shr     edx, 9
12077
                or      ecx, edx
12078
                mov     edx, eax
12079
                xor     ebp, ecx
12080
                mov     ecx, ebx
12081
                mov     [esp+40h], ebp
12082
                shr     ecx, 0Eh
12083
                mov     ebp, ebx
12084
                shl     edx, 12h
12085
                mov     edi, eax
12086
                shr     ebp, 12h
12087
                or      ecx, edx
12088
                shl     edi, 0Eh
12089
                or      ebp, edi
12090
                mov     edx, eax
12091
                xor     ebp, ecx
12092
                mov     ecx, ebx
12093
                shl     ecx, 17h
12094
                shr     edx, 9
12095
                or      ecx, edx
12096
                mov     edx, [esp+2Ch]
12097
                xor     ebp, ecx
12098
                mov     ecx, [esp+28h]
12099
                mov     [esp+44h], ebp
12100
                mov     ebp, [esp+30h]
12101
                mov     edi, [esp+34h]
12102
                xor     ecx, ebp
12103
                xor     edx, edi
12104
                and     ecx, eax
12105
                and     edx, ebx
12106
                xor     ecx, ebp
12107
                xor     edx, edi
12108
                add     ecx, [esp+40h]
12109
                mov     eax, [esp+38h]
12110
                adc     edx, [esp+44h]
12111
                mov     ebx, [esp+3Ch]
12112
                add     ecx, eax
12113
                mov     edi, [esp+50h]
12114
                adc     edx, ebx
12115
                mov     ebp, [esp+54h]
12116
                shl     edi, 3
12117
                add     edi, 0
12118
                shl     edi, 3
12119
                mov     eax, [edi+ebp]
12120
                mov     ebx, [edi+ebp+4]
12121
                add     ecx, eax
12122
                mov     eax, [esi+edi]
12123
                adc     edx, ebx
12124
                mov     ebx, [esi+edi+4]
12125
                add     ecx, eax
12126
                mov     eax, [esp]
12127
                adc     edx, ebx
12128
                mov     ebx, [esp+4]
12129
                mov     [esp+40h], ecx
12130
                mov     [esp+44h], edx
12131
                mov     ecx, eax
12132
                mov     edx, ebx
12133
                shr     ecx, 1Ch
12134
                mov     ebp, eax
12135
                shl     edx, 4
12136
                mov     edi, ebx
12137
                shl     ebp, 1Eh
12138
                or      ecx, edx
12139
                shr     edi, 2
12140
                or      ebp, edi
12141
                mov     edx, ebx
12142
                xor     ebp, ecx
12143
                mov     ecx, eax
12144
                shr     edx, 7
12145
                shl     ecx, 19h
12146
                or      ecx, edx
12147
                mov     edx, eax
12148
                xor     ebp, ecx
12149
                mov     ecx, ebx
12150
                mov     [esp+48h], ebp
12151
                shr     ecx, 1Ch
12152
                mov     ebp, ebx
12153
                shl     edx, 4
12154
                mov     edi, eax
12155
                shl     ebp, 1Eh
12156
                or      ecx, edx
12157
                shr     edi, 2
12158
                or      ebp, edi
12159
                mov     edx, eax
12160
                xor     ebp, ecx
12161
                mov     ecx, ebx
12162
                shl     ecx, 19h
12163
                shr     edx, 7
12164
                or      ecx, edx
12165
                mov     edx, [esp+0Ch]
12166
                xor     ebp, ecx
12167
                mov     ecx, [esp+8]
12168
                mov     [esp+4Ch], ebp
12169
                mov     ebp, [esp+10h]
12170
                mov     edi, [esp+14h]
12171
                or      ecx, ebp
12172
                or      edx, edi
12173
                and     eax, ecx
12174
                and     ebx, edx
12175
                mov     ecx, [esp+8]
12176
                mov     edx, [esp+0Ch]
12177
                and     ebp, ecx
12178
                and     edi, edx
12179
                or      eax, ebp
12180
                or      ebx, edi
12181
                mov     ecx, [esp+48h]
12182
                mov     edx, [esp+4Ch]
12183
                add     eax, ecx
12184
                mov     ebp, [esp+40h]
12185
                adc     ebx, edx
12186
                mov     ecx, [esp+18h]
12187
                mov     edx, [esp+1Ch]
12188
                mov     edi, [esp+44h]
12189
                add     ecx, ebp
12190
                adc     edx, edi
12191
                mov     [esp+18h], ecx
12192
                mov     [esp+1Ch], edx
12193
                add     ebp, eax
12194
                adc     edi, ebx
12195
                mov     [esp+38h], ebp
12196
                mov     [esp+3Ch], edi
12197
                mov     eax, [esp+18h]
12198
                mov     ebx, [esp+1Ch]
12199
                mov     ecx, eax
12200
                mov     edx, ebx
12201
                shr     ecx, 0Eh
12202
                mov     ebp, eax
12203
                shl     edx, 12h
12204
                mov     edi, ebx
12205
                shr     ebp, 12h
12206
                or      ecx, edx
12207
                shl     edi, 0Eh
12208
                or      ebp, edi
12209
                mov     edx, ebx
12210
                xor     ebp, ecx
12211
                mov     ecx, eax
12212
                shl     ecx, 17h
12213
                shr     edx, 9
12214
                or      ecx, edx
12215
                mov     edx, eax
12216
                xor     ebp, ecx
12217
                mov     ecx, ebx
12218
                mov     [esp+40h], ebp
12219
                shr     ecx, 0Eh
12220
                mov     ebp, ebx
12221
                shl     edx, 12h
12222
                mov     edi, eax
12223
                shr     ebp, 12h
12224
                or      ecx, edx
12225
                shl     edi, 0Eh
12226
                or      ebp, edi
12227
                mov     edx, eax
12228
                xor     ebp, ecx
12229
                mov     ecx, ebx
12230
                shl     ecx, 17h
12231
                shr     edx, 9
12232
                or      ecx, edx
12233
                mov     edx, [esp+24h]
12234
                xor     ebp, ecx
12235
                mov     ecx, [esp+20h]
12236
                mov     [esp+44h], ebp
12237
                mov     ebp, [esp+28h]
12238
                mov     edi, [esp+2Ch]
12239
                xor     ecx, ebp
12240
                xor     edx, edi
12241
                and     ecx, eax
12242
                and     edx, ebx
12243
                xor     ecx, ebp
12244
                xor     edx, edi
12245
                add     ecx, [esp+40h]
12246
                mov     eax, [esp+30h]
12247
                adc     edx, [esp+44h]
12248
                mov     ebx, [esp+34h]
12249
                add     ecx, eax
12250
                mov     edi, [esp+50h]
12251
                adc     edx, ebx
12252
                mov     ebp, [esp+54h]
12253
                shl     edi, 3
12254
                add     edi, 1
12255
                shl     edi, 3
12256
                mov     eax, [edi+ebp]
12257
                mov     ebx, [edi+ebp+4]
12258
                add     ecx, eax
12259
                mov     eax, [esi+edi]
12260
                adc     edx, ebx
12261
                mov     ebx, [esi+edi+4]
12262
                add     ecx, eax
12263
                mov     eax, [esp+38h]
12264
                adc     edx, ebx
12265
                mov     ebx, [esp+3Ch]
12266
                mov     [esp+40h], ecx
12267
                mov     [esp+44h], edx
12268
                mov     ecx, eax
12269
                mov     edx, ebx
12270
                shr     ecx, 1Ch
12271
                mov     ebp, eax
12272
                shl     edx, 4
12273
                mov     edi, ebx
12274
                shl     ebp, 1Eh
12275
                or      ecx, edx
12276
                shr     edi, 2
12277
                or      ebp, edi
12278
                mov     edx, ebx
12279
                xor     ebp, ecx
12280
                mov     ecx, eax
12281
                shr     edx, 7
12282
                shl     ecx, 19h
12283
                or      ecx, edx
12284
                mov     edx, eax
12285
                xor     ebp, ecx
12286
                mov     ecx, ebx
12287
                mov     [esp+48h], ebp
12288
                shr     ecx, 1Ch
12289
                mov     ebp, ebx
12290
                shl     edx, 4
12291
                mov     edi, eax
12292
                shl     ebp, 1Eh
12293
                or      ecx, edx
12294
                shr     edi, 2
12295
                or      ebp, edi
12296
                mov     edx, eax
12297
                xor     ebp, ecx
12298
                mov     ecx, ebx
12299
                shl     ecx, 19h
12300
                shr     edx, 7
12301
                or      ecx, edx
12302
                mov     edx, [esp+4]
12303
                xor     ebp, ecx
12304
                mov     ecx, [esp]
12305
                mov     [esp+4Ch], ebp
12306
                mov     ebp, [esp+8]
12307
                mov     edi, [esp+0Ch]
12308
                or      ecx, ebp
12309
                or      edx, edi
12310
                and     eax, ecx
12311
                and     ebx, edx
12312
                mov     ecx, [esp]
12313
                mov     edx, [esp+4]
12314
                and     ebp, ecx
12315
                and     edi, edx
12316
                or      eax, ebp
12317
                or      ebx, edi
12318
                mov     ecx, [esp+48h]
12319
                mov     edx, [esp+4Ch]
12320
                add     eax, ecx
12321
                mov     ebp, [esp+40h]
12322
                adc     ebx, edx
12323
                mov     ecx, [esp+10h]
12324
                mov     edx, [esp+14h]
12325
                mov     edi, [esp+44h]
12326
                add     ecx, ebp
12327
                adc     edx, edi
12328
                mov     [esp+10h], ecx
12329
                mov     [esp+14h], edx
12330
                add     ebp, eax
12331
                adc     edi, ebx
12332
                mov     [esp+30h], ebp
12333
                mov     [esp+34h], edi
12334
                mov     eax, [esp+10h]
12335
                mov     ebx, [esp+14h]
12336
                mov     ecx, eax
12337
                mov     edx, ebx
12338
                shr     ecx, 0Eh
12339
                mov     ebp, eax
12340
                shl     edx, 12h
12341
                mov     edi, ebx
12342
                shr     ebp, 12h
12343
                or      ecx, edx
12344
                shl     edi, 0Eh
12345
                or      ebp, edi
12346
                mov     edx, ebx
12347
                xor     ebp, ecx
12348
                mov     ecx, eax
12349
                shl     ecx, 17h
12350
                shr     edx, 9
12351
                or      ecx, edx
12352
                mov     edx, eax
12353
                xor     ebp, ecx
12354
                mov     ecx, ebx
12355
                mov     [esp+40h], ebp
12356
                shr     ecx, 0Eh
12357
                mov     ebp, ebx
12358
                shl     edx, 12h
12359
                mov     edi, eax
12360
                shr     ebp, 12h
12361
                or      ecx, edx
12362
                shl     edi, 0Eh
12363
                or      ebp, edi
12364
                mov     edx, eax
12365
                xor     ebp, ecx
12366
                mov     ecx, ebx
12367
                shl     ecx, 17h
12368
                shr     edx, 9
12369
                or      ecx, edx
12370
                mov     edx, [esp+1Ch]
12371
                xor     ebp, ecx
12372
                mov     ecx, [esp+18h]
12373
                mov     [esp+44h], ebp
12374
                mov     ebp, [esp+20h]
12375
                mov     edi, [esp+24h]
12376
                xor     ecx, ebp
12377
                xor     edx, edi
12378
                and     ecx, eax
12379
                and     edx, ebx
12380
                xor     ecx, ebp
12381
                xor     edx, edi
12382
                add     ecx, [esp+40h]
12383
                mov     eax, [esp+28h]
12384
                adc     edx, [esp+44h]
12385
                mov     ebx, [esp+2Ch]
12386
                add     ecx, eax
12387
                mov     edi, [esp+50h]
12388
                adc     edx, ebx
12389
                mov     ebp, [esp+54h]
12390
                shl     edi, 3
12391
                add     edi, 2
12392
                shl     edi, 3
12393
                mov     eax, [edi+ebp]
12394
                mov     ebx, [edi+ebp+4]
12395
                add     ecx, eax
12396
                mov     eax, [esi+edi]
12397
                adc     edx, ebx
12398
                mov     ebx, [esi+edi+4]
12399
                add     ecx, eax
12400
                mov     eax, [esp+30h]
12401
                adc     edx, ebx
12402
                mov     ebx, [esp+34h]
12403
                mov     [esp+40h], ecx
12404
                mov     [esp+44h], edx
12405
                mov     ecx, eax
12406
                mov     edx, ebx
12407
                shr     ecx, 1Ch
12408
                mov     ebp, eax
12409
                shl     edx, 4
12410
                mov     edi, ebx
12411
                shl     ebp, 1Eh
12412
                or      ecx, edx
12413
                shr     edi, 2
12414
                or      ebp, edi
12415
                mov     edx, ebx
12416
                xor     ebp, ecx
12417
                mov     ecx, eax
12418
                shr     edx, 7
12419
                shl     ecx, 19h
12420
                or      ecx, edx
12421
                mov     edx, eax
12422
                xor     ebp, ecx
12423
                mov     ecx, ebx
12424
                mov     [esp+48h], ebp
12425
                shr     ecx, 1Ch
12426
                mov     ebp, ebx
12427
                shl     edx, 4
12428
                mov     edi, eax
12429
                shl     ebp, 1Eh
12430
                or      ecx, edx
12431
                shr     edi, 2
12432
                or      ebp, edi
12433
                mov     edx, eax
12434
                xor     ebp, ecx
12435
                mov     ecx, ebx
12436
                shl     ecx, 19h
12437
                shr     edx, 7
12438
                or      ecx, edx
12439
                mov     edx, [esp+3Ch]
12440
                xor     ebp, ecx
12441
                mov     ecx, [esp+38h]
12442
                mov     [esp+4Ch], ebp
12443
                mov     ebp, [esp]
12444
                mov     edi, [esp+4]
12445
                or      ecx, ebp
12446
                or      edx, edi
12447
                and     eax, ecx
12448
                and     ebx, edx
12449
                mov     ecx, [esp+38h]
12450
                mov     edx, [esp+3Ch]
12451
                and     ebp, ecx
12452
                and     edi, edx
12453
                or      eax, ebp
12454
                or      ebx, edi
12455
                mov     ecx, [esp+48h]
12456
                mov     edx, [esp+4Ch]
12457
                add     eax, ecx
12458
                mov     ebp, [esp+40h]
12459
                adc     ebx, edx
12460
                mov     ecx, [esp+8]
12461
                mov     edx, [esp+0Ch]
12462
                mov     edi, [esp+44h]
12463
                add     ecx, ebp
12464
                adc     edx, edi
12465
                mov     [esp+8], ecx
12466
                mov     [esp+0Ch], edx
12467
                add     ebp, eax
12468
                adc     edi, ebx
12469
                mov     [esp+28h], ebp
12470
                mov     [esp+2Ch], edi
12471
                mov     eax, [esp+8]
12472
                mov     ebx, [esp+0Ch]
12473
                mov     ecx, eax
12474
                mov     edx, ebx
12475
                shr     ecx, 0Eh
12476
                mov     ebp, eax
12477
                shl     edx, 12h
12478
                mov     edi, ebx
12479
                shr     ebp, 12h
12480
                or      ecx, edx
12481
                shl     edi, 0Eh
12482
                or      ebp, edi
12483
                mov     edx, ebx
12484
                xor     ebp, ecx
12485
                mov     ecx, eax
12486
                shl     ecx, 17h
12487
                shr     edx, 9
12488
                or      ecx, edx
12489
                mov     edx, eax
12490
                xor     ebp, ecx
12491
                mov     ecx, ebx
12492
                mov     [esp+40h], ebp
12493
                shr     ecx, 0Eh
12494
                mov     ebp, ebx
12495
                shl     edx, 12h
12496
                mov     edi, eax
12497
                shr     ebp, 12h
12498
                or      ecx, edx
12499
                shl     edi, 0Eh
12500
                or      ebp, edi
12501
                mov     edx, eax
12502
                xor     ebp, ecx
12503
                mov     ecx, ebx
12504
                shl     ecx, 17h
12505
                shr     edx, 9
12506
                or      ecx, edx
12507
                mov     edx, [esp+14h]
12508
                xor     ebp, ecx
12509
                mov     ecx, [esp+10h]
12510
                mov     [esp+44h], ebp
12511
                mov     ebp, [esp+18h]
12512
                mov     edi, [esp+1Ch]
12513
                xor     ecx, ebp
12514
                xor     edx, edi
12515
                and     ecx, eax
12516
                and     edx, ebx
12517
                xor     ecx, ebp
12518
                xor     edx, edi
12519
                add     ecx, [esp+40h]
12520
                mov     eax, [esp+20h]
12521
                adc     edx, [esp+44h]
12522
                mov     ebx, [esp+24h]
12523
                add     ecx, eax
12524
                mov     edi, [esp+50h]
12525
                adc     edx, ebx
12526
                mov     ebp, [esp+54h]
12527
                shl     edi, 3
12528
                add     edi, 3
12529
                shl     edi, 3
12530
                mov     eax, [edi+ebp]
12531
                mov     ebx, [edi+ebp+4]
12532
                add     ecx, eax
12533
                mov     eax, [esi+edi]
12534
                adc     edx, ebx
12535
                mov     ebx, [esi+edi+4]
12536
                add     ecx, eax
12537
                mov     eax, [esp+28h]
12538
                adc     edx, ebx
12539
                mov     ebx, [esp+2Ch]
12540
                mov     [esp+40h], ecx
12541
                mov     [esp+44h], edx
12542
                mov     ecx, eax
12543
                mov     edx, ebx
12544
                shr     ecx, 1Ch
12545
                mov     ebp, eax
12546
                shl     edx, 4
12547
                mov     edi, ebx
12548
                shl     ebp, 1Eh
12549
                or      ecx, edx
12550
                shr     edi, 2
12551
                or      ebp, edi
12552
                mov     edx, ebx
12553
                xor     ebp, ecx
12554
                mov     ecx, eax
12555
                shr     edx, 7
12556
                shl     ecx, 19h
12557
                or      ecx, edx
12558
                mov     edx, eax
12559
                xor     ebp, ecx
12560
                mov     ecx, ebx
12561
                mov     [esp+48h], ebp
12562
                shr     ecx, 1Ch
12563
                mov     ebp, ebx
12564
                shl     edx, 4
12565
                mov     edi, eax
12566
                shl     ebp, 1Eh
12567
                or      ecx, edx
12568
                shr     edi, 2
12569
                or      ebp, edi
12570
                mov     edx, eax
12571
                xor     ebp, ecx
12572
                mov     ecx, ebx
12573
                shl     ecx, 19h
12574
                shr     edx, 7
12575
                or      ecx, edx
12576
                mov     edx, [esp+34h]
12577
                xor     ebp, ecx
12578
                mov     ecx, [esp+30h]
12579
                mov     [esp+4Ch], ebp
12580
                mov     ebp, [esp+38h]
12581
                mov     edi, [esp+3Ch]
12582
                or      ecx, ebp
12583
                or      edx, edi
12584
                and     eax, ecx
12585
                and     ebx, edx
12586
                mov     ecx, [esp+30h]
12587
                mov     edx, [esp+34h]
12588
                and     ebp, ecx
12589
                and     edi, edx
12590
                or      eax, ebp
12591
                or      ebx, edi
12592
                mov     ecx, [esp+48h]
12593
                mov     edx, [esp+4Ch]
12594
                add     eax, ecx
12595
                mov     ebp, [esp+40h]
12596
                adc     ebx, edx
12597
                mov     ecx, [esp]
12598
                mov     edx, [esp+4]
12599
                mov     edi, [esp+44h]
12600
                add     ecx, ebp
12601
                adc     edx, edi
12602
                mov     [esp], ecx
12603
                mov     [esp+4], edx
12604
                add     ebp, eax
12605
                adc     edi, ebx
12606
                mov     [esp+20h], ebp
12607
                mov     [esp+24h], edi
12608
                mov     eax, [esp]
12609
                mov     ebx, [esp+4]
12610
                mov     ecx, eax
12611
                mov     edx, ebx
12612
                shr     ecx, 0Eh
12613
                mov     ebp, eax
12614
                shl     edx, 12h
12615
                mov     edi, ebx
12616
                shr     ebp, 12h
12617
                or      ecx, edx
12618
                shl     edi, 0Eh
12619
                or      ebp, edi
12620
                mov     edx, ebx
12621
                xor     ebp, ecx
12622
                mov     ecx, eax
12623
                shl     ecx, 17h
12624
                shr     edx, 9
12625
                or      ecx, edx
12626
                mov     edx, eax
12627
                xor     ebp, ecx
12628
                mov     ecx, ebx
12629
                mov     [esp+40h], ebp
12630
                shr     ecx, 0Eh
12631
                mov     ebp, ebx
12632
                shl     edx, 12h
12633
                mov     edi, eax
12634
                shr     ebp, 12h
12635
                or      ecx, edx
12636
                shl     edi, 0Eh
12637
                or      ebp, edi
12638
                mov     edx, eax
12639
                xor     ebp, ecx
12640
                mov     ecx, ebx
12641
                shl     ecx, 17h
12642
                shr     edx, 9
12643
                or      ecx, edx
12644
                mov     edx, [esp+0Ch]
12645
                xor     ebp, ecx
12646
                mov     ecx, [esp+8]
12647
                mov     [esp+44h], ebp
12648
                mov     ebp, [esp+10h]
12649
                mov     edi, [esp+14h]
12650
                xor     ecx, ebp
12651
                xor     edx, edi
12652
                and     ecx, eax
12653
                and     edx, ebx
12654
                xor     ecx, ebp
12655
                xor     edx, edi
12656
                add     ecx, [esp+40h]
12657
                mov     eax, [esp+18h]
12658
                adc     edx, [esp+44h]
12659
                mov     ebx, [esp+1Ch]
12660
                add     ecx, eax
12661
                mov     edi, [esp+50h]
12662
                adc     edx, ebx
12663
                mov     ebp, [esp+54h]
12664
                shl     edi, 3
12665
                add     edi, 4
12666
                shl     edi, 3
12667
                mov     eax, [edi+ebp]
12668
                mov     ebx, [edi+ebp+4]
12669
                add     ecx, eax
12670
                mov     eax, [esi+edi]
12671
                adc     edx, ebx
12672
                mov     ebx, [esi+edi+4]
12673
                add     ecx, eax
12674
                mov     eax, [esp+20h]
12675
                adc     edx, ebx
12676
                mov     ebx, [esp+24h]
12677
                mov     [esp+40h], ecx
12678
                mov     [esp+44h], edx
12679
                mov     ecx, eax
12680
                mov     edx, ebx
12681
                shr     ecx, 1Ch
12682
                mov     ebp, eax
12683
                shl     edx, 4
12684
                mov     edi, ebx
12685
                shl     ebp, 1Eh
12686
                or      ecx, edx
12687
                shr     edi, 2
12688
                or      ebp, edi
12689
                mov     edx, ebx
12690
                xor     ebp, ecx
12691
                mov     ecx, eax
12692
                shr     edx, 7
12693
                shl     ecx, 19h
12694
                or      ecx, edx
12695
                mov     edx, eax
12696
                xor     ebp, ecx
12697
                mov     ecx, ebx
12698
                mov     [esp+48h], ebp
12699
                shr     ecx, 1Ch
12700
                mov     ebp, ebx
12701
                shl     edx, 4
12702
                mov     edi, eax
12703
                shl     ebp, 1Eh
12704
                or      ecx, edx
12705
                shr     edi, 2
12706
                or      ebp, edi
12707
                mov     edx, eax
12708
                xor     ebp, ecx
12709
                mov     ecx, ebx
12710
                shl     ecx, 19h
12711
                shr     edx, 7
12712
                or      ecx, edx
12713
                mov     edx, [esp+2Ch]
12714
                xor     ebp, ecx
12715
                mov     ecx, [esp+28h]
12716
                mov     [esp+4Ch], ebp
12717
                mov     ebp, [esp+30h]
12718
                mov     edi, [esp+34h]
12719
                or      ecx, ebp
12720
                or      edx, edi
12721
                and     eax, ecx
12722
                and     ebx, edx
12723
                mov     ecx, [esp+28h]
12724
                mov     edx, [esp+2Ch]
12725
                and     ebp, ecx
12726
                and     edi, edx
12727
                or      eax, ebp
12728
                or      ebx, edi
12729
                mov     ecx, [esp+48h]
12730
                mov     edx, [esp+4Ch]
12731
                add     eax, ecx
12732
                mov     ebp, [esp+40h]
12733
                adc     ebx, edx
12734
                mov     ecx, [esp+38h]
12735
                mov     edx, [esp+3Ch]
12736
                mov     edi, [esp+44h]
12737
                add     ecx, ebp
12738
                adc     edx, edi
12739
                mov     [esp+38h], ecx
12740
                mov     [esp+3Ch], edx
12741
                add     ebp, eax
12742
                adc     edi, ebx
12743
                mov     [esp+18h], ebp
12744
                mov     [esp+1Ch], edi
12745
                mov     eax, [esp+38h]
12746
                mov     ebx, [esp+3Ch]
12747
                mov     ecx, eax
12748
                mov     edx, ebx
12749
                shr     ecx, 0Eh
12750
                mov     ebp, eax
12751
                shl     edx, 12h
12752
                mov     edi, ebx
12753
                shr     ebp, 12h
12754
                or      ecx, edx
12755
                shl     edi, 0Eh
12756
                or      ebp, edi
12757
                mov     edx, ebx
12758
                xor     ebp, ecx
12759
                mov     ecx, eax
12760
                shl     ecx, 17h
12761
                shr     edx, 9
12762
                or      ecx, edx
12763
                mov     edx, eax
12764
                xor     ebp, ecx
12765
                mov     ecx, ebx
12766
                mov     [esp+40h], ebp
12767
                shr     ecx, 0Eh
12768
                mov     ebp, ebx
12769
                shl     edx, 12h
12770
                mov     edi, eax
12771
                shr     ebp, 12h
12772
                or      ecx, edx
12773
                shl     edi, 0Eh
12774
                or      ebp, edi
12775
                mov     edx, eax
12776
                xor     ebp, ecx
12777
                mov     ecx, ebx
12778
                shl     ecx, 17h
12779
                shr     edx, 9
12780
                or      ecx, edx
12781
                mov     edx, [esp+4]
12782
                xor     ebp, ecx
12783
                mov     ecx, [esp]
12784
                mov     [esp+44h], ebp
12785
                mov     ebp, [esp+8]
12786
                mov     edi, [esp+0Ch]
12787
                xor     ecx, ebp
12788
                xor     edx, edi
12789
                and     ecx, eax
12790
                and     edx, ebx
12791
                xor     ecx, ebp
12792
                xor     edx, edi
12793
                add     ecx, [esp+40h]
12794
                mov     eax, [esp+10h]
12795
                adc     edx, [esp+44h]
12796
                mov     ebx, [esp+14h]
12797
                add     ecx, eax
12798
                mov     edi, [esp+50h]
12799
                adc     edx, ebx
12800
                mov     ebp, [esp+54h]
12801
                shl     edi, 3
12802
                add     edi, 5
12803
                shl     edi, 3
12804
                mov     eax, [edi+ebp]
12805
                mov     ebx, [edi+ebp+4]
12806
                add     ecx, eax
12807
                mov     eax, [esi+edi]
12808
                adc     edx, ebx
12809
                mov     ebx, [esi+edi+4]
12810
                add     ecx, eax
12811
                mov     eax, [esp+18h]
12812
                adc     edx, ebx
12813
                mov     ebx, [esp+1Ch]
12814
                mov     [esp+40h], ecx
12815
                mov     [esp+44h], edx
12816
                mov     ecx, eax
12817
                mov     edx, ebx
12818
                shr     ecx, 1Ch
12819
                mov     ebp, eax
12820
                shl     edx, 4
12821
                mov     edi, ebx
12822
                shl     ebp, 1Eh
12823
                or      ecx, edx
12824
                shr     edi, 2
12825
                or      ebp, edi
12826
                mov     edx, ebx
12827
                xor     ebp, ecx
12828
                mov     ecx, eax
12829
                shr     edx, 7
12830
                shl     ecx, 19h
12831
                or      ecx, edx
12832
                mov     edx, eax
12833
                xor     ebp, ecx
12834
                mov     ecx, ebx
12835
                mov     [esp+48h], ebp
12836
                shr     ecx, 1Ch
12837
                mov     ebp, ebx
12838
                shl     edx, 4
12839
                mov     edi, eax
12840
                shl     ebp, 1Eh
12841
                or      ecx, edx
12842
                shr     edi, 2
12843
                or      ebp, edi
12844
                mov     edx, eax
12845
                xor     ebp, ecx
12846
                mov     ecx, ebx
12847
                shl     ecx, 19h
12848
                shr     edx, 7
12849
                or      ecx, edx
12850
                mov     edx, [esp+24h]
12851
                xor     ebp, ecx
12852
                mov     ecx, [esp+20h]
12853
                mov     [esp+4Ch], ebp
12854
                mov     ebp, [esp+28h]
12855
                mov     edi, [esp+2Ch]
12856
                or      ecx, ebp
12857
                or      edx, edi
12858
                and     eax, ecx
12859
                and     ebx, edx
12860
                mov     ecx, [esp+20h]
12861
                mov     edx, [esp+24h]
12862
                and     ebp, ecx
12863
                and     edi, edx
12864
                or      eax, ebp
12865
                or      ebx, edi
12866
                mov     ecx, [esp+48h]
12867
                mov     edx, [esp+4Ch]
12868
                add     eax, ecx
12869
                mov     ebp, [esp+40h]
12870
                adc     ebx, edx
12871
                mov     ecx, [esp+30h]
12872
                mov     edx, [esp+34h]
12873
                mov     edi, [esp+44h]
12874
                add     ecx, ebp
12875
                adc     edx, edi
12876
                mov     [esp+30h], ecx
12877
                mov     [esp+34h], edx
12878
                add     ebp, eax
12879
                adc     edi, ebx
12880
                mov     [esp+10h], ebp
12881
                mov     [esp+14h], edi
12882
                mov     eax, [esp+30h]
12883
                mov     ebx, [esp+34h]
12884
                mov     ecx, eax
12885
                mov     edx, ebx
12886
                shr     ecx, 0Eh
12887
                mov     ebp, eax
12888
                shl     edx, 12h
12889
                mov     edi, ebx
12890
                shr     ebp, 12h
12891
                or      ecx, edx
12892
                shl     edi, 0Eh
12893
                or      ebp, edi
12894
                mov     edx, ebx
12895
                xor     ebp, ecx
12896
                mov     ecx, eax
12897
                shl     ecx, 17h
12898
                shr     edx, 9
12899
                or      ecx, edx
12900
                mov     edx, eax
12901
                xor     ebp, ecx
12902
                mov     ecx, ebx
12903
                mov     [esp+40h], ebp
12904
                shr     ecx, 0Eh
12905
                mov     ebp, ebx
12906
                shl     edx, 12h
12907
                mov     edi, eax
12908
                shr     ebp, 12h
12909
                or      ecx, edx
12910
                shl     edi, 0Eh
12911
                or      ebp, edi
12912
                mov     edx, eax
12913
                xor     ebp, ecx
12914
                mov     ecx, ebx
12915
                shl     ecx, 17h
12916
                shr     edx, 9
12917
                or      ecx, edx
12918
                mov     edx, [esp+3Ch]
12919
                xor     ebp, ecx
12920
                mov     ecx, [esp+38h]
12921
                mov     [esp+44h], ebp
12922
                mov     ebp, [esp]
12923
                mov     edi, [esp+4]
12924
                xor     ecx, ebp
12925
                xor     edx, edi
12926
                and     ecx, eax
12927
                and     edx, ebx
12928
                xor     ecx, ebp
12929
                xor     edx, edi
12930
                add     ecx, [esp+40h]
12931
                mov     eax, [esp+8]
12932
                adc     edx, [esp+44h]
12933
                mov     ebx, [esp+0Ch]
12934
                add     ecx, eax
12935
                mov     edi, [esp+50h]
12936
                adc     edx, ebx
12937
                mov     ebp, [esp+54h]
12938
                shl     edi, 3
12939
                add     edi, 6
12940
                shl     edi, 3
12941
                mov     eax, [edi+ebp]
12942
                mov     ebx, [edi+ebp+4]
12943
                add     ecx, eax
12944
                mov     eax, [esi+edi]
12945
                adc     edx, ebx
12946
                mov     ebx, [esi+edi+4]
12947
                add     ecx, eax
12948
                mov     eax, [esp+10h]
12949
                adc     edx, ebx
12950
                mov     ebx, [esp+14h]
12951
                mov     [esp+40h], ecx
12952
                mov     [esp+44h], edx
12953
                mov     ecx, eax
12954
                mov     edx, ebx
12955
                shr     ecx, 1Ch
12956
                mov     ebp, eax
12957
                shl     edx, 4
12958
                mov     edi, ebx
12959
                shl     ebp, 1Eh
12960
                or      ecx, edx
12961
                shr     edi, 2
12962
                or      ebp, edi
12963
                mov     edx, ebx
12964
                xor     ebp, ecx
12965
                mov     ecx, eax
12966
                shr     edx, 7
12967
                shl     ecx, 19h
12968
                or      ecx, edx
12969
                mov     edx, eax
12970
                xor     ebp, ecx
12971
                mov     ecx, ebx
12972
                mov     [esp+48h], ebp
12973
                shr     ecx, 1Ch
12974
                mov     ebp, ebx
12975
                shl     edx, 4
12976
                mov     edi, eax
12977
                shl     ebp, 1Eh
12978
                or      ecx, edx
12979
                shr     edi, 2
12980
                or      ebp, edi
12981
                mov     edx, eax
12982
                xor     ebp, ecx
12983
                mov     ecx, ebx
12984
                shl     ecx, 19h
12985
                shr     edx, 7
12986
                or      ecx, edx
12987
                mov     edx, [esp+1Ch]
12988
                xor     ebp, ecx
12989
                mov     ecx, [esp+18h]
12990
                mov     [esp+4Ch], ebp
12991
                mov     ebp, [esp+20h]
12992
                mov     edi, [esp+24h]
12993
                or      ecx, ebp
12994
                or      edx, edi
12995
                and     eax, ecx
12996
                and     ebx, edx
12997
                mov     ecx, [esp+18h]
12998
                mov     edx, [esp+1Ch]
12999
                and     ebp, ecx
13000
                and     edi, edx
13001
                or      eax, ebp
13002
                or      ebx, edi
13003
                mov     ecx, [esp+48h]
13004
                mov     edx, [esp+4Ch]
13005
                add     eax, ecx
13006
                mov     ebp, [esp+40h]
13007
                adc     ebx, edx
13008
                mov     ecx, [esp+28h]
13009
                mov     edx, [esp+2Ch]
13010
                mov     edi, [esp+44h]
13011
                add     ecx, ebp
13012
                adc     edx, edi
13013
                mov     [esp+28h], ecx
13014
                mov     [esp+2Ch], edx
13015
                add     ebp, eax
13016
                adc     edi, ebx
13017
                mov     [esp+8], ebp
13018
                mov     [esp+0Ch], edi
13019
                mov     eax, [esp+28h]
13020
                mov     ebx, [esp+2Ch]
13021
                mov     ecx, eax
13022
                mov     edx, ebx
13023
                shr     ecx, 0Eh
13024
                mov     ebp, eax
13025
                shl     edx, 12h
13026
                mov     edi, ebx
13027
                shr     ebp, 12h
13028
                or      ecx, edx
13029
                shl     edi, 0Eh
13030
                or      ebp, edi
13031
                mov     edx, ebx
13032
                xor     ebp, ecx
13033
                mov     ecx, eax
13034
                shl     ecx, 17h
13035
                shr     edx, 9
13036
                or      ecx, edx
13037
                mov     edx, eax
13038
                xor     ebp, ecx
13039
                mov     ecx, ebx
13040
                mov     [esp+40h], ebp
13041
                shr     ecx, 0Eh
13042
                mov     ebp, ebx
13043
                shl     edx, 12h
13044
                mov     edi, eax
13045
                shr     ebp, 12h
13046
                or      ecx, edx
13047
                shl     edi, 0Eh
13048
                or      ebp, edi
13049
                mov     edx, eax
13050
                xor     ebp, ecx
13051
                mov     ecx, ebx
13052
                shl     ecx, 17h
13053
                shr     edx, 9
13054
                or      ecx, edx
13055
                mov     edx, [esp+34h]
13056
                xor     ebp, ecx
13057
                mov     ecx, [esp+30h]
13058
                mov     [esp+44h], ebp
13059
                mov     ebp, [esp+38h]
13060
                mov     edi, [esp+3Ch]
13061
                xor     ecx, ebp
13062
                xor     edx, edi
13063
                and     ecx, eax
13064
                and     edx, ebx
13065
                xor     ecx, ebp
13066
                xor     edx, edi
13067
                add     ecx, [esp+40h]
13068
                mov     eax, [esp]
13069
                adc     edx, [esp+44h]
13070
                mov     ebx, [esp+4]
13071
                add     ecx, eax
13072
                mov     edi, [esp+50h]
13073
                adc     edx, ebx
13074
                mov     ebp, [esp+54h]
13075
                shl     edi, 3
13076
                add     edi, 7
13077
                shl     edi, 3
13078
                mov     eax, [edi+ebp]
13079
                mov     ebx, [edi+ebp+4]
13080
                add     ecx, eax
13081
                mov     eax, [esi+edi]
13082
                adc     edx, ebx
13083
                mov     ebx, [esi+edi+4]
13084
                add     ecx, eax
13085
                mov     eax, [esp+8]
13086
                adc     edx, ebx
13087
                mov     ebx, [esp+0Ch]
13088
                mov     [esp+40h], ecx
13089
                mov     [esp+44h], edx
13090
                mov     ecx, eax
13091
                mov     edx, ebx
13092
                shr     ecx, 1Ch
13093
                mov     ebp, eax
13094
                shl     edx, 4
13095
                mov     edi, ebx
13096
                shl     ebp, 1Eh
13097
                or      ecx, edx
13098
                shr     edi, 2
13099
                or      ebp, edi
13100
                mov     edx, ebx
13101
                xor     ebp, ecx
13102
                mov     ecx, eax
13103
                shr     edx, 7
13104
                shl     ecx, 19h
13105
                or      ecx, edx
13106
                mov     edx, eax
13107
                xor     ebp, ecx
13108
                mov     ecx, ebx
13109
                mov     [esp+48h], ebp
13110
                shr     ecx, 1Ch
13111
                mov     ebp, ebx
13112
                shl     edx, 4
13113
                mov     edi, eax
13114
                shl     ebp, 1Eh
13115
                or      ecx, edx
13116
                shr     edi, 2
13117
                or      ebp, edi
13118
                mov     edx, eax
13119
                xor     ebp, ecx
13120
                mov     ecx, ebx
13121
                shl     ecx, 19h
13122
                shr     edx, 7
13123
                or      ecx, edx
13124
                mov     edx, [esp+14h]
13125
                xor     ebp, ecx
13126
                mov     ecx, [esp+10h]
13127
                mov     [esp+4Ch], ebp
13128
                mov     ebp, [esp+18h]
13129
                mov     edi, [esp+1Ch]
13130
                or      ecx, ebp
13131
                or      edx, edi
13132
                and     eax, ecx
13133
                and     ebx, edx
13134
                mov     ecx, [esp+10h]
13135
                mov     edx, [esp+14h]
13136
                and     ebp, ecx
13137
                and     edi, edx
13138
                or      eax, ebp
13139
                or      ebx, edi
13140
                mov     ecx, [esp+48h]
13141
                mov     edx, [esp+4Ch]
13142
                add     eax, ecx
13143
                mov     ebp, [esp+40h]
13144
                adc     ebx, edx
13145
                mov     ecx, [esp+20h]
13146
                mov     edx, [esp+24h]
13147
                mov     edi, [esp+44h]
13148
                add     ecx, ebp
13149
                adc     edx, edi
13150
                mov     [esp+20h], ecx
13151
                mov     [esp+24h], edx
13152
                add     ebp, eax
13153
                adc     edi, ebx
13154
                mov     [esp], ebp
13155
                mov     [esp+4], edi
13156
                inc     dword ptr [esp+50h]
13157
                cmp     dword ptr [esp+50h], 0Ah
13158
                jnz     @@body_loop
13159
                mov     edi, [esp+5Ch]
13160
                mov     eax, [esp]
13161
                mov     ebx, [esp+4]
13162
                mov     ecx, [esp+8]
13163
                mov     edx, [esp+0Ch]
13164
                add     [edi], eax
13165
                adc     [edi+4], ebx
13166
                add     [edi+8], ecx
13167
                adc     [edi+0Ch], edx
13168
                mov     eax, [esp+10h]
13169
                mov     ebx, [esp+14h]
13170
                mov     ecx, [esp+18h]
13171
                mov     edx, [esp+1Ch]
13172
                add     [edi+10h], eax
13173
                adc     [edi+14h], ebx
13174
                add     [edi+18h], ecx
13175
                adc     [edi+1Ch], edx
13176
                mov     eax, [esp+20h]
13177
                mov     ebx, [esp+24h]
13178
                mov     ecx, [esp+28h]
13179
                mov     edx, [esp+2Ch]
13180
                add     [edi+20h], eax
13181
                adc     [edi+24h], ebx
13182
                add     [edi+28h], ecx
13183
                adc     [edi+2Ch], edx
13184
                mov     eax, [esp+30h]
13185
                mov     ebx, [esp+34h]
13186
                mov     ecx, [esp+38h]
13187
                mov     edx, [esp+3Ch]
13188
                add     [edi+30h], eax
13189
                adc     [edi+34h], ebx
13190
                add     [edi+38h], ecx
13191
                adc     [edi+3Ch], edx
13192
                add     esp, 60h
13193
13194
                pop     ebp
13195
                pop     edi
13196
                pop     esi
13197
                pop     ebx
13198
  end;
13199
end;
13200
{$ENDIF}
13201
13202
{$IFDEF THashBaseHaval_asm}
13203
procedure THashBaseHaval.DoTransform3(Buffer: PUInt32Array);
13204
asm
13205
                push    ebx
13206
                push    esi
13207
                push    edi
13208
                lea     edi, [eax].THashBaseHaval.FDigest
13209
                mov     esi, edx
13210
                push    ebp
13211
                mov     ebp, esp
13212
                add     esp, 0FFFFFFD4h
13213
                and     esp, 0FFFFFFC0h
13214
                mov     eax, [edi]
13215
                mov     ebx, [edi+4]
13216
                mov     [esp+20h], esi
13217
                mov     [esp+24h], edi
13218
                mov     [esp+28h], ebp
13219
                mov     [esp], eax
13220
                mov     [esp+4], ebx
13221
                mov     ecx, [edi+8]
13222
                mov     edx, [edi+0Ch]
13223
                mov     [esp+8], ecx
13224
                mov     [esp+0Ch], edx
13225
                mov     eax, [edi+10h]
13226
                mov     ebx, [edi+14h]
13227
                mov     [esp+10h], eax
13228
                mov     [esp+14h], ebx
13229
                mov     ecx, [edi+18h]
13230
                mov     edx, [edi+1Ch]
13231
                mov     [esp+18h], ecx
13232
                mov     [esp+1Ch], edx
13233
                mov     eax, edx
13234
                mov     ebp, [esp]
13235
                mov     ebx, [esp+0Ch]
13236
                mov     ecx, [esp+10h]
13237
                ror     eax, 0Bh
13238
                xor     ebx, ecx
13239
                mov     edi, [esp+4]
13240
                and     ebx, [esp+8]
13241
                and     edi, [esp+14h]
13242
                xor     ecx, ebx
13243
                and     ebp, [esp+18h]
13244
                xor     edi, ecx
13245
                mov     edx, [esi]
13246
                xor     ebp, edi
13247
                add     eax, edx
13248
                ror     ebp, 7
13249
                add     ebp, eax
13250
                mov     eax, [esp+18h]
13251
                mov     [esp+1Ch], ebp
13252
                mov     ebx, [esp+8]
13253
                mov     ecx, [esp+0Ch]
13254
                ror     eax, 0Bh
13255
                xor     ebx, ecx
13256
                mov     edi, [esp]
13257
                and     ebx, [esp+4]
13258
                and     edi, [esp+10h]
13259
                xor     ecx, ebx
13260
                and     ebp, [esp+14h]
13261
                xor     edi, ecx
13262
                mov     edx, [esi+4]
13263
                xor     ebp, edi
13264
                add     eax, edx
13265
                ror     ebp, 7
13266
                add     ebp, eax
13267
                mov     eax, [esp+14h]
13268
                mov     [esp+18h], ebp
13269
                mov     ebx, [esp+4]
13270
                mov     ecx, [esp+8]
13271
                ror     eax, 0Bh
13272
                xor     ebx, ecx
13273
                mov     edi, [esp+1Ch]
13274
                and     ebx, [esp]
13275
                and     edi, [esp+0Ch]
13276
                xor     ecx, ebx
13277
                and     ebp, [esp+10h]
13278
                xor     edi, ecx
13279
                mov     edx, [esi+8]
13280
                xor     ebp, edi
13281
                add     eax, edx
13282
                ror     ebp, 7
13283
                add     ebp, eax
13284
                mov     eax, [esp+10h]
13285
                mov     [esp+14h], ebp
13286
                mov     ebx, [esp]
13287
                mov     ecx, [esp+4]
13288
                ror     eax, 0Bh
13289
                xor     ebx, ecx
13290
                mov     edi, [esp+18h]
13291
                and     ebx, [esp+1Ch]
13292
                and     edi, [esp+8]
13293
                xor     ecx, ebx
13294
                and     ebp, [esp+0Ch]
13295
                xor     edi, ecx
13296
                mov     edx, [esi+0Ch]
13297
                xor     ebp, edi
13298
                add     eax, edx
13299
                ror     ebp, 7
13300
                add     ebp, eax
13301
                mov     eax, [esp+0Ch]
13302
                mov     [esp+10h], ebp
13303
                mov     ebx, [esp+1Ch]
13304
                mov     ecx, [esp]
13305
                ror     eax, 0Bh
13306
                xor     ebx, ecx
13307
                mov     edi, [esp+14h]
13308
                and     ebx, [esp+18h]
13309
                and     edi, [esp+4]
13310
                xor     ecx, ebx
13311
                and     ebp, [esp+8]
13312
                xor     edi, ecx
13313
                mov     edx, [esi+10h]
13314
                xor     ebp, edi
13315
                add     eax, edx
13316
                ror     ebp, 7
13317
                add     ebp, eax
13318
                mov     eax, [esp+8]
13319
                mov     [esp+0Ch], ebp
13320
                mov     ebx, [esp+18h]
13321
                mov     ecx, [esp+1Ch]
13322
                ror     eax, 0Bh
13323
                xor     ebx, ecx
13324
                mov     edi, [esp+10h]
13325
                and     ebx, [esp+14h]
13326
                and     edi, [esp]
13327
                xor     ecx, ebx
13328
                and     ebp, [esp+4]
13329
                xor     edi, ecx
13330
                mov     edx, [esi+14h]
13331
                xor     ebp, edi
13332
                add     eax, edx
13333
                ror     ebp, 7
13334
                add     ebp, eax
13335
                mov     eax, [esp+4]
13336
                mov     [esp+8], ebp
13337
                mov     ebx, [esp+14h]
13338
                mov     ecx, [esp+18h]
13339
                ror     eax, 0Bh
13340
                xor     ebx, ecx
13341
                mov     edi, [esp+0Ch]
13342
                and     ebx, [esp+10h]
13343
                and     edi, [esp+1Ch]
13344
                xor     ecx, ebx
13345
                and     ebp, [esp]
13346
                xor     edi, ecx
13347
                mov     edx, [esi+18h]
13348
                xor     ebp, edi
13349
                add     eax, edx
13350
                ror     ebp, 7
13351
                add     ebp, eax
13352
                mov     eax, [esp]
13353
                mov     [esp+4], ebp
13354
                mov     ebx, [esp+10h]
13355
                mov     ecx, [esp+14h]
13356
                ror     eax, 0Bh
13357
                xor     ebx, ecx
13358
                mov     edi, [esp+8]
13359
                and     ebx, [esp+0Ch]
13360
                and     edi, [esp+18h]
13361
                xor     ecx, ebx
13362
                and     ebp, [esp+1Ch]
13363
                xor     edi, ecx
13364
                mov     edx, [esi+1Ch]
13365
                xor     ebp, edi
13366
                add     eax, edx
13367
                ror     ebp, 7
13368
                add     ebp, eax
13369
                mov     eax, [esp+1Ch]
13370
                mov     [esp], ebp
13371
                mov     ebx, [esp+0Ch]
13372
                mov     ecx, [esp+10h]
13373
                ror     eax, 0Bh
13374
                xor     ebx, ecx
13375
                mov     edi, [esp+4]
13376
                and     ebx, [esp+8]
13377
                and     edi, [esp+14h]
13378
                xor     ecx, ebx
13379
                and     ebp, [esp+18h]
13380
                xor     edi, ecx
13381
                mov     edx, [esi+20h]
13382
                xor     ebp, edi
13383
                add     eax, edx
13384
                ror     ebp, 7
13385
                add     ebp, eax
13386
                mov     eax, [esp+18h]
13387
                mov     [esp+1Ch], ebp
13388
                mov     ebx, [esp+8]
13389
                mov     ecx, [esp+0Ch]
13390
                ror     eax, 0Bh
13391
                xor     ebx, ecx
13392
                mov     edi, [esp]
13393
                and     ebx, [esp+4]
13394
                and     edi, [esp+10h]
13395
                xor     ecx, ebx
13396
                and     ebp, [esp+14h]
13397
                xor     edi, ecx
13398
                mov     edx, [esi+24h]
13399
                xor     ebp, edi
13400
                add     eax, edx
13401
                ror     ebp, 7
13402
                add     ebp, eax
13403
                mov     eax, [esp+14h]
13404
                mov     [esp+18h], ebp
13405
                mov     ebx, [esp+4]
13406
                mov     ecx, [esp+8]
13407
                ror     eax, 0Bh
13408
                xor     ebx, ecx
13409
                mov     edi, [esp+1Ch]
13410
                and     ebx, [esp]
13411
                and     edi, [esp+0Ch]
13412
                xor     ecx, ebx
13413
                and     ebp, [esp+10h]
13414
                xor     edi, ecx
13415
                mov     edx, [esi+28h]
13416
                xor     ebp, edi
13417
                add     eax, edx
13418
                ror     ebp, 7
13419
                add     ebp, eax
13420
                mov     eax, [esp+10h]
13421
                mov     [esp+14h], ebp
13422
                mov     ebx, [esp]
13423
                mov     ecx, [esp+4]
13424
                ror     eax, 0Bh
13425
                xor     ebx, ecx
13426
                mov     edi, [esp+18h]
13427
                and     ebx, [esp+1Ch]
13428
                and     edi, [esp+8]
13429
                xor     ecx, ebx
13430
                and     ebp, [esp+0Ch]
13431
                xor     edi, ecx
13432
                mov     edx, [esi+2Ch]
13433
                xor     ebp, edi
13434
                add     eax, edx
13435
                ror     ebp, 7
13436
                add     ebp, eax
13437
                mov     eax, [esp+0Ch]
13438
                mov     [esp+10h], ebp
13439
                mov     ebx, [esp+1Ch]
13440
                mov     ecx, [esp]
13441
                ror     eax, 0Bh
13442
                xor     ebx, ecx
13443
                mov     edi, [esp+14h]
13444
                and     ebx, [esp+18h]
13445
                and     edi, [esp+4]
13446
                xor     ecx, ebx
13447
                and     ebp, [esp+8]
13448
                xor     edi, ecx
13449
                mov     edx, [esi+30h]
13450
                xor     ebp, edi
13451
                add     eax, edx
13452
                ror     ebp, 7
13453
                add     ebp, eax
13454
                mov     eax, [esp+8]
13455
                mov     [esp+0Ch], ebp
13456
                mov     ebx, [esp+18h]
13457
                mov     ecx, [esp+1Ch]
13458
                ror     eax, 0Bh
13459
                xor     ebx, ecx
13460
                mov     edi, [esp+10h]
13461
                and     ebx, [esp+14h]
13462
                and     edi, [esp]
13463
                xor     ecx, ebx
13464
                and     ebp, [esp+4]
13465
                xor     edi, ecx
13466
                mov     edx, [esi+34h]
13467
                xor     ebp, edi
13468
                add     eax, edx
13469
                ror     ebp, 7
13470
                add     ebp, eax
13471
                mov     eax, [esp+4]
13472
                mov     [esp+8], ebp
13473
                mov     ebx, [esp+14h]
13474
                mov     ecx, [esp+18h]
13475
                ror     eax, 0Bh
13476
                xor     ebx, ecx
13477
                mov     edi, [esp+0Ch]
13478
                and     ebx, [esp+10h]
13479
                and     edi, [esp+1Ch]
13480
                xor     ecx, ebx
13481
                and     ebp, [esp]
13482
                xor     edi, ecx
13483
                mov     edx, [esi+38h]
13484
                xor     ebp, edi
13485
                add     eax, edx
13486
                ror     ebp, 7
13487
                add     ebp, eax
13488
                mov     eax, [esp]
13489
                mov     [esp+4], ebp
13490
                mov     ebx, [esp+10h]
13491
                mov     ecx, [esp+14h]
13492
                ror     eax, 0Bh
13493
                xor     ebx, ecx
13494
                mov     edi, [esp+8]
13495
                and     ebx, [esp+0Ch]
13496
                and     edi, [esp+18h]
13497
                xor     ecx, ebx
13498
                and     ebp, [esp+1Ch]
13499
                xor     edi, ecx
13500
                mov     edx, [esi+3Ch]
13501
                xor     ebp, edi
13502
                add     eax, edx
13503
                ror     ebp, 7
13504
                add     ebp, eax
13505
                mov     eax, [esp+1Ch]
13506
                mov     [esp], ebp
13507
                mov     ebx, [esp+0Ch]
13508
                mov     ecx, [esp+10h]
13509
                ror     eax, 0Bh
13510
                xor     ebx, ecx
13511
                mov     edi, [esp+4]
13512
                and     ebx, [esp+8]
13513
                and     edi, [esp+14h]
13514
                xor     ecx, ebx
13515
                and     ebp, [esp+18h]
13516
                xor     edi, ecx
13517
                mov     edx, [esi+40h]
13518
                xor     ebp, edi
13519
                add     eax, edx
13520
                ror     ebp, 7
13521
                add     ebp, eax
13522
                mov     eax, [esp+18h]
13523
                mov     [esp+1Ch], ebp
13524
                mov     ebx, [esp+8]
13525
                mov     ecx, [esp+0Ch]
13526
                ror     eax, 0Bh
13527
                xor     ebx, ecx
13528
                mov     edi, [esp]
13529
                and     ebx, [esp+4]
13530
                and     edi, [esp+10h]
13531
                xor     ecx, ebx
13532
                and     ebp, [esp+14h]
13533
                xor     edi, ecx
13534
                mov     edx, [esi+44h]
13535
                xor     ebp, edi
13536
                add     eax, edx
13537
                ror     ebp, 7
13538
                add     ebp, eax
13539
                mov     eax, [esp+14h]
13540
                mov     [esp+18h], ebp
13541
                mov     ebx, [esp+4]
13542
                mov     ecx, [esp+8]
13543
                ror     eax, 0Bh
13544
                xor     ebx, ecx
13545
                mov     edi, [esp+1Ch]
13546
                and     ebx, [esp]
13547
                and     edi, [esp+0Ch]
13548
                xor     ecx, ebx
13549
                and     ebp, [esp+10h]
13550
                xor     edi, ecx
13551
                mov     edx, [esi+48h]
13552
                xor     ebp, edi
13553
                add     eax, edx
13554
                ror     ebp, 7
13555
                add     ebp, eax
13556
                mov     eax, [esp+10h]
13557
                mov     [esp+14h], ebp
13558
                mov     ebx, [esp]
13559
                mov     ecx, [esp+4]
13560
                ror     eax, 0Bh
13561
                xor     ebx, ecx
13562
                mov     edi, [esp+18h]
13563
                and     ebx, [esp+1Ch]
13564
                and     edi, [esp+8]
13565
                xor     ecx, ebx
13566
                and     ebp, [esp+0Ch]
13567
                xor     edi, ecx
13568
                mov     edx, [esi+4Ch]
13569
                xor     ebp, edi
13570
                add     eax, edx
13571
                ror     ebp, 7
13572
                add     ebp, eax
13573
                mov     eax, [esp+0Ch]
13574
                mov     [esp+10h], ebp
13575
                mov     ebx, [esp+1Ch]
13576
                mov     ecx, [esp]
13577
                ror     eax, 0Bh
13578
                xor     ebx, ecx
13579
                mov     edi, [esp+14h]
13580
                and     ebx, [esp+18h]
13581
                and     edi, [esp+4]
13582
                xor     ecx, ebx
13583
                and     ebp, [esp+8]
13584
                xor     edi, ecx
13585
                mov     edx, [esi+50h]
13586
                xor     ebp, edi
13587
                add     eax, edx
13588
                ror     ebp, 7
13589
                add     ebp, eax
13590
                mov     eax, [esp+8]
13591
                mov     [esp+0Ch], ebp
13592
                mov     ebx, [esp+18h]
13593
                mov     ecx, [esp+1Ch]
13594
                ror     eax, 0Bh
13595
                xor     ebx, ecx
13596
                mov     edi, [esp+10h]
13597
                and     ebx, [esp+14h]
13598
                and     edi, [esp]
13599
                xor     ecx, ebx
13600
                and     ebp, [esp+4]
13601
                xor     edi, ecx
13602
                mov     edx, [esi+54h]
13603
                xor     ebp, edi
13604
                add     eax, edx
13605
                ror     ebp, 7
13606
                add     ebp, eax
13607
                mov     eax, [esp+4]
13608
                mov     [esp+8], ebp
13609
                mov     ebx, [esp+14h]
13610
                mov     ecx, [esp+18h]
13611
                ror     eax, 0Bh
13612
                xor     ebx, ecx
13613
                mov     edi, [esp+0Ch]
13614
                and     ebx, [esp+10h]
13615
                and     edi, [esp+1Ch]
13616
                xor     ecx, ebx
13617
                and     ebp, [esp]
13618
                xor     edi, ecx
13619
                mov     edx, [esi+58h]
13620
                xor     ebp, edi
13621
                add     eax, edx
13622
                ror     ebp, 7
13623
                add     ebp, eax
13624
                mov     eax, [esp]
13625
                mov     [esp+4], ebp
13626
                mov     ebx, [esp+10h]
13627
                mov     ecx, [esp+14h]
13628
                ror     eax, 0Bh
13629
                xor     ebx, ecx
13630
                mov     edi, [esp+8]
13631
                and     ebx, [esp+0Ch]
13632
                and     edi, [esp+18h]
13633
                xor     ecx, ebx
13634
                and     ebp, [esp+1Ch]
13635
                xor     edi, ecx
13636
                mov     edx, [esi+5Ch]
13637
                xor     ebp, edi
13638
                add     eax, edx
13639
                ror     ebp, 7
13640
                add     ebp, eax
13641
                mov     eax, [esp+1Ch]
13642
                mov     [esp], ebp
13643
                mov     ebx, [esp+0Ch]
13644
                mov     ecx, [esp+10h]
13645
                ror     eax, 0Bh
13646
                xor     ebx, ecx
13647
                mov     edi, [esp+4]
13648
                and     ebx, [esp+8]
13649
                and     edi, [esp+14h]
13650
                xor     ecx, ebx
13651
                and     ebp, [esp+18h]
13652
                xor     edi, ecx
13653
                mov     edx, [esi+60h]
13654
                xor     ebp, edi
13655
                add     eax, edx
13656
                ror     ebp, 7
13657
                add     ebp, eax
13658
                mov     eax, [esp+18h]
13659
                mov     [esp+1Ch], ebp
13660
                mov     ebx, [esp+8]
13661
                mov     ecx, [esp+0Ch]
13662
                ror     eax, 0Bh
13663
                xor     ebx, ecx
13664
                mov     edi, [esp]
13665
                and     ebx, [esp+4]
13666
                and     edi, [esp+10h]
13667
                xor     ecx, ebx
13668
                and     ebp, [esp+14h]
13669
                xor     edi, ecx
13670
                mov     edx, [esi+64h]
13671
                xor     ebp, edi
13672
                add     eax, edx
13673
                ror     ebp, 7
13674
                add     ebp, eax
13675
                mov     eax, [esp+14h]
13676
                mov     [esp+18h], ebp
13677
                mov     ebx, [esp+4]
13678
                mov     ecx, [esp+8]
13679
                ror     eax, 0Bh
13680
                xor     ebx, ecx
13681
                mov     edi, [esp+1Ch]
13682
                and     ebx, [esp]
13683
                and     edi, [esp+0Ch]
13684
                xor     ecx, ebx
13685
                and     ebp, [esp+10h]
13686
                xor     edi, ecx
13687
                mov     edx, [esi+68h]
13688
                xor     ebp, edi
13689
                add     eax, edx
13690
                ror     ebp, 7
13691
                add     ebp, eax
13692
                mov     eax, [esp+10h]
13693
                mov     [esp+14h], ebp
13694
                mov     ebx, [esp]
13695
                mov     ecx, [esp+4]
13696
                ror     eax, 0Bh
13697
                xor     ebx, ecx
13698
                mov     edi, [esp+18h]
13699
                and     ebx, [esp+1Ch]
13700
                and     edi, [esp+8]
13701
                xor     ecx, ebx
13702
                and     ebp, [esp+0Ch]
13703
                xor     edi, ecx
13704
                mov     edx, [esi+6Ch]
13705
                xor     ebp, edi
13706
                add     eax, edx
13707
                ror     ebp, 7
13708
                add     ebp, eax
13709
                mov     eax, [esp+0Ch]
13710
                mov     [esp+10h], ebp
13711
                mov     ebx, [esp+1Ch]
13712
                mov     ecx, [esp]
13713
                ror     eax, 0Bh
13714
                xor     ebx, ecx
13715
                mov     edi, [esp+14h]
13716
                and     ebx, [esp+18h]
13717
                and     edi, [esp+4]
13718
                xor     ecx, ebx
13719
                and     ebp, [esp+8]
13720
                xor     edi, ecx
13721
                mov     edx, [esi+70h]
13722
                xor     ebp, edi
13723
                add     eax, edx
13724
                ror     ebp, 7
13725
                add     ebp, eax
13726
                mov     eax, [esp+8]
13727
                mov     [esp+0Ch], ebp
13728
                mov     ebx, [esp+18h]
13729
                mov     ecx, [esp+1Ch]
13730
                ror     eax, 0Bh
13731
                xor     ebx, ecx
13732
                mov     edi, [esp+10h]
13733
                and     ebx, [esp+14h]
13734
                and     edi, [esp]
13735
                xor     ecx, ebx
13736
                and     ebp, [esp+4]
13737
                xor     edi, ecx
13738
                mov     edx, [esi+74h]
13739
                xor     ebp, edi
13740
                add     eax, edx
13741
                ror     ebp, 7
13742
                add     ebp, eax
13743
                mov     eax, [esp+4]
13744
                mov     [esp+8], ebp
13745
                mov     ebx, [esp+14h]
13746
                mov     ecx, [esp+18h]
13747
                ror     eax, 0Bh
13748
                xor     ebx, ecx
13749
                mov     edi, [esp+0Ch]
13750
                and     ebx, [esp+10h]
13751
                and     edi, [esp+1Ch]
13752
                xor     ecx, ebx
13753
                and     ebp, [esp]
13754
                xor     edi, ecx
13755
                mov     edx, [esi+78h]
13756
                xor     ebp, edi
13757
                add     eax, edx
13758
                ror     ebp, 7
13759
                add     ebp, eax
13760
                mov     eax, [esp]
13761
                mov     [esp+4], ebp
13762
                mov     ebx, [esp+10h]
13763
                mov     ecx, [esp+14h]
13764
                ror     eax, 0Bh
13765
                xor     ebx, ecx
13766
                mov     edi, [esp+8]
13767
                and     ebx, [esp+0Ch]
13768
                and     edi, [esp+18h]
13769
                xor     ecx, ebx
13770
                and     ebp, [esp+1Ch]
13771
                xor     edi, ecx
13772
                mov     edx, [esi+7Ch]
13773
                xor     ebp, edi
13774
                add     eax, edx
13775
                ror     ebp, 7
13776
                add     ebp, eax
13777
                mov     eax, [esp+1Ch]
13778
                mov     [esp], ebp
13779
                mov     ebp, [esp]
13780
                mov     ebx, [esp+4]
13781
                mov     edi, [esp+8]
13782
                xor     ebp, 0FFFFFFFFh
13783
                mov     ecx, [esp+0Ch]
13784
                and     ebx, edi
13785
                mov     edx, [esp+18h]
13786
                and     ebp, ecx
13787
                xor     ebx, [esp+10h]
13788
                xor     ebp, edx
13789
                xor     ecx, edi
13790
                xor     ebx, ebp
13791
                and     ecx, [esp+4]
13792
                and     ebx, [esp+14h]
13793
                ror     eax, 0Bh
13794
                xor     ecx, edx
13795
                mov     ebp, [esi+14h]
13796
                xor     ecx, ebx
13797
                and     edi, [esp]
13798
                xor     ecx, edi
13799
                lea     ebp, [eax+ebp+452821E6h]
13800
                ror     ecx, 7
13801
                add     ebp, ecx
13802
                mov     eax, [esp+18h]
13803
                mov     [esp+1Ch], ebp
13804
                mov     ebx, [esp]
13805
                mov     edi, [esp+4]
13806
                xor     ebp, 0FFFFFFFFh
13807
                mov     ecx, [esp+8]
13808
                and     ebx, edi
13809
                mov     edx, [esp+14h]
13810
                and     ebp, ecx
13811
                xor     ebx, [esp+0Ch]
13812
                xor     ebp, edx
13813
                xor     ecx, edi
13814
                xor     ebx, ebp
13815
                and     ecx, [esp]
13816
                and     ebx, [esp+10h]
13817
                ror     eax, 0Bh
13818
                xor     ecx, edx
13819
                mov     ebp, [esi+38h]
13820
                xor     ecx, ebx
13821
                and     edi, [esp+1Ch]
13822
                xor     ecx, edi
13823
                lea     ebp, [eax+ebp+38D01377h]
13824
                ror     ecx, 7
13825
                add     ebp, ecx
13826
                mov     eax, [esp+14h]
13827
                mov     [esp+18h], ebp
13828
                mov     ebx, [esp+1Ch]
13829
                mov     edi, [esp]
13830
                xor     ebp, 0FFFFFFFFh
13831
                mov     ecx, [esp+4]
13832
                and     ebx, edi
13833
                mov     edx, [esp+10h]
13834
                and     ebp, ecx
13835
                xor     ebx, [esp+8]
13836
                xor     ebp, edx
13837
                xor     ecx, edi
13838
                xor     ebx, ebp
13839
                and     ecx, [esp+1Ch]
13840
                and     ebx, [esp+0Ch]
13841
                ror     eax, 0Bh
13842
                xor     ecx, edx
13843
                mov     ebp, [esi+68h]
13844
                xor     ecx, ebx
13845
                and     edi, [esp+18h]
13846
                xor     ecx, edi
13847
                lea     ebp, [eax+ebp-41AB9931h]
13848
                ror     ecx, 7
13849
                add     ebp, ecx
13850
                mov     eax, [esp+10h]
13851
                mov     [esp+14h], ebp
13852
                mov     ebx, [esp+18h]
13853
                mov     edi, [esp+1Ch]
13854
                xor     ebp, 0FFFFFFFFh
13855
                mov     ecx, [esp]
13856
                and     ebx, edi
13857
                mov     edx, [esp+0Ch]
13858
                and     ebp, ecx
13859
                xor     ebx, [esp+4]
13860
                xor     ebp, edx
13861
                xor     ecx, edi
13862
                xor     ebx, ebp
13863
                and     ecx, [esp+18h]
13864
                and     ebx, [esp+8]
13865
                ror     eax, 0Bh
13866
                xor     ecx, edx
13867
                mov     ebp, [esi+48h]
13868
                xor     ecx, ebx
13869
                and     edi, [esp+14h]
13870
                xor     ecx, edi
13871
                lea     ebp, [eax+ebp+34E90C6Ch]
13872
                ror     ecx, 7
13873
                add     ebp, ecx
13874
                mov     eax, [esp+0Ch]
13875
                mov     [esp+10h], ebp
13876
                mov     ebx, [esp+14h]
13877
                mov     edi, [esp+18h]
13878
                xor     ebp, 0FFFFFFFFh
13879
                mov     ecx, [esp+1Ch]
13880
                and     ebx, edi
13881
                mov     edx, [esp+8]
13882
                and     ebp, ecx
13883
                xor     ebx, [esp]
13884
                xor     ebp, edx
13885
                xor     ecx, edi
13886
                xor     ebx, ebp
13887
                and     ecx, [esp+14h]
13888
                and     ebx, [esp+4]
13889
                ror     eax, 0Bh
13890
                xor     ecx, edx
13891
                mov     ebp, [esi+2Ch]
13892
                xor     ecx, ebx
13893
                and     edi, [esp+10h]
13894
                xor     ecx, edi
13895
                lea     ebp, [eax+ebp-3F53D649h]
13896
                ror     ecx, 7
13897
                add     ebp, ecx
13898
                mov     eax, [esp+8]
13899
                mov     [esp+0Ch], ebp
13900
                mov     ebx, [esp+10h]
13901
                mov     edi, [esp+14h]
13902
                xor     ebp, 0FFFFFFFFh
13903
                mov     ecx, [esp+18h]
13904
                and     ebx, edi
13905
                mov     edx, [esp+4]
13906
                and     ebp, ecx
13907
                xor     ebx, [esp+1Ch]
13908
                xor     ebp, edx
13909
                xor     ecx, edi
13910
                xor     ebx, ebp
13911
                and     ecx, [esp+10h]
13912
                and     ebx, [esp]
13913
                ror     eax, 0Bh
13914
                xor     ecx, edx
13915
                mov     ebp, [esi+70h]
13916
                xor     ecx, ebx
13917
                and     edi, [esp+0Ch]
13918
                xor     ecx, edi
13919
                lea     ebp, [eax+ebp-3683AF23h]
13920
                ror     ecx, 7
13921
                add     ebp, ecx
13922
                mov     eax, [esp+4]
13923
                mov     [esp+8], ebp
13924
                mov     ebx, [esp+0Ch]
13925
                mov     edi, [esp+10h]
13926
                xor     ebp, 0FFFFFFFFh
13927
                mov     ecx, [esp+14h]
13928
                and     ebx, edi
13929
                mov     edx, [esp]
13930
                and     ebp, ecx
13931
                xor     ebx, [esp+18h]
13932
                xor     ebp, edx
13933
                xor     ecx, edi
13934
                xor     ebx, ebp
13935
                and     ecx, [esp+0Ch]
13936
                and     ebx, [esp+1Ch]
13937
                ror     eax, 0Bh
13938
                xor     ecx, edx
13939
                mov     ebp, [esi+1Ch]
13940
                xor     ecx, ebx
13941
                and     edi, [esp+8]
13942
                xor     ecx, edi
13943
                lea     ebp, [eax+ebp+3F84D5B5h]
13944
                ror     ecx, 7
13945
                add     ebp, ecx
13946
                mov     eax, [esp]
13947
                mov     [esp+4], ebp
13948
                mov     ebx, [esp+8]
13949
                mov     edi, [esp+0Ch]
13950
                xor     ebp, 0FFFFFFFFh
13951
                mov     ecx, [esp+10h]
13952
                and     ebx, edi
13953
                mov     edx, [esp+1Ch]
13954
                and     ebp, ecx
13955
                xor     ebx, [esp+14h]
13956
                xor     ebp, edx
13957
                xor     ecx, edi
13958
                xor     ebx, ebp
13959
                and     ecx, [esp+8]
13960
                and     ebx, [esp+18h]
13961
                ror     eax, 0Bh
13962
                xor     ecx, edx
13963
                mov     ebp, [esi+40h]
13964
                xor     ecx, ebx
13965
                and     edi, [esp+4]
13966
                xor     ecx, edi
13967
                lea     ebp, [eax+ebp-4AB8F6E9h]
13968
                ror     ecx, 7
13969
                add     ebp, ecx
13970
                mov     eax, [esp+1Ch]
13971
                mov     [esp], ebp
13972
                mov     ebx, [esp+4]
13973
                mov     edi, [esp+8]
13974
                xor     ebp, 0FFFFFFFFh
13975
                mov     ecx, [esp+0Ch]
13976
                and     ebx, edi
13977
                mov     edx, [esp+18h]
13978
                and     ebp, ecx
13979
                xor     ebx, [esp+10h]
13980
                xor     ebp, edx
13981
                xor     ecx, edi
13982
                xor     ebx, ebp
13983
                and     ecx, [esp+4]
13984
                and     ebx, [esp+14h]
13985
                ror     eax, 0Bh
13986
                xor     ecx, edx
13987
                mov     ebp, [esi]
13988
                xor     ecx, ebx
13989
                and     edi, [esp]
13990
                xor     ecx, edi
13991
                lea     ebp, [eax+ebp-6DE92A27h]
13992
                ror     ecx, 7
13993
                add     ebp, ecx
13994
                mov     eax, [esp+18h]
13995
                mov     [esp+1Ch], ebp
13996
                mov     ebx, [esp]
13997
                mov     edi, [esp+4]
13998
                xor     ebp, 0FFFFFFFFh
13999
                mov     ecx, [esp+8]
14000
                and     ebx, edi
14001
                mov     edx, [esp+14h]
14002
                and     ebp, ecx
14003
                xor     ebx, [esp+0Ch]
14004
                xor     ebp, edx
14005
                xor     ecx, edi
14006
                xor     ebx, ebp
14007
                and     ecx, [esp]
14008
                and     ebx, [esp+10h]
14009
                ror     eax, 0Bh
14010
                xor     ecx, edx
14011
                mov     ebp, [esi+5Ch]
14012
                xor     ecx, ebx
14013
                and     edi, [esp+1Ch]
14014
                xor     ecx, edi
14015
                lea     ebp, [eax+ebp-768604E5h]
14016
                ror     ecx, 7
14017
                add     ebp, ecx
14018
                mov     eax, [esp+14h]
14019
                mov     [esp+18h], ebp
14020
                mov     ebx, [esp+1Ch]
14021
                mov     edi, [esp]
14022
                xor     ebp, 0FFFFFFFFh
14023
                mov     ecx, [esp+4]
14024
                and     ebx, edi
14025
                mov     edx, [esp+10h]
14026
                and     ebp, ecx
14027
                xor     ebx, [esp+8]
14028
                xor     ebp, edx
14029
                xor     ecx, edi
14030
                xor     ebx, ebp
14031
                and     ecx, [esp+1Ch]
14032
                and     ebx, [esp+0Ch]
14033
                ror     eax, 0Bh
14034
                xor     ecx, edx
14035
                mov     ebp, [esi+50h]
14036
                xor     ecx, ebx
14037
                and     edi, [esp+18h]
14038
                xor     ecx, edi
14039
                lea     ebp, [eax+ebp-2ECEF45Ah]
14040
                ror     ecx, 7
14041
                add     ebp, ecx
14042
                mov     eax, [esp+10h]
14043
                mov     [esp+14h], ebp
14044
                mov     ebx, [esp+18h]
14045
                mov     edi, [esp+1Ch]
14046
                xor     ebp, 0FFFFFFFFh
14047
                mov     ecx, [esp]
14048
                and     ebx, edi
14049
                mov     edx, [esp+0Ch]
14050
                and     ebp, ecx
14051
                xor     ebx, [esp+4]
14052
                xor     ebp, edx
14053
                xor     ecx, edi
14054
                xor     ebx, ebp
14055
                and     ecx, [esp+18h]
14056
                and     ebx, [esp+8]
14057
                ror     eax, 0Bh
14058
                xor     ecx, edx
14059
                mov     ebp, [esi+58h]
14060
                xor     ecx, ebx
14061
                and     edi, [esp+14h]
14062
                xor     ecx, edi
14063
                lea     ebp, [eax+ebp-67204A54h]
14064
                ror     ecx, 7
14065
                add     ebp, ecx
14066
                mov     eax, [esp+0Ch]
14067
                mov     [esp+10h], ebp
14068
                mov     ebx, [esp+14h]
14069
                mov     edi, [esp+18h]
14070
                xor     ebp, 0FFFFFFFFh
14071
                mov     ecx, [esp+1Ch]
14072
                and     ebx, edi
14073
                mov     edx, [esp+8]
14074
                and     ebp, ecx
14075
                xor     ebx, [esp]
14076
                xor     ebp, edx
14077
                xor     ecx, edi
14078
                xor     ebx, ebp
14079
                and     ecx, [esp+14h]
14080
                and     ebx, [esp+4]
14081
                ror     eax, 0Bh
14082
                xor     ecx, edx
14083
                mov     ebp, [esi+4]
14084
                xor     ecx, ebx
14085
                and     edi, [esp+10h]
14086
                xor     ecx, edi
14087
                lea     ebp, [eax+ebp+2FFD72DBh]
14088
                ror     ecx, 7
14089
                add     ebp, ecx
14090
                mov     eax, [esp+8]
14091
                mov     [esp+0Ch], ebp
14092
                mov     ebx, [esp+10h]
14093
                mov     edi, [esp+14h]
14094
                xor     ebp, 0FFFFFFFFh
14095
                mov     ecx, [esp+18h]
14096
                and     ebx, edi
14097
                mov     edx, [esp+4]
14098
                and     ebp, ecx
14099
                xor     ebx, [esp+1Ch]
14100
                xor     ebp, edx
14101
                xor     ecx, edi
14102
                xor     ebx, ebp
14103
                and     ecx, [esp+10h]
14104
                and     ebx, [esp]
14105
                ror     eax, 0Bh
14106
                xor     ecx, edx
14107
                mov     ebp, [esi+28h]
14108
                xor     ecx, ebx
14109
                and     edi, [esp+0Ch]
14110
                xor     ecx, edi
14111
                lea     ebp, [eax+ebp-2FE52049h]
14112
                ror     ecx, 7
14113
                add     ebp, ecx
14114
                mov     eax, [esp+4]
14115
                mov     [esp+8], ebp
14116
                mov     ebx, [esp+0Ch]
14117
                mov     edi, [esp+10h]
14118
                xor     ebp, 0FFFFFFFFh
14119
                mov     ecx, [esp+14h]
14120
                and     ebx, edi
14121
                mov     edx, [esp]
14122
                and     ebp, ecx
14123
                xor     ebx, [esp+18h]
14124
                xor     ebp, edx
14125
                xor     ecx, edi
14126
                xor     ebx, ebp
14127
                and     ecx, [esp+0Ch]
14128
                and     ebx, [esp+1Ch]
14129
                ror     eax, 0Bh
14130
                xor     ecx, edx
14131
                mov     ebp, [esi+10h]
14132
                xor     ecx, ebx
14133
                and     edi, [esp+8]
14134
                xor     ecx, edi
14135
                lea     ebp, [eax+ebp-471E5013h]
14136
                ror     ecx, 7
14137
                add     ebp, ecx
14138
                mov     eax, [esp]
14139
                mov     [esp+4], ebp
14140
                mov     ebx, [esp+8]
14141
                mov     edi, [esp+0Ch]
14142
                xor     ebp, 0FFFFFFFFh
14143
                mov     ecx, [esp+10h]
14144
                and     ebx, edi
14145
                mov     edx, [esp+1Ch]
14146
                and     ebp, ecx
14147
                xor     ebx, [esp+14h]
14148
                xor     ebp, edx
14149
                xor     ecx, edi
14150
                xor     ebx, ebp
14151
                and     ecx, [esp+8]
14152
                and     ebx, [esp+18h]
14153
                ror     eax, 0Bh
14154
                xor     ecx, edx
14155
                mov     ebp, [esi+20h]
14156
                xor     ecx, ebx
14157
                and     edi, [esp+4]
14158
                xor     ecx, edi
14159
                lea     ebp, [eax+ebp+6A267E96h]
14160
                ror     ecx, 7
14161
                add     ebp, ecx
14162
                mov     eax, [esp+1Ch]
14163
                mov     [esp], ebp
14164
                mov     ebx, [esp+4]
14165
                mov     edi, [esp+8]
14166
                xor     ebp, 0FFFFFFFFh
14167
                mov     ecx, [esp+0Ch]
14168
                and     ebx, edi
14169
                mov     edx, [esp+18h]
14170
                and     ebp, ecx
14171
                xor     ebx, [esp+10h]
14172
                xor     ebp, edx
14173
                xor     ecx, edi
14174
                xor     ebx, ebp
14175
                and     ecx, [esp+4]
14176
                and     ebx, [esp+14h]
14177
                ror     eax, 0Bh
14178
                xor     ecx, edx
14179
                mov     ebp, [esi+78h]
14180
                xor     ecx, ebx
14181
                and     edi, [esp]
14182
                xor     ecx, edi
14183
                lea     ebp, [eax+ebp-45836FBBh]
14184
                ror     ecx, 7
14185
                add     ebp, ecx
14186
                mov     eax, [esp+18h]
14187
                mov     [esp+1Ch], ebp
14188
                mov     ebx, [esp]
14189
                mov     edi, [esp+4]
14190
                xor     ebp, 0FFFFFFFFh
14191
                mov     ecx, [esp+8]
14192
                and     ebx, edi
14193
                mov     edx, [esp+14h]
14194
                and     ebp, ecx
14195
                xor     ebx, [esp+0Ch]
14196
                xor     ebp, edx
14197
                xor     ecx, edi
14198
                xor     ebx, ebp
14199
                and     ecx, [esp]
14200
                and     ebx, [esp+10h]
14201
                ror     eax, 0Bh
14202
                xor     ecx, edx
14203
                mov     ebp, [esi+0Ch]
14204
                xor     ecx, ebx
14205
                and     edi, [esp+1Ch]
14206
                xor     ecx, edi
14207
                lea     ebp, [eax+ebp-0ED38067h]
14208
                ror     ecx, 7
14209
                add     ebp, ecx
14210
                mov     eax, [esp+14h]
14211
                mov     [esp+18h], ebp
14212
                mov     ebx, [esp+1Ch]
14213
                mov     edi, [esp]
14214
                xor     ebp, 0FFFFFFFFh
14215
                mov     ecx, [esp+4]
14216
                and     ebx, edi
14217
                mov     edx, [esp+10h]
14218
                and     ebp, ecx
14219
                xor     ebx, [esp+8]
14220
                xor     ebp, edx
14221
                xor     ecx, edi
14222
                xor     ebx, ebp
14223
                and     ecx, [esp+1Ch]
14224
                and     ebx, [esp+0Ch]
14225
                ror     eax, 0Bh
14226
                xor     ecx, edx
14227
                mov     ebp, [esi+54h]
14228
                xor     ecx, ebx
14229
                and     edi, [esp+18h]
14230
                xor     ecx, edi
14231
                lea     ebp, [eax+ebp+24A19947h]
14232
                ror     ecx, 7
14233
                add     ebp, ecx
14234
                mov     eax, [esp+10h]
14235
                mov     [esp+14h], ebp
14236
                mov     ebx, [esp+18h]
14237
                mov     edi, [esp+1Ch]
14238
                xor     ebp, 0FFFFFFFFh
14239
                mov     ecx, [esp]
14240
                and     ebx, edi
14241
                mov     edx, [esp+0Ch]
14242
                and     ebp, ecx
14243
                xor     ebx, [esp+4]
14244
                xor     ebp, edx
14245
                xor     ecx, edi
14246
                xor     ebx, ebp
14247
                and     ecx, [esp+18h]
14248
                and     ebx, [esp+8]
14249
                ror     eax, 0Bh
14250
                xor     ecx, edx
14251
                mov     ebp, [esi+24h]
14252
                xor     ecx, ebx
14253
                and     edi, [esp+14h]
14254
                xor     ecx, edi
14255
                lea     ebp, [eax+ebp-4C6E9309h]
14256
                ror     ecx, 7
14257
                add     ebp, ecx
14258
                mov     eax, [esp+0Ch]
14259
                mov     [esp+10h], ebp
14260
                mov     ebx, [esp+14h]
14261
                mov     edi, [esp+18h]
14262
                xor     ebp, 0FFFFFFFFh
14263
                mov     ecx, [esp+1Ch]
14264
                and     ebx, edi
14265
                mov     edx, [esp+8]
14266
                and     ebp, ecx
14267
                xor     ebx, [esp]
14268
                xor     ebp, edx
14269
                xor     ecx, edi
14270
                xor     ebx, ebp
14271
                and     ecx, [esp+14h]
14272
                and     ebx, [esp+4]
14273
                ror     eax, 0Bh
14274
                xor     ecx, edx
14275
                mov     ebp, [esi+44h]
14276
                xor     ecx, ebx
14277
                and     edi, [esp+10h]
14278
                xor     ecx, edi
14279
                lea     ebp, [eax+ebp+801F2E2h]
14280
                ror     ecx, 7
14281
                add     ebp, ecx
14282
                mov     eax, [esp+8]
14283
                mov     [esp+0Ch], ebp
14284
                mov     ebx, [esp+10h]
14285
                mov     edi, [esp+14h]
14286
                xor     ebp, 0FFFFFFFFh
14287
                mov     ecx, [esp+18h]
14288
                and     ebx, edi
14289
                mov     edx, [esp+4]
14290
                and     ebp, ecx
14291
                xor     ebx, [esp+1Ch]
14292
                xor     ebp, edx
14293
                xor     ecx, edi
14294
                xor     ebx, ebp
14295
                and     ecx, [esp+10h]
14296
                and     ebx, [esp]
14297
                ror     eax, 0Bh
14298
                xor     ecx, edx
14299
                mov     ebp, [esi+60h]
14300
                xor     ecx, ebx
14301
                and     edi, [esp+0Ch]
14302
                xor     ecx, edi
14303
                lea     ebp, [eax+ebp-7A7103EAh]
14304
                ror     ecx, 7
14305
                add     ebp, ecx
14306
                mov     eax, [esp+4]
14307
                mov     [esp+8], ebp
14308
                mov     ebx, [esp+0Ch]
14309
                mov     edi, [esp+10h]
14310
                xor     ebp, 0FFFFFFFFh
14311
                mov     ecx, [esp+14h]
14312
                and     ebx, edi
14313
                mov     edx, [esp]
14314
                and     ebp, ecx
14315
                xor     ebx, [esp+18h]
14316
                xor     ebp, edx
14317
                xor     ecx, edi
14318
                xor     ebx, ebp
14319
                and     ecx, [esp+0Ch]
14320
                and     ebx, [esp+1Ch]
14321
                ror     eax, 0Bh
14322
                xor     ecx, edx
14323
                mov     ebp, [esi+74h]
14324
                xor     ecx, ebx
14325
                and     edi, [esp+8]
14326
                xor     ecx, edi
14327
                lea     ebp, [eax+ebp+636920D8h]
14328
                ror     ecx, 7
14329
                add     ebp, ecx
14330
                mov     eax, [esp]
14331
                mov     [esp+4], ebp
14332
                mov     ebx, [esp+8]
14333
                mov     edi, [esp+0Ch]
14334
                xor     ebp, 0FFFFFFFFh
14335
                mov     ecx, [esp+10h]
14336
                and     ebx, edi
14337
                mov     edx, [esp+1Ch]
14338
                and     ebp, ecx
14339
                xor     ebx, [esp+14h]
14340
                xor     ebp, edx
14341
                xor     ecx, edi
14342
                xor     ebx, ebp
14343
                and     ecx, [esp+8]
14344
                and     ebx, [esp+18h]
14345
                ror     eax, 0Bh
14346
                xor     ecx, edx
14347
                mov     ebp, [esi+18h]
14348
                xor     ecx, ebx
14349
                and     edi, [esp+4]
14350
                xor     ecx, edi
14351
                lea     ebp, [eax+ebp+71574E69h]
14352
                ror     ecx, 7
14353
                add     ebp, ecx
14354
                mov     eax, [esp+1Ch]
14355
                mov     [esp], ebp
14356
                mov     ebx, [esp+4]
14357
                mov     edi, [esp+8]
14358
                xor     ebp, 0FFFFFFFFh
14359
                mov     ecx, [esp+0Ch]
14360
                and     ebx, edi
14361
                mov     edx, [esp+18h]
14362
                and     ebp, ecx
14363
                xor     ebx, [esp+10h]
14364
                xor     ebp, edx
14365
                xor     ecx, edi
14366
                xor     ebx, ebp
14367
                and     ecx, [esp+4]
14368
                and     ebx, [esp+14h]
14369
                ror     eax, 0Bh
14370
                xor     ecx, edx
14371
                mov     ebp, [esi+4Ch]
14372
                xor     ecx, ebx
14373
                and     edi, [esp]
14374
                xor     ecx, edi
14375
                lea     ebp, [eax+ebp-5BA7015Dh]
14376
                ror     ecx, 7
14377
                add     ebp, ecx
14378
                mov     eax, [esp+18h]
14379
                mov     [esp+1Ch], ebp
14380
                mov     ebx, [esp]
14381
                mov     edi, [esp+4]
14382
                xor     ebp, 0FFFFFFFFh
14383
                mov     ecx, [esp+8]
14384
                and     ebx, edi
14385
                mov     edx, [esp+14h]
14386
                and     ebp, ecx
14387
                xor     ebx, [esp+0Ch]
14388
                xor     ebp, edx
14389
                xor     ecx, edi
14390
                xor     ebx, ebp
14391
                and     ecx, [esp]
14392
                and     ebx, [esp+10h]
14393
                ror     eax, 0Bh
14394
                xor     ecx, edx
14395
                mov     ebp, [esi+30h]
14396
                xor     ecx, ebx
14397
                and     edi, [esp+1Ch]
14398
                xor     ecx, edi
14399
                lea     ebp, [eax+ebp-0B6CC282h]
14400
                ror     ecx, 7
14401
                add     ebp, ecx
14402
                mov     eax, [esp+14h]
14403
                mov     [esp+18h], ebp
14404
                mov     ebx, [esp+1Ch]
14405
                mov     edi, [esp]
14406
                xor     ebp, 0FFFFFFFFh
14407
                mov     ecx, [esp+4]
14408
                and     ebx, edi
14409
                mov     edx, [esp+10h]
14410
                and     ebp, ecx
14411
                xor     ebx, [esp+8]
14412
                xor     ebp, edx
14413
                xor     ecx, edi
14414
                xor     ebx, ebp
14415
                and     ecx, [esp+1Ch]
14416
                and     ebx, [esp+0Ch]
14417
                ror     eax, 0Bh
14418
                xor     ecx, edx
14419
                mov     ebp, [esi+3Ch]
14420
                xor     ecx, ebx
14421
                and     edi, [esp+18h]
14422
                xor     ecx, edi
14423
                lea     ebp, [eax+ebp+0D95748Fh]
14424
                ror     ecx, 7
14425
                add     ebp, ecx
14426
                mov     eax, [esp+10h]
14427
                mov     [esp+14h], ebp
14428
                mov     ebx, [esp+18h]
14429
                mov     edi, [esp+1Ch]
14430
                xor     ebp, 0FFFFFFFFh
14431
                mov     ecx, [esp]
14432
                and     ebx, edi
14433
                mov     edx, [esp+0Ch]
14434
                and     ebp, ecx
14435
                xor     ebx, [esp+4]
14436
                xor     ebp, edx
14437
                xor     ecx, edi
14438
                xor     ebx, ebp
14439
                and     ecx, [esp+18h]
14440
                and     ebx, [esp+8]
14441
                ror     eax, 0Bh
14442
                xor     ecx, edx
14443
                mov     ebp, [esi+34h]
14444
                xor     ecx, ebx
14445
                and     edi, [esp+14h]
14446
                xor     ecx, edi
14447
                lea     ebp, [eax+ebp+728EB658h]
14448
                ror     ecx, 7
14449
                add     ebp, ecx
14450
                mov     eax, [esp+0Ch]
14451
                mov     [esp+10h], ebp
14452
                mov     ebx, [esp+14h]
14453
                mov     edi, [esp+18h]
14454
                xor     ebp, 0FFFFFFFFh
14455
                mov     ecx, [esp+1Ch]
14456
                and     ebx, edi
14457
                mov     edx, [esp+8]
14458
                and     ebp, ecx
14459
                xor     ebx, [esp]
14460
                xor     ebp, edx
14461
                xor     ecx, edi
14462
                xor     ebx, ebp
14463
                and     ecx, [esp+14h]
14464
                and     ebx, [esp+4]
14465
                ror     eax, 0Bh
14466
                xor     ecx, edx
14467
                mov     ebp, [esi+8]
14468
                xor     ecx, ebx
14469
                and     edi, [esp+10h]
14470
                xor     ecx, edi
14471
                lea     ebp, [eax+ebp+718BCD58h]
14472
                ror     ecx, 7
14473
                add     ebp, ecx
14474
                mov     eax, [esp+8]
14475
                mov     [esp+0Ch], ebp
14476
                mov     ebx, [esp+10h]
14477
                mov     edi, [esp+14h]
14478
                xor     ebp, 0FFFFFFFFh
14479
                mov     ecx, [esp+18h]
14480
                and     ebx, edi
14481
                mov     edx, [esp+4]
14482
                and     ebp, ecx
14483
                xor     ebx, [esp+1Ch]
14484
                xor     ebp, edx
14485
                xor     ecx, edi
14486
                xor     ebx, ebp
14487
                and     ecx, [esp+10h]
14488
                and     ebx, [esp]
14489
                ror     eax, 0Bh
14490
                xor     ecx, edx
14491
                mov     ebp, [esi+64h]
14492
                xor     ecx, ebx
14493
                and     edi, [esp+0Ch]
14494
                xor     ecx, edi
14495
                lea     ebp, [eax+ebp-7DEAB512h]
14496
                ror     ecx, 7
14497
                add     ebp, ecx
14498
                mov     eax, [esp+4]
14499
                mov     [esp+8], ebp
14500
                mov     ebx, [esp+0Ch]
14501
                mov     edi, [esp+10h]
14502
                xor     ebp, 0FFFFFFFFh
14503
                mov     ecx, [esp+14h]
14504
                and     ebx, edi
14505
                mov     edx, [esp]
14506
                and     ebp, ecx
14507
                xor     ebx, [esp+18h]
14508
                xor     ebp, edx
14509
                xor     ecx, edi
14510
                xor     ebx, ebp
14511
                and     ecx, [esp+0Ch]
14512
                and     ebx, [esp+1Ch]
14513
                ror     eax, 0Bh
14514
                xor     ecx, edx
14515
                mov     ebp, [esi+7Ch]
14516
                xor     ecx, ebx
14517
                and     edi, [esp+8]
14518
                xor     ecx, edi
14519
                lea     ebp, [eax+ebp+7B54A41Dh]
14520
                ror     ecx, 7
14521
                add     ebp, ecx
14522
                mov     eax, [esp]
14523
                mov     [esp+4], ebp
14524
                mov     ebx, [esp+8]
14525
                mov     edi, [esp+0Ch]
14526
                xor     ebp, 0FFFFFFFFh
14527
                mov     ecx, [esp+10h]
14528
                and     ebx, edi
14529
                mov     edx, [esp+1Ch]
14530
                and     ebp, ecx
14531
                xor     ebx, [esp+14h]
14532
                xor     ebp, edx
14533
                xor     ecx, edi
14534
                xor     ebx, ebp
14535
                and     ecx, [esp+8]
14536
                and     ebx, [esp+18h]
14537
                ror     eax, 0Bh
14538
                xor     ecx, edx
14539
                mov     ebp, [esi+6Ch]
14540
                xor     ecx, ebx
14541
                and     edi, [esp+4]
14542
                xor     ecx, edi
14543
                lea     ebp, [eax+ebp-3DA5A64Bh]
14544
                ror     ecx, 7
14545
                add     ebp, ecx
14546
                mov     eax, [esp+1Ch]
14547
                mov     [esp], ebp
14548
                mov     ebx, [esp+10h]
14549
                mov     ecx, [esp+14h]
14550
                mov     edi, ebx
14551
                and     ebx, [esp+4]
14552
                and     edi, ecx
14553
                xor     ebx, ebp
14554
                ror     eax, 0Bh
14555
                xor     edi, ebp
14556
                mov     ebp, [esi+4Ch]
14557
                xor     edi, [esp+18h]
14558
                and     ecx, [esp+8]
14559
                and     edi, [esp+0Ch]
14560
                xor     ecx, ebx
14561
                lea     ebp, [eax+ebp-63CF2AC7h]
14562
                xor     ecx, edi
14563
                ror     ecx, 7
14564
                add     ebp, ecx
14565
                mov     eax, [esp+18h]
14566
                mov     [esp+1Ch], ebp
14567
                mov     ebx, [esp+0Ch]
14568
                mov     ecx, [esp+10h]
14569
                mov     edi, ebx
14570
                and     ebx, [esp]
14571
                and     edi, ecx
14572
                xor     ebx, ebp
14573
                ror     eax, 0Bh
14574
                xor     edi, ebp
14575
                mov     ebp, [esi+24h]
14576
                xor     edi, [esp+14h]
14577
                and     ecx, [esp+4]
14578
                and     edi, [esp+8]
14579
                xor     ecx, ebx
14580
                lea     ebp, [eax+ebp+2AF26013h]
14581
                xor     ecx, edi
14582
                ror     ecx, 7
14583
                add     ebp, ecx
14584
                mov     eax, [esp+14h]
14585
                mov     [esp+18h], ebp
14586
                mov     ebx, [esp+8]
14587
                mov     ecx, [esp+0Ch]
14588
                mov     edi, ebx
14589
                and     ebx, [esp+1Ch]
14590
                and     edi, ecx
14591
                xor     ebx, ebp
14592
                ror     eax, 0Bh
14593
                xor     edi, ebp
14594
                mov     ebp, [esi+10h]
14595
                xor     edi, [esp+10h]
14596
                and     ecx, [esp]
14597
                and     edi, [esp+4]
14598
                xor     ecx, ebx
14599
                lea     ebp, [eax+ebp-3A2E4FDDh]
14600
                xor     ecx, edi
14601
                ror     ecx, 7
14602
                add     ebp, ecx
14603
                mov     eax, [esp+10h]
14604
                mov     [esp+14h], ebp
14605
                mov     ebx, [esp+4]
14606
                mov     ecx, [esp+8]
14607
                mov     edi, ebx
14608
                and     ebx, [esp+18h]
14609
                and     edi, ecx
14610
                xor     ebx, ebp
14611
                ror     eax, 0Bh
14612
                xor     edi, ebp
14613
                mov     ebp, [esi+50h]
14614
                xor     edi, [esp+0Ch]
14615
                and     ecx, [esp+1Ch]
14616
                and     edi, [esp]
14617
                xor     ecx, ebx
14618
                lea     ebp, [eax+ebp+286085F0h]
14619
                xor     ecx, edi
14620
                ror     ecx, 7
14621
                add     ebp, ecx
14622
                mov     eax, [esp+0Ch]
14623
                mov     [esp+10h], ebp
14624
                mov     ebx, [esp]
14625
                mov     ecx, [esp+4]
14626
                mov     edi, ebx
14627
                and     ebx, [esp+14h]
14628
                and     edi, ecx
14629
                xor     ebx, ebp
14630
                ror     eax, 0Bh
14631
                xor     edi, ebp
14632
                mov     ebp, [esi+70h]
14633
                xor     edi, [esp+8]
14634
                and     ecx, [esp+18h]
14635
                and     edi, [esp+1Ch]
14636
                xor     ecx, ebx
14637
                lea     ebp, [eax+ebp-35BE86E8h]
14638
                xor     ecx, edi
14639
                ror     ecx, 7
14640
                add     ebp, ecx
14641
                mov     eax, [esp+8]
14642
                mov     [esp+0Ch], ebp
14643
                mov     ebx, [esp+1Ch]
14644
                mov     ecx, [esp]
14645
                mov     edi, ebx
14646
                and     ebx, [esp+10h]
14647
                and     edi, ecx
14648
                xor     ebx, ebp
14649
                ror     eax, 0Bh
14650
                xor     edi, ebp
14651
                mov     ebp, [esi+44h]
14652
                xor     edi, [esp+4]
14653
                and     ecx, [esp+14h]
14654
                and     edi, [esp+18h]
14655
                xor     ecx, ebx
14656
                lea     ebp, [eax+ebp-4724C711h]
14657
                xor     ecx, edi
14658
                ror     ecx, 7
14659
                add     ebp, ecx
14660
                mov     eax, [esp+4]
14661
                mov     [esp+8], ebp
14662
                mov     ebx, [esp+18h]
14663
                mov     ecx, [esp+1Ch]
14664
                mov     edi, ebx
14665
                and     ebx, [esp+0Ch]
14666
                and     edi, ecx
14667
                xor     ebx, ebp
14668
                ror     eax, 0Bh
14669
                xor     edi, ebp
14670
                mov     ebp, [esi+20h]
14671
                xor     edi, [esp]
14672
                and     ecx, [esp+10h]
14673
                and     edi, [esp+14h]
14674
                xor     ecx, ebx
14675
                lea     ebp, [eax+ebp-71862350h]
14676
                xor     ecx, edi
14677
                ror     ecx, 7
14678
                add     ebp, ecx
14679
                mov     eax, [esp]
14680
                mov     [esp+4], ebp
14681
                mov     ebx, [esp+14h]
14682
                mov     ecx, [esp+18h]
14683
                mov     edi, ebx
14684
                and     ebx, [esp+8]
14685
                and     edi, ecx
14686
                xor     ebx, ebp
14687
                ror     eax, 0Bh
14688
                xor     edi, ebp
14689
                mov     ebp, [esi+58h]
14690
                xor     edi, [esp+1Ch]
14691
                and     ecx, [esp+0Ch]
14692
                and     edi, [esp+10h]
14693
                xor     ecx, ebx
14694
                lea     ebp, [eax+ebp+603A180Eh]
14695
                xor     ecx, edi
14696
                ror     ecx, 7
14697
                add     ebp, ecx
14698
                mov     eax, [esp+1Ch]
14699
                mov     [esp], ebp
14700
                mov     ebx, [esp+10h]
14701
                mov     ecx, [esp+14h]
14702
                mov     edi, ebx
14703
                and     ebx, [esp+4]
14704
                and     edi, ecx
14705
                xor     ebx, ebp
14706
                ror     eax, 0Bh
14707
                xor     edi, ebp
14708
                mov     ebp, [esi+74h]
14709
                xor     edi, [esp+18h]
14710
                and     ecx, [esp+8]
14711
                and     edi, [esp+0Ch]
14712
                xor     ecx, ebx
14713
                lea     ebp, [eax+ebp+6C9E0E8Bh]
14714
                xor     ecx, edi
14715
                ror     ecx, 7
14716
                add     ebp, ecx
14717
                mov     eax, [esp+18h]
14718
                mov     [esp+1Ch], ebp
14719
                mov     ebx, [esp+0Ch]
14720
                mov     ecx, [esp+10h]
14721
                mov     edi, ebx
14722
                and     ebx, [esp]
14723
                and     edi, ecx
14724
                xor     ebx, ebp
14725
                ror     eax, 0Bh
14726
                xor     edi, ebp
14727
                mov     ebp, [esi+38h]
14728
                xor     edi, [esp+14h]
14729
                and     ecx, [esp+4]
14730
                and     edi, [esp+8]
14731
                xor     ecx, ebx
14732
                lea     ebp, [eax+ebp-4FE175C2h]
14733
                xor     ecx, edi
14734
                ror     ecx, 7
14735
                add     ebp, ecx
14736
                mov     eax, [esp+14h]
14737
                mov     [esp+18h], ebp
14738
                mov     ebx, [esp+8]
14739
                mov     ecx, [esp+0Ch]
14740
                mov     edi, ebx
14741
                and     ebx, [esp+1Ch]
14742
                and     edi, ecx
14743
                xor     ebx, ebp
14744
                ror     eax, 0Bh
14745
                xor     edi, ebp
14746
                mov     ebp, [esi+64h]
14747
                xor     edi, [esp+10h]
14748
                and     ecx, [esp]
14749
                and     edi, [esp+4]
14750
                xor     ecx, ebx
14751
                lea     ebp, [eax+ebp-28EA883Fh]
14752
                xor     ecx, edi
14753
                ror     ecx, 7
14754
                add     ebp, ecx
14755
                mov     eax, [esp+10h]
14756
                mov     [esp+14h], ebp
14757
                mov     ebx, [esp+4]
14758
                mov     ecx, [esp+8]
14759
                mov     edi, ebx
14760
                and     ebx, [esp+18h]
14761
                and     edi, ecx
14762
                xor     ebx, ebp
14763
                ror     eax, 0Bh
14764
                xor     edi, ebp
14765
                mov     ebp, [esi+30h]
14766
                xor     edi, [esp+0Ch]
14767
                and     ecx, [esp+1Ch]
14768
                and     edi, [esp]
14769
                xor     ecx, ebx
14770
                lea     ebp, [eax+ebp-42CEB4D9h]
14771
                xor     ecx, edi
14772
                ror     ecx, 7
14773
                add     ebp, ecx
14774
                mov     eax, [esp+0Ch]
14775
                mov     [esp+10h], ebp
14776
                mov     ebx, [esp]
14777
                mov     ecx, [esp+4]
14778
                mov     edi, ebx
14779
                and     ebx, [esp+14h]
14780
                and     edi, ecx
14781
                xor     ebx, ebp
14782
                ror     eax, 0Bh
14783
                xor     edi, ebp
14784
                mov     ebp, [esi+60h]
14785
                xor     edi, [esp+8]
14786
                and     ecx, [esp+18h]
14787
                and     edi, [esp+1Ch]
14788
                xor     ecx, ebx
14789
                lea     ebp, [eax+ebp+78AF2FDAh]
14790
                xor     ecx, edi
14791
                ror     ecx, 7
14792
                add     ebp, ecx
14793
                mov     eax, [esp+8]
14794
                mov     [esp+0Ch], ebp
14795
                mov     ebx, [esp+1Ch]
14796
                mov     ecx, [esp]
14797
                mov     edi, ebx
14798
                and     ebx, [esp+10h]
14799
                and     edi, ecx
14800
                xor     ebx, ebp
14801
                ror     eax, 0Bh
14802
                xor     edi, ebp
14803
                mov     ebp, [esi+78h]
14804
                xor     edi, [esp+4]
14805
                and     ecx, [esp+14h]
14806
                and     edi, [esp+18h]
14807
                xor     ecx, ebx
14808
                lea     ebp, [eax+ebp+55605C60h]
14809
                xor     ecx, edi
14810
                ror     ecx, 7
14811
                add     ebp, ecx
14812
                mov     eax, [esp+4]
14813
                mov     [esp+8], ebp
14814
                mov     ebx, [esp+18h]
14815
                mov     ecx, [esp+1Ch]
14816
                mov     edi, ebx
14817
                and     ebx, [esp+0Ch]
14818
                and     edi, ecx
14819
                xor     ebx, ebp
14820
                ror     eax, 0Bh
14821
                xor     edi, ebp
14822
                mov     ebp, [esi+40h]
14823
                xor     edi, [esp]
14824
                and     ecx, [esp+10h]
14825
                and     edi, [esp+14h]
14826
                xor     ecx, ebx
14827
                lea     ebp, [eax+ebp-19AADA0Dh]
14828
                xor     ecx, edi
14829
                ror     ecx, 7
14830
                add     ebp, ecx
14831
                mov     eax, [esp]
14832
                mov     [esp+4], ebp
14833
                mov     ebx, [esp+14h]
14834
                mov     ecx, [esp+18h]
14835
                mov     edi, ebx
14836
                and     ebx, [esp+8]
14837
                and     edi, ecx
14838
                xor     ebx, ebp
14839
                ror     eax, 0Bh
14840
                xor     edi, ebp
14841
                mov     ebp, [esi+68h]
14842
                xor     edi, [esp+1Ch]
14843
                and     ecx, [esp+0Ch]
14844
                and     edi, [esp+10h]
14845
                xor     ecx, ebx
14846
                lea     ebp, [eax+ebp-55AA546Ch]
14847
                xor     ecx, edi
14848
                ror     ecx, 7
14849
                add     ebp, ecx
14850
                mov     eax, [esp+1Ch]
14851
                mov     [esp], ebp
14852
                mov     ebx, [esp+10h]
14853
                mov     ecx, [esp+14h]
14854
                mov     edi, ebx
14855
                and     ebx, [esp+4]
14856
                and     edi, ecx
14857
                xor     ebx, ebp
14858
                ror     eax, 0Bh
14859
                xor     edi, ebp
14860
                mov     ebp, [esi+7Ch]
14861
                xor     edi, [esp+18h]
14862
                and     ecx, [esp+8]
14863
                and     edi, [esp+0Ch]
14864
                xor     ecx, ebx
14865
                lea     ebp, [eax+ebp+57489862h]
14866
                xor     ecx, edi
14867
                ror     ecx, 7
14868
                add     ebp, ecx
14869
                mov     eax, [esp+18h]
14870
                mov     [esp+1Ch], ebp
14871
                mov     ebx, [esp+0Ch]
14872
                mov     ecx, [esp+10h]
14873
                mov     edi, ebx
14874
                and     ebx, [esp]
14875
                and     edi, ecx
14876
                xor     ebx, ebp
14877
                ror     eax, 0Bh
14878
                xor     edi, ebp
14879
                mov     ebp, [esi+3Ch]
14880
                xor     edi, [esp+14h]
14881
                and     ecx, [esp+4]
14882
                and     edi, [esp+8]
14883
                xor     ecx, ebx
14884
                lea     ebp, [eax+ebp+63E81440h]
14885
                xor     ecx, edi
14886
                ror     ecx, 7
14887
                add     ebp, ecx
14888
                mov     eax, [esp+14h]
14889
                mov     [esp+18h], ebp
14890
                mov     ebx, [esp+8]
14891
                mov     ecx, [esp+0Ch]
14892
                mov     edi, ebx
14893
                and     ebx, [esp+1Ch]
14894
                and     edi, ecx
14895
                xor     ebx, ebp
14896
                ror     eax, 0Bh
14897
                xor     edi, ebp
14898
                mov     ebp, [esi+1Ch]
14899
                xor     edi, [esp+10h]
14900
                and     ecx, [esp]
14901
                and     edi, [esp+4]
14902
                xor     ecx, ebx
14903
                lea     ebp, [eax+ebp+55CA396Ah]
14904
                xor     ecx, edi
14905
                ror     ecx, 7
14906
                add     ebp, ecx
14907
                mov     eax, [esp+10h]
14908
                mov     [esp+14h], ebp
14909
                mov     ebx, [esp+4]
14910
                mov     ecx, [esp+8]
14911
                mov     edi, ebx
14912
                and     ebx, [esp+18h]
14913
                and     edi, ecx
14914
                xor     ebx, ebp
14915
                ror     eax, 0Bh
14916
                xor     edi, ebp
14917
                mov     ebp, [esi+0Ch]
14918
                xor     edi, [esp+0Ch]
14919
                and     ecx, [esp+1Ch]
14920
                and     edi, [esp]
14921
                xor     ecx, ebx
14922
                lea     ebp, [eax+ebp+2AAB10B6h]
14923
                xor     ecx, edi
14924
                ror     ecx, 7
14925
                add     ebp, ecx
14926
                mov     eax, [esp+0Ch]
14927
                mov     [esp+10h], ebp
14928
                mov     ebx, [esp]
14929
                mov     ecx, [esp+4]
14930
                mov     edi, ebx
14931
                and     ebx, [esp+14h]
14932
                and     edi, ecx
14933
                xor     ebx, ebp
14934
                ror     eax, 0Bh
14935
                xor     edi, ebp
14936
                mov     ebp, [esi+4]
14937
                xor     edi, [esp+8]
14938
                and     ecx, [esp+18h]
14939
                and     edi, [esp+1Ch]
14940
                xor     ecx, ebx
14941
                lea     ebp, [eax+ebp-4B33A3CCh]
14942
                xor     ecx, edi
14943
                ror     ecx, 7
14944
                add     ebp, ecx
14945
                mov     eax, [esp+8]
14946
                mov     [esp+0Ch], ebp
14947
                mov     ebx, [esp+1Ch]
14948
                mov     ecx, [esp]
14949
                mov     edi, ebx
14950
                and     ebx, [esp+10h]
14951
                and     edi, ecx
14952
                xor     ebx, ebp
14953
                ror     eax, 0Bh
14954
                xor     edi, ebp
14955
                mov     ebp, [esi]
14956
                xor     edi, [esp+4]
14957
                and     ecx, [esp+14h]
14958
                and     edi, [esp+18h]
14959
                xor     ecx, ebx
14960
                lea     ebp, [eax+ebp+1141E8CEh]
14961
                xor     ecx, edi
14962
                ror     ecx, 7
14963
                add     ebp, ecx
14964
                mov     eax, [esp+4]
14965
                mov     [esp+8], ebp
14966
                mov     ebx, [esp+18h]
14967
                mov     ecx, [esp+1Ch]
14968
                mov     edi, ebx
14969
                and     ebx, [esp+0Ch]
14970
                and     edi, ecx
14971
                xor     ebx, ebp
14972
                ror     eax, 0Bh
14973
                xor     edi, ebp
14974
                mov     ebp, [esi+48h]
14975
                xor     edi, [esp]
14976
                and     ecx, [esp+10h]
14977
                and     edi, [esp+14h]
14978
                xor     ecx, ebx
14979
                lea     ebp, [eax+ebp-5EAB7951h]
14980
                xor     ecx, edi
14981
                ror     ecx, 7
14982
                add     ebp, ecx
14983
                mov     eax, [esp]
14984
                mov     [esp+4], ebp
14985
                mov     ebx, [esp+14h]
14986
                mov     ecx, [esp+18h]
14987
                mov     edi, ebx
14988
                and     ebx, [esp+8]
14989
                and     edi, ecx
14990
                xor     ebx, ebp
14991
                ror     eax, 0Bh
14992
                xor     edi, ebp
14993
                mov     ebp, [esi+6Ch]
14994
                xor     edi, [esp+1Ch]
14995
                and     ecx, [esp+0Ch]
14996
                and     edi, [esp+10h]
14997
                xor     ecx, ebx
14998
                lea     ebp, [eax+ebp+7C72E993h]
14999
                xor     ecx, edi
15000
                ror     ecx, 7
15001
                add     ebp, ecx
15002
                mov     eax, [esp+1Ch]
15003
                mov     [esp], ebp
15004
                mov     ebx, [esp+10h]
15005
                mov     ecx, [esp+14h]
15006
                mov     edi, ebx
15007
                and     ebx, [esp+4]
15008
                and     edi, ecx
15009
                xor     ebx, ebp
15010
                ror     eax, 0Bh
15011
                xor     edi, ebp
15012
                mov     ebp, [esi+34h]
15013
                xor     edi, [esp+18h]
15014
                and     ecx, [esp+8]
15015
                and     edi, [esp+0Ch]
15016
                xor     ecx, ebx
15017
                lea     ebp, [eax+ebp-4C11EBEFh]
15018
                xor     ecx, edi
15019
                ror     ecx, 7
15020
                add     ebp, ecx
15021
                mov     eax, [esp+18h]
15022
                mov     [esp+1Ch], ebp
15023
                mov     ebx, [esp+0Ch]
15024
                mov     ecx, [esp+10h]
15025
                mov     edi, ebx
15026
                and     ebx, [esp]
15027
                and     edi, ecx
15028
                xor     ebx, ebp
15029
                ror     eax, 0Bh
15030
                xor     edi, ebp
15031
                mov     ebp, [esi+18h]
15032
                xor     edi, [esp+14h]
15033
                and     ecx, [esp+4]
15034
                and     edi, [esp+8]
15035
                xor     ecx, ebx
15036
                lea     ebp, [eax+ebp+636FBC2Ah]
15037
                xor     ecx, edi
15038
                ror     ecx, 7
15039
                add     ebp, ecx
15040
                mov     eax, [esp+14h]
15041
                mov     [esp+18h], ebp
15042
                mov     ebx, [esp+8]
15043
                mov     ecx, [esp+0Ch]
15044
                mov     edi, ebx
15045
                and     ebx, [esp+1Ch]
15046
                and     edi, ecx
15047
                xor     ebx, ebp
15048
                ror     eax, 0Bh
15049
                xor     edi, ebp
15050
                mov     ebp, [esi+54h]
15051
                xor     edi, [esp+10h]
15052
                and     ecx, [esp]
15053
                and     edi, [esp+4]
15054
                xor     ecx, ebx
15055
                lea     ebp, [eax+ebp+2BA9C55Dh]
15056
                xor     ecx, edi
15057
                ror     ecx, 7
15058
                add     ebp, ecx
15059
                mov     eax, [esp+10h]
15060
                mov     [esp+14h], ebp
15061
                mov     ebx, [esp+4]
15062
                mov     ecx, [esp+8]
15063
                mov     edi, ebx
15064
                and     ebx, [esp+18h]
15065
                and     edi, ecx
15066
                xor     ebx, ebp
15067
                ror     eax, 0Bh
15068
                xor     edi, ebp
15069
                mov     ebp, [esi+28h]
15070
                xor     edi, [esp+0Ch]
15071
                and     ecx, [esp+1Ch]
15072
                and     edi, [esp]
15073
                xor     ecx, ebx
15074
                lea     ebp, [eax+ebp+741831F6h]
15075
                xor     ecx, edi
15076
                ror     ecx, 7
15077
                add     ebp, ecx
15078
                mov     eax, [esp+0Ch]
15079
                mov     [esp+10h], ebp
15080
                mov     ebx, [esp]
15081
                mov     ecx, [esp+4]
15082
                mov     edi, ebx
15083
                and     ebx, [esp+14h]
15084
                and     edi, ecx
15085
                xor     ebx, ebp
15086
                ror     eax, 0Bh
15087
                xor     edi, ebp
15088
                mov     ebp, [esi+5Ch]
15089
                xor     edi, [esp+8]
15090
                and     ecx, [esp+18h]
15091
                and     edi, [esp+1Ch]
15092
                xor     ecx, ebx
15093
                lea     ebp, [eax+ebp-31A3C1EAh]
15094
                xor     ecx, edi
15095
                ror     ecx, 7
15096
                add     ebp, ecx
15097
                mov     eax, [esp+8]
15098
                mov     [esp+0Ch], ebp
15099
                mov     ebx, [esp+1Ch]
15100
                mov     ecx, [esp]
15101
                mov     edi, ebx
15102
                and     ebx, [esp+10h]
15103
                and     edi, ecx
15104
                xor     ebx, ebp
15105
                ror     eax, 0Bh
15106
                xor     edi, ebp
15107
                mov     ebp, [esi+2Ch]
15108
                xor     edi, [esp+4]
15109
                and     ecx, [esp+14h]
15110
                and     edi, [esp+18h]
15111
                xor     ecx, ebx
15112
                lea     ebp, [eax+ebp-64786CE2h]
15113
                xor     ecx, edi
15114
                ror     ecx, 7
15115
                add     ebp, ecx
15116
                mov     eax, [esp+4]
15117
                mov     [esp+8], ebp
15118
                mov     ebx, [esp+18h]
15119
                mov     ecx, [esp+1Ch]
15120
                mov     edi, ebx
15121
                and     ebx, [esp+0Ch]
15122
                and     edi, ecx
15123
                xor     ebx, ebp
15124
                ror     eax, 0Bh
15125
                xor     edi, ebp
15126
                mov     ebp, [esi+14h]
15127
                xor     edi, [esp]
15128
                and     ecx, [esp+10h]
15129
                and     edi, [esp+14h]
15130
                xor     ecx, ebx
15131
                lea     ebp, [eax+ebp-502945CDh]
15132
                xor     ecx, edi
15133
                ror     ecx, 7
15134
                add     ebp, ecx
15135
                mov     eax, [esp]
15136
                mov     [esp+4], ebp
15137
                mov     ebx, [esp+14h]
15138
                mov     ecx, [esp+18h]
15139
                mov     edi, ebx
15140
                and     ebx, [esp+8]
15141
                and     edi, ecx
15142
                xor     ebx, ebp
15143
                ror     eax, 0Bh
15144
                xor     edi, ebp
15145
                mov     ebp, [esi+8]
15146
                xor     edi, [esp+1Ch]
15147
                and     ecx, [esp+0Ch]
15148
                and     edi, [esp+10h]
15149
                xor     ecx, ebx
15150
                lea     ebp, [eax+ebp+6C24CF5Ch]
15151
                xor     ecx, edi
15152
                ror     ecx, 7
15153
                add     ebp, ecx
15154
                mov     eax, [esp+1Ch]
15155
                mov     [esp], ebp
15156
                mov     edi, [esp+24h]
15157
                mov     eax, [esp]
15158
                mov     ebx, [esp+4]
15159
                add     [edi], eax
15160
                add     [edi+4], ebx
15161
                mov     ecx, [esp+8]
15162
                mov     edx, [esp+0Ch]
15163
                add     [edi+8], ecx
15164
                add     [edi+0Ch], edx
15165
                mov     eax, [esp+10h]
15166
                mov     ebx, [esp+14h]
15167
                add     [edi+10h], eax
15168
                add     [edi+14h], ebx
15169
                mov     ebp, [esp+28h]
15170
                mov     ecx, [esp+18h]
15171
                mov     edx, [esp+1Ch]
15172
                mov     esp, ebp
15173
                add     [edi+18h], ecx
15174
                add     [edi+1Ch], edx
15175
                pop     ebp
15176
                pop     edi
15177
                pop     esi
15178
                pop     ebx
15179
end;
15180
15181
procedure THashBaseHaval.DoTransform4(Buffer: PUInt32Array);
15182
asm
15183
                push    ebx
15184
                push    esi
15185
                push    edi
15186
                lea     edi, [eax].THashBaseHaval.FDigest
15187
                mov     esi, edx
15188
                push    ebp
15189
                mov     ebp, esp
15190
                add     esp, 0FFFFFFD4h
15191
                and     esp, 0FFFFFFC0h
15192
                mov     eax, [edi]
15193
                mov     ebx, [edi+4]
15194
                mov     [esp+20h], esi
15195
                mov     [esp+24h], edi
15196
                mov     [esp+28h], ebp
15197
                mov     [esp], eax
15198
                mov     [esp+4], ebx
15199
                mov     ecx, [edi+8]
15200
                mov     edx, [edi+0Ch]
15201
                mov     [esp+8], ecx
15202
                mov     [esp+0Ch], edx
15203
                mov     eax, [edi+10h]
15204
                mov     ebx, [edi+14h]
15205
                mov     [esp+10h], eax
15206
                mov     [esp+14h], ebx
15207
                mov     ecx, [edi+18h]
15208
                mov     edx, [edi+1Ch]
15209
                mov     [esp+18h], ecx
15210
                mov     [esp+1Ch], edx
15211
                mov     eax, edx
15212
                mov     ebp, [esp+18h]
15213
                mov     ebx, [esp+4]
15214
                mov     ecx, [esp]
15215
                ror     eax, 0Bh
15216
                xor     ebx, ecx
15217
                mov     edi, [esp+8]
15218
                and     ebx, [esp+0Ch]
15219
                and     edi, [esp+10h]
15220
                xor     ecx, ebx
15221
                and     ebp, [esp+14h]
15222
                xor     edi, ecx
15223
                mov     edx, [esi]
15224
                xor     ebp, edi
15225
                add     eax, edx
15226
                ror     ebp, 7
15227
                add     ebp, eax
15228
                mov     eax, [esp+18h]
15229
                mov     [esp+1Ch], ebp
15230
                mov     ebp, [esp+14h]
15231
                mov     ebx, [esp]
15232
                mov     ecx, [esp+1Ch]
15233
                ror     eax, 0Bh
15234
                xor     ebx, ecx
15235
                mov     edi, [esp+4]
15236
                and     ebx, [esp+8]
15237
                and     edi, [esp+0Ch]
15238
                xor     ecx, ebx
15239
                and     ebp, [esp+10h]
15240
                xor     edi, ecx
15241
                mov     edx, [esi+4]
15242
                xor     ebp, edi
15243
                add     eax, edx
15244
                ror     ebp, 7
15245
                add     ebp, eax
15246
                mov     eax, [esp+14h]
15247
                mov     [esp+18h], ebp
15248
                mov     ebp, [esp+10h]
15249
                mov     ebx, [esp+1Ch]
15250
                mov     ecx, [esp+18h]
15251
                ror     eax, 0Bh
15252
                xor     ebx, ecx
15253
                mov     edi, [esp]
15254
                and     ebx, [esp+4]
15255
                and     edi, [esp+8]
15256
                xor     ecx, ebx
15257
                and     ebp, [esp+0Ch]
15258
                xor     edi, ecx
15259
                mov     edx, [esi+8]
15260
                xor     ebp, edi
15261
                add     eax, edx
15262
                ror     ebp, 7
15263
                add     ebp, eax
15264
                mov     eax, [esp+10h]
15265
                mov     [esp+14h], ebp
15266
                mov     ebp, [esp+0Ch]
15267
                mov     ebx, [esp+18h]
15268
                mov     ecx, [esp+14h]
15269
                ror     eax, 0Bh
15270
                xor     ebx, ecx
15271
                mov     edi, [esp+1Ch]
15272
                and     ebx, [esp]
15273
                and     edi, [esp+4]
15274
                xor     ecx, ebx
15275
                and     ebp, [esp+8]
15276
                xor     edi, ecx
15277
                mov     edx, [esi+0Ch]
15278
                xor     ebp, edi
15279
                add     eax, edx
15280
                ror     ebp, 7
15281
                add     ebp, eax
15282
                mov     eax, [esp+0Ch]
15283
                mov     [esp+10h], ebp
15284
                mov     ebp, [esp+8]
15285
                mov     ebx, [esp+14h]
15286
                mov     ecx, [esp+10h]
15287
                ror     eax, 0Bh
15288
                xor     ebx, ecx
15289
                mov     edi, [esp+18h]
15290
                and     ebx, [esp+1Ch]
15291
                and     edi, [esp]
15292
                xor     ecx, ebx
15293
                and     ebp, [esp+4]
15294
                xor     edi, ecx
15295
                mov     edx, [esi+10h]
15296
                xor     ebp, edi
15297
                add     eax, edx
15298
                ror     ebp, 7
15299
                add     ebp, eax
15300
                mov     eax, [esp+8]
15301
                mov     [esp+0Ch], ebp
15302
                mov     ebp, [esp+4]
15303
                mov     ebx, [esp+10h]
15304
                mov     ecx, [esp+0Ch]
15305
                ror     eax, 0Bh
15306
                xor     ebx, ecx
15307
                mov     edi, [esp+14h]
15308
                and     ebx, [esp+18h]
15309
                and     edi, [esp+1Ch]
15310
                xor     ecx, ebx
15311
                and     ebp, [esp]
15312
                xor     edi, ecx
15313
                mov     edx, [esi+14h]
15314
                xor     ebp, edi
15315
                add     eax, edx
15316
                ror     ebp, 7
15317
                add     ebp, eax
15318
                mov     eax, [esp+4]
15319
                mov     [esp+8], ebp
15320
                mov     ebp, [esp]
15321
                mov     ebx, [esp+0Ch]
15322
                mov     ecx, [esp+8]
15323
                ror     eax, 0Bh
15324
                xor     ebx, ecx
15325
                mov     edi, [esp+10h]
15326
                and     ebx, [esp+14h]
15327
                and     edi, [esp+18h]
15328
                xor     ecx, ebx
15329
                and     ebp, [esp+1Ch]
15330
                xor     edi, ecx
15331
                mov     edx, [esi+18h]
15332
                xor     ebp, edi
15333
                add     eax, edx
15334
                ror     ebp, 7
15335
                add     ebp, eax
15336
                mov     eax, [esp]
15337
                mov     [esp+4], ebp
15338
                mov     ebp, [esp+1Ch]
15339
                mov     ebx, [esp+8]
15340
                mov     ecx, [esp+4]
15341
                ror     eax, 0Bh
15342
                xor     ebx, ecx
15343
                mov     edi, [esp+0Ch]
15344
                and     ebx, [esp+10h]
15345
                and     edi, [esp+14h]
15346
                xor     ecx, ebx
15347
                and     ebp, [esp+18h]
15348
                xor     edi, ecx
15349
                mov     edx, [esi+1Ch]
15350
                xor     ebp, edi
15351
                add     eax, edx
15352
                ror     ebp, 7
15353
                add     ebp, eax
15354
                mov     eax, [esp+1Ch]
15355
                mov     [esp], ebp
15356
                mov     ebp, [esp+18h]
15357
                mov     ebx, [esp+4]
15358
                mov     ecx, [esp]
15359
                ror     eax, 0Bh
15360
                xor     ebx, ecx
15361
                mov     edi, [esp+8]
15362
                and     ebx, [esp+0Ch]
15363
                and     edi, [esp+10h]
15364
                xor     ecx, ebx
15365
                and     ebp, [esp+14h]
15366
                xor     edi, ecx
15367
                mov     edx, [esi+20h]
15368
                xor     ebp, edi
15369
                add     eax, edx
15370
                ror     ebp, 7
15371
                add     ebp, eax
15372
                mov     eax, [esp+18h]
15373
                mov     [esp+1Ch], ebp
15374
                mov     ebp, [esp+14h]
15375
                mov     ebx, [esp]
15376
                mov     ecx, [esp+1Ch]
15377
                ror     eax, 0Bh
15378
                xor     ebx, ecx
15379
                mov     edi, [esp+4]
15380
                and     ebx, [esp+8]
15381
                and     edi, [esp+0Ch]
15382
                xor     ecx, ebx
15383
                and     ebp, [esp+10h]
15384
                xor     edi, ecx
15385
                mov     edx, [esi+24h]
15386
                xor     ebp, edi
15387
                add     eax, edx
15388
                ror     ebp, 7
15389
                add     ebp, eax
15390
                mov     eax, [esp+14h]
15391
                mov     [esp+18h], ebp
15392
                mov     ebp, [esp+10h]
15393
                mov     ebx, [esp+1Ch]
15394
                mov     ecx, [esp+18h]
15395
                ror     eax, 0Bh
15396
                xor     ebx, ecx
15397
                mov     edi, [esp]
15398
                and     ebx, [esp+4]
15399
                and     edi, [esp+8]
15400
                xor     ecx, ebx
15401
                and     ebp, [esp+0Ch]
15402
                xor     edi, ecx
15403
                mov     edx, [esi+28h]
15404
                xor     ebp, edi
15405
                add     eax, edx
15406
                ror     ebp, 7
15407
                add     ebp, eax
15408
                mov     eax, [esp+10h]
15409
                mov     [esp+14h], ebp
15410
                mov     ebp, [esp+0Ch]
15411
                mov     ebx, [esp+18h]
15412
                mov     ecx, [esp+14h]
15413
                ror     eax, 0Bh
15414
                xor     ebx, ecx
15415
                mov     edi, [esp+1Ch]
15416
                and     ebx, [esp]
15417
                and     edi, [esp+4]
15418
                xor     ecx, ebx
15419
                and     ebp, [esp+8]
15420
                xor     edi, ecx
15421
                mov     edx, [esi+2Ch]
15422
                xor     ebp, edi
15423
                add     eax, edx
15424
                ror     ebp, 7
15425
                add     ebp, eax
15426
                mov     eax, [esp+0Ch]
15427
                mov     [esp+10h], ebp
15428
                mov     ebp, [esp+8]
15429
                mov     ebx, [esp+14h]
15430
                mov     ecx, [esp+10h]
15431
                ror     eax, 0Bh
15432
                xor     ebx, ecx
15433
                mov     edi, [esp+18h]
15434
                and     ebx, [esp+1Ch]
15435
                and     edi, [esp]
15436
                xor     ecx, ebx
15437
                and     ebp, [esp+4]
15438
                xor     edi, ecx
15439
                mov     edx, [esi+30h]
15440
                xor     ebp, edi
15441
                add     eax, edx
15442
                ror     ebp, 7
15443
                add     ebp, eax
15444
                mov     eax, [esp+8]
15445
                mov     [esp+0Ch], ebp
15446
                mov     ebp, [esp+4]
15447
                mov     ebx, [esp+10h]
15448
                mov     ecx, [esp+0Ch]
15449
                ror     eax, 0Bh
15450
                xor     ebx, ecx
15451
                mov     edi, [esp+14h]
15452
                and     ebx, [esp+18h]
15453
                and     edi, [esp+1Ch]
15454
                xor     ecx, ebx
15455
                and     ebp, [esp]
15456
                xor     edi, ecx
15457
                mov     edx, [esi+34h]
15458
                xor     ebp, edi
15459
                add     eax, edx
15460
                ror     ebp, 7
15461
                add     ebp, eax
15462
                mov     eax, [esp+4]
15463
                mov     [esp+8], ebp
15464
                mov     ebp, [esp]
15465
                mov     ebx, [esp+0Ch]
15466
                mov     ecx, [esp+8]
15467
                ror     eax, 0Bh
15468
                xor     ebx, ecx
15469
                mov     edi, [esp+10h]
15470
                and     ebx, [esp+14h]
15471
                and     edi, [esp+18h]
15472
                xor     ecx, ebx
15473
                and     ebp, [esp+1Ch]
15474
                xor     edi, ecx
15475
                mov     edx, [esi+38h]
15476
                xor     ebp, edi
15477
                add     eax, edx
15478
                ror     ebp, 7
15479
                add     ebp, eax
15480
                mov     eax, [esp]
15481
                mov     [esp+4], ebp
15482
                mov     ebp, [esp+1Ch]
15483
                mov     ebx, [esp+8]
15484
                mov     ecx, [esp+4]
15485
                ror     eax, 0Bh
15486
                xor     ebx, ecx
15487
                mov     edi, [esp+0Ch]
15488
                and     ebx, [esp+10h]
15489
                and     edi, [esp+14h]
15490
                xor     ecx, ebx
15491
                and     ebp, [esp+18h]
15492
                xor     edi, ecx
15493
                mov     edx, [esi+3Ch]
15494
                xor     ebp, edi
15495
                add     eax, edx
15496
                ror     ebp, 7
15497
                add     ebp, eax
15498
                mov     eax, [esp+1Ch]
15499
                mov     [esp], ebp
15500
                mov     ebp, [esp+18h]
15501
                mov     ebx, [esp+4]
15502
                mov     ecx, [esp]
15503
                ror     eax, 0Bh
15504
                xor     ebx, ecx
15505
                mov     edi, [esp+8]
15506
                and     ebx, [esp+0Ch]
15507
                and     edi, [esp+10h]
15508
                xor     ecx, ebx
15509
                and     ebp, [esp+14h]
15510
                xor     edi, ecx
15511
                mov     edx, [esi+40h]
15512
                xor     ebp, edi
15513
                add     eax, edx
15514
                ror     ebp, 7
15515
                add     ebp, eax
15516
                mov     eax, [esp+18h]
15517
                mov     [esp+1Ch], ebp
15518
                mov     ebp, [esp+14h]
15519
                mov     ebx, [esp]
15520
                mov     ecx, [esp+1Ch]
15521
                ror     eax, 0Bh
15522
                xor     ebx, ecx
15523
                mov     edi, [esp+4]
15524
                and     ebx, [esp+8]
15525
                and     edi, [esp+0Ch]
15526
                xor     ecx, ebx
15527
                and     ebp, [esp+10h]
15528
                xor     edi, ecx
15529
                mov     edx, [esi+44h]
15530
                xor     ebp, edi
15531
                add     eax, edx
15532
                ror     ebp, 7
15533
                add     ebp, eax
15534
                mov     eax, [esp+14h]
15535
                mov     [esp+18h], ebp
15536
                mov     ebp, [esp+10h]
15537
                mov     ebx, [esp+1Ch]
15538
                mov     ecx, [esp+18h]
15539
                ror     eax, 0Bh
15540
                xor     ebx, ecx
15541
                mov     edi, [esp]
15542
                and     ebx, [esp+4]
15543
                and     edi, [esp+8]
15544
                xor     ecx, ebx
15545
                and     ebp, [esp+0Ch]
15546
                xor     edi, ecx
15547
                mov     edx, [esi+48h]
15548
                xor     ebp, edi
15549
                add     eax, edx
15550
                ror     ebp, 7
15551
                add     ebp, eax
15552
                mov     eax, [esp+10h]
15553
                mov     [esp+14h], ebp
15554
                mov     ebp, [esp+0Ch]
15555
                mov     ebx, [esp+18h]
15556
                mov     ecx, [esp+14h]
15557
                ror     eax, 0Bh
15558
                xor     ebx, ecx
15559
                mov     edi, [esp+1Ch]
15560
                and     ebx, [esp]
15561
                and     edi, [esp+4]
15562
                xor     ecx, ebx
15563
                and     ebp, [esp+8]
15564
                xor     edi, ecx
15565
                mov     edx, [esi+4Ch]
15566
                xor     ebp, edi
15567
                add     eax, edx
15568
                ror     ebp, 7
15569
                add     ebp, eax
15570
                mov     eax, [esp+0Ch]
15571
                mov     [esp+10h], ebp
15572
                mov     ebp, [esp+8]
15573
                mov     ebx, [esp+14h]
15574
                mov     ecx, [esp+10h]
15575
                ror     eax, 0Bh
15576
                xor     ebx, ecx
15577
                mov     edi, [esp+18h]
15578
                and     ebx, [esp+1Ch]
15579
                and     edi, [esp]
15580
                xor     ecx, ebx
15581
                and     ebp, [esp+4]
15582
                xor     edi, ecx
15583
                mov     edx, [esi+50h]
15584
                xor     ebp, edi
15585
                add     eax, edx
15586
                ror     ebp, 7
15587
                add     ebp, eax
15588
                mov     eax, [esp+8]
15589
                mov     [esp+0Ch], ebp
15590
                mov     ebp, [esp+4]
15591
                mov     ebx, [esp+10h]
15592
                mov     ecx, [esp+0Ch]
15593
                ror     eax, 0Bh
15594
                xor     ebx, ecx
15595
                mov     edi, [esp+14h]
15596
                and     ebx, [esp+18h]
15597
                and     edi, [esp+1Ch]
15598
                xor     ecx, ebx
15599
                and     ebp, [esp]
15600
                xor     edi, ecx
15601
                mov     edx, [esi+54h]
15602
                xor     ebp, edi
15603
                add     eax, edx
15604
                ror     ebp, 7
15605
                add     ebp, eax
15606
                mov     eax, [esp+4]
15607
                mov     [esp+8], ebp
15608
                mov     ebp, [esp]
15609
                mov     ebx, [esp+0Ch]
15610
                mov     ecx, [esp+8]
15611
                ror     eax, 0Bh
15612
                xor     ebx, ecx
15613
                mov     edi, [esp+10h]
15614
                and     ebx, [esp+14h]
15615
                and     edi, [esp+18h]
15616
                xor     ecx, ebx
15617
                and     ebp, [esp+1Ch]
15618
                xor     edi, ecx
15619
                mov     edx, [esi+58h]
15620
                xor     ebp, edi
15621
                add     eax, edx
15622
                ror     ebp, 7
15623
                add     ebp, eax
15624
                mov     eax, [esp]
15625
                mov     [esp+4], ebp
15626
                mov     ebp, [esp+1Ch]
15627
                mov     ebx, [esp+8]
15628
                mov     ecx, [esp+4]
15629
                ror     eax, 0Bh
15630
                xor     ebx, ecx
15631
                mov     edi, [esp+0Ch]
15632
                and     ebx, [esp+10h]
15633
                and     edi, [esp+14h]
15634
                xor     ecx, ebx
15635
                and     ebp, [esp+18h]
15636
                xor     edi, ecx
15637
                mov     edx, [esi+5Ch]
15638
                xor     ebp, edi
15639
                add     eax, edx
15640
                ror     ebp, 7
15641
                add     ebp, eax
15642
                mov     eax, [esp+1Ch]
15643
                mov     [esp], ebp
15644
                mov     ebp, [esp+18h]
15645
                mov     ebx, [esp+4]
15646
                mov     ecx, [esp]
15647
                ror     eax, 0Bh
15648
                xor     ebx, ecx
15649
                mov     edi, [esp+8]
15650
                and     ebx, [esp+0Ch]
15651
                and     edi, [esp+10h]
15652
                xor     ecx, ebx
15653
                and     ebp, [esp+14h]
15654
                xor     edi, ecx
15655
                mov     edx, [esi+60h]
15656
                xor     ebp, edi
15657
                add     eax, edx
15658
                ror     ebp, 7
15659
                add     ebp, eax
15660
                mov     eax, [esp+18h]
15661
                mov     [esp+1Ch], ebp
15662
                mov     ebp, [esp+14h]
15663
                mov     ebx, [esp]
15664
                mov     ecx, [esp+1Ch]
15665
                ror     eax, 0Bh
15666
                xor     ebx, ecx
15667
                mov     edi, [esp+4]
15668
                and     ebx, [esp+8]
15669
                and     edi, [esp+0Ch]
15670
                xor     ecx, ebx
15671
                and     ebp, [esp+10h]
15672
                xor     edi, ecx
15673
                mov     edx, [esi+64h]
15674
                xor     ebp, edi
15675
                add     eax, edx
15676
                ror     ebp, 7
15677
                add     ebp, eax
15678
                mov     eax, [esp+14h]
15679
                mov     [esp+18h], ebp
15680
                mov     ebp, [esp+10h]
15681
                mov     ebx, [esp+1Ch]
15682
                mov     ecx, [esp+18h]
15683
                ror     eax, 0Bh
15684
                xor     ebx, ecx
15685
                mov     edi, [esp]
15686
                and     ebx, [esp+4]
15687
                and     edi, [esp+8]
15688
                xor     ecx, ebx
15689
                and     ebp, [esp+0Ch]
15690
                xor     edi, ecx
15691
                mov     edx, [esi+68h]
15692
                xor     ebp, edi
15693
                add     eax, edx
15694
                ror     ebp, 7
15695
                add     ebp, eax
15696
                mov     eax, [esp+10h]
15697
                mov     [esp+14h], ebp
15698
                mov     ebp, [esp+0Ch]
15699
                mov     ebx, [esp+18h]
15700
                mov     ecx, [esp+14h]
15701
                ror     eax, 0Bh
15702
                xor     ebx, ecx
15703
                mov     edi, [esp+1Ch]
15704
                and     ebx, [esp]
15705
                and     edi, [esp+4]
15706
                xor     ecx, ebx
15707
                and     ebp, [esp+8]
15708
                xor     edi, ecx
15709
                mov     edx, [esi+6Ch]
15710
                xor     ebp, edi
15711
                add     eax, edx
15712
                ror     ebp, 7
15713
                add     ebp, eax
15714
                mov     eax, [esp+0Ch]
15715
                mov     [esp+10h], ebp
15716
                mov     ebp, [esp+8]
15717
                mov     ebx, [esp+14h]
15718
                mov     ecx, [esp+10h]
15719
                ror     eax, 0Bh
15720
                xor     ebx, ecx
15721
                mov     edi, [esp+18h]
15722
                and     ebx, [esp+1Ch]
15723
                and     edi, [esp]
15724
                xor     ecx, ebx
15725
                and     ebp, [esp+4]
15726
                xor     edi, ecx
15727
                mov     edx, [esi+70h]
15728
                xor     ebp, edi
15729
                add     eax, edx
15730
                ror     ebp, 7
15731
                add     ebp, eax
15732
                mov     eax, [esp+8]
15733
                mov     [esp+0Ch], ebp
15734
                mov     ebp, [esp+4]
15735
                mov     ebx, [esp+10h]
15736
                mov     ecx, [esp+0Ch]
15737
                ror     eax, 0Bh
15738
                xor     ebx, ecx
15739
                mov     edi, [esp+14h]
15740
                and     ebx, [esp+18h]
15741
                and     edi, [esp+1Ch]
15742
                xor     ecx, ebx
15743
                and     ebp, [esp]
15744
                xor     edi, ecx
15745
                mov     edx, [esi+74h]
15746
                xor     ebp, edi
15747
                add     eax, edx
15748
                ror     ebp, 7
15749
                add     ebp, eax
15750
                mov     eax, [esp+4]
15751
                mov     [esp+8], ebp
15752
                mov     ebp, [esp]
15753
                mov     ebx, [esp+0Ch]
15754
                mov     ecx, [esp+8]
15755
                ror     eax, 0Bh
15756
                xor     ebx, ecx
15757
                mov     edi, [esp+10h]
15758
                and     ebx, [esp+14h]
15759
                and     edi, [esp+18h]
15760
                xor     ecx, ebx
15761
                and     ebp, [esp+1Ch]
15762
                xor     edi, ecx
15763
                mov     edx, [esi+78h]
15764
                xor     ebp, edi
15765
                add     eax, edx
15766
                ror     ebp, 7
15767
                add     ebp, eax
15768
                mov     eax, [esp]
15769
                mov     [esp+4], ebp
15770
                mov     ebp, [esp+1Ch]
15771
                mov     ebx, [esp+8]
15772
                mov     ecx, [esp+4]
15773
                ror     eax, 0Bh
15774
                xor     ebx, ecx
15775
                mov     edi, [esp+0Ch]
15776
                and     ebx, [esp+10h]
15777
                and     edi, [esp+14h]
15778
                xor     ecx, ebx
15779
                and     ebp, [esp+18h]
15780
                xor     edi, ecx
15781
                mov     edx, [esi+7Ch]
15782
                xor     ebp, edi
15783
                add     eax, edx
15784
                ror     ebp, 7
15785
                add     ebp, eax
15786
                mov     eax, [esp+1Ch]
15787
                mov     [esp], ebp
15788
                mov     ebp, [esp]
15789
                mov     ebx, [esp+8]
15790
                mov     edi, [esp+14h]
15791
                xor     ebp, 0FFFFFFFFh
15792
                mov     ecx, [esp+18h]
15793
                and     ebx, edi
15794
                mov     edx, [esp+10h]
15795
                and     ebp, ecx
15796
                xor     ebx, [esp+0Ch]
15797
                xor     ebp, edx
15798
                xor     ecx, edi
15799
                xor     ebx, ebp
15800
                and     ecx, [esp+8]
15801
                and     ebx, [esp+4]
15802
                ror     eax, 0Bh
15803
                xor     ecx, edx
15804
                mov     ebp, [esi+14h]
15805
                xor     ecx, ebx
15806
                and     edi, [esp]
15807
                xor     ecx, edi
15808
                lea     ebp, [eax+ebp+452821E6h]
15809
                ror     ecx, 7
15810
                add     ebp, ecx
15811
                mov     eax, [esp+18h]
15812
                mov     [esp+1Ch], ebp
15813
                mov     ebx, [esp+4]
15814
                mov     edi, [esp+10h]
15815
                xor     ebp, 0FFFFFFFFh
15816
                mov     ecx, [esp+14h]
15817
                and     ebx, edi
15818
                mov     edx, [esp+0Ch]
15819
                and     ebp, ecx
15820
                xor     ebx, [esp+8]
15821
                xor     ebp, edx
15822
                xor     ecx, edi
15823
                xor     ebx, ebp
15824
                and     ecx, [esp+4]
15825
                and     ebx, [esp]
15826
                ror     eax, 0Bh
15827
                xor     ecx, edx
15828
                mov     ebp, [esi+38h]
15829
                xor     ecx, ebx
15830
                and     edi, [esp+1Ch]
15831
                xor     ecx, edi
15832
                lea     ebp, [eax+ebp+38D01377h]
15833
                ror     ecx, 7
15834
                add     ebp, ecx
15835
                mov     eax, [esp+14h]
15836
                mov     [esp+18h], ebp
15837
                mov     ebx, [esp]
15838
                mov     edi, [esp+0Ch]
15839
                xor     ebp, 0FFFFFFFFh
15840
                mov     ecx, [esp+10h]
15841
                and     ebx, edi
15842
                mov     edx, [esp+8]
15843
                and     ebp, ecx
15844
                xor     ebx, [esp+4]
15845
                xor     ebp, edx
15846
                xor     ecx, edi
15847
                xor     ebx, ebp
15848
                and     ecx, [esp]
15849
                and     ebx, [esp+1Ch]
15850
                ror     eax, 0Bh
15851
                xor     ecx, edx
15852
                mov     ebp, [esi+68h]
15853
                xor     ecx, ebx
15854
                and     edi, [esp+18h]
15855
                xor     ecx, edi
15856
                lea     ebp, [eax+ebp-41AB9931h]
15857
                ror     ecx, 7
15858
                add     ebp, ecx
15859
                mov     eax, [esp+10h]
15860
                mov     [esp+14h], ebp
15861
                mov     ebx, [esp+1Ch]
15862
                mov     edi, [esp+8]
15863
                xor     ebp, 0FFFFFFFFh
15864
                mov     ecx, [esp+0Ch]
15865
                and     ebx, edi
15866
                mov     edx, [esp+4]
15867
                and     ebp, ecx
15868
                xor     ebx, [esp]
15869
                xor     ebp, edx
15870
                xor     ecx, edi
15871
                xor     ebx, ebp
15872
                and     ecx, [esp+1Ch]
15873
                and     ebx, [esp+18h]
15874
                ror     eax, 0Bh
15875
                xor     ecx, edx
15876
                mov     ebp, [esi+48h]
15877
                xor     ecx, ebx
15878
                and     edi, [esp+14h]
15879
                xor     ecx, edi
15880
                lea     ebp, [eax+ebp+34E90C6Ch]
15881
                ror     ecx, 7
15882
                add     ebp, ecx
15883
                mov     eax, [esp+0Ch]
15884
                mov     [esp+10h], ebp
15885
                mov     ebx, [esp+18h]
15886
                mov     edi, [esp+4]
15887
                xor     ebp, 0FFFFFFFFh
15888
                mov     ecx, [esp+8]
15889
                and     ebx, edi
15890
                mov     edx, [esp]
15891
                and     ebp, ecx
15892
                xor     ebx, [esp+1Ch]
15893
                xor     ebp, edx
15894
                xor     ecx, edi
15895
                xor     ebx, ebp
15896
                and     ecx, [esp+18h]
15897
                and     ebx, [esp+14h]
15898
                ror     eax, 0Bh
15899
                xor     ecx, edx
15900
                mov     ebp, [esi+2Ch]
15901
                xor     ecx, ebx
15902
                and     edi, [esp+10h]
15903
                xor     ecx, edi
15904
                lea     ebp, [eax+ebp-3F53D649h]
15905
                ror     ecx, 7
15906
                add     ebp, ecx
15907
                mov     eax, [esp+8]
15908
                mov     [esp+0Ch], ebp
15909
                mov     ebx, [esp+14h]
15910
                mov     edi, [esp]
15911
                xor     ebp, 0FFFFFFFFh
15912
                mov     ecx, [esp+4]
15913
                and     ebx, edi
15914
                mov     edx, [esp+1Ch]
15915
                and     ebp, ecx
15916
                xor     ebx, [esp+18h]
15917
                xor     ebp, edx
15918
                xor     ecx, edi
15919
                xor     ebx, ebp
15920
                and     ecx, [esp+14h]
15921
                and     ebx, [esp+10h]
15922
                ror     eax, 0Bh
15923
                xor     ecx, edx
15924
                mov     ebp, [esi+70h]
15925
                xor     ecx, ebx
15926
                and     edi, [esp+0Ch]
15927
                xor     ecx, edi
15928
                lea     ebp, [eax+ebp-3683AF23h]
15929
                ror     ecx, 7
15930
                add     ebp, ecx
15931
                mov     eax, [esp+4]
15932
                mov     [esp+8], ebp
15933
                mov     ebx, [esp+10h]
15934
                mov     edi, [esp+1Ch]
15935
                xor     ebp, 0FFFFFFFFh
15936
                mov     ecx, [esp]
15937
                and     ebx, edi
15938
                mov     edx, [esp+18h]
15939
                and     ebp, ecx
15940
                xor     ebx, [esp+14h]
15941
                xor     ebp, edx
15942
                xor     ecx, edi
15943
                xor     ebx, ebp
15944
                and     ecx, [esp+10h]
15945
                and     ebx, [esp+0Ch]
15946
                ror     eax, 0Bh
15947
                xor     ecx, edx
15948
                mov     ebp, [esi+1Ch]
15949
                xor     ecx, ebx
15950
                and     edi, [esp+8]
15951
                xor     ecx, edi
15952
                lea     ebp, [eax+ebp+3F84D5B5h]
15953
                ror     ecx, 7
15954
                add     ebp, ecx
15955
                mov     eax, [esp]
15956
                mov     [esp+4], ebp
15957
                mov     ebx, [esp+0Ch]
15958
                mov     edi, [esp+18h]
15959
                xor     ebp, 0FFFFFFFFh
15960
                mov     ecx, [esp+1Ch]
15961
                and     ebx, edi
15962
                mov     edx, [esp+14h]
15963
                and     ebp, ecx
15964
                xor     ebx, [esp+10h]
15965
                xor     ebp, edx
15966
                xor     ecx, edi
15967
                xor     ebx, ebp
15968
                and     ecx, [esp+0Ch]
15969
                and     ebx, [esp+8]
15970
                ror     eax, 0Bh
15971
                xor     ecx, edx
15972
                mov     ebp, [esi+40h]
15973
                xor     ecx, ebx
15974
                and     edi, [esp+4]
15975
                xor     ecx, edi
15976
                lea     ebp, [eax+ebp-4AB8F6E9h]
15977
                ror     ecx, 7
15978
                add     ebp, ecx
15979
                mov     eax, [esp+1Ch]
15980
                mov     [esp], ebp
15981
                mov     ebx, [esp+8]
15982
                mov     edi, [esp+14h]
15983
                xor     ebp, 0FFFFFFFFh
15984
                mov     ecx, [esp+18h]
15985
                and     ebx, edi
15986
                mov     edx, [esp+10h]
15987
                and     ebp, ecx
15988
                xor     ebx, [esp+0Ch]
15989
                xor     ebp, edx
15990
                xor     ecx, edi
15991
                xor     ebx, ebp
15992
                and     ecx, [esp+8]
15993
                and     ebx, [esp+4]
15994
                ror     eax, 0Bh
15995
                xor     ecx, edx
15996
                mov     ebp, [esi]
15997
                xor     ecx, ebx
15998
                and     edi, [esp]
15999
                xor     ecx, edi
16000
                lea     ebp, [eax+ebp-6DE92A27h]
16001
                ror     ecx, 7
16002
                add     ebp, ecx
16003
                mov     eax, [esp+18h]
16004
                mov     [esp+1Ch], ebp
16005
                mov     ebx, [esp+4]
16006
                mov     edi, [esp+10h]
16007
                xor     ebp, 0FFFFFFFFh
16008
                mov     ecx, [esp+14h]
16009
                and     ebx, edi
16010
                mov     edx, [esp+0Ch]
16011
                and     ebp, ecx
16012
                xor     ebx, [esp+8]
16013
                xor     ebp, edx
16014
                xor     ecx, edi
16015
                xor     ebx, ebp
16016
                and     ecx, [esp+4]
16017
                and     ebx, [esp]
16018
                ror     eax, 0Bh
16019
                xor     ecx, edx
16020
                mov     ebp, [esi+5Ch]
16021
                xor     ecx, ebx
16022
                and     edi, [esp+1Ch]
16023
                xor     ecx, edi
16024
                lea     ebp, [eax+ebp-768604E5h]
16025
                ror     ecx, 7
16026
                add     ebp, ecx
16027
                mov     eax, [esp+14h]
16028
                mov     [esp+18h], ebp
16029
                mov     ebx, [esp]
16030
                mov     edi, [esp+0Ch]
16031
                xor     ebp, 0FFFFFFFFh
16032
                mov     ecx, [esp+10h]
16033
                and     ebx, edi
16034
                mov     edx, [esp+8]
16035
                and     ebp, ecx
16036
                xor     ebx, [esp+4]
16037
                xor     ebp, edx
16038
                xor     ecx, edi
16039
                xor     ebx, ebp
16040
                and     ecx, [esp]
16041
                and     ebx, [esp+1Ch]
16042
                ror     eax, 0Bh
16043
                xor     ecx, edx
16044
                mov     ebp, [esi+50h]
16045
                xor     ecx, ebx
16046
                and     edi, [esp+18h]
16047
                xor     ecx, edi
16048
                lea     ebp, [eax+ebp-2ECEF45Ah]
16049
                ror     ecx, 7
16050
                add     ebp, ecx
16051
                mov     eax, [esp+10h]
16052
                mov     [esp+14h], ebp
16053
                mov     ebx, [esp+1Ch]
16054
                mov     edi, [esp+8]
16055
                xor     ebp, 0FFFFFFFFh
16056
                mov     ecx, [esp+0Ch]
16057
                and     ebx, edi
16058
                mov     edx, [esp+4]
16059
                and     ebp, ecx
16060
                xor     ebx, [esp]
16061
                xor     ebp, edx
16062
                xor     ecx, edi
16063
                xor     ebx, ebp
16064
                and     ecx, [esp+1Ch]
16065
                and     ebx, [esp+18h]
16066
                ror     eax, 0Bh
16067
                xor     ecx, edx
16068
                mov     ebp, [esi+58h]
16069
                xor     ecx, ebx
16070
                and     edi, [esp+14h]
16071
                xor     ecx, edi
16072
                lea     ebp, [eax+ebp-67204A54h]
16073
                ror     ecx, 7
16074
                add     ebp, ecx
16075
                mov     eax, [esp+0Ch]
16076
                mov     [esp+10h], ebp
16077
                mov     ebx, [esp+18h]
16078
                mov     edi, [esp+4]
16079
                xor     ebp, 0FFFFFFFFh
16080
                mov     ecx, [esp+8]
16081
                and     ebx, edi
16082
                mov     edx, [esp]
16083
                and     ebp, ecx
16084
                xor     ebx, [esp+1Ch]
16085
                xor     ebp, edx
16086
                xor     ecx, edi
16087
                xor     ebx, ebp
16088
                and     ecx, [esp+18h]
16089
                and     ebx, [esp+14h]
16090
                ror     eax, 0Bh
16091
                xor     ecx, edx
16092
                mov     ebp, [esi+4]
16093
                xor     ecx, ebx
16094
                and     edi, [esp+10h]
16095
                xor     ecx, edi
16096
                lea     ebp, [eax+ebp+2FFD72DBh]
16097
                ror     ecx, 7
16098
                add     ebp, ecx
16099
                mov     eax, [esp+8]
16100
                mov     [esp+0Ch], ebp
16101
                mov     ebx, [esp+14h]
16102
                mov     edi, [esp]
16103
                xor     ebp, 0FFFFFFFFh
16104
                mov     ecx, [esp+4]
16105
                and     ebx, edi
16106
                mov     edx, [esp+1Ch]
16107
                and     ebp, ecx
16108
                xor     ebx, [esp+18h]
16109
                xor     ebp, edx
16110
                xor     ecx, edi
16111
                xor     ebx, ebp
16112
                and     ecx, [esp+14h]
16113
                and     ebx, [esp+10h]
16114
                ror     eax, 0Bh
16115
                xor     ecx, edx
16116
                mov     ebp, [esi+28h]
16117
                xor     ecx, ebx
16118
                and     edi, [esp+0Ch]
16119
                xor     ecx, edi
16120
                lea     ebp, [eax+ebp-2FE52049h]
16121
                ror     ecx, 7
16122
                add     ebp, ecx
16123
                mov     eax, [esp+4]
16124
                mov     [esp+8], ebp
16125
                mov     ebx, [esp+10h]
16126
                mov     edi, [esp+1Ch]
16127
                xor     ebp, 0FFFFFFFFh
16128
                mov     ecx, [esp]
16129
                and     ebx, edi
16130
                mov     edx, [esp+18h]
16131
                and     ebp, ecx
16132
                xor     ebx, [esp+14h]
16133
                xor     ebp, edx
16134
                xor     ecx, edi
16135
                xor     ebx, ebp
16136
                and     ecx, [esp+10h]
16137
                and     ebx, [esp+0Ch]
16138
                ror     eax, 0Bh
16139
                xor     ecx, edx
16140
                mov     ebp, [esi+10h]
16141
                xor     ecx, ebx
16142
                and     edi, [esp+8]
16143
                xor     ecx, edi
16144
                lea     ebp, [eax+ebp-471E5013h]
16145
                ror     ecx, 7
16146
                add     ebp, ecx
16147
                mov     eax, [esp]
16148
                mov     [esp+4], ebp
16149
                mov     ebx, [esp+0Ch]
16150
                mov     edi, [esp+18h]
16151
                xor     ebp, 0FFFFFFFFh
16152
                mov     ecx, [esp+1Ch]
16153
                and     ebx, edi
16154
                mov     edx, [esp+14h]
16155
                and     ebp, ecx
16156
                xor     ebx, [esp+10h]
16157
                xor     ebp, edx
16158
                xor     ecx, edi
16159
                xor     ebx, ebp
16160
                and     ecx, [esp+0Ch]
16161
                and     ebx, [esp+8]
16162
                ror     eax, 0Bh
16163
                xor     ecx, edx
16164
                mov     ebp, [esi+20h]
16165
                xor     ecx, ebx
16166
                and     edi, [esp+4]
16167
                xor     ecx, edi
16168
                lea     ebp, [eax+ebp+6A267E96h]
16169
                ror     ecx, 7
16170
                add     ebp, ecx
16171
                mov     eax, [esp+1Ch]
16172
                mov     [esp], ebp
16173
                mov     ebx, [esp+8]
16174
                mov     edi, [esp+14h]
16175
                xor     ebp, 0FFFFFFFFh
16176
                mov     ecx, [esp+18h]
16177
                and     ebx, edi
16178
                mov     edx, [esp+10h]
16179
                and     ebp, ecx
16180
                xor     ebx, [esp+0Ch]
16181
                xor     ebp, edx
16182
                xor     ecx, edi
16183
                xor     ebx, ebp
16184
                and     ecx, [esp+8]
16185
                and     ebx, [esp+4]
16186
                ror     eax, 0Bh
16187
                xor     ecx, edx
16188
                mov     ebp, [esi+78h]
16189
                xor     ecx, ebx
16190
                and     edi, [esp]
16191
                xor     ecx, edi
16192
                lea     ebp, [eax+ebp-45836FBBh]
16193
                ror     ecx, 7
16194
                add     ebp, ecx
16195
                mov     eax, [esp+18h]
16196
                mov     [esp+1Ch], ebp
16197
                mov     ebx, [esp+4]
16198
                mov     edi, [esp+10h]
16199
                xor     ebp, 0FFFFFFFFh
16200
                mov     ecx, [esp+14h]
16201
                and     ebx, edi
16202
                mov     edx, [esp+0Ch]
16203
                and     ebp, ecx
16204
                xor     ebx, [esp+8]
16205
                xor     ebp, edx
16206
                xor     ecx, edi
16207
                xor     ebx, ebp
16208
                and     ecx, [esp+4]
16209
                and     ebx, [esp]
16210
                ror     eax, 0Bh
16211
                xor     ecx, edx
16212
                mov     ebp, [esi+0Ch]
16213
                xor     ecx, ebx
16214
                and     edi, [esp+1Ch]
16215
                xor     ecx, edi
16216
                lea     ebp, [eax+ebp-0ED38067h]
16217
                ror     ecx, 7
16218
                add     ebp, ecx
16219
                mov     eax, [esp+14h]
16220
                mov     [esp+18h], ebp
16221
                mov     ebx, [esp]
16222
                mov     edi, [esp+0Ch]
16223
                xor     ebp, 0FFFFFFFFh
16224
                mov     ecx, [esp+10h]
16225
                and     ebx, edi
16226
                mov     edx, [esp+8]
16227
                and     ebp, ecx
16228
                xor     ebx, [esp+4]
16229
                xor     ebp, edx
16230
                xor     ecx, edi
16231
                xor     ebx, ebp
16232
                and     ecx, [esp]
16233
                and     ebx, [esp+1Ch]
16234
                ror     eax, 0Bh
16235
                xor     ecx, edx
16236
                mov     ebp, [esi+54h]
16237
                xor     ecx, ebx
16238
                and     edi, [esp+18h]
16239
                xor     ecx, edi
16240
                lea     ebp, [eax+ebp+24A19947h]
16241
                ror     ecx, 7
16242
                add     ebp, ecx
16243
                mov     eax, [esp+10h]
16244
                mov     [esp+14h], ebp
16245
                mov     ebx, [esp+1Ch]
16246
                mov     edi, [esp+8]
16247
                xor     ebp, 0FFFFFFFFh
16248
                mov     ecx, [esp+0Ch]
16249
                and     ebx, edi
16250
                mov     edx, [esp+4]
16251
                and     ebp, ecx
16252
                xor     ebx, [esp]
16253
                xor     ebp, edx
16254
                xor     ecx, edi
16255
                xor     ebx, ebp
16256
                and     ecx, [esp+1Ch]
16257
                and     ebx, [esp+18h]
16258
                ror     eax, 0Bh
16259
                xor     ecx, edx
16260
                mov     ebp, [esi+24h]
16261
                xor     ecx, ebx
16262
                and     edi, [esp+14h]
16263
                xor     ecx, edi
16264
                lea     ebp, [eax+ebp-4C6E9309h]
16265
                ror     ecx, 7
16266
                add     ebp, ecx
16267
                mov     eax, [esp+0Ch]
16268
                mov     [esp+10h], ebp
16269
                mov     ebx, [esp+18h]
16270
                mov     edi, [esp+4]
16271
                xor     ebp, 0FFFFFFFFh
16272
                mov     ecx, [esp+8]
16273
                and     ebx, edi
16274
                mov     edx, [esp]
16275
                and     ebp, ecx
16276
                xor     ebx, [esp+1Ch]
16277
                xor     ebp, edx
16278
                xor     ecx, edi
16279
                xor     ebx, ebp
16280
                and     ecx, [esp+18h]
16281
                and     ebx, [esp+14h]
16282
                ror     eax, 0Bh
16283
                xor     ecx, edx
16284
                mov     ebp, [esi+44h]
16285
                xor     ecx, ebx
16286
                and     edi, [esp+10h]
16287
                xor     ecx, edi
16288
                lea     ebp, [eax+ebp+801F2E2h]
16289
                ror     ecx, 7
16290
                add     ebp, ecx
16291
                mov     eax, [esp+8]
16292
                mov     [esp+0Ch], ebp
16293
                mov     ebx, [esp+14h]
16294
                mov     edi, [esp]
16295
                xor     ebp, 0FFFFFFFFh
16296
                mov     ecx, [esp+4]
16297
                and     ebx, edi
16298
                mov     edx, [esp+1Ch]
16299
                and     ebp, ecx
16300
                xor     ebx, [esp+18h]
16301
                xor     ebp, edx
16302
                xor     ecx, edi
16303
                xor     ebx, ebp
16304
                and     ecx, [esp+14h]
16305
                and     ebx, [esp+10h]
16306
                ror     eax, 0Bh
16307
                xor     ecx, edx
16308
                mov     ebp, [esi+60h]
16309
                xor     ecx, ebx
16310
                and     edi, [esp+0Ch]
16311
                xor     ecx, edi
16312
                lea     ebp, [eax+ebp-7A7103EAh]
16313
                ror     ecx, 7
16314
                add     ebp, ecx
16315
                mov     eax, [esp+4]
16316
                mov     [esp+8], ebp
16317
                mov     ebx, [esp+10h]
16318
                mov     edi, [esp+1Ch]
16319
                xor     ebp, 0FFFFFFFFh
16320
                mov     ecx, [esp]
16321
                and     ebx, edi
16322
                mov     edx, [esp+18h]
16323
                and     ebp, ecx
16324
                xor     ebx, [esp+14h]
16325
                xor     ebp, edx
16326
                xor     ecx, edi
16327
                xor     ebx, ebp
16328
                and     ecx, [esp+10h]
16329
                and     ebx, [esp+0Ch]
16330
                ror     eax, 0Bh
16331
                xor     ecx, edx
16332
                mov     ebp, [esi+74h]
16333
                xor     ecx, ebx
16334
                and     edi, [esp+8]
16335
                xor     ecx, edi
16336
                lea     ebp, [eax+ebp+636920D8h]
16337
                ror     ecx, 7
16338
                add     ebp, ecx
16339
                mov     eax, [esp]
16340
                mov     [esp+4], ebp
16341
                mov     ebx, [esp+0Ch]
16342
                mov     edi, [esp+18h]
16343
                xor     ebp, 0FFFFFFFFh
16344
                mov     ecx, [esp+1Ch]
16345
                and     ebx, edi
16346
                mov     edx, [esp+14h]
16347
                and     ebp, ecx
16348
                xor     ebx, [esp+10h]
16349
                xor     ebp, edx
16350
                xor     ecx, edi
16351
                xor     ebx, ebp
16352
                and     ecx, [esp+0Ch]
16353
                and     ebx, [esp+8]
16354
                ror     eax, 0Bh
16355
                xor     ecx, edx
16356
                mov     ebp, [esi+18h]
16357
                xor     ecx, ebx
16358
                and     edi, [esp+4]
16359
                xor     ecx, edi
16360
                lea     ebp, [eax+ebp+71574E69h]
16361
                ror     ecx, 7
16362
                add     ebp, ecx
16363
                mov     eax, [esp+1Ch]
16364
                mov     [esp], ebp
16365
                mov     ebx, [esp+8]
16366
                mov     edi, [esp+14h]
16367
                xor     ebp, 0FFFFFFFFh
16368
                mov     ecx, [esp+18h]
16369
                and     ebx, edi
16370
                mov     edx, [esp+10h]
16371
                and     ebp, ecx
16372
                xor     ebx, [esp+0Ch]
16373
                xor     ebp, edx
16374
                xor     ecx, edi
16375
                xor     ebx, ebp
16376
                and     ecx, [esp+8]
16377
                and     ebx, [esp+4]
16378
                ror     eax, 0Bh
16379
                xor     ecx, edx
16380
                mov     ebp, [esi+4Ch]
16381
                xor     ecx, ebx
16382
                and     edi, [esp]
16383
                xor     ecx, edi
16384
                lea     ebp, [eax+ebp-5BA7015Dh]
16385
                ror     ecx, 7
16386
                add     ebp, ecx
16387
                mov     eax, [esp+18h]
16388
                mov     [esp+1Ch], ebp
16389
                mov     ebx, [esp+4]
16390
                mov     edi, [esp+10h]
16391
                xor     ebp, 0FFFFFFFFh
16392
                mov     ecx, [esp+14h]
16393
                and     ebx, edi
16394
                mov     edx, [esp+0Ch]
16395
                and     ebp, ecx
16396
                xor     ebx, [esp+8]
16397
                xor     ebp, edx
16398
                xor     ecx, edi
16399
                xor     ebx, ebp
16400
                and     ecx, [esp+4]
16401
                and     ebx, [esp]
16402
                ror     eax, 0Bh
16403
                xor     ecx, edx
16404
                mov     ebp, [esi+30h]
16405
                xor     ecx, ebx
16406
                and     edi, [esp+1Ch]
16407
                xor     ecx, edi
16408
                lea     ebp, [eax+ebp-0B6CC282h]
16409
                ror     ecx, 7
16410
                add     ebp, ecx
16411
                mov     eax, [esp+14h]
16412
                mov     [esp+18h], ebp
16413
                mov     ebx, [esp]
16414
                mov     edi, [esp+0Ch]
16415
                xor     ebp, 0FFFFFFFFh
16416
                mov     ecx, [esp+10h]
16417
                and     ebx, edi
16418
                mov     edx, [esp+8]
16419
                and     ebp, ecx
16420
                xor     ebx, [esp+4]
16421
                xor     ebp, edx
16422
                xor     ecx, edi
16423
                xor     ebx, ebp
16424
                and     ecx, [esp]
16425
                and     ebx, [esp+1Ch]
16426
                ror     eax, 0Bh
16427
                xor     ecx, edx
16428
                mov     ebp, [esi+3Ch]
16429
                xor     ecx, ebx
16430
                and     edi, [esp+18h]
16431
                xor     ecx, edi
16432
                lea     ebp, [eax+ebp+0D95748Fh]
16433
                ror     ecx, 7
16434
                add     ebp, ecx
16435
                mov     eax, [esp+10h]
16436
                mov     [esp+14h], ebp
16437
                mov     ebx, [esp+1Ch]
16438
                mov     edi, [esp+8]
16439
                xor     ebp, 0FFFFFFFFh
16440
                mov     ecx, [esp+0Ch]
16441
                and     ebx, edi
16442
                mov     edx, [esp+4]
16443
                and     ebp, ecx
16444
                xor     ebx, [esp]
16445
                xor     ebp, edx
16446
                xor     ecx, edi
16447
                xor     ebx, ebp
16448
                and     ecx, [esp+1Ch]
16449
                and     ebx, [esp+18h]
16450
                ror     eax, 0Bh
16451
                xor     ecx, edx
16452
                mov     ebp, [esi+34h]
16453
                xor     ecx, ebx
16454
                and     edi, [esp+14h]
16455
                xor     ecx, edi
16456
                lea     ebp, [eax+ebp+728EB658h]
16457
                ror     ecx, 7
16458
                add     ebp, ecx
16459
                mov     eax, [esp+0Ch]
16460
                mov     [esp+10h], ebp
16461
                mov     ebx, [esp+18h]
16462
                mov     edi, [esp+4]
16463
                xor     ebp, 0FFFFFFFFh
16464
                mov     ecx, [esp+8]
16465
                and     ebx, edi
16466
                mov     edx, [esp]
16467
                and     ebp, ecx
16468
                xor     ebx, [esp+1Ch]
16469
                xor     ebp, edx
16470
                xor     ecx, edi
16471
                xor     ebx, ebp
16472
                and     ecx, [esp+18h]
16473
                and     ebx, [esp+14h]
16474
                ror     eax, 0Bh
16475
                xor     ecx, edx
16476
                mov     ebp, [esi+8]
16477
                xor     ecx, ebx
16478
                and     edi, [esp+10h]
16479
                xor     ecx, edi
16480
                lea     ebp, [eax+ebp+718BCD58h]
16481
                ror     ecx, 7
16482
                add     ebp, ecx
16483
                mov     eax, [esp+8]
16484
                mov     [esp+0Ch], ebp
16485
                mov     ebx, [esp+14h]
16486
                mov     edi, [esp]
16487
                xor     ebp, 0FFFFFFFFh
16488
                mov     ecx, [esp+4]
16489
                and     ebx, edi
16490
                mov     edx, [esp+1Ch]
16491
                and     ebp, ecx
16492
                xor     ebx, [esp+18h]
16493
                xor     ebp, edx
16494
                xor     ecx, edi
16495
                xor     ebx, ebp
16496
                and     ecx, [esp+14h]
16497
                and     ebx, [esp+10h]
16498
                ror     eax, 0Bh
16499
                xor     ecx, edx
16500
                mov     ebp, [esi+64h]
16501
                xor     ecx, ebx
16502
                and     edi, [esp+0Ch]
16503
                xor     ecx, edi
16504
                lea     ebp, [eax+ebp-7DEAB512h]
16505
                ror     ecx, 7
16506
                add     ebp, ecx
16507
                mov     eax, [esp+4]
16508
                mov     [esp+8], ebp
16509
                mov     ebx, [esp+10h]
16510
                mov     edi, [esp+1Ch]
16511
                xor     ebp, 0FFFFFFFFh
16512
                mov     ecx, [esp]
16513
                and     ebx, edi
16514
                mov     edx, [esp+18h]
16515
                and     ebp, ecx
16516
                xor     ebx, [esp+14h]
16517
                xor     ebp, edx
16518
                xor     ecx, edi
16519
                xor     ebx, ebp
16520
                and     ecx, [esp+10h]
16521
                and     ebx, [esp+0Ch]
16522
                ror     eax, 0Bh
16523
                xor     ecx, edx
16524
                mov     ebp, [esi+7Ch]
16525
                xor     ecx, ebx
16526
                and     edi, [esp+8]
16527
                xor     ecx, edi
16528
                lea     ebp, [eax+ebp+7B54A41Dh]
16529
                ror     ecx, 7
16530
                add     ebp, ecx
16531
                mov     eax, [esp]
16532
                mov     [esp+4], ebp
16533
                mov     ebx, [esp+0Ch]
16534
                mov     edi, [esp+18h]
16535
                xor     ebp, 0FFFFFFFFh
16536
                mov     ecx, [esp+1Ch]
16537
                and     ebx, edi
16538
                mov     edx, [esp+14h]
16539
                and     ebp, ecx
16540
                xor     ebx, [esp+10h]
16541
                xor     ebp, edx
16542
                xor     ecx, edi
16543
                xor     ebx, ebp
16544
                and     ecx, [esp+0Ch]
16545
                and     ebx, [esp+8]
16546
                ror     eax, 0Bh
16547
                xor     ecx, edx
16548
                mov     ebp, [esi+6Ch]
16549
                xor     ecx, ebx
16550
                and     edi, [esp+4]
16551
                xor     ecx, edi
16552
                lea     ebp, [eax+ebp-3DA5A64Bh]
16553
                ror     ecx, 7
16554
                add     ebp, ecx
16555
                mov     eax, [esp+1Ch]
16556
                mov     [esp], ebp
16557
                mov     ebp, [esp+14h]
16558
                mov     ebx, [esp]
16559
                mov     ecx, [esp+8]
16560
                mov     edi, ebx
16561
                and     ebx, [esp+10h]
16562
                and     edi, ecx
16563
                xor     ebx, ebp
16564
                ror     eax, 0Bh
16565
                xor     edi, ebp
16566
                mov     ebp, [esi+4Ch]
16567
                xor     edi, [esp+4]
16568
                and     ecx, [esp+0Ch]
16569
                and     edi, [esp+18h]
16570
                xor     ecx, ebx
16571
                lea     ebp, [eax+ebp-63CF2AC7h]
16572
                xor     ecx, edi
16573
                ror     ecx, 7
16574
                add     ebp, ecx
16575
                mov     eax, [esp+18h]
16576
                mov     [esp+1Ch], ebp
16577
                mov     ebp, [esp+10h]
16578
                mov     ebx, [esp+1Ch]
16579
                mov     ecx, [esp+4]
16580
                mov     edi, ebx
16581
                and     ebx, [esp+0Ch]
16582
                and     edi, ecx
16583
                xor     ebx, ebp
16584
                ror     eax, 0Bh
16585
                xor     edi, ebp
16586
                mov     ebp, [esi+24h]
16587
                xor     edi, [esp]
16588
                and     ecx, [esp+8]
16589
                and     edi, [esp+14h]
16590
                xor     ecx, ebx
16591
                lea     ebp, [eax+ebp+2AF26013h]
16592
                xor     ecx, edi
16593
                ror     ecx, 7
16594
                add     ebp, ecx
16595
                mov     eax, [esp+14h]
16596
                mov     [esp+18h], ebp
16597
                mov     ebp, [esp+0Ch]
16598
                mov     ebx, [esp+18h]
16599
                mov     ecx, [esp]
16600
                mov     edi, ebx
16601
                and     ebx, [esp+8]
16602
                and     edi, ecx
16603
                xor     ebx, ebp
16604
                ror     eax, 0Bh
16605
                xor     edi, ebp
16606
                mov     ebp, [esi+10h]
16607
                xor     edi, [esp+1Ch]
16608
                and     ecx, [esp+4]
16609
                and     edi, [esp+10h]
16610
                xor     ecx, ebx
16611
                lea     ebp, [eax+ebp-3A2E4FDDh]
16612
                xor     ecx, edi
16613
                ror     ecx, 7
16614
                add     ebp, ecx
16615
                mov     eax, [esp+10h]
16616
                mov     [esp+14h], ebp
16617
                mov     ebp, [esp+8]
16618
                mov     ebx, [esp+14h]
16619
                mov     ecx, [esp+1Ch]
16620
                mov     edi, ebx
16621
                and     ebx, [esp+4]
16622
                and     edi, ecx
16623
                xor     ebx, ebp
16624
                ror     eax, 0Bh
16625
                xor     edi, ebp
16626
                mov     ebp, [esi+50h]
16627
                xor     edi, [esp+18h]
16628
                and     ecx, [esp]
16629
                and     edi, [esp+0Ch]
16630
                xor     ecx, ebx
16631
                lea     ebp, [eax+ebp+286085F0h]
16632
                xor     ecx, edi
16633
                ror     ecx, 7
16634
                add     ebp, ecx
16635
                mov     eax, [esp+0Ch]
16636
                mov     [esp+10h], ebp
16637
                mov     ebp, [esp+4]
16638
                mov     ebx, [esp+10h]
16639
                mov     ecx, [esp+18h]
16640
                mov     edi, ebx
16641
                and     ebx, [esp]
16642
                and     edi, ecx
16643
                xor     ebx, ebp
16644
                ror     eax, 0Bh
16645
                xor     edi, ebp
16646
                mov     ebp, [esi+70h]
16647
                xor     edi, [esp+14h]
16648
                and     ecx, [esp+1Ch]
16649
                and     edi, [esp+8]
16650
                xor     ecx, ebx
16651
                lea     ebp, [eax+ebp-35BE86E8h]
16652
                xor     ecx, edi
16653
                ror     ecx, 7
16654
                add     ebp, ecx
16655
                mov     eax, [esp+8]
16656
                mov     [esp+0Ch], ebp
16657
                mov     ebp, [esp]
16658
                mov     ebx, [esp+0Ch]
16659
                mov     ecx, [esp+14h]
16660
                mov     edi, ebx
16661
                and     ebx, [esp+1Ch]
16662
                and     edi, ecx
16663
                xor     ebx, ebp
16664
                ror     eax, 0Bh
16665
                xor     edi, ebp
16666
                mov     ebp, [esi+44h]
16667
                xor     edi, [esp+10h]
16668
                and     ecx, [esp+18h]
16669
                and     edi, [esp+4]
16670
                xor     ecx, ebx
16671
                lea     ebp, [eax+ebp-4724C711h]
16672
                xor     ecx, edi
16673
                ror     ecx, 7
16674
                add     ebp, ecx
16675
                mov     eax, [esp+4]
16676
                mov     [esp+8], ebp
16677
                mov     ebp, [esp+1Ch]
16678
                mov     ebx, [esp+8]
16679
                mov     ecx, [esp+10h]
16680
                mov     edi, ebx
16681
                and     ebx, [esp+18h]
16682
                and     edi, ecx
16683
                xor     ebx, ebp
16684
                ror     eax, 0Bh
16685
                xor     edi, ebp
16686
                mov     ebp, [esi+20h]
16687
                xor     edi, [esp+0Ch]
16688
                and     ecx, [esp+14h]
16689
                and     edi, [esp]
16690
                xor     ecx, ebx
16691
                lea     ebp, [eax+ebp-71862350h]
16692
                xor     ecx, edi
16693
                ror     ecx, 7
16694
                add     ebp, ecx
16695
                mov     eax, [esp]
16696
                mov     [esp+4], ebp
16697
                mov     ebp, [esp+18h]
16698
                mov     ebx, [esp+4]
16699
                mov     ecx, [esp+0Ch]
16700
                mov     edi, ebx
16701
                and     ebx, [esp+14h]
16702
                and     edi, ecx
16703
                xor     ebx, ebp
16704
                ror     eax, 0Bh
16705
                xor     edi, ebp
16706
                mov     ebp, [esi+58h]
16707
                xor     edi, [esp+8]
16708
                and     ecx, [esp+10h]
16709
                and     edi, [esp+1Ch]
16710
                xor     ecx, ebx
16711
                lea     ebp, [eax+ebp+603A180Eh]
16712
                xor     ecx, edi
16713
                ror     ecx, 7
16714
                add     ebp, ecx
16715
                mov     eax, [esp+1Ch]
16716
                mov     [esp], ebp
16717
                mov     ebp, [esp+14h]
16718
                mov     ebx, [esp]
16719
                mov     ecx, [esp+8]
16720
                mov     edi, ebx
16721
                and     ebx, [esp+10h]
16722
                and     edi, ecx
16723
                xor     ebx, ebp
16724
                ror     eax, 0Bh
16725
                xor     edi, ebp
16726
                mov     ebp, [esi+74h]
16727
                xor     edi, [esp+4]
16728
                and     ecx, [esp+0Ch]
16729
                and     edi, [esp+18h]
16730
                xor     ecx, ebx
16731
                lea     ebp, [eax+ebp+6C9E0E8Bh]
16732
                xor     ecx, edi
16733
                ror     ecx, 7
16734
                add     ebp, ecx
16735
                mov     eax, [esp+18h]
16736
                mov     [esp+1Ch], ebp
16737
                mov     ebp, [esp+10h]
16738
                mov     ebx, [esp+1Ch]
16739
                mov     ecx, [esp+4]
16740
                mov     edi, ebx
16741
                and     ebx, [esp+0Ch]
16742
                and     edi, ecx
16743
                xor     ebx, ebp
16744
                ror     eax, 0Bh
16745
                xor     edi, ebp
16746
                mov     ebp, [esi+38h]
16747
                xor     edi, [esp]
16748
                and     ecx, [esp+8]
16749
                and     edi, [esp+14h]
16750
                xor     ecx, ebx
16751
                lea     ebp, [eax+ebp-4FE175C2h]
16752
                xor     ecx, edi
16753
                ror     ecx, 7
16754
                add     ebp, ecx
16755
                mov     eax, [esp+14h]
16756
                mov     [esp+18h], ebp
16757
                mov     ebp, [esp+0Ch]
16758
                mov     ebx, [esp+18h]
16759
                mov     ecx, [esp]
16760
                mov     edi, ebx
16761
                and     ebx, [esp+8]
16762
                and     edi, ecx
16763
                xor     ebx, ebp
16764
                ror     eax, 0Bh
16765
                xor     edi, ebp
16766
                mov     ebp, [esi+64h]
16767
                xor     edi, [esp+1Ch]
16768
                and     ecx, [esp+4]
16769
                and     edi, [esp+10h]
16770
                xor     ecx, ebx
16771
                lea     ebp, [eax+ebp-28EA883Fh]
16772
                xor     ecx, edi
16773
                ror     ecx, 7
16774
                add     ebp, ecx
16775
                mov     eax, [esp+10h]
16776
                mov     [esp+14h], ebp
16777
                mov     ebp, [esp+8]
16778
                mov     ebx, [esp+14h]
16779
                mov     ecx, [esp+1Ch]
16780
                mov     edi, ebx
16781
                and     ebx, [esp+4]
16782
                and     edi, ecx
16783
                xor     ebx, ebp
16784
                ror     eax, 0Bh
16785
                xor     edi, ebp
16786
                mov     ebp, [esi+30h]
16787
                xor     edi, [esp+18h]
16788
                and     ecx, [esp]
16789
                and     edi, [esp+0Ch]
16790
                xor     ecx, ebx
16791
                lea     ebp, [eax+ebp-42CEB4D9h]
16792
                xor     ecx, edi
16793
                ror     ecx, 7
16794
                add     ebp, ecx
16795
                mov     eax, [esp+0Ch]
16796
                mov     [esp+10h], ebp
16797
                mov     ebp, [esp+4]
16798
                mov     ebx, [esp+10h]
16799
                mov     ecx, [esp+18h]
16800
                mov     edi, ebx
16801
                and     ebx, [esp]
16802
                and     edi, ecx
16803
                xor     ebx, ebp
16804
                ror     eax, 0Bh
16805
                xor     edi, ebp
16806
                mov     ebp, [esi+60h]
16807
                xor     edi, [esp+14h]
16808
                and     ecx, [esp+1Ch]
16809
                and     edi, [esp+8]
16810
                xor     ecx, ebx
16811
                lea     ebp, [eax+ebp+78AF2FDAh]
16812
                xor     ecx, edi
16813
                ror     ecx, 7
16814
                add     ebp, ecx
16815
                mov     eax, [esp+8]
16816
                mov     [esp+0Ch], ebp
16817
                mov     ebp, [esp]
16818
                mov     ebx, [esp+0Ch]
16819
                mov     ecx, [esp+14h]
16820
                mov     edi, ebx
16821
                and     ebx, [esp+1Ch]
16822
                and     edi, ecx
16823
                xor     ebx, ebp
16824
                ror     eax, 0Bh
16825
                xor     edi, ebp
16826
                mov     ebp, [esi+78h]
16827
                xor     edi, [esp+10h]
16828
                and     ecx, [esp+18h]
16829
                and     edi, [esp+4]
16830
                xor     ecx, ebx
16831
                lea     ebp, [eax+ebp+55605C60h]
16832
                xor     ecx, edi
16833
                ror     ecx, 7
16834
                add     ebp, ecx
16835
                mov     eax, [esp+4]
16836
                mov     [esp+8], ebp
16837
                mov     ebp, [esp+1Ch]
16838
                mov     ebx, [esp+8]
16839
                mov     ecx, [esp+10h]
16840
                mov     edi, ebx
16841
                and     ebx, [esp+18h]
16842
                and     edi, ecx
16843
                xor     ebx, ebp
16844
                ror     eax, 0Bh
16845
                xor     edi, ebp
16846
                mov     ebp, [esi+40h]
16847
                xor     edi, [esp+0Ch]
16848
                and     ecx, [esp+14h]
16849
                and     edi, [esp]
16850
                xor     ecx, ebx
16851
                lea     ebp, [eax+ebp-19AADA0Dh]
16852
                xor     ecx, edi
16853
                ror     ecx, 7
16854
                add     ebp, ecx
16855
                mov     eax, [esp]
16856
                mov     [esp+4], ebp
16857
                mov     ebp, [esp+18h]
16858
                mov     ebx, [esp+4]
16859
                mov     ecx, [esp+0Ch]
16860
                mov     edi, ebx
16861
                and     ebx, [esp+14h]
16862
                and     edi, ecx
16863
                xor     ebx, ebp
16864
                ror     eax, 0Bh
16865
                xor     edi, ebp
16866
                mov     ebp, [esi+68h]
16867
                xor     edi, [esp+8]
16868
                and     ecx, [esp+10h]
16869
                and     edi, [esp+1Ch]
16870
                xor     ecx, ebx
16871
                lea     ebp, [eax+ebp-55AA546Ch]
16872
                xor     ecx, edi
16873
                ror     ecx, 7
16874
                add     ebp, ecx
16875
                mov     eax, [esp+1Ch]
16876
                mov     [esp], ebp
16877
                mov     ebp, [esp+14h]
16878
                mov     ebx, [esp]
16879
                mov     ecx, [esp+8]
16880
                mov     edi, ebx
16881
                and     ebx, [esp+10h]
16882
                and     edi, ecx
16883
                xor     ebx, ebp
16884
                ror     eax, 0Bh
16885
                xor     edi, ebp
16886
                mov     ebp, [esi+7Ch]
16887
                xor     edi, [esp+4]
16888
                and     ecx, [esp+0Ch]
16889
                and     edi, [esp+18h]
16890
                xor     ecx, ebx
16891
                lea     ebp, [eax+ebp+57489862h]
16892
                xor     ecx, edi
16893
                ror     ecx, 7
16894
                add     ebp, ecx
16895
                mov     eax, [esp+18h]
16896
                mov     [esp+1Ch], ebp
16897
                mov     ebp, [esp+10h]
16898
                mov     ebx, [esp+1Ch]
16899
                mov     ecx, [esp+4]
16900
                mov     edi, ebx
16901
                and     ebx, [esp+0Ch]
16902
                and     edi, ecx
16903
                xor     ebx, ebp
16904
                ror     eax, 0Bh
16905
                xor     edi, ebp
16906
                mov     ebp, [esi+3Ch]
16907
                xor     edi, [esp]
16908
                and     ecx, [esp+8]
16909
                and     edi, [esp+14h]
16910
                xor     ecx, ebx
16911
                lea     ebp, [eax+ebp+63E81440h]
16912
                xor     ecx, edi
16913
                ror     ecx, 7
16914
                add     ebp, ecx
16915
                mov     eax, [esp+14h]
16916
                mov     [esp+18h], ebp
16917
                mov     ebp, [esp+0Ch]
16918
                mov     ebx, [esp+18h]
16919
                mov     ecx, [esp]
16920
                mov     edi, ebx
16921
                and     ebx, [esp+8]
16922
                and     edi, ecx
16923
                xor     ebx, ebp
16924
                ror     eax, 0Bh
16925
                xor     edi, ebp
16926
                mov     ebp, [esi+1Ch]
16927
                xor     edi, [esp+1Ch]
16928
                and     ecx, [esp+4]
16929
                and     edi, [esp+10h]
16930
                xor     ecx, ebx
16931
                lea     ebp, [eax+ebp+55CA396Ah]
16932
                xor     ecx, edi
16933
                ror     ecx, 7
16934
                add     ebp, ecx
16935
                mov     eax, [esp+10h]
16936
                mov     [esp+14h], ebp
16937
                mov     ebp, [esp+8]
16938
                mov     ebx, [esp+14h]
16939
                mov     ecx, [esp+1Ch]
16940
                mov     edi, ebx
16941
                and     ebx, [esp+4]
16942
                and     edi, ecx
16943
                xor     ebx, ebp
16944
                ror     eax, 0Bh
16945
                xor     edi, ebp
16946
                mov     ebp, [esi+0Ch]
16947
                xor     edi, [esp+18h]
16948
                and     ecx, [esp]
16949
                and     edi, [esp+0Ch]
16950
                xor     ecx, ebx
16951
                lea     ebp, [eax+ebp+2AAB10B6h]
16952
                xor     ecx, edi
16953
                ror     ecx, 7
16954
                add     ebp, ecx
16955
                mov     eax, [esp+0Ch]
16956
                mov     [esp+10h], ebp
16957
                mov     ebp, [esp+4]
16958
                mov     ebx, [esp+10h]
16959
                mov     ecx, [esp+18h]
16960
                mov     edi, ebx
16961
                and     ebx, [esp]
16962
                and     edi, ecx
16963
                xor     ebx, ebp
16964
                ror     eax, 0Bh
16965
                xor     edi, ebp
16966
                mov     ebp, [esi+4]
16967
                xor     edi, [esp+14h]
16968
                and     ecx, [esp+1Ch]
16969
                and     edi, [esp+8]
16970
                xor     ecx, ebx
16971
                lea     ebp, [eax+ebp-4B33A3CCh]
16972
                xor     ecx, edi
16973
                ror     ecx, 7
16974
                add     ebp, ecx
16975
                mov     eax, [esp+8]
16976
                mov     [esp+0Ch], ebp
16977
                mov     ebp, [esp]
16978
                mov     ebx, [esp+0Ch]
16979
                mov     ecx, [esp+14h]
16980
                mov     edi, ebx
16981
                and     ebx, [esp+1Ch]
16982
                and     edi, ecx
16983
                xor     ebx, ebp
16984
                ror     eax, 0Bh
16985
                xor     edi, ebp
16986
                mov     ebp, [esi]
16987
                xor     edi, [esp+10h]
16988
                and     ecx, [esp+18h]
16989
                and     edi, [esp+4]
16990
                xor     ecx, ebx
16991
                lea     ebp, [eax+ebp+1141E8CEh]
16992
                xor     ecx, edi
16993
                ror     ecx, 7
16994
                add     ebp, ecx
16995
                mov     eax, [esp+4]
16996
                mov     [esp+8], ebp
16997
                mov     ebp, [esp+1Ch]
16998
                mov     ebx, [esp+8]
16999
                mov     ecx, [esp+10h]
17000
                mov     edi, ebx
17001
                and     ebx, [esp+18h]
17002
                and     edi, ecx
17003
                xor     ebx, ebp
17004
                ror     eax, 0Bh
17005
                xor     edi, ebp
17006
                mov     ebp, [esi+48h]
17007
                xor     edi, [esp+0Ch]
17008
                and     ecx, [esp+14h]
17009
                and     edi, [esp]
17010
                xor     ecx, ebx
17011
                lea     ebp, [eax+ebp-5EAB7951h]
17012
                xor     ecx, edi
17013
                ror     ecx, 7
17014
                add     ebp, ecx
17015
                mov     eax, [esp]
17016
                mov     [esp+4], ebp
17017
                mov     ebp, [esp+18h]
17018
                mov     ebx, [esp+4]
17019
                mov     ecx, [esp+0Ch]
17020
                mov     edi, ebx
17021
                and     ebx, [esp+14h]
17022
                and     edi, ecx
17023
                xor     ebx, ebp
17024
                ror     eax, 0Bh
17025
                xor     edi, ebp
17026
                mov     ebp, [esi+6Ch]
17027
                xor     edi, [esp+8]
17028
                and     ecx, [esp+10h]
17029
                and     edi, [esp+1Ch]
17030
                xor     ecx, ebx
17031
                lea     ebp, [eax+ebp+7C72E993h]
17032
                xor     ecx, edi
17033
                ror     ecx, 7
17034
                add     ebp, ecx
17035
                mov     eax, [esp+1Ch]
17036
                mov     [esp], ebp
17037
                mov     ebp, [esp+14h]
17038
                mov     ebx, [esp]
17039
                mov     ecx, [esp+8]
17040
                mov     edi, ebx
17041
                and     ebx, [esp+10h]
17042
                and     edi, ecx
17043
                xor     ebx, ebp
17044
                ror     eax, 0Bh
17045
                xor     edi, ebp
17046
                mov     ebp, [esi+34h]
17047
                xor     edi, [esp+4]
17048
                and     ecx, [esp+0Ch]
17049
                and     edi, [esp+18h]
17050
                xor     ecx, ebx
17051
                lea     ebp, [eax+ebp-4C11EBEFh]
17052
                xor     ecx, edi
17053
                ror     ecx, 7
17054
                add     ebp, ecx
17055
                mov     eax, [esp+18h]
17056
                mov     [esp+1Ch], ebp
17057
                mov     ebp, [esp+10h]
17058
                mov     ebx, [esp+1Ch]
17059
                mov     ecx, [esp+4]
17060
                mov     edi, ebx
17061
                and     ebx, [esp+0Ch]
17062
                and     edi, ecx
17063
                xor     ebx, ebp
17064
                ror     eax, 0Bh
17065
                xor     edi, ebp
17066
                mov     ebp, [esi+18h]
17067
                xor     edi, [esp]
17068
                and     ecx, [esp+8]
17069
                and     edi, [esp+14h]
17070
                xor     ecx, ebx
17071
                lea     ebp, [eax+ebp+636FBC2Ah]
17072
                xor     ecx, edi
17073
                ror     ecx, 7
17074
                add     ebp, ecx
17075
                mov     eax, [esp+14h]
17076
                mov     [esp+18h], ebp
17077
                mov     ebp, [esp+0Ch]
17078
                mov     ebx, [esp+18h]
17079
                mov     ecx, [esp]
17080
                mov     edi, ebx
17081
                and     ebx, [esp+8]
17082
                and     edi, ecx
17083
                xor     ebx, ebp
17084
                ror     eax, 0Bh
17085
                xor     edi, ebp
17086
                mov     ebp, [esi+54h]
17087
                xor     edi, [esp+1Ch]
17088
                and     ecx, [esp+4]
17089
                and     edi, [esp+10h]
17090
                xor     ecx, ebx
17091
                lea     ebp, [eax+ebp+2BA9C55Dh]
17092
                xor     ecx, edi
17093
                ror     ecx, 7
17094
                add     ebp, ecx
17095
                mov     eax, [esp+10h]
17096
                mov     [esp+14h], ebp
17097
                mov     ebp, [esp+8]
17098
                mov     ebx, [esp+14h]
17099
                mov     ecx, [esp+1Ch]
17100
                mov     edi, ebx
17101
                and     ebx, [esp+4]
17102
                and     edi, ecx
17103
                xor     ebx, ebp
17104
                ror     eax, 0Bh
17105
                xor     edi, ebp
17106
                mov     ebp, [esi+28h]
17107
                xor     edi, [esp+18h]
17108
                and     ecx, [esp]
17109
                and     edi, [esp+0Ch]
17110
                xor     ecx, ebx
17111
                lea     ebp, [eax+ebp+741831F6h]
17112
                xor     ecx, edi
17113
                ror     ecx, 7
17114
                add     ebp, ecx
17115
                mov     eax, [esp+0Ch]
17116
                mov     [esp+10h], ebp
17117
                mov     ebp, [esp+4]
17118
                mov     ebx, [esp+10h]
17119
                mov     ecx, [esp+18h]
17120
                mov     edi, ebx
17121
                and     ebx, [esp]
17122
                and     edi, ecx
17123
                xor     ebx, ebp
17124
                ror     eax, 0Bh
17125
                xor     edi, ebp
17126
                mov     ebp, [esi+5Ch]
17127
                xor     edi, [esp+14h]
17128
                and     ecx, [esp+1Ch]
17129
                and     edi, [esp+8]
17130
                xor     ecx, ebx
17131
                lea     ebp, [eax+ebp-31A3C1EAh]
17132
                xor     ecx, edi
17133
                ror     ecx, 7
17134
                add     ebp, ecx
17135
                mov     eax, [esp+8]
17136
                mov     [esp+0Ch], ebp
17137
                mov     ebp, [esp]
17138
                mov     ebx, [esp+0Ch]
17139
                mov     ecx, [esp+14h]
17140
                mov     edi, ebx
17141
                and     ebx, [esp+1Ch]
17142
                and     edi, ecx
17143
                xor     ebx, ebp
17144
                ror     eax, 0Bh
17145
                xor     edi, ebp
17146
                mov     ebp, [esi+2Ch]
17147
                xor     edi, [esp+10h]
17148
                and     ecx, [esp+18h]
17149
                and     edi, [esp+4]
17150
                xor     ecx, ebx
17151
                lea     ebp, [eax+ebp-64786CE2h]
17152
                xor     ecx, edi
17153
                ror     ecx, 7
17154
                add     ebp, ecx
17155
                mov     eax, [esp+4]
17156
                mov     [esp+8], ebp
17157
                mov     ebp, [esp+1Ch]
17158
                mov     ebx, [esp+8]
17159
                mov     ecx, [esp+10h]
17160
                mov     edi, ebx
17161
                and     ebx, [esp+18h]
17162
                and     edi, ecx
17163
                xor     ebx, ebp
17164
                ror     eax, 0Bh
17165
                xor     edi, ebp
17166
                mov     ebp, [esi+14h]
17167
                xor     edi, [esp+0Ch]
17168
                and     ecx, [esp+14h]
17169
                and     edi, [esp]
17170
                xor     ecx, ebx
17171
                lea     ebp, [eax+ebp-502945CDh]
17172
                xor     ecx, edi
17173
                ror     ecx, 7
17174
                add     ebp, ecx
17175
                mov     eax, [esp]
17176
                mov     [esp+4], ebp
17177
                mov     ebp, [esp+18h]
17178
                mov     ebx, [esp+4]
17179
                mov     ecx, [esp+0Ch]
17180
                mov     edi, ebx
17181
                and     ebx, [esp+14h]
17182
                and     edi, ecx
17183
                xor     ebx, ebp
17184
                ror     eax, 0Bh
17185
                xor     edi, ebp
17186
                mov     ebp, [esi+8]
17187
                xor     edi, [esp+8]
17188
                and     ecx, [esp+10h]
17189
                and     edi, [esp+1Ch]
17190
                xor     ecx, ebx
17191
                lea     ebp, [eax+ebp+6C24CF5Ch]
17192
                xor     ecx, edi
17193
                ror     ecx, 7
17194
                add     ebp, ecx
17195
                mov     eax, [esp+1Ch]
17196
                mov     [esp], ebp
17197
                mov     ebp, [esp+8]
17198
                mov     ecx, [esp+10h]
17199
                mov     edx, [esp+18h]
17200
                mov     edi, ebp
17201
                mov     ebx, edx
17202
                xor     ebp, 0FFFFFFFFh
17203
                xor     ebx, 0FFFFFFFFh
17204
                and     ebp, ecx
17205
                and     ebx, [esp+14h]
17206
                xor     ebp, [esp+4]
17207
                xor     ebx, edx
17208
                xor     ebp, [esp+0Ch]
17209
                xor     ebx, ebp
17210
                mov     ebp, edi
17211
                and     ebx, [esp]
17212
                and     ebp, [esp+4]
17213
                and     edi, edx
17214
                xor     ebp, ecx
17215
                xor     ebx, [esp+0Ch]
17216
                ror     eax, 0Bh
17217
                xor     ebp, edx
17218
                mov     edx, [esi+60h]
17219
                and     ebp, [esp+14h]
17220
                xor     ebx, edi
17221
                xor     ebp, ebx
17222
                lea     edx, [eax+edx+7A325381h]
17223
                ror     ebp, 7
17224
                add     ebp, edx
17225
                mov     eax, [esp+18h]
17226
                mov     [esp+1Ch], ebp
17227
                mov     ebp, [esp+4]
17228
                mov     ecx, [esp+0Ch]
17229
                mov     edx, [esp+14h]
17230
                mov     edi, ebp
17231
                mov     ebx, edx
17232
                xor     ebp, 0FFFFFFFFh
17233
                xor     ebx, 0FFFFFFFFh
17234
                and     ebp, ecx
17235
                and     ebx, [esp+10h]
17236
                xor     ebp, [esp]
17237
                xor     ebx, edx
17238
                xor     ebp, [esp+8]
17239
                xor     ebx, ebp
17240
                mov     ebp, edi
17241
                and     ebx, [esp+1Ch]
17242
                and     ebp, [esp]
17243
                and     edi, edx
17244
                xor     ebp, ecx
17245
                xor     ebx, [esp+8]
17246
                ror     eax, 0Bh
17247
                xor     ebp, edx
17248
                mov     edx, [esi+10h]
17249
                and     ebp, [esp+10h]
17250
                xor     ebx, edi
17251
                xor     ebp, ebx
17252
                lea     edx, [eax+edx+28958677h]
17253
                ror     ebp, 7
17254
                add     ebp, edx
17255
                mov     eax, [esp+14h]
17256
                mov     [esp+18h], ebp
17257
                mov     ebp, [esp]
17258
                mov     ecx, [esp+8]
17259
                mov     edx, [esp+10h]
17260
                mov     edi, ebp
17261
                mov     ebx, edx
17262
                xor     ebp, 0FFFFFFFFh
17263
                xor     ebx, 0FFFFFFFFh
17264
                and     ebp, ecx
17265
                and     ebx, [esp+0Ch]
17266
                xor     ebp, [esp+1Ch]
17267
                xor     ebx, edx
17268
                xor     ebp, [esp+4]
17269
                xor     ebx, ebp
17270
                mov     ebp, edi
17271
                and     ebx, [esp+18h]
17272
                and     ebp, [esp+1Ch]
17273
                and     edi, edx
17274
                xor     ebp, ecx
17275
                xor     ebx, [esp+4]
17276
                ror     eax, 0Bh
17277
                xor     ebp, edx
17278
                mov     edx, [esi]
17279
                and     ebp, [esp+0Ch]
17280
                xor     ebx, edi
17281
                xor     ebp, ebx
17282
                lea     edx, [eax+edx+3B8F4898h]
17283
                ror     ebp, 7
17284
                add     ebp, edx
17285
                mov     eax, [esp+10h]
17286
                mov     [esp+14h], ebp
17287
                mov     ebp, [esp+1Ch]
17288
                mov     ecx, [esp+4]
17289
                mov     edx, [esp+0Ch]
17290
                mov     edi, ebp
17291
                mov     ebx, edx
17292
                xor     ebp, 0FFFFFFFFh
17293
                xor     ebx, 0FFFFFFFFh
17294
                and     ebp, ecx
17295
                and     ebx, [esp+8]
17296
                xor     ebp, [esp+18h]
17297
                xor     ebx, edx
17298
                xor     ebp, [esp]
17299
                xor     ebx, ebp
17300
                mov     ebp, edi
17301
                and     ebx, [esp+14h]
17302
                and     ebp, [esp+18h]
17303
                and     edi, edx
17304
                xor     ebp, ecx
17305
                xor     ebx, [esp]
17306
                ror     eax, 0Bh
17307
                xor     ebp, edx
17308
                mov     edx, [esi+38h]
17309
                and     ebp, [esp+8]
17310
                xor     ebx, edi
17311
                xor     ebp, ebx
17312
                lea     edx, [eax+edx+6B4BB9AFh]
17313
                ror     ebp, 7
17314
                add     ebp, edx
17315
                mov     eax, [esp+0Ch]
17316
                mov     [esp+10h], ebp
17317
                mov     ebp, [esp+18h]
17318
                mov     ecx, [esp]
17319
                mov     edx, [esp+8]
17320
                mov     edi, ebp
17321
                mov     ebx, edx
17322
                xor     ebp, 0FFFFFFFFh
17323
                xor     ebx, 0FFFFFFFFh
17324
                and     ebp, ecx
17325
                and     ebx, [esp+4]
17326
                xor     ebp, [esp+14h]
17327
                xor     ebx, edx
17328
                xor     ebp, [esp+1Ch]
17329
                xor     ebx, ebp
17330
                mov     ebp, edi
17331
                and     ebx, [esp+10h]
17332
                and     ebp, [esp+14h]
17333
                and     edi, edx
17334
                xor     ebp, ecx
17335
                xor     ebx, [esp+1Ch]
17336
                ror     eax, 0Bh
17337
                xor     ebp, edx
17338
                mov     edx, [esi+8]
17339
                and     ebp, [esp+4]
17340
                xor     ebx, edi
17341
                xor     ebp, ebx
17342
                lea     edx, [eax+edx-3B4017E5h]
17343
                ror     ebp, 7
17344
                add     ebp, edx
17345
                mov     eax, [esp+8]
17346
                mov     [esp+0Ch], ebp
17347
                mov     ebp, [esp+14h]
17348
                mov     ecx, [esp+1Ch]
17349
                mov     edx, [esp+4]
17350
                mov     edi, ebp
17351
                mov     ebx, edx
17352
                xor     ebp, 0FFFFFFFFh
17353
                xor     ebx, 0FFFFFFFFh
17354
                and     ebp, ecx
17355
                and     ebx, [esp]
17356
                xor     ebp, [esp+10h]
17357
                xor     ebx, edx
17358
                xor     ebp, [esp+18h]
17359
                xor     ebx, ebp
17360
                mov     ebp, edi
17361
                and     ebx, [esp+0Ch]
17362
                and     ebp, [esp+10h]
17363
                and     edi, edx
17364
                xor     ebp, ecx
17365
                xor     ebx, [esp+18h]
17366
                ror     eax, 0Bh
17367
                xor     ebp, edx
17368
                mov     edx, [esi+1Ch]
17369
                and     ebp, [esp]
17370
                xor     ebx, edi
17371
                xor     ebp, ebx
17372
                lea     edx, [eax+edx+66282193h]
17373
                ror     ebp, 7
17374
                add     ebp, edx
17375
                mov     eax, [esp+4]
17376
                mov     [esp+8], ebp
17377
                mov     ebp, [esp+10h]
17378
                mov     ecx, [esp+18h]
17379
                mov     edx, [esp]
17380
                mov     edi, ebp
17381
                mov     ebx, edx
17382
                xor     ebp, 0FFFFFFFFh
17383
                xor     ebx, 0FFFFFFFFh
17384
                and     ebp, ecx
17385
                and     ebx, [esp+1Ch]
17386
                xor     ebp, [esp+0Ch]
17387
                xor     ebx, edx
17388
                xor     ebp, [esp+14h]
17389
                xor     ebx, ebp
17390
                mov     ebp, edi
17391
                and     ebx, [esp+8]
17392
                and     ebp, [esp+0Ch]
17393
                and     edi, edx
17394
                xor     ebp, ecx
17395
                xor     ebx, [esp+14h]
17396
                ror     eax, 0Bh
17397
                xor     ebp, edx
17398
                mov     edx, [esi+70h]
17399
                and     ebp, [esp+1Ch]
17400
                xor     ebx, edi
17401
                xor     ebp, ebx
17402
                lea     edx, [eax+edx+61D809CCh]
17403
                ror     ebp, 7
17404
                add     ebp, edx
17405
                mov     eax, [esp]
17406
                mov     [esp+4], ebp
17407
                mov     ebp, [esp+0Ch]
17408
                mov     ecx, [esp+14h]
17409
                mov     edx, [esp+1Ch]
17410
                mov     edi, ebp
17411
                mov     ebx, edx
17412
                xor     ebp, 0FFFFFFFFh
17413
                xor     ebx, 0FFFFFFFFh
17414
                and     ebp, ecx
17415
                and     ebx, [esp+18h]
17416
                xor     ebp, [esp+8]
17417
                xor     ebx, edx
17418
                xor     ebp, [esp+10h]
17419
                xor     ebx, ebp
17420
                mov     ebp, edi
17421
                and     ebx, [esp+4]
17422
                and     ebp, [esp+8]
17423
                and     edi, edx
17424
                xor     ebp, ecx
17425
                xor     ebx, [esp+10h]
17426
                ror     eax, 0Bh
17427
                xor     ebp, edx
17428
                mov     edx, [esi+5Ch]
17429
                and     ebp, [esp+18h]
17430
                xor     ebx, edi
17431
                xor     ebp, ebx
17432
                lea     edx, [eax+edx-4DE566Fh]
17433
                ror     ebp, 7
17434
                add     ebp, edx
17435
                mov     eax, [esp+1Ch]
17436
                mov     [esp], ebp
17437
                mov     ebp, [esp+8]
17438
                mov     ecx, [esp+10h]
17439
                mov     edx, [esp+18h]
17440
                mov     edi, ebp
17441
                mov     ebx, edx
17442
                xor     ebp, 0FFFFFFFFh
17443
                xor     ebx, 0FFFFFFFFh
17444
                and     ebp, ecx
17445
                and     ebx, [esp+14h]
17446
                xor     ebp, [esp+4]
17447
                xor     ebx, edx
17448
                xor     ebp, [esp+0Ch]
17449
                xor     ebx, ebp
17450
                mov     ebp, edi
17451
                and     ebx, [esp]
17452
                and     ebp, [esp+4]
17453
                and     edi, edx
17454
                xor     ebp, ecx
17455
                xor     ebx, [esp+0Ch]
17456
                ror     eax, 0Bh
17457
                xor     ebp, edx
17458
                mov     edx, [esi+68h]
17459
                and     ebp, [esp+14h]
17460
                xor     ebx, edi
17461
                xor     ebp, ebx
17462
                lea     edx, [eax+edx+487CAC60h]
17463
                ror     ebp, 7
17464
                add     ebp, edx
17465
                mov     eax, [esp+18h]
17466
                mov     [esp+1Ch], ebp
17467
                mov     ebp, [esp+4]
17468
                mov     ecx, [esp+0Ch]
17469
                mov     edx, [esp+14h]
17470
                mov     edi, ebp
17471
                mov     ebx, edx
17472
                xor     ebp, 0FFFFFFFFh
17473
                xor     ebx, 0FFFFFFFFh
17474
                and     ebp, ecx
17475
                and     ebx, [esp+10h]
17476
                xor     ebp, [esp]
17477
                xor     ebx, edx
17478
                xor     ebp, [esp+8]
17479
                xor     ebx, ebp
17480
                mov     ebp, edi
17481
                and     ebx, [esp+1Ch]
17482
                and     ebp, [esp]
17483
                and     edi, edx
17484
                xor     ebp, ecx
17485
                xor     ebx, [esp+8]
17486
                ror     eax, 0Bh
17487
                xor     ebp, edx
17488
                mov     edx, [esi+18h]
17489
                and     ebp, [esp+10h]
17490
                xor     ebx, edi
17491
                xor     ebp, ebx
17492
                lea     edx, [eax+edx+5DEC8032h]
17493
                ror     ebp, 7
17494
                add     ebp, edx
17495
                mov     eax, [esp+14h]
17496
                mov     [esp+18h], ebp
17497
                mov     ebp, [esp]
17498
                mov     ecx, [esp+8]
17499
                mov     edx, [esp+10h]
17500
                mov     edi, ebp
17501
                mov     ebx, edx
17502
                xor     ebp, 0FFFFFFFFh
17503
                xor     ebx, 0FFFFFFFFh
17504
                and     ebp, ecx
17505
                and     ebx, [esp+0Ch]
17506
                xor     ebp, [esp+1Ch]
17507
                xor     ebx, edx
17508
                xor     ebp, [esp+4]
17509
                xor     ebx, ebp
17510
                mov     ebp, edi
17511
                and     ebx, [esp+18h]
17512
                and     ebp, [esp+1Ch]
17513
                and     edi, edx
17514
                xor     ebp, ecx
17515
                xor     ebx, [esp+4]
17516
                ror     eax, 0Bh
17517
                xor     ebp, edx
17518
                mov     edx, [esi+78h]
17519
                and     ebp, [esp+0Ch]
17520
                xor     ebx, edi
17521
                xor     ebp, ebx
17522
                lea     edx, [eax+edx-107BA2A3h]
17523
                ror     ebp, 7
17524
                add     ebp, edx
17525
                mov     eax, [esp+10h]
17526
                mov     [esp+14h], ebp
17527
                mov     ebp, [esp+1Ch]
17528
                mov     ecx, [esp+4]
17529
                mov     edx, [esp+0Ch]
17530
                mov     edi, ebp
17531
                mov     ebx, edx
17532
                xor     ebp, 0FFFFFFFFh
17533
                xor     ebx, 0FFFFFFFFh
17534
                and     ebp, ecx
17535
                and     ebx, [esp+8]
17536
                xor     ebp, [esp+18h]
17537
                xor     ebx, edx
17538
                xor     ebp, [esp]
17539
                xor     ebx, ebp
17540
                mov     ebp, edi
17541
                and     ebx, [esp+14h]
17542
                and     ebp, [esp+18h]
17543
                and     edi, edx
17544
                xor     ebp, ecx
17545
                xor     ebx, [esp]
17546
                ror     eax, 0Bh
17547
                xor     ebp, edx
17548
                mov     edx, [esi+50h]
17549
                and     ebp, [esp+8]
17550
                xor     ebx, edi
17551
                xor     ebp, ebx
17552
                lea     edx, [eax+edx-167A8A4Fh]
17553
                ror     ebp, 7
17554
                add     ebp, edx
17555
                mov     eax, [esp+0Ch]
17556
                mov     [esp+10h], ebp
17557
                mov     ebp, [esp+18h]
17558
                mov     ecx, [esp]
17559
                mov     edx, [esp+8]
17560
                mov     edi, ebp
17561
                mov     ebx, edx
17562
                xor     ebp, 0FFFFFFFFh
17563
                xor     ebx, 0FFFFFFFFh
17564
                and     ebp, ecx
17565
                and     ebx, [esp+4]
17566
                xor     ebp, [esp+14h]
17567
                xor     ebx, edx
17568
                xor     ebp, [esp+1Ch]
17569
                xor     ebx, ebp
17570
                mov     ebp, edi
17571
                and     ebx, [esp+10h]
17572
                and     ebp, [esp+14h]
17573
                and     edi, edx
17574
                xor     ebp, ecx
17575
                xor     ebx, [esp+1Ch]
17576
                ror     eax, 0Bh
17577
                xor     ebp, edx
17578
                mov     edx, [esi+48h]
17579
                and     ebp, [esp+4]
17580
                xor     ebx, edi
17581
                xor     ebp, ebx
17582
                lea     edx, [eax+edx-23D9DCFEh]
17583
                ror     ebp, 7
17584
                add     ebp, edx
17585
                mov     eax, [esp+8]
17586
                mov     [esp+0Ch], ebp
17587
                mov     ebp, [esp+14h]
17588
                mov     ecx, [esp+1Ch]
17589
                mov     edx, [esp+4]
17590
                mov     edi, ebp
17591
                mov     ebx, edx
17592
                xor     ebp, 0FFFFFFFFh
17593
                xor     ebx, 0FFFFFFFFh
17594
                and     ebp, ecx
17595
                and     ebx, [esp]
17596
                xor     ebp, [esp+10h]
17597
                xor     ebx, edx
17598
                xor     ebp, [esp+18h]
17599
                xor     ebx, ebp
17600
                mov     ebp, edi
17601
                and     ebx, [esp+0Ch]
17602
                and     ebp, [esp+10h]
17603
                and     edi, edx
17604
                xor     ebp, ecx
17605
                xor     ebx, [esp+18h]
17606
                ror     eax, 0Bh
17607
                xor     ebp, edx
17608
                mov     edx, [esi+64h]
17609
                and     ebp, [esp]
17610
                xor     ebx, edi
17611
                xor     ebp, ebx
17612
                lea     edx, [eax+edx-149AE478h]
17613
                ror     ebp, 7
17614
                add     ebp, edx
17615
                mov     eax, [esp+4]
17616
                mov     [esp+8], ebp
17617
                mov     ebp, [esp+10h]
17618
                mov     ecx, [esp+18h]
17619
                mov     edx, [esp]
17620
                mov     edi, ebp
17621
                mov     ebx, edx
17622
                xor     ebp, 0FFFFFFFFh
17623
                xor     ebx, 0FFFFFFFFh
17624
                and     ebp, ecx
17625
                and     ebx, [esp+1Ch]
17626
                xor     ebp, [esp+0Ch]
17627
                xor     ebx, edx
17628
                xor     ebp, [esp+14h]
17629
                xor     ebx, ebp
17630
                mov     ebp, edi
17631
                and     ebx, [esp+8]
17632
                and     ebp, [esp+0Ch]
17633
                and     edi, edx
17634
                xor     ebp, ecx
17635
                xor     ebx, [esp+14h]
17636
                ror     eax, 0Bh
17637
                xor     ebp, edx
17638
                mov     edx, [esi+4Ch]
17639
                and     ebp, [esp+1Ch]
17640
                xor     ebx, edi
17641
                xor     ebp, ebx
17642
                lea     edx, [eax+edx+23893E81h]
17643
                ror     ebp, 7
17644
                add     ebp, edx
17645
                mov     eax, [esp]
17646
                mov     [esp+4], ebp
17647
                mov     ebp, [esp+0Ch]
17648
                mov     ecx, [esp+14h]
17649
                mov     edx, [esp+1Ch]
17650
                mov     edi, ebp
17651
                mov     ebx, edx
17652
                xor     ebp, 0FFFFFFFFh
17653
                xor     ebx, 0FFFFFFFFh
17654
                and     ebp, ecx
17655
                and     ebx, [esp+18h]
17656
                xor     ebp, [esp+8]
17657
                xor     ebx, edx
17658
                xor     ebp, [esp+10h]
17659
                xor     ebx, ebp
17660
                mov     ebp, edi
17661
                and     ebx, [esp+4]
17662
                and     ebp, [esp+8]
17663
                and     edi, edx
17664
                xor     ebp, ecx
17665
                xor     ebx, [esp+10h]
17666
                ror     eax, 0Bh
17667
                xor     ebp, edx
17668
                mov     edx, [esi+0Ch]
17669
                and     ebp, [esp+18h]
17670
                xor     ebx, edi
17671
                xor     ebp, ebx
17672
                lea     edx, [eax+edx-2C69533Bh]
17673
                ror     ebp, 7
17674
                add     ebp, edx
17675
                mov     eax, [esp+1Ch]
17676
                mov     [esp], ebp
17677
                mov     ebp, [esp+8]
17678
                mov     ecx, [esp+10h]
17679
                mov     edx, [esp+18h]
17680
                mov     edi, ebp
17681
                mov     ebx, edx
17682
                xor     ebp, 0FFFFFFFFh
17683
                xor     ebx, 0FFFFFFFFh
17684
                and     ebp, ecx
17685
                and     ebx, [esp+14h]
17686
                xor     ebp, [esp+4]
17687
                xor     ebx, edx
17688
                xor     ebp, [esp+0Ch]
17689
                xor     ebx, ebp
17690
                mov     ebp, edi
17691
                and     ebx, [esp]
17692
                and     ebp, [esp+4]
17693
                and     edi, edx
17694
                xor     ebp, ecx
17695
                xor     ebx, [esp+0Ch]
17696
                ror     eax, 0Bh
17697
                xor     ebp, edx
17698
                mov     edx, [esi+58h]
17699
                and     ebp, [esp+14h]
17700
                xor     ebx, edi
17701
                xor     ebp, ebx
17702
                lea     edx, [eax+edx+0F6D6FF3h]
17703
                ror     ebp, 7
17704
                add     ebp, edx
17705
                mov     eax, [esp+18h]
17706
                mov     [esp+1Ch], ebp
17707
                mov     ebp, [esp+4]
17708
                mov     ecx, [esp+0Ch]
17709
                mov     edx, [esp+14h]
17710
                mov     edi, ebp
17711
                mov     ebx, edx
17712
                xor     ebp, 0FFFFFFFFh
17713
                xor     ebx, 0FFFFFFFFh
17714
                and     ebp, ecx
17715
                and     ebx, [esp+10h]
17716
                xor     ebp, [esp]
17717
                xor     ebx, edx
17718
                xor     ebp, [esp+8]
17719
                xor     ebx, ebp
17720
                mov     ebp, edi
17721
                and     ebx, [esp+1Ch]
17722
                and     ebp, [esp]
17723
                and     edi, edx
17724
                xor     ebp, ecx
17725
                xor     ebx, [esp+8]
17726
                ror     eax, 0Bh
17727
                xor     ebp, edx
17728
                mov     edx, [esi+2Ch]
17729
                and     ebp, [esp+10h]
17730
                xor     ebx, edi
17731
                xor     ebp, ebx
17732
                lea     edx, [eax+edx-7C0BBDC7h]
17733
                ror     ebp, 7
17734
                add     ebp, edx
17735
                mov     eax, [esp+14h]
17736
                mov     [esp+18h], ebp
17737
                mov     ebp, [esp]
17738
                mov     ecx, [esp+8]
17739
                mov     edx, [esp+10h]
17740
                mov     edi, ebp
17741
                mov     ebx, edx
17742
                xor     ebp, 0FFFFFFFFh
17743
                xor     ebx, 0FFFFFFFFh
17744
                and     ebp, ecx
17745
                and     ebx, [esp+0Ch]
17746
                xor     ebp, [esp+1Ch]
17747
                xor     ebx, edx
17748
                xor     ebp, [esp+4]
17749
                xor     ebx, ebp
17750
                mov     ebp, edi
17751
                and     ebx, [esp+18h]
17752
                and     ebp, [esp+1Ch]
17753
                and     edi, edx
17754
                xor     ebp, ecx
17755
                xor     ebx, [esp+4]
17756
                ror     eax, 0Bh
17757
                xor     ebp, edx
17758
                mov     edx, [esi+7Ch]
17759
                and     ebp, [esp+0Ch]
17760
                xor     ebx, edi
17761
                xor     ebp, ebx
17762
                lea     edx, [eax+edx+2E0B4482h]
17763
                ror     ebp, 7
17764
                add     ebp, edx
17765
                mov     eax, [esp+10h]
17766
                mov     [esp+14h], ebp
17767
                mov     ebp, [esp+1Ch]
17768
                mov     ecx, [esp+4]
17769
                mov     edx, [esp+0Ch]
17770
                mov     edi, ebp
17771
                mov     ebx, edx
17772
                xor     ebp, 0FFFFFFFFh
17773
                xor     ebx, 0FFFFFFFFh
17774
                and     ebp, ecx
17775
                and     ebx, [esp+8]
17776
                xor     ebp, [esp+18h]
17777
                xor     ebx, edx
17778
                xor     ebp, [esp]
17779
                xor     ebx, ebp
17780
                mov     ebp, edi
17781
                and     ebx, [esp+14h]
17782
                and     ebp, [esp+18h]
17783
                and     edi, edx
17784
                xor     ebp, ecx
17785
                xor     ebx, [esp]
17786
                ror     eax, 0Bh
17787
                xor     ebp, edx
17788
                mov     edx, [esi+54h]
17789
                and     ebp, [esp+8]
17790
                xor     ebx, edi
17791
                xor     ebp, ebx
17792
                lea     edx, [eax+edx-5B7BDFFCh]
17793
                ror     ebp, 7
17794
                add     ebp, edx
17795
                mov     eax, [esp+0Ch]
17796
                mov     [esp+10h], ebp
17797
                mov     ebp, [esp+18h]
17798
                mov     ecx, [esp]
17799
                mov     edx, [esp+8]
17800
                mov     edi, ebp
17801
                mov     ebx, edx
17802
                xor     ebp, 0FFFFFFFFh
17803
                xor     ebx, 0FFFFFFFFh
17804
                and     ebp, ecx
17805
                and     ebx, [esp+4]
17806
                xor     ebp, [esp+14h]
17807
                xor     ebx, edx
17808
                xor     ebp, [esp+1Ch]
17809
                xor     ebx, ebp
17810
                mov     ebp, edi
17811
                and     ebx, [esp+10h]
17812
                and     ebp, [esp+14h]
17813
                and     edi, edx
17814
                xor     ebp, ecx
17815
                xor     ebx, [esp+1Ch]
17816
                ror     eax, 0Bh
17817
                xor     ebp, edx
17818
                mov     edx, [esi+20h]
17819
                and     ebp, [esp+4]
17820
                xor     ebx, edi
17821
                xor     ebp, ebx
17822
                lea     edx, [eax+edx+69C8F04Ah]
17823
                ror     ebp, 7
17824
                add     ebp, edx
17825
                mov     eax, [esp+8]
17826
                mov     [esp+0Ch], ebp
17827
                mov     ebp, [esp+14h]
17828
                mov     ecx, [esp+1Ch]
17829
                mov     edx, [esp+4]
17830
                mov     edi, ebp
17831
                mov     ebx, edx
17832
                xor     ebp, 0FFFFFFFFh
17833
                xor     ebx, 0FFFFFFFFh
17834
                and     ebp, ecx
17835
                and     ebx, [esp]
17836
                xor     ebp, [esp+10h]
17837
                xor     ebx, edx
17838
                xor     ebp, [esp+18h]
17839
                xor     ebx, ebp
17840
                mov     ebp, edi
17841
                and     ebx, [esp+0Ch]
17842
                and     ebp, [esp+10h]
17843
                and     edi, edx
17844
                xor     ebp, ecx
17845
                xor     ebx, [esp+18h]
17846
                ror     eax, 0Bh
17847
                xor     ebp, edx
17848
                mov     edx, [esi+6Ch]
17849
                and     ebp, [esp]
17850
                xor     ebx, edi
17851
                xor     ebp, ebx
17852
                lea     edx, [eax+edx-61E064A2h]
17853
                ror     ebp, 7
17854
                add     ebp, edx
17855
                mov     eax, [esp+4]
17856
                mov     [esp+8], ebp
17857
                mov     ebp, [esp+10h]
17858
                mov     ecx, [esp+18h]
17859
                mov     edx, [esp]
17860
                mov     edi, ebp
17861
                mov     ebx, edx
17862
                xor     ebp, 0FFFFFFFFh
17863
                xor     ebx, 0FFFFFFFFh
17864
                and     ebp, ecx
17865
                and     ebx, [esp+1Ch]
17866
                xor     ebp, [esp+0Ch]
17867
                xor     ebx, edx
17868
                xor     ebp, [esp+14h]
17869
                xor     ebx, ebp
17870
                mov     ebp, edi
17871
                and     ebx, [esp+8]
17872
                and     ebp, [esp+0Ch]
17873
                and     edi, edx
17874
                xor     ebp, ecx
17875
                xor     ebx, [esp+14h]
17876
                ror     eax, 0Bh
17877
                xor     ebp, edx
17878
                mov     edx, [esi+30h]
17879
                and     ebp, [esp+1Ch]
17880
                xor     ebx, edi
17881
                xor     ebp, ebx
17882
                lea     edx, [eax+edx+21C66842h]
17883
                ror     ebp, 7
17884
                add     ebp, edx
17885
                mov     eax, [esp]
17886
                mov     [esp+4], ebp
17887
                mov     ebp, [esp+0Ch]
17888
                mov     ecx, [esp+14h]
17889
                mov     edx, [esp+1Ch]
17890
                mov     edi, ebp
17891
                mov     ebx, edx
17892
                xor     ebp, 0FFFFFFFFh
17893
                xor     ebx, 0FFFFFFFFh
17894
                and     ebp, ecx
17895
                and     ebx, [esp+18h]
17896
                xor     ebp, [esp+8]
17897
                xor     ebx, edx
17898
                xor     ebp, [esp+10h]
17899
                xor     ebx, ebp
17900
                mov     ebp, edi
17901
                and     ebx, [esp+4]
17902
                and     ebp, [esp+8]
17903
                and     edi, edx
17904
                xor     ebp, ecx
17905
                xor     ebx, [esp+10h]
17906
                ror     eax, 0Bh
17907
                xor     ebp, edx
17908
                mov     edx, [esi+24h]
17909
                and     ebp, [esp+18h]
17910
                xor     ebx, edi
17911
                xor     ebp, ebx
17912
                lea     edx, [eax+edx-9169366h]
17913
                ror     ebp, 7
17914
                add     ebp, edx
17915
                mov     eax, [esp+1Ch]
17916
                mov     [esp], ebp
17917
                mov     ebp, [esp+8]
17918
                mov     ecx, [esp+10h]
17919
                mov     edx, [esp+18h]
17920
                mov     edi, ebp
17921
                mov     ebx, edx
17922
                xor     ebp, 0FFFFFFFFh
17923
                xor     ebx, 0FFFFFFFFh
17924
                and     ebp, ecx
17925
                and     ebx, [esp+14h]
17926
                xor     ebp, [esp+4]
17927
                xor     ebx, edx
17928
                xor     ebp, [esp+0Ch]
17929
                xor     ebx, ebp
17930
                mov     ebp, edi
17931
                and     ebx, [esp]
17932
                and     ebp, [esp+4]
17933
                and     edi, edx
17934
                xor     ebp, ecx
17935
                xor     ebx, [esp+0Ch]
17936
                ror     eax, 0Bh
17937
                xor     ebp, edx
17938
                mov     edx, [esi+4]
17939
                and     ebp, [esp+14h]
17940
                xor     ebx, edi
17941
                xor     ebp, ebx
17942
                lea     edx, [eax+edx+670C9C61h]
17943
                ror     ebp, 7
17944
                add     ebp, edx
17945
                mov     eax, [esp+18h]
17946
                mov     [esp+1Ch], ebp
17947
                mov     ebp, [esp+4]
17948
                mov     ecx, [esp+0Ch]
17949
                mov     edx, [esp+14h]
17950
                mov     edi, ebp
17951
                mov     ebx, edx
17952
                xor     ebp, 0FFFFFFFFh
17953
                xor     ebx, 0FFFFFFFFh
17954
                and     ebp, ecx
17955
                and     ebx, [esp+10h]
17956
                xor     ebp, [esp]
17957
                xor     ebx, edx
17958
                xor     ebp, [esp+8]
17959
                xor     ebx, ebp
17960
                mov     ebp, edi
17961
                and     ebx, [esp+1Ch]
17962
                and     ebp, [esp]
17963
                and     edi, edx
17964
                xor     ebp, ecx
17965
                xor     ebx, [esp+8]
17966
                ror     eax, 0Bh
17967
                xor     ebp, edx
17968
                mov     edx, [esi+74h]
17969
                and     ebp, [esp+10h]
17970
                xor     ebx, edi
17971
                xor     ebp, ebx
17972
                lea     edx, [eax+edx-542C7710h]
17973
                ror     ebp, 7
17974
                add     ebp, edx
17975
                mov     eax, [esp+14h]
17976
                mov     [esp+18h], ebp
17977
                mov     ebp, [esp]
17978
                mov     ecx, [esp+8]
17979
                mov     edx, [esp+10h]
17980
                mov     edi, ebp
17981
                mov     ebx, edx
17982
                xor     ebp, 0FFFFFFFFh
17983
                xor     ebx, 0FFFFFFFFh
17984
                and     ebp, ecx
17985
                and     ebx, [esp+0Ch]
17986
                xor     ebp, [esp+1Ch]
17987
                xor     ebx, edx
17988
                xor     ebp, [esp+4]
17989
                xor     ebx, ebp
17990
                mov     ebp, edi
17991
                and     ebx, [esp+18h]
17992
                and     ebp, [esp+1Ch]
17993
                and     edi, edx
17994
                xor     ebp, ecx
17995
                xor     ebx, [esp+4]
17996
                ror     eax, 0Bh
17997
                xor     ebp, edx
17998
                mov     edx, [esi+14h]
17999
                and     ebp, [esp+0Ch]
18000
                xor     ebx, edi
18001
                xor     ebp, ebx
18002
                lea     edx, [eax+edx+6A51A0D2h]
18003
                ror     ebp, 7
18004
                add     ebp, edx
18005
                mov     eax, [esp+10h]
18006
                mov     [esp+14h], ebp
18007
                mov     ebp, [esp+1Ch]
18008
                mov     ecx, [esp+4]
18009
                mov     edx, [esp+0Ch]
18010
                mov     edi, ebp
18011
                mov     ebx, edx
18012
                xor     ebp, 0FFFFFFFFh
18013
                xor     ebx, 0FFFFFFFFh
18014
                and     ebp, ecx
18015
                and     ebx, [esp+8]
18016
                xor     ebp, [esp+18h]
18017
                xor     ebx, edx
18018
                xor     ebp, [esp]
18019
                xor     ebx, ebp
18020
                mov     ebp, edi
18021
                and     ebx, [esp+14h]
18022
                and     ebp, [esp+18h]
18023
                and     edi, edx
18024
                xor     ebp, ecx
18025
                xor     ebx, [esp]
18026
                ror     eax, 0Bh
18027
                xor     ebp, edx
18028
                mov     edx, [esi+3Ch]
18029
                and     ebp, [esp+8]
18030
                xor     ebx, edi
18031
                xor     ebp, ebx
18032
                lea     edx, [eax+edx-27ABD098h]
18033
                ror     ebp, 7
18034
                add     ebp, edx
18035
                mov     eax, [esp+0Ch]
18036
                mov     [esp+10h], ebp
18037
                mov     ebp, [esp+18h]
18038
                mov     ecx, [esp]
18039
                mov     edx, [esp+8]
18040
                mov     edi, ebp
18041
                mov     ebx, edx
18042
                xor     ebp, 0FFFFFFFFh
18043
                xor     ebx, 0FFFFFFFFh
18044
                and     ebp, ecx
18045
                and     ebx, [esp+4]
18046
                xor     ebp, [esp+14h]
18047
                xor     ebx, edx
18048
                xor     ebp, [esp+1Ch]
18049
                xor     ebx, ebp
18050
                mov     ebp, edi
18051
                and     ebx, [esp+10h]
18052
                and     ebp, [esp+14h]
18053
                and     edi, edx
18054
                xor     ebp, ecx
18055
                xor     ebx, [esp+1Ch]
18056
                ror     eax, 0Bh
18057
                xor     ebp, edx
18058
                mov     edx, [esi+44h]
18059
                and     ebp, [esp+4]
18060
                xor     ebx, edi
18061
                xor     ebp, ebx
18062
                lea     edx, [eax+edx-69F058D8h]
18063
                ror     ebp, 7
18064
                add     ebp, edx
18065
                mov     eax, [esp+8]
18066
                mov     [esp+0Ch], ebp
18067
                mov     ebp, [esp+14h]
18068
                mov     ecx, [esp+1Ch]
18069
                mov     edx, [esp+4]
18070
                mov     edi, ebp
18071
                mov     ebx, edx
18072
                xor     ebp, 0FFFFFFFFh
18073
                xor     ebx, 0FFFFFFFFh
18074
                and     ebp, ecx
18075
                and     ebx, [esp]
18076
                xor     ebp, [esp+10h]
18077
                xor     ebx, edx
18078
                xor     ebp, [esp+18h]
18079
                xor     ebx, ebp
18080
                mov     ebp, edi
18081
                and     ebx, [esp+0Ch]
18082
                and     ebp, [esp+10h]
18083
                and     edi, edx
18084
                xor     ebp, ecx
18085
                xor     ebx, [esp+18h]
18086
                ror     eax, 0Bh
18087
                xor     ebp, edx
18088
                mov     edx, [esi+28h]
18089
                and     ebp, [esp]
18090
                xor     ebx, edi
18091
                xor     ebp, ebx
18092
                lea     edx, [eax+edx-54AECC5Dh]
18093
                ror     ebp, 7
18094
                add     ebp, edx
18095
                mov     eax, [esp+4]
18096
                mov     [esp+8], ebp
18097
                mov     ebp, [esp+10h]
18098
                mov     ecx, [esp+18h]
18099
                mov     edx, [esp]
18100
                mov     edi, ebp
18101
                mov     ebx, edx
18102
                xor     ebp, 0FFFFFFFFh
18103
                xor     ebx, 0FFFFFFFFh
18104
                and     ebp, ecx
18105
                and     ebx, [esp+1Ch]
18106
                xor     ebp, [esp+0Ch]
18107
                xor     ebx, edx
18108
                xor     ebp, [esp+14h]
18109
                xor     ebx, ebp
18110
                mov     ebp, edi
18111
                and     ebx, [esp+8]
18112
                and     ebp, [esp+0Ch]
18113
                and     edi, edx
18114
                xor     ebp, ecx
18115
                xor     ebx, [esp+14h]
18116
                ror     eax, 0Bh
18117
                xor     ebp, edx
18118
                mov     edx, [esi+40h]
18119
                and     ebp, [esp+1Ch]
18120
                xor     ebx, edi
18121
                xor     ebp, ebx
18122
                lea     edx, [eax+edx+6EEF0B6Ch]
18123
                ror     ebp, 7
18124
                add     ebp, edx
18125
                mov     eax, [esp]
18126
                mov     [esp+4], ebp
18127
                mov     ebp, [esp+0Ch]
18128
                mov     ecx, [esp+14h]
18129
                mov     edx, [esp+1Ch]
18130
                mov     edi, ebp
18131
                mov     ebx, edx
18132
                xor     ebp, 0FFFFFFFFh
18133
                xor     ebx, 0FFFFFFFFh
18134
                and     ebp, ecx
18135
                and     ebx, [esp+18h]
18136
                xor     ebp, [esp+8]
18137
                xor     ebx, edx
18138
                xor     ebp, [esp+10h]
18139
                xor     ebx, ebp
18140
                mov     ebp, edi
18141
                and     ebx, [esp+4]
18142
                and     ebp, [esp+8]
18143
                and     edi, edx
18144
                xor     ebp, ecx
18145
                xor     ebx, [esp+10h]
18146
                ror     eax, 0Bh
18147
                xor     ebp, edx
18148
                mov     edx, [esi+34h]
18149
                and     ebp, [esp+18h]
18150
                xor     ebx, edi
18151
                xor     ebp, ebx
18152
                lea     edx, [eax+edx+137A3BE4h]
18153
                ror     ebp, 7
18154
                add     ebp, edx
18155
                mov     eax, [esp+1Ch]
18156
                mov     [esp], ebp
18157
                mov     edi, [esp+24h]
18158
                mov     eax, [esp]
18159
                mov     ebx, [esp+4]
18160
                add     [edi], eax
18161
                add     [edi+4], ebx
18162
                mov     ecx, [esp+8]
18163
                mov     edx, [esp+0Ch]
18164
                add     [edi+8], ecx
18165
                add     [edi+0Ch], edx
18166
                mov     eax, [esp+10h]
18167
                mov     ebx, [esp+14h]
18168
                add     [edi+10h], eax
18169
                add     [edi+14h], ebx
18170
                mov     ebp, [esp+28h]
18171
                mov     ecx, [esp+18h]
18172
                mov     edx, [esp+1Ch]
18173
                mov     esp, ebp
18174
                add     [edi+18h], ecx
18175
                add     [edi+1Ch], edx
18176
                pop     ebp
18177
                pop     edi
18178
                pop     esi
18179
                pop     ebx
18180
end;
18181
18182
procedure THashBaseHaval.DoTransform5(Buffer: PUInt32Array);
18183
asm
18184
                push    ebx
18185
                push    esi
18186
                push    edi
18187
                lea     edi, [eax].THashBaseHaval.FDigest
18188
                mov     esi, edx
18189
                push    ebp
18190
                mov     ebp, esp
18191
                add     esp, 0FFFFFFD4h
18192
                and     esp, 0FFFFFFC0h
18193
                mov     eax, [edi]
18194
                mov     ebx, [edi+4]
18195
                mov     [esp+20h], esi
18196
                mov     [esp+24h], edi
18197
                mov     [esp+28h], ebp
18198
                mov     [esp], eax
18199
                mov     [esp+4], ebx
18200
                mov     ecx, [edi+8]
18201
                mov     edx, [edi+0Ch]
18202
                mov     [esp+8], ecx
18203
                mov     [esp+0Ch], edx
18204
                mov     eax, [edi+10h]
18205
                mov     ebx, [edi+14h]
18206
                mov     [esp+10h], eax
18207
                mov     [esp+14h], ebx
18208
                mov     ecx, [edi+18h]
18209
                mov     edx, [edi+1Ch]
18210
                mov     [esp+18h], ecx
18211
                mov     [esp+1Ch], edx
18212
                mov     eax, edx
18213
                mov     ebp, [esp+10h]
18214
                mov     ebx, [esp+4]
18215
                mov     ecx, [esp+18h]
18216
                ror     eax, 0Bh
18217
                xor     ebx, ecx
18218
                mov     edi, [esp+0Ch]
18219
                and     ebx, [esp+8]
18220
                and     edi, [esp]
18221
                xor     ecx, ebx
18222
                and     ebp, [esp+14h]
18223
                xor     edi, ecx
18224
                mov     edx, [esi]
18225
                xor     ebp, edi
18226
                add     eax, edx
18227
                ror     ebp, 7
18228
                add     ebp, eax
18229
                mov     eax, [esp+18h]
18230
                mov     [esp+1Ch], ebp
18231
                mov     ebp, [esp+0Ch]
18232
                mov     ebx, [esp]
18233
                mov     ecx, [esp+14h]
18234
                ror     eax, 0Bh
18235
                xor     ebx, ecx
18236
                mov     edi, [esp+8]
18237
                and     ebx, [esp+4]
18238
                and     edi, [esp+1Ch]
18239
                xor     ecx, ebx
18240
                and     ebp, [esp+10h]
18241
                xor     edi, ecx
18242
                mov     edx, [esi+4]
18243
                xor     ebp, edi
18244
                add     eax, edx
18245
                ror     ebp, 7
18246
                add     ebp, eax
18247
                mov     eax, [esp+14h]
18248
                mov     [esp+18h], ebp
18249
                mov     ebp, [esp+8]
18250
                mov     ebx, [esp+1Ch]
18251
                mov     ecx, [esp+10h]
18252
                ror     eax, 0Bh
18253
                xor     ebx, ecx
18254
                mov     edi, [esp+4]
18255
                and     ebx, [esp]
18256
                and     edi, [esp+18h]
18257
                xor     ecx, ebx
18258
                and     ebp, [esp+0Ch]
18259
                xor     edi, ecx
18260
                mov     edx, [esi+8]
18261
                xor     ebp, edi
18262
                add     eax, edx
18263
                ror     ebp, 7
18264
                add     ebp, eax
18265
                mov     eax, [esp+10h]
18266
                mov     [esp+14h], ebp
18267
                mov     ebp, [esp+4]
18268
                mov     ebx, [esp+18h]
18269
                mov     ecx, [esp+0Ch]
18270
                ror     eax, 0Bh
18271
                xor     ebx, ecx
18272
                mov     edi, [esp]
18273
                and     ebx, [esp+1Ch]
18274
                and     edi, [esp+14h]
18275
                xor     ecx, ebx
18276
                and     ebp, [esp+8]
18277
                xor     edi, ecx
18278
                mov     edx, [esi+0Ch]
18279
                xor     ebp, edi
18280
                add     eax, edx
18281
                ror     ebp, 7
18282
                add     ebp, eax
18283
                mov     eax, [esp+0Ch]
18284
                mov     [esp+10h], ebp
18285
                mov     ebp, [esp]
18286
                mov     ebx, [esp+14h]
18287
                mov     ecx, [esp+8]
18288
                ror     eax, 0Bh
18289
                xor     ebx, ecx
18290
                mov     edi, [esp+1Ch]
18291
                and     ebx, [esp+18h]
18292
                and     edi, [esp+10h]
18293
                xor     ecx, ebx
18294
                and     ebp, [esp+4]
18295
                xor     edi, ecx
18296
                mov     edx, [esi+10h]
18297
                xor     ebp, edi
18298
                add     eax, edx
18299
                ror     ebp, 7
18300
                add     ebp, eax
18301
                mov     eax, [esp+8]
18302
                mov     [esp+0Ch], ebp
18303
                mov     ebp, [esp+1Ch]
18304
                mov     ebx, [esp+10h]
18305
                mov     ecx, [esp+4]
18306
                ror     eax, 0Bh
18307
                xor     ebx, ecx
18308
                mov     edi, [esp+18h]
18309
                and     ebx, [esp+14h]
18310
                and     edi, [esp+0Ch]
18311
                xor     ecx, ebx
18312
                and     ebp, [esp]
18313
                xor     edi, ecx
18314
                mov     edx, [esi+14h]
18315
                xor     ebp, edi
18316
                add     eax, edx
18317
                ror     ebp, 7
18318
                add     ebp, eax
18319
                mov     eax, [esp+4]
18320
                mov     [esp+8], ebp
18321
                mov     ebp, [esp+18h]
18322
                mov     ebx, [esp+0Ch]
18323
                mov     ecx, [esp]
18324
                ror     eax, 0Bh
18325
                xor     ebx, ecx
18326
                mov     edi, [esp+14h]
18327
                and     ebx, [esp+10h]
18328
                and     edi, [esp+8]
18329
                xor     ecx, ebx
18330
                and     ebp, [esp+1Ch]
18331
                xor     edi, ecx
18332
                mov     edx, [esi+18h]
18333
                xor     ebp, edi
18334
                add     eax, edx
18335
                ror     ebp, 7
18336
                add     ebp, eax
18337
                mov     eax, [esp]
18338
                mov     [esp+4], ebp
18339
                mov     ebp, [esp+14h]
18340
                mov     ebx, [esp+8]
18341
                mov     ecx, [esp+1Ch]
18342
                ror     eax, 0Bh
18343
                xor     ebx, ecx
18344
                mov     edi, [esp+10h]
18345
                and     ebx, [esp+0Ch]
18346
                and     edi, [esp+4]
18347
                xor     ecx, ebx
18348
                and     ebp, [esp+18h]
18349
                xor     edi, ecx
18350
                mov     edx, [esi+1Ch]
18351
                xor     ebp, edi
18352
                add     eax, edx
18353
                ror     ebp, 7
18354
                add     ebp, eax
18355
                mov     eax, [esp+1Ch]
18356
                mov     [esp], ebp
18357
                mov     ebp, [esp+10h]
18358
                mov     ebx, [esp+4]
18359
                mov     ecx, [esp+18h]
18360
                ror     eax, 0Bh
18361
                xor     ebx, ecx
18362
                mov     edi, [esp+0Ch]
18363
                and     ebx, [esp+8]
18364
                and     edi, [esp]
18365
                xor     ecx, ebx
18366
                and     ebp, [esp+14h]
18367
                xor     edi, ecx
18368
                mov     edx, [esi+20h]
18369
                xor     ebp, edi
18370
                add     eax, edx
18371
                ror     ebp, 7
18372
                add     ebp, eax
18373
                mov     eax, [esp+18h]
18374
                mov     [esp+1Ch], ebp
18375
                mov     ebp, [esp+0Ch]
18376
                mov     ebx, [esp]
18377
                mov     ecx, [esp+14h]
18378
                ror     eax, 0Bh
18379
                xor     ebx, ecx
18380
                mov     edi, [esp+8]
18381
                and     ebx, [esp+4]
18382
                and     edi, [esp+1Ch]
18383
                xor     ecx, ebx
18384
                and     ebp, [esp+10h]
18385
                xor     edi, ecx
18386
                mov     edx, [esi+24h]
18387
                xor     ebp, edi
18388
                add     eax, edx
18389
                ror     ebp, 7
18390
                add     ebp, eax
18391
                mov     eax, [esp+14h]
18392
                mov     [esp+18h], ebp
18393
                mov     ebp, [esp+8]
18394
                mov     ebx, [esp+1Ch]
18395
                mov     ecx, [esp+10h]
18396
                ror     eax, 0Bh
18397
                xor     ebx, ecx
18398
                mov     edi, [esp+4]
18399
                and     ebx, [esp]
18400
                and     edi, [esp+18h]
18401
                xor     ecx, ebx
18402
                and     ebp, [esp+0Ch]
18403
                xor     edi, ecx
18404
                mov     edx, [esi+28h]
18405
                xor     ebp, edi
18406
                add     eax, edx
18407
                ror     ebp, 7
18408
                add     ebp, eax
18409
                mov     eax, [esp+10h]
18410
                mov     [esp+14h], ebp
18411
                mov     ebp, [esp+4]
18412
                mov     ebx, [esp+18h]
18413
                mov     ecx, [esp+0Ch]
18414
                ror     eax, 0Bh
18415
                xor     ebx, ecx
18416
                mov     edi, [esp]
18417
                and     ebx, [esp+1Ch]
18418
                and     edi, [esp+14h]
18419
                xor     ecx, ebx
18420
                and     ebp, [esp+8]
18421
                xor     edi, ecx
18422
                mov     edx, [esi+2Ch]
18423
                xor     ebp, edi
18424
                add     eax, edx
18425
                ror     ebp, 7
18426
                add     ebp, eax
18427
                mov     eax, [esp+0Ch]
18428
                mov     [esp+10h], ebp
18429
                mov     ebp, [esp]
18430
                mov     ebx, [esp+14h]
18431
                mov     ecx, [esp+8]
18432
                ror     eax, 0Bh
18433
                xor     ebx, ecx
18434
                mov     edi, [esp+1Ch]
18435
                and     ebx, [esp+18h]
18436
                and     edi, [esp+10h]
18437
                xor     ecx, ebx
18438
                and     ebp, [esp+4]
18439
                xor     edi, ecx
18440
                mov     edx, [esi+30h]
18441
                xor     ebp, edi
18442
                add     eax, edx
18443
                ror     ebp, 7
18444
                add     ebp, eax
18445
                mov     eax, [esp+8]
18446
                mov     [esp+0Ch], ebp
18447
                mov     ebp, [esp+1Ch]
18448
                mov     ebx, [esp+10h]
18449
                mov     ecx, [esp+4]
18450
                ror     eax, 0Bh
18451
                xor     ebx, ecx
18452
                mov     edi, [esp+18h]
18453
                and     ebx, [esp+14h]
18454
                and     edi, [esp+0Ch]
18455
                xor     ecx, ebx
18456
                and     ebp, [esp]
18457
                xor     edi, ecx
18458
                mov     edx, [esi+34h]
18459
                xor     ebp, edi
18460
                add     eax, edx
18461
                ror     ebp, 7
18462
                add     ebp, eax
18463
                mov     eax, [esp+4]
18464
                mov     [esp+8], ebp
18465
                mov     ebp, [esp+18h]
18466
                mov     ebx, [esp+0Ch]
18467
                mov     ecx, [esp]
18468
                ror     eax, 0Bh
18469
                xor     ebx, ecx
18470
                mov     edi, [esp+14h]
18471
                and     ebx, [esp+10h]
18472
                and     edi, [esp+8]
18473
                xor     ecx, ebx
18474
                and     ebp, [esp+1Ch]
18475
                xor     edi, ecx
18476
                mov     edx, [esi+38h]
18477
                xor     ebp, edi
18478
                add     eax, edx
18479
                ror     ebp, 7
18480
                add     ebp, eax
18481
                mov     eax, [esp]
18482
                mov     [esp+4], ebp
18483
                mov     ebp, [esp+14h]
18484
                mov     ebx, [esp+8]
18485
                mov     ecx, [esp+1Ch]
18486
                ror     eax, 0Bh
18487
                xor     ebx, ecx
18488
                mov     edi, [esp+10h]
18489
                and     ebx, [esp+0Ch]
18490
                and     edi, [esp+4]
18491
                xor     ecx, ebx
18492
                and     ebp, [esp+18h]
18493
                xor     edi, ecx
18494
                mov     edx, [esi+3Ch]
18495
                xor     ebp, edi
18496
                add     eax, edx
18497
                ror     ebp, 7
18498
                add     ebp, eax
18499
                mov     eax, [esp+1Ch]
18500
                mov     [esp], ebp
18501
                mov     ebp, [esp+10h]
18502
                mov     ebx, [esp+4]
18503
                mov     ecx, [esp+18h]
18504
                ror     eax, 0Bh
18505
                xor     ebx, ecx
18506
                mov     edi, [esp+0Ch]
18507
                and     ebx, [esp+8]
18508
                and     edi, [esp]
18509
                xor     ecx, ebx
18510
                and     ebp, [esp+14h]
18511
                xor     edi, ecx
18512
                mov     edx, [esi+40h]
18513
                xor     ebp, edi
18514
                add     eax, edx
18515
                ror     ebp, 7
18516
                add     ebp, eax
18517
                mov     eax, [esp+18h]
18518
                mov     [esp+1Ch], ebp
18519
                mov     ebp, [esp+0Ch]
18520
                mov     ebx, [esp]
18521
                mov     ecx, [esp+14h]
18522
                ror     eax, 0Bh
18523
                xor     ebx, ecx
18524
                mov     edi, [esp+8]
18525
                and     ebx, [esp+4]
18526
                and     edi, [esp+1Ch]
18527
                xor     ecx, ebx
18528
                and     ebp, [esp+10h]
18529
                xor     edi, ecx
18530
                mov     edx, [esi+44h]
18531
                xor     ebp, edi
18532
                add     eax, edx
18533
                ror     ebp, 7
18534
                add     ebp, eax
18535
                mov     eax, [esp+14h]
18536
                mov     [esp+18h], ebp
18537
                mov     ebp, [esp+8]
18538
                mov     ebx, [esp+1Ch]
18539
                mov     ecx, [esp+10h]
18540
                ror     eax, 0Bh
18541
                xor     ebx, ecx
18542
                mov     edi, [esp+4]
18543
                and     ebx, [esp]
18544
                and     edi, [esp+18h]
18545
                xor     ecx, ebx
18546
                and     ebp, [esp+0Ch]
18547
                xor     edi, ecx
18548
                mov     edx, [esi+48h]
18549
                xor     ebp, edi
18550
                add     eax, edx
18551
                ror     ebp, 7
18552
                add     ebp, eax
18553
                mov     eax, [esp+10h]
18554
                mov     [esp+14h], ebp
18555
                mov     ebp, [esp+4]
18556
                mov     ebx, [esp+18h]
18557
                mov     ecx, [esp+0Ch]
18558
                ror     eax, 0Bh
18559
                xor     ebx, ecx
18560
                mov     edi, [esp]
18561
                and     ebx, [esp+1Ch]
18562
                and     edi, [esp+14h]
18563
                xor     ecx, ebx
18564
                and     ebp, [esp+8]
18565
                xor     edi, ecx
18566
                mov     edx, [esi+4Ch]
18567
                xor     ebp, edi
18568
                add     eax, edx
18569
                ror     ebp, 7
18570
                add     ebp, eax
18571
                mov     eax, [esp+0Ch]
18572
                mov     [esp+10h], ebp
18573
                mov     ebp, [esp]
18574
                mov     ebx, [esp+14h]
18575
                mov     ecx, [esp+8]
18576
                ror     eax, 0Bh
18577
                xor     ebx, ecx
18578
                mov     edi, [esp+1Ch]
18579
                and     ebx, [esp+18h]
18580
                and     edi, [esp+10h]
18581
                xor     ecx, ebx
18582
                and     ebp, [esp+4]
18583
                xor     edi, ecx
18584
                mov     edx, [esi+50h]
18585
                xor     ebp, edi
18586
                add     eax, edx
18587
                ror     ebp, 7
18588
                add     ebp, eax
18589
                mov     eax, [esp+8]
18590
                mov     [esp+0Ch], ebp
18591
                mov     ebp, [esp+1Ch]
18592
                mov     ebx, [esp+10h]
18593
                mov     ecx, [esp+4]
18594
                ror     eax, 0Bh
18595
                xor     ebx, ecx
18596
                mov     edi, [esp+18h]
18597
                and     ebx, [esp+14h]
18598
                and     edi, [esp+0Ch]
18599
                xor     ecx, ebx
18600
                and     ebp, [esp]
18601
                xor     edi, ecx
18602
                mov     edx, [esi+54h]
18603
                xor     ebp, edi
18604
                add     eax, edx
18605
                ror     ebp, 7
18606
                add     ebp, eax
18607
                mov     eax, [esp+4]
18608
                mov     [esp+8], ebp
18609
                mov     ebp, [esp+18h]
18610
                mov     ebx, [esp+0Ch]
18611
                mov     ecx, [esp]
18612
                ror     eax, 0Bh
18613
                xor     ebx, ecx
18614
                mov     edi, [esp+14h]
18615
                and     ebx, [esp+10h]
18616
                and     edi, [esp+8]
18617
                xor     ecx, ebx
18618
                and     ebp, [esp+1Ch]
18619
                xor     edi, ecx
18620
                mov     edx, [esi+58h]
18621
                xor     ebp, edi
18622
                add     eax, edx
18623
                ror     ebp, 7
18624
                add     ebp, eax
18625
                mov     eax, [esp]
18626
                mov     [esp+4], ebp
18627
                mov     ebp, [esp+14h]
18628
                mov     ebx, [esp+8]
18629
                mov     ecx, [esp+1Ch]
18630
                ror     eax, 0Bh
18631
                xor     ebx, ecx
18632
                mov     edi, [esp+10h]
18633
                and     ebx, [esp+0Ch]
18634
                and     edi, [esp+4]
18635
                xor     ecx, ebx
18636
                and     ebp, [esp+18h]
18637
                xor     edi, ecx
18638
                mov     edx, [esi+5Ch]
18639
                xor     ebp, edi
18640
                add     eax, edx
18641
                ror     ebp, 7
18642
                add     ebp, eax
18643
                mov     eax, [esp+1Ch]
18644
                mov     [esp], ebp
18645
                mov     ebp, [esp+10h]
18646
                mov     ebx, [esp+4]
18647
                mov     ecx, [esp+18h]
18648
                ror     eax, 0Bh
18649
                xor     ebx, ecx
18650
                mov     edi, [esp+0Ch]
18651
                and     ebx, [esp+8]
18652
                and     edi, [esp]
18653
                xor     ecx, ebx
18654
                and     ebp, [esp+14h]
18655
                xor     edi, ecx
18656
                mov     edx, [esi+60h]
18657
                xor     ebp, edi
18658
                add     eax, edx
18659
                ror     ebp, 7
18660
                add     ebp, eax
18661
                mov     eax, [esp+18h]
18662
                mov     [esp+1Ch], ebp
18663
                mov     ebp, [esp+0Ch]
18664
                mov     ebx, [esp]
18665
                mov     ecx, [esp+14h]
18666
                ror     eax, 0Bh
18667
                xor     ebx, ecx
18668
                mov     edi, [esp+8]
18669
                and     ebx, [esp+4]
18670
                and     edi, [esp+1Ch]
18671
                xor     ecx, ebx
18672
                and     ebp, [esp+10h]
18673
                xor     edi, ecx
18674
                mov     edx, [esi+64h]
18675
                xor     ebp, edi
18676
                add     eax, edx
18677
                ror     ebp, 7
18678
                add     ebp, eax
18679
                mov     eax, [esp+14h]
18680
                mov     [esp+18h], ebp
18681
                mov     ebp, [esp+8]
18682
                mov     ebx, [esp+1Ch]
18683
                mov     ecx, [esp+10h]
18684
                ror     eax, 0Bh
18685
                xor     ebx, ecx
18686
                mov     edi, [esp+4]
18687
                and     ebx, [esp]
18688
                and     edi, [esp+18h]
18689
                xor     ecx, ebx
18690
                and     ebp, [esp+0Ch]
18691
                xor     edi, ecx
18692
                mov     edx, [esi+68h]
18693
                xor     ebp, edi
18694
                add     eax, edx
18695
                ror     ebp, 7
18696
                add     ebp, eax
18697
                mov     eax, [esp+10h]
18698
                mov     [esp+14h], ebp
18699
                mov     ebp, [esp+4]
18700
                mov     ebx, [esp+18h]
18701
                mov     ecx, [esp+0Ch]
18702
                ror     eax, 0Bh
18703
                xor     ebx, ecx
18704
                mov     edi, [esp]
18705
                and     ebx, [esp+1Ch]
18706
                and     edi, [esp+14h]
18707
                xor     ecx, ebx
18708
                and     ebp, [esp+8]
18709
                xor     edi, ecx
18710
                mov     edx, [esi+6Ch]
18711
                xor     ebp, edi
18712
                add     eax, edx
18713
                ror     ebp, 7
18714
                add     ebp, eax
18715
                mov     eax, [esp+0Ch]
18716
                mov     [esp+10h], ebp
18717
                mov     ebp, [esp]
18718
                mov     ebx, [esp+14h]
18719
                mov     ecx, [esp+8]
18720
                ror     eax, 0Bh
18721
                xor     ebx, ecx
18722
                mov     edi, [esp+1Ch]
18723
                and     ebx, [esp+18h]
18724
                and     edi, [esp+10h]
18725
                xor     ecx, ebx
18726
                and     ebp, [esp+4]
18727
                xor     edi, ecx
18728
                mov     edx, [esi+70h]
18729
                xor     ebp, edi
18730
                add     eax, edx
18731
                ror     ebp, 7
18732
                add     ebp, eax
18733
                mov     eax, [esp+8]
18734
                mov     [esp+0Ch], ebp
18735
                mov     ebp, [esp+1Ch]
18736
                mov     ebx, [esp+10h]
18737
                mov     ecx, [esp+4]
18738
                ror     eax, 0Bh
18739
                xor     ebx, ecx
18740
                mov     edi, [esp+18h]
18741
                and     ebx, [esp+14h]
18742
                and     edi, [esp+0Ch]
18743
                xor     ecx, ebx
18744
                and     ebp, [esp]
18745
                xor     edi, ecx
18746
                mov     edx, [esi+74h]
18747
                xor     ebp, edi
18748
                add     eax, edx
18749
                ror     ebp, 7
18750
                add     ebp, eax
18751
                mov     eax, [esp+4]
18752
                mov     [esp+8], ebp
18753
                mov     ebp, [esp+18h]
18754
                mov     ebx, [esp+0Ch]
18755
                mov     ecx, [esp]
18756
                ror     eax, 0Bh
18757
                xor     ebx, ecx
18758
                mov     edi, [esp+14h]
18759
                and     ebx, [esp+10h]
18760
                and     edi, [esp+8]
18761
                xor     ecx, ebx
18762
                and     ebp, [esp+1Ch]
18763
                xor     edi, ecx
18764
                mov     edx, [esi+78h]
18765
                xor     ebp, edi
18766
                add     eax, edx
18767
                ror     ebp, 7
18768
                add     ebp, eax
18769
                mov     eax, [esp]
18770
                mov     [esp+4], ebp
18771
                mov     ebp, [esp+14h]
18772
                mov     ebx, [esp+8]
18773
                mov     ecx, [esp+1Ch]
18774
                ror     eax, 0Bh
18775
                xor     ebx, ecx
18776
                mov     edi, [esp+10h]
18777
                and     ebx, [esp+0Ch]
18778
                and     edi, [esp+4]
18779
                xor     ecx, ebx
18780
                and     ebp, [esp+18h]
18781
                xor     edi, ecx
18782
                mov     edx, [esi+7Ch]
18783
                xor     ebp, edi
18784
                add     eax, edx
18785
                ror     ebp, 7
18786
                add     ebp, eax
18787
                mov     eax, [esp+1Ch]
18788
                mov     [esp], ebp
18789
                mov     ebp, [esp]
18790
                mov     ebx, [esp+4]
18791
                mov     edi, [esp+8]
18792
                xor     ebp, 0FFFFFFFFh
18793
                mov     ecx, [esp+10h]
18794
                and     ebx, edi
18795
                mov     edx, [esp+14h]
18796
                and     ebp, ecx
18797
                xor     ebx, [esp+18h]
18798
                xor     ebp, edx
18799
                xor     ecx, edi
18800
                xor     ebx, ebp
18801
                and     ecx, [esp+4]
18802
                and     ebx, [esp+0Ch]
18803
                ror     eax, 0Bh
18804
                xor     ecx, edx
18805
                mov     ebp, [esi+14h]
18806
                xor     ecx, ebx
18807
                and     edi, [esp]
18808
                xor     ecx, edi
18809
                lea     ebp, [eax+ebp+452821E6h]
18810
                ror     ecx, 7
18811
                add     ebp, ecx
18812
                mov     eax, [esp+18h]
18813
                mov     [esp+1Ch], ebp
18814
                mov     ebx, [esp]
18815
                mov     edi, [esp+4]
18816
                xor     ebp, 0FFFFFFFFh
18817
                mov     ecx, [esp+0Ch]
18818
                and     ebx, edi
18819
                mov     edx, [esp+10h]
18820
                and     ebp, ecx
18821
                xor     ebx, [esp+14h]
18822
                xor     ebp, edx
18823
                xor     ecx, edi
18824
                xor     ebx, ebp
18825
                and     ecx, [esp]
18826
                and     ebx, [esp+8]
18827
                ror     eax, 0Bh
18828
                xor     ecx, edx
18829
                mov     ebp, [esi+38h]
18830
                xor     ecx, ebx
18831
                and     edi, [esp+1Ch]
18832
                xor     ecx, edi
18833
                lea     ebp, [eax+ebp+38D01377h]
18834
                ror     ecx, 7
18835
                add     ebp, ecx
18836
                mov     eax, [esp+14h]
18837
                mov     [esp+18h], ebp
18838
                mov     ebx, [esp+1Ch]
18839
                mov     edi, [esp]
18840
                xor     ebp, 0FFFFFFFFh
18841
                mov     ecx, [esp+8]
18842
                and     ebx, edi
18843
                mov     edx, [esp+0Ch]
18844
                and     ebp, ecx
18845
                xor     ebx, [esp+10h]
18846
                xor     ebp, edx
18847
                xor     ecx, edi
18848
                xor     ebx, ebp
18849
                and     ecx, [esp+1Ch]
18850
                and     ebx, [esp+4]
18851
                ror     eax, 0Bh
18852
                xor     ecx, edx
18853
                mov     ebp, [esi+68h]
18854
                xor     ecx, ebx
18855
                and     edi, [esp+18h]
18856
                xor     ecx, edi
18857
                lea     ebp, [eax+ebp-41AB9931h]
18858
                ror     ecx, 7
18859
                add     ebp, ecx
18860
                mov     eax, [esp+10h]
18861
                mov     [esp+14h], ebp
18862
                mov     ebx, [esp+18h]
18863
                mov     edi, [esp+1Ch]
18864
                xor     ebp, 0FFFFFFFFh
18865
                mov     ecx, [esp+4]
18866
                and     ebx, edi
18867
                mov     edx, [esp+8]
18868
                and     ebp, ecx
18869
                xor     ebx, [esp+0Ch]
18870
                xor     ebp, edx
18871
                xor     ecx, edi
18872
                xor     ebx, ebp
18873
                and     ecx, [esp+18h]
18874
                and     ebx, [esp]
18875
                ror     eax, 0Bh
18876
                xor     ecx, edx
18877
                mov     ebp, [esi+48h]
18878
                xor     ecx, ebx
18879
                and     edi, [esp+14h]
18880
                xor     ecx, edi
18881
                lea     ebp, [eax+ebp+34E90C6Ch]
18882
                ror     ecx, 7
18883
                add     ebp, ecx
18884
                mov     eax, [esp+0Ch]
18885
                mov     [esp+10h], ebp
18886
                mov     ebx, [esp+14h]
18887
                mov     edi, [esp+18h]
18888
                xor     ebp, 0FFFFFFFFh
18889
                mov     ecx, [esp]
18890
                and     ebx, edi
18891
                mov     edx, [esp+4]
18892
                and     ebp, ecx
18893
                xor     ebx, [esp+8]
18894
                xor     ebp, edx
18895
                xor     ecx, edi
18896
                xor     ebx, ebp
18897
                and     ecx, [esp+14h]
18898
                and     ebx, [esp+1Ch]
18899
                ror     eax, 0Bh
18900
                xor     ecx, edx
18901
                mov     ebp, [esi+2Ch]
18902
                xor     ecx, ebx
18903
                and     edi, [esp+10h]
18904
                xor     ecx, edi
18905
                lea     ebp, [eax+ebp-3F53D649h]
18906
                ror     ecx, 7
18907
                add     ebp, ecx
18908
                mov     eax, [esp+8]
18909
                mov     [esp+0Ch], ebp
18910
                mov     ebx, [esp+10h]
18911
                mov     edi, [esp+14h]
18912
                xor     ebp, 0FFFFFFFFh
18913
                mov     ecx, [esp+1Ch]
18914
                and     ebx, edi
18915
                mov     edx, [esp]
18916
                and     ebp, ecx
18917
                xor     ebx, [esp+4]
18918
                xor     ebp, edx
18919
                xor     ecx, edi
18920
                xor     ebx, ebp
18921
                and     ecx, [esp+10h]
18922
                and     ebx, [esp+18h]
18923
                ror     eax, 0Bh
18924
                xor     ecx, edx
18925
                mov     ebp, [esi+70h]
18926
                xor     ecx, ebx
18927
                and     edi, [esp+0Ch]
18928
                xor     ecx, edi
18929
                lea     ebp, [eax+ebp-3683AF23h]
18930
                ror     ecx, 7
18931
                add     ebp, ecx
18932
                mov     eax, [esp+4]
18933
                mov     [esp+8], ebp
18934
                mov     ebx, [esp+0Ch]
18935
                mov     edi, [esp+10h]
18936
                xor     ebp, 0FFFFFFFFh
18937
                mov     ecx, [esp+18h]
18938
                and     ebx, edi
18939
                mov     edx, [esp+1Ch]
18940
                and     ebp, ecx
18941
                xor     ebx, [esp]
18942
                xor     ebp, edx
18943
                xor     ecx, edi
18944
                xor     ebx, ebp
18945
                and     ecx, [esp+0Ch]
18946
                and     ebx, [esp+14h]
18947
                ror     eax, 0Bh
18948
                xor     ecx, edx
18949
                mov     ebp, [esi+1Ch]
18950
                xor     ecx, ebx
18951
                and     edi, [esp+8]
18952
                xor     ecx, edi
18953
                lea     ebp, [eax+ebp+3F84D5B5h]
18954
                ror     ecx, 7
18955
                add     ebp, ecx
18956
                mov     eax, [esp]
18957
                mov     [esp+4], ebp
18958
                mov     ebx, [esp+8]
18959
                mov     edi, [esp+0Ch]
18960
                xor     ebp, 0FFFFFFFFh
18961
                mov     ecx, [esp+14h]
18962
                and     ebx, edi
18963
                mov     edx, [esp+18h]
18964
                and     ebp, ecx
18965
                xor     ebx, [esp+1Ch]
18966
                xor     ebp, edx
18967
                xor     ecx, edi
18968
                xor     ebx, ebp
18969
                and     ecx, [esp+8]
18970
                and     ebx, [esp+10h]
18971
                ror     eax, 0Bh
18972
                xor     ecx, edx
18973
                mov     ebp, [esi+40h]
18974
                xor     ecx, ebx
18975
                and     edi, [esp+4]
18976
                xor     ecx, edi
18977
                lea     ebp, [eax+ebp-4AB8F6E9h]
18978
                ror     ecx, 7
18979
                add     ebp, ecx
18980
                mov     eax, [esp+1Ch]
18981
                mov     [esp], ebp
18982
                mov     ebx, [esp+4]
18983
                mov     edi, [esp+8]
18984
                xor     ebp, 0FFFFFFFFh
18985
                mov     ecx, [esp+10h]
18986
                and     ebx, edi
18987
                mov     edx, [esp+14h]
18988
                and     ebp, ecx
18989
                xor     ebx, [esp+18h]
18990
                xor     ebp, edx
18991
                xor     ecx, edi
18992
                xor     ebx, ebp
18993
                and     ecx, [esp+4]
18994
                and     ebx, [esp+0Ch]
18995
                ror     eax, 0Bh
18996
                xor     ecx, edx
18997
                mov     ebp, [esi]
18998
                xor     ecx, ebx
18999
                and     edi, [esp]
19000
                xor     ecx, edi
19001
                lea     ebp, [eax+ebp-6DE92A27h]
19002
                ror     ecx, 7
19003
                add     ebp, ecx
19004
                mov     eax, [esp+18h]
19005
                mov     [esp+1Ch], ebp
19006
                mov     ebx, [esp]
19007
                mov     edi, [esp+4]
19008
                xor     ebp, 0FFFFFFFFh
19009
                mov     ecx, [esp+0Ch]
19010
                and     ebx, edi
19011
                mov     edx, [esp+10h]
19012
                and     ebp, ecx
19013
                xor     ebx, [esp+14h]
19014
                xor     ebp, edx
19015
                xor     ecx, edi
19016
                xor     ebx, ebp
19017
                and     ecx, [esp]
19018
                and     ebx, [esp+8]
19019
                ror     eax, 0Bh
19020
                xor     ecx, edx
19021
                mov     ebp, [esi+5Ch]
19022
                xor     ecx, ebx
19023
                and     edi, [esp+1Ch]
19024
                xor     ecx, edi
19025
                lea     ebp, [eax+ebp-768604E5h]
19026
                ror     ecx, 7
19027
                add     ebp, ecx
19028
                mov     eax, [esp+14h]
19029
                mov     [esp+18h], ebp
19030
                mov     ebx, [esp+1Ch]
19031
                mov     edi, [esp]
19032
                xor     ebp, 0FFFFFFFFh
19033
                mov     ecx, [esp+8]
19034
                and     ebx, edi
19035
                mov     edx, [esp+0Ch]
19036
                and     ebp, ecx
19037
                xor     ebx, [esp+10h]
19038
                xor     ebp, edx
19039
                xor     ecx, edi
19040
                xor     ebx, ebp
19041
                and     ecx, [esp+1Ch]
19042
                and     ebx, [esp+4]
19043
                ror     eax, 0Bh
19044
                xor     ecx, edx
19045
                mov     ebp, [esi+50h]
19046
                xor     ecx, ebx
19047
                and     edi, [esp+18h]
19048
                xor     ecx, edi
19049
                lea     ebp, [eax+ebp-2ECEF45Ah]
19050
                ror     ecx, 7
19051
                add     ebp, ecx
19052
                mov     eax, [esp+10h]
19053
                mov     [esp+14h], ebp
19054
                mov     ebx, [esp+18h]
19055
                mov     edi, [esp+1Ch]
19056
                xor     ebp, 0FFFFFFFFh
19057
                mov     ecx, [esp+4]
19058
                and     ebx, edi
19059
                mov     edx, [esp+8]
19060
                and     ebp, ecx
19061
                xor     ebx, [esp+0Ch]
19062
                xor     ebp, edx
19063
                xor     ecx, edi
19064
                xor     ebx, ebp
19065
                and     ecx, [esp+18h]
19066
                and     ebx, [esp]
19067
                ror     eax, 0Bh
19068
                xor     ecx, edx
19069
                mov     ebp, [esi+58h]
19070
                xor     ecx, ebx
19071
                and     edi, [esp+14h]
19072
                xor     ecx, edi
19073
                lea     ebp, [eax+ebp-67204A54h]
19074
                ror     ecx, 7
19075
                add     ebp, ecx
19076
                mov     eax, [esp+0Ch]
19077
                mov     [esp+10h], ebp
19078
                mov     ebx, [esp+14h]
19079
                mov     edi, [esp+18h]
19080
                xor     ebp, 0FFFFFFFFh
19081
                mov     ecx, [esp]
19082
                and     ebx, edi
19083
                mov     edx, [esp+4]
19084
                and     ebp, ecx
19085
                xor     ebx, [esp+8]
19086
                xor     ebp, edx
19087
                xor     ecx, edi
19088
                xor     ebx, ebp
19089
                and     ecx, [esp+14h]
19090
                and     ebx, [esp+1Ch]
19091
                ror     eax, 0Bh
19092
                xor     ecx, edx
19093
                mov     ebp, [esi+4]
19094
                xor     ecx, ebx
19095
                and     edi, [esp+10h]
19096
                xor     ecx, edi
19097
                lea     ebp, [eax+ebp+2FFD72DBh]
19098
                ror     ecx, 7
19099
                add     ebp, ecx
19100
                mov     eax, [esp+8]
19101
                mov     [esp+0Ch], ebp
19102
                mov     ebx, [esp+10h]
19103
                mov     edi, [esp+14h]
19104
                xor     ebp, 0FFFFFFFFh
19105
                mov     ecx, [esp+1Ch]
19106
                and     ebx, edi
19107
                mov     edx, [esp]
19108
                and     ebp, ecx
19109
                xor     ebx, [esp+4]
19110
                xor     ebp, edx
19111
                xor     ecx, edi
19112
                xor     ebx, ebp
19113
                and     ecx, [esp+10h]
19114
                and     ebx, [esp+18h]
19115
                ror     eax, 0Bh
19116
                xor     ecx, edx
19117
                mov     ebp, [esi+28h]
19118
                xor     ecx, ebx
19119
                and     edi, [esp+0Ch]
19120
                xor     ecx, edi
19121
                lea     ebp, [eax+ebp-2FE52049h]
19122
                ror     ecx, 7
19123
                add     ebp, ecx
19124
                mov     eax, [esp+4]
19125
                mov     [esp+8], ebp
19126
                mov     ebx, [esp+0Ch]
19127
                mov     edi, [esp+10h]
19128
                xor     ebp, 0FFFFFFFFh
19129
                mov     ecx, [esp+18h]
19130
                and     ebx, edi
19131
                mov     edx, [esp+1Ch]
19132
                and     ebp, ecx
19133
                xor     ebx, [esp]
19134
                xor     ebp, edx
19135
                xor     ecx, edi
19136
                xor     ebx, ebp
19137
                and     ecx, [esp+0Ch]
19138
                and     ebx, [esp+14h]
19139
                ror     eax, 0Bh
19140
                xor     ecx, edx
19141
                mov     ebp, [esi+10h]
19142
                xor     ecx, ebx
19143
                and     edi, [esp+8]
19144
                xor     ecx, edi
19145
                lea     ebp, [eax+ebp-471E5013h]
19146
                ror     ecx, 7
19147
                add     ebp, ecx
19148
                mov     eax, [esp]
19149
                mov     [esp+4], ebp
19150
                mov     ebx, [esp+8]
19151
                mov     edi, [esp+0Ch]
19152
                xor     ebp, 0FFFFFFFFh
19153
                mov     ecx, [esp+14h]
19154
                and     ebx, edi
19155
                mov     edx, [esp+18h]
19156
                and     ebp, ecx
19157
                xor     ebx, [esp+1Ch]
19158
                xor     ebp, edx
19159
                xor     ecx, edi
19160
                xor     ebx, ebp
19161
                and     ecx, [esp+8]
19162
                and     ebx, [esp+10h]
19163
                ror     eax, 0Bh
19164
                xor     ecx, edx
19165
                mov     ebp, [esi+20h]
19166
                xor     ecx, ebx
19167
                and     edi, [esp+4]
19168
                xor     ecx, edi
19169
                lea     ebp, [eax+ebp+6A267E96h]
19170
                ror     ecx, 7
19171
                add     ebp, ecx
19172
                mov     eax, [esp+1Ch]
19173
                mov     [esp], ebp
19174
                mov     ebx, [esp+4]
19175
                mov     edi, [esp+8]
19176
                xor     ebp, 0FFFFFFFFh
19177
                mov     ecx, [esp+10h]
19178
                and     ebx, edi
19179
                mov     edx, [esp+14h]
19180
                and     ebp, ecx
19181
                xor     ebx, [esp+18h]
19182
                xor     ebp, edx
19183
                xor     ecx, edi
19184
                xor     ebx, ebp
19185
                and     ecx, [esp+4]
19186
                and     ebx, [esp+0Ch]
19187
                ror     eax, 0Bh
19188
                xor     ecx, edx
19189
                mov     ebp, [esi+78h]
19190
                xor     ecx, ebx
19191
                and     edi, [esp]
19192
                xor     ecx, edi
19193
                lea     ebp, [eax+ebp-45836FBBh]
19194
                ror     ecx, 7
19195
                add     ebp, ecx
19196
                mov     eax, [esp+18h]
19197
                mov     [esp+1Ch], ebp
19198
                mov     ebx, [esp]
19199
                mov     edi, [esp+4]
19200
                xor     ebp, 0FFFFFFFFh
19201
                mov     ecx, [esp+0Ch]
19202
                and     ebx, edi
19203
                mov     edx, [esp+10h]
19204
                and     ebp, ecx
19205
                xor     ebx, [esp+14h]
19206
                xor     ebp, edx
19207
                xor     ecx, edi
19208
                xor     ebx, ebp
19209
                and     ecx, [esp]
19210
                and     ebx, [esp+8]
19211
                ror     eax, 0Bh
19212
                xor     ecx, edx
19213
                mov     ebp, [esi+0Ch]
19214
                xor     ecx, ebx
19215
                and     edi, [esp+1Ch]
19216
                xor     ecx, edi
19217
                lea     ebp, [eax+ebp-0ED38067h]
19218
                ror     ecx, 7
19219
                add     ebp, ecx
19220
                mov     eax, [esp+14h]
19221
                mov     [esp+18h], ebp
19222
                mov     ebx, [esp+1Ch]
19223
                mov     edi, [esp]
19224
                xor     ebp, 0FFFFFFFFh
19225
                mov     ecx, [esp+8]
19226
                and     ebx, edi
19227
                mov     edx, [esp+0Ch]
19228
                and     ebp, ecx
19229
                xor     ebx, [esp+10h]
19230
                xor     ebp, edx
19231
                xor     ecx, edi
19232
                xor     ebx, ebp
19233
                and     ecx, [esp+1Ch]
19234
                and     ebx, [esp+4]
19235
                ror     eax, 0Bh
19236
                xor     ecx, edx
19237
                mov     ebp, [esi+54h]
19238
                xor     ecx, ebx
19239
                and     edi, [esp+18h]
19240
                xor     ecx, edi
19241
                lea     ebp, [eax+ebp+24A19947h]
19242
                ror     ecx, 7
19243
                add     ebp, ecx
19244
                mov     eax, [esp+10h]
19245
                mov     [esp+14h], ebp
19246
                mov     ebx, [esp+18h]
19247
                mov     edi, [esp+1Ch]
19248
                xor     ebp, 0FFFFFFFFh
19249
                mov     ecx, [esp+4]
19250
                and     ebx, edi
19251
                mov     edx, [esp+8]
19252
                and     ebp, ecx
19253
                xor     ebx, [esp+0Ch]
19254
                xor     ebp, edx
19255
                xor     ecx, edi
19256
                xor     ebx, ebp
19257
                and     ecx, [esp+18h]
19258
                and     ebx, [esp]
19259
                ror     eax, 0Bh
19260
                xor     ecx, edx
19261
                mov     ebp, [esi+24h]
19262
                xor     ecx, ebx
19263
                and     edi, [esp+14h]
19264
                xor     ecx, edi
19265
                lea     ebp, [eax+ebp-4C6E9309h]
19266
                ror     ecx, 7
19267
                add     ebp, ecx
19268
                mov     eax, [esp+0Ch]
19269
                mov     [esp+10h], ebp
19270
                mov     ebx, [esp+14h]
19271
                mov     edi, [esp+18h]
19272
                xor     ebp, 0FFFFFFFFh
19273
                mov     ecx, [esp]
19274
                and     ebx, edi
19275
                mov     edx, [esp+4]
19276
                and     ebp, ecx
19277
                xor     ebx, [esp+8]
19278
                xor     ebp, edx
19279
                xor     ecx, edi
19280
                xor     ebx, ebp
19281
                and     ecx, [esp+14h]
19282
                and     ebx, [esp+1Ch]
19283
                ror     eax, 0Bh
19284
                xor     ecx, edx
19285
                mov     ebp, [esi+44h]
19286
                xor     ecx, ebx
19287
                and     edi, [esp+10h]
19288
                xor     ecx, edi
19289
                lea     ebp, [eax+ebp+801F2E2h]
19290
                ror     ecx, 7
19291
                add     ebp, ecx
19292
                mov     eax, [esp+8]
19293
                mov     [esp+0Ch], ebp
19294
                mov     ebx, [esp+10h]
19295
                mov     edi, [esp+14h]
19296
                xor     ebp, 0FFFFFFFFh
19297
                mov     ecx, [esp+1Ch]
19298
                and     ebx, edi
19299
                mov     edx, [esp]
19300
                and     ebp, ecx
19301
                xor     ebx, [esp+4]
19302
                xor     ebp, edx
19303
                xor     ecx, edi
19304
                xor     ebx, ebp
19305
                and     ecx, [esp+10h]
19306
                and     ebx, [esp+18h]
19307
                ror     eax, 0Bh
19308
                xor     ecx, edx
19309
                mov     ebp, [esi+60h]
19310
                xor     ecx, ebx
19311
                and     edi, [esp+0Ch]
19312
                xor     ecx, edi
19313
                lea     ebp, [eax+ebp-7A7103EAh]
19314
                ror     ecx, 7
19315
                add     ebp, ecx
19316
                mov     eax, [esp+4]
19317
                mov     [esp+8], ebp
19318
                mov     ebx, [esp+0Ch]
19319
                mov     edi, [esp+10h]
19320
                xor     ebp, 0FFFFFFFFh
19321
                mov     ecx, [esp+18h]
19322
                and     ebx, edi
19323
                mov     edx, [esp+1Ch]
19324
                and     ebp, ecx
19325
                xor     ebx, [esp]
19326
                xor     ebp, edx
19327
                xor     ecx, edi
19328
                xor     ebx, ebp
19329
                and     ecx, [esp+0Ch]
19330
                and     ebx, [esp+14h]
19331
                ror     eax, 0Bh
19332
                xor     ecx, edx
19333
                mov     ebp, [esi+74h]
19334
                xor     ecx, ebx
19335
                and     edi, [esp+8]
19336
                xor     ecx, edi
19337
                lea     ebp, [eax+ebp+636920D8h]
19338
                ror     ecx, 7
19339
                add     ebp, ecx
19340
                mov     eax, [esp]
19341
                mov     [esp+4], ebp
19342
                mov     ebx, [esp+8]
19343
                mov     edi, [esp+0Ch]
19344
                xor     ebp, 0FFFFFFFFh
19345
                mov     ecx, [esp+14h]
19346
                and     ebx, edi
19347
                mov     edx, [esp+18h]
19348
                and     ebp, ecx
19349
                xor     ebx, [esp+1Ch]
19350
                xor     ebp, edx
19351
                xor     ecx, edi
19352
                xor     ebx, ebp
19353
                and     ecx, [esp+8]
19354
                and     ebx, [esp+10h]
19355
                ror     eax, 0Bh
19356
                xor     ecx, edx
19357
                mov     ebp, [esi+18h]
19358
                xor     ecx, ebx
19359
                and     edi, [esp+4]
19360
                xor     ecx, edi
19361
                lea     ebp, [eax+ebp+71574E69h]
19362
                ror     ecx, 7
19363
                add     ebp, ecx
19364
                mov     eax, [esp+1Ch]
19365
                mov     [esp], ebp
19366
                mov     ebx, [esp+4]
19367
                mov     edi, [esp+8]
19368
                xor     ebp, 0FFFFFFFFh
19369
                mov     ecx, [esp+10h]
19370
                and     ebx, edi
19371
                mov     edx, [esp+14h]
19372
                and     ebp, ecx
19373
                xor     ebx, [esp+18h]
19374
                xor     ebp, edx
19375
                xor     ecx, edi
19376
                xor     ebx, ebp
19377
                and     ecx, [esp+4]
19378
                and     ebx, [esp+0Ch]
19379
                ror     eax, 0Bh
19380
                xor     ecx, edx
19381
                mov     ebp, [esi+4Ch]
19382
                xor     ecx, ebx
19383
                and     edi, [esp]
19384
                xor     ecx, edi
19385
                lea     ebp, [eax+ebp-5BA7015Dh]
19386
                ror     ecx, 7
19387
                add     ebp, ecx
19388
                mov     eax, [esp+18h]
19389
                mov     [esp+1Ch], ebp
19390
                mov     ebx, [esp]
19391
                mov     edi, [esp+4]
19392
                xor     ebp, 0FFFFFFFFh
19393
                mov     ecx, [esp+0Ch]
19394
                and     ebx, edi
19395
                mov     edx, [esp+10h]
19396
                and     ebp, ecx
19397
                xor     ebx, [esp+14h]
19398
                xor     ebp, edx
19399
                xor     ecx, edi
19400
                xor     ebx, ebp
19401
                and     ecx, [esp]
19402
                and     ebx, [esp+8]
19403
                ror     eax, 0Bh
19404
                xor     ecx, edx
19405
                mov     ebp, [esi+30h]
19406
                xor     ecx, ebx
19407
                and     edi, [esp+1Ch]
19408
                xor     ecx, edi
19409
                lea     ebp, [eax+ebp-0B6CC282h]
19410
                ror     ecx, 7
19411
                add     ebp, ecx
19412
                mov     eax, [esp+14h]
19413
                mov     [esp+18h], ebp
19414
                mov     ebx, [esp+1Ch]
19415
                mov     edi, [esp]
19416
                xor     ebp, 0FFFFFFFFh
19417
                mov     ecx, [esp+8]
19418
                and     ebx, edi
19419
                mov     edx, [esp+0Ch]
19420
                and     ebp, ecx
19421
                xor     ebx, [esp+10h]
19422
                xor     ebp, edx
19423
                xor     ecx, edi
19424
                xor     ebx, ebp
19425
                and     ecx, [esp+1Ch]
19426
                and     ebx, [esp+4]
19427
                ror     eax, 0Bh
19428
                xor     ecx, edx
19429
                mov     ebp, [esi+3Ch]
19430
                xor     ecx, ebx
19431
                and     edi, [esp+18h]
19432
                xor     ecx, edi
19433
                lea     ebp, [eax+ebp+0D95748Fh]
19434
                ror     ecx, 7
19435
                add     ebp, ecx
19436
                mov     eax, [esp+10h]
19437
                mov     [esp+14h], ebp
19438
                mov     ebx, [esp+18h]
19439
                mov     edi, [esp+1Ch]
19440
                xor     ebp, 0FFFFFFFFh
19441
                mov     ecx, [esp+4]
19442
                and     ebx, edi
19443
                mov     edx, [esp+8]
19444
                and     ebp, ecx
19445
                xor     ebx, [esp+0Ch]
19446
                xor     ebp, edx
19447
                xor     ecx, edi
19448
                xor     ebx, ebp
19449
                and     ecx, [esp+18h]
19450
                and     ebx, [esp]
19451
                ror     eax, 0Bh
19452
                xor     ecx, edx
19453
                mov     ebp, [esi+34h]
19454
                xor     ecx, ebx
19455
                and     edi, [esp+14h]
19456
                xor     ecx, edi
19457
                lea     ebp, [eax+ebp+728EB658h]
19458
                ror     ecx, 7
19459
                add     ebp, ecx
19460
                mov     eax, [esp+0Ch]
19461
                mov     [esp+10h], ebp
19462
                mov     ebx, [esp+14h]
19463
                mov     edi, [esp+18h]
19464
                xor     ebp, 0FFFFFFFFh
19465
                mov     ecx, [esp]
19466
                and     ebx, edi
19467
                mov     edx, [esp+4]
19468
                and     ebp, ecx
19469
                xor     ebx, [esp+8]
19470
                xor     ebp, edx
19471
                xor     ecx, edi
19472
                xor     ebx, ebp
19473
                and     ecx, [esp+14h]
19474
                and     ebx, [esp+1Ch]
19475
                ror     eax, 0Bh
19476
                xor     ecx, edx
19477
                mov     ebp, [esi+8]
19478
                xor     ecx, ebx
19479
                and     edi, [esp+10h]
19480
                xor     ecx, edi
19481
                lea     ebp, [eax+ebp+718BCD58h]
19482
                ror     ecx, 7
19483
                add     ebp, ecx
19484
                mov     eax, [esp+8]
19485
                mov     [esp+0Ch], ebp
19486
                mov     ebx, [esp+10h]
19487
                mov     edi, [esp+14h]
19488
                xor     ebp, 0FFFFFFFFh
19489
                mov     ecx, [esp+1Ch]
19490
                and     ebx, edi
19491
                mov     edx, [esp]
19492
                and     ebp, ecx
19493
                xor     ebx, [esp+4]
19494
                xor     ebp, edx
19495
                xor     ecx, edi
19496
                xor     ebx, ebp
19497
                and     ecx, [esp+10h]
19498
                and     ebx, [esp+18h]
19499
                ror     eax, 0Bh
19500
                xor     ecx, edx
19501
                mov     ebp, [esi+64h]
19502
                xor     ecx, ebx
19503
                and     edi, [esp+0Ch]
19504
                xor     ecx, edi
19505
                lea     ebp, [eax+ebp-7DEAB512h]
19506
                ror     ecx, 7
19507
                add     ebp, ecx
19508
                mov     eax, [esp+4]
19509
                mov     [esp+8], ebp
19510
                mov     ebx, [esp+0Ch]
19511
                mov     edi, [esp+10h]
19512
                xor     ebp, 0FFFFFFFFh
19513
                mov     ecx, [esp+18h]
19514
                and     ebx, edi
19515
                mov     edx, [esp+1Ch]
19516
                and     ebp, ecx
19517
                xor     ebx, [esp]
19518
                xor     ebp, edx
19519
                xor     ecx, edi
19520
                xor     ebx, ebp
19521
                and     ecx, [esp+0Ch]
19522
                and     ebx, [esp+14h]
19523
                ror     eax, 0Bh
19524
                xor     ecx, edx
19525
                mov     ebp, [esi+7Ch]
19526
                xor     ecx, ebx
19527
                and     edi, [esp+8]
19528
                xor     ecx, edi
19529
                lea     ebp, [eax+ebp+7B54A41Dh]
19530
                ror     ecx, 7
19531
                add     ebp, ecx
19532
                mov     eax, [esp]
19533
                mov     [esp+4], ebp
19534
                mov     ebx, [esp+8]
19535
                mov     edi, [esp+0Ch]
19536
                xor     ebp, 0FFFFFFFFh
19537
                mov     ecx, [esp+14h]
19538
                and     ebx, edi
19539
                mov     edx, [esp+18h]
19540
                and     ebp, ecx
19541
                xor     ebx, [esp+1Ch]
19542
                xor     ebp, edx
19543
                xor     ecx, edi
19544
                xor     ebx, ebp
19545
                and     ecx, [esp+8]
19546
                and     ebx, [esp+10h]
19547
                ror     eax, 0Bh
19548
                xor     ecx, edx
19549
                mov     ebp, [esi+6Ch]
19550
                xor     ecx, ebx
19551
                and     edi, [esp+4]
19552
                xor     ecx, edi
19553
                lea     ebp, [eax+ebp-3DA5A64Bh]
19554
                ror     ecx, 7
19555
                add     ebp, ecx
19556
                mov     eax, [esp+1Ch]
19557
                mov     [esp], ebp
19558
                mov     ebp, [esp+14h]
19559
                mov     ebx, [esp+0Ch]
19560
                mov     ecx, [esp+4]
19561
                mov     edi, ebx
19562
                and     ebx, [esp+18h]
19563
                and     edi, ecx
19564
                xor     ebx, ebp
19565
                ror     eax, 0Bh
19566
                xor     edi, ebp
19567
                mov     ebp, [esi+4Ch]
19568
                xor     edi, [esp+8]
19569
                and     ecx, [esp]
19570
                and     edi, [esp+10h]
19571
                xor     ecx, ebx
19572
                lea     ebp, [eax+ebp-63CF2AC7h]
19573
                xor     ecx, edi
19574
                ror     ecx, 7
19575
                add     ebp, ecx
19576
                mov     eax, [esp+18h]
19577
                mov     [esp+1Ch], ebp
19578
                mov     ebp, [esp+10h]
19579
                mov     ebx, [esp+8]
19580
                mov     ecx, [esp]
19581
                mov     edi, ebx
19582
                and     ebx, [esp+14h]
19583
                and     edi, ecx
19584
                xor     ebx, ebp
19585
                ror     eax, 0Bh
19586
                xor     edi, ebp
19587
                mov     ebp, [esi+24h]
19588
                xor     edi, [esp+4]
19589
                and     ecx, [esp+1Ch]
19590
                and     edi, [esp+0Ch]
19591
                xor     ecx, ebx
19592
                lea     ebp, [eax+ebp+2AF26013h]
19593
                xor     ecx, edi
19594
                ror     ecx, 7
19595
                add     ebp, ecx
19596
                mov     eax, [esp+14h]
19597
                mov     [esp+18h], ebp
19598
                mov     ebp, [esp+0Ch]
19599
                mov     ebx, [esp+4]
19600
                mov     ecx, [esp+1Ch]
19601
                mov     edi, ebx
19602
                and     ebx, [esp+10h]
19603
                and     edi, ecx
19604
                xor     ebx, ebp
19605
                ror     eax, 0Bh
19606
                xor     edi, ebp
19607
                mov     ebp, [esi+10h]
19608
                xor     edi, [esp]
19609
                and     ecx, [esp+18h]
19610
                and     edi, [esp+8]
19611
                xor     ecx, ebx
19612
                lea     ebp, [eax+ebp-3A2E4FDDh]
19613
                xor     ecx, edi
19614
                ror     ecx, 7
19615
                add     ebp, ecx
19616
                mov     eax, [esp+10h]
19617
                mov     [esp+14h], ebp
19618
                mov     ebp, [esp+8]
19619
                mov     ebx, [esp]
19620
                mov     ecx, [esp+18h]
19621
                mov     edi, ebx
19622
                and     ebx, [esp+0Ch]
19623
                and     edi, ecx
19624
                xor     ebx, ebp
19625
                ror     eax, 0Bh
19626
                xor     edi, ebp
19627
                mov     ebp, [esi+50h]
19628
                xor     edi, [esp+1Ch]
19629
                and     ecx, [esp+14h]
19630
                and     edi, [esp+4]
19631
                xor     ecx, ebx
19632
                lea     ebp, [eax+ebp+286085F0h]
19633
                xor     ecx, edi
19634
                ror     ecx, 7
19635
                add     ebp, ecx
19636
                mov     eax, [esp+0Ch]
19637
                mov     [esp+10h], ebp
19638
                mov     ebp, [esp+4]
19639
                mov     ebx, [esp+1Ch]
19640
                mov     ecx, [esp+14h]
19641
                mov     edi, ebx
19642
                and     ebx, [esp+8]
19643
                and     edi, ecx
19644
                xor     ebx, ebp
19645
                ror     eax, 0Bh
19646
                xor     edi, ebp
19647
                mov     ebp, [esi+70h]
19648
                xor     edi, [esp+18h]
19649
                and     ecx, [esp+10h]
19650
                and     edi, [esp]
19651
                xor     ecx, ebx
19652
                lea     ebp, [eax+ebp-35BE86E8h]
19653
                xor     ecx, edi
19654
                ror     ecx, 7
19655
                add     ebp, ecx
19656
                mov     eax, [esp+8]
19657
                mov     [esp+0Ch], ebp
19658
                mov     ebp, [esp]
19659
                mov     ebx, [esp+18h]
19660
                mov     ecx, [esp+10h]
19661
                mov     edi, ebx
19662
                and     ebx, [esp+4]
19663
                and     edi, ecx
19664
                xor     ebx, ebp
19665
                ror     eax, 0Bh
19666
                xor     edi, ebp
19667
                mov     ebp, [esi+44h]
19668
                xor     edi, [esp+14h]
19669
                and     ecx, [esp+0Ch]
19670
                and     edi, [esp+1Ch]
19671
                xor     ecx, ebx
19672
                lea     ebp, [eax+ebp-4724C711h]
19673
                xor     ecx, edi
19674
                ror     ecx, 7
19675
                add     ebp, ecx
19676
                mov     eax, [esp+4]
19677
                mov     [esp+8], ebp
19678
                mov     ebp, [esp+1Ch]
19679
                mov     ebx, [esp+14h]
19680
                mov     ecx, [esp+0Ch]
19681
                mov     edi, ebx
19682
                and     ebx, [esp]
19683
                and     edi, ecx
19684
                xor     ebx, ebp
19685
                ror     eax, 0Bh
19686
                xor     edi, ebp
19687
                mov     ebp, [esi+20h]
19688
                xor     edi, [esp+10h]
19689
                and     ecx, [esp+8]
19690
                and     edi, [esp+18h]
19691
                xor     ecx, ebx
19692
                lea     ebp, [eax+ebp-71862350h]
19693
                xor     ecx, edi
19694
                ror     ecx, 7
19695
                add     ebp, ecx
19696
                mov     eax, [esp]
19697
                mov     [esp+4], ebp
19698
                mov     ebp, [esp+18h]
19699
                mov     ebx, [esp+10h]
19700
                mov     ecx, [esp+8]
19701
                mov     edi, ebx
19702
                and     ebx, [esp+1Ch]
19703
                and     edi, ecx
19704
                xor     ebx, ebp
19705
                ror     eax, 0Bh
19706
                xor     edi, ebp
19707
                mov     ebp, [esi+58h]
19708
                xor     edi, [esp+0Ch]
19709
                and     ecx, [esp+4]
19710
                and     edi, [esp+14h]
19711
                xor     ecx, ebx
19712
                lea     ebp, [eax+ebp+603A180Eh]
19713
                xor     ecx, edi
19714
                ror     ecx, 7
19715
                add     ebp, ecx
19716
                mov     eax, [esp+1Ch]
19717
                mov     [esp], ebp
19718
                mov     ebp, [esp+14h]
19719
                mov     ebx, [esp+0Ch]
19720
                mov     ecx, [esp+4]
19721
                mov     edi, ebx
19722
                and     ebx, [esp+18h]
19723
                and     edi, ecx
19724
                xor     ebx, ebp
19725
                ror     eax, 0Bh
19726
                xor     edi, ebp
19727
                mov     ebp, [esi+74h]
19728
                xor     edi, [esp+8]
19729
                and     ecx, [esp]
19730
                and     edi, [esp+10h]
19731
                xor     ecx, ebx
19732
                lea     ebp, [eax+ebp+6C9E0E8Bh]
19733
                xor     ecx, edi
19734
                ror     ecx, 7
19735
                add     ebp, ecx
19736
                mov     eax, [esp+18h]
19737
                mov     [esp+1Ch], ebp
19738
                mov     ebp, [esp+10h]
19739
                mov     ebx, [esp+8]
19740
                mov     ecx, [esp]
19741
                mov     edi, ebx
19742
                and     ebx, [esp+14h]
19743
                and     edi, ecx
19744
                xor     ebx, ebp
19745
                ror     eax, 0Bh
19746
                xor     edi, ebp
19747
                mov     ebp, [esi+38h]
19748
                xor     edi, [esp+4]
19749
                and     ecx, [esp+1Ch]
19750
                and     edi, [esp+0Ch]
19751
                xor     ecx, ebx
19752
                lea     ebp, [eax+ebp-4FE175C2h]
19753
                xor     ecx, edi
19754
                ror     ecx, 7
19755
                add     ebp, ecx
19756
                mov     eax, [esp+14h]
19757
                mov     [esp+18h], ebp
19758
                mov     ebp, [esp+0Ch]
19759
                mov     ebx, [esp+4]
19760
                mov     ecx, [esp+1Ch]
19761
                mov     edi, ebx
19762
                and     ebx, [esp+10h]
19763
                and     edi, ecx
19764
                xor     ebx, ebp
19765
                ror     eax, 0Bh
19766
                xor     edi, ebp
19767
                mov     ebp, [esi+64h]
19768
                xor     edi, [esp]
19769
                and     ecx, [esp+18h]
19770
                and     edi, [esp+8]
19771
                xor     ecx, ebx
19772
                lea     ebp, [eax+ebp-28EA883Fh]
19773
                xor     ecx, edi
19774
                ror     ecx, 7
19775
                add     ebp, ecx
19776
                mov     eax, [esp+10h]
19777
                mov     [esp+14h], ebp
19778
                mov     ebp, [esp+8]
19779
                mov     ebx, [esp]
19780
                mov     ecx, [esp+18h]
19781
                mov     edi, ebx
19782
                and     ebx, [esp+0Ch]
19783
                and     edi, ecx
19784
                xor     ebx, ebp
19785
                ror     eax, 0Bh
19786
                xor     edi, ebp
19787
                mov     ebp, [esi+30h]
19788
                xor     edi, [esp+1Ch]
19789
                and     ecx, [esp+14h]
19790
                and     edi, [esp+4]
19791
                xor     ecx, ebx
19792
                lea     ebp, [eax+ebp-42CEB4D9h]
19793
                xor     ecx, edi
19794
                ror     ecx, 7
19795
                add     ebp, ecx
19796
                mov     eax, [esp+0Ch]
19797
                mov     [esp+10h], ebp
19798
                mov     ebp, [esp+4]
19799
                mov     ebx, [esp+1Ch]
19800
                mov     ecx, [esp+14h]
19801
                mov     edi, ebx
19802
                and     ebx, [esp+8]
19803
                and     edi, ecx
19804
                xor     ebx, ebp
19805
                ror     eax, 0Bh
19806
                xor     edi, ebp
19807
                mov     ebp, [esi+60h]
19808
                xor     edi, [esp+18h]
19809
                and     ecx, [esp+10h]
19810
                and     edi, [esp]
19811
                xor     ecx, ebx
19812
                lea     ebp, [eax+ebp+78AF2FDAh]
19813
                xor     ecx, edi
19814
                ror     ecx, 7
19815
                add     ebp, ecx
19816
                mov     eax, [esp+8]
19817
                mov     [esp+0Ch], ebp
19818
                mov     ebp, [esp]
19819
                mov     ebx, [esp+18h]
19820
                mov     ecx, [esp+10h]
19821
                mov     edi, ebx
19822
                and     ebx, [esp+4]
19823
                and     edi, ecx
19824
                xor     ebx, ebp
19825
                ror     eax, 0Bh
19826
                xor     edi, ebp
19827
                mov     ebp, [esi+78h]
19828
                xor     edi, [esp+14h]
19829
                and     ecx, [esp+0Ch]
19830
                and     edi, [esp+1Ch]
19831
                xor     ecx, ebx
19832
                lea     ebp, [eax+ebp+55605C60h]
19833
                xor     ecx, edi
19834
                ror     ecx, 7
19835
                add     ebp, ecx
19836
                mov     eax, [esp+4]
19837
                mov     [esp+8], ebp
19838
                mov     ebp, [esp+1Ch]
19839
                mov     ebx, [esp+14h]
19840
                mov     ecx, [esp+0Ch]
19841
                mov     edi, ebx
19842
                and     ebx, [esp]
19843
                and     edi, ecx
19844
                xor     ebx, ebp
19845
                ror     eax, 0Bh
19846
                xor     edi, ebp
19847
                mov     ebp, [esi+40h]
19848
                xor     edi, [esp+10h]
19849
                and     ecx, [esp+8]
19850
                and     edi, [esp+18h]
19851
                xor     ecx, ebx
19852
                lea     ebp, [eax+ebp-19AADA0Dh]
19853
                xor     ecx, edi
19854
                ror     ecx, 7
19855
                add     ebp, ecx
19856
                mov     eax, [esp]
19857
                mov     [esp+4], ebp
19858
                mov     ebp, [esp+18h]
19859
                mov     ebx, [esp+10h]
19860
                mov     ecx, [esp+8]
19861
                mov     edi, ebx
19862
                and     ebx, [esp+1Ch]
19863
                and     edi, ecx
19864
                xor     ebx, ebp
19865
                ror     eax, 0Bh
19866
                xor     edi, ebp
19867
                mov     ebp, [esi+68h]
19868
                xor     edi, [esp+0Ch]
19869
                and     ecx, [esp+4]
19870
                and     edi, [esp+14h]
19871
                xor     ecx, ebx
19872
                lea     ebp, [eax+ebp-55AA546Ch]
19873
                xor     ecx, edi
19874
                ror     ecx, 7
19875
                add     ebp, ecx
19876
                mov     eax, [esp+1Ch]
19877
                mov     [esp], ebp
19878
                mov     ebp, [esp+14h]
19879
                mov     ebx, [esp+0Ch]
19880
                mov     ecx, [esp+4]
19881
                mov     edi, ebx
19882
                and     ebx, [esp+18h]
19883
                and     edi, ecx
19884
                xor     ebx, ebp
19885
                ror     eax, 0Bh
19886
                xor     edi, ebp
19887
                mov     ebp, [esi+7Ch]
19888
                xor     edi, [esp+8]
19889
                and     ecx, [esp]
19890
                and     edi, [esp+10h]
19891
                xor     ecx, ebx
19892
                lea     ebp, [eax+ebp+57489862h]
19893
                xor     ecx, edi
19894
                ror     ecx, 7
19895
                add     ebp, ecx
19896
                mov     eax, [esp+18h]
19897
                mov     [esp+1Ch], ebp
19898
                mov     ebp, [esp+10h]
19899
                mov     ebx, [esp+8]
19900
                mov     ecx, [esp]
19901
                mov     edi, ebx
19902
                and     ebx, [esp+14h]
19903
                and     edi, ecx
19904
                xor     ebx, ebp
19905
                ror     eax, 0Bh
19906
                xor     edi, ebp
19907
                mov     ebp, [esi+3Ch]
19908
                xor     edi, [esp+4]
19909
                and     ecx, [esp+1Ch]
19910
                and     edi, [esp+0Ch]
19911
                xor     ecx, ebx
19912
                lea     ebp, [eax+ebp+63E81440h]
19913
                xor     ecx, edi
19914
                ror     ecx, 7
19915
                add     ebp, ecx
19916
                mov     eax, [esp+14h]
19917
                mov     [esp+18h], ebp
19918
                mov     ebp, [esp+0Ch]
19919
                mov     ebx, [esp+4]
19920
                mov     ecx, [esp+1Ch]
19921
                mov     edi, ebx
19922
                and     ebx, [esp+10h]
19923
                and     edi, ecx
19924
                xor     ebx, ebp
19925
                ror     eax, 0Bh
19926
                xor     edi, ebp
19927
                mov     ebp, [esi+1Ch]
19928
                xor     edi, [esp]
19929
                and     ecx, [esp+18h]
19930
                and     edi, [esp+8]
19931
                xor     ecx, ebx
19932
                lea     ebp, [eax+ebp+55CA396Ah]
19933
                xor     ecx, edi
19934
                ror     ecx, 7
19935
                add     ebp, ecx
19936
                mov     eax, [esp+10h]
19937
                mov     [esp+14h], ebp
19938
                mov     ebp, [esp+8]
19939
                mov     ebx, [esp]
19940
                mov     ecx, [esp+18h]
19941
                mov     edi, ebx
19942
                and     ebx, [esp+0Ch]
19943
                and     edi, ecx
19944
                xor     ebx, ebp
19945
                ror     eax, 0Bh
19946
                xor     edi, ebp
19947
                mov     ebp, [esi+0Ch]
19948
                xor     edi, [esp+1Ch]
19949
                and     ecx, [esp+14h]
19950
                and     edi, [esp+4]
19951
                xor     ecx, ebx
19952
                lea     ebp, [eax+ebp+2AAB10B6h]
19953
                xor     ecx, edi
19954
                ror     ecx, 7
19955
                add     ebp, ecx
19956
                mov     eax, [esp+0Ch]
19957
                mov     [esp+10h], ebp
19958
                mov     ebp, [esp+4]
19959
                mov     ebx, [esp+1Ch]
19960
                mov     ecx, [esp+14h]
19961
                mov     edi, ebx
19962
                and     ebx, [esp+8]
19963
                and     edi, ecx
19964
                xor     ebx, ebp
19965
                ror     eax, 0Bh
19966
                xor     edi, ebp
19967
                mov     ebp, [esi+4]
19968
                xor     edi, [esp+18h]
19969
                and     ecx, [esp+10h]
19970
                and     edi, [esp]
19971
                xor     ecx, ebx
19972
                lea     ebp, [eax+ebp-4B33A3CCh]
19973
                xor     ecx, edi
19974
                ror     ecx, 7
19975
                add     ebp, ecx
19976
                mov     eax, [esp+8]
19977
                mov     [esp+0Ch], ebp
19978
                mov     ebp, [esp]
19979
                mov     ebx, [esp+18h]
19980
                mov     ecx, [esp+10h]
19981
                mov     edi, ebx
19982
                and     ebx, [esp+4]
19983
                and     edi, ecx
19984
                xor     ebx, ebp
19985
                ror     eax, 0Bh
19986
                xor     edi, ebp
19987
                mov     ebp, [esi]
19988
                xor     edi, [esp+14h]
19989
                and     ecx, [esp+0Ch]
19990
                and     edi, [esp+1Ch]
19991
                xor     ecx, ebx
19992
                lea     ebp, [eax+ebp+1141E8CEh]
19993
                xor     ecx, edi
19994
                ror     ecx, 7
19995
                add     ebp, ecx
19996
                mov     eax, [esp+4]
19997
                mov     [esp+8], ebp
19998
                mov     ebp, [esp+1Ch]
19999
                mov     ebx, [esp+14h]
20000
                mov     ecx, [esp+0Ch]
20001
                mov     edi, ebx
20002
                and     ebx, [esp]
20003
                and     edi, ecx
20004
                xor     ebx, ebp
20005
                ror     eax, 0Bh
20006
                xor     edi, ebp
20007
                mov     ebp, [esi+48h]
20008
                xor     edi, [esp+10h]
20009
                and     ecx, [esp+8]
20010
                and     edi, [esp+18h]
20011
                xor     ecx, ebx
20012
                lea     ebp, [eax+ebp-5EAB7951h]
20013
                xor     ecx, edi
20014
                ror     ecx, 7
20015
                add     ebp, ecx
20016
                mov     eax, [esp]
20017
                mov     [esp+4], ebp
20018
                mov     ebp, [esp+18h]
20019
                mov     ebx, [esp+10h]
20020
                mov     ecx, [esp+8]
20021
                mov     edi, ebx
20022
                and     ebx, [esp+1Ch]
20023
                and     edi, ecx
20024
                xor     ebx, ebp
20025
                ror     eax, 0Bh
20026
                xor     edi, ebp
20027
                mov     ebp, [esi+6Ch]
20028
                xor     edi, [esp+0Ch]
20029
                and     ecx, [esp+4]
20030
                and     edi, [esp+14h]
20031
                xor     ecx, ebx
20032
                lea     ebp, [eax+ebp+7C72E993h]
20033
                xor     ecx, edi
20034
                ror     ecx, 7
20035
                add     ebp, ecx
20036
                mov     eax, [esp+1Ch]
20037
                mov     [esp], ebp
20038
                mov     ebp, [esp+14h]
20039
                mov     ebx, [esp+0Ch]
20040
                mov     ecx, [esp+4]
20041
                mov     edi, ebx
20042
                and     ebx, [esp+18h]
20043
                and     edi, ecx
20044
                xor     ebx, ebp
20045
                ror     eax, 0Bh
20046
                xor     edi, ebp
20047
                mov     ebp, [esi+34h]
20048
                xor     edi, [esp+8]
20049
                and     ecx, [esp]
20050
                and     edi, [esp+10h]
20051
                xor     ecx, ebx
20052
                lea     ebp, [eax+ebp-4C11EBEFh]
20053
                xor     ecx, edi
20054
                ror     ecx, 7
20055
                add     ebp, ecx
20056
                mov     eax, [esp+18h]
20057
                mov     [esp+1Ch], ebp
20058
                mov     ebp, [esp+10h]
20059
                mov     ebx, [esp+8]
20060
                mov     ecx, [esp]
20061
                mov     edi, ebx
20062
                and     ebx, [esp+14h]
20063
                and     edi, ecx
20064
                xor     ebx, ebp
20065
                ror     eax, 0Bh
20066
                xor     edi, ebp
20067
                mov     ebp, [esi+18h]
20068
                xor     edi, [esp+4]
20069
                and     ecx, [esp+1Ch]
20070
                and     edi, [esp+0Ch]
20071
                xor     ecx, ebx
20072
                lea     ebp, [eax+ebp+636FBC2Ah]
20073
                xor     ecx, edi
20074
                ror     ecx, 7
20075
                add     ebp, ecx
20076
                mov     eax, [esp+14h]
20077
                mov     [esp+18h], ebp
20078
                mov     ebp, [esp+0Ch]
20079
                mov     ebx, [esp+4]
20080
                mov     ecx, [esp+1Ch]
20081
                mov     edi, ebx
20082
                and     ebx, [esp+10h]
20083
                and     edi, ecx
20084
                xor     ebx, ebp
20085
                ror     eax, 0Bh
20086
                xor     edi, ebp
20087
                mov     ebp, [esi+54h]
20088
                xor     edi, [esp]
20089
                and     ecx, [esp+18h]
20090
                and     edi, [esp+8]
20091
                xor     ecx, ebx
20092
                lea     ebp, [eax+ebp+2BA9C55Dh]
20093
                xor     ecx, edi
20094
                ror     ecx, 7
20095
                add     ebp, ecx
20096
                mov     eax, [esp+10h]
20097
                mov     [esp+14h], ebp
20098
                mov     ebp, [esp+8]
20099
                mov     ebx, [esp]
20100
                mov     ecx, [esp+18h]
20101
                mov     edi, ebx
20102
                and     ebx, [esp+0Ch]
20103
                and     edi, ecx
20104
                xor     ebx, ebp
20105
                ror     eax, 0Bh
20106
                xor     edi, ebp
20107
                mov     ebp, [esi+28h]
20108
                xor     edi, [esp+1Ch]
20109
                and     ecx, [esp+14h]
20110
                and     edi, [esp+4]
20111
                xor     ecx, ebx
20112
                lea     ebp, [eax+ebp+741831F6h]
20113
                xor     ecx, edi
20114
                ror     ecx, 7
20115
                add     ebp, ecx
20116
                mov     eax, [esp+0Ch]
20117
                mov     [esp+10h], ebp
20118
                mov     ebp, [esp+4]
20119
                mov     ebx, [esp+1Ch]
20120
                mov     ecx, [esp+14h]
20121
                mov     edi, ebx
20122
                and     ebx, [esp+8]
20123
                and     edi, ecx
20124
                xor     ebx, ebp
20125
                ror     eax, 0Bh
20126
                xor     edi, ebp
20127
                mov     ebp, [esi+5Ch]
20128
                xor     edi, [esp+18h]
20129
                and     ecx, [esp+10h]
20130
                and     edi, [esp]
20131
                xor     ecx, ebx
20132
                lea     ebp, [eax+ebp-31A3C1EAh]
20133
                xor     ecx, edi
20134
                ror     ecx, 7
20135
                add     ebp, ecx
20136
                mov     eax, [esp+8]
20137
                mov     [esp+0Ch], ebp
20138
                mov     ebp, [esp]
20139
                mov     ebx, [esp+18h]
20140
                mov     ecx, [esp+10h]
20141
                mov     edi, ebx
20142
                and     ebx, [esp+4]
20143
                and     edi, ecx
20144
                xor     ebx, ebp
20145
                ror     eax, 0Bh
20146
                xor     edi, ebp
20147
                mov     ebp, [esi+2Ch]
20148
                xor     edi, [esp+14h]
20149
                and     ecx, [esp+0Ch]
20150
                and     edi, [esp+1Ch]
20151
                xor     ecx, ebx
20152
                lea     ebp, [eax+ebp-64786CE2h]
20153
                xor     ecx, edi
20154
                ror     ecx, 7
20155
                add     ebp, ecx
20156
                mov     eax, [esp+4]
20157
                mov     [esp+8], ebp
20158
                mov     ebp, [esp+1Ch]
20159
                mov     ebx, [esp+14h]
20160
                mov     ecx, [esp+0Ch]
20161
                mov     edi, ebx
20162
                and     ebx, [esp]
20163
                and     edi, ecx
20164
                xor     ebx, ebp
20165
                ror     eax, 0Bh
20166
                xor     edi, ebp
20167
                mov     ebp, [esi+14h]
20168
                xor     edi, [esp+10h]
20169
                and     ecx, [esp+8]
20170
                and     edi, [esp+18h]
20171
                xor     ecx, ebx
20172
                lea     ebp, [eax+ebp-502945CDh]
20173
                xor     ecx, edi
20174
                ror     ecx, 7
20175
                add     ebp, ecx
20176
                mov     eax, [esp]
20177
                mov     [esp+4], ebp
20178
                mov     ebp, [esp+18h]
20179
                mov     ebx, [esp+10h]
20180
                mov     ecx, [esp+8]
20181
                mov     edi, ebx
20182
                and     ebx, [esp+1Ch]
20183
                and     edi, ecx
20184
                xor     ebx, ebp
20185
                ror     eax, 0Bh
20186
                xor     edi, ebp
20187
                mov     ebp, [esi+8]
20188
                xor     edi, [esp+0Ch]
20189
                and     ecx, [esp+4]
20190
                and     edi, [esp+14h]
20191
                xor     ecx, ebx
20192
                lea     ebp, [eax+ebp+6C24CF5Ch]
20193
                xor     ecx, edi
20194
                ror     ecx, 7
20195
                add     ebp, ecx
20196
                mov     eax, [esp+1Ch]
20197
                mov     [esp], ebp
20198
                mov     ebp, [esp]
20199
                mov     ecx, [esp+14h]
20200
                mov     edx, [esp+4]
20201
                mov     edi, ebp
20202
                mov     ebx, edx
20203
                xor     ebp, 0FFFFFFFFh
20204
                xor     ebx, 0FFFFFFFFh
20205
                and     ebp, ecx
20206
                and     ebx, [esp+8]
20207
                xor     ebp, [esp+10h]
20208
                xor     ebx, edx
20209
                xor     ebp, [esp+18h]
20210
                xor     ebx, ebp
20211
                mov     ebp, edi
20212
                and     ebx, [esp+0Ch]
20213
                and     ebp, [esp+10h]
20214
                and     edi, edx
20215
                xor     ebp, ecx
20216
                xor     ebx, [esp+18h]
20217
                ror     eax, 0Bh
20218
                xor     ebp, edx
20219
                mov     edx, [esi+60h]
20220
                and     ebp, [esp+8]
20221
                xor     ebx, edi
20222
                xor     ebp, ebx
20223
                lea     edx, [eax+edx+7A325381h]
20224
                ror     ebp, 7
20225
                add     ebp, edx
20226
                mov     eax, [esp+18h]
20227
                mov     [esp+1Ch], ebp
20228
                mov     ecx, [esp+10h]
20229
                mov     edx, [esp]
20230
                mov     edi, ebp
20231
                mov     ebx, edx
20232
                xor     ebp, 0FFFFFFFFh
20233
                xor     ebx, 0FFFFFFFFh
20234
                and     ebp, ecx
20235
                and     ebx, [esp+4]
20236
                xor     ebp, [esp+0Ch]
20237
                xor     ebx, edx
20238
                xor     ebp, [esp+14h]
20239
                xor     ebx, ebp
20240
                mov     ebp, edi
20241
                and     ebx, [esp+8]
20242
                and     ebp, [esp+0Ch]
20243
                and     edi, edx
20244
                xor     ebp, ecx
20245
                xor     ebx, [esp+14h]
20246
                ror     eax, 0Bh
20247
                xor     ebp, edx
20248
                mov     edx, [esi+10h]
20249
                and     ebp, [esp+4]
20250
                xor     ebx, edi
20251
                xor     ebp, ebx
20252
                lea     edx, [eax+edx+28958677h]
20253
                ror     ebp, 7
20254
                add     ebp, edx
20255
                mov     eax, [esp+14h]
20256
                mov     [esp+18h], ebp
20257
                mov     ecx, [esp+0Ch]
20258
                mov     edx, [esp+1Ch]
20259
                mov     edi, ebp
20260
                mov     ebx, edx
20261
                xor     ebp, 0FFFFFFFFh
20262
                xor     ebx, 0FFFFFFFFh
20263
                and     ebp, ecx
20264
                and     ebx, [esp]
20265
                xor     ebp, [esp+8]
20266
                xor     ebx, edx
20267
                xor     ebp, [esp+10h]
20268
                xor     ebx, ebp
20269
                mov     ebp, edi
20270
                and     ebx, [esp+4]
20271
                and     ebp, [esp+8]
20272
                and     edi, edx
20273
                xor     ebp, ecx
20274
                xor     ebx, [esp+10h]
20275
                ror     eax, 0Bh
20276
                xor     ebp, edx
20277
                mov     edx, [esi]
20278
                and     ebp, [esp]
20279
                xor     ebx, edi
20280
                xor     ebp, ebx
20281
                lea     edx, [eax+edx+3B8F4898h]
20282
                ror     ebp, 7
20283
                add     ebp, edx
20284
                mov     eax, [esp+10h]
20285
                mov     [esp+14h], ebp
20286
                mov     ecx, [esp+8]
20287
                mov     edx, [esp+18h]
20288
                mov     edi, ebp
20289
                mov     ebx, edx
20290
                xor     ebp, 0FFFFFFFFh
20291
                xor     ebx, 0FFFFFFFFh
20292
                and     ebp, ecx
20293
                and     ebx, [esp+1Ch]
20294
                xor     ebp, [esp+4]
20295
                xor     ebx, edx
20296
                xor     ebp, [esp+0Ch]
20297
                xor     ebx, ebp
20298
                mov     ebp, edi
20299
                and     ebx, [esp]
20300
                and     ebp, [esp+4]
20301
                and     edi, edx
20302
                xor     ebp, ecx
20303
                xor     ebx, [esp+0Ch]
20304
                ror     eax, 0Bh
20305
                xor     ebp, edx
20306
                mov     edx, [esi+38h]
20307
                and     ebp, [esp+1Ch]
20308
                xor     ebx, edi
20309
                xor     ebp, ebx
20310
                lea     edx, [eax+edx+6B4BB9AFh]
20311
                ror     ebp, 7
20312
                add     ebp, edx
20313
                mov     eax, [esp+0Ch]
20314
                mov     [esp+10h], ebp
20315
                mov     ecx, [esp+4]
20316
                mov     edx, [esp+14h]
20317
                mov     edi, ebp
20318
                mov     ebx, edx
20319
                xor     ebp, 0FFFFFFFFh
20320
                xor     ebx, 0FFFFFFFFh
20321
                and     ebp, ecx
20322
                and     ebx, [esp+18h]
20323
                xor     ebp, [esp]
20324
                xor     ebx, edx
20325
                xor     ebp, [esp+8]
20326
                xor     ebx, ebp
20327
                mov     ebp, edi
20328
                and     ebx, [esp+1Ch]
20329
                and     ebp, [esp]
20330
                and     edi, edx
20331
                xor     ebp, ecx
20332
                xor     ebx, [esp+8]
20333
                ror     eax, 0Bh
20334
                xor     ebp, edx
20335
                mov     edx, [esi+8]
20336
                and     ebp, [esp+18h]
20337
                xor     ebx, edi
20338
                xor     ebp, ebx
20339
                lea     edx, [eax+edx-3B4017E5h]
20340
                ror     ebp, 7
20341
                add     ebp, edx
20342
                mov     eax, [esp+8]
20343
                mov     [esp+0Ch], ebp
20344
                mov     ecx, [esp]
20345
                mov     edx, [esp+10h]
20346
                mov     edi, ebp
20347
                mov     ebx, edx
20348
                xor     ebp, 0FFFFFFFFh
20349
                xor     ebx, 0FFFFFFFFh
20350
                and     ebp, ecx
20351
                and     ebx, [esp+14h]
20352
                xor     ebp, [esp+1Ch]
20353
                xor     ebx, edx
20354
                xor     ebp, [esp+4]
20355
                xor     ebx, ebp
20356
                mov     ebp, edi
20357
                and     ebx, [esp+18h]
20358
                and     ebp, [esp+1Ch]
20359
                and     edi, edx
20360
                xor     ebp, ecx
20361
                xor     ebx, [esp+4]
20362
                ror     eax, 0Bh
20363
                xor     ebp, edx
20364
                mov     edx, [esi+1Ch]
20365
                and     ebp, [esp+14h]
20366
                xor     ebx, edi
20367
                xor     ebp, ebx
20368
                lea     edx, [eax+edx+66282193h]
20369
                ror     ebp, 7
20370
                add     ebp, edx
20371
                mov     eax, [esp+4]
20372
                mov     [esp+8], ebp
20373
                mov     ecx, [esp+1Ch]
20374
                mov     edx, [esp+0Ch]
20375
                mov     edi, ebp
20376
                mov     ebx, edx
20377
                xor     ebp, 0FFFFFFFFh
20378
                xor     ebx, 0FFFFFFFFh
20379
                and     ebp, ecx
20380
                and     ebx, [esp+10h]
20381
                xor     ebp, [esp+18h]
20382
                xor     ebx, edx
20383
                xor     ebp, [esp]
20384
                xor     ebx, ebp
20385
                mov     ebp, edi
20386
                and     ebx, [esp+14h]
20387
                and     ebp, [esp+18h]
20388
                and     edi, edx
20389
                xor     ebp, ecx
20390
                xor     ebx, [esp]
20391
                ror     eax, 0Bh
20392
                xor     ebp, edx
20393
                mov     edx, [esi+70h]
20394
                and     ebp, [esp+10h]
20395
                xor     ebx, edi
20396
                xor     ebp, ebx
20397
                lea     edx, [eax+edx+61D809CCh]
20398
                ror     ebp, 7
20399
                add     ebp, edx
20400
                mov     eax, [esp]
20401
                mov     [esp+4], ebp
20402
                mov     ecx, [esp+18h]
20403
                mov     edx, [esp+8]
20404
                mov     edi, ebp
20405
                mov     ebx, edx
20406
                xor     ebp, 0FFFFFFFFh
20407
                xor     ebx, 0FFFFFFFFh
20408
                and     ebp, ecx
20409
                and     ebx, [esp+0Ch]
20410
                xor     ebp, [esp+14h]
20411
                xor     ebx, edx
20412
                xor     ebp, [esp+1Ch]
20413
                xor     ebx, ebp
20414
                mov     ebp, edi
20415
                and     ebx, [esp+10h]
20416
                and     ebp, [esp+14h]
20417
                and     edi, edx
20418
                xor     ebp, ecx
20419
                xor     ebx, [esp+1Ch]
20420
                ror     eax, 0Bh
20421
                xor     ebp, edx
20422
                mov     edx, [esi+5Ch]
20423
                and     ebp, [esp+0Ch]
20424
                xor     ebx, edi
20425
                xor     ebp, ebx
20426
                lea     edx, [eax+edx-4DE566Fh]
20427
                ror     ebp, 7
20428
                add     ebp, edx
20429
                mov     eax, [esp+1Ch]
20430
                mov     [esp], ebp
20431
                mov     ecx, [esp+14h]
20432
                mov     edx, [esp+4]
20433
                mov     edi, ebp
20434
                mov     ebx, edx
20435
                xor     ebp, 0FFFFFFFFh
20436
                xor     ebx, 0FFFFFFFFh
20437
                and     ebp, ecx
20438
                and     ebx, [esp+8]
20439
                xor     ebp, [esp+10h]
20440
                xor     ebx, edx
20441
                xor     ebp, [esp+18h]
20442
                xor     ebx, ebp
20443
                mov     ebp, edi
20444
                and     ebx, [esp+0Ch]
20445
                and     ebp, [esp+10h]
20446
                and     edi, edx
20447
                xor     ebp, ecx
20448
                xor     ebx, [esp+18h]
20449
                ror     eax, 0Bh
20450
                xor     ebp, edx
20451
                mov     edx, [esi+68h]
20452
                and     ebp, [esp+8]
20453
                xor     ebx, edi
20454
                xor     ebp, ebx
20455
                lea     edx, [eax+edx+487CAC60h]
20456
                ror     ebp, 7
20457
                add     ebp, edx
20458
                mov     eax, [esp+18h]
20459
                mov     [esp+1Ch], ebp
20460
                mov     ecx, [esp+10h]
20461
                mov     edx, [esp]
20462
                mov     edi, ebp
20463
                mov     ebx, edx
20464
                xor     ebp, 0FFFFFFFFh
20465
                xor     ebx, 0FFFFFFFFh
20466
                and     ebp, ecx
20467
                and     ebx, [esp+4]
20468
                xor     ebp, [esp+0Ch]
20469
                xor     ebx, edx
20470
                xor     ebp, [esp+14h]
20471
                xor     ebx, ebp
20472
                mov     ebp, edi
20473
                and     ebx, [esp+8]
20474
                and     ebp, [esp+0Ch]
20475
                and     edi, edx
20476
                xor     ebp, ecx
20477
                xor     ebx, [esp+14h]
20478
                ror     eax, 0Bh
20479
                xor     ebp, edx
20480
                mov     edx, [esi+18h]
20481
                and     ebp, [esp+4]
20482
                xor     ebx, edi
20483
                xor     ebp, ebx
20484
                lea     edx, [eax+edx+5DEC8032h]
20485
                ror     ebp, 7
20486
                add     ebp, edx
20487
                mov     eax, [esp+14h]
20488
                mov     [esp+18h], ebp
20489
                mov     ecx, [esp+0Ch]
20490
                mov     edx, [esp+1Ch]
20491
                mov     edi, ebp
20492
                mov     ebx, edx
20493
                xor     ebp, 0FFFFFFFFh
20494
                xor     ebx, 0FFFFFFFFh
20495
                and     ebp, ecx
20496
                and     ebx, [esp]
20497
                xor     ebp, [esp+8]
20498
                xor     ebx, edx
20499
                xor     ebp, [esp+10h]
20500
                xor     ebx, ebp
20501
                mov     ebp, edi
20502
                and     ebx, [esp+4]
20503
                and     ebp, [esp+8]
20504
                and     edi, edx
20505
                xor     ebp, ecx
20506
                xor     ebx, [esp+10h]
20507
                ror     eax, 0Bh
20508
                xor     ebp, edx
20509
                mov     edx, [esi+78h]
20510
                and     ebp, [esp]
20511
                xor     ebx, edi
20512
                xor     ebp, ebx
20513
                lea     edx, [eax+edx-107BA2A3h]
20514
                ror     ebp, 7
20515
                add     ebp, edx
20516
                mov     eax, [esp+10h]
20517
                mov     [esp+14h], ebp
20518
                mov     ecx, [esp+8]
20519
                mov     edx, [esp+18h]
20520
                mov     edi, ebp
20521
                mov     ebx, edx
20522
                xor     ebp, 0FFFFFFFFh
20523
                xor     ebx, 0FFFFFFFFh
20524
                and     ebp, ecx
20525
                and     ebx, [esp+1Ch]
20526
                xor     ebp, [esp+4]
20527
                xor     ebx, edx
20528
                xor     ebp, [esp+0Ch]
20529
                xor     ebx, ebp
20530
                mov     ebp, edi
20531
                and     ebx, [esp]
20532
                and     ebp, [esp+4]
20533
                and     edi, edx
20534
                xor     ebp, ecx
20535
                xor     ebx, [esp+0Ch]
20536
                ror     eax, 0Bh
20537
                xor     ebp, edx
20538
                mov     edx, [esi+50h]
20539
                and     ebp, [esp+1Ch]
20540
                xor     ebx, edi
20541
                xor     ebp, ebx
20542
                lea     edx, [eax+edx-167A8A4Fh]
20543
                ror     ebp, 7
20544
                add     ebp, edx
20545
                mov     eax, [esp+0Ch]
20546
                mov     [esp+10h], ebp
20547
                mov     ecx, [esp+4]
20548
                mov     edx, [esp+14h]
20549
                mov     edi, ebp
20550
                mov     ebx, edx
20551
                xor     ebp, 0FFFFFFFFh
20552
                xor     ebx, 0FFFFFFFFh
20553
                and     ebp, ecx
20554
                and     ebx, [esp+18h]
20555
                xor     ebp, [esp]
20556
                xor     ebx, edx
20557
                xor     ebp, [esp+8]
20558
                xor     ebx, ebp
20559
                mov     ebp, edi
20560
                and     ebx, [esp+1Ch]
20561
                and     ebp, [esp]
20562
                and     edi, edx
20563
                xor     ebp, ecx
20564
                xor     ebx, [esp+8]
20565
                ror     eax, 0Bh
20566
                xor     ebp, edx
20567
                mov     edx, [esi+48h]
20568
                and     ebp, [esp+18h]
20569
                xor     ebx, edi
20570
                xor     ebp, ebx
20571
                lea     edx, [eax+edx-23D9DCFEh]
20572
                ror     ebp, 7
20573
                add     ebp, edx
20574
                mov     eax, [esp+8]
20575
                mov     [esp+0Ch], ebp
20576
                mov     ecx, [esp]
20577
                mov     edx, [esp+10h]
20578
                mov     edi, ebp
20579
                mov     ebx, edx
20580
                xor     ebp, 0FFFFFFFFh
20581
                xor     ebx, 0FFFFFFFFh
20582
                and     ebp, ecx
20583
                and     ebx, [esp+14h]
20584
                xor     ebp, [esp+1Ch]
20585
                xor     ebx, edx
20586
                xor     ebp, [esp+4]
20587
                xor     ebx, ebp
20588
                mov     ebp, edi
20589
                and     ebx, [esp+18h]
20590
                and     ebp, [esp+1Ch]
20591
                and     edi, edx
20592
                xor     ebp, ecx
20593
                xor     ebx, [esp+4]
20594
                ror     eax, 0Bh
20595
                xor     ebp, edx
20596
                mov     edx, [esi+64h]
20597
                and     ebp, [esp+14h]
20598
                xor     ebx, edi
20599
                xor     ebp, ebx
20600
                lea     edx, [eax+edx-149AE478h]
20601
                ror     ebp, 7
20602
                add     ebp, edx
20603
                mov     eax, [esp+4]
20604
                mov     [esp+8], ebp
20605
                mov     ecx, [esp+1Ch]
20606
                mov     edx, [esp+0Ch]
20607
                mov     edi, ebp
20608
                mov     ebx, edx
20609
                xor     ebp, 0FFFFFFFFh
20610
                xor     ebx, 0FFFFFFFFh
20611
                and     ebp, ecx
20612
                and     ebx, [esp+10h]
20613
                xor     ebp, [esp+18h]
20614
                xor     ebx, edx
20615
                xor     ebp, [esp]
20616
                xor     ebx, ebp
20617
                mov     ebp, edi
20618
                and     ebx, [esp+14h]
20619
                and     ebp, [esp+18h]
20620
                and     edi, edx
20621
                xor     ebp, ecx
20622
                xor     ebx, [esp]
20623
                ror     eax, 0Bh
20624
                xor     ebp, edx
20625
                mov     edx, [esi+4Ch]
20626
                and     ebp, [esp+10h]
20627
                xor     ebx, edi
20628
                xor     ebp, ebx
20629
                lea     edx, [eax+edx+23893E81h]
20630
                ror     ebp, 7
20631
                add     ebp, edx
20632
                mov     eax, [esp]
20633
                mov     [esp+4], ebp
20634
                mov     ecx, [esp+18h]
20635
                mov     edx, [esp+8]
20636
                mov     edi, ebp
20637
                mov     ebx, edx
20638
                xor     ebp, 0FFFFFFFFh
20639
                xor     ebx, 0FFFFFFFFh
20640
                and     ebp, ecx
20641
                and     ebx, [esp+0Ch]
20642
                xor     ebp, [esp+14h]
20643
                xor     ebx, edx
20644
                xor     ebp, [esp+1Ch]
20645
                xor     ebx, ebp
20646
                mov     ebp, edi
20647
                and     ebx, [esp+10h]
20648
                and     ebp, [esp+14h]
20649
                and     edi, edx
20650
                xor     ebp, ecx
20651
                xor     ebx, [esp+1Ch]
20652
                ror     eax, 0Bh
20653
                xor     ebp, edx
20654
                mov     edx, [esi+0Ch]
20655
                and     ebp, [esp+0Ch]
20656
                xor     ebx, edi
20657
                xor     ebp, ebx
20658
                lea     edx, [eax+edx-2C69533Bh]
20659
                ror     ebp, 7
20660
                add     ebp, edx
20661
                mov     eax, [esp+1Ch]
20662
                mov     [esp], ebp
20663
                mov     ecx, [esp+14h]
20664
                mov     edx, [esp+4]
20665
                mov     edi, ebp
20666
                mov     ebx, edx
20667
                xor     ebp, 0FFFFFFFFh
20668
                xor     ebx, 0FFFFFFFFh
20669
                and     ebp, ecx
20670
                and     ebx, [esp+8]
20671
                xor     ebp, [esp+10h]
20672
                xor     ebx, edx
20673
                xor     ebp, [esp+18h]
20674
                xor     ebx, ebp
20675
                mov     ebp, edi
20676
                and     ebx, [esp+0Ch]
20677
                and     ebp, [esp+10h]
20678
                and     edi, edx
20679
                xor     ebp, ecx
20680
                xor     ebx, [esp+18h]
20681
                ror     eax, 0Bh
20682
                xor     ebp, edx
20683
                mov     edx, [esi+58h]
20684
                and     ebp, [esp+8]
20685
                xor     ebx, edi
20686
                xor     ebp, ebx
20687
                lea     edx, [eax+edx+0F6D6FF3h]
20688
                ror     ebp, 7
20689
                add     ebp, edx
20690
                mov     eax, [esp+18h]
20691
                mov     [esp+1Ch], ebp
20692
                mov     ecx, [esp+10h]
20693
                mov     edx, [esp]
20694
                mov     edi, ebp
20695
                mov     ebx, edx
20696
                xor     ebp, 0FFFFFFFFh
20697
                xor     ebx, 0FFFFFFFFh
20698
                and     ebp, ecx
20699
                and     ebx, [esp+4]
20700
                xor     ebp, [esp+0Ch]
20701
                xor     ebx, edx
20702
                xor     ebp, [esp+14h]
20703
                xor     ebx, ebp
20704
                mov     ebp, edi
20705
                and     ebx, [esp+8]
20706
                and     ebp, [esp+0Ch]
20707
                and     edi, edx
20708
                xor     ebp, ecx
20709
                xor     ebx, [esp+14h]
20710
                ror     eax, 0Bh
20711
                xor     ebp, edx
20712
                mov     edx, [esi+2Ch]
20713
                and     ebp, [esp+4]
20714
                xor     ebx, edi
20715
                xor     ebp, ebx
20716
                lea     edx, [eax+edx-7C0BBDC7h]
20717
                ror     ebp, 7
20718
                add     ebp, edx
20719
                mov     eax, [esp+14h]
20720
                mov     [esp+18h], ebp
20721
                mov     ecx, [esp+0Ch]
20722
                mov     edx, [esp+1Ch]
20723
                mov     edi, ebp
20724
                mov     ebx, edx
20725
                xor     ebp, 0FFFFFFFFh
20726
                xor     ebx, 0FFFFFFFFh
20727
                and     ebp, ecx
20728
                and     ebx, [esp]
20729
                xor     ebp, [esp+8]
20730
                xor     ebx, edx
20731
                xor     ebp, [esp+10h]
20732
                xor     ebx, ebp
20733
                mov     ebp, edi
20734
                and     ebx, [esp+4]
20735
                and     ebp, [esp+8]
20736
                and     edi, edx
20737
                xor     ebp, ecx
20738
                xor     ebx, [esp+10h]
20739
                ror     eax, 0Bh
20740
                xor     ebp, edx
20741
                mov     edx, [esi+7Ch]
20742
                and     ebp, [esp]
20743
                xor     ebx, edi
20744
                xor     ebp, ebx
20745
                lea     edx, [eax+edx+2E0B4482h]
20746
                ror     ebp, 7
20747
                add     ebp, edx
20748
                mov     eax, [esp+10h]
20749
                mov     [esp+14h], ebp
20750
                mov     ecx, [esp+8]
20751
                mov     edx, [esp+18h]
20752
                mov     edi, ebp
20753
                mov     ebx, edx
20754
                xor     ebp, 0FFFFFFFFh
20755
                xor     ebx, 0FFFFFFFFh
20756
                and     ebp, ecx
20757
                and     ebx, [esp+1Ch]
20758
                xor     ebp, [esp+4]
20759
                xor     ebx, edx
20760
                xor     ebp, [esp+0Ch]
20761
                xor     ebx, ebp
20762
                mov     ebp, edi
20763
                and     ebx, [esp]
20764
                and     ebp, [esp+4]
20765
                and     edi, edx
20766
                xor     ebp, ecx
20767
                xor     ebx, [esp+0Ch]
20768
                ror     eax, 0Bh
20769
                xor     ebp, edx
20770
                mov     edx, [esi+54h]
20771
                and     ebp, [esp+1Ch]
20772
                xor     ebx, edi
20773
                xor     ebp, ebx
20774
                lea     edx, [eax+edx-5B7BDFFCh]
20775
                ror     ebp, 7
20776
                add     ebp, edx
20777
                mov     eax, [esp+0Ch]
20778
                mov     [esp+10h], ebp
20779
                mov     ecx, [esp+4]
20780
                mov     edx, [esp+14h]
20781
                mov     edi, ebp
20782
                mov     ebx, edx
20783
                xor     ebp, 0FFFFFFFFh
20784
                xor     ebx, 0FFFFFFFFh
20785
                and     ebp, ecx
20786
                and     ebx, [esp+18h]
20787
                xor     ebp, [esp]
20788
                xor     ebx, edx
20789
                xor     ebp, [esp+8]
20790
                xor     ebx, ebp
20791
                mov     ebp, edi
20792
                and     ebx, [esp+1Ch]
20793
                and     ebp, [esp]
20794
                and     edi, edx
20795
                xor     ebp, ecx
20796
                xor     ebx, [esp+8]
20797
                ror     eax, 0Bh
20798
                xor     ebp, edx
20799
                mov     edx, [esi+20h]
20800
                and     ebp, [esp+18h]
20801
                xor     ebx, edi
20802
                xor     ebp, ebx
20803
                lea     edx, [eax+edx+69C8F04Ah]
20804
                ror     ebp, 7
20805
                add     ebp, edx
20806
                mov     eax, [esp+8]
20807
                mov     [esp+0Ch], ebp
20808
                mov     ecx, [esp]
20809
                mov     edx, [esp+10h]
20810
                mov     edi, ebp
20811
                mov     ebx, edx
20812
                xor     ebp, 0FFFFFFFFh
20813
                xor     ebx, 0FFFFFFFFh
20814
                and     ebp, ecx
20815
                and     ebx, [esp+14h]
20816
                xor     ebp, [esp+1Ch]
20817
                xor     ebx, edx
20818
                xor     ebp, [esp+4]
20819
                xor     ebx, ebp
20820
                mov     ebp, edi
20821
                and     ebx, [esp+18h]
20822
                and     ebp, [esp+1Ch]
20823
                and     edi, edx
20824
                xor     ebp, ecx
20825
                xor     ebx, [esp+4]
20826
                ror     eax, 0Bh
20827
                xor     ebp, edx
20828
                mov     edx, [esi+6Ch]
20829
                and     ebp, [esp+14h]
20830
                xor     ebx, edi
20831
                xor     ebp, ebx
20832
                lea     edx, [eax+edx-61E064A2h]
20833
                ror     ebp, 7
20834
                add     ebp, edx
20835
                mov     eax, [esp+4]
20836
                mov     [esp+8], ebp
20837
                mov     ecx, [esp+1Ch]
20838
                mov     edx, [esp+0Ch]
20839
                mov     edi, ebp
20840
                mov     ebx, edx
20841
                xor     ebp, 0FFFFFFFFh
20842
                xor     ebx, 0FFFFFFFFh
20843
                and     ebp, ecx
20844
                and     ebx, [esp+10h]
20845
                xor     ebp, [esp+18h]
20846
                xor     ebx, edx
20847
                xor     ebp, [esp]
20848
                xor     ebx, ebp
20849
                mov     ebp, edi
20850
                and     ebx, [esp+14h]
20851
                and     ebp, [esp+18h]
20852
                and     edi, edx
20853
                xor     ebp, ecx
20854
                xor     ebx, [esp]
20855
                ror     eax, 0Bh
20856
                xor     ebp, edx
20857
                mov     edx, [esi+30h]
20858
                and     ebp, [esp+10h]
20859
                xor     ebx, edi
20860
                xor     ebp, ebx
20861
                lea     edx, [eax+edx+21C66842h]
20862
                ror     ebp, 7
20863
                add     ebp, edx
20864
                mov     eax, [esp]
20865
                mov     [esp+4], ebp
20866
                mov     ecx, [esp+18h]
20867
                mov     edx, [esp+8]
20868
                mov     edi, ebp
20869
                mov     ebx, edx
20870
                xor     ebp, 0FFFFFFFFh
20871
                xor     ebx, 0FFFFFFFFh
20872
                and     ebp, ecx
20873
                and     ebx, [esp+0Ch]
20874
                xor     ebp, [esp+14h]
20875
                xor     ebx, edx
20876
                xor     ebp, [esp+1Ch]
20877
                xor     ebx, ebp
20878
                mov     ebp, edi
20879
                and     ebx, [esp+10h]
20880
                and     ebp, [esp+14h]
20881
                and     edi, edx
20882
                xor     ebp, ecx
20883
                xor     ebx, [esp+1Ch]
20884
                ror     eax, 0Bh
20885
                xor     ebp, edx
20886
                mov     edx, [esi+24h]
20887
                and     ebp, [esp+0Ch]
20888
                xor     ebx, edi
20889
                xor     ebp, ebx
20890
                lea     edx, [eax+edx-9169366h]
20891
                ror     ebp, 7
20892
                add     ebp, edx
20893
                mov     eax, [esp+1Ch]
20894
                mov     [esp], ebp
20895
                mov     ecx, [esp+14h]
20896
                mov     edx, [esp+4]
20897
                mov     edi, ebp
20898
                mov     ebx, edx
20899
                xor     ebp, 0FFFFFFFFh
20900
                xor     ebx, 0FFFFFFFFh
20901
                and     ebp, ecx
20902
                and     ebx, [esp+8]
20903
                xor     ebp, [esp+10h]
20904
                xor     ebx, edx
20905
                xor     ebp, [esp+18h]
20906
                xor     ebx, ebp
20907
                mov     ebp, edi
20908
                and     ebx, [esp+0Ch]
20909
                and     ebp, [esp+10h]
20910
                and     edi, edx
20911
                xor     ebp, ecx
20912
                xor     ebx, [esp+18h]
20913
                ror     eax, 0Bh
20914
                xor     ebp, edx
20915
                mov     edx, [esi+4]
20916
                and     ebp, [esp+8]
20917
                xor     ebx, edi
20918
                xor     ebp, ebx
20919
                lea     edx, [eax+edx+670C9C61h]
20920
                ror     ebp, 7
20921
                add     ebp, edx
20922
                mov     eax, [esp+18h]
20923
                mov     [esp+1Ch], ebp
20924
                mov     ecx, [esp+10h]
20925
                mov     edx, [esp]
20926
                mov     edi, ebp
20927
                mov     ebx, edx
20928
                xor     ebp, 0FFFFFFFFh
20929
                xor     ebx, 0FFFFFFFFh
20930
                and     ebp, ecx
20931
                and     ebx, [esp+4]
20932
                xor     ebp, [esp+0Ch]
20933
                xor     ebx, edx
20934
                xor     ebp, [esp+14h]
20935
                xor     ebx, ebp
20936
                mov     ebp, edi
20937
                and     ebx, [esp+8]
20938
                and     ebp, [esp+0Ch]
20939
                and     edi, edx
20940
                xor     ebp, ecx
20941
                xor     ebx, [esp+14h]
20942
                ror     eax, 0Bh
20943
                xor     ebp, edx
20944
                mov     edx, [esi+74h]
20945
                and     ebp, [esp+4]
20946
                xor     ebx, edi
20947
                xor     ebp, ebx
20948
                lea     edx, [eax+edx-542C7710h]
20949
                ror     ebp, 7
20950
                add     ebp, edx
20951
                mov     eax, [esp+14h]
20952
                mov     [esp+18h], ebp
20953
                mov     ecx, [esp+0Ch]
20954
                mov     edx, [esp+1Ch]
20955
                mov     edi, ebp
20956
                mov     ebx, edx
20957
                xor     ebp, 0FFFFFFFFh
20958
                xor     ebx, 0FFFFFFFFh
20959
                and     ebp, ecx
20960
                and     ebx, [esp]
20961
                xor     ebp, [esp+8]
20962
                xor     ebx, edx
20963
                xor     ebp, [esp+10h]
20964
                xor     ebx, ebp
20965
                mov     ebp, edi
20966
                and     ebx, [esp+4]
20967
                and     ebp, [esp+8]
20968
                and     edi, edx
20969
                xor     ebp, ecx
20970
                xor     ebx, [esp+10h]
20971
                ror     eax, 0Bh
20972
                xor     ebp, edx
20973
                mov     edx, [esi+14h]
20974
                and     ebp, [esp]
20975
                xor     ebx, edi
20976
                xor     ebp, ebx
20977
                lea     edx, [eax+edx+6A51A0D2h]
20978
                ror     ebp, 7
20979
                add     ebp, edx
20980
                mov     eax, [esp+10h]
20981
                mov     [esp+14h], ebp
20982
                mov     ecx, [esp+8]
20983
                mov     edx, [esp+18h]
20984
                mov     edi, ebp
20985
                mov     ebx, edx
20986
                xor     ebp, 0FFFFFFFFh
20987
                xor     ebx, 0FFFFFFFFh
20988
                and     ebp, ecx
20989
                and     ebx, [esp+1Ch]
20990
                xor     ebp, [esp+4]
20991
                xor     ebx, edx
20992
                xor     ebp, [esp+0Ch]
20993
                xor     ebx, ebp
20994
                mov     ebp, edi
20995
                and     ebx, [esp]
20996
                and     ebp, [esp+4]
20997
                and     edi, edx
20998
                xor     ebp, ecx
20999
                xor     ebx, [esp+0Ch]
21000
                ror     eax, 0Bh
21001
                xor     ebp, edx
21002
                mov     edx, [esi+3Ch]
21003
                and     ebp, [esp+1Ch]
21004
                xor     ebx, edi
21005
                xor     ebp, ebx
21006
                lea     edx, [eax+edx-27ABD098h]
21007
                ror     ebp, 7
21008
                add     ebp, edx
21009
                mov     eax, [esp+0Ch]
21010
                mov     [esp+10h], ebp
21011
                mov     ecx, [esp+4]
21012
                mov     edx, [esp+14h]
21013
                mov     edi, ebp
21014
                mov     ebx, edx
21015
                xor     ebp, 0FFFFFFFFh
21016
                xor     ebx, 0FFFFFFFFh
21017
                and     ebp, ecx
21018
                and     ebx, [esp+18h]
21019
                xor     ebp, [esp]
21020
                xor     ebx, edx
21021
                xor     ebp, [esp+8]
21022
                xor     ebx, ebp
21023
                mov     ebp, edi
21024
                and     ebx, [esp+1Ch]
21025
                and     ebp, [esp]
21026
                and     edi, edx
21027
                xor     ebp, ecx
21028
                xor     ebx, [esp+8]
21029
                ror     eax, 0Bh
21030
                xor     ebp, edx
21031
                mov     edx, [esi+44h]
21032
                and     ebp, [esp+18h]
21033
                xor     ebx, edi
21034
                xor     ebp, ebx
21035
                lea     edx, [eax+edx-69F058D8h]
21036
                ror     ebp, 7
21037
                add     ebp, edx
21038
                mov     eax, [esp+8]
21039
                mov     [esp+0Ch], ebp
21040
                mov     ecx, [esp]
21041
                mov     edx, [esp+10h]
21042
                mov     edi, ebp
21043
                mov     ebx, edx
21044
                xor     ebp, 0FFFFFFFFh
21045
                xor     ebx, 0FFFFFFFFh
21046
                and     ebp, ecx
21047
                and     ebx, [esp+14h]
21048
                xor     ebp, [esp+1Ch]
21049
                xor     ebx, edx
21050
                xor     ebp, [esp+4]
21051
                xor     ebx, ebp
21052
                mov     ebp, edi
21053
                and     ebx, [esp+18h]
21054
                and     ebp, [esp+1Ch]
21055
                and     edi, edx
21056
                xor     ebp, ecx
21057
                xor     ebx, [esp+4]
21058
                ror     eax, 0Bh
21059
                xor     ebp, edx
21060
                mov     edx, [esi+28h]
21061
                and     ebp, [esp+14h]
21062
                xor     ebx, edi
21063
                xor     ebp, ebx
21064
                lea     edx, [eax+edx-54AECC5Dh]
21065
                ror     ebp, 7
21066
                add     ebp, edx
21067
                mov     eax, [esp+4]
21068
                mov     [esp+8], ebp
21069
                mov     ecx, [esp+1Ch]
21070
                mov     edx, [esp+0Ch]
21071
                mov     edi, ebp
21072
                mov     ebx, edx
21073
                xor     ebp, 0FFFFFFFFh
21074
                xor     ebx, 0FFFFFFFFh
21075
                and     ebp, ecx
21076
                and     ebx, [esp+10h]
21077
                xor     ebp, [esp+18h]
21078
                xor     ebx, edx
21079
                xor     ebp, [esp]
21080
                xor     ebx, ebp
21081
                mov     ebp, edi
21082
                and     ebx, [esp+14h]
21083
                and     ebp, [esp+18h]
21084
                and     edi, edx
21085
                xor     ebp, ecx
21086
                xor     ebx, [esp]
21087
                ror     eax, 0Bh
21088
                xor     ebp, edx
21089
                mov     edx, [esi+40h]
21090
                and     ebp, [esp+10h]
21091
                xor     ebx, edi
21092
                xor     ebp, ebx
21093
                lea     edx, [eax+edx+6EEF0B6Ch]
21094
                ror     ebp, 7
21095
                add     ebp, edx
21096
                mov     eax, [esp]
21097
                mov     [esp+4], ebp
21098
                mov     ecx, [esp+18h]
21099
                mov     edx, [esp+8]
21100
                mov     edi, ebp
21101
                mov     ebx, edx
21102
                xor     ebp, 0FFFFFFFFh
21103
                xor     ebx, 0FFFFFFFFh
21104
                and     ebp, ecx
21105
                and     ebx, [esp+0Ch]
21106
                xor     ebp, [esp+14h]
21107
                xor     ebx, edx
21108
                xor     ebp, [esp+1Ch]
21109
                xor     ebx, ebp
21110
                mov     ebp, edi
21111
                and     ebx, [esp+10h]
21112
                and     ebp, [esp+14h]
21113
                and     edi, edx
21114
                xor     ebp, ecx
21115
                xor     ebx, [esp+1Ch]
21116
                ror     eax, 0Bh
21117
                xor     ebp, edx
21118
                mov     edx, [esi+34h]
21119
                and     ebp, [esp+0Ch]
21120
                xor     ebx, edi
21121
                xor     ebp, ebx
21122
                lea     edx, [eax+edx+137A3BE4h]
21123
                ror     ebp, 7
21124
                add     ebp, edx
21125
                mov     eax, [esp+1Ch]
21126
                mov     [esp], ebp
21127
                nop
21128
                nop
21129
                nop
21130
                nop
21131
                mov     ebx, [esp+0Ch]
21132
                mov     ecx, [esp+10h]
21133
                and     ebp, ebx
21134
                mov     edx, [esp+14h]
21135
                and     ebx, ecx
21136
                mov     edi, [esp+18h]
21137
                and     ecx, edx
21138
                xor     edx, 0FFFFFFFFh
21139
                and     ebx, edi
21140
                and     edi, [esp+8]
21141
                xor     ebx, edx
21142
                ror     eax, 0Bh
21143
                xor     ecx, edi
21144
                mov     edi, [esi+6Ch]
21145
                and     ebx, [esp+4]
21146
                xor     ebp, ecx
21147
                lea     edi, [eax+edi-45C40FB0h]
21148
                xor     ebp, ebx
21149
                ror     ebp, 7
21150
                add     ebp, edi
21151
                mov     eax, [esp+18h]
21152
                mov     [esp+1Ch], ebp
21153
                mov     ebx, [esp+8]
21154
                mov     ecx, [esp+0Ch]
21155
                and     ebp, ebx
21156
                mov     edx, [esp+10h]
21157
                and     ebx, ecx
21158
                mov     edi, [esp+14h]
21159
                and     ecx, edx
21160
                xor     edx, 0FFFFFFFFh
21161
                and     ebx, edi
21162
                and     edi, [esp+4]
21163
                xor     ebx, edx
21164
                ror     eax, 0Bh
21165
                xor     ecx, edi
21166
                mov     edi, [esi+0Ch]
21167
                and     ebx, [esp]
21168
                xor     ebp, ecx
21169
                lea     edi, [eax+edi+7EFB2A98h]
21170
                xor     ebp, ebx
21171
                ror     ebp, 7
21172
                add     ebp, edi
21173
                mov     eax, [esp+14h]
21174
                mov     [esp+18h], ebp
21175
                mov     ebx, [esp+4]
21176
                mov     ecx, [esp+8]
21177
                and     ebp, ebx
21178
                mov     edx, [esp+0Ch]
21179
                and     ebx, ecx
21180
                mov     edi, [esp+10h]
21181
                and     ecx, edx
21182
                xor     edx, 0FFFFFFFFh
21183
                and     ebx, edi
21184
                and     edi, [esp]
21185
                xor     ebx, edx
21186
                ror     eax, 0Bh
21187
                xor     ecx, edi
21188
                mov     edi, [esi+54h]
21189
                and     ebx, [esp+1Ch]
21190
                xor     ebp, ecx
21191
                lea     edi, [eax+edi-5E0E9AE3h]
21192
                xor     ebp, ebx
21193
                ror     ebp, 7
21194
                add     ebp, edi
21195
                mov     eax, [esp+10h]
21196
                mov     [esp+14h], ebp
21197
                mov     ebx, [esp]
21198
                mov     ecx, [esp+4]
21199
                and     ebp, ebx
21200
                mov     edx, [esp+8]
21201
                and     ebx, ecx
21202
                mov     edi, [esp+0Ch]
21203
                and     ecx, edx
21204
                xor     edx, 0FFFFFFFFh
21205
                and     ebx, edi
21206
                and     edi, [esp+1Ch]
21207
                xor     ebx, edx
21208
                ror     eax, 0Bh
21209
                xor     ecx, edi
21210
                mov     edi, [esi+68h]
21211
                and     ebx, [esp+18h]
21212
                xor     ebp, ecx
21213
                lea     edi, [eax+edi+39AF0176h]
21214
                xor     ebp, ebx
21215
                ror     ebp, 7
21216
                add     ebp, edi
21217
                mov     eax, [esp+0Ch]
21218
                mov     [esp+10h], ebp
21219
                mov     ebx, [esp+1Ch]
21220
                mov     ecx, [esp]
21221
                and     ebp, ebx
21222
                mov     edx, [esp+4]
21223
                and     ebx, ecx
21224
                mov     edi, [esp+8]
21225
                and     ecx, edx
21226
                xor     edx, 0FFFFFFFFh
21227
                and     ebx, edi
21228
                and     edi, [esp+18h]
21229
                xor     ebx, edx
21230
                ror     eax, 0Bh
21231
                xor     ecx, edi
21232
                mov     edi, [esi+44h]
21233
                and     ebx, [esp+14h]
21234
                xor     ebp, ecx
21235
                lea     edi, [eax+edi+66CA593Eh]
21236
                xor     ebp, ebx
21237
                ror     ebp, 7
21238
                add     ebp, edi
21239
                mov     eax, [esp+8]
21240
                mov     [esp+0Ch], ebp
21241
                mov     ebx, [esp+18h]
21242
                mov     ecx, [esp+1Ch]
21243
                and     ebp, ebx
21244
                mov     edx, [esp]
21245
                and     ebx, ecx
21246
                mov     edi, [esp+4]
21247
                and     ecx, edx
21248
                xor     edx, 0FFFFFFFFh
21249
                and     ebx, edi
21250
                and     edi, [esp+14h]
21251
                xor     ebx, edx
21252
                ror     eax, 0Bh
21253
                xor     ecx, edi
21254
                mov     edi, [esi+2Ch]
21255
                and     ebx, [esp+10h]
21256
                xor     ebp, ecx
21257
                lea     edi, [eax+edi-7DBCF178h]
21258
                xor     ebp, ebx
21259
                ror     ebp, 7
21260
                add     ebp, edi
21261
                mov     eax, [esp+4]
21262
                mov     [esp+8], ebp
21263
                mov     ebx, [esp+14h]
21264
                mov     ecx, [esp+18h]
21265
                and     ebp, ebx
21266
                mov     edx, [esp+1Ch]
21267
                and     ebx, ecx
21268
                mov     edi, [esp]
21269
                and     ecx, edx
21270
                xor     edx, 0FFFFFFFFh
21271
                and     ebx, edi
21272
                and     edi, [esp+10h]
21273
                xor     ebx, edx
21274
                ror     eax, 0Bh
21275
                xor     ecx, edi
21276
                mov     edi, [esi+50h]
21277
                and     ebx, [esp+0Ch]
21278
                xor     ebp, ecx
21279
                lea     edi, [eax+edi-731179E7h]
21280
                xor     ebp, ebx
21281
                ror     ebp, 7
21282
                add     ebp, edi
21283
                mov     eax, [esp]
21284
                mov     [esp+4], ebp
21285
                mov     ebx, [esp+10h]
21286
                mov     ecx, [esp+14h]
21287
                and     ebp, ebx
21288
                mov     edx, [esp+18h]
21289
                and     ebx, ecx
21290
                mov     edi, [esp+1Ch]
21291
                and     ecx, edx
21292
                xor     edx, 0FFFFFFFFh
21293
                and     ebx, edi
21294
                and     edi, [esp+0Ch]
21295
                xor     ebx, edx
21296
                ror     eax, 0Bh
21297
                xor     ecx, edi
21298
                mov     edi, [esi+74h]
21299
                and     ebx, [esp+8]
21300
                xor     ebp, ecx
21301
                lea     edi, [eax+edi+456F9FB4h]
21302
                xor     ebp, ebx
21303
                ror     ebp, 7
21304
                add     ebp, edi
21305
                mov     eax, [esp+1Ch]
21306
                mov     [esp], ebp
21307
                mov     ebx, [esp+0Ch]
21308
                mov     ecx, [esp+10h]
21309
                and     ebp, ebx
21310
                mov     edx, [esp+14h]
21311
                and     ebx, ecx
21312
                mov     edi, [esp+18h]
21313
                and     ecx, edx
21314
                xor     edx, 0FFFFFFFFh
21315
                and     ebx, edi
21316
                and     edi, [esp+8]
21317
                xor     ebx, edx
21318
                ror     eax, 0Bh
21319
                xor     ecx, edi
21320
                mov     edi, [esi+4Ch]
21321
                and     ebx, [esp+4]
21322
                xor     ebp, ecx
21323
                lea     edi, [eax+edi+7D84A5C3h]
21324
                xor     ebp, ebx
21325
                ror     ebp, 7
21326
                add     ebp, edi
21327
                mov     eax, [esp+18h]
21328
                mov     [esp+1Ch], ebp
21329
                mov     ebx, [esp+8]
21330
                mov     ecx, [esp+0Ch]
21331
                and     ebp, ebx
21332
                mov     edx, [esp+10h]
21333
                and     ebx, ecx
21334
                mov     edi, [esp+14h]
21335
                and     ecx, edx
21336
                xor     edx, 0FFFFFFFFh
21337
                and     ebx, edi
21338
                and     edi, [esp+4]
21339
                xor     ebx, edx
21340
                ror     eax, 0Bh
21341
                xor     ecx, edi
21342
                mov     edi, [esi]
21343
                and     ebx, [esp]
21344
                xor     ebp, ecx
21345
                lea     edi, [eax+edi+3B8B5EBEh]
21346
                xor     ebp, ebx
21347
                ror     ebp, 7
21348
                add     ebp, edi
21349
                mov     eax, [esp+14h]
21350
                mov     [esp+18h], ebp
21351
                mov     ebx, [esp+4]
21352
                mov     ecx, [esp+8]
21353
                and     ebp, ebx
21354
                mov     edx, [esp+0Ch]
21355
                and     ebx, ecx
21356
                mov     edi, [esp+10h]
21357
                and     ecx, edx
21358
                xor     edx, 0FFFFFFFFh
21359
                and     ebx, edi
21360
                and     edi, [esp]
21361
                xor     ebx, edx
21362
                ror     eax, 0Bh
21363
                xor     ecx, edi
21364
                mov     edi, [esi+30h]
21365
                and     ebx, [esp+1Ch]
21366
                xor     ebp, ecx
21367
                lea     edi, [eax+edi-1F908A28h]
21368
                xor     ebp, ebx
21369
                ror     ebp, 7
21370
                add     ebp, edi
21371
                mov     eax, [esp+10h]
21372
                mov     [esp+14h], ebp
21373
                mov     ebx, [esp]
21374
                mov     ecx, [esp+4]
21375
                and     ebp, ebx
21376
                mov     edx, [esp+8]
21377
                and     ebx, ecx
21378
                mov     edi, [esp+0Ch]
21379
                and     ecx, edx
21380
                xor     edx, 0FFFFFFFFh
21381
                and     ebx, edi
21382
                and     edi, [esp+1Ch]
21383
                xor     ebx, edx
21384
                ror     eax, 0Bh
21385
                xor     ecx, edi
21386
                mov     edi, [esi+1Ch]
21387
                and     ebx, [esp+18h]
21388
                xor     ebp, ecx
21389
                lea     edi, [eax+edi-7A3EDF8Dh]
21390
                xor     ebp, ebx
21391
                ror     ebp, 7
21392
                add     ebp, edi
21393
                mov     eax, [esp+0Ch]
21394
                mov     [esp+10h], ebp
21395
                mov     ebx, [esp+1Ch]
21396
                mov     ecx, [esp]
21397
                and     ebp, ebx
21398
                mov     edx, [esp+4]
21399
                and     ebx, ecx
21400
                mov     edi, [esp+8]
21401
                and     ecx, edx
21402
                xor     edx, 0FFFFFFFFh
21403
                and     ebx, edi
21404
                and     edi, [esp+18h]
21405
                xor     ebx, edx
21406
                ror     eax, 0Bh
21407
                xor     ecx, edi
21408
                mov     edi, [esi+34h]
21409
                and     ebx, [esp+14h]
21410
                xor     ebp, ecx
21411
                lea     edi, [eax+edi+401A449Fh]
21412
                xor     ebp, ebx
21413
                ror     ebp, 7
21414
                add     ebp, edi
21415
                mov     eax, [esp+8]
21416
                mov     [esp+0Ch], ebp
21417
                mov     ebx, [esp+18h]
21418
                mov     ecx, [esp+1Ch]
21419
                and     ebp, ebx
21420
                mov     edx, [esp]
21421
                and     ebx, ecx
21422
                mov     edi, [esp+4]
21423
                and     ecx, edx
21424
                xor     edx, 0FFFFFFFFh
21425
                and     ebx, edi
21426
                and     edi, [esp+14h]
21427
                xor     ebx, edx
21428
                ror     eax, 0Bh
21429
                xor     ecx, edi
21430
                mov     edi, [esi+20h]
21431
                and     ebx, [esp+10h]
21432
                xor     ebp, ecx
21433
                lea     edi, [eax+edi+56C16AA6h]
21434
                xor     ebp, ebx
21435
                ror     ebp, 7
21436
                add     ebp, edi
21437
                mov     eax, [esp+4]
21438
                mov     [esp+8], ebp
21439
                mov     ebx, [esp+14h]
21440
                mov     ecx, [esp+18h]
21441
                and     ebp, ebx
21442
                mov     edx, [esp+1Ch]
21443
                and     ebx, ecx
21444
                mov     edi, [esp]
21445
                and     ecx, edx
21446
                xor     edx, 0FFFFFFFFh
21447
                and     ebx, edi
21448
                and     edi, [esp+10h]
21449
                xor     ebx, edx
21450
                ror     eax, 0Bh
21451
                xor     ecx, edi
21452
                mov     edi, [esi+7Ch]
21453
                and     ebx, [esp+0Ch]
21454
                xor     ebp, ecx
21455
                lea     edi, [eax+edi+4ED3AA62h]
21456
                xor     ebp, ebx
21457
                ror     ebp, 7
21458
                add     ebp, edi
21459
                mov     eax, [esp]
21460
                mov     [esp+4], ebp
21461
                mov     ebx, [esp+10h]
21462
                mov     ecx, [esp+14h]
21463
                and     ebp, ebx
21464
                mov     edx, [esp+18h]
21465
                and     ebx, ecx
21466
                mov     edi, [esp+1Ch]
21467
                and     ecx, edx
21468
                xor     edx, 0FFFFFFFFh
21469
                and     ebx, edi
21470
                and     edi, [esp+0Ch]
21471
                xor     ebx, edx
21472
                ror     eax, 0Bh
21473
                xor     ecx, edi
21474
                mov     edi, [esi+28h]
21475
                and     ebx, [esp+8]
21476
                xor     ebp, ecx
21477
                lea     edi, [eax+edi+363F7706h]
21478
                xor     ebp, ebx
21479
                ror     ebp, 7
21480
                add     ebp, edi
21481
                mov     eax, [esp+1Ch]
21482
                mov     [esp], ebp
21483
                mov     ebx, [esp+0Ch]
21484
                mov     ecx, [esp+10h]
21485
                and     ebp, ebx
21486
                mov     edx, [esp+14h]
21487
                and     ebx, ecx
21488
                mov     edi, [esp+18h]
21489
                and     ecx, edx
21490
                xor     edx, 0FFFFFFFFh
21491
                and     ebx, edi
21492
                and     edi, [esp+8]
21493
                xor     ebx, edx
21494
                ror     eax, 0Bh
21495
                xor     ecx, edi
21496
                mov     edi, [esi+14h]
21497
                and     ebx, [esp+4]
21498
                xor     ebp, ecx
21499
                lea     edi, [eax+edi+1BFEDF72h]
21500
                xor     ebp, ebx
21501
                ror     ebp, 7
21502
                add     ebp, edi
21503
                mov     eax, [esp+18h]
21504
                mov     [esp+1Ch], ebp
21505
                mov     ebx, [esp+8]
21506
                mov     ecx, [esp+0Ch]
21507
                and     ebp, ebx
21508
                mov     edx, [esp+10h]
21509
                and     ebx, ecx
21510
                mov     edi, [esp+14h]
21511
                and     ecx, edx
21512
                xor     edx, 0FFFFFFFFh
21513
                and     ebx, edi
21514
                and     edi, [esp+4]
21515
                xor     ebx, edx
21516
                ror     eax, 0Bh
21517
                xor     ecx, edi
21518
                mov     edi, [esi+24h]
21519
                and     ebx, [esp]
21520
                xor     ebp, ecx
21521
                lea     edi, [eax+edi+429B023Dh]
21522
                xor     ebp, ebx
21523
                ror     ebp, 7
21524
                add     ebp, edi
21525
                mov     eax, [esp+14h]
21526
                mov     [esp+18h], ebp
21527
                mov     ebx, [esp+4]
21528
                mov     ecx, [esp+8]
21529
                and     ebp, ebx
21530
                mov     edx, [esp+0Ch]
21531
                and     ebx, ecx
21532
                mov     edi, [esp+10h]
21533
                and     ecx, edx
21534
                xor     edx, 0FFFFFFFFh
21535
                and     ebx, edi
21536
                and     edi, [esp]
21537
                xor     ebx, edx
21538
                ror     eax, 0Bh
21539
                xor     ecx, edi
21540
                mov     edi, [esi+38h]
21541
                and     ebx, [esp+1Ch]
21542
                xor     ebp, ecx
21543
                lea     edi, [eax+edi+37D0D724h]
21544
                xor     ebp, ebx
21545
                ror     ebp, 7
21546
                add     ebp, edi
21547
                mov     eax, [esp+10h]
21548
                mov     [esp+14h], ebp
21549
                mov     ebx, [esp]
21550
                mov     ecx, [esp+4]
21551
                and     ebp, ebx
21552
                mov     edx, [esp+8]
21553
                and     ebx, ecx
21554
                mov     edi, [esp+0Ch]
21555
                and     ecx, edx
21556
                xor     edx, 0FFFFFFFFh
21557
                and     ebx, edi
21558
                and     edi, [esp+1Ch]
21559
                xor     ebx, edx
21560
                ror     eax, 0Bh
21561
                xor     ecx, edi
21562
                mov     edi, [esi+78h]
21563
                and     ebx, [esp+18h]
21564
                xor     ebp, ecx
21565
                lea     edi, [eax+edi-2FF5EDB8h]
21566
                xor     ebp, ebx
21567
                ror     ebp, 7
21568
                add     ebp, edi
21569
                mov     eax, [esp+0Ch]
21570
                mov     [esp+10h], ebp
21571
                mov     ebx, [esp+1Ch]
21572
                mov     ecx, [esp]
21573
                and     ebp, ebx
21574
                mov     edx, [esp+4]
21575
                and     ebx, ecx
21576
                mov     edi, [esp+8]
21577
                and     ecx, edx
21578
                xor     edx, 0FFFFFFFFh
21579
                and     ebx, edi
21580
                and     edi, [esp+18h]
21581
                xor     ebx, edx
21582
                ror     eax, 0Bh
21583
                xor     ecx, edi
21584
                mov     edi, [esi+48h]
21585
                and     ebx, [esp+14h]
21586
                xor     ebp, ecx
21587
                lea     edi, [eax+edi-24F0152Dh]
21588
                xor     ebp, ebx
21589
                ror     ebp, 7
21590
                add     ebp, edi
21591
                mov     eax, [esp+8]
21592
                mov     [esp+0Ch], ebp
21593
                mov     ebx, [esp+18h]
21594
                mov     ecx, [esp+1Ch]
21595
                and     ebp, ebx
21596
                mov     edx, [esp]
21597
                and     ebx, ecx
21598
                mov     edi, [esp+4]
21599
                and     ecx, edx
21600
                xor     edx, 0FFFFFFFFh
21601
                and     ebx, edi
21602
                and     edi, [esp+14h]
21603
                xor     ebx, edx
21604
                ror     eax, 0Bh
21605
                xor     ecx, edi
21606
                mov     edi, [esi+18h]
21607
                and     ebx, [esp+10h]
21608
                xor     ebp, ecx
21609
                lea     edi, [eax+edi+49F1C09Bh]
21610
                xor     ebp, ebx
21611
                ror     ebp, 7
21612
                add     ebp, edi
21613
                mov     eax, [esp+4]
21614
                mov     [esp+8], ebp
21615
                mov     ebx, [esp+14h]
21616
                mov     ecx, [esp+18h]
21617
                and     ebp, ebx
21618
                mov     edx, [esp+1Ch]
21619
                and     ebx, ecx
21620
                mov     edi, [esp]
21621
                and     ecx, edx
21622
                xor     edx, 0FFFFFFFFh
21623
                and     ebx, edi
21624
                and     edi, [esp+10h]
21625
                xor     ebx, edx
21626
                ror     eax, 0Bh
21627
                xor     ecx, edi
21628
                mov     edi, [esi+70h]
21629
                and     ebx, [esp+0Ch]
21630
                xor     ebp, ecx
21631
                lea     edi, [eax+edi+75372C9h]
21632
                xor     ebp, ebx
21633
                ror     ebp, 7
21634
                add     ebp, edi
21635
                mov     eax, [esp]
21636
                mov     [esp+4], ebp
21637
                mov     ebx, [esp+10h]
21638
                mov     ecx, [esp+14h]
21639
                and     ebp, ebx
21640
                mov     edx, [esp+18h]
21641
                and     ebx, ecx
21642
                mov     edi, [esp+1Ch]
21643
                and     ecx, edx
21644
                xor     edx, 0FFFFFFFFh
21645
                and     ebx, edi
21646
                and     edi, [esp+0Ch]
21647
                xor     ebx, edx
21648
                ror     eax, 0Bh
21649
                xor     ecx, edi
21650
                mov     edi, [esi+60h]
21651
                and     ebx, [esp+8]
21652
                xor     ebp, ecx
21653
                lea     edi, [eax+edi-7F66E485h]
21654
                xor     ebp, ebx
21655
                ror     ebp, 7
21656
                add     ebp, edi
21657
                mov     eax, [esp+1Ch]
21658
                mov     [esp], ebp
21659
                mov     ebx, [esp+0Ch]
21660
                mov     ecx, [esp+10h]
21661
                and     ebp, ebx
21662
                mov     edx, [esp+14h]
21663
                and     ebx, ecx
21664
                mov     edi, [esp+18h]
21665
                and     ecx, edx
21666
                xor     edx, 0FFFFFFFFh
21667
                and     ebx, edi
21668
                and     edi, [esp+8]
21669
                xor     ebx, edx
21670
                ror     eax, 0Bh
21671
                xor     ecx, edi
21672
                mov     edi, [esi+8]
21673
                and     ebx, [esp+4]
21674
                xor     ebp, ecx
21675
                lea     edi, [eax+edi+25D479D8h]
21676
                xor     ebp, ebx
21677
                ror     ebp, 7
21678
                add     ebp, edi
21679
                mov     eax, [esp+18h]
21680
                mov     [esp+1Ch], ebp
21681
                mov     ebx, [esp+8]
21682
                mov     ecx, [esp+0Ch]
21683
                and     ebp, ebx
21684
                mov     edx, [esp+10h]
21685
                and     ebx, ecx
21686
                mov     edi, [esp+14h]
21687
                and     ecx, edx
21688
                xor     edx, 0FFFFFFFFh
21689
                and     ebx, edi
21690
                and     edi, [esp+4]
21691
                xor     ebx, edx
21692
                ror     eax, 0Bh
21693
                xor     ecx, edi
21694
                mov     edi, [esi+5Ch]
21695
                and     ebx, [esp]
21696
                xor     ebp, ecx
21697
                lea     edi, [eax+edi-9172109h]
21698
                xor     ebp, ebx
21699
                ror     ebp, 7
21700
                add     ebp, edi
21701
                mov     eax, [esp+14h]
21702
                mov     [esp+18h], ebp
21703
                mov     ebx, [esp+4]
21704
                mov     ecx, [esp+8]
21705
                and     ebp, ebx
21706
                mov     edx, [esp+0Ch]
21707
                and     ebx, ecx
21708
                mov     edi, [esp+10h]
21709
                and     ecx, edx
21710
                xor     edx, 0FFFFFFFFh
21711
                and     ebx, edi
21712
                and     edi, [esp]
21713
                xor     ebx, edx
21714
                ror     eax, 0Bh
21715
                xor     ecx, edi
21716
                mov     edi, [esi+40h]
21717
                and     ebx, [esp+1Ch]
21718
                xor     ebp, ecx
21719
                lea     edi, [eax+edi-1C01AFE6h]
21720
                xor     ebp, ebx
21721
                ror     ebp, 7
21722
                add     ebp, edi
21723
                mov     eax, [esp+10h]
21724
                mov     [esp+14h], ebp
21725
                mov     ebx, [esp]
21726
                mov     ecx, [esp+4]
21727
                and     ebp, ebx
21728
                mov     edx, [esp+8]
21729
                and     ebx, ecx
21730
                mov     edi, [esp+0Ch]
21731
                and     ecx, edx
21732
                xor     edx, 0FFFFFFFFh
21733
                and     ebx, edi
21734
                and     edi, [esp+1Ch]
21735
                xor     ebx, edx
21736
                ror     eax, 0Bh
21737
                xor     ecx, edi
21738
                mov     edi, [esi+58h]
21739
                and     ebx, [esp+18h]
21740
                xor     ebp, ecx
21741
                lea     edi, [eax+edi-4986B3C5h]
21742
                xor     ebp, ebx
21743
                ror     ebp, 7
21744
                add     ebp, edi
21745
                mov     eax, [esp+0Ch]
21746
                mov     [esp+10h], ebp
21747
                mov     ebx, [esp+1Ch]
21748
                mov     ecx, [esp]
21749
                and     ebp, ebx
21750
                mov     edx, [esp+4]
21751
                and     ebx, ecx
21752
                mov     edi, [esp+8]
21753
                and     ecx, edx
21754
                xor     edx, 0FFFFFFFFh
21755
                and     ebx, edi
21756
                and     edi, [esp+18h]
21757
                xor     ebx, edx
21758
                ror     eax, 0Bh
21759
                xor     ecx, edi
21760
                mov     edi, [esi+10h]
21761
                and     ebx, [esp+14h]
21762
                xor     ebp, ecx
21763
                lea     edi, [eax+edi-68931F43h]
21764
                xor     ebp, ebx
21765
                ror     ebp, 7
21766
                add     ebp, edi
21767
                mov     eax, [esp+8]
21768
                mov     [esp+0Ch], ebp
21769
                mov     ebx, [esp+18h]
21770
                mov     ecx, [esp+1Ch]
21771
                and     ebp, ebx
21772
                mov     edx, [esp]
21773
                and     ebx, ecx
21774
                mov     edi, [esp+4]
21775
                and     ecx, edx
21776
                xor     edx, 0FFFFFFFFh
21777
                and     ebx, edi
21778
                and     edi, [esp+14h]
21779
                xor     ebx, edx
21780
                ror     eax, 0Bh
21781
                xor     ecx, edi
21782
                mov     edi, [esi+4]
21783
                and     ebx, [esp+10h]
21784
                xor     ebp, ecx
21785
                lea     edi, [eax+edi+4C006BAh]
21786
                xor     ebp, ebx
21787
                ror     ebp, 7
21788
                add     ebp, edi
21789
                mov     eax, [esp+4]
21790
                mov     [esp+8], ebp
21791
                mov     ebx, [esp+14h]
21792
                mov     ecx, [esp+18h]
21793
                and     ebp, ebx
21794
                mov     edx, [esp+1Ch]
21795
                and     ebx, ecx
21796
                mov     edi, [esp]
21797
                and     ecx, edx
21798
                xor     edx, 0FFFFFFFFh
21799
                and     ebx, edi
21800
                and     edi, [esp+10h]
21801
                xor     ebx, edx
21802
                ror     eax, 0Bh
21803
                xor     ecx, edi
21804
                mov     edi, [esi+64h]
21805
                and     ebx, [esp+0Ch]
21806
                xor     ebp, ecx
21807
                lea     edi, [eax+edi-3E56B04Ah]
21808
                xor     ebp, ebx
21809
                ror     ebp, 7
21810
                add     ebp, edi
21811
                mov     eax, [esp]
21812
                mov     [esp+4], ebp
21813
                mov     ebx, [esp+10h]
21814
                mov     ecx, [esp+14h]
21815
                and     ebp, ebx
21816
                mov     edx, [esp+18h]
21817
                and     ebx, ecx
21818
                mov     edi, [esp+1Ch]
21819
                and     ecx, edx
21820
                xor     edx, 0FFFFFFFFh
21821
                and     ebx, edi
21822
                and     edi, [esp+0Ch]
21823
                xor     ebx, edx
21824
                ror     eax, 0Bh
21825
                xor     ecx, edi
21826
                mov     edi, [esi+3Ch]
21827
                and     ebx, [esp+8]
21828
                xor     ebp, ecx
21829
                lea     edi, [eax+edi+409F60C4h]
21830
                xor     ebp, ebx
21831
                ror     ebp, 7
21832
                add     ebp, edi
21833
                mov     eax, [esp+1Ch]
21834
                mov     [esp], ebp
21835
                mov     edi, [esp+24h]
21836
                mov     eax, [esp]
21837
                mov     ebx, [esp+4]
21838
                add     [edi], eax
21839
                add     [edi+4], ebx
21840
                mov     ecx, [esp+8]
21841
                mov     edx, [esp+0Ch]
21842
                add     [edi+8], ecx
21843
                add     [edi+0Ch], edx
21844
                mov     eax, [esp+10h]
21845
                mov     ebx, [esp+14h]
21846
                add     [edi+10h], eax
21847
                add     [edi+14h], ebx
21848
                mov     ebp, [esp+28h]
21849
                mov     ecx, [esp+18h]
21850
                mov     edx, [esp+1Ch]
21851
                mov     esp, ebp
21852
                add     [edi+18h], ecx
21853
                add     [edi+1Ch], edx
21854
                pop     ebp
21855
                pop     edi
21856
                pop     esi
21857
                pop     ebx
21858
end;
21859
{$ENDIF}
21860
21861
{$IFDEF THash_Tiger_asm}
21862
procedure THash_Tiger.DoTransform(Buffer: PUInt32Array);
21863
asm
21864
                push    ebx
21865
                push    esi
21866
                push    edi
21867
                lea     edi, [eax].THash_Tiger.FDigest
21868
                mov     esi, edx
21869
                push    ebp
21870
                mov     ebp, [eax].THash_Tiger.FRounds
21871
                lea     eax, Tiger_Data
21872
21873
                mov     ecx, esp
21874
                add     esp, 0FFFFFF94h
21875
                and     esp, 0FFFFFFC0h
21876
                sub     ebp, 3
21877
                mov     [esp+58h], esi
21878
                mov     [esp+5Ch], edi
21879
                mov     [esp+60h], ebp
21880
                mov     [esp+64h], eax
21881
                mov     [esp+68h], ecx
21882
                mov     eax, [esi]
21883
                mov     ebx, [esi+4]
21884
                mov     [esp], eax
21885
                mov     [esp+4], ebx
21886
                mov     ecx, [esi+8]
21887
                mov     edx, [esi+0Ch]
21888
                mov     [esp+8], ecx
21889
                mov     [esp+0Ch], edx
21890
                mov     eax, [esi+10h]
21891
                mov     ebx, [esi+14h]
21892
                mov     [esp+10h], eax
21893
                mov     [esp+14h], ebx
21894
                mov     ecx, [esi+18h]
21895
                mov     edx, [esi+1Ch]
21896
                mov     [esp+18h], ecx
21897
                mov     [esp+1Ch], edx
21898
                mov     eax, [esi+20h]
21899
                mov     ebx, [esi+24h]
21900
                mov     [esp+20h], eax
21901
                mov     [esp+24h], ebx
21902
                mov     ecx, [esi+28h]
21903
                mov     edx, [esi+2Ch]
21904
                mov     [esp+28h], ecx
21905
                mov     [esp+2Ch], edx
21906
                mov     eax, [esi+30h]
21907
                mov     ebx, [esi+34h]
21908
                mov     [esp+30h], eax
21909
                mov     [esp+34h], ebx
21910
                mov     ecx, [esi+38h]
21911
                mov     edx, [esi+3Ch]
21912
                mov     [esp+38h], ecx
21913
                mov     [esp+3Ch], edx
21914
                mov     eax, [edi]
21915
                mov     ebx, [edi+4]
21916
                mov     [esp+40h], eax
21917
                mov     [esp+44h], ebx
21918
                mov     ecx, [edi+8]
21919
                mov     edx, [edi+0Ch]
21920
                mov     [esp+48h], ecx
21921
                mov     [esp+4Ch], edx
21922
                mov     eax, [edi+10h]
21923
                mov     ebx, [edi+14h]
21924
                mov     [esp+50h], eax
21925
                mov     [esp+54h], ebx
21926
                mov     esi, [esp+64h]
21927
                mov     eax, [esp]
21928
                mov     ebx, [esp+4]
21929
                mov     ecx, [esp+50h]
21930
                mov     edx, [esp+54h]
21931
                xor     eax, ecx
21932
                xor     ebx, edx
21933
                mov     edi, eax
21934
                mov     [esp+50h], eax
21935
                shr     eax, 0Dh
21936
                mov     ebp, ebx
21937
                and     edi, 0FFh
21938
                mov     [esp+54h], ebx
21939
                shl     edi, 3
21940
                and     ebp, 0FFh
21941
                shr     ebx, 0Dh
21942
                and     eax, 7F8h
21943
                shl     ebp, 3
21944
                mov     ecx, [esi+edi]
21945
                mov     edx, [esi+edi+4]
21946
                xor     ecx, [esi+eax+800h]
21947
                xor     edx, [esi+eax+804h]
21948
                and     ebx, 7F8h
21949
                xor     ecx, [esi+ebp+1000h]
21950
                xor     edx, [esi+ebp+1004h]
21951
                xor     ecx, [esi+ebx+1800h]
21952
                xor     edx, [esi+ebx+1804h]
21953
                mov     edi, [esp+40h]
21954
                mov     ebp, [esp+44h]
21955
                sub     edi, ecx
21956
                mov     eax, [esp+50h]
21957
                sbb     ebp, edx
21958
                mov     ebx, [esp+54h]
21959
                mov     [esp+40h], edi
21960
                mov     edi, eax
21961
                shr     eax, 5
21962
                mov     [esp+44h], ebp
21963
                shr     edi, 15h
21964
                mov     ebp, ebx
21965
                shr     ebx, 5
21966
                and     eax, 7F8h
21967
                shr     ebp, 15h
21968
                and     edi, 7F8h
21969
                and     ebx, 7F8h
21970
                mov     ecx, [esi+eax+1800h]
21971
                mov     edx, [esi+eax+1804h]
21972
                xor     ecx, [esi+edi+1000h]
21973
                and     ebp, 7F8h
21974
                xor     edx, [esi+edi+1004h]
21975
                xor     ecx, [esi+ebx+800h]
21976
                xor     edx, [esi+ebx+804h]
21977
                xor     ecx, [esi+ebp]
21978
                xor     edx, [esi+ebp+4]
21979
                mov     eax, [esp+48h]
21980
                mov     ebx, [esp+4Ch]
21981
                add     eax, ecx
21982
                adc     ebx, edx
21983
                mov     ecx, eax
21984
                shr     ecx, 1Eh
21985
                mov     ebp, ebx
21986
                shl     ebx, 2
21987
                mov     edi, eax
21988
                shl     eax, 2
21989
                or      ebx, ecx
21990
                add     eax, edi
21991
                adc     ebx, ebp
21992
                mov     [esp+48h], eax
21993
                mov     [esp+4Ch], ebx
21994
                mov     eax, [esp+8]
21995
                mov     ebx, [esp+0Ch]
21996
                mov     ecx, [esp+40h]
21997
                mov     edx, [esp+44h]
21998
                xor     eax, ecx
21999
                xor     ebx, edx
22000
                mov     edi, eax
22001
                mov     [esp+40h], eax
22002
                shr     eax, 0Dh
22003
                mov     ebp, ebx
22004
                and     edi, 0FFh
22005
                mov     [esp+44h], ebx
22006
                shl     edi, 3
22007
                and     ebp, 0FFh
22008
                shr     ebx, 0Dh
22009
                and     eax, 7F8h
22010
                shl     ebp, 3
22011
                mov     ecx, [esi+edi]
22012
                mov     edx, [esi+edi+4]
22013
                xor     ecx, [esi+eax+800h]
22014
                xor     edx, [esi+eax+804h]
22015
                and     ebx, 7F8h
22016
                xor     ecx, [esi+ebp+1000h]
22017
                xor     edx, [esi+ebp+1004h]
22018
                xor     ecx, [esi+ebx+1800h]
22019
                xor     edx, [esi+ebx+1804h]
22020
                mov     edi, [esp+48h]
22021
                mov     ebp, [esp+4Ch]
22022
                sub     edi, ecx
22023
                mov     eax, [esp+40h]
22024
                sbb     ebp, edx
22025
                mov     ebx, [esp+44h]
22026
                mov     [esp+48h], edi
22027
                mov     edi, eax
22028
                shr     eax, 5
22029
                mov     [esp+4Ch], ebp
22030
                shr     edi, 15h
22031
                mov     ebp, ebx
22032
                shr     ebx, 5
22033
                and     eax, 7F8h
22034
                shr     ebp, 15h
22035
                and     edi, 7F8h
22036
                and     ebx, 7F8h
22037
                mov     ecx, [esi+eax+1800h]
22038
                mov     edx, [esi+eax+1804h]
22039
                xor     ecx, [esi+edi+1000h]
22040
                and     ebp, 7F8h
22041
                xor     edx, [esi+edi+1004h]
22042
                xor     ecx, [esi+ebx+800h]
22043
                xor     edx, [esi+ebx+804h]
22044
                xor     ecx, [esi+ebp]
22045
                xor     edx, [esi+ebp+4]
22046
                mov     eax, [esp+50h]
22047
                mov     ebx, [esp+54h]
22048
                add     eax, ecx
22049
                adc     ebx, edx
22050
                mov     ecx, eax
22051
                shr     ecx, 1Eh
22052
                mov     ebp, ebx
22053
                shl     ebx, 2
22054
                mov     edi, eax
22055
                shl     eax, 2
22056
                or      ebx, ecx
22057
                add     eax, edi
22058
                adc     ebx, ebp
22059
                mov     [esp+50h], eax
22060
                mov     [esp+54h], ebx
22061
                mov     eax, [esp+10h]
22062
                mov     ebx, [esp+14h]
22063
                mov     ecx, [esp+48h]
22064
                mov     edx, [esp+4Ch]
22065
                xor     eax, ecx
22066
                xor     ebx, edx
22067
                mov     edi, eax
22068
                mov     [esp+48h], eax
22069
                shr     eax, 0Dh
22070
                mov     ebp, ebx
22071
                and     edi, 0FFh
22072
                mov     [esp+4Ch], ebx
22073
                shl     edi, 3
22074
                and     ebp, 0FFh
22075
                shr     ebx, 0Dh
22076
                and     eax, 7F8h
22077
                shl     ebp, 3
22078
                mov     ecx, [esi+edi]
22079
                mov     edx, [esi+edi+4]
22080
                xor     ecx, [esi+eax+800h]
22081
                xor     edx, [esi+eax+804h]
22082
                and     ebx, 7F8h
22083
                xor     ecx, [esi+ebp+1000h]
22084
                xor     edx, [esi+ebp+1004h]
22085
                xor     ecx, [esi+ebx+1800h]
22086
                xor     edx, [esi+ebx+1804h]
22087
                mov     edi, [esp+50h]
22088
                mov     ebp, [esp+54h]
22089
                sub     edi, ecx
22090
                mov     eax, [esp+48h]
22091
                sbb     ebp, edx
22092
                mov     ebx, [esp+4Ch]
22093
                mov     [esp+50h], edi
22094
                mov     edi, eax
22095
                shr     eax, 5
22096
                mov     [esp+54h], ebp
22097
                shr     edi, 15h
22098
                mov     ebp, ebx
22099
                shr     ebx, 5
22100
                and     eax, 7F8h
22101
                shr     ebp, 15h
22102
                and     edi, 7F8h
22103
                and     ebx, 7F8h
22104
                mov     ecx, [esi+eax+1800h]
22105
                mov     edx, [esi+eax+1804h]
22106
                xor     ecx, [esi+edi+1000h]
22107
                and     ebp, 7F8h
22108
                xor     edx, [esi+edi+1004h]
22109
                xor     ecx, [esi+ebx+800h]
22110
                xor     edx, [esi+ebx+804h]
22111
                xor     ecx, [esi+ebp]
22112
                xor     edx, [esi+ebp+4]
22113
                mov     eax, [esp+40h]
22114
                mov     ebx, [esp+44h]
22115
                add     eax, ecx
22116
                adc     ebx, edx
22117
                mov     ecx, eax
22118
                shr     ecx, 1Eh
22119
                mov     ebp, ebx
22120
                shl     ebx, 2
22121
                mov     edi, eax
22122
                shl     eax, 2
22123
                or      ebx, ecx
22124
                add     eax, edi
22125
                adc     ebx, ebp
22126
                mov     [esp+40h], eax
22127
                mov     [esp+44h], ebx
22128
                mov     eax, [esp+18h]
22129
                mov     ebx, [esp+1Ch]
22130
                mov     ecx, [esp+50h]
22131
                mov     edx, [esp+54h]
22132
                xor     eax, ecx
22133
                xor     ebx, edx
22134
                mov     edi, eax
22135
                mov     [esp+50h], eax
22136
                shr     eax, 0Dh
22137
                mov     ebp, ebx
22138
                and     edi, 0FFh
22139
                mov     [esp+54h], ebx
22140
                shl     edi, 3
22141
                and     ebp, 0FFh
22142
                shr     ebx, 0Dh
22143
                and     eax, 7F8h
22144
                shl     ebp, 3
22145
                mov     ecx, [esi+edi]
22146
                mov     edx, [esi+edi+4]
22147
                xor     ecx, [esi+eax+800h]
22148
                xor     edx, [esi+eax+804h]
22149
                and     ebx, 7F8h
22150
                xor     ecx, [esi+ebp+1000h]
22151
                xor     edx, [esi+ebp+1004h]
22152
                xor     ecx, [esi+ebx+1800h]
22153
                xor     edx, [esi+ebx+1804h]
22154
                mov     edi, [esp+40h]
22155
                mov     ebp, [esp+44h]
22156
                sub     edi, ecx
22157
                mov     eax, [esp+50h]
22158
                sbb     ebp, edx
22159
                mov     ebx, [esp+54h]
22160
                mov     [esp+40h], edi
22161
                mov     edi, eax
22162
                shr     eax, 5
22163
                mov     [esp+44h], ebp
22164
                shr     edi, 15h
22165
                mov     ebp, ebx
22166
                shr     ebx, 5
22167
                and     eax, 7F8h
22168
                shr     ebp, 15h
22169
                and     edi, 7F8h
22170
                and     ebx, 7F8h
22171
                mov     ecx, [esi+eax+1800h]
22172
                mov     edx, [esi+eax+1804h]
22173
                xor     ecx, [esi+edi+1000h]
22174
                and     ebp, 7F8h
22175
                xor     edx, [esi+edi+1004h]
22176
                xor     ecx, [esi+ebx+800h]
22177
                xor     edx, [esi+ebx+804h]
22178
                xor     ecx, [esi+ebp]
22179
                xor     edx, [esi+ebp+4]
22180
                mov     eax, [esp+48h]
22181
                mov     ebx, [esp+4Ch]
22182
                add     eax, ecx
22183
                adc     ebx, edx
22184
                mov     ecx, eax
22185
                shr     ecx, 1Eh
22186
                mov     ebp, ebx
22187
                shl     ebx, 2
22188
                mov     edi, eax
22189
                shl     eax, 2
22190
                or      ebx, ecx
22191
                add     eax, edi
22192
                adc     ebx, ebp
22193
                mov     [esp+48h], eax
22194
                mov     [esp+4Ch], ebx
22195
                mov     eax, [esp+20h]
22196
                mov     ebx, [esp+24h]
22197
                mov     ecx, [esp+40h]
22198
                mov     edx, [esp+44h]
22199
                xor     eax, ecx
22200
                xor     ebx, edx
22201
                mov     edi, eax
22202
                mov     [esp+40h], eax
22203
                shr     eax, 0Dh
22204
                mov     ebp, ebx
22205
                and     edi, 0FFh
22206
                mov     [esp+44h], ebx
22207
                shl     edi, 3
22208
                and     ebp, 0FFh
22209
                shr     ebx, 0Dh
22210
                and     eax, 7F8h
22211
                shl     ebp, 3
22212
                mov     ecx, [esi+edi]
22213
                mov     edx, [esi+edi+4]
22214
                xor     ecx, [esi+eax+800h]
22215
                xor     edx, [esi+eax+804h]
22216
                and     ebx, 7F8h
22217
                xor     ecx, [esi+ebp+1000h]
22218
                xor     edx, [esi+ebp+1004h]
22219
                xor     ecx, [esi+ebx+1800h]
22220
                xor     edx, [esi+ebx+1804h]
22221
                mov     edi, [esp+48h]
22222
                mov     ebp, [esp+4Ch]
22223
                sub     edi, ecx
22224
                mov     eax, [esp+40h]
22225
                sbb     ebp, edx
22226
                mov     ebx, [esp+44h]
22227
                mov     [esp+48h], edi
22228
                mov     edi, eax
22229
                shr     eax, 5
22230
                mov     [esp+4Ch], ebp
22231
                shr     edi, 15h
22232
                mov     ebp, ebx
22233
                shr     ebx, 5
22234
                and     eax, 7F8h
22235
                shr     ebp, 15h
22236
                and     edi, 7F8h
22237
                and     ebx, 7F8h
22238
                mov     ecx, [esi+eax+1800h]
22239
                mov     edx, [esi+eax+1804h]
22240
                xor     ecx, [esi+edi+1000h]
22241
                and     ebp, 7F8h
22242
                xor     edx, [esi+edi+1004h]
22243
                xor     ecx, [esi+ebx+800h]
22244
                xor     edx, [esi+ebx+804h]
22245
                xor     ecx, [esi+ebp]
22246
                xor     edx, [esi+ebp+4]
22247
                mov     eax, [esp+50h]
22248
                mov     ebx, [esp+54h]
22249
                add     eax, ecx
22250
                adc     ebx, edx
22251
                mov     ecx, eax
22252
                shr     ecx, 1Eh
22253
                mov     ebp, ebx
22254
                shl     ebx, 2
22255
                mov     edi, eax
22256
                shl     eax, 2
22257
                or      ebx, ecx
22258
                add     eax, edi
22259
                adc     ebx, ebp
22260
                mov     [esp+50h], eax
22261
                mov     [esp+54h], ebx
22262
                mov     eax, [esp+28h]
22263
                mov     ebx, [esp+2Ch]
22264
                mov     ecx, [esp+48h]
22265
                mov     edx, [esp+4Ch]
22266
                xor     eax, ecx
22267
                xor     ebx, edx
22268
                mov     edi, eax
22269
                mov     [esp+48h], eax
22270
                shr     eax, 0Dh
22271
                mov     ebp, ebx
22272
                and     edi, 0FFh
22273
                mov     [esp+4Ch], ebx
22274
                shl     edi, 3
22275
                and     ebp, 0FFh
22276
                shr     ebx, 0Dh
22277
                and     eax, 7F8h
22278
                shl     ebp, 3
22279
                mov     ecx, [esi+edi]
22280
                mov     edx, [esi+edi+4]
22281
                xor     ecx, [esi+eax+800h]
22282
                xor     edx, [esi+eax+804h]
22283
                and     ebx, 7F8h
22284
                xor     ecx, [esi+ebp+1000h]
22285
                xor     edx, [esi+ebp+1004h]
22286
                xor     ecx, [esi+ebx+1800h]
22287
                xor     edx, [esi+ebx+1804h]
22288
                mov     edi, [esp+50h]
22289
                mov     ebp, [esp+54h]
22290
                sub     edi, ecx
22291
                mov     eax, [esp+48h]
22292
                sbb     ebp, edx
22293
                mov     ebx, [esp+4Ch]
22294
                mov     [esp+50h], edi
22295
                mov     edi, eax
22296
                shr     eax, 5
22297
                mov     [esp+54h], ebp
22298
                shr     edi, 15h
22299
                mov     ebp, ebx
22300
                shr     ebx, 5
22301
                and     eax, 7F8h
22302
                shr     ebp, 15h
22303
                and     edi, 7F8h
22304
                and     ebx, 7F8h
22305
                mov     ecx, [esi+eax+1800h]
22306
                mov     edx, [esi+eax+1804h]
22307
                xor     ecx, [esi+edi+1000h]
22308
                and     ebp, 7F8h
22309
                xor     edx, [esi+edi+1004h]
22310
                xor     ecx, [esi+ebx+800h]
22311
                xor     edx, [esi+ebx+804h]
22312
                xor     ecx, [esi+ebp]
22313
                xor     edx, [esi+ebp+4]
22314
                mov     eax, [esp+40h]
22315
                mov     ebx, [esp+44h]
22316
                add     eax, ecx
22317
                adc     ebx, edx
22318
                mov     ecx, eax
22319
                shr     ecx, 1Eh
22320
                mov     ebp, ebx
22321
                shl     ebx, 2
22322
                mov     edi, eax
22323
                shl     eax, 2
22324
                or      ebx, ecx
22325
                add     eax, edi
22326
                adc     ebx, ebp
22327
                mov     [esp+40h], eax
22328
                mov     [esp+44h], ebx
22329
                mov     eax, [esp+30h]
22330
                mov     ebx, [esp+34h]
22331
                mov     ecx, [esp+50h]
22332
                mov     edx, [esp+54h]
22333
                xor     eax, ecx
22334
                xor     ebx, edx
22335
                mov     edi, eax
22336
                mov     [esp+50h], eax
22337
                shr     eax, 0Dh
22338
                mov     ebp, ebx
22339
                and     edi, 0FFh
22340
                mov     [esp+54h], ebx
22341
                shl     edi, 3
22342
                and     ebp, 0FFh
22343
                shr     ebx, 0Dh
22344
                and     eax, 7F8h
22345
                shl     ebp, 3
22346
                mov     ecx, [esi+edi]
22347
                mov     edx, [esi+edi+4]
22348
                xor     ecx, [esi+eax+800h]
22349
                xor     edx, [esi+eax+804h]
22350
                and     ebx, 7F8h
22351
                xor     ecx, [esi+ebp+1000h]
22352
                xor     edx, [esi+ebp+1004h]
22353
                xor     ecx, [esi+ebx+1800h]
22354
                xor     edx, [esi+ebx+1804h]
22355
                mov     edi, [esp+40h]
22356
                mov     ebp, [esp+44h]
22357
                sub     edi, ecx
22358
                mov     eax, [esp+50h]
22359
                sbb     ebp, edx
22360
                mov     ebx, [esp+54h]
22361
                mov     [esp+40h], edi
22362
                mov     edi, eax
22363
                shr     eax, 5
22364
                mov     [esp+44h], ebp
22365
                shr     edi, 15h
22366
                mov     ebp, ebx
22367
                shr     ebx, 5
22368
                and     eax, 7F8h
22369
                shr     ebp, 15h
22370
                and     edi, 7F8h
22371
                and     ebx, 7F8h
22372
                mov     ecx, [esi+eax+1800h]
22373
                mov     edx, [esi+eax+1804h]
22374
                xor     ecx, [esi+edi+1000h]
22375
                and     ebp, 7F8h
22376
                xor     edx, [esi+edi+1004h]
22377
                xor     ecx, [esi+ebx+800h]
22378
                xor     edx, [esi+ebx+804h]
22379
                xor     ecx, [esi+ebp]
22380
                xor     edx, [esi+ebp+4]
22381
                mov     eax, [esp+48h]
22382
                mov     ebx, [esp+4Ch]
22383
                add     eax, ecx
22384
                adc     ebx, edx
22385
                mov     ecx, eax
22386
                shr     ecx, 1Eh
22387
                mov     ebp, ebx
22388
                shl     ebx, 2
22389
                mov     edi, eax
22390
                shl     eax, 2
22391
                or      ebx, ecx
22392
                add     eax, edi
22393
                adc     ebx, ebp
22394
                mov     [esp+48h], eax
22395
                mov     [esp+4Ch], ebx
22396
                mov     eax, [esp+38h]
22397
                mov     ebx, [esp+3Ch]
22398
                mov     ecx, [esp+40h]
22399
                mov     edx, [esp+44h]
22400
                xor     eax, ecx
22401
                xor     ebx, edx
22402
                mov     edi, eax
22403
                mov     [esp+40h], eax
22404
                shr     eax, 0Dh
22405
                mov     ebp, ebx
22406
                and     edi, 0FFh
22407
                mov     [esp+44h], ebx
22408
                shl     edi, 3
22409
                and     ebp, 0FFh
22410
                shr     ebx, 0Dh
22411
                and     eax, 7F8h
22412
                shl     ebp, 3
22413
                mov     ecx, [esi+edi]
22414
                mov     edx, [esi+edi+4]
22415
                xor     ecx, [esi+eax+800h]
22416
                xor     edx, [esi+eax+804h]
22417
                and     ebx, 7F8h
22418
                xor     ecx, [esi+ebp+1000h]
22419
                xor     edx, [esi+ebp+1004h]
22420
                xor     ecx, [esi+ebx+1800h]
22421
                xor     edx, [esi+ebx+1804h]
22422
                mov     edi, [esp+48h]
22423
                mov     ebp, [esp+4Ch]
22424
                sub     edi, ecx
22425
                mov     eax, [esp+40h]
22426
                sbb     ebp, edx
22427
                mov     ebx, [esp+44h]
22428
                mov     [esp+48h], edi
22429
                mov     edi, eax
22430
                shr     eax, 5
22431
                mov     [esp+4Ch], ebp
22432
                shr     edi, 15h
22433
                mov     ebp, ebx
22434
                shr     ebx, 5
22435
                and     eax, 7F8h
22436
                shr     ebp, 15h
22437
                and     edi, 7F8h
22438
                and     ebx, 7F8h
22439
                mov     ecx, [esi+eax+1800h]
22440
                mov     edx, [esi+eax+1804h]
22441
                xor     ecx, [esi+edi+1000h]
22442
                and     ebp, 7F8h
22443
                xor     edx, [esi+edi+1004h]
22444
                xor     ecx, [esi+ebx+800h]
22445
                xor     edx, [esi+ebx+804h]
22446
                xor     ecx, [esi+ebp]
22447
                xor     edx, [esi+ebp+4]
22448
                mov     eax, [esp+50h]
22449
                mov     ebx, [esp+54h]
22450
                add     eax, ecx
22451
                adc     ebx, edx
22452
                mov     ecx, eax
22453
                shr     ecx, 1Eh
22454
                mov     ebp, ebx
22455
                shl     ebx, 2
22456
                mov     edi, eax
22457
                shl     eax, 2
22458
                or      ebx, ecx
22459
                add     eax, edi
22460
                adc     ebx, ebp
22461
                mov     [esp+50h], eax
22462
                mov     [esp+54h], ebx
22463
                mov     eax, [esp+38h]
22464
                mov     ebx, [esp+3Ch]
22465
                xor     eax, 0A5A5A5A5h
22466
                xor     ebx, 0A5A5A5A5h
22467
                mov     ecx, [esp]
22468
                mov     edx, [esp+4]
22469
                sub     ecx, eax
22470
                sbb     edx, ebx
22471
                mov     [esp], ecx
22472
                mov     [esp+4], edx
22473
                mov     eax, [esp+8]
22474
                mov     ebx, [esp+0Ch]
22475
                xor     eax, ecx
22476
                xor     ebx, edx
22477
                mov     [esp+8], eax
22478
                mov     edi, eax
22479
                mov     esi, eax
22480
                shr     edi, 0Dh
22481
                xor     eax, 0FFFFFFFFh
22482
                mov     [esp+0Ch], ebx
22483
                mov     ecx, [esp+10h]
22484
                shl     eax, 13h
22485
                mov     ebp, ebx
22486
                shl     ebx, 13h
22487
                mov     edx, [esp+14h]
22488
                add     esi, ecx
22489
                mov     ecx, [esp+20h]
22490
                adc     ebp, edx
22491
                or      edi, ebx
22492
                mov     [esp+10h], esi
22493
                xor     esi, eax
22494
                mov     [esp+14h], ebp
22495
                mov     eax, [esp+18h]
22496
                xor     ebp, 0FFFFFFFFh
22497
                mov     ebx, [esp+1Ch]
22498
                xor     ebp, edi
22499
                sub     eax, esi
22500
                sbb     ebx, ebp
22501
                mov     edx, [esp+24h]
22502
                mov     [esp+18h], eax
22503
                xor     eax, ecx
22504
                mov     [esp+1Ch], ebx
22505
                xor     ebx, edx
22506
                mov     ecx, [esp+28h]
22507
                mov     edx, [esp+2Ch]
22508
                mov     edi, ebx
22509
                mov     ebp, ebx
22510
                mov     [esp+20h], eax
22511
                xor     ebp, 0FFFFFFFFh
22512
                shl     ebx, 9
22513
                add     ecx, eax
22514
                adc     edx, edi
22515
                mov     [esp+24h], edi
22516
                shr     ebp, 17h
22517
                mov     [esp+28h], ecx
22518
                shr     eax, 17h
22519
                xor     ecx, 0FFFFFFFFh
22520
                or      ebx, eax
22521
                mov     [esp+2Ch], edx
22522
                mov     eax, [esp+30h]
22523
                xor     ecx, ebx
22524
                mov     ebx, [esp+34h]
22525
                xor     edx, ebp
22526
                mov     edi, [esp+38h]
22527
                sub     eax, ecx
22528
                mov     ebp, [esp+3Ch]
22529
                mov     [esp+30h], eax
22530
                sbb     ebx, edx
22531
                xor     edi, eax
22532
                xor     ebp, ebx
22533
                mov     [esp+34h], ebx
22534
                mov     eax, [esp]
22535
                mov     ecx, edi
22536
                xor     edi, 0FFFFFFFFh
22537
                mov     ebx, [esp+4]
22538
                shl     edi, 13h
22539
                mov     [esp+38h], ecx
22540
                add     eax, ecx
22541
                mov     [esp+3Ch], ebp
22542
                adc     ebx, ebp
22543
                xor     edi, eax
22544
                shr     ecx, 0Dh
22545
                mov     [esp], eax
22546
                shl     ebp, 13h
22547
                mov     [esp+4], ebx
22548
                mov     esi, [esp+8]
22549
                xor     ebx, 0FFFFFFFFh
22550
                or      ebp, ecx
22551
                mov     edx, [esp+0Ch]
22552
                xor     ebp, ebx
22553
                sub     esi, edi
22554
                mov     eax, [esp+10h]
22555
                mov     ebx, [esp+14h]
22556
                sbb     edx, ebp
22557
                mov     [esp+8], esi
22558
                xor     eax, esi
22559
                mov     [esp+0Ch], edx
22560
                mov     edi, [esp+18h]
22561
                mov     ebp, [esp+1Ch]
22562
                xor     ebx, edx
22563
                mov     [esp+10h], eax
22564
                add     edi, eax
22565
                mov     esi, ebx
22566
                adc     ebp, ebx
22567
                mov     [esp+14h], ebx
22568
                shr     eax, 17h
22569
                mov     ecx, [esp+20h]
22570
                xor     ebx, 0FFFFFFFFh
22571
                mov     edx, [esp+24h]
22572
                shl     esi, 9
22573
                mov     [esp+18h], edi
22574
                or      eax, esi
22575
                xor     edi, 0FFFFFFFFh
22576
                shr     ebx, 17h
22577
                mov     [esp+1Ch], ebp
22578
                xor     eax, edi
22579
                mov     edi, [esp+28h]
22580
                xor     ebx, ebp
22581
                sub     ecx, eax
22582
                mov     ebp, [esp+2Ch]
22583
                mov     [esp+20h], ecx
22584
                sbb     edx, ebx
22585
                xor     edi, ecx
22586
                mov     [esp+24h], edx
22587
                xor     ebp, edx
22588
                mov     eax, [esp+30h]
22589
                mov     ebx, [esp+34h]
22590
                mov     [esp+28h], edi
22591
                add     eax, edi
22592
                mov     [esp+2Ch], ebp
22593
                mov     ecx, [esp+38h]
22594
                adc     ebx, ebp
22595
                mov     edx, [esp+3Ch]
22596
                mov     [esp+30h], eax
22597
                xor     eax, 89ABCDEFh
22598
                mov     [esp+34h], ebx
22599
                xor     ebx, 1234567h
22600
                sub     ecx, eax
22601
                sbb     edx, ebx
22602
                mov     [esp+38h], ecx
22603
                mov     [esp+3Ch], edx
22604
                mov     esi, [esp+64h]
22605
                mov     eax, [esp]
22606
                mov     ebx, [esp+4]
22607
                mov     ecx, [esp+48h]
22608
                mov     edx, [esp+4Ch]
22609
                xor     eax, ecx
22610
                xor     ebx, edx
22611
                mov     edi, eax
22612
                mov     [esp+48h], eax
22613
                shr     eax, 0Dh
22614
                mov     ebp, ebx
22615
                and     edi, 0FFh
22616
                mov     [esp+4Ch], ebx
22617
                shl     edi, 3
22618
                and     ebp, 0FFh
22619
                shr     ebx, 0Dh
22620
                and     eax, 7F8h
22621
                shl     ebp, 3
22622
                mov     ecx, [esi+edi]
22623
                mov     edx, [esi+edi+4]
22624
                xor     ecx, [esi+eax+800h]
22625
                xor     edx, [esi+eax+804h]
22626
                and     ebx, 7F8h
22627
                xor     ecx, [esi+ebp+1000h]
22628
                xor     edx, [esi+ebp+1004h]
22629
                xor     ecx, [esi+ebx+1800h]
22630
                xor     edx, [esi+ebx+1804h]
22631
                mov     edi, [esp+50h]
22632
                mov     ebp, [esp+54h]
22633
                sub     edi, ecx
22634
                mov     eax, [esp+48h]
22635
                sbb     ebp, edx
22636
                mov     ebx, [esp+4Ch]
22637
                mov     [esp+50h], edi
22638
                mov     edi, eax
22639
                shr     eax, 5
22640
                mov     [esp+54h], ebp
22641
                shr     edi, 15h
22642
                mov     ebp, ebx
22643
                shr     ebx, 5
22644
                and     eax, 7F8h
22645
                shr     ebp, 15h
22646
                and     edi, 7F8h
22647
                and     ebx, 7F8h
22648
                mov     ecx, [esi+eax+1800h]
22649
                mov     edx, [esi+eax+1804h]
22650
                xor     ecx, [esi+edi+1000h]
22651
                and     ebp, 7F8h
22652
                xor     edx, [esi+edi+1004h]
22653
                xor     ecx, [esi+ebx+800h]
22654
                xor     edx, [esi+ebx+804h]
22655
                xor     ecx, [esi+ebp]
22656
                xor     edx, [esi+ebp+4]
22657
                mov     eax, [esp+40h]
22658
                mov     ebx, [esp+44h]
22659
                add     eax, ecx
22660
                adc     ebx, edx
22661
                mov     ecx, eax
22662
                shr     ecx, 1Dh
22663
                mov     ebp, ebx
22664
                shl     ebx, 3
22665
                mov     edi, eax
22666
                shl     eax, 3
22667
                or      ebx, ecx
22668
                sub     eax, edi
22669
                sbb     ebx, ebp
22670
                mov     [esp+40h], eax
22671
                mov     [esp+44h], ebx
22672
                mov     eax, [esp+8]
22673
                mov     ebx, [esp+0Ch]
22674
                mov     ecx, [esp+50h]
22675
                mov     edx, [esp+54h]
22676
                xor     eax, ecx
22677
                xor     ebx, edx
22678
                mov     edi, eax
22679
                mov     [esp+50h], eax
22680
                shr     eax, 0Dh
22681
                mov     ebp, ebx
22682
                and     edi, 0FFh
22683
                mov     [esp+54h], ebx
22684
                shl     edi, 3
22685
                and     ebp, 0FFh
22686
                shr     ebx, 0Dh
22687
                and     eax, 7F8h
22688
                shl     ebp, 3
22689
                mov     ecx, [esi+edi]
22690
                mov     edx, [esi+edi+4]
22691
                xor     ecx, [esi+eax+800h]
22692
                xor     edx, [esi+eax+804h]
22693
                and     ebx, 7F8h
22694
                xor     ecx, [esi+ebp+1000h]
22695
                xor     edx, [esi+ebp+1004h]
22696
                xor     ecx, [esi+ebx+1800h]
22697
                xor     edx, [esi+ebx+1804h]
22698
                mov     edi, [esp+40h]
22699
                mov     ebp, [esp+44h]
22700
                sub     edi, ecx
22701
                mov     eax, [esp+50h]
22702
                sbb     ebp, edx
22703
                mov     ebx, [esp+54h]
22704
                mov     [esp+40h], edi
22705
                mov     edi, eax
22706
                shr     eax, 5
22707
                mov     [esp+44h], ebp
22708
                shr     edi, 15h
22709
                mov     ebp, ebx
22710
                shr     ebx, 5
22711
                and     eax, 7F8h
22712
                shr     ebp, 15h
22713
                and     edi, 7F8h
22714
                and     ebx, 7F8h
22715
                mov     ecx, [esi+eax+1800h]
22716
                mov     edx, [esi+eax+1804h]
22717
                xor     ecx, [esi+edi+1000h]
22718
                and     ebp, 7F8h
22719
                xor     edx, [esi+edi+1004h]
22720
                xor     ecx, [esi+ebx+800h]
22721
                xor     edx, [esi+ebx+804h]
22722
                xor     ecx, [esi+ebp]
22723
                xor     edx, [esi+ebp+4]
22724
                mov     eax, [esp+48h]
22725
                mov     ebx, [esp+4Ch]
22726
                add     eax, ecx
22727
                adc     ebx, edx
22728
                mov     ecx, eax
22729
                shr     ecx, 1Dh
22730
                mov     ebp, ebx
22731
                shl     ebx, 3
22732
                mov     edi, eax
22733
                shl     eax, 3
22734
                or      ebx, ecx
22735
                sub     eax, edi
22736
                sbb     ebx, ebp
22737
                mov     [esp+48h], eax
22738
                mov     [esp+4Ch], ebx
22739
                mov     eax, [esp+10h]
22740
                mov     ebx, [esp+14h]
22741
                mov     ecx, [esp+40h]
22742
                mov     edx, [esp+44h]
22743
                xor     eax, ecx
22744
                xor     ebx, edx
22745
                mov     edi, eax
22746
                mov     [esp+40h], eax
22747
                shr     eax, 0Dh
22748
                mov     ebp, ebx
22749
                and     edi, 0FFh
22750
                mov     [esp+44h], ebx
22751
                shl     edi, 3
22752
                and     ebp, 0FFh
22753
                shr     ebx, 0Dh
22754
                and     eax, 7F8h
22755
                shl     ebp, 3
22756
                mov     ecx, [esi+edi]
22757
                mov     edx, [esi+edi+4]
22758
                xor     ecx, [esi+eax+800h]
22759
                xor     edx, [esi+eax+804h]
22760
                and     ebx, 7F8h
22761
                xor     ecx, [esi+ebp+1000h]
22762
                xor     edx, [esi+ebp+1004h]
22763
                xor     ecx, [esi+ebx+1800h]
22764
                xor     edx, [esi+ebx+1804h]
22765
                mov     edi, [esp+48h]
22766
                mov     ebp, [esp+4Ch]
22767
                sub     edi, ecx
22768
                mov     eax, [esp+40h]
22769
                sbb     ebp, edx
22770
                mov     ebx, [esp+44h]
22771
                mov     [esp+48h], edi
22772
                mov     edi, eax
22773
                shr     eax, 5
22774
                mov     [esp+4Ch], ebp
22775
                shr     edi, 15h
22776
                mov     ebp, ebx
22777
                shr     ebx, 5
22778
                and     eax, 7F8h
22779
                shr     ebp, 15h
22780
                and     edi, 7F8h
22781
                and     ebx, 7F8h
22782
                mov     ecx, [esi+eax+1800h]
22783
                mov     edx, [esi+eax+1804h]
22784
                xor     ecx, [esi+edi+1000h]
22785
                and     ebp, 7F8h
22786
                xor     edx, [esi+edi+1004h]
22787
                xor     ecx, [esi+ebx+800h]
22788
                xor     edx, [esi+ebx+804h]
22789
                xor     ecx, [esi+ebp]
22790
                xor     edx, [esi+ebp+4]
22791
                mov     eax, [esp+50h]
22792
                mov     ebx, [esp+54h]
22793
                add     eax, ecx
22794
                adc     ebx, edx
22795
                mov     ecx, eax
22796
                shr     ecx, 1Dh
22797
                mov     ebp, ebx
22798
                shl     ebx, 3
22799
                mov     edi, eax
22800
                shl     eax, 3
22801
                or      ebx, ecx
22802
                sub     eax, edi
22803
                sbb     ebx, ebp
22804
                mov     [esp+50h], eax
22805
                mov     [esp+54h], ebx
22806
                mov     eax, [esp+18h]
22807
                mov     ebx, [esp+1Ch]
22808
                mov     ecx, [esp+48h]
22809
                mov     edx, [esp+4Ch]
22810
                xor     eax, ecx
22811
                xor     ebx, edx
22812
                mov     edi, eax
22813
                mov     [esp+48h], eax
22814
                shr     eax, 0Dh
22815
                mov     ebp, ebx
22816
                and     edi, 0FFh
22817
                mov     [esp+4Ch], ebx
22818
                shl     edi, 3
22819
                and     ebp, 0FFh
22820
                shr     ebx, 0Dh
22821
                and     eax, 7F8h
22822
                shl     ebp, 3
22823
                mov     ecx, [esi+edi]
22824
                mov     edx, [esi+edi+4]
22825
                xor     ecx, [esi+eax+800h]
22826
                xor     edx, [esi+eax+804h]
22827
                and     ebx, 7F8h
22828
                xor     ecx, [esi+ebp+1000h]
22829
                xor     edx, [esi+ebp+1004h]
22830
                xor     ecx, [esi+ebx+1800h]
22831
                xor     edx, [esi+ebx+1804h]
22832
                mov     edi, [esp+50h]
22833
                mov     ebp, [esp+54h]
22834
                sub     edi, ecx
22835
                mov     eax, [esp+48h]
22836
                sbb     ebp, edx
22837
                mov     ebx, [esp+4Ch]
22838
                mov     [esp+50h], edi
22839
                mov     edi, eax
22840
                shr     eax, 5
22841
                mov     [esp+54h], ebp
22842
                shr     edi, 15h
22843
                mov     ebp, ebx
22844
                shr     ebx, 5
22845
                and     eax, 7F8h
22846
                shr     ebp, 15h
22847
                and     edi, 7F8h
22848
                and     ebx, 7F8h
22849
                mov     ecx, [esi+eax+1800h]
22850
                mov     edx, [esi+eax+1804h]
22851
                xor     ecx, [esi+edi+1000h]
22852
                and     ebp, 7F8h
22853
                xor     edx, [esi+edi+1004h]
22854
                xor     ecx, [esi+ebx+800h]
22855
                xor     edx, [esi+ebx+804h]
22856
                xor     ecx, [esi+ebp]
22857
                xor     edx, [esi+ebp+4]
22858
                mov     eax, [esp+40h]
22859
                mov     ebx, [esp+44h]
22860
                add     eax, ecx
22861
                adc     ebx, edx
22862
                mov     ecx, eax
22863
                shr     ecx, 1Dh
22864
                mov     ebp, ebx
22865
                shl     ebx, 3
22866
                mov     edi, eax
22867
                shl     eax, 3
22868
                or      ebx, ecx
22869
                sub     eax, edi
22870
                sbb     ebx, ebp
22871
                mov     [esp+40h], eax
22872
                mov     [esp+44h], ebx
22873
                mov     eax, [esp+20h]
22874
                mov     ebx, [esp+24h]
22875
                mov     ecx, [esp+50h]
22876
                mov     edx, [esp+54h]
22877
                xor     eax, ecx
22878
                xor     ebx, edx
22879
                mov     edi, eax
22880
                mov     [esp+50h], eax
22881
                shr     eax, 0Dh
22882
                mov     ebp, ebx
22883
                and     edi, 0FFh
22884
                mov     [esp+54h], ebx
22885
                shl     edi, 3
22886
                and     ebp, 0FFh
22887
                shr     ebx, 0Dh
22888
                and     eax, 7F8h
22889
                shl     ebp, 3
22890
                mov     ecx, [esi+edi]
22891
                mov     edx, [esi+edi+4]
22892
                xor     ecx, [esi+eax+800h]
22893
                xor     edx, [esi+eax+804h]
22894
                and     ebx, 7F8h
22895
                xor     ecx, [esi+ebp+1000h]
22896
                xor     edx, [esi+ebp+1004h]
22897
                xor     ecx, [esi+ebx+1800h]
22898
                xor     edx, [esi+ebx+1804h]
22899
                mov     edi, [esp+40h]
22900
                mov     ebp, [esp+44h]
22901
                sub     edi, ecx
22902
                mov     eax, [esp+50h]
22903
                sbb     ebp, edx
22904
                mov     ebx, [esp+54h]
22905
                mov     [esp+40h], edi
22906
                mov     edi, eax
22907
                shr     eax, 5
22908
                mov     [esp+44h], ebp
22909
                shr     edi, 15h
22910
                mov     ebp, ebx
22911
                shr     ebx, 5
22912
                and     eax, 7F8h
22913
                shr     ebp, 15h
22914
                and     edi, 7F8h
22915
                and     ebx, 7F8h
22916
                mov     ecx, [esi+eax+1800h]
22917
                mov     edx, [esi+eax+1804h]
22918
                xor     ecx, [esi+edi+1000h]
22919
                and     ebp, 7F8h
22920
                xor     edx, [esi+edi+1004h]
22921
                xor     ecx, [esi+ebx+800h]
22922
                xor     edx, [esi+ebx+804h]
22923
                xor     ecx, [esi+ebp]
22924
                xor     edx, [esi+ebp+4]
22925
                mov     eax, [esp+48h]
22926
                mov     ebx, [esp+4Ch]
22927
                add     eax, ecx
22928
                adc     ebx, edx
22929
                mov     ecx, eax
22930
                shr     ecx, 1Dh
22931
                mov     ebp, ebx
22932
                shl     ebx, 3
22933
                mov     edi, eax
22934
                shl     eax, 3
22935
                or      ebx, ecx
22936
                sub     eax, edi
22937
                sbb     ebx, ebp
22938
                mov     [esp+48h], eax
22939
                mov     [esp+4Ch], ebx
22940
                mov     eax, [esp+28h]
22941
                mov     ebx, [esp+2Ch]
22942
                mov     ecx, [esp+40h]
22943
                mov     edx, [esp+44h]
22944
                xor     eax, ecx
22945
                xor     ebx, edx
22946
                mov     edi, eax
22947
                mov     [esp+40h], eax
22948
                shr     eax, 0Dh
22949
                mov     ebp, ebx
22950
                and     edi, 0FFh
22951
                mov     [esp+44h], ebx
22952
                shl     edi, 3
22953
                and     ebp, 0FFh
22954
                shr     ebx, 0Dh
22955
                and     eax, 7F8h
22956
                shl     ebp, 3
22957
                mov     ecx, [esi+edi]
22958
                mov     edx, [esi+edi+4]
22959
                xor     ecx, [esi+eax+800h]
22960
                xor     edx, [esi+eax+804h]
22961
                and     ebx, 7F8h
22962
                xor     ecx, [esi+ebp+1000h]
22963
                xor     edx, [esi+ebp+1004h]
22964
                xor     ecx, [esi+ebx+1800h]
22965
                xor     edx, [esi+ebx+1804h]
22966
                mov     edi, [esp+48h]
22967
                mov     ebp, [esp+4Ch]
22968
                sub     edi, ecx
22969
                mov     eax, [esp+40h]
22970
                sbb     ebp, edx
22971
                mov     ebx, [esp+44h]
22972
                mov     [esp+48h], edi
22973
                mov     edi, eax
22974
                shr     eax, 5
22975
                mov     [esp+4Ch], ebp
22976
                shr     edi, 15h
22977
                mov     ebp, ebx
22978
                shr     ebx, 5
22979
                and     eax, 7F8h
22980
                shr     ebp, 15h
22981
                and     edi, 7F8h
22982
                and     ebx, 7F8h
22983
                mov     ecx, [esi+eax+1800h]
22984
                mov     edx, [esi+eax+1804h]
22985
                xor     ecx, [esi+edi+1000h]
22986
                and     ebp, 7F8h
22987
                xor     edx, [esi+edi+1004h]
22988
                xor     ecx, [esi+ebx+800h]
22989
                xor     edx, [esi+ebx+804h]
22990
                xor     ecx, [esi+ebp]
22991
                xor     edx, [esi+ebp+4]
22992
                mov     eax, [esp+50h]
22993
                mov     ebx, [esp+54h]
22994
                add     eax, ecx
22995
                adc     ebx, edx
22996
                mov     ecx, eax
22997
                shr     ecx, 1Dh
22998
                mov     ebp, ebx
22999
                shl     ebx, 3
23000
                mov     edi, eax
23001
                shl     eax, 3
23002
                or      ebx, ecx
23003
                sub     eax, edi
23004
                sbb     ebx, ebp
23005
                mov     [esp+50h], eax
23006
                mov     [esp+54h], ebx
23007
                mov     eax, [esp+30h]
23008
                mov     ebx, [esp+34h]
23009
                mov     ecx, [esp+48h]
23010
                mov     edx, [esp+4Ch]
23011
                xor     eax, ecx
23012
                xor     ebx, edx
23013
                mov     edi, eax
23014
                mov     [esp+48h], eax
23015
                shr     eax, 0Dh
23016
                mov     ebp, ebx
23017
                and     edi, 0FFh
23018
                mov     [esp+4Ch], ebx
23019
                shl     edi, 3
23020
                and     ebp, 0FFh
23021
                shr     ebx, 0Dh
23022
                and     eax, 7F8h
23023
                shl     ebp, 3
23024
                mov     ecx, [esi+edi]
23025
                mov     edx, [esi+edi+4]
23026
                xor     ecx, [esi+eax+800h]
23027
                xor     edx, [esi+eax+804h]
23028
                and     ebx, 7F8h
23029
                xor     ecx, [esi+ebp+1000h]
23030
                xor     edx, [esi+ebp+1004h]
23031
                xor     ecx, [esi+ebx+1800h]
23032
                xor     edx, [esi+ebx+1804h]
23033
                mov     edi, [esp+50h]
23034
                mov     ebp, [esp+54h]
23035
                sub     edi, ecx
23036
                mov     eax, [esp+48h]
23037
                sbb     ebp, edx
23038
                mov     ebx, [esp+4Ch]
23039
                mov     [esp+50h], edi
23040
                mov     edi, eax
23041
                shr     eax, 5
23042
                mov     [esp+54h], ebp
23043
                shr     edi, 15h
23044
                mov     ebp, ebx
23045
                shr     ebx, 5
23046
                and     eax, 7F8h
23047
                shr     ebp, 15h
23048
                and     edi, 7F8h
23049
                and     ebx, 7F8h
23050
                mov     ecx, [esi+eax+1800h]
23051
                mov     edx, [esi+eax+1804h]
23052
                xor     ecx, [esi+edi+1000h]
23053
                and     ebp, 7F8h
23054
                xor     edx, [esi+edi+1004h]
23055
                xor     ecx, [esi+ebx+800h]
23056
                xor     edx, [esi+ebx+804h]
23057
                xor     ecx, [esi+ebp]
23058
                xor     edx, [esi+ebp+4]
23059
                mov     eax, [esp+40h]
23060
                mov     ebx, [esp+44h]
23061
                add     eax, ecx
23062
                adc     ebx, edx
23063
                mov     ecx, eax
23064
                shr     ecx, 1Dh
23065
                mov     ebp, ebx
23066
                shl     ebx, 3
23067
                mov     edi, eax
23068
                shl     eax, 3
23069
                or      ebx, ecx
23070
                sub     eax, edi
23071
                sbb     ebx, ebp
23072
                mov     [esp+40h], eax
23073
                mov     [esp+44h], ebx
23074
                mov     eax, [esp+38h]
23075
                mov     ebx, [esp+3Ch]
23076
                mov     ecx, [esp+50h]
23077
                mov     edx, [esp+54h]
23078
                xor     eax, ecx
23079
                xor     ebx, edx
23080
                mov     edi, eax
23081
                mov     [esp+50h], eax
23082
                shr     eax, 0Dh
23083
                mov     ebp, ebx
23084
                and     edi, 0FFh
23085
                mov     [esp+54h], ebx
23086
                shl     edi, 3
23087
                and     ebp, 0FFh
23088
                shr     ebx, 0Dh
23089
                and     eax, 7F8h
23090
                shl     ebp, 3
23091
                mov     ecx, [esi+edi]
23092
                mov     edx, [esi+edi+4]
23093
                xor     ecx, [esi+eax+800h]
23094
                xor     edx, [esi+eax+804h]
23095
                and     ebx, 7F8h
23096
                xor     ecx, [esi+ebp+1000h]
23097
                xor     edx, [esi+ebp+1004h]
23098
                xor     ecx, [esi+ebx+1800h]
23099
                xor     edx, [esi+ebx+1804h]
23100
                mov     edi, [esp+40h]
23101
                mov     ebp, [esp+44h]
23102
                sub     edi, ecx
23103
                mov     eax, [esp+50h]
23104
                sbb     ebp, edx
23105
                mov     ebx, [esp+54h]
23106
                mov     [esp+40h], edi
23107
                mov     edi, eax
23108
                shr     eax, 5
23109
                mov     [esp+44h], ebp
23110
                shr     edi, 15h
23111
                mov     ebp, ebx
23112
                shr     ebx, 5
23113
                and     eax, 7F8h
23114
                shr     ebp, 15h
23115
                and     edi, 7F8h
23116
                and     ebx, 7F8h
23117
                mov     ecx, [esi+eax+1800h]
23118
                mov     edx, [esi+eax+1804h]
23119
                xor     ecx, [esi+edi+1000h]
23120
                and     ebp, 7F8h
23121
                xor     edx, [esi+edi+1004h]
23122
                xor     ecx, [esi+ebx+800h]
23123
                xor     edx, [esi+ebx+804h]
23124
                xor     ecx, [esi+ebp]
23125
                xor     edx, [esi+ebp+4]
23126
                mov     eax, [esp+48h]
23127
                mov     ebx, [esp+4Ch]
23128
                add     eax, ecx
23129
                adc     ebx, edx
23130
                mov     ecx, eax
23131
                shr     ecx, 1Dh
23132
                mov     ebp, ebx
23133
                shl     ebx, 3
23134
                mov     edi, eax
23135
                shl     eax, 3
23136
                or      ebx, ecx
23137
                sub     eax, edi
23138
                sbb     ebx, ebp
23139
                mov     [esp+48h], eax
23140
                mov     [esp+4Ch], ebx
23141
                mov     eax, [esp+38h]
23142
                mov     ebx, [esp+3Ch]
23143
                xor     eax, 0A5A5A5A5h
23144
                xor     ebx, 0A5A5A5A5h
23145
                mov     ecx, [esp]
23146
                mov     edx, [esp+4]
23147
                sub     ecx, eax
23148
                sbb     edx, ebx
23149
                mov     [esp], ecx
23150
                mov     [esp+4], edx
23151
                mov     eax, [esp+8]
23152
                mov     ebx, [esp+0Ch]
23153
                xor     eax, ecx
23154
                xor     ebx, edx
23155
                mov     [esp+8], eax
23156
                mov     edi, eax
23157
                mov     esi, eax
23158
                shr     edi, 0Dh
23159
                xor     eax, 0FFFFFFFFh
23160
                mov     [esp+0Ch], ebx
23161
                mov     ecx, [esp+10h]
23162
                shl     eax, 13h
23163
                mov     ebp, ebx
23164
                shl     ebx, 13h
23165
                mov     edx, [esp+14h]
23166
                add     esi, ecx
23167
                mov     ecx, [esp+20h]
23168
                adc     ebp, edx
23169
                or      edi, ebx
23170
                mov     [esp+10h], esi
23171
                xor     esi, eax
23172
                mov     [esp+14h], ebp
23173
                mov     eax, [esp+18h]
23174
                xor     ebp, 0FFFFFFFFh
23175
                mov     ebx, [esp+1Ch]
23176
                xor     ebp, edi
23177
                sub     eax, esi
23178
                sbb     ebx, ebp
23179
                mov     edx, [esp+24h]
23180
                mov     [esp+18h], eax
23181
                xor     eax, ecx
23182
                mov     [esp+1Ch], ebx
23183
                xor     ebx, edx
23184
                mov     ecx, [esp+28h]
23185
                mov     edx, [esp+2Ch]
23186
                mov     edi, ebx
23187
                mov     ebp, ebx
23188
                mov     [esp+20h], eax
23189
                xor     ebp, 0FFFFFFFFh
23190
                shl     ebx, 9
23191
                add     ecx, eax
23192
                adc     edx, edi
23193
                mov     [esp+24h], edi
23194
                shr     ebp, 17h
23195
                mov     [esp+28h], ecx
23196
                shr     eax, 17h
23197
                xor     ecx, 0FFFFFFFFh
23198
                or      ebx, eax
23199
                mov     [esp+2Ch], edx
23200
                mov     eax, [esp+30h]
23201
                xor     ecx, ebx
23202
                mov     ebx, [esp+34h]
23203
                xor     edx, ebp
23204
                mov     edi, [esp+38h]
23205
                sub     eax, ecx
23206
                mov     ebp, [esp+3Ch]
23207
                mov     [esp+30h], eax
23208
                sbb     ebx, edx
23209
                xor     edi, eax
23210
                xor     ebp, ebx
23211
                mov     [esp+34h], ebx
23212
                mov     eax, [esp]
23213
                mov     ecx, edi
23214
                xor     edi, 0FFFFFFFFh
23215
                mov     ebx, [esp+4]
23216
                shl     edi, 13h
23217
                mov     [esp+38h], ecx
23218
                add     eax, ecx
23219
                mov     [esp+3Ch], ebp
23220
                adc     ebx, ebp
23221
                xor     edi, eax
23222
                shr     ecx, 0Dh
23223
                mov     [esp], eax
23224
                shl     ebp, 13h
23225
                mov     [esp+4], ebx
23226
                mov     esi, [esp+8]
23227
                xor     ebx, 0FFFFFFFFh
23228
                or      ebp, ecx
23229
                mov     edx, [esp+0Ch]
23230
                xor     ebp, ebx
23231
                sub     esi, edi
23232
                mov     eax, [esp+10h]
23233
                mov     ebx, [esp+14h]
23234
                sbb     edx, ebp
23235
                mov     [esp+8], esi
23236
                xor     eax, esi
23237
                mov     [esp+0Ch], edx
23238
                mov     edi, [esp+18h]
23239
                mov     ebp, [esp+1Ch]
23240
                xor     ebx, edx
23241
                mov     [esp+10h], eax
23242
                add     edi, eax
23243
                mov     esi, ebx
23244
                adc     ebp, ebx
23245
                mov     [esp+14h], ebx
23246
                shr     eax, 17h
23247
                mov     ecx, [esp+20h]
23248
                xor     ebx, 0FFFFFFFFh
23249
                mov     edx, [esp+24h]
23250
                shl     esi, 9
23251
                mov     [esp+18h], edi
23252
                or      eax, esi
23253
                xor     edi, 0FFFFFFFFh
23254
                shr     ebx, 17h
23255
                mov     [esp+1Ch], ebp
23256
                xor     eax, edi
23257
                mov     edi, [esp+28h]
23258
                xor     ebx, ebp
23259
                sub     ecx, eax
23260
                mov     ebp, [esp+2Ch]
23261
                mov     [esp+20h], ecx
23262
                sbb     edx, ebx
23263
                xor     edi, ecx
23264
                mov     [esp+24h], edx
23265
                xor     ebp, edx
23266
                mov     eax, [esp+30h]
23267
                mov     ebx, [esp+34h]
23268
                mov     [esp+28h], edi
23269
                add     eax, edi
23270
                mov     [esp+2Ch], ebp
23271
                mov     ecx, [esp+38h]
23272
                adc     ebx, ebp
23273
                mov     edx, [esp+3Ch]
23274
                mov     [esp+30h], eax
23275
                xor     eax, 89ABCDEFh
23276
                mov     [esp+34h], ebx
23277
                xor     ebx, 1234567h
23278
                sub     ecx, eax
23279
                sbb     edx, ebx
23280
                mov     [esp+38h], ecx
23281
                mov     [esp+3Ch], edx
23282
23283
            @_pass_loop:
23284
                mov     esi, [esp+64h]
23285
                mov     eax, [esp]
23286
                mov     ebx, [esp+4]
23287
                mov     ecx, [esp+40h]
23288
                mov     edx, [esp+44h]
23289
                xor     eax, ecx
23290
                xor     ebx, edx
23291
                mov     edi, eax
23292
                mov     [esp+40h], eax
23293
                shr     eax, 0Dh
23294
                mov     ebp, ebx
23295
                and     edi, 0FFh
23296
                mov     [esp+44h], ebx
23297
                shl     edi, 3
23298
                and     ebp, 0FFh
23299
                shr     ebx, 0Dh
23300
                and     eax, 7F8h
23301
                shl     ebp, 3
23302
                mov     ecx, [esi+edi]
23303
                mov     edx, [esi+edi+4]
23304
                xor     ecx, [esi+eax+800h]
23305
                xor     edx, [esi+eax+804h]
23306
                and     ebx, 7F8h
23307
                xor     ecx, [esi+ebp+1000h]
23308
                xor     edx, [esi+ebp+1004h]
23309
                xor     ecx, [esi+ebx+1800h]
23310
                xor     edx, [esi+ebx+1804h]
23311
                mov     edi, [esp+48h]
23312
                mov     ebp, [esp+4Ch]
23313
                sub     edi, ecx
23314
                mov     eax, [esp+40h]
23315
                sbb     ebp, edx
23316
                mov     ebx, [esp+44h]
23317
                mov     [esp+48h], edi
23318
                mov     edi, eax
23319
                shr     eax, 5
23320
                mov     [esp+4Ch], ebp
23321
                shr     edi, 15h
23322
                mov     ebp, ebx
23323
                shr     ebx, 5
23324
                and     eax, 7F8h
23325
                shr     ebp, 15h
23326
                and     edi, 7F8h
23327
                and     ebx, 7F8h
23328
                mov     ecx, [esi+eax+1800h]
23329
                mov     edx, [esi+eax+1804h]
23330
                xor     ecx, [esi+edi+1000h]
23331
                and     ebp, 7F8h
23332
                xor     edx, [esi+edi+1004h]
23333
                xor     ecx, [esi+ebx+800h]
23334
                xor     edx, [esi+ebx+804h]
23335
                xor     ecx, [esi+ebp]
23336
                xor     edx, [esi+ebp+4]
23337
                mov     eax, [esp+50h]
23338
                mov     ebx, [esp+54h]
23339
                add     eax, ecx
23340
                adc     ebx, edx
23341
                mov     ecx, eax
23342
                shr     ecx, 1Dh
23343
                mov     ebp, ebx
23344
                shl     ebx, 3
23345
                mov     edi, eax
23346
                shl     eax, 3
23347
                or      ebx, ecx
23348
                add     eax, edi
23349
                adc     ebx, ebp
23350
                mov     [esp+50h], eax
23351
                mov     [esp+54h], ebx
23352
                mov     eax, [esp+8]
23353
                mov     ebx, [esp+0Ch]
23354
                mov     ecx, [esp+48h]
23355
                mov     edx, [esp+4Ch]
23356
                xor     eax, ecx
23357
                xor     ebx, edx
23358
                mov     edi, eax
23359
                mov     [esp+48h], eax
23360
                shr     eax, 0Dh
23361
                mov     ebp, ebx
23362
                and     edi, 0FFh
23363
                mov     [esp+4Ch], ebx
23364
                shl     edi, 3
23365
                and     ebp, 0FFh
23366
                shr     ebx, 0Dh
23367
                and     eax, 7F8h
23368
                shl     ebp, 3
23369
                mov     ecx, [esi+edi]
23370
                mov     edx, [esi+edi+4]
23371
                xor     ecx, [esi+eax+800h]
23372
                xor     edx, [esi+eax+804h]
23373
                and     ebx, 7F8h
23374
                xor     ecx, [esi+ebp+1000h]
23375
                xor     edx, [esi+ebp+1004h]
23376
                xor     ecx, [esi+ebx+1800h]
23377
                xor     edx, [esi+ebx+1804h]
23378
                mov     edi, [esp+50h]
23379
                mov     ebp, [esp+54h]
23380
                sub     edi, ecx
23381
                mov     eax, [esp+48h]
23382
                sbb     ebp, edx
23383
                mov     ebx, [esp+4Ch]
23384
                mov     [esp+50h], edi
23385
                mov     edi, eax
23386
                shr     eax, 5
23387
                mov     [esp+54h], ebp
23388
                shr     edi, 15h
23389
                mov     ebp, ebx
23390
                shr     ebx, 5
23391
                and     eax, 7F8h
23392
                shr     ebp, 15h
23393
                and     edi, 7F8h
23394
                and     ebx, 7F8h
23395
                mov     ecx, [esi+eax+1800h]
23396
                mov     edx, [esi+eax+1804h]
23397
                xor     ecx, [esi+edi+1000h]
23398
                and     ebp, 7F8h
23399
                xor     edx, [esi+edi+1004h]
23400
                xor     ecx, [esi+ebx+800h]
23401
                xor     edx, [esi+ebx+804h]
23402
                xor     ecx, [esi+ebp]
23403
                xor     edx, [esi+ebp+4]
23404
                mov     eax, [esp+40h]
23405
                mov     ebx, [esp+44h]
23406
                add     eax, ecx
23407
                adc     ebx, edx
23408
                mov     ecx, eax
23409
                shr     ecx, 1Dh
23410
                mov     ebp, ebx
23411
                shl     ebx, 3
23412
                mov     edi, eax
23413
                shl     eax, 3
23414
                or      ebx, ecx
23415
                add     eax, edi
23416
                adc     ebx, ebp
23417
                mov     [esp+40h], eax
23418
                mov     [esp+44h], ebx
23419
                mov     eax, [esp+10h]
23420
                mov     ebx, [esp+14h]
23421
                mov     ecx, [esp+50h]
23422
                mov     edx, [esp+54h]
23423
                xor     eax, ecx
23424
                xor     ebx, edx
23425
                mov     edi, eax
23426
                mov     [esp+50h], eax
23427
                shr     eax, 0Dh
23428
                mov     ebp, ebx
23429
                and     edi, 0FFh
23430
                mov     [esp+54h], ebx
23431
                shl     edi, 3
23432
                and     ebp, 0FFh
23433
                shr     ebx, 0Dh
23434
                and     eax, 7F8h
23435
                shl     ebp, 3
23436
                mov     ecx, [esi+edi]
23437
                mov     edx, [esi+edi+4]
23438
                xor     ecx, [esi+eax+800h]
23439
                xor     edx, [esi+eax+804h]
23440
                and     ebx, 7F8h
23441
                xor     ecx, [esi+ebp+1000h]
23442
                xor     edx, [esi+ebp+1004h]
23443
                xor     ecx, [esi+ebx+1800h]
23444
                xor     edx, [esi+ebx+1804h]
23445
                mov     edi, [esp+40h]
23446
                mov     ebp, [esp+44h]
23447
                sub     edi, ecx
23448
                mov     eax, [esp+50h]
23449
                sbb     ebp, edx
23450
                mov     ebx, [esp+54h]
23451
                mov     [esp+40h], edi
23452
                mov     edi, eax
23453
                shr     eax, 5
23454
                mov     [esp+44h], ebp
23455
                shr     edi, 15h
23456
                mov     ebp, ebx
23457
                shr     ebx, 5
23458
                and     eax, 7F8h
23459
                shr     ebp, 15h
23460
                and     edi, 7F8h
23461
                and     ebx, 7F8h
23462
                mov     ecx, [esi+eax+1800h]
23463
                mov     edx, [esi+eax+1804h]
23464
                xor     ecx, [esi+edi+1000h]
23465
                and     ebp, 7F8h
23466
                xor     edx, [esi+edi+1004h]
23467
                xor     ecx, [esi+ebx+800h]
23468
                xor     edx, [esi+ebx+804h]
23469
                xor     ecx, [esi+ebp]
23470
                xor     edx, [esi+ebp+4]
23471
                mov     eax, [esp+48h]
23472
                mov     ebx, [esp+4Ch]
23473
                add     eax, ecx
23474
                adc     ebx, edx
23475
                mov     ecx, eax
23476
                shr     ecx, 1Dh
23477
                mov     ebp, ebx
23478
                shl     ebx, 3
23479
                mov     edi, eax
23480
                shl     eax, 3
23481
                or      ebx, ecx
23482
                add     eax, edi
23483
                adc     ebx, ebp
23484
                mov     [esp+48h], eax
23485
                mov     [esp+4Ch], ebx
23486
                mov     eax, [esp+18h]
23487
                mov     ebx, [esp+1Ch]
23488
                mov     ecx, [esp+40h]
23489
                mov     edx, [esp+44h]
23490
                xor     eax, ecx
23491
                xor     ebx, edx
23492
                mov     edi, eax
23493
                mov     [esp+40h], eax
23494
                shr     eax, 0Dh
23495
                mov     ebp, ebx
23496
                and     edi, 0FFh
23497
                mov     [esp+44h], ebx
23498
                shl     edi, 3
23499
                and     ebp, 0FFh
23500
                shr     ebx, 0Dh
23501
                and     eax, 7F8h
23502
                shl     ebp, 3
23503
                mov     ecx, [esi+edi]
23504
                mov     edx, [esi+edi+4]
23505
                xor     ecx, [esi+eax+800h]
23506
                xor     edx, [esi+eax+804h]
23507
                and     ebx, 7F8h
23508
                xor     ecx, [esi+ebp+1000h]
23509
                xor     edx, [esi+ebp+1004h]
23510
                xor     ecx, [esi+ebx+1800h]
23511
                xor     edx, [esi+ebx+1804h]
23512
                mov     edi, [esp+48h]
23513
                mov     ebp, [esp+4Ch]
23514
                sub     edi, ecx
23515
                mov     eax, [esp+40h]
23516
                sbb     ebp, edx
23517
                mov     ebx, [esp+44h]
23518
                mov     [esp+48h], edi
23519
                mov     edi, eax
23520
                shr     eax, 5
23521
                mov     [esp+4Ch], ebp
23522
                shr     edi, 15h
23523
                mov     ebp, ebx
23524
                shr     ebx, 5
23525
                and     eax, 7F8h
23526
                shr     ebp, 15h
23527
                and     edi, 7F8h
23528
                and     ebx, 7F8h
23529
                mov     ecx, [esi+eax+1800h]
23530
                mov     edx, [esi+eax+1804h]
23531
                xor     ecx, [esi+edi+1000h]
23532
                and     ebp, 7F8h
23533
                xor     edx, [esi+edi+1004h]
23534
                xor     ecx, [esi+ebx+800h]
23535
                xor     edx, [esi+ebx+804h]
23536
                xor     ecx, [esi+ebp]
23537
                xor     edx, [esi+ebp+4]
23538
                mov     eax, [esp+50h]
23539
                mov     ebx, [esp+54h]
23540
                add     eax, ecx
23541
                adc     ebx, edx
23542
                mov     ecx, eax
23543
                shr     ecx, 1Dh
23544
                mov     ebp, ebx
23545
                shl     ebx, 3
23546
                mov     edi, eax
23547
                shl     eax, 3
23548
                or      ebx, ecx
23549
                add     eax, edi
23550
                adc     ebx, ebp
23551
                mov     [esp+50h], eax
23552
                mov     [esp+54h], ebx
23553
                mov     eax, [esp+20h]
23554
                mov     ebx, [esp+24h]
23555
                mov     ecx, [esp+48h]
23556
                mov     edx, [esp+4Ch]
23557
                xor     eax, ecx
23558
                xor     ebx, edx
23559
                mov     edi, eax
23560
                mov     [esp+48h], eax
23561
                shr     eax, 0Dh
23562
                mov     ebp, ebx
23563
                and     edi, 0FFh
23564
                mov     [esp+4Ch], ebx
23565
                shl     edi, 3
23566
                and     ebp, 0FFh
23567
                shr     ebx, 0Dh
23568
                and     eax, 7F8h
23569
                shl     ebp, 3
23570
                mov     ecx, [esi+edi]
23571
                mov     edx, [esi+edi+4]
23572
                xor     ecx, [esi+eax+800h]
23573
                xor     edx, [esi+eax+804h]
23574
                and     ebx, 7F8h
23575
                xor     ecx, [esi+ebp+1000h]
23576
                xor     edx, [esi+ebp+1004h]
23577
                xor     ecx, [esi+ebx+1800h]
23578
                xor     edx, [esi+ebx+1804h]
23579
                mov     edi, [esp+50h]
23580
                mov     ebp, [esp+54h]
23581
                sub     edi, ecx
23582
                mov     eax, [esp+48h]
23583
                sbb     ebp, edx
23584
                mov     ebx, [esp+4Ch]
23585
                mov     [esp+50h], edi
23586
                mov     edi, eax
23587
                shr     eax, 5
23588
                mov     [esp+54h], ebp
23589
                shr     edi, 15h
23590
                mov     ebp, ebx
23591
                shr     ebx, 5
23592
                and     eax, 7F8h
23593
                shr     ebp, 15h
23594
                and     edi, 7F8h
23595
                and     ebx, 7F8h
23596
                mov     ecx, [esi+eax+1800h]
23597
                mov     edx, [esi+eax+1804h]
23598
                xor     ecx, [esi+edi+1000h]
23599
                and     ebp, 7F8h
23600
                xor     edx, [esi+edi+1004h]
23601
                xor     ecx, [esi+ebx+800h]
23602
                xor     edx, [esi+ebx+804h]
23603
                xor     ecx, [esi+ebp]
23604
                xor     edx, [esi+ebp+4]
23605
                mov     eax, [esp+40h]
23606
                mov     ebx, [esp+44h]
23607
                add     eax, ecx
23608
                adc     ebx, edx
23609
                mov     ecx, eax
23610
                shr     ecx, 1Dh
23611
                mov     ebp, ebx
23612
                shl     ebx, 3
23613
                mov     edi, eax
23614
                shl     eax, 3
23615
                or      ebx, ecx
23616
                add     eax, edi
23617
                adc     ebx, ebp
23618
                mov     [esp+40h], eax
23619
                mov     [esp+44h], ebx
23620
                mov     eax, [esp+28h]
23621
                mov     ebx, [esp+2Ch]
23622
                mov     ecx, [esp+50h]
23623
                mov     edx, [esp+54h]
23624
                xor     eax, ecx
23625
                xor     ebx, edx
23626
                mov     edi, eax
23627
                mov     [esp+50h], eax
23628
                shr     eax, 0Dh
23629
                mov     ebp, ebx
23630
                and     edi, 0FFh
23631
                mov     [esp+54h], ebx
23632
                shl     edi, 3
23633
                and     ebp, 0FFh
23634
                shr     ebx, 0Dh
23635
                and     eax, 7F8h
23636
                shl     ebp, 3
23637
                mov     ecx, [esi+edi]
23638
                mov     edx, [esi+edi+4]
23639
                xor     ecx, [esi+eax+800h]
23640
                xor     edx, [esi+eax+804h]
23641
                and     ebx, 7F8h
23642
                xor     ecx, [esi+ebp+1000h]
23643
                xor     edx, [esi+ebp+1004h]
23644
                xor     ecx, [esi+ebx+1800h]
23645
                xor     edx, [esi+ebx+1804h]
23646
                mov     edi, [esp+40h]
23647
                mov     ebp, [esp+44h]
23648
                sub     edi, ecx
23649
                mov     eax, [esp+50h]
23650
                sbb     ebp, edx
23651
                mov     ebx, [esp+54h]
23652
                mov     [esp+40h], edi
23653
                mov     edi, eax
23654
                shr     eax, 5
23655
                mov     [esp+44h], ebp
23656
                shr     edi, 15h
23657
                mov     ebp, ebx
23658
                shr     ebx, 5
23659
                and     eax, 7F8h
23660
                shr     ebp, 15h
23661
                and     edi, 7F8h
23662
                and     ebx, 7F8h
23663
                mov     ecx, [esi+eax+1800h]
23664
                mov     edx, [esi+eax+1804h]
23665
                xor     ecx, [esi+edi+1000h]
23666
                and     ebp, 7F8h
23667
                xor     edx, [esi+edi+1004h]
23668
                xor     ecx, [esi+ebx+800h]
23669
                xor     edx, [esi+ebx+804h]
23670
                xor     ecx, [esi+ebp]
23671
                xor     edx, [esi+ebp+4]
23672
                mov     eax, [esp+48h]
23673
                mov     ebx, [esp+4Ch]
23674
                add     eax, ecx
23675
                adc     ebx, edx
23676
                mov     ecx, eax
23677
                shr     ecx, 1Dh
23678
                mov     ebp, ebx
23679
                shl     ebx, 3
23680
                mov     edi, eax
23681
                shl     eax, 3
23682
                or      ebx, ecx
23683
                add     eax, edi
23684
                adc     ebx, ebp
23685
                mov     [esp+48h], eax
23686
                mov     [esp+4Ch], ebx
23687
                mov     eax, [esp+30h]
23688
                mov     ebx, [esp+34h]
23689
                mov     ecx, [esp+40h]
23690
                mov     edx, [esp+44h]
23691
                xor     eax, ecx
23692
                xor     ebx, edx
23693
                mov     edi, eax
23694
                mov     [esp+40h], eax
23695
                shr     eax, 0Dh
23696
                mov     ebp, ebx
23697
                and     edi, 0FFh
23698
                mov     [esp+44h], ebx
23699
                shl     edi, 3
23700
                and     ebp, 0FFh
23701
                shr     ebx, 0Dh
23702
                and     eax, 7F8h
23703
                shl     ebp, 3
23704
                mov     ecx, [esi+edi]
23705
                mov     edx, [esi+edi+4]
23706
                xor     ecx, [esi+eax+800h]
23707
                xor     edx, [esi+eax+804h]
23708
                and     ebx, 7F8h
23709
                xor     ecx, [esi+ebp+1000h]
23710
                xor     edx, [esi+ebp+1004h]
23711
                xor     ecx, [esi+ebx+1800h]
23712
                xor     edx, [esi+ebx+1804h]
23713
                mov     edi, [esp+48h]
23714
                mov     ebp, [esp+4Ch]
23715
                sub     edi, ecx
23716
                mov     eax, [esp+40h]
23717
                sbb     ebp, edx
23718
                mov     ebx, [esp+44h]
23719
                mov     [esp+48h], edi
23720
                mov     edi, eax
23721
                shr     eax, 5
23722
                mov     [esp+4Ch], ebp
23723
                shr     edi, 15h
23724
                mov     ebp, ebx
23725
                shr     ebx, 5
23726
                and     eax, 7F8h
23727
                shr     ebp, 15h
23728
                and     edi, 7F8h
23729
                and     ebx, 7F8h
23730
                mov     ecx, [esi+eax+1800h]
23731
                mov     edx, [esi+eax+1804h]
23732
                xor     ecx, [esi+edi+1000h]
23733
                and     ebp, 7F8h
23734
                xor     edx, [esi+edi+1004h]
23735
                xor     ecx, [esi+ebx+800h]
23736
                xor     edx, [esi+ebx+804h]
23737
                xor     ecx, [esi+ebp]
23738
                xor     edx, [esi+ebp+4]
23739
                mov     eax, [esp+50h]
23740
                mov     ebx, [esp+54h]
23741
                add     eax, ecx
23742
                adc     ebx, edx
23743
                mov     ecx, eax
23744
                shr     ecx, 1Dh
23745
                mov     ebp, ebx
23746
                shl     ebx, 3
23747
                mov     edi, eax
23748
                shl     eax, 3
23749
                or      ebx, ecx
23750
                add     eax, edi
23751
                adc     ebx, ebp
23752
                mov     [esp+50h], eax
23753
                mov     [esp+54h], ebx
23754
                mov     eax, [esp+38h]
23755
                mov     ebx, [esp+3Ch]
23756
                mov     ecx, [esp+48h]
23757
                mov     edx, [esp+4Ch]
23758
                xor     eax, ecx
23759
                xor     ebx, edx
23760
                mov     edi, eax
23761
                mov     [esp+48h], eax
23762
                shr     eax, 0Dh
23763
                mov     ebp, ebx
23764
                and     edi, 0FFh
23765
                mov     [esp+4Ch], ebx
23766
                shl     edi, 3
23767
                and     ebp, 0FFh
23768
                shr     ebx, 0Dh
23769
                and     eax, 7F8h
23770
                shl     ebp, 3
23771
                mov     ecx, [esi+edi]
23772
                mov     edx, [esi+edi+4]
23773
                xor     ecx, [esi+eax+800h]
23774
                xor     edx, [esi+eax+804h]
23775
                and     ebx, 7F8h
23776
                xor     ecx, [esi+ebp+1000h]
23777
                xor     edx, [esi+ebp+1004h]
23778
                xor     ecx, [esi+ebx+1800h]
23779
                xor     edx, [esi+ebx+1804h]
23780
                mov     edi, [esp+50h]
23781
                mov     ebp, [esp+54h]
23782
                sub     edi, ecx
23783
                mov     eax, [esp+48h]
23784
                sbb     ebp, edx
23785
                mov     ebx, [esp+4Ch]
23786
                mov     [esp+50h], edi
23787
                mov     edi, eax
23788
                shr     eax, 5
23789
                mov     [esp+54h], ebp
23790
                shr     edi, 15h
23791
                mov     ebp, ebx
23792
                shr     ebx, 5
23793
                and     eax, 7F8h
23794
                shr     ebp, 15h
23795
                and     edi, 7F8h
23796
                and     ebx, 7F8h
23797
                mov     ecx, [esi+eax+1800h]
23798
                mov     edx, [esi+eax+1804h]
23799
                xor     ecx, [esi+edi+1000h]
23800
                and     ebp, 7F8h
23801
                xor     edx, [esi+edi+1004h]
23802
                xor     ecx, [esi+ebx+800h]
23803
                xor     edx, [esi+ebx+804h]
23804
                xor     ecx, [esi+ebp]
23805
                xor     edx, [esi+ebp+4]
23806
                mov     eax, [esp+40h]
23807
                mov     ebx, [esp+44h]
23808
                add     eax, ecx
23809
                adc     ebx, edx
23810
                mov     ecx, eax
23811
                shr     ecx, 1Dh
23812
                mov     ebp, ebx
23813
                shl     ebx, 3
23814
                mov     edi, eax
23815
                shl     eax, 3
23816
                or      ebx, ecx
23817
                add     eax, edi
23818
                adc     ebx, ebp
23819
                mov     [esp+40h], eax
23820
                mov     [esp+44h], ebx
23821
                mov     esi, [esp+60h]
23822
                test    esi, esi
23823
                jnz     @_yet_more_cycles
23824
                jmp     @_pass_loop_end
23825
23826
            @_yet_more_cycles:
23827
23828
                dec     esi
23829
                mov     [esp+60h], esi
23830
                mov     eax, [esp+38h]
23831
                mov     ebx, [esp+3Ch]
23832
                xor     eax, 0A5A5A5A5h
23833
                xor     ebx, 0A5A5A5A5h
23834
                mov     ecx, [esp]
23835
                mov     edx, [esp+4]
23836
                sub     ecx, eax
23837
                sbb     edx, ebx
23838
                mov     [esp], ecx
23839
                mov     [esp+4], edx
23840
                mov     eax, [esp+8]
23841
                mov     ebx, [esp+0Ch]
23842
                xor     eax, ecx
23843
                xor     ebx, edx
23844
                mov     [esp+8], eax
23845
                mov     edi, eax
23846
                mov     esi, eax
23847
                shr     edi, 0Dh
23848
                xor     eax, 0FFFFFFFFh
23849
                mov     [esp+0Ch], ebx
23850
                mov     ecx, [esp+10h]
23851
                shl     eax, 13h
23852
                mov     ebp, ebx
23853
                shl     ebx, 13h
23854
                mov     edx, [esp+14h]
23855
                add     esi, ecx
23856
                mov     ecx, [esp+20h]
23857
                adc     ebp, edx
23858
                or      edi, ebx
23859
                mov     [esp+10h], esi
23860
                xor     esi, eax
23861
                mov     [esp+14h], ebp
23862
                mov     eax, [esp+18h]
23863
                xor     ebp, 0FFFFFFFFh
23864
                mov     ebx, [esp+1Ch]
23865
                xor     ebp, edi
23866
                sub     eax, esi
23867
                sbb     ebx, ebp
23868
                mov     edx, [esp+24h]
23869
                mov     [esp+18h], eax
23870
                xor     eax, ecx
23871
                mov     [esp+1Ch], ebx
23872
                xor     ebx, edx
23873
                mov     ecx, [esp+28h]
23874
                mov     edx, [esp+2Ch]
23875
                mov     edi, ebx
23876
                mov     ebp, ebx
23877
                mov     [esp+20h], eax
23878
                xor     ebp, 0FFFFFFFFh
23879
                shl     ebx, 9
23880
                add     ecx, eax
23881
                adc     edx, edi
23882
                mov     [esp+24h], edi
23883
                shr     ebp, 17h
23884
                mov     [esp+28h], ecx
23885
                shr     eax, 17h
23886
                xor     ecx, 0FFFFFFFFh
23887
                or      ebx, eax
23888
                mov     [esp+2Ch], edx
23889
                mov     eax, [esp+30h]
23890
                xor     ecx, ebx
23891
                mov     ebx, [esp+34h]
23892
                xor     edx, ebp
23893
                mov     edi, [esp+38h]
23894
                sub     eax, ecx
23895
                mov     ebp, [esp+3Ch]
23896
                mov     [esp+30h], eax
23897
                sbb     ebx, edx
23898
                xor     edi, eax
23899
                xor     ebp, ebx
23900
                mov     [esp+34h], ebx
23901
                mov     eax, [esp]
23902
                mov     ecx, edi
23903
                xor     edi, 0FFFFFFFFh
23904
                mov     ebx, [esp+4]
23905
                shl     edi, 13h
23906
                mov     [esp+38h], ecx
23907
                add     eax, ecx
23908
                mov     [esp+3Ch], ebp
23909
                adc     ebx, ebp
23910
                xor     edi, eax
23911
                shr     ecx, 0Dh
23912
                mov     [esp], eax
23913
                shl     ebp, 13h
23914
                mov     [esp+4], ebx
23915
                mov     esi, [esp+8]
23916
                xor     ebx, 0FFFFFFFFh
23917
                or      ebp, ecx
23918
                mov     edx, [esp+0Ch]
23919
                xor     ebp, ebx
23920
                sub     esi, edi
23921
                mov     eax, [esp+10h]
23922
                mov     ebx, [esp+14h]
23923
                sbb     edx, ebp
23924
                mov     [esp+8], esi
23925
                xor     eax, esi
23926
                mov     [esp+0Ch], edx
23927
                mov     edi, [esp+18h]
23928
                mov     ebp, [esp+1Ch]
23929
                xor     ebx, edx
23930
                mov     [esp+10h], eax
23931
                add     edi, eax
23932
                mov     esi, ebx
23933
                adc     ebp, ebx
23934
                mov     [esp+14h], ebx
23935
                shr     eax, 17h
23936
                mov     ecx, [esp+20h]
23937
                xor     ebx, 0FFFFFFFFh
23938
                mov     edx, [esp+24h]
23939
                shl     esi, 9
23940
                mov     [esp+18h], edi
23941
                or      eax, esi
23942
                xor     edi, 0FFFFFFFFh
23943
                shr     ebx, 17h
23944
                mov     [esp+1Ch], ebp
23945
                xor     eax, edi
23946
                mov     edi, [esp+28h]
23947
                xor     ebx, ebp
23948
                sub     ecx, eax
23949
                mov     ebp, [esp+2Ch]
23950
                mov     [esp+20h], ecx
23951
                sbb     edx, ebx
23952
                xor     edi, ecx
23953
                mov     [esp+24h], edx
23954
                xor     ebp, edx
23955
                mov     eax, [esp+30h]
23956
                mov     ebx, [esp+34h]
23957
                mov     [esp+28h], edi
23958
                add     eax, edi
23959
                mov     [esp+2Ch], ebp
23960
                mov     ecx, [esp+38h]
23961
                adc     ebx, ebp
23962
                mov     edx, [esp+3Ch]
23963
                mov     [esp+30h], eax
23964
                xor     eax, 89ABCDEFh
23965
                mov     [esp+34h], ebx
23966
                xor     ebx, 1234567h
23967
                sub     ecx, eax
23968
                sbb     edx, ebx
23969
                mov     [esp+38h], ecx
23970
                mov     [esp+3Ch], edx
23971
                mov     eax, [esp+40h]
23972
                mov     ebx, [esp+44h]
23973
                mov     ecx, [esp+48h]
23974
                mov     edx, [esp+4Ch]
23975
                mov     [esp+48h], eax
23976
                mov     [esp+4Ch], ebx
23977
                mov     edi, [esp+50h]
23978
                mov     ebp, [esp+54h]
23979
                mov     [esp+50h], ecx
23980
                mov     [esp+54h], edx
23981
                mov     [esp+40h], edi
23982
                mov     [esp+44h], ebp
23983
                jmp     @_pass_loop
23984
23985
            @_pass_loop_end:
23986
                mov     esi, [esp+5Ch]
23987
                mov     eax, [esp+40h]
23988
                mov     ebx, [esp+44h]
23989
                mov     edi, [esp+48h]
23990
                mov     ebp, [esp+4Ch]
23991
                mov     ecx, [esi]
23992
                mov     edx, [esi+4]
23993
                xor     eax, ecx
23994
                xor     ebx, edx
23995
                mov     [esi], eax
23996
                mov     ecx, [esi+8]
23997
                mov     edx, [esi+0Ch]
23998
                mov     [esi+4], ebx
23999
                sub     edi, ecx
24000
                mov     ecx, [esi+10h]
24001
                mov     [esi+8], edi
24002
                sbb     ebp, edx
24003
                mov     edx, [esi+14h]
24004
                mov     [esi+0Ch], ebp
24005
                mov     eax, [esp+50h]
24006
                mov     ebx, [esp+54h]
24007
                add     ecx, eax
24008
                adc     edx, ebx
24009
                mov     [esi+10h], ecx
24010
                mov     [esi+14h], edx
24011
                mov     ebp, [esp+68h]
24012
                mov     esp, ebp
24013
                pop     ebp
24014
                pop     edi
24015
                pop     esi
24016
                pop     ebx
24017
end;
24018
{$ENDIF}
24019
24020
{$IFDEF THash_Panama_asm}
24021
procedure THash_Panama.DoPull;
24022
asm
24023
                push    ebx
24024
                push    esi
24025
                lea     edx, [eax].THash_Panama.FTap
24026
                push    edi
24027
                lea     edi, [eax].THash_Panama.FDigest
24028
                push    ebp
24029
                lea     eax, [eax].THash_Panama.FLFSRBuffer
24030
                mov     ebp, esp
24031
                add     esp, 0FFFFFF5Ch
24032
                and     esp, 0FFFFFFE0h
24033
                mov     [esp+88h], edi
24034
                mov     [esp+8Ch], edx
24035
                mov     ecx, 20h
24036
                mov     [esp+90h], eax
24037
                mov     [esp+0A0h], ebp
24038
                mov     eax, [edi]
24039
                mov     ebx, [edi+4]
24040
                mov     [esp], eax
24041
                mov     [esp+4], ebx
24042
                mov     ebp, [edi+8]
24043
                mov     esi, [edi+0Ch]
24044
                mov     [esp+8], ebp
24045
                mov     [esp+0Ch], esi
24046
                mov     eax, [edi+10h]
24047
                mov     ebx, [edi+14h]
24048
                mov     [esp+10h], eax
24049
                mov     [esp+14h], ebx
24050
                mov     ebp, [edi+18h]
24051
                mov     esi, [edi+1Ch]
24052
                mov     [esp+18h], ebp
24053
                mov     [esp+1Ch], esi
24054
                mov     eax, [edi+20h]
24055
                mov     ebx, [edi+24h]
24056
                mov     [esp+20h], eax
24057
                mov     [esp+24h], ebx
24058
                mov     ebp, [edi+28h]
24059
                mov     esi, [edi+2Ch]
24060
                mov     [esp+28h], ebp
24061
                mov     [esp+2Ch], esi
24062
                mov     eax, [edi+30h]
24063
                mov     ebx, [edi+34h]
24064
                mov     [esp+30h], eax
24065
                mov     [esp+34h], ebx
24066
                mov     ebp, [edi+38h]
24067
                mov     esi, [edi+3Ch]
24068
                mov     eax, [edi+40h]
24069
                mov     [esp+38h], ebp
24070
                mov     [esp+3Ch], esi
24071
                mov     [esp+40h], eax
24072
            @@_loop_start:
24073
                mov     esi, [esp+8Ch]
24074
                dec     ecx
24075
                mov     ebp, [esp+90h]
24076
                mov     [esp+9Ch], ecx
24077
                mov     edx, [esi]
24078
                mov     eax, edx
24079
                mov     ecx, edx
24080
                add     edx, 10h
24081
                dec     eax
24082
                add     ecx, 4
24083
                and     edx, 1Fh
24084
                and     eax, 1Fh
24085
                and     ecx, 1Fh
24086
                shl     edx, 5
24087
                mov     [esi], eax
24088
                shl     ecx, 5
24089
                mov     ebx, eax
24090
                shl     eax, 5
24091
                add     edx, ebp
24092
                add     ebx, 19h
24093
                add     eax, ebp
24094
                and     ebx, 1Fh
24095
                add     ecx, ebp
24096
                shl     ebx, 5
24097
                mov     [esp+98h], edx
24098
                add     ebx, ebp
24099
                mov     [esp+94h], ecx
24100
                mov     ecx, [ebx]
24101
                mov     edx, [eax+8]
24102
                mov     edi, [ebx+4]
24103
                mov     ebp, [eax+0Ch]
24104
                xor     ecx, edx
24105
                xor     edi, ebp
24106
                mov     [ebx], ecx
24107
                mov     [ebx+4], edi
24108
                mov     ecx, [ebx+8]
24109
                mov     edx, [eax+10h]
24110
                mov     edi, [ebx+0Ch]
24111
                mov     ebp, [eax+14h]
24112
                xor     ecx, edx
24113
                xor     edi, ebp
24114
                mov     [ebx+8], ecx
24115
                mov     [ebx+0Ch], edi
24116
                mov     ecx, [ebx+10h]
24117
                mov     edx, [eax+18h]
24118
                mov     edi, [ebx+14h]
24119
                mov     ebp, [eax+1Ch]
24120
                xor     ecx, edx
24121
                xor     edi, ebp
24122
                mov     [ebx+10h], ecx
24123
                mov     [ebx+14h], edi
24124
                mov     ecx, [ebx+18h]
24125
                mov     edx, [eax]
24126
                mov     edi, [ebx+1Ch]
24127
                mov     ebp, [eax+4]
24128
                xor     ecx, edx
24129
                xor     edi, ebp
24130
                mov     [ebx+18h], ecx
24131
                mov     [ebx+1Ch], edi
24132
                mov     ecx, [eax]
24133
                mov     edx, [esp+4]
24134
                mov     edi, [eax+4]
24135
                mov     ebp, [esp+8]
24136
                xor     ecx, edx
24137
                xor     edi, ebp
24138
                mov     [eax], ecx
24139
                mov     [eax+4], edi
24140
                mov     ecx, [eax+8]
24141
                mov     edx, [esp+0Ch]
24142
                mov     edi, [eax+0Ch]
24143
                mov     ebp, [esp+10h]
24144
                xor     ecx, edx
24145
                xor     edi, ebp
24146
                mov     [eax+8], ecx
24147
                mov     [eax+0Ch], edi
24148
                mov     ecx, [eax+10h]
24149
                mov     edx, [esp+14h]
24150
                mov     edi, [eax+14h]
24151
                mov     ebp, [esp+18h]
24152
                xor     ecx, edx
24153
                xor     edi, ebp
24154
                mov     [eax+10h], ecx
24155
                mov     [eax+14h], edi
24156
                mov     ecx, [eax+18h]
24157
                mov     edx, [esp+1Ch]
24158
                mov     edi, [eax+1Ch]
24159
                mov     ebp, [esp+20h]
24160
                xor     ecx, edx
24161
                xor     edi, ebp
24162
                mov     [eax+18h], ecx
24163
                mov     [eax+1Ch], edi
24164
                mov     eax, [esp]
24165
                mov     ebx, [esp+4]
24166
                mov     ecx, [esp+8]
24167
                mov     esi, ecx
24168
                xor     ecx, 0FFFFFFFFh
24169
                mov     ebp, ebx
24170
                or      ecx, ebx
24171
                xor     ecx, eax
24172
                mov     [esp+44h], ecx
24173
                mov     ecx, [esp+0Ch]
24174
                mov     edx, [esp+10h]
24175
                mov     eax, ecx
24176
                xor     ecx, 0FFFFFFFFh
24177
                mov     ebx, edx
24178
                xor     edx, 0FFFFFFFFh
24179
                or      ecx, esi
24180
                or      edx, eax
24181
                xor     ebp, ecx
24182
                mov     ecx, [esp+14h]
24183
                rol     ebp, 0Fh
24184
                xor     esi, edx
24185
                mov     edx, [esp+18h]
24186
                ror     esi, 9
24187
                mov     [esp+58h], ebp
24188
                mov     ebp, ecx
24189
                xor     ecx, 0FFFFFFFFh
24190
                mov     [esp+6Ch], esi
24191
                mov     esi, edx
24192
                xor     edx, 0FFFFFFFFh
24193
                or      ecx, ebx
24194
                or      edx, ebp
24195
                xor     eax, ecx
24196
                mov     ecx, [esp+1Ch]
24197
                ror     eax, 8
24198
                xor     ebx, edx
24199
                mov     edx, [esp+20h]
24200
                rol     ebx, 6
24201
                mov     [esp+80h], eax
24202
                mov     eax, ecx
24203
                xor     ecx, 0FFFFFFFFh
24204
                mov     [esp+50h], ebx
24205
                mov     ebx, edx
24206
                xor     edx, 0FFFFFFFFh
24207
                or      ecx, esi
24208
                or      edx, eax
24209
                xor     ebp, ecx
24210
                mov     ecx, [esp+24h]
24211
                rol     ebp, 4
24212
                xor     esi, edx
24213
                mov     edx, [esp+28h]
24214
                ror     esi, 5
24215
                mov     [esp+64h], ebp
24216
                mov     ebp, ecx
24217
                xor     ecx, 0FFFFFFFFh
24218
                mov     [esp+78h], esi
24219
                mov     esi, edx
24220
                xor     edx, 0FFFFFFFFh
24221
                or      ecx, ebx
24222
                or      edx, ebp
24223
                xor     eax, ecx
24224
                mov     ecx, [esp+2Ch]
24225
                rol     eax, 1
24226
                xor     ebx, edx
24227
                mov     edx, [esp+30h]
24228
                ror     ebx, 0Bh
24229
                mov     [esp+48h], eax
24230
                mov     eax, ecx
24231
                xor     ecx, 0FFFFFFFFh
24232
                mov     [esp+5Ch], ebx
24233
                mov     ebx, edx
24234
                xor     edx, 0FFFFFFFFh
24235
                or      ecx, esi
24236
                or      edx, eax
24237
                xor     ebp, ecx
24238
                mov     ecx, [esp+34h]
24239
                rol     ebp, 2
24240
                xor     esi, edx
24241
                mov     edx, [esp+38h]
24242
                rol     esi, 8
24243
                mov     [esp+70h], ebp
24244
                mov     ebp, ecx
24245
                xor     ecx, 0FFFFFFFFh
24246
                mov     [esp+84h], esi
24247
                mov     esi, edx
24248
                xor     edx, 0FFFFFFFFh
24249
                or      ecx, ebx
24250
                or      edx, ebp
24251
                xor     eax, ecx
24252
                mov     ecx, [esp+3Ch]
24253
                rol     eax, 0Ah
24254
                xor     ebx, edx
24255
                mov     edx, [esp+40h]
24256
                rol     ebx, 0Dh
24257
                mov     [esp+54h], eax
24258
                mov     eax, ecx
24259
                xor     ecx, 0FFFFFFFFh
24260
                mov     [esp+68h], ebx
24261
                mov     ebx, edx
24262
                xor     edx, 0FFFFFFFFh
24263
                or      ecx, esi
24264
                or      edx, eax
24265
                xor     ebp, ecx
24266
                mov     ecx, [esp]
24267
                rol     ebp, 9
24268
                xor     esi, edx
24269
                mov     edx, [esp+4]
24270
                rol     esi, 3
24271
                mov     [esp+7Ch], ebp
24272
                mov     ebp, ecx
24273
                xor     ecx, 0FFFFFFFFh
24274
                mov     [esp+4Ch], esi
24275
                mov     esi, edx
24276
                xor     edx, 0FFFFFFFFh
24277
                or      ecx, ebx
24278
                or      edx, ebp
24279
                xor     eax, ecx
24280
                xor     ebx, edx
24281
                ror     eax, 4
24282
                rol     ebx, 0Eh
24283
                mov     [esp+60h], eax
24284
                mov     [esp+74h], ebx
24285
                mov     eax, [esp+44h]
24286
                mov     ebx, [esp+48h]
24287
                mov     ecx, [esp+4Ch]
24288
                xor     eax, 1
24289
                mov     edx, [esp+50h]
24290
                xor     eax, ebx
24291
                mov     ebp, [esp+54h]
24292
                xor     eax, ebp
24293
                mov     esi, [esp+94h]
24294
                mov     [esp], eax
24295
                xor     ebx, ecx
24296
                mov     eax, [esp+58h]
24297
                xor     ecx, edx
24298
                mov     edi, [esp+5Ch]
24299
                xor     ebx, eax
24300
                xor     ecx, edi
24301
                xor     ebx, [esi]
24302
                xor     ecx, [esi+4]
24303
                mov     [esp+4], ebx
24304
                mov     [esp+8], ecx
24305
                xor     edx, ebp
24306
                mov     ecx, [esp+60h]
24307
                xor     ebp, eax
24308
                mov     ebx, [esp+64h]
24309
                xor     edx, ecx
24310
                xor     ebp, ebx
24311
                xor     edx, [esi+8]
24312
                xor     ebp, [esi+0Ch]
24313
                mov     [esp+0Ch], edx
24314
                mov     [esp+10h], ebp
24315
                xor     eax, edi
24316
                mov     edx, [esp+68h]
24317
                xor     edi, ecx
24318
                mov     ebp, [esp+6Ch]
24319
                xor     eax, edx
24320
                xor     edi, ebp
24321
                xor     eax, [esi+10h]
24322
                xor     edi, [esi+14h]
24323
                mov     [esp+14h], eax
24324
                mov     [esp+18h], edi
24325
                xor     ecx, ebx
24326
                mov     eax, [esp+70h]
24327
                xor     ebx, edx
24328
                mov     edi, [esp+74h]
24329
                xor     ecx, eax
24330
                xor     ebx, edi
24331
                xor     ecx, [esi+18h]
24332
                xor     ebx, [esi+1Ch]
24333
                mov     [esp+1Ch], ecx
24334
                mov     [esp+20h], ebx
24335
                mov     esi, [esp+98h]
24336
                xor     edx, ebp
24337
                mov     ecx, [esp+78h]
24338
                xor     ebp, eax
24339
                mov     ebx, [esp+7Ch]
24340
                xor     edx, ecx
24341
                xor     ebp, ebx
24342
                xor     edx, [esi]
24343
                xor     ebp, [esi+4]
24344
                mov     [esp+24h], edx
24345
                mov     [esp+28h], ebp
24346
                xor     eax, edi
24347
                mov     edx, [esp+80h]
24348
                xor     edi, ecx
24349
                mov     ebp, [esp+84h]
24350
                xor     eax, edx
24351
                xor     edi, ebp
24352
                xor     eax, [esi+8]
24353
                xor     edi, [esi+0Ch]
24354
                mov     [esp+2Ch], eax
24355
                mov     [esp+30h], edi
24356
                xor     ecx, ebx
24357
                mov     eax, [esp+44h]
24358
                xor     ebx, edx
24359
                mov     edi, [esp+48h]
24360
                xor     ecx, eax
24361
                xor     ebx, edi
24362
                xor     ecx, [esi+10h]
24363
                xor     ebx, [esi+14h]
24364
                mov     [esp+34h], ecx
24365
                mov     [esp+38h], ebx
24366
                mov     ecx, [esp+4Ch]
24367
                xor     edx, ebp
24368
                mov     ebx, [esp+50h]
24369
                xor     ebp, eax
24370
                xor     edx, ecx
24371
                xor     ebp, ebx
24372
                xor     edx, [esi+18h]
24373
                xor     ebp, [esi+1Ch]
24374
                mov     [esp+3Ch], edx
24375
                mov     [esp+40h], ebp
24376
                mov     ecx, [esp+9Ch]
24377
                test    ecx, ecx
24378
                jnz     @@_loop_start
24379
                mov     edi, [esp+88h]
24380
                mov     ebp, [esp+0A0h]
24381
                mov     eax, [esp+24h]
24382
                mov     ebx, [esp+28h]
24383
                mov     [edi], eax
24384
                mov     [edi+4], ebx
24385
                mov     ecx, [esp+2Ch]
24386
                mov     edx, [esp+30h]
24387
                mov     [edi+8], ecx
24388
                mov     [edi+0Ch], edx
24389
                mov     eax, [esp+34h]
24390
                mov     ebx, [esp+38h]
24391
                mov     [edi+10h], eax
24392
                mov     [edi+14h], ebx
24393
                mov     ecx, [esp+3Ch]
24394
                mov     edx, [esp+40h]
24395
                mov     esp, ebp
24396
                mov     [edi+18h], ecx
24397
                mov     [edi+1Ch], edx
24398
                pop     ebp
24399
                pop     edi
24400
                pop     esi
24401
                pop     ebx
24402
end;
24403
24404
procedure THash_Panama.DoTransform(Buffer: PUInt32Array);
24405
asm
24406
                push    ebx
24407
                push    esi
24408
                mov     esi, edx
24409
                push    edi
24410
                lea     edi, [eax].THash_Panama.FDigest
24411
                lea     edx, [eax].THash_Panama.FTap
24412
                push    ebp
24413
                lea     eax, [eax].THash_Panama.FLFSRBuffer
24414
24415
                mov     ebp, esp
24416
                add     esp, 0FFFFFF5Ch
24417
                and     esp, 0FFFFFFE0h
24418
                mov     [esp+88h], edi
24419
                mov     [esp+8Ch], esi
24420
                mov     [esp+90h], edx
24421
                mov     [esp+94h], eax
24422
                mov     [esp+0A0h], ebp
24423
                mov     eax, [edi]
24424
                mov     ebx, [edi+4]
24425
                mov     [esp], eax
24426
                mov     [esp+4], ebx
24427
                mov     ebp, [edi+8]
24428
                mov     esi, [edi+0Ch]
24429
                mov     [esp+8], ebp
24430
                mov     [esp+0Ch], esi
24431
                mov     eax, [edi+10h]
24432
                mov     ebx, [edi+14h]
24433
                mov     [esp+10h], eax
24434
                mov     [esp+14h], ebx
24435
                mov     ebp, [edi+18h]
24436
                mov     esi, [edi+1Ch]
24437
                mov     [esp+18h], ebp
24438
                mov     [esp+1Ch], esi
24439
                mov     eax, [edi+20h]
24440
                mov     ebx, [edi+24h]
24441
                mov     [esp+20h], eax
24442
                mov     [esp+24h], ebx
24443
                mov     ebp, [edi+28h]
24444
                mov     esi, [edi+2Ch]
24445
                mov     [esp+28h], ebp
24446
                mov     [esp+2Ch], esi
24447
                mov     eax, [edi+30h]
24448
                mov     ebx, [edi+34h]
24449
                mov     [esp+30h], eax
24450
                mov     [esp+34h], ebx
24451
                mov     ebp, [edi+38h]
24452
                mov     esi, [edi+3Ch]
24453
                mov     eax, [edi+40h]
24454
                mov     [esp+38h], ebp
24455
                mov     [esp+3Ch], esi
24456
                mov     [esp+40h], eax
24457
24458
                mov     eax, [esp]
24459
                mov     ebx, [esp+4]
24460
                mov     ecx, [esp+8]
24461
                mov     esi, ecx
24462
                xor     ecx, 0FFFFFFFFh
24463
                mov     ebp, ebx
24464
                or      ecx, ebx
24465
                xor     ecx, eax
24466
                mov     [esp+44h], ecx
24467
                mov     ecx, [esp+0Ch]
24468
                mov     edx, [esp+10h]
24469
                mov     eax, ecx
24470
                xor     ecx, 0FFFFFFFFh
24471
                mov     ebx, edx
24472
                xor     edx, 0FFFFFFFFh
24473
                or      ecx, esi
24474
                or      edx, eax
24475
                xor     ebp, ecx
24476
                mov     ecx, [esp+14h]
24477
                rol     ebp, 0Fh
24478
                xor     esi, edx
24479
                mov     edx, [esp+18h]
24480
                ror     esi, 9
24481
                mov     [esp+58h], ebp
24482
                mov     ebp, ecx
24483
                xor     ecx, 0FFFFFFFFh
24484
                mov     [esp+6Ch], esi
24485
                mov     esi, edx
24486
                xor     edx, 0FFFFFFFFh
24487
                or      ecx, ebx
24488
                or      edx, ebp
24489
                xor     eax, ecx
24490
                mov     ecx, [esp+1Ch]
24491
                ror     eax, 8
24492
                xor     ebx, edx
24493
                mov     edx, [esp+20h]
24494
                rol     ebx, 6
24495
                mov     [esp+80h], eax
24496
                mov     eax, ecx
24497
                xor     ecx, 0FFFFFFFFh
24498
                mov     [esp+50h], ebx
24499
                mov     ebx, edx
24500
                xor     edx, 0FFFFFFFFh
24501
                or      ecx, esi
24502
                or      edx, eax
24503
                xor     ebp, ecx
24504
                mov     ecx, [esp+24h]
24505
                rol     ebp, 4
24506
                xor     esi, edx
24507
                mov     edx, [esp+28h]
24508
                ror     esi, 5
24509
                mov     [esp+64h], ebp
24510
                mov     ebp, ecx
24511
                xor     ecx, 0FFFFFFFFh
24512
                mov     [esp+78h], esi
24513
                mov     esi, edx
24514
                xor     edx, 0FFFFFFFFh
24515
                or      ecx, ebx
24516
                or      edx, ebp
24517
                xor     eax, ecx
24518
                mov     ecx, [esp+2Ch]
24519
                rol     eax, 1
24520
                xor     ebx, edx
24521
                mov     edx, [esp+30h]
24522
                ror     ebx, 0Bh
24523
                mov     [esp+48h], eax
24524
                mov     eax, ecx
24525
                xor     ecx, 0FFFFFFFFh
24526
                mov     [esp+5Ch], ebx
24527
                mov     ebx, edx
24528
                xor     edx, 0FFFFFFFFh
24529
                or      ecx, esi
24530
                or      edx, eax
24531
                xor     ebp, ecx
24532
                mov     ecx, [esp+34h]
24533
                rol     ebp, 2
24534
                xor     esi, edx
24535
                mov     edx, [esp+38h]
24536
                rol     esi, 8
24537
                mov     [esp+70h], ebp
24538
                mov     ebp, ecx
24539
                xor     ecx, 0FFFFFFFFh
24540
                mov     [esp+84h], esi
24541
                mov     esi, edx
24542
                xor     edx, 0FFFFFFFFh
24543
                or      ecx, ebx
24544
                or      edx, ebp
24545
                xor     eax, ecx
24546
                mov     ecx, [esp+3Ch]
24547
                rol     eax, 0Ah
24548
                xor     ebx, edx
24549
                mov     edx, [esp+40h]
24550
                rol     ebx, 0Dh
24551
                mov     [esp+54h], eax
24552
                mov     eax, ecx
24553
                xor     ecx, 0FFFFFFFFh
24554
                mov     [esp+68h], ebx
24555
                mov     ebx, edx
24556
                xor     edx, 0FFFFFFFFh
24557
                or      ecx, esi
24558
                or      edx, eax
24559
                xor     ebp, ecx
24560
                mov     ecx, [esp]
24561
                rol     ebp, 9
24562
                xor     esi, edx
24563
                mov     edx, [esp+4]
24564
                rol     esi, 3
24565
                mov     [esp+7Ch], ebp
24566
                mov     ebp, ecx
24567
                xor     ecx, 0FFFFFFFFh
24568
                mov     [esp+4Ch], esi
24569
                mov     esi, edx
24570
                xor     edx, 0FFFFFFFFh
24571
                or      ecx, ebx
24572
                or      edx, ebp
24573
                xor     eax, ecx
24574
                xor     ebx, edx
24575
                ror     eax, 4
24576
                rol     ebx, 0Eh
24577
                mov     [esp+60h], eax
24578
                mov     [esp+74h], ebx
24579
                mov     esi, [esp+90h]
24580
                mov     ebp, [esp+94h]
24581
                mov     edx, [esi]
24582
                mov     eax, edx
24583
                add     edx, 10h
24584
                dec     eax
24585
                and     edx, 1Fh
24586
                and     eax, 1Fh
24587
                shl     edx, 5
24588
                mov     [esi], eax
24589
                add     edx, ebp
24590
                mov     ebx, eax
24591
                shl     eax, 5
24592
                add     ebx, 19h
24593
                add     eax, ebp
24594
                and     ebx, 1Fh
24595
                shl     ebx, 5
24596
                mov     [esp+98h], edx
24597
                add     ebx, ebp
24598
                mov     ecx, [ebx]
24599
                mov     edx, [eax+8]
24600
                mov     edi, [ebx+4]
24601
                mov     ebp, [eax+0Ch]
24602
                xor     ecx, edx
24603
                xor     edi, ebp
24604
                mov     [ebx], ecx
24605
                mov     [ebx+4], edi
24606
                mov     ecx, [ebx+8]
24607
                mov     edx, [eax+10h]
24608
                mov     edi, [ebx+0Ch]
24609
                mov     ebp, [eax+14h]
24610
                xor     ecx, edx
24611
                xor     edi, ebp
24612
                mov     [ebx+8], ecx
24613
                mov     [ebx+0Ch], edi
24614
                mov     ecx, [ebx+10h]
24615
                mov     edx, [eax+18h]
24616
                mov     edi, [ebx+14h]
24617
                mov     ebp, [eax+1Ch]
24618
                xor     ecx, edx
24619
                xor     edi, ebp
24620
                mov     [ebx+10h], ecx
24621
                mov     [ebx+14h], edi
24622
                mov     ecx, [ebx+18h]
24623
                mov     edx, [eax]
24624
                mov     edi, [ebx+1Ch]
24625
                mov     ebp, [eax+4]
24626
                xor     ecx, edx
24627
                xor     edi, ebp
24628
                mov     [ebx+18h], ecx
24629
                mov     [ebx+1Ch], edi
24630
                mov     ebx, [esp+8Ch]
24631
                mov     ecx, [eax]
24632
                mov     edx, [ebx]
24633
                mov     edi, [eax+4]
24634
                mov     ebp, [ebx+4]
24635
                xor     ecx, edx
24636
                xor     edi, ebp
24637
                mov     [eax], ecx
24638
                mov     [eax+4], edi
24639
                mov     ecx, [eax+8]
24640
                mov     edx, [ebx+8]
24641
                mov     edi, [eax+0Ch]
24642
                mov     ebp, [ebx+0Ch]
24643
                xor     ecx, edx
24644
                xor     edi, ebp
24645
                mov     [eax+8], ecx
24646
                mov     [eax+0Ch], edi
24647
                mov     ecx, [eax+10h]
24648
                mov     edx, [ebx+10h]
24649
                mov     edi, [eax+14h]
24650
                mov     ebp, [ebx+14h]
24651
                xor     ecx, edx
24652
                xor     edi, ebp
24653
                mov     [eax+10h], ecx
24654
                mov     [eax+14h], edi
24655
                mov     ecx, [eax+18h]
24656
                mov     edx, [ebx+18h]
24657
                mov     edi, [eax+1Ch]
24658
                mov     ebp, [ebx+1Ch]
24659
                xor     ecx, edx
24660
                xor     edi, ebp
24661
                mov     [eax+18h], ecx
24662
                mov     [eax+1Ch], edi
24663
                mov     eax, [esp+44h]
24664
                mov     ebx, [esp+48h]
24665
                mov     ecx, [esp+4Ch]
24666
                xor     eax, 1
24667
                mov     edx, [esp+50h]
24668
                xor     eax, ebx
24669
                mov     ebp, [esp+54h]
24670
                xor     eax, ebp
24671
                mov     esi, [esp+8Ch]
24672
                mov     [esp], eax
24673
                xor     ebx, ecx
24674
                mov     eax, [esp+58h]
24675
                xor     ecx, edx
24676
                mov     edi, [esp+5Ch]
24677
                xor     ebx, eax
24678
                xor     ecx, edi
24679
                xor     ebx, [esi]
24680
                xor     ecx, [esi+4]
24681
                mov     [esp+4], ebx
24682
                mov     [esp+8], ecx
24683
                xor     edx, ebp
24684
                mov     ecx, [esp+60h]
24685
                xor     ebp, eax
24686
                mov     ebx, [esp+64h]
24687
                xor     edx, ecx
24688
                xor     ebp, ebx
24689
                xor     edx, [esi+8]
24690
                xor     ebp, [esi+0Ch]
24691
                mov     [esp+0Ch], edx
24692
                mov     [esp+10h], ebp
24693
                xor     eax, edi
24694
                mov     edx, [esp+68h]
24695
                xor     edi, ecx
24696
                mov     ebp, [esp+6Ch]
24697
                xor     eax, edx
24698
                xor     edi, ebp
24699
                xor     eax, [esi+10h]
24700
                xor     edi, [esi+14h]
24701
                mov     [esp+14h], eax
24702
                mov     [esp+18h], edi
24703
                xor     ecx, ebx
24704
                mov     eax, [esp+70h]
24705
                xor     ebx, edx
24706
                mov     edi, [esp+74h]
24707
                xor     ecx, eax
24708
                xor     ebx, edi
24709
                xor     ecx, [esi+18h]
24710
                xor     ebx, [esi+1Ch]
24711
                add     esi, 20h
24712
                mov     [esp+1Ch], ecx
24713
                mov     [esp+20h], ebx
24714
                mov     [esp+8Ch], esi
24715
                mov     esi, [esp+98h]
24716
                xor     edx, ebp
24717
                mov     ecx, [esp+78h]
24718
                xor     ebp, eax
24719
                mov     ebx, [esp+7Ch]
24720
                xor     edx, ecx
24721
                xor     ebp, ebx
24722
                xor     edx, [esi]
24723
                xor     ebp, [esi+4]
24724
                mov     [esp+24h], edx
24725
                mov     [esp+28h], ebp
24726
                xor     eax, edi
24727
                mov     edx, [esp+80h]
24728
                xor     edi, ecx
24729
                mov     ebp, [esp+84h]
24730
                xor     eax, edx
24731
                xor     edi, ebp
24732
                xor     eax, [esi+8]
24733
                xor     edi, [esi+0Ch]
24734
                mov     [esp+2Ch], eax
24735
                mov     [esp+30h], edi
24736
                xor     ecx, ebx
24737
                mov     eax, [esp+44h]
24738
                xor     ebx, edx
24739
                mov     edi, [esp+48h]
24740
                xor     ecx, eax
24741
                xor     ebx, edi
24742
                xor     ecx, [esi+10h]
24743
                xor     ebx, [esi+14h]
24744
                mov     [esp+34h], ecx
24745
                mov     [esp+38h], ebx
24746
                mov     ecx, [esp+4Ch]
24747
                xor     edx, ebp
24748
                mov     ebx, [esp+50h]
24749
                xor     ebp, eax
24750
                xor     edx, ecx
24751
                xor     ebp, ebx
24752
                xor     edx, [esi+18h]
24753
                xor     ebp, [esi+1Ch]
24754
                mov     [esp+3Ch], edx
24755
                mov     [esp+40h], ebp
24756
24757
                mov     edi, [esp+88h]
24758
                mov     eax, [esp]
24759
                mov     ebx, [esp+4]
24760
                mov     [edi], eax
24761
                mov     [edi+4], ebx
24762
                mov     ebp, [esp+8]
24763
                mov     esi, [esp+0Ch]
24764
                mov     [edi+8], ebp
24765
                mov     [edi+0Ch], esi
24766
                mov     eax, [esp+10h]
24767
                mov     ebx, [esp+14h]
24768
                mov     [edi+10h], eax
24769
                mov     [edi+14h], ebx
24770
                mov     ebp, [esp+18h]
24771
                mov     esi, [esp+1Ch]
24772
                mov     [edi+18h], ebp
24773
                mov     [edi+1Ch], esi
24774
                mov     eax, [esp+20h]
24775
                mov     ebx, [esp+24h]
24776
                mov     [edi+20h], eax
24777
                mov     [edi+24h], ebx
24778
                mov     ebp, [esp+28h]
24779
                mov     esi, [esp+2Ch]
24780
                mov     [edi+28h], ebp
24781
                mov     [edi+2Ch], esi
24782
                mov     eax, [esp+30h]
24783
                mov     ebx, [esp+34h]
24784
                mov     [edi+30h], eax
24785
                mov     [edi+34h], ebx
24786
                mov     ebp, [esp+38h]
24787
                mov     esi, [esp+3Ch]
24788
                mov     eax, [esp+40h]
24789
                mov     [edi+38h], ebp
24790
                mov     [edi+3Ch], esi
24791
                mov     [edi+40h], eax
24792
                mov     ebp, [esp+0A0h]
24793
                mov     esp, ebp
24794
                pop     ebp
24795
                pop     edi
24796
                pop     esi
24797
                pop     ebx
24798
end;
24799
{$ENDIF}
24800
24801
{$IFDEF THashBaseWhirlpool_asm}
24802
procedure THashBaseWhirlpool.DoTransform(Buffer: PUInt32Array);
24803
asm
24804
                push    ebx
24805
                push    esi
24806
                push    edi
24807
                mov     esi, edx
24808
                lea     edi, [eax].THashBaseWhirlpool.FDigest
24809
                push    ebp
24810
                mov     ebx, [eax].THashBaseWhirlpool.FTableC
24811
                mov     eax, [eax].THashBaseWhirlpool.FTableR
24812
24813
                mov     ebp, esp
24814
                add     esp, 0FFFFFEE8h
24815
                and     esp, 0FFFFFFE0h
24816
                mov     [esp+100h], eax
24817
                mov     [esp+104h], ebx
24818
                mov     [esp+10Ch], edi
24819
                mov     [esp+110h], esi
24820
                mov     [esp+114h], ebp
24821
                xor     ebp, ebp
24822
                mov     eax, [edi]
24823
                mov     ebx, [edi+4]
24824
                mov     [esp+40h], eax
24825
                mov     ecx, [esi]
24826
                mov     edx, [esi+4]
24827
                mov     [esp+44h], ebx
24828
                xor     eax, ecx
24829
                xor     ebx, edx
24830
                mov     [esp], eax
24831
                mov     [esp+4], ebx
24832
                mov     eax, [edi+8]
24833
                mov     ebx, [edi+0Ch]
24834
                mov     [esp+48h], eax
24835
                mov     ecx, [esi+8]
24836
                mov     edx, [esi+0Ch]
24837
                mov     [esp+4Ch], ebx
24838
                xor     eax, ecx
24839
                xor     ebx, edx
24840
                mov     [esp+8], eax
24841
                mov     [esp+0Ch], ebx
24842
                mov     eax, [edi+10h]
24843
                mov     ebx, [edi+14h]
24844
                mov     [esp+50h], eax
24845
                mov     ecx, [esi+10h]
24846
                mov     edx, [esi+14h]
24847
                mov     [esp+54h], ebx
24848
                xor     eax, ecx
24849
                xor     ebx, edx
24850
                mov     [esp+10h], eax
24851
                mov     [esp+14h], ebx
24852
                mov     eax, [edi+18h]
24853
                mov     ebx, [edi+1Ch]
24854
                mov     [esp+58h], eax
24855
                mov     ecx, [esi+18h]
24856
                mov     edx, [esi+1Ch]
24857
                mov     [esp+5Ch], ebx
24858
                xor     eax, ecx
24859
                xor     ebx, edx
24860
                mov     [esp+18h], eax
24861
                mov     [esp+1Ch], ebx
24862
                mov     eax, [edi+20h]
24863
                mov     ebx, [edi+24h]
24864
                mov     [esp+60h], eax
24865
                mov     ecx, [esi+20h]
24866
                mov     edx, [esi+24h]
24867
                mov     [esp+64h], ebx
24868
                xor     eax, ecx
24869
                xor     ebx, edx
24870
                mov     [esp+20h], eax
24871
                mov     [esp+24h], ebx
24872
                mov     eax, [edi+28h]
24873
                mov     ebx, [edi+2Ch]
24874
                mov     [esp+68h], eax
24875
                mov     ecx, [esi+28h]
24876
                mov     edx, [esi+2Ch]
24877
                mov     [esp+6Ch], ebx
24878
                xor     eax, ecx
24879
                xor     ebx, edx
24880
                mov     [esp+28h], eax
24881
                mov     [esp+2Ch], ebx
24882
                mov     eax, [edi+30h]
24883
                mov     ebx, [edi+34h]
24884
                mov     [esp+70h], eax
24885
                mov     ecx, [esi+30h]
24886
                mov     edx, [esi+34h]
24887
                mov     [esp+74h], ebx
24888
                xor     eax, ecx
24889
                xor     ebx, edx
24890
                mov     [esp+30h], eax
24891
                mov     [esp+34h], ebx
24892
                mov     eax, [edi+38h]
24893
                mov     ebx, [edi+3Ch]
24894
                mov     [esp+78h], eax
24895
                mov     ecx, [esi+38h]
24896
                mov     edx, [esi+3Ch]
24897
                mov     [esp+7Ch], ebx
24898
                xor     eax, ecx
24899
                xor     ebx, edx
24900
                mov     [esp+38h], eax
24901
                mov     [esp+3Ch], ebx
24902
24903
            @@_loop_start:
24904
                mov     [esp+108h], ebp
24905
                mov     edi, [esp+100h]
24906
                mov     esi, [esp+104h]
24907
                mov     eax, [edi+ebp]
24908
                mov     ebx, [edi+ebp+4]
24909
                mov     ecx, [esp+40h]
24910
                mov     edx, [esp+78h]
24911
                and     ecx, 0FFh
24912
                shr     edx, 5
24913
                mov     edi, [esi+ecx*8]
24914
                and     edx, 7F8h
24915
                mov     ebp, [esi+ecx*8+4]
24916
                xor     eax, edi
24917
                mov     ecx, [esp+70h]
24918
                mov     edi, [esi+edx+800h]
24919
                xor     ebx, ebp
24920
                shr     ecx, 0Dh
24921
                mov     ebp, [esi+edx+804h]
24922
                and     ecx, 7F8h
24923
                xor     eax, edi
24924
                mov     edx, [esp+68h]
24925
                xor     ebx, ebp
24926
                shr     edx, 18h
24927
                mov     edi, [esi+ecx+1000h]
24928
                mov     ebp, [esi+ecx+1004h]
24929
                xor     eax, edi
24930
                mov     edi, [esi+edx*8+1800h]
24931
                xor     ebx, ebp
24932
                mov     ebp, [esi+edx*8+1804h]
24933
                xor     eax, edi
24934
                xor     ebx, ebp
24935
                mov     ecx, [esp+64h]
24936
                mov     edx, [esp+5Ch]
24937
                and     ecx, 0FFh
24938
                shr     edx, 5
24939
                mov     edi, [esi+ecx*8+2000h]
24940
                and     edx, 7F8h
24941
                mov     ebp, [esi+ecx*8+2004h]
24942
                xor     eax, edi
24943
                mov     ecx, [esp+54h]
24944
                mov     edi, [esi+edx+2800h]
24945
                xor     ebx, ebp
24946
                shr     ecx, 0Dh
24947
                mov     ebp, [esi+edx+2804h]
24948
                and     ecx, 7F8h
24949
                xor     eax, edi
24950
                mov     edx, [esp+4Ch]
24951
                xor     ebx, ebp
24952
                shr     edx, 18h
24953
                mov     edi, [esi+ecx+3000h]
24954
                mov     ebp, [esi+ecx+3004h]
24955
                xor     eax, edi
24956
                mov     edi, [esi+edx*8+3800h]
24957
                xor     ebx, ebp
24958
                mov     ebp, [esi+edx*8+3804h]
24959
                xor     eax, edi
24960
                xor     ebx, ebp
24961
                mov     [esp+80h], eax
24962
                mov     [esp+84h], ebx
24963
                mov     ecx, [esp+48h]
24964
                mov     edx, [esp+40h]
24965
                and     ecx, 0FFh
24966
                shr     edx, 5
24967
                mov     eax, [esi+ecx*8]
24968
                and     edx, 7F8h
24969
                mov     ebx, [esi+ecx*8+4]
24970
                mov     ecx, [esp+78h]
24971
                mov     edi, [esi+edx+800h]
24972
                shr     ecx, 0Dh
24973
                mov     ebp, [esi+edx+804h]
24974
                and     ecx, 7F8h
24975
                mov     edx, [esp+70h]
24976
                xor     eax, edi
24977
                xor     ebx, ebp
24978
                shr     edx, 18h
24979
                mov     edi, [esi+ecx+1000h]
24980
                mov     ebp, [esi+ecx+1004h]
24981
                mov     ecx, [esp+6Ch]
24982
                xor     eax, edi
24983
                mov     edi, [esi+edx*8+1800h]
24984
                and     ecx, 0FFh
24985
                xor     ebx, ebp
24986
                mov     ebp, [esi+edx*8+1804h]
24987
                mov     edx, [esp+64h]
24988
                xor     eax, edi
24989
                xor     ebx, ebp
24990
                shr     edx, 5
24991
                mov     edi, [esi+ecx*8+2000h]
24992
                mov     ebp, [esi+ecx*8+2004h]
24993
                and     edx, 7F8h
24994
                mov     ecx, [esp+5Ch]
24995
                xor     eax, edi
24996
                shr     ecx, 0Dh
24997
                xor     ebx, ebp
24998
                mov     edi, [esi+edx+2800h]
24999
                and     ecx, 7F8h
25000
                mov     ebp, [esi+edx+2804h]
25001
                xor     eax, edi
25002
                mov     edx, [esp+54h]
25003
                xor     ebx, ebp
25004
                shr     edx, 18h
25005
                mov     edi, [esi+ecx+3000h]
25006
                mov     ebp, [esi+ecx+3004h]
25007
                xor     eax, edi
25008
                mov     edi, [esi+edx*8+3800h]
25009
                xor     ebx, ebp
25010
                mov     ebp, [esi+edx*8+3804h]
25011
                xor     eax, edi
25012
                xor     ebx, ebp
25013
                mov     [esp+88h], eax
25014
                mov     [esp+8Ch], ebx
25015
                mov     ecx, [esp+50h]
25016
                mov     edx, [esp+48h]
25017
                and     ecx, 0FFh
25018
                shr     edx, 5
25019
                mov     eax, [esi+ecx*8]
25020
                and     edx, 7F8h
25021
                mov     ebx, [esi+ecx*8+4]
25022
                mov     ecx, [esp+40h]
25023
                mov     edi, [esi+edx+800h]
25024
                shr     ecx, 0Dh
25025
                mov     ebp, [esi+edx+804h]
25026
                and     ecx, 7F8h
25027
                mov     edx, [esp+78h]
25028
                xor     eax, edi
25029
                xor     ebx, ebp
25030
                shr     edx, 18h
25031
                mov     edi, [esi+ecx+1000h]
25032
                mov     ebp, [esi+ecx+1004h]
25033
                mov     ecx, [esp+74h]
25034
                xor     eax, edi
25035
                mov     edi, [esi+edx*8+1800h]
25036
                and     ecx, 0FFh
25037
                xor     ebx, ebp
25038
                mov     ebp, [esi+edx*8+1804h]
25039
                mov     edx, [esp+6Ch]
25040
                xor     eax, edi
25041
                xor     ebx, ebp
25042
                shr     edx, 5
25043
                mov     edi, [esi+ecx*8+2000h]
25044
                mov     ebp, [esi+ecx*8+2004h]
25045
                and     edx, 7F8h
25046
                mov     ecx, [esp+64h]
25047
                xor     eax, edi
25048
                shr     ecx, 0Dh
25049
                xor     ebx, ebp
25050
                mov     edi, [esi+edx+2800h]
25051
                and     ecx, 7F8h
25052
                mov     ebp, [esi+edx+2804h]
25053
                xor     eax, edi
25054
                mov     edx, [esp+5Ch]
25055
                xor     ebx, ebp
25056
                shr     edx, 18h
25057
                mov     edi, [esi+ecx+3000h]
25058
                mov     ebp, [esi+ecx+3004h]
25059
                xor     eax, edi
25060
                mov     edi, [esi+edx*8+3800h]
25061
                xor     ebx, ebp
25062
                mov     ebp, [esi+edx*8+3804h]
25063
                xor     eax, edi
25064
                xor     ebx, ebp
25065
                mov     [esp+90h], eax
25066
                mov     [esp+94h], ebx
25067
                mov     ecx, [esp+58h]
25068
                mov     edx, [esp+50h]
25069
                and     ecx, 0FFh
25070
                shr     edx, 5
25071
                mov     eax, [esi+ecx*8]
25072
                and     edx, 7F8h
25073
                mov     ebx, [esi+ecx*8+4]
25074
                mov     ecx, [esp+48h]
25075
                mov     edi, [esi+edx+800h]
25076
                shr     ecx, 0Dh
25077
                mov     ebp, [esi+edx+804h]
25078
                and     ecx, 7F8h
25079
                mov     edx, [esp+40h]
25080
                xor     eax, edi
25081
                xor     ebx, ebp
25082
                shr     edx, 18h
25083
                mov     edi, [esi+ecx+1000h]
25084
                mov     ebp, [esi+ecx+1004h]
25085
                mov     ecx, [esp+7Ch]
25086
                xor     eax, edi
25087
                mov     edi, [esi+edx*8+1800h]
25088
                and     ecx, 0FFh
25089
                xor     ebx, ebp
25090
                mov     ebp, [esi+edx*8+1804h]
25091
                mov     edx, [esp+74h]
25092
                xor     eax, edi
25093
                xor     ebx, ebp
25094
                shr     edx, 5
25095
                mov     edi, [esi+ecx*8+2000h]
25096
                mov     ebp, [esi+ecx*8+2004h]
25097
                and     edx, 7F8h
25098
                mov     ecx, [esp+6Ch]
25099
                xor     eax, edi
25100
                shr     ecx, 0Dh
25101
                xor     ebx, ebp
25102
                mov     edi, [esi+edx+2800h]
25103
                and     ecx, 7F8h
25104
                mov     ebp, [esi+edx+2804h]
25105
                xor     eax, edi
25106
                mov     edx, [esp+64h]
25107
                xor     ebx, ebp
25108
                shr     edx, 18h
25109
                mov     edi, [esi+ecx+3000h]
25110
                mov     ebp, [esi+ecx+3004h]
25111
                xor     eax, edi
25112
                mov     edi, [esi+edx*8+3800h]
25113
                xor     ebx, ebp
25114
                mov     ebp, [esi+edx*8+3804h]
25115
                xor     eax, edi
25116
                xor     ebx, ebp
25117
                mov     [esp+98h], eax
25118
                mov     [esp+9Ch], ebx
25119
                mov     ecx, [esp+60h]
25120
                mov     edx, [esp+58h]
25121
                and     ecx, 0FFh
25122
                shr     edx, 5
25123
                mov     eax, [esi+ecx*8]
25124
                and     edx, 7F8h
25125
                mov     ebx, [esi+ecx*8+4]
25126
                mov     ecx, [esp+50h]
25127
                mov     edi, [esi+edx+800h]
25128
                shr     ecx, 0Dh
25129
                mov     ebp, [esi+edx+804h]
25130
                and     ecx, 7F8h
25131
                mov     edx, [esp+48h]
25132
                xor     eax, edi
25133
                xor     ebx, ebp
25134
                shr     edx, 18h
25135
                mov     edi, [esi+ecx+1000h]
25136
                mov     ebp, [esi+ecx+1004h]
25137
                mov     ecx, [esp+44h]
25138
                xor     eax, edi
25139
                mov     edi, [esi+edx*8+1800h]
25140
                and     ecx, 0FFh
25141
                xor     ebx, ebp
25142
                mov     ebp, [esi+edx*8+1804h]
25143
                mov     edx, [esp+7Ch]
25144
                xor     eax, edi
25145
                xor     ebx, ebp
25146
                shr     edx, 5
25147
                mov     edi, [esi+ecx*8+2000h]
25148
                mov     ebp, [esi+ecx*8+2004h]
25149
                and     edx, 7F8h
25150
                mov     ecx, [esp+74h]
25151
                xor     eax, edi
25152
                shr     ecx, 0Dh
25153
                xor     ebx, ebp
25154
                mov     edi, [esi+edx+2800h]
25155
                and     ecx, 7F8h
25156
                mov     ebp, [esi+edx+2804h]
25157
                xor     eax, edi
25158
                mov     edx, [esp+6Ch]
25159
                xor     ebx, ebp
25160
                shr     edx, 18h
25161
                mov     edi, [esi+ecx+3000h]
25162
                mov     ebp, [esi+ecx+3004h]
25163
                xor     eax, edi
25164
                mov     edi, [esi+edx*8+3800h]
25165
                xor     ebx, ebp
25166
                mov     ebp, [esi+edx*8+3804h]
25167
                xor     eax, edi
25168
                xor     ebx, ebp
25169
                mov     [esp+0A0h], eax
25170
                mov     [esp+0A4h], ebx
25171
                mov     ecx, [esp+68h]
25172
                mov     edx, [esp+60h]
25173
                and     ecx, 0FFh
25174
                shr     edx, 5
25175
                mov     eax, [esi+ecx*8]
25176
                and     edx, 7F8h
25177
                mov     ebx, [esi+ecx*8+4]
25178
                mov     ecx, [esp+58h]
25179
                mov     edi, [esi+edx+800h]
25180
                shr     ecx, 0Dh
25181
                mov     ebp, [esi+edx+804h]
25182
                and     ecx, 7F8h
25183
                mov     edx, [esp+50h]
25184
                xor     eax, edi
25185
                xor     ebx, ebp
25186
                shr     edx, 18h
25187
                mov     edi, [esi+ecx+1000h]
25188
                mov     ebp, [esi+ecx+1004h]
25189
                mov     ecx, [esp+4Ch]
25190
                xor     eax, edi
25191
                mov     edi, [esi+edx*8+1800h]
25192
                and     ecx, 0FFh
25193
                xor     ebx, ebp
25194
                mov     ebp, [esi+edx*8+1804h]
25195
                mov     edx, [esp+44h]
25196
                xor     eax, edi
25197
                xor     ebx, ebp
25198
                shr     edx, 5
25199
                mov     edi, [esi+ecx*8+2000h]
25200
                mov     ebp, [esi+ecx*8+2004h]
25201
                and     edx, 7F8h
25202
                mov     ecx, [esp+7Ch]
25203
                xor     eax, edi
25204
                shr     ecx, 0Dh
25205
                xor     ebx, ebp
25206
                mov     edi, [esi+edx+2800h]
25207
                and     ecx, 7F8h
25208
                mov     ebp, [esi+edx+2804h]
25209
                xor     eax, edi
25210
                mov     edx, [esp+74h]
25211
                xor     ebx, ebp
25212
                shr     edx, 18h
25213
                mov     edi, [esi+ecx+3000h]
25214
                mov     ebp, [esi+ecx+3004h]
25215
                xor     eax, edi
25216
                mov     edi, [esi+edx*8+3800h]
25217
                xor     ebx, ebp
25218
                mov     ebp, [esi+edx*8+3804h]
25219
                xor     eax, edi
25220
                xor     ebx, ebp
25221
                mov     [esp+0A8h], eax
25222
                mov     [esp+0ACh], ebx
25223
                mov     ecx, [esp+70h]
25224
                mov     edx, [esp+68h]
25225
                and     ecx, 0FFh
25226
                shr     edx, 5
25227
                mov     eax, [esi+ecx*8]
25228
                and     edx, 7F8h
25229
                mov     ebx, [esi+ecx*8+4]
25230
                mov     ecx, [esp+60h]
25231
                mov     edi, [esi+edx+800h]
25232
                shr     ecx, 0Dh
25233
                mov     ebp, [esi+edx+804h]
25234
                and     ecx, 7F8h
25235
                mov     edx, [esp+58h]
25236
                xor     eax, edi
25237
                xor     ebx, ebp
25238
                shr     edx, 18h
25239
                mov     edi, [esi+ecx+1000h]
25240
                mov     ebp, [esi+ecx+1004h]
25241
                mov     ecx, [esp+54h]
25242
                xor     eax, edi
25243
                mov     edi, [esi+edx*8+1800h]
25244
                and     ecx, 0FFh
25245
                xor     ebx, ebp
25246
                mov     ebp, [esi+edx*8+1804h]
25247
                mov     edx, [esp+4Ch]
25248
                xor     eax, edi
25249
                xor     ebx, ebp
25250
                shr     edx, 5
25251
                mov     edi, [esi+ecx*8+2000h]
25252
                mov     ebp, [esi+ecx*8+2004h]
25253
                and     edx, 7F8h
25254
                mov     ecx, [esp+44h]
25255
                xor     eax, edi
25256
                shr     ecx, 0Dh
25257
                xor     ebx, ebp
25258
                mov     edi, [esi+edx+2800h]
25259
                and     ecx, 7F8h
25260
                mov     ebp, [esi+edx+2804h]
25261
                xor     eax, edi
25262
                mov     edx, [esp+7Ch]
25263
                xor     ebx, ebp
25264
                shr     edx, 18h
25265
                mov     edi, [esi+ecx+3000h]
25266
                mov     ebp, [esi+ecx+3004h]
25267
                xor     eax, edi
25268
                mov     edi, [esi+edx*8+3800h]
25269
                xor     ebx, ebp
25270
                mov     ebp, [esi+edx*8+3804h]
25271
                xor     eax, edi
25272
                xor     ebx, ebp
25273
                mov     [esp+0B0h], eax
25274
                mov     [esp+0B4h], ebx
25275
                mov     ecx, [esp+78h]
25276
                mov     edx, [esp+70h]
25277
                and     ecx, 0FFh
25278
                shr     edx, 5
25279
                mov     eax, [esi+ecx*8]
25280
                and     edx, 7F8h
25281
                mov     ebx, [esi+ecx*8+4]
25282
                mov     ecx, [esp+68h]
25283
                mov     edi, [esi+edx+800h]
25284
                shr     ecx, 0Dh
25285
                mov     ebp, [esi+edx+804h]
25286
                and     ecx, 7F8h
25287
                mov     edx, [esp+60h]
25288
                xor     eax, edi
25289
                xor     ebx, ebp
25290
                shr     edx, 18h
25291
                mov     edi, [esi+ecx+1000h]
25292
                mov     ebp, [esi+ecx+1004h]
25293
                mov     ecx, [esp+5Ch]
25294
                xor     eax, edi
25295
                mov     edi, [esi+edx*8+1800h]
25296
                and     ecx, 0FFh
25297
                xor     ebx, ebp
25298
                mov     ebp, [esi+edx*8+1804h]
25299
                mov     edx, [esp+54h]
25300
                xor     eax, edi
25301
                xor     ebx, ebp
25302
                shr     edx, 5
25303
                mov     edi, [esi+ecx*8+2000h]
25304
                mov     ebp, [esi+ecx*8+2004h]
25305
                and     edx, 7F8h
25306
                mov     ecx, [esp+4Ch]
25307
                xor     eax, edi
25308
                shr     ecx, 0Dh
25309
                xor     ebx, ebp
25310
                mov     edi, [esi+edx+2800h]
25311
                and     ecx, 7F8h
25312
                mov     ebp, [esi+edx+2804h]
25313
                xor     eax, edi
25314
                mov     edx, [esp+44h]
25315
                xor     ebx, ebp
25316
                shr     edx, 18h
25317
                mov     edi, [esi+ecx+3000h]
25318
                mov     ebp, [esi+ecx+3004h]
25319
                xor     eax, edi
25320
                mov     edi, [esi+edx*8+3800h]
25321
                xor     ebx, ebp
25322
                mov     ebp, [esi+edx*8+3804h]
25323
                xor     eax, edi
25324
                xor     ebx, ebp
25325
                mov     [esp+0B8h], eax
25326
                mov     [esp+0BCh], ebx
25327
                mov     eax, [esp+80h]
25328
                mov     ebx, [esp+84h]
25329
                mov     ecx, [esp]
25330
                mov     edx, [esp+38h]
25331
                and     ecx, 0FFh
25332
                shr     edx, 5
25333
                mov     edi, [esi+ecx*8]
25334
                and     edx, 7F8h
25335
                mov     ebp, [esi+ecx*8+4]
25336
                xor     eax, edi
25337
                mov     ecx, [esp+30h]
25338
                mov     edi, [esi+edx+800h]
25339
                xor     ebx, ebp
25340
                shr     ecx, 0Dh
25341
                mov     ebp, [esi+edx+804h]
25342
                and     ecx, 7F8h
25343
                xor     eax, edi
25344
                mov     edx, [esp+28h]
25345
                xor     ebx, ebp
25346
                shr     edx, 18h
25347
                mov     edi, [esi+ecx+1000h]
25348
                mov     ebp, [esi+ecx+1004h]
25349
                xor     eax, edi
25350
                mov     edi, [esi+edx*8+1800h]
25351
                xor     ebx, ebp
25352
                mov     ebp, [esi+edx*8+1804h]
25353
                xor     eax, edi
25354
                xor     ebx, ebp
25355
                mov     ecx, [esp+24h]
25356
                mov     edx, [esp+1Ch]
25357
                and     ecx, 0FFh
25358
                shr     edx, 5
25359
                mov     edi, [esi+ecx*8+2000h]
25360
                and     edx, 7F8h
25361
                mov     ebp, [esi+ecx*8+2004h]
25362
                xor     eax, edi
25363
                mov     ecx, [esp+14h]
25364
                mov     edi, [esi+edx+2800h]
25365
                xor     ebx, ebp
25366
                shr     ecx, 0Dh
25367
                mov     ebp, [esi+edx+2804h]
25368
                and     ecx, 7F8h
25369
                xor     eax, edi
25370
                mov     edx, [esp+0Ch]
25371
                xor     ebx, ebp
25372
                shr     edx, 18h
25373
                mov     edi, [esi+ecx+3000h]
25374
                mov     ebp, [esi+ecx+3004h]
25375
                xor     eax, edi
25376
                mov     edi, [esi+edx*8+3800h]
25377
                xor     ebx, ebp
25378
                mov     ebp, [esi+edx*8+3804h]
25379
                xor     eax, edi
25380
                xor     ebx, ebp
25381
                mov     [esp+0C0h], eax
25382
                mov     [esp+0C4h], ebx
25383
                mov     eax, [esp+88h]
25384
                mov     ebx, [esp+8Ch]
25385
                mov     ecx, [esp+8]
25386
                mov     edx, [esp]
25387
                and     ecx, 0FFh
25388
                shr     edx, 5
25389
                mov     edi, [esi+ecx*8]
25390
                and     edx, 7F8h
25391
                mov     ebp, [esi+ecx*8+4]
25392
                xor     eax, edi
25393
                mov     ecx, [esp+38h]
25394
                mov     edi, [esi+edx+800h]
25395
                xor     ebx, ebp
25396
                shr     ecx, 0Dh
25397
                mov     ebp, [esi+edx+804h]
25398
                and     ecx, 7F8h
25399
                xor     eax, edi
25400
                mov     edx, [esp+30h]
25401
                xor     ebx, ebp
25402
                shr     edx, 18h
25403
                mov     edi, [esi+ecx+1000h]
25404
                mov     ebp, [esi+ecx+1004h]
25405
                xor     eax, edi
25406
                mov     edi, [esi+edx*8+1800h]
25407
                xor     ebx, ebp
25408
                mov     ebp, [esi+edx*8+1804h]
25409
                xor     eax, edi
25410
                xor     ebx, ebp
25411
                mov     ecx, [esp+2Ch]
25412
                mov     edx, [esp+24h]
25413
                and     ecx, 0FFh
25414
                shr     edx, 5
25415
                mov     edi, [esi+ecx*8+2000h]
25416
                and     edx, 7F8h
25417
                mov     ebp, [esi+ecx*8+2004h]
25418
                xor     eax, edi
25419
                mov     ecx, [esp+1Ch]
25420
                mov     edi, [esi+edx+2800h]
25421
                xor     ebx, ebp
25422
                shr     ecx, 0Dh
25423
                mov     ebp, [esi+edx+2804h]
25424
                and     ecx, 7F8h
25425
                xor     eax, edi
25426
                mov     edx, [esp+14h]
25427
                xor     ebx, ebp
25428
                shr     edx, 18h
25429
                mov     edi, [esi+ecx+3000h]
25430
                mov     ebp, [esi+ecx+3004h]
25431
                xor     eax, edi
25432
                mov     edi, [esi+edx*8+3800h]
25433
                xor     ebx, ebp
25434
                mov     ebp, [esi+edx*8+3804h]
25435
                xor     eax, edi
25436
                xor     ebx, ebp
25437
                mov     [esp+0C8h], eax
25438
                mov     [esp+0CCh], ebx
25439
                mov     eax, [esp+90h]
25440
                mov     ebx, [esp+94h]
25441
                mov     ecx, [esp+10h]
25442
                mov     edx, [esp+8]
25443
                and     ecx, 0FFh
25444
                shr     edx, 5
25445
                mov     edi, [esi+ecx*8]
25446
                and     edx, 7F8h
25447
                mov     ebp, [esi+ecx*8+4]
25448
                xor     eax, edi
25449
                mov     ecx, [esp]
25450
                mov     edi, [esi+edx+800h]
25451
                xor     ebx, ebp
25452
                shr     ecx, 0Dh
25453
                mov     ebp, [esi+edx+804h]
25454
                and     ecx, 7F8h
25455
                xor     eax, edi
25456
                mov     edx, [esp+38h]
25457
                xor     ebx, ebp
25458
                shr     edx, 18h
25459
                mov     edi, [esi+ecx+1000h]
25460
                mov     ebp, [esi+ecx+1004h]
25461
                xor     eax, edi
25462
                mov     edi, [esi+edx*8+1800h]
25463
                xor     ebx, ebp
25464
                mov     ebp, [esi+edx*8+1804h]
25465
                xor     eax, edi
25466
                xor     ebx, ebp
25467
                mov     ecx, [esp+34h]
25468
                mov     edx, [esp+2Ch]
25469
                and     ecx, 0FFh
25470
                shr     edx, 5
25471
                mov     edi, [esi+ecx*8+2000h]
25472
                and     edx, 7F8h
25473
                mov     ebp, [esi+ecx*8+2004h]
25474
                xor     eax, edi
25475
                mov     ecx, [esp+24h]
25476
                mov     edi, [esi+edx+2800h]
25477
                xor     ebx, ebp
25478
                shr     ecx, 0Dh
25479
                mov     ebp, [esi+edx+2804h]
25480
                and     ecx, 7F8h
25481
                xor     eax, edi
25482
                mov     edx, [esp+1Ch]
25483
                xor     ebx, ebp
25484
                shr     edx, 18h
25485
                mov     edi, [esi+ecx+3000h]
25486
                mov     ebp, [esi+ecx+3004h]
25487
                xor     eax, edi
25488
                mov     edi, [esi+edx*8+3800h]
25489
                xor     ebx, ebp
25490
                mov     ebp, [esi+edx*8+3804h]
25491
                xor     eax, edi
25492
                xor     ebx, ebp
25493
                mov     [esp+0D0h], eax
25494
                mov     [esp+0D4h], ebx
25495
                mov     eax, [esp+98h]
25496
                mov     ebx, [esp+9Ch]
25497
                mov     ecx, [esp+18h]
25498
                mov     edx, [esp+10h]
25499
                and     ecx, 0FFh
25500
                shr     edx, 5
25501
                mov     edi, [esi+ecx*8]
25502
                and     edx, 7F8h
25503
                mov     ebp, [esi+ecx*8+4]
25504
                xor     eax, edi
25505
                mov     ecx, [esp+8]
25506
                mov     edi, [esi+edx+800h]
25507
                xor     ebx, ebp
25508
                shr     ecx, 0Dh
25509
                mov     ebp, [esi+edx+804h]
25510
                and     ecx, 7F8h
25511
                xor     eax, edi
25512
                mov     edx, [esp]
25513
                xor     ebx, ebp
25514
                shr     edx, 18h
25515
                mov     edi, [esi+ecx+1000h]
25516
                mov     ebp, [esi+ecx+1004h]
25517
                xor     eax, edi
25518
                mov     edi, [esi+edx*8+1800h]
25519
                xor     ebx, ebp
25520
                mov     ebp, [esi+edx*8+1804h]
25521
                xor     eax, edi
25522
                xor     ebx, ebp
25523
                mov     ecx, [esp+3Ch]
25524
                mov     edx, [esp+34h]
25525
                and     ecx, 0FFh
25526
                shr     edx, 5
25527
                mov     edi, [esi+ecx*8+2000h]
25528
                and     edx, 7F8h
25529
                mov     ebp, [esi+ecx*8+2004h]
25530
                xor     eax, edi
25531
                mov     ecx, [esp+2Ch]
25532
                mov     edi, [esi+edx+2800h]
25533
                xor     ebx, ebp
25534
                shr     ecx, 0Dh
25535
                mov     ebp, [esi+edx+2804h]
25536
                and     ecx, 7F8h
25537
                xor     eax, edi
25538
                mov     edx, [esp+24h]
25539
                xor     ebx, ebp
25540
                shr     edx, 18h
25541
                mov     edi, [esi+ecx+3000h]
25542
                mov     ebp, [esi+ecx+3004h]
25543
                xor     eax, edi
25544
                mov     edi, [esi+edx*8+3800h]
25545
                xor     ebx, ebp
25546
                mov     ebp, [esi+edx*8+3804h]
25547
                xor     eax, edi
25548
                xor     ebx, ebp
25549
                mov     [esp+0D8h], eax
25550
                mov     [esp+0DCh], ebx
25551
                mov     eax, [esp+0A0h]
25552
                mov     ebx, [esp+0A4h]
25553
                mov     ecx, [esp+20h]
25554
                mov     edx, [esp+18h]
25555
                and     ecx, 0FFh
25556
                shr     edx, 5
25557
                mov     edi, [esi+ecx*8]
25558
                and     edx, 7F8h
25559
                mov     ebp, [esi+ecx*8+4]
25560
                xor     eax, edi
25561
                mov     ecx, [esp+10h]
25562
                mov     edi, [esi+edx+800h]
25563
                xor     ebx, ebp
25564
                shr     ecx, 0Dh
25565
                mov     ebp, [esi+edx+804h]
25566
                and     ecx, 7F8h
25567
                xor     eax, edi
25568
                mov     edx, [esp+8]
25569
                xor     ebx, ebp
25570
                shr     edx, 18h
25571
                mov     edi, [esi+ecx+1000h]
25572
                mov     ebp, [esi+ecx+1004h]
25573
                xor     eax, edi
25574
                mov     edi, [esi+edx*8+1800h]
25575
                xor     ebx, ebp
25576
                mov     ebp, [esi+edx*8+1804h]
25577
                xor     eax, edi
25578
                xor     ebx, ebp
25579
                mov     ecx, [esp+4]
25580
                mov     edx, [esp+3Ch]
25581
                and     ecx, 0FFh
25582
                shr     edx, 5
25583
                mov     edi, [esi+ecx*8+2000h]
25584
                and     edx, 7F8h
25585
                mov     ebp, [esi+ecx*8+2004h]
25586
                xor     eax, edi
25587
                mov     ecx, [esp+34h]
25588
                mov     edi, [esi+edx+2800h]
25589
                xor     ebx, ebp
25590
                shr     ecx, 0Dh
25591
                mov     ebp, [esi+edx+2804h]
25592
                and     ecx, 7F8h
25593
                xor     eax, edi
25594
                mov     edx, [esp+2Ch]
25595
                xor     ebx, ebp
25596
                shr     edx, 18h
25597
                mov     edi, [esi+ecx+3000h]
25598
                mov     ebp, [esi+ecx+3004h]
25599
                xor     eax, edi
25600
                mov     edi, [esi+edx*8+3800h]
25601
                xor     ebx, ebp
25602
                mov     ebp, [esi+edx*8+3804h]
25603
                xor     eax, edi
25604
                xor     ebx, ebp
25605
                mov     [esp+0E0h], eax
25606
                mov     [esp+0E4h], ebx
25607
                mov     eax, [esp+0A8h]
25608
                mov     ebx, [esp+0ACh]
25609
                mov     ecx, [esp+28h]
25610
                mov     edx, [esp+20h]
25611
                and     ecx, 0FFh
25612
                shr     edx, 5
25613
                mov     edi, [esi+ecx*8]
25614
                and     edx, 7F8h
25615
                mov     ebp, [esi+ecx*8+4]
25616
                xor     eax, edi
25617
                mov     ecx, [esp+18h]
25618
                mov     edi, [esi+edx+800h]
25619
                xor     ebx, ebp
25620
                shr     ecx, 0Dh
25621
                mov     ebp, [esi+edx+804h]
25622
                and     ecx, 7F8h
25623
                xor     eax, edi
25624
                mov     edx, [esp+10h]
25625
                xor     ebx, ebp
25626
                shr     edx, 18h
25627
                mov     edi, [esi+ecx+1000h]
25628
                mov     ebp, [esi+ecx+1004h]
25629
                xor     eax, edi
25630
                mov     edi, [esi+edx*8+1800h]
25631
                xor     ebx, ebp
25632
                mov     ebp, [esi+edx*8+1804h]
25633
                xor     eax, edi
25634
                xor     ebx, ebp
25635
                mov     ecx, [esp+0Ch]
25636
                mov     edx, [esp+4]
25637
                and     ecx, 0FFh
25638
                shr     edx, 5
25639
                mov     edi, [esi+ecx*8+2000h]
25640
                and     edx, 7F8h
25641
                mov     ebp, [esi+ecx*8+2004h]
25642
                xor     eax, edi
25643
                mov     ecx, [esp+3Ch]
25644
                mov     edi, [esi+edx+2800h]
25645
                xor     ebx, ebp
25646
                shr     ecx, 0Dh
25647
                mov     ebp, [esi+edx+2804h]
25648
                and     ecx, 7F8h
25649
                xor     eax, edi
25650
                mov     edx, [esp+34h]
25651
                xor     ebx, ebp
25652
                shr     edx, 18h
25653
                mov     edi, [esi+ecx+3000h]
25654
                mov     ebp, [esi+ecx+3004h]
25655
                xor     eax, edi
25656
                mov     edi, [esi+edx*8+3800h]
25657
                xor     ebx, ebp
25658
                mov     ebp, [esi+edx*8+3804h]
25659
                xor     eax, edi
25660
                xor     ebx, ebp
25661
                mov     [esp+0E8h], eax
25662
                mov     [esp+0ECh], ebx
25663
                mov     eax, [esp+0B0h]
25664
                mov     ebx, [esp+0B4h]
25665
                mov     ecx, [esp+30h]
25666
                mov     edx, [esp+28h]
25667
                and     ecx, 0FFh
25668
                shr     edx, 5
25669
                mov     edi, [esi+ecx*8]
25670
                and     edx, 7F8h
25671
                mov     ebp, [esi+ecx*8+4]
25672
                xor     eax, edi
25673
                mov     ecx, [esp+20h]
25674
                mov     edi, [esi+edx+800h]
25675
                xor     ebx, ebp
25676
                shr     ecx, 0Dh
25677
                mov     ebp, [esi+edx+804h]
25678
                and     ecx, 7F8h
25679
                xor     eax, edi
25680
                mov     edx, [esp+18h]
25681
                xor     ebx, ebp
25682
                shr     edx, 18h
25683
                mov     edi, [esi+ecx+1000h]
25684
                mov     ebp, [esi+ecx+1004h]
25685
                xor     eax, edi
25686
                mov     edi, [esi+edx*8+1800h]
25687
                xor     ebx, ebp
25688
                mov     ebp, [esi+edx*8+1804h]
25689
                xor     eax, edi
25690
                xor     ebx, ebp
25691
                mov     ecx, [esp+14h]
25692
                mov     edx, [esp+0Ch]
25693
                and     ecx, 0FFh
25694
                shr     edx, 5
25695
                mov     edi, [esi+ecx*8+2000h]
25696
                and     edx, 7F8h
25697
                mov     ebp, [esi+ecx*8+2004h]
25698
                xor     eax, edi
25699
                mov     ecx, [esp+4]
25700
                mov     edi, [esi+edx+2800h]
25701
                xor     ebx, ebp
25702
                shr     ecx, 0Dh
25703
                mov     ebp, [esi+edx+2804h]
25704
                and     ecx, 7F8h
25705
                xor     eax, edi
25706
                mov     edx, [esp+3Ch]
25707
                xor     ebx, ebp
25708
                shr     edx, 18h
25709
                mov     edi, [esi+ecx+3000h]
25710
                mov     ebp, [esi+ecx+3004h]
25711
                xor     eax, edi
25712
                mov     edi, [esi+edx*8+3800h]
25713
                xor     ebx, ebp
25714
                mov     ebp, [esi+edx*8+3804h]
25715
                xor     eax, edi
25716
                xor     ebx, ebp
25717
                mov     [esp+0F0h], eax
25718
                mov     [esp+0F4h], ebx
25719
                mov     eax, [esp+0B8h]
25720
                mov     ebx, [esp+0BCh]
25721
                mov     ecx, [esp+38h]
25722
                mov     edx, [esp+30h]
25723
                and     ecx, 0FFh
25724
                shr     edx, 5
25725
                mov     edi, [esi+ecx*8]
25726
                and     edx, 7F8h
25727
                mov     ebp, [esi+ecx*8+4]
25728
                xor     eax, edi
25729
                mov     ecx, [esp+28h]
25730
                mov     edi, [esi+edx+800h]
25731
                xor     ebx, ebp
25732
                shr     ecx, 0Dh
25733
                mov     ebp, [esi+edx+804h]
25734
                and     ecx, 7F8h
25735
                xor     eax, edi
25736
                mov     edx, [esp+20h]
25737
                xor     ebx, ebp
25738
                shr     edx, 18h
25739
                mov     edi, [esi+ecx+1000h]
25740
                mov     ebp, [esi+ecx+1004h]
25741
                xor     eax, edi
25742
                mov     edi, [esi+edx*8+1800h]
25743
                xor     ebx, ebp
25744
                mov     ebp, [esi+edx*8+1804h]
25745
                xor     eax, edi
25746
                xor     ebx, ebp
25747
                mov     ecx, [esp+1Ch]
25748
                mov     edx, [esp+14h]
25749
                and     ecx, 0FFh
25750
                shr     edx, 5
25751
                mov     edi, [esi+ecx*8+2000h]
25752
                and     edx, 7F8h
25753
                mov     ebp, [esi+ecx*8+2004h]
25754
                xor     eax, edi
25755
                mov     ecx, [esp+0Ch]
25756
                mov     edi, [esi+edx+2800h]
25757
                xor     ebx, ebp
25758
                shr     ecx, 0Dh
25759
                mov     ebp, [esi+edx+2804h]
25760
                and     ecx, 7F8h
25761
                xor     eax, edi
25762
                mov     edx, [esp+4]
25763
                xor     ebx, ebp
25764
                shr     edx, 18h
25765
                mov     edi, [esi+ecx+3000h]
25766
                mov     ebp, [esi+ecx+3004h]
25767
                xor     eax, edi
25768
                mov     edi, [esi+edx*8+3800h]
25769
                xor     ebx, ebp
25770
                mov     ebp, [esi+edx*8+3804h]
25771
                xor     eax, edi
25772
                xor     ebx, ebp
25773
                mov     [esp+0F8h], eax
25774
                mov     [esp+0FCh], ebx
25775
                mov     ebp, [esp+108h]
25776
                mov     edi, [esp+100h]
25777
                mov     eax, [edi+ebp+8]
25778
                mov     ebx, [edi+ebp+0Ch]
25779
                mov     ecx, [esp+80h]
25780
                mov     edx, [esp+0B8h]
25781
                and     ecx, 0FFh
25782
                shr     edx, 5
25783
                mov     edi, [esi+ecx*8]
25784
                and     edx, 7F8h
25785
                mov     ebp, [esi+ecx*8+4]
25786
                xor     eax, edi
25787
                mov     ecx, [esp+0B0h]
25788
                mov     edi, [esi+edx+800h]
25789
                xor     ebx, ebp
25790
                shr     ecx, 0Dh
25791
                mov     ebp, [esi+edx+804h]
25792
                and     ecx, 7F8h
25793
                xor     eax, edi
25794
                mov     edx, [esp+0A8h]
25795
                xor     ebx, ebp
25796
                shr     edx, 18h
25797
                mov     edi, [esi+ecx+1000h]
25798
                mov     ebp, [esi+ecx+1004h]
25799
                xor     eax, edi
25800
                mov     edi, [esi+edx*8+1800h]
25801
                xor     ebx, ebp
25802
                mov     ebp, [esi+edx*8+1804h]
25803
                xor     eax, edi
25804
                xor     ebx, ebp
25805
                mov     ecx, [esp+0A4h]
25806
                mov     edx, [esp+9Ch]
25807
                and     ecx, 0FFh
25808
                shr     edx, 5
25809
                mov     edi, [esi+ecx*8+2000h]
25810
                and     edx, 7F8h
25811
                mov     ebp, [esi+ecx*8+2004h]
25812
                xor     eax, edi
25813
                mov     ecx, [esp+94h]
25814
                mov     edi, [esi+edx+2800h]
25815
                xor     ebx, ebp
25816
                shr     ecx, 0Dh
25817
                mov     ebp, [esi+edx+2804h]
25818
                and     ecx, 7F8h
25819
                xor     eax, edi
25820
                mov     edx, [esp+8Ch]
25821
                xor     ebx, ebp
25822
                shr     edx, 18h
25823
                mov     edi, [esi+ecx+3000h]
25824
                mov     ebp, [esi+ecx+3004h]
25825
                xor     eax, edi
25826
                mov     edi, [esi+edx*8+3800h]
25827
                xor     ebx, ebp
25828
                mov     ebp, [esi+edx*8+3804h]
25829
                xor     eax, edi
25830
                xor     ebx, ebp
25831
                mov     [esp+40h], eax
25832
                mov     [esp+44h], ebx
25833
                mov     ecx, [esp+88h]
25834
                mov     edx, [esp+80h]
25835
                and     ecx, 0FFh
25836
                shr     edx, 5
25837
                mov     eax, [esi+ecx*8]
25838
                and     edx, 7F8h
25839
                mov     ebx, [esi+ecx*8+4]
25840
                mov     ecx, [esp+0B8h]
25841
                mov     edi, [esi+edx+800h]
25842
                shr     ecx, 0Dh
25843
                mov     ebp, [esi+edx+804h]
25844
                and     ecx, 7F8h
25845
                mov     edx, [esp+0B0h]
25846
                xor     eax, edi
25847
                xor     ebx, ebp
25848
                shr     edx, 18h
25849
                mov     edi, [esi+ecx+1000h]
25850
                mov     ebp, [esi+ecx+1004h]
25851
                mov     ecx, [esp+0ACh]
25852
                xor     eax, edi
25853
                mov     edi, [esi+edx*8+1800h]
25854
                and     ecx, 0FFh
25855
                xor     ebx, ebp
25856
                mov     ebp, [esi+edx*8+1804h]
25857
                mov     edx, [esp+0A4h]
25858
                xor     eax, edi
25859
                xor     ebx, ebp
25860
                shr     edx, 5
25861
                mov     edi, [esi+ecx*8+2000h]
25862
                mov     ebp, [esi+ecx*8+2004h]
25863
                and     edx, 7F8h
25864
                mov     ecx, [esp+9Ch]
25865
                xor     eax, edi
25866
                shr     ecx, 0Dh
25867
                xor     ebx, ebp
25868
                mov     edi, [esi+edx+2800h]
25869
                and     ecx, 7F8h
25870
                mov     ebp, [esi+edx+2804h]
25871
                xor     eax, edi
25872
                mov     edx, [esp+94h]
25873
                xor     ebx, ebp
25874
                shr     edx, 18h
25875
                mov     edi, [esi+ecx+3000h]
25876
                mov     ebp, [esi+ecx+3004h]
25877
                xor     eax, edi
25878
                mov     edi, [esi+edx*8+3800h]
25879
                xor     ebx, ebp
25880
                mov     ebp, [esi+edx*8+3804h]
25881
                xor     eax, edi
25882
                xor     ebx, ebp
25883
                mov     [esp+48h], eax
25884
                mov     [esp+4Ch], ebx
25885
                mov     ecx, [esp+90h]
25886
                mov     edx, [esp+88h]
25887
                and     ecx, 0FFh
25888
                shr     edx, 5
25889
                mov     eax, [esi+ecx*8]
25890
                and     edx, 7F8h
25891
                mov     ebx, [esi+ecx*8+4]
25892
                mov     ecx, [esp+80h]
25893
                mov     edi, [esi+edx+800h]
25894
                shr     ecx, 0Dh
25895
                mov     ebp, [esi+edx+804h]
25896
                and     ecx, 7F8h
25897
                mov     edx, [esp+0B8h]
25898
                xor     eax, edi
25899
                xor     ebx, ebp
25900
                shr     edx, 18h
25901
                mov     edi, [esi+ecx+1000h]
25902
                mov     ebp, [esi+ecx+1004h]
25903
                mov     ecx, [esp+0B4h]
25904
                xor     eax, edi
25905
                mov     edi, [esi+edx*8+1800h]
25906
                and     ecx, 0FFh
25907
                xor     ebx, ebp
25908
                mov     ebp, [esi+edx*8+1804h]
25909
                mov     edx, [esp+0ACh]
25910
                xor     eax, edi
25911
                xor     ebx, ebp
25912
                shr     edx, 5
25913
                mov     edi, [esi+ecx*8+2000h]
25914
                mov     ebp, [esi+ecx*8+2004h]
25915
                and     edx, 7F8h
25916
                mov     ecx, [esp+0A4h]
25917
                xor     eax, edi
25918
                shr     ecx, 0Dh
25919
                xor     ebx, ebp
25920
                mov     edi, [esi+edx+2800h]
25921
                and     ecx, 7F8h
25922
                mov     ebp, [esi+edx+2804h]
25923
                xor     eax, edi
25924
                mov     edx, [esp+9Ch]
25925
                xor     ebx, ebp
25926
                shr     edx, 18h
25927
                mov     edi, [esi+ecx+3000h]
25928
                mov     ebp, [esi+ecx+3004h]
25929
                xor     eax, edi
25930
                mov     edi, [esi+edx*8+3800h]
25931
                xor     ebx, ebp
25932
                mov     ebp, [esi+edx*8+3804h]
25933
                xor     eax, edi
25934
                xor     ebx, ebp
25935
                mov     [esp+50h], eax
25936
                mov     [esp+54h], ebx
25937
                mov     ecx, [esp+98h]
25938
                mov     edx, [esp+90h]
25939
                and     ecx, 0FFh
25940
                shr     edx, 5
25941
                mov     eax, [esi+ecx*8]
25942
                and     edx, 7F8h
25943
                mov     ebx, [esi+ecx*8+4]
25944
                mov     ecx, [esp+88h]
25945
                mov     edi, [esi+edx+800h]
25946
                shr     ecx, 0Dh
25947
                mov     ebp, [esi+edx+804h]
25948
                and     ecx, 7F8h
25949
                mov     edx, [esp+80h]
25950
                xor     eax, edi
25951
                xor     ebx, ebp
25952
                shr     edx, 18h
25953
                mov     edi, [esi+ecx+1000h]
25954
                mov     ebp, [esi+ecx+1004h]
25955
                mov     ecx, [esp+0BCh]
25956
                xor     eax, edi
25957
                mov     edi, [esi+edx*8+1800h]
25958
                and     ecx, 0FFh
25959
                xor     ebx, ebp
25960
                mov     ebp, [esi+edx*8+1804h]
25961
                mov     edx, [esp+0B4h]
25962
                xor     eax, edi
25963
                xor     ebx, ebp
25964
                shr     edx, 5
25965
                mov     edi, [esi+ecx*8+2000h]
25966
                mov     ebp, [esi+ecx*8+2004h]
25967
                and     edx, 7F8h
25968
                mov     ecx, [esp+0ACh]
25969
                xor     eax, edi
25970
                shr     ecx, 0Dh
25971
                xor     ebx, ebp
25972
                mov     edi, [esi+edx+2800h]
25973
                and     ecx, 7F8h
25974
                mov     ebp, [esi+edx+2804h]
25975
                xor     eax, edi
25976
                mov     edx, [esp+0A4h]
25977
                xor     ebx, ebp
25978
                shr     edx, 18h
25979
                mov     edi, [esi+ecx+3000h]
25980
                mov     ebp, [esi+ecx+3004h]
25981
                xor     eax, edi
25982
                mov     edi, [esi+edx*8+3800h]
25983
                xor     ebx, ebp
25984
                mov     ebp, [esi+edx*8+3804h]
25985
                xor     eax, edi
25986
                xor     ebx, ebp
25987
                mov     [esp+58h], eax
25988
                mov     [esp+5Ch], ebx
25989
                mov     ecx, [esp+0A0h]
25990
                mov     edx, [esp+98h]
25991
                and     ecx, 0FFh
25992
                shr     edx, 5
25993
                mov     eax, [esi+ecx*8]
25994
                and     edx, 7F8h
25995
                mov     ebx, [esi+ecx*8+4]
25996
                mov     ecx, [esp+90h]
25997
                mov     edi, [esi+edx+800h]
25998
                shr     ecx, 0Dh
25999
                mov     ebp, [esi+edx+804h]
26000
                and     ecx, 7F8h
26001
                mov     edx, [esp+88h]
26002
                xor     eax, edi
26003
                xor     ebx, ebp
26004
                shr     edx, 18h
26005
                mov     edi, [esi+ecx+1000h]
26006
                mov     ebp, [esi+ecx+1004h]
26007
                mov     ecx, [esp+84h]
26008
                xor     eax, edi
26009
                mov     edi, [esi+edx*8+1800h]
26010
                and     ecx, 0FFh
26011
                xor     ebx, ebp
26012
                mov     ebp, [esi+edx*8+1804h]
26013
                mov     edx, [esp+0BCh]
26014
                xor     eax, edi
26015
                xor     ebx, ebp
26016
                shr     edx, 5
26017
                mov     edi, [esi+ecx*8+2000h]
26018
                mov     ebp, [esi+ecx*8+2004h]
26019
                and     edx, 7F8h
26020
                mov     ecx, [esp+0B4h]
26021
                xor     eax, edi
26022
                shr     ecx, 0Dh
26023
                xor     ebx, ebp
26024
                mov     edi, [esi+edx+2800h]
26025
                and     ecx, 7F8h
26026
                mov     ebp, [esi+edx+2804h]
26027
                xor     eax, edi
26028
                mov     edx, [esp+0ACh]
26029
                xor     ebx, ebp
26030
                shr     edx, 18h
26031
                mov     edi, [esi+ecx+3000h]
26032
                mov     ebp, [esi+ecx+3004h]
26033
                xor     eax, edi
26034
                mov     edi, [esi+edx*8+3800h]
26035
                xor     ebx, ebp
26036
                mov     ebp, [esi+edx*8+3804h]
26037
                xor     eax, edi
26038
                xor     ebx, ebp
26039
                mov     [esp+60h], eax
26040
                mov     [esp+64h], ebx
26041
                mov     ecx, [esp+0A8h]
26042
                mov     edx, [esp+0A0h]
26043
                and     ecx, 0FFh
26044
                shr     edx, 5
26045
                mov     eax, [esi+ecx*8]
26046
                and     edx, 7F8h
26047
                mov     ebx, [esi+ecx*8+4]
26048
                mov     ecx, [esp+98h]
26049
                mov     edi, [esi+edx+800h]
26050
                shr     ecx, 0Dh
26051
                mov     ebp, [esi+edx+804h]
26052
                and     ecx, 7F8h
26053
                mov     edx, [esp+90h]
26054
                xor     eax, edi
26055
                xor     ebx, ebp
26056
                shr     edx, 18h
26057
                mov     edi, [esi+ecx+1000h]
26058
                mov     ebp, [esi+ecx+1004h]
26059
                mov     ecx, [esp+8Ch]
26060
                xor     eax, edi
26061
                mov     edi, [esi+edx*8+1800h]
26062
                and     ecx, 0FFh
26063
                xor     ebx, ebp
26064
                mov     ebp, [esi+edx*8+1804h]
26065
                mov     edx, [esp+84h]
26066
                xor     eax, edi
26067
                xor     ebx, ebp
26068
                shr     edx, 5
26069
                mov     edi, [esi+ecx*8+2000h]
26070
                mov     ebp, [esi+ecx*8+2004h]
26071
                and     edx, 7F8h
26072
                mov     ecx, [esp+0BCh]
26073
                xor     eax, edi
26074
                shr     ecx, 0Dh
26075
                xor     ebx, ebp
26076
                mov     edi, [esi+edx+2800h]
26077
                and     ecx, 7F8h
26078
                mov     ebp, [esi+edx+2804h]
26079
                xor     eax, edi
26080
                mov     edx, [esp+0B4h]
26081
                xor     ebx, ebp
26082
                shr     edx, 18h
26083
                mov     edi, [esi+ecx+3000h]
26084
                mov     ebp, [esi+ecx+3004h]
26085
                xor     eax, edi
26086
                mov     edi, [esi+edx*8+3800h]
26087
                xor     ebx, ebp
26088
                mov     ebp, [esi+edx*8+3804h]
26089
                xor     eax, edi
26090
                xor     ebx, ebp
26091
                mov     [esp+68h], eax
26092
                mov     [esp+6Ch], ebx
26093
                mov     ecx, [esp+0B0h]
26094
                mov     edx, [esp+0A8h]
26095
                and     ecx, 0FFh
26096
                shr     edx, 5
26097
                mov     eax, [esi+ecx*8]
26098
                and     edx, 7F8h
26099
                mov     ebx, [esi+ecx*8+4]
26100
                mov     ecx, [esp+0A0h]
26101
                mov     edi, [esi+edx+800h]
26102
                shr     ecx, 0Dh
26103
                mov     ebp, [esi+edx+804h]
26104
                and     ecx, 7F8h
26105
                mov     edx, [esp+98h]
26106
                xor     eax, edi
26107
                xor     ebx, ebp
26108
                shr     edx, 18h
26109
                mov     edi, [esi+ecx+1000h]
26110
                mov     ebp, [esi+ecx+1004h]
26111
                mov     ecx, [esp+94h]
26112
                xor     eax, edi
26113
                mov     edi, [esi+edx*8+1800h]
26114
                and     ecx, 0FFh
26115
                xor     ebx, ebp
26116
                mov     ebp, [esi+edx*8+1804h]
26117
                mov     edx, [esp+8Ch]
26118
                xor     eax, edi
26119
                xor     ebx, ebp
26120
                shr     edx, 5
26121
                mov     edi, [esi+ecx*8+2000h]
26122
                mov     ebp, [esi+ecx*8+2004h]
26123
                and     edx, 7F8h
26124
                mov     ecx, [esp+84h]
26125
                xor     eax, edi
26126
                shr     ecx, 0Dh
26127
                xor     ebx, ebp
26128
                mov     edi, [esi+edx+2800h]
26129
                and     ecx, 7F8h
26130
                mov     ebp, [esi+edx+2804h]
26131
                xor     eax, edi
26132
                mov     edx, [esp+0BCh]
26133
                xor     ebx, ebp
26134
                shr     edx, 18h
26135
                mov     edi, [esi+ecx+3000h]
26136
                mov     ebp, [esi+ecx+3004h]
26137
                xor     eax, edi
26138
                mov     edi, [esi+edx*8+3800h]
26139
                xor     ebx, ebp
26140
                mov     ebp, [esi+edx*8+3804h]
26141
                xor     eax, edi
26142
                xor     ebx, ebp
26143
                mov     [esp+70h], eax
26144
                mov     [esp+74h], ebx
26145
                mov     ecx, [esp+0B8h]
26146
                mov     edx, [esp+0B0h]
26147
                and     ecx, 0FFh
26148
                shr     edx, 5
26149
                mov     eax, [esi+ecx*8]
26150
                and     edx, 7F8h
26151
                mov     ebx, [esi+ecx*8+4]
26152
                mov     ecx, [esp+0A8h]
26153
                mov     edi, [esi+edx+800h]
26154
                shr     ecx, 0Dh
26155
                mov     ebp, [esi+edx+804h]
26156
                and     ecx, 7F8h
26157
                mov     edx, [esp+0A0h]
26158
                xor     eax, edi
26159
                xor     ebx, ebp
26160
                shr     edx, 18h
26161
                mov     edi, [esi+ecx+1000h]
26162
                mov     ebp, [esi+ecx+1004h]
26163
                mov     ecx, [esp+9Ch]
26164
                xor     eax, edi
26165
                mov     edi, [esi+edx*8+1800h]
26166
                and     ecx, 0FFh
26167
                xor     ebx, ebp
26168
                mov     ebp, [esi+edx*8+1804h]
26169
                mov     edx, [esp+94h]
26170
                xor     eax, edi
26171
                xor     ebx, ebp
26172
                shr     edx, 5
26173
                mov     edi, [esi+ecx*8+2000h]
26174
                mov     ebp, [esi+ecx*8+2004h]
26175
                and     edx, 7F8h
26176
                mov     ecx, [esp+8Ch]
26177
                xor     eax, edi
26178
                shr     ecx, 0Dh
26179
                xor     ebx, ebp
26180
                mov     edi, [esi+edx+2800h]
26181
                and     ecx, 7F8h
26182
                mov     ebp, [esi+edx+2804h]
26183
                xor     eax, edi
26184
                mov     edx, [esp+84h]
26185
                xor     ebx, ebp
26186
                shr     edx, 18h
26187
                mov     edi, [esi+ecx+3000h]
26188
                mov     ebp, [esi+ecx+3004h]
26189
                xor     eax, edi
26190
                mov     edi, [esi+edx*8+3800h]
26191
                xor     ebx, ebp
26192
                mov     ebp, [esi+edx*8+3804h]
26193
                xor     eax, edi
26194
                xor     ebx, ebp
26195
                mov     [esp+78h], eax
26196
                mov     [esp+7Ch], ebx
26197
                mov     eax, [esp+40h]
26198
                mov     ebx, [esp+44h]
26199
                mov     ecx, [esp+0C0h]
26200
                mov     edx, [esp+0F8h]
26201
                and     ecx, 0FFh
26202
                shr     edx, 5
26203
                mov     edi, [esi+ecx*8]
26204
                and     edx, 7F8h
26205
                mov     ebp, [esi+ecx*8+4]
26206
                xor     eax, edi
26207
                mov     ecx, [esp+0F0h]
26208
                mov     edi, [esi+edx+800h]
26209
                xor     ebx, ebp
26210
                shr     ecx, 0Dh
26211
                mov     ebp, [esi+edx+804h]
26212
                and     ecx, 7F8h
26213
                xor     eax, edi
26214
                mov     edx, [esp+0E8h]
26215
                xor     ebx, ebp
26216
                shr     edx, 18h
26217
                mov     edi, [esi+ecx+1000h]
26218
                mov     ebp, [esi+ecx+1004h]
26219
                xor     eax, edi
26220
                mov     edi, [esi+edx*8+1800h]
26221
                xor     ebx, ebp
26222
                mov     ebp, [esi+edx*8+1804h]
26223
                xor     eax, edi
26224
                xor     ebx, ebp
26225
                mov     ecx, [esp+0E4h]
26226
                mov     edx, [esp+0DCh]
26227
                and     ecx, 0FFh
26228
                shr     edx, 5
26229
                mov     edi, [esi+ecx*8+2000h]
26230
                and     edx, 7F8h
26231
                mov     ebp, [esi+ecx*8+2004h]
26232
                xor     eax, edi
26233
                mov     ecx, [esp+0D4h]
26234
                mov     edi, [esi+edx+2800h]
26235
                xor     ebx, ebp
26236
                shr     ecx, 0Dh
26237
                mov     ebp, [esi+edx+2804h]
26238
                and     ecx, 7F8h
26239
                xor     eax, edi
26240
                mov     edx, [esp+0CCh]
26241
                xor     ebx, ebp
26242
                shr     edx, 18h
26243
                mov     edi, [esi+ecx+3000h]
26244
                mov     ebp, [esi+ecx+3004h]
26245
                xor     eax, edi
26246
                mov     edi, [esi+edx*8+3800h]
26247
                xor     ebx, ebp
26248
                mov     ebp, [esi+edx*8+3804h]
26249
                xor     eax, edi
26250
                xor     ebx, ebp
26251
                mov     [esp], eax
26252
                mov     [esp+4], ebx
26253
                mov     eax, [esp+48h]
26254
                mov     ebx, [esp+4Ch]
26255
                mov     ecx, [esp+0C8h]
26256
                mov     edx, [esp+0C0h]
26257
                and     ecx, 0FFh
26258
                shr     edx, 5
26259
                mov     edi, [esi+ecx*8]
26260
                and     edx, 7F8h
26261
                mov     ebp, [esi+ecx*8+4]
26262
                xor     eax, edi
26263
                mov     ecx, [esp+0F8h]
26264
                mov     edi, [esi+edx+800h]
26265
                xor     ebx, ebp
26266
                shr     ecx, 0Dh
26267
                mov     ebp, [esi+edx+804h]
26268
                and     ecx, 7F8h
26269
                xor     eax, edi
26270
                mov     edx, [esp+0F0h]
26271
                xor     ebx, ebp
26272
                shr     edx, 18h
26273
                mov     edi, [esi+ecx+1000h]
26274
                mov     ebp, [esi+ecx+1004h]
26275
                xor     eax, edi
26276
                mov     edi, [esi+edx*8+1800h]
26277
                xor     ebx, ebp
26278
                mov     ebp, [esi+edx*8+1804h]
26279
                xor     eax, edi
26280
                xor     ebx, ebp
26281
                mov     ecx, [esp+0ECh]
26282
                mov     edx, [esp+0E4h]
26283
                and     ecx, 0FFh
26284
                shr     edx, 5
26285
                mov     edi, [esi+ecx*8+2000h]
26286
                and     edx, 7F8h
26287
                mov     ebp, [esi+ecx*8+2004h]
26288
                xor     eax, edi
26289
                mov     ecx, [esp+0DCh]
26290
                mov     edi, [esi+edx+2800h]
26291
                xor     ebx, ebp
26292
                shr     ecx, 0Dh
26293
                mov     ebp, [esi+edx+2804h]
26294
                and     ecx, 7F8h
26295
                xor     eax, edi
26296
                mov     edx, [esp+0D4h]
26297
                xor     ebx, ebp
26298
                shr     edx, 18h
26299
                mov     edi, [esi+ecx+3000h]
26300
                mov     ebp, [esi+ecx+3004h]
26301
                xor     eax, edi
26302
                mov     edi, [esi+edx*8+3800h]
26303
                xor     ebx, ebp
26304
                mov     ebp, [esi+edx*8+3804h]
26305
                xor     eax, edi
26306
                xor     ebx, ebp
26307
                mov     [esp+8], eax
26308
                mov     [esp+0Ch], ebx
26309
                mov     eax, [esp+50h]
26310
                mov     ebx, [esp+54h]
26311
                mov     ecx, [esp+0D0h]
26312
                mov     edx, [esp+0C8h]
26313
                and     ecx, 0FFh
26314
                shr     edx, 5
26315
                mov     edi, [esi+ecx*8]
26316
                and     edx, 7F8h
26317
                mov     ebp, [esi+ecx*8+4]
26318
                xor     eax, edi
26319
                mov     ecx, [esp+0C0h]
26320
                mov     edi, [esi+edx+800h]
26321
                xor     ebx, ebp
26322
                shr     ecx, 0Dh
26323
                mov     ebp, [esi+edx+804h]
26324
                and     ecx, 7F8h
26325
                xor     eax, edi
26326
                mov     edx, [esp+0F8h]
26327
                xor     ebx, ebp
26328
                shr     edx, 18h
26329
                mov     edi, [esi+ecx+1000h]
26330
                mov     ebp, [esi+ecx+1004h]
26331
                xor     eax, edi
26332
                mov     edi, [esi+edx*8+1800h]
26333
                xor     ebx, ebp
26334
                mov     ebp, [esi+edx*8+1804h]
26335
                xor     eax, edi
26336
                xor     ebx, ebp
26337
                mov     ecx, [esp+0F4h]
26338
                mov     edx, [esp+0ECh]
26339
                and     ecx, 0FFh
26340
                shr     edx, 5
26341
                mov     edi, [esi+ecx*8+2000h]
26342
                and     edx, 7F8h
26343
                mov     ebp, [esi+ecx*8+2004h]
26344
                xor     eax, edi
26345
                mov     ecx, [esp+0E4h]
26346
                mov     edi, [esi+edx+2800h]
26347
                xor     ebx, ebp
26348
                shr     ecx, 0Dh
26349
                mov     ebp, [esi+edx+2804h]
26350
                and     ecx, 7F8h
26351
                xor     eax, edi
26352
                mov     edx, [esp+0DCh]
26353
                xor     ebx, ebp
26354
                shr     edx, 18h
26355
                mov     edi, [esi+ecx+3000h]
26356
                mov     ebp, [esi+ecx+3004h]
26357
                xor     eax, edi
26358
                mov     edi, [esi+edx*8+3800h]
26359
                xor     ebx, ebp
26360
                mov     ebp, [esi+edx*8+3804h]
26361
                xor     eax, edi
26362
                xor     ebx, ebp
26363
                mov     [esp+10h], eax
26364
                mov     [esp+14h], ebx
26365
                mov     eax, [esp+58h]
26366
                mov     ebx, [esp+5Ch]
26367
                mov     ecx, [esp+0D8h]
26368
                mov     edx, [esp+0D0h]
26369
                and     ecx, 0FFh
26370
                shr     edx, 5
26371
                mov     edi, [esi+ecx*8]
26372
                and     edx, 7F8h
26373
                mov     ebp, [esi+ecx*8+4]
26374
                xor     eax, edi
26375
                mov     ecx, [esp+0C8h]
26376
                mov     edi, [esi+edx+800h]
26377
                xor     ebx, ebp
26378
                shr     ecx, 0Dh
26379
                mov     ebp, [esi+edx+804h]
26380
                and     ecx, 7F8h
26381
                xor     eax, edi
26382
                mov     edx, [esp+0C0h]
26383
                xor     ebx, ebp
26384
                shr     edx, 18h
26385
                mov     edi, [esi+ecx+1000h]
26386
                mov     ebp, [esi+ecx+1004h]
26387
                xor     eax, edi
26388
                mov     edi, [esi+edx*8+1800h]
26389
                xor     ebx, ebp
26390
                mov     ebp, [esi+edx*8+1804h]
26391
                xor     eax, edi
26392
                xor     ebx, ebp
26393
                mov     ecx, [esp+0FCh]
26394
                mov     edx, [esp+0F4h]
26395
                and     ecx, 0FFh
26396
                shr     edx, 5
26397
                mov     edi, [esi+ecx*8+2000h]
26398
                and     edx, 7F8h
26399
                mov     ebp, [esi+ecx*8+2004h]
26400
                xor     eax, edi
26401
                mov     ecx, [esp+0ECh]
26402
                mov     edi, [esi+edx+2800h]
26403
                xor     ebx, ebp
26404
                shr     ecx, 0Dh
26405
                mov     ebp, [esi+edx+2804h]
26406
                and     ecx, 7F8h
26407
                xor     eax, edi
26408
                mov     edx, [esp+0E4h]
26409
                xor     ebx, ebp
26410
                shr     edx, 18h
26411
                mov     edi, [esi+ecx+3000h]
26412
                mov     ebp, [esi+ecx+3004h]
26413
                xor     eax, edi
26414
                mov     edi, [esi+edx*8+3800h]
26415
                xor     ebx, ebp
26416
                mov     ebp, [esi+edx*8+3804h]
26417
                xor     eax, edi
26418
                xor     ebx, ebp
26419
                mov     [esp+18h], eax
26420
                mov     [esp+1Ch], ebx
26421
                mov     eax, [esp+60h]
26422
                mov     ebx, [esp+64h]
26423
                mov     ecx, [esp+0E0h]
26424
                mov     edx, [esp+0D8h]
26425
                and     ecx, 0FFh
26426
                shr     edx, 5
26427
                mov     edi, [esi+ecx*8]
26428
                and     edx, 7F8h
26429
                mov     ebp, [esi+ecx*8+4]
26430
                xor     eax, edi
26431
                mov     ecx, [esp+0D0h]
26432
                mov     edi, [esi+edx+800h]
26433
                xor     ebx, ebp
26434
                shr     ecx, 0Dh
26435
                mov     ebp, [esi+edx+804h]
26436
                and     ecx, 7F8h
26437
                xor     eax, edi
26438
                mov     edx, [esp+0C8h]
26439
                xor     ebx, ebp
26440
                shr     edx, 18h
26441
                mov     edi, [esi+ecx+1000h]
26442
                mov     ebp, [esi+ecx+1004h]
26443
                xor     eax, edi
26444
                mov     edi, [esi+edx*8+1800h]
26445
                xor     ebx, ebp
26446
                mov     ebp, [esi+edx*8+1804h]
26447
                xor     eax, edi
26448
                xor     ebx, ebp
26449
                mov     ecx, [esp+0C4h]
26450
                mov     edx, [esp+0FCh]
26451
                and     ecx, 0FFh
26452
                shr     edx, 5
26453
                mov     edi, [esi+ecx*8+2000h]
26454
                and     edx, 7F8h
26455
                mov     ebp, [esi+ecx*8+2004h]
26456
                xor     eax, edi
26457
                mov     ecx, [esp+0F4h]
26458
                mov     edi, [esi+edx+2800h]
26459
                xor     ebx, ebp
26460
                shr     ecx, 0Dh
26461
                mov     ebp, [esi+edx+2804h]
26462
                and     ecx, 7F8h
26463
                xor     eax, edi
26464
                mov     edx, [esp+0ECh]
26465
                xor     ebx, ebp
26466
                shr     edx, 18h
26467
                mov     edi, [esi+ecx+3000h]
26468
                mov     ebp, [esi+ecx+3004h]
26469
                xor     eax, edi
26470
                mov     edi, [esi+edx*8+3800h]
26471
                xor     ebx, ebp
26472
                mov     ebp, [esi+edx*8+3804h]
26473
                xor     eax, edi
26474
                xor     ebx, ebp
26475
                mov     [esp+20h], eax
26476
                mov     [esp+24h], ebx
26477
                mov     eax, [esp+68h]
26478
                mov     ebx, [esp+6Ch]
26479
                mov     ecx, [esp+0E8h]
26480
                mov     edx, [esp+0E0h]
26481
                and     ecx, 0FFh
26482
                shr     edx, 5
26483
                mov     edi, [esi+ecx*8]
26484
                and     edx, 7F8h
26485
                mov     ebp, [esi+ecx*8+4]
26486
                xor     eax, edi
26487
                mov     ecx, [esp+0D8h]
26488
                mov     edi, [esi+edx+800h]
26489
                xor     ebx, ebp
26490
                shr     ecx, 0Dh
26491
                mov     ebp, [esi+edx+804h]
26492
                and     ecx, 7F8h
26493
                xor     eax, edi
26494
                mov     edx, [esp+0D0h]
26495
                xor     ebx, ebp
26496
                shr     edx, 18h
26497
                mov     edi, [esi+ecx+1000h]
26498
                mov     ebp, [esi+ecx+1004h]
26499
                xor     eax, edi
26500
                mov     edi, [esi+edx*8+1800h]
26501
                xor     ebx, ebp
26502
                mov     ebp, [esi+edx*8+1804h]
26503
                xor     eax, edi
26504
                xor     ebx, ebp
26505
                mov     ecx, [esp+0CCh]
26506
                mov     edx, [esp+0C4h]
26507
                and     ecx, 0FFh
26508
                shr     edx, 5
26509
                mov     edi, [esi+ecx*8+2000h]
26510
                and     edx, 7F8h
26511
                mov     ebp, [esi+ecx*8+2004h]
26512
                xor     eax, edi
26513
                mov     ecx, [esp+0FCh]
26514
                mov     edi, [esi+edx+2800h]
26515
                xor     ebx, ebp
26516
                shr     ecx, 0Dh
26517
                mov     ebp, [esi+edx+2804h]
26518
                and     ecx, 7F8h
26519
                xor     eax, edi
26520
                mov     edx, [esp+0F4h]
26521
                xor     ebx, ebp
26522
                shr     edx, 18h
26523
                mov     edi, [esi+ecx+3000h]
26524
                mov     ebp, [esi+ecx+3004h]
26525
                xor     eax, edi
26526
                mov     edi, [esi+edx*8+3800h]
26527
                xor     ebx, ebp
26528
                mov     ebp, [esi+edx*8+3804h]
26529
                xor     eax, edi
26530
                xor     ebx, ebp
26531
                mov     [esp+28h], eax
26532
                mov     [esp+2Ch], ebx
26533
                mov     eax, [esp+70h]
26534
                mov     ebx, [esp+74h]
26535
                mov     ecx, [esp+0F0h]
26536
                mov     edx, [esp+0E8h]
26537
                and     ecx, 0FFh
26538
                shr     edx, 5
26539
                mov     edi, [esi+ecx*8]
26540
                and     edx, 7F8h
26541
                mov     ebp, [esi+ecx*8+4]
26542
                xor     eax, edi
26543
                mov     ecx, [esp+0E0h]
26544
                mov     edi, [esi+edx+800h]
26545
                xor     ebx, ebp
26546
                shr     ecx, 0Dh
26547
                mov     ebp, [esi+edx+804h]
26548
                and     ecx, 7F8h
26549
                xor     eax, edi
26550
                mov     edx, [esp+0D8h]
26551
                xor     ebx, ebp
26552
                shr     edx, 18h
26553
                mov     edi, [esi+ecx+1000h]
26554
                mov     ebp, [esi+ecx+1004h]
26555
                xor     eax, edi
26556
                mov     edi, [esi+edx*8+1800h]
26557
                xor     ebx, ebp
26558
                mov     ebp, [esi+edx*8+1804h]
26559
                xor     eax, edi
26560
                xor     ebx, ebp
26561
                mov     ecx, [esp+0D4h]
26562
                mov     edx, [esp+0CCh]
26563
                and     ecx, 0FFh
26564
                shr     edx, 5
26565
                mov     edi, [esi+ecx*8+2000h]
26566
                and     edx, 7F8h
26567
                mov     ebp, [esi+ecx*8+2004h]
26568
                xor     eax, edi
26569
                mov     ecx, [esp+0C4h]
26570
                mov     edi, [esi+edx+2800h]
26571
                xor     ebx, ebp
26572
                shr     ecx, 0Dh
26573
                mov     ebp, [esi+edx+2804h]
26574
                and     ecx, 7F8h
26575
                xor     eax, edi
26576
                mov     edx, [esp+0FCh]
26577
                xor     ebx, ebp
26578
                shr     edx, 18h
26579
                mov     edi, [esi+ecx+3000h]
26580
                mov     ebp, [esi+ecx+3004h]
26581
                xor     eax, edi
26582
                mov     edi, [esi+edx*8+3800h]
26583
                xor     ebx, ebp
26584
                mov     ebp, [esi+edx*8+3804h]
26585
                xor     eax, edi
26586
                xor     ebx, ebp
26587
                mov     [esp+30h], eax
26588
                mov     [esp+34h], ebx
26589
                mov     eax, [esp+78h]
26590
                mov     ebx, [esp+7Ch]
26591
                mov     ecx, [esp+0F8h]
26592
                mov     edx, [esp+0F0h]
26593
                and     ecx, 0FFh
26594
                shr     edx, 5
26595
                mov     edi, [esi+ecx*8]
26596
                and     edx, 7F8h
26597
                mov     ebp, [esi+ecx*8+4]
26598
                xor     eax, edi
26599
                mov     ecx, [esp+0E8h]
26600
                mov     edi, [esi+edx+800h]
26601
                xor     ebx, ebp
26602
                shr     ecx, 0Dh
26603
                mov     ebp, [esi+edx+804h]
26604
                and     ecx, 7F8h
26605
                xor     eax, edi
26606
                mov     edx, [esp+0E0h]
26607
                xor     ebx, ebp
26608
                shr     edx, 18h
26609
                mov     edi, [esi+ecx+1000h]
26610
                mov     ebp, [esi+ecx+1004h]
26611
                xor     eax, edi
26612
                mov     edi, [esi+edx*8+1800h]
26613
                xor     ebx, ebp
26614
                mov     ebp, [esi+edx*8+1804h]
26615
                xor     eax, edi
26616
                xor     ebx, ebp
26617
                mov     ecx, [esp+0DCh]
26618
                mov     edx, [esp+0D4h]
26619
                and     ecx, 0FFh
26620
                shr     edx, 5
26621
                mov     edi, [esi+ecx*8+2000h]
26622
                and     edx, 7F8h
26623
                mov     ebp, [esi+ecx*8+2004h]
26624
                xor     eax, edi
26625
                mov     ecx, [esp+0CCh]
26626
                mov     edi, [esi+edx+2800h]
26627
                xor     ebx, ebp
26628
                shr     ecx, 0Dh
26629
                mov     ebp, [esi+edx+2804h]
26630
                and     ecx, 7F8h
26631
                xor     eax, edi
26632
                mov     edx, [esp+0C4h]
26633
                xor     ebx, ebp
26634
                shr     edx, 18h
26635
                mov     edi, [esi+ecx+3000h]
26636
                mov     ebp, [esi+ecx+3004h]
26637
                xor     eax, edi
26638
                mov     edi, [esi+edx*8+3800h]
26639
                xor     ebx, ebp
26640
                mov     ebp, [esi+edx*8+3804h]
26641
                xor     eax, edi
26642
                xor     ebx, ebp
26643
                mov     [esp+38h], eax
26644
                mov     [esp+3Ch], ebx
26645
                mov     ebp, [esp+108h]
26646
                add     ebp, 10h
26647
                cmp     ebp, 50h
26648
                jnz     @@_loop_start
26649
                mov     ebp, [esp+114h]
26650
                mov     edi, [esp+110h]
26651
                mov     esi, [esp+10Ch]
26652
                mov     eax, [esp]
26653
                mov     ebx, [esp+4]
26654
                mov     ecx, [edi]
26655
                mov     edx, [edi+4]
26656
                xor     eax, ecx
26657
                xor     ebx, edx
26658
                mov     ecx, [esi]
26659
                mov     edx, [esi+4]
26660
                xor     eax, ecx
26661
                xor     ebx, edx
26662
                mov     [esi], eax
26663
                mov     [esi+4], ebx
26664
                mov     eax, [esp+8]
26665
                mov     ebx, [esp+0Ch]
26666
                mov     ecx, [edi+8]
26667
                mov     edx, [edi+0Ch]
26668
                xor     eax, ecx
26669
                xor     ebx, edx
26670
                mov     ecx, [esi+8]
26671
                mov     edx, [esi+0Ch]
26672
                xor     eax, ecx
26673
                xor     ebx, edx
26674
                mov     [esi+8], eax
26675
                mov     [esi+0Ch], ebx
26676
                mov     eax, [esp+10h]
26677
                mov     ebx, [esp+14h]
26678
                mov     ecx, [edi+10h]
26679
                mov     edx, [edi+14h]
26680
                xor     eax, ecx
26681
                xor     ebx, edx
26682
                mov     ecx, [esi+10h]
26683
                mov     edx, [esi+14h]
26684
                xor     eax, ecx
26685
                xor     ebx, edx
26686
                mov     [esi+10h], eax
26687
                mov     [esi+14h], ebx
26688
                mov     eax, [esp+18h]
26689
                mov     ebx, [esp+1Ch]
26690
                mov     ecx, [edi+18h]
26691
                mov     edx, [edi+1Ch]
26692
                xor     eax, ecx
26693
                xor     ebx, edx
26694
                mov     ecx, [esi+18h]
26695
                mov     edx, [esi+1Ch]
26696
                xor     eax, ecx
26697
                xor     ebx, edx
26698
                mov     [esi+18h], eax
26699
                mov     [esi+1Ch], ebx
26700
                mov     eax, [esp+20h]
26701
                mov     ebx, [esp+24h]
26702
                mov     ecx, [edi+20h]
26703
                mov     edx, [edi+24h]
26704
                xor     eax, ecx
26705
                xor     ebx, edx
26706
                mov     ecx, [esi+20h]
26707
                mov     edx, [esi+24h]
26708
                xor     eax, ecx
26709
                xor     ebx, edx
26710
                mov     [esi+20h], eax
26711
                mov     [esi+24h], ebx
26712
                mov     eax, [esp+28h]
26713
                mov     ebx, [esp+2Ch]
26714
                mov     ecx, [edi+28h]
26715
                mov     edx, [edi+2Ch]
26716
                xor     eax, ecx
26717
                xor     ebx, edx
26718
                mov     ecx, [esi+28h]
26719
                mov     edx, [esi+2Ch]
26720
                xor     eax, ecx
26721
                xor     ebx, edx
26722
                mov     [esi+28h], eax
26723
                mov     [esi+2Ch], ebx
26724
                mov     eax, [esp+30h]
26725
                mov     ebx, [esp+34h]
26726
                mov     ecx, [edi+30h]
26727
                mov     edx, [edi+34h]
26728
                xor     eax, ecx
26729
                xor     ebx, edx
26730
                mov     ecx, [esi+30h]
26731
                mov     edx, [esi+34h]
26732
                xor     eax, ecx
26733
                xor     ebx, edx
26734
                mov     [esi+30h], eax
26735
                mov     [esi+34h], ebx
26736
                mov     eax, [esp+38h]
26737
                mov     ebx, [esp+3Ch]
26738
                mov     ecx, [edi+38h]
26739
                mov     edx, [edi+3Ch]
26740
                xor     eax, ecx
26741
                xor     ebx, edx
26742
                mov     ecx, [esi+38h]
26743
                mov     edx, [esi+3Ch]
26744
                xor     eax, ecx
26745
                xor     ebx, edx
26746
                mov     [esi+38h], eax
26747
                mov     [esi+3Ch], ebx
26748
                mov     esp, ebp
26749
                pop  ebp
26750
                pop  edi
26751
                pop  esi
26752
                pop  ebx
26753
end;
26754
{$ENDIF}
26755
26756
{$IFDEF THash_Square_asm}
26757
procedure THash_Square.DoTransform(Buffer: PUInt32Array);
26758
asm
26759
                push    ebx
26760
                push    esi
26761
                push    edi
26762
                mov     esi, edx
26763
                lea     edi, [eax].THash_Square.FDigest
26764
                push    ebp
26765
                lea     eax, Square_PHIr
26766
                lea     edx, Square_TE
26767
                lea     ecx, Square_SEint
26768
26769
                mov     ebp, esp
26770
                add     esp, 0FFFFFF58h
26771
                and     esp, 0FFFFFFE0h
26772
                mov     [esp+90h], edi
26773
                mov     [esp+94h], esi
26774
                mov     [esp+98h], eax
26775
                mov     [esp+9Ch], edx
26776
                mov     [esp+0A0h], ecx
26777
                mov     [esp+0A4h], ebp
26778
                mov     ecx, [edi]
26779
                mov     edx, [edi+4]
26780
                mov     [esp], ecx
26781
                mov     esi, eax
26782
                mov     [esp+4], edx
26783
                mov     ebp, [edi+8]
26784
                mov     edi, [edi+0Ch]
26785
                mov     [esp+8], ebp
26786
                mov     [esp+0Ch], edi
26787
                mov     eax, ecx
26788
                mov     ebx, edx
26789
                mov     ecx, ebp
26790
                mov     ebp, edi
26791
                xor     eax, 1
26792
                ror     ebp, 8
26793
                xor     eax, ebp
26794
                mov     ebp, 0FFh
26795
                xor     ebx, eax
26796
                mov     [esp+10h], eax
26797
                mov     eax, [esp]
26798
                xor     ecx, ebx
26799
                mov     [esp+14h], ebx
26800
                xor     edi, ecx
26801
                mov     [esp+18h], ecx
26802
                mov     [esp+1Ch], edi
26803
                mov     edx, eax
26804
                mov     ebx, eax
26805
                mov     ecx, eax
26806
                shr     eax, 8
26807
                and     ebx, ebp
26808
                shr     ecx, 10h
26809
                and     eax, ebp
26810
                and     ecx, ebp
26811
                mov     ebx, [esi+ebx*4]
26812
                shr     edx, 18h
26813
                mov     eax, [esi+eax*4+400h]
26814
                mov     ecx, [esi+ecx*4+800h]
26815
                xor     ebx, eax
26816
                mov     edx, [esi+edx*4+0C00h]
26817
                xor     ebx, ecx
26818
                mov     eax, [esp+4]
26819
                xor     ebx, edx
26820
                mov     edx, eax
26821
                mov     [esp], ebx
26822
                mov     ebx, eax
26823
                mov     ecx, eax
26824
                shr     eax, 8
26825
                and     ebx, ebp
26826
                shr     ecx, 10h
26827
                and     eax, ebp
26828
                and     ecx, ebp
26829
                mov     ebx, [esi+ebx*4]
26830
                shr     edx, 18h
26831
                mov     eax, [esi+eax*4+400h]
26832
                mov     ecx, [esi+ecx*4+800h]
26833
                xor     ebx, eax
26834
                mov     edx, [esi+edx*4+0C00h]
26835
                xor     ebx, ecx
26836
                mov     eax, [esp+8]
26837
                xor     ebx, edx
26838
                mov     edx, eax
26839
                mov     [esp+4], ebx
26840
                mov     ebx, eax
26841
                mov     ecx, eax
26842
                shr     eax, 8
26843
                and     ebx, ebp
26844
                shr     ecx, 10h
26845
                and     eax, ebp
26846
                and     ecx, ebp
26847
                mov     ebx, [esi+ebx*4]
26848
                shr     edx, 18h
26849
                mov     eax, [esi+eax*4+400h]
26850
                mov     ecx, [esi+ecx*4+800h]
26851
                xor     ebx, eax
26852
                mov     edx, [esi+edx*4+0C00h]
26853
                xor     ebx, ecx
26854
                mov     eax, [esp+0Ch]
26855
                xor     ebx, edx
26856
                mov     edx, eax
26857
                mov     [esp+8], ebx
26858
                mov     ebx, eax
26859
                mov     ecx, eax
26860
                shr     eax, 8
26861
                and     ebx, ebp
26862
                shr     ecx, 10h
26863
                and     eax, ebp
26864
                mov     ebx, [esi+ebx*4]
26865
                and     ecx, ebp
26866
                shr     edx, 18h
26867
                mov     eax, [esi+eax*4+400h]
26868
                mov     ecx, [esi+ecx*4+800h]
26869
                xor     ebx, eax
26870
                mov     edx, [esi+edx*4+0C00h]
26871
                xor     ebx, ecx
26872
                xor     ebx, edx
26873
                mov     [esp+0Ch], ebx
26874
                mov     eax, [esp+10h]
26875
                mov     ebx, [esp+14h]
26876
                mov     ecx, [esp+18h]
26877
                mov     ebp, [esp+1Ch]
26878
                xor     eax, 2
26879
                mov     edi, ebp
26880
                ror     ebp, 8
26881
                xor     eax, ebp
26882
                mov     ebp, 0FFh
26883
                xor     ebx, eax
26884
                mov     [esp+20h], eax
26885
                mov     eax, [esp+10h]
26886
                xor     ecx, ebx
26887
                mov     [esp+24h], ebx
26888
                xor     edi, ecx
26889
                mov     [esp+28h], ecx
26890
                mov     [esp+2Ch], edi
26891
                mov     edx, eax
26892
                mov     ebx, eax
26893
                mov     ecx, eax
26894
                shr     eax, 8
26895
                and     ebx, ebp
26896
                shr     ecx, 10h
26897
                and     eax, ebp
26898
                and     ecx, ebp
26899
                mov     ebx, [esi+ebx*4]
26900
                shr     edx, 18h
26901
                mov     eax, [esi+eax*4+400h]
26902
                mov     ecx, [esi+ecx*4+800h]
26903
                xor     ebx, eax
26904
                mov     edx, [esi+edx*4+0C00h]
26905
                xor     ebx, ecx
26906
                mov     eax, [esp+14h]
26907
                xor     ebx, edx
26908
                mov     edx, eax
26909
                mov     [esp+10h], ebx
26910
                mov     ebx, eax
26911
                mov     ecx, eax
26912
                shr     eax, 8
26913
                and     ebx, ebp
26914
                shr     ecx, 10h
26915
                and     eax, ebp
26916
                and     ecx, ebp
26917
                mov     ebx, [esi+ebx*4]
26918
                shr     edx, 18h
26919
                mov     eax, [esi+eax*4+400h]
26920
                mov     ecx, [esi+ecx*4+800h]
26921
                xor     ebx, eax
26922
                mov     edx, [esi+edx*4+0C00h]
26923
                xor     ebx, ecx
26924
                mov     eax, [esp+18h]
26925
                xor     ebx, edx
26926
                mov     edx, eax
26927
                mov     [esp+14h], ebx
26928
                mov     ebx, eax
26929
                mov     ecx, eax
26930
                shr     eax, 8
26931
                and     ebx, ebp
26932
                shr     ecx, 10h
26933
                and     eax, ebp
26934
                and     ecx, ebp
26935
                mov     ebx, [esi+ebx*4]
26936
                shr     edx, 18h
26937
                mov     eax, [esi+eax*4+400h]
26938
                mov     ecx, [esi+ecx*4+800h]
26939
                xor     ebx, eax
26940
                mov     edx, [esi+edx*4+0C00h]
26941
                xor     ebx, ecx
26942
                mov     eax, [esp+1Ch]
26943
                xor     ebx, edx
26944
                mov     edx, eax
26945
                mov     [esp+18h], ebx
26946
                mov     ebx, eax
26947
                mov     ecx, eax
26948
                shr     eax, 8
26949
                and     ebx, ebp
26950
                shr     ecx, 10h
26951
                and     eax, ebp
26952
                mov     ebx, [esi+ebx*4]
26953
                and     ecx, ebp
26954
                shr     edx, 18h
26955
                mov     eax, [esi+eax*4+400h]
26956
                mov     ecx, [esi+ecx*4+800h]
26957
                xor     ebx, eax
26958
                mov     edx, [esi+edx*4+0C00h]
26959
                xor     ebx, ecx
26960
                xor     ebx, edx
26961
                mov     [esp+1Ch], ebx
26962
                mov     eax, [esp+20h]
26963
                mov     ebx, [esp+24h]
26964
                mov     ecx, [esp+28h]
26965
                mov     ebp, [esp+2Ch]
26966
                xor     eax, 4
26967
                mov     edi, ebp
26968
                ror     ebp, 8
26969
                xor     eax, ebp
26970
                mov     ebp, 0FFh
26971
                xor     ebx, eax
26972
                mov     [esp+30h], eax
26973
                mov     eax, [esp+20h]
26974
                xor     ecx, ebx
26975
                mov     [esp+34h], ebx
26976
                xor     edi, ecx
26977
                mov     [esp+38h], ecx
26978
                mov     [esp+3Ch], edi
26979
                mov     edx, eax
26980
                mov     ebx, eax
26981
                mov     ecx, eax
26982
                shr     eax, 8
26983
                and     ebx, ebp
26984
                shr     ecx, 10h
26985
                and     eax, ebp
26986
                and     ecx, ebp
26987
                mov     ebx, [esi+ebx*4]
26988
                shr     edx, 18h
26989
                mov     eax, [esi+eax*4+400h]
26990
                mov     ecx, [esi+ecx*4+800h]
26991
                xor     ebx, eax
26992
                mov     edx, [esi+edx*4+0C00h]
26993
                xor     ebx, ecx
26994
                mov     eax, [esp+24h]
26995
                xor     ebx, edx
26996
                mov     edx, eax
26997
                mov     [esp+20h], ebx
26998
                mov     ebx, eax
26999
                mov     ecx, eax
27000
                shr     eax, 8
27001
                and     ebx, ebp
27002
                shr     ecx, 10h
27003
                and     eax, ebp
27004
                and     ecx, ebp
27005
                mov     ebx, [esi+ebx*4]
27006
                shr     edx, 18h
27007
                mov     eax, [esi+eax*4+400h]
27008
                mov     ecx, [esi+ecx*4+800h]
27009
                xor     ebx, eax
27010
                mov     edx, [esi+edx*4+0C00h]
27011
                xor     ebx, ecx
27012
                mov     eax, [esp+28h]
27013
                xor     ebx, edx
27014
                mov     edx, eax
27015
                mov     [esp+24h], ebx
27016
                mov     ebx, eax
27017
                mov     ecx, eax
27018
                shr     eax, 8
27019
                and     ebx, ebp
27020
                shr     ecx, 10h
27021
                and     eax, ebp
27022
                and     ecx, ebp
27023
                mov     ebx, [esi+ebx*4]
27024
                shr     edx, 18h
27025
                mov     eax, [esi+eax*4+400h]
27026
                mov     ecx, [esi+ecx*4+800h]
27027
                xor     ebx, eax
27028
                mov     edx, [esi+edx*4+0C00h]
27029
                xor     ebx, ecx
27030
                mov     eax, [esp+2Ch]
27031
                xor     ebx, edx
27032
                mov     edx, eax
27033
                mov     [esp+28h], ebx
27034
                mov     ebx, eax
27035
                mov     ecx, eax
27036
                shr     eax, 8
27037
                and     ebx, ebp
27038
                shr     ecx, 10h
27039
                and     eax, ebp
27040
                mov     ebx, [esi+ebx*4]
27041
                and     ecx, ebp
27042
                shr     edx, 18h
27043
                mov     eax, [esi+eax*4+400h]
27044
                mov     ecx, [esi+ecx*4+800h]
27045
                xor     ebx, eax
27046
                mov     edx, [esi+edx*4+0C00h]
27047
                xor     ebx, ecx
27048
                xor     ebx, edx
27049
                mov     [esp+2Ch], ebx
27050
                mov     eax, [esp+30h]
27051
                mov     ebx, [esp+34h]
27052
                mov     ecx, [esp+38h]
27053
                mov     ebp, [esp+3Ch]
27054
                xor     eax, 8
27055
                mov     edi, ebp
27056
                ror     ebp, 8
27057
                xor     eax, ebp
27058
                mov     ebp, 0FFh
27059
                xor     ebx, eax
27060
                mov     [esp+40h], eax
27061
                mov     eax, [esp+30h]
27062
                xor     ecx, ebx
27063
                mov     [esp+44h], ebx
27064
                xor     edi, ecx
27065
                mov     [esp+48h], ecx
27066
                mov     [esp+4Ch], edi
27067
                mov     edx, eax
27068
                mov     ebx, eax
27069
                mov     ecx, eax
27070
                shr     eax, 8
27071
                and     ebx, ebp
27072
                shr     ecx, 10h
27073
                and     eax, ebp
27074
                and     ecx, ebp
27075
                mov     ebx, [esi+ebx*4]
27076
                shr     edx, 18h
27077
                mov     eax, [esi+eax*4+400h]
27078
                mov     ecx, [esi+ecx*4+800h]
27079
                xor     ebx, eax
27080
                mov     edx, [esi+edx*4+0C00h]
27081
                xor     ebx, ecx
27082
                mov     eax, [esp+34h]
27083
                xor     ebx, edx
27084
                mov     edx, eax
27085
                mov     [esp+30h], ebx
27086
                mov     ebx, eax
27087
                mov     ecx, eax
27088
                shr     eax, 8
27089
                and     ebx, ebp
27090
                shr     ecx, 10h
27091
                and     eax, ebp
27092
                and     ecx, ebp
27093
                mov     ebx, [esi+ebx*4]
27094
                shr     edx, 18h
27095
                mov     eax, [esi+eax*4+400h]
27096
                mov     ecx, [esi+ecx*4+800h]
27097
                xor     ebx, eax
27098
                mov     edx, [esi+edx*4+0C00h]
27099
                xor     ebx, ecx
27100
                mov     eax, [esp+38h]
27101
                xor     ebx, edx
27102
                mov     edx, eax
27103
                mov     [esp+34h], ebx
27104
                mov     ebx, eax
27105
                mov     ecx, eax
27106
                shr     eax, 8
27107
                and     ebx, ebp
27108
                shr     ecx, 10h
27109
                and     eax, ebp
27110
                and     ecx, ebp
27111
                mov     ebx, [esi+ebx*4]
27112
                shr     edx, 18h
27113
                mov     eax, [esi+eax*4+400h]
27114
                mov     ecx, [esi+ecx*4+800h]
27115
                xor     ebx, eax
27116
                mov     edx, [esi+edx*4+0C00h]
27117
                xor     ebx, ecx
27118
                mov     eax, [esp+3Ch]
27119
                xor     ebx, edx
27120
                mov     edx, eax
27121
                mov     [esp+38h], ebx
27122
                mov     ebx, eax
27123
                mov     ecx, eax
27124
                shr     eax, 8
27125
                and     ebx, ebp
27126
                shr     ecx, 10h
27127
                and     eax, ebp
27128
                mov     ebx, [esi+ebx*4]
27129
                and     ecx, ebp
27130
                shr     edx, 18h
27131
                mov     eax, [esi+eax*4+400h]
27132
                mov     ecx, [esi+ecx*4+800h]
27133
                xor     ebx, eax
27134
                mov     edx, [esi+edx*4+0C00h]
27135
                xor     ebx, ecx
27136
                xor     ebx, edx
27137
                mov     [esp+3Ch], ebx
27138
                mov     eax, [esp+40h]
27139
                mov     ebx, [esp+44h]
27140
                mov     ecx, [esp+48h]
27141
                mov     ebp, [esp+4Ch]
27142
                xor     eax, 10h
27143
                mov     edi, ebp
27144
                ror     ebp, 8
27145
                xor     eax, ebp
27146
                mov     ebp, 0FFh
27147
                xor     ebx, eax
27148
                mov     [esp+50h], eax
27149
                mov     eax, [esp+40h]
27150
                xor     ecx, ebx
27151
                mov     [esp+54h], ebx
27152
                xor     edi, ecx
27153
                mov     [esp+58h], ecx
27154
                mov     [esp+5Ch], edi
27155
                mov     edx, eax
27156
                mov     ebx, eax
27157
                mov     ecx, eax
27158
                shr     eax, 8
27159
                and     ebx, ebp
27160
                shr     ecx, 10h
27161
                and     eax, ebp
27162
                and     ecx, ebp
27163
                mov     ebx, [esi+ebx*4]
27164
                shr     edx, 18h
27165
                mov     eax, [esi+eax*4+400h]
27166
                mov     ecx, [esi+ecx*4+800h]
27167
                xor     ebx, eax
27168
                mov     edx, [esi+edx*4+0C00h]
27169
                xor     ebx, ecx
27170
                mov     eax, [esp+44h]
27171
                xor     ebx, edx
27172
                mov     edx, eax
27173
                mov     [esp+40h], ebx
27174
                mov     ebx, eax
27175
                mov     ecx, eax
27176
                shr     eax, 8
27177
                and     ebx, ebp
27178
                shr     ecx, 10h
27179
                and     eax, ebp
27180
                and     ecx, ebp
27181
                mov     ebx, [esi+ebx*4]
27182
                shr     edx, 18h
27183
                mov     eax, [esi+eax*4+400h]
27184
                mov     ecx, [esi+ecx*4+800h]
27185
                xor     ebx, eax
27186
                mov     edx, [esi+edx*4+0C00h]
27187
                xor     ebx, ecx
27188
                mov     eax, [esp+48h]
27189
                xor     ebx, edx
27190
                mov     edx, eax
27191
                mov     [esp+44h], ebx
27192
                mov     ebx, eax
27193
                mov     ecx, eax
27194
                shr     eax, 8
27195
                and     ebx, ebp
27196
                shr     ecx, 10h
27197
                and     eax, ebp
27198
                and     ecx, ebp
27199
                mov     ebx, [esi+ebx*4]
27200
                shr     edx, 18h
27201
                mov     eax, [esi+eax*4+400h]
27202
                mov     ecx, [esi+ecx*4+800h]
27203
                xor     ebx, eax
27204
                mov     edx, [esi+edx*4+0C00h]
27205
                xor     ebx, ecx
27206
                mov     eax, [esp+4Ch]
27207
                xor     ebx, edx
27208
                mov     edx, eax
27209
                mov     [esp+48h], ebx
27210
                mov     ebx, eax
27211
                mov     ecx, eax
27212
                shr     eax, 8
27213
                and     ebx, ebp
27214
                shr     ecx, 10h
27215
                and     eax, ebp
27216
                mov     ebx, [esi+ebx*4]
27217
                and     ecx, ebp
27218
                shr     edx, 18h
27219
                mov     eax, [esi+eax*4+400h]
27220
                mov     ecx, [esi+ecx*4+800h]
27221
                xor     ebx, eax
27222
                mov     edx, [esi+edx*4+0C00h]
27223
                xor     ebx, ecx
27224
                xor     ebx, edx
27225
                mov     [esp+4Ch], ebx
27226
                mov     eax, [esp+50h]
27227
                mov     ebx, [esp+54h]
27228
                mov     ecx, [esp+58h]
27229
                mov     ebp, [esp+5Ch]
27230
                xor     eax, 20h
27231
                mov     edi, ebp
27232
                ror     ebp, 8
27233
                xor     eax, ebp
27234
                mov     ebp, 0FFh
27235
                xor     ebx, eax
27236
                mov     [esp+60h], eax
27237
                mov     eax, [esp+50h]
27238
                xor     ecx, ebx
27239
                mov     [esp+64h], ebx
27240
                xor     edi, ecx
27241
                mov     [esp+68h], ecx
27242
                mov     [esp+6Ch], edi
27243
                mov     edx, eax
27244
                mov     ebx, eax
27245
                mov     ecx, eax
27246
                shr     eax, 8
27247
                and     ebx, ebp
27248
                shr     ecx, 10h
27249
                and     eax, ebp
27250
                and     ecx, ebp
27251
                mov     ebx, [esi+ebx*4]
27252
                shr     edx, 18h
27253
                mov     eax, [esi+eax*4+400h]
27254
                mov     ecx, [esi+ecx*4+800h]
27255
                xor     ebx, eax
27256
                mov     edx, [esi+edx*4+0C00h]
27257
                xor     ebx, ecx
27258
                mov     eax, [esp+54h]
27259
                xor     ebx, edx
27260
                mov     edx, eax
27261
                mov     [esp+50h], ebx
27262
                mov     ebx, eax
27263
                mov     ecx, eax
27264
                shr     eax, 8
27265
                and     ebx, ebp
27266
                shr     ecx, 10h
27267
                and     eax, ebp
27268
                and     ecx, ebp
27269
                mov     ebx, [esi+ebx*4]
27270
                shr     edx, 18h
27271
                mov     eax, [esi+eax*4+400h]
27272
                mov     ecx, [esi+ecx*4+800h]
27273
                xor     ebx, eax
27274
                mov     edx, [esi+edx*4+0C00h]
27275
                xor     ebx, ecx
27276
                mov     eax, [esp+58h]
27277
                xor     ebx, edx
27278
                mov     edx, eax
27279
                mov     [esp+54h], ebx
27280
                mov     ebx, eax
27281
                mov     ecx, eax
27282
                shr     eax, 8
27283
                and     ebx, ebp
27284
                shr     ecx, 10h
27285
                and     eax, ebp
27286
                and     ecx, ebp
27287
                mov     ebx, [esi+ebx*4]
27288
                shr     edx, 18h
27289
                mov     eax, [esi+eax*4+400h]
27290
                mov     ecx, [esi+ecx*4+800h]
27291
                xor     ebx, eax
27292
                mov     edx, [esi+edx*4+0C00h]
27293
                xor     ebx, ecx
27294
                mov     eax, [esp+5Ch]
27295
                xor     ebx, edx
27296
                mov     edx, eax
27297
                mov     [esp+58h], ebx
27298
                mov     ebx, eax
27299
                mov     ecx, eax
27300
                shr     eax, 8
27301
                and     ebx, ebp
27302
                shr     ecx, 10h
27303
                and     eax, ebp
27304
                mov     ebx, [esi+ebx*4]
27305
                and     ecx, ebp
27306
                shr     edx, 18h
27307
                mov     eax, [esi+eax*4+400h]
27308
                mov     ecx, [esi+ecx*4+800h]
27309
                xor     ebx, eax
27310
                mov     edx, [esi+edx*4+0C00h]
27311
                xor     ebx, ecx
27312
                xor     ebx, edx
27313
                mov     [esp+5Ch], ebx
27314
                mov     eax, [esp+60h]
27315
                mov     ebx, [esp+64h]
27316
                mov     ecx, [esp+68h]
27317
                mov     ebp, [esp+6Ch]
27318
                xor     eax, 40h
27319
                mov     edi, ebp
27320
                ror     ebp, 8
27321
                xor     eax, ebp
27322
                mov     ebp, 0FFh
27323
                xor     ebx, eax
27324
                mov     [esp+70h], eax
27325
                mov     eax, [esp+60h]
27326
                xor     ecx, ebx
27327
                mov     [esp+74h], ebx
27328
                xor     edi, ecx
27329
                mov     [esp+78h], ecx
27330
                mov     [esp+7Ch], edi
27331
                mov     edx, eax
27332
                mov     ebx, eax
27333
                mov     ecx, eax
27334
                shr     eax, 8
27335
                and     ebx, ebp
27336
                shr     ecx, 10h
27337
                and     eax, ebp
27338
                and     ecx, ebp
27339
                mov     ebx, [esi+ebx*4]
27340
                shr     edx, 18h
27341
                mov     eax, [esi+eax*4+400h]
27342
                mov     ecx, [esi+ecx*4+800h]
27343
                xor     ebx, eax
27344
                mov     edx, [esi+edx*4+0C00h]
27345
                xor     ebx, ecx
27346
                mov     eax, [esp+64h]
27347
                xor     ebx, edx
27348
                mov     edx, eax
27349
                mov     [esp+60h], ebx
27350
                mov     ebx, eax
27351
                mov     ecx, eax
27352
                shr     eax, 8
27353
                and     ebx, ebp
27354
                shr     ecx, 10h
27355
                and     eax, ebp
27356
                and     ecx, ebp
27357
                mov     ebx, [esi+ebx*4]
27358
                shr     edx, 18h
27359
                mov     eax, [esi+eax*4+400h]
27360
                mov     ecx, [esi+ecx*4+800h]
27361
                xor     ebx, eax
27362
                mov     edx, [esi+edx*4+0C00h]
27363
                xor     ebx, ecx
27364
                mov     eax, [esp+68h]
27365
                xor     ebx, edx
27366
                mov     edx, eax
27367
                mov     [esp+64h], ebx
27368
                mov     ebx, eax
27369
                mov     ecx, eax
27370
                shr     eax, 8
27371
                and     ebx, ebp
27372
                shr     ecx, 10h
27373
                and     eax, ebp
27374
                and     ecx, ebp
27375
                mov     ebx, [esi+ebx*4]
27376
                shr     edx, 18h
27377
                mov     eax, [esi+eax*4+400h]
27378
                mov     ecx, [esi+ecx*4+800h]
27379
                xor     ebx, eax
27380
                mov     edx, [esi+edx*4+0C00h]
27381
                xor     ebx, ecx
27382
                mov     eax, [esp+6Ch]
27383
                xor     ebx, edx
27384
                mov     edx, eax
27385
                mov     [esp+68h], ebx
27386
                mov     ebx, eax
27387
                mov     ecx, eax
27388
                shr     eax, 8
27389
                and     ebx, ebp
27390
                shr     ecx, 10h
27391
                and     eax, ebp
27392
                mov     ebx, [esi+ebx*4]
27393
                and     ecx, ebp
27394
                shr     edx, 18h
27395
                mov     eax, [esi+eax*4+400h]
27396
                mov     ecx, [esi+ecx*4+800h]
27397
                xor     ebx, eax
27398
                mov     edx, [esi+edx*4+0C00h]
27399
                xor     ebx, ecx
27400
                xor     ebx, edx
27401
                mov     [esp+6Ch], ebx
27402
                mov     eax, [esp+70h]
27403
                mov     ebx, [esp+74h]
27404
                mov     ecx, [esp+78h]
27405
                mov     ebp, [esp+7Ch]
27406
                xor     eax, 80h
27407
                mov     edi, ebp
27408
                ror     ebp, 8
27409
                xor     eax, ebp
27410
                mov     ebp, 0FFh
27411
                xor     ebx, eax
27412
                mov     [esp+80h], eax
27413
                mov     eax, [esp+70h]
27414
                xor     ecx, ebx
27415
                mov     [esp+84h], ebx
27416
                xor     edi, ecx
27417
                mov     [esp+88h], ecx
27418
                mov     [esp+8Ch], edi
27419
                mov     edx, eax
27420
                mov     ebx, eax
27421
                mov     ecx, eax
27422
                shr     eax, 8
27423
                and     ebx, ebp
27424
                shr     ecx, 10h
27425
                and     eax, ebp
27426
                and     ecx, ebp
27427
                mov     ebx, [esi+ebx*4]
27428
                shr     edx, 18h
27429
                mov     eax, [esi+eax*4+400h]
27430
                mov     ecx, [esi+ecx*4+800h]
27431
                xor     ebx, eax
27432
                mov     edx, [esi+edx*4+0C00h]
27433
                xor     ebx, ecx
27434
                mov     eax, [esp+74h]
27435
                xor     ebx, edx
27436
                mov     edx, eax
27437
                mov     [esp+70h], ebx
27438
                mov     ebx, eax
27439
                mov     ecx, eax
27440
                shr     eax, 8
27441
                and     ebx, ebp
27442
                shr     ecx, 10h
27443
                and     eax, ebp
27444
                and     ecx, ebp
27445
                mov     ebx, [esi+ebx*4]
27446
                shr     edx, 18h
27447
                mov     eax, [esi+eax*4+400h]
27448
                mov     ecx, [esi+ecx*4+800h]
27449
                xor     ebx, eax
27450
                mov     edx, [esi+edx*4+0C00h]
27451
                xor     ebx, ecx
27452
                mov     eax, [esp+78h]
27453
                xor     ebx, edx
27454
                mov     edx, eax
27455
                mov     [esp+74h], ebx
27456
                mov     ebx, eax
27457
                mov     ecx, eax
27458
                shr     eax, 8
27459
                and     ebx, ebp
27460
                shr     ecx, 10h
27461
                and     eax, ebp
27462
                and     ecx, ebp
27463
                mov     ebx, [esi+ebx*4]
27464
                shr     edx, 18h
27465
                mov     eax, [esi+eax*4+400h]
27466
                mov     ecx, [esi+ecx*4+800h]
27467
                xor     ebx, eax
27468
                mov     edx, [esi+edx*4+0C00h]
27469
                xor     ebx, ecx
27470
                mov     eax, [esp+7Ch]
27471
                xor     ebx, edx
27472
                mov     edx, eax
27473
                mov     [esp+78h], ebx
27474
                mov     ebx, eax
27475
                mov     ecx, eax
27476
                shr     eax, 8
27477
                and     ebx, ebp
27478
                shr     ecx, 10h
27479
                and     eax, ebp
27480
                mov     ebx, [esi+ebx*4]
27481
                and     ecx, ebp
27482
                shr     edx, 18h
27483
                mov     eax, [esi+eax*4+400h]
27484
                mov     ecx, [esi+ecx*4+800h]
27485
                xor     ebx, eax
27486
                mov     edx, [esi+edx*4+0C00h]
27487
                xor     ebx, ecx
27488
                xor     ebx, edx
27489
                mov     [esp+7Ch], ebx
27490
                mov     esi, [esp+94h]
27491
                mov     eax, [esp]
27492
                mov     ebx, [esp+4]
27493
                mov     ecx, [esp+8]
27494
                mov     edx, [esp+0Ch]
27495
                mov     edi, [esi]
27496
                mov     ebp, [esi+4]
27497
                xor     eax, edi
27498
                xor     ebx, ebp
27499
                mov     edi, [esi+8]
27500
                mov     ebp, [esi+0Ch]
27501
                mov     [esp], eax
27502
                mov     [esp+4], ebx
27503
                xor     ecx, edi
27504
                xor     edx, ebp
27505
                mov     [esp+8], ecx
27506
                mov     [esp+0Ch], edx
27507
                mov     esi, [esp+9Ch]
27508
                mov     eax, [esp]
27509
                mov     ecx, [esp+4]
27510
                mov     ebx, eax
27511
                mov     edx, ecx
27512
                shr     eax, 8
27513
                mov     edi, [esp+8]
27514
                and     ebx, 0FFh
27515
                mov     ebp, [esp+0Ch]
27516
                shr     ecx, 8
27517
                and     eax, 0FFh
27518
                and     edx, 0FFh
27519
                and     ecx, 0FFh
27520
                mov     ebx, [esi+ebx*4]
27521
                mov     eax, [esi+eax*4]
27522
                mov     edx, [esi+edx*4+400h]
27523
                mov     ecx, [esi+ecx*4+400h]
27524
                xor     ebx, edx
27525
                mov     edx, edi
27526
                shr     edi, 8
27527
                xor     eax, ecx
27528
                mov     ecx, ebp
27529
                and     edx, 0FFh
27530
                shr     ebp, 8
27531
                and     edi, 0FFh
27532
                and     ecx, 0FFh
27533
                mov     edx, [esi+edx*4+800h]
27534
                and     ebp, 0FFh
27535
                mov     edi, [esi+edi*4+800h]
27536
                xor     ebx, edx
27537
                mov     edx, [esp+10h]
27538
                mov     ecx, [esi+ecx*4+0C00h]
27539
                xor     eax, edi
27540
                xor     ebx, ecx
27541
                mov     ecx, [esp+14h]
27542
                xor     ebx, edx
27543
                xor     eax, ecx
27544
                mov     ebp, [esi+ebp*4+0C00h]
27545
                mov     [esp+10h], ebx
27546
                xor     eax, ebp
27547
                mov     [esp+14h], eax
27548
                mov     ecx, [esp]
27549
                mov     edx, [esp+4]
27550
                mov     edi, ecx
27551
                shr     ecx, 10h
27552
                mov     eax, [esp+8]
27553
                mov     ebp, edx
27554
                mov     ebx, [esp+0Ch]
27555
                shr     edx, 10h
27556
                and     ecx, 0FFh
27557
                shr     edi, 18h
27558
                and     edx, 0FFh
27559
                shr     ebp, 18h
27560
                mov     ecx, [esi+ecx*4]
27561
                shr     eax, 10h
27562
                mov     edi, [esi+edi*4]
27563
                shr     ebx, 10h
27564
                mov     edx, [esi+edx*4+400h]
27565
                mov     ebp, [esi+ebp*4+400h]
27566
                xor     ecx, edx
27567
                mov     edx, eax
27568
                xor     edi, ebp
27569
                shr     eax, 8
27570
                mov     ebp, ebx
27571
                and     edx, 0FFh
27572
                and     ebx, 0FFh
27573
                shr     ebp, 8
27574
                mov     eax, [esi+eax*4+800h]
27575
                mov     edx, [esi+edx*4+800h]
27576
                xor     edi, eax
27577
                xor     ecx, edx
27578
                mov     ebx, [esi+ebx*4+0C00h]
27579
                mov     ebp, [esi+ebp*4+0C00h]
27580
                xor     ecx, ebx
27581
                xor     edi, ebp
27582
                mov     eax, [esp+18h]
27583
                mov     ebx, [esp+1Ch]
27584
                xor     ecx, eax
27585
                xor     edi, ebx
27586
                mov     [esp+18h], ecx
27587
                mov     [esp+1Ch], edi
27588
                mov     eax, [esp+10h]
27589
                mov     ecx, [esp+14h]
27590
                mov     ebx, eax
27591
                mov     edx, ecx
27592
                shr     eax, 8
27593
                mov     edi, [esp+18h]
27594
                and     ebx, 0FFh
27595
                mov     ebp, [esp+1Ch]
27596
                shr     ecx, 8
27597
                and     eax, 0FFh
27598
                and     edx, 0FFh
27599
                and     ecx, 0FFh
27600
                mov     ebx, [esi+ebx*4]
27601
                mov     eax, [esi+eax*4]
27602
                mov     edx, [esi+edx*4+400h]
27603
                mov     ecx, [esi+ecx*4+400h]
27604
                xor     ebx, edx
27605
                mov     edx, edi
27606
                shr     edi, 8
27607
                xor     eax, ecx
27608
                mov     ecx, ebp
27609
                and     edx, 0FFh
27610
                shr     ebp, 8
27611
                and     edi, 0FFh
27612
                and     ecx, 0FFh
27613
                mov     edx, [esi+edx*4+800h]
27614
                and     ebp, 0FFh
27615
                mov     edi, [esi+edi*4+800h]
27616
                xor     ebx, edx
27617
                mov     edx, [esp+20h]
27618
                mov     ecx, [esi+ecx*4+0C00h]
27619
                xor     eax, edi
27620
                xor     ebx, ecx
27621
                mov     ecx, [esp+24h]
27622
                xor     ebx, edx
27623
                xor     eax, ecx
27624
                mov     ebp, [esi+ebp*4+0C00h]
27625
                mov     [esp+20h], ebx
27626
                xor     eax, ebp
27627
                mov     [esp+24h], eax
27628
                mov     ecx, [esp+10h]
27629
                mov     edx, [esp+14h]
27630
                mov     edi, ecx
27631
                shr     ecx, 10h
27632
                mov     eax, [esp+18h]
27633
                mov     ebp, edx
27634
                mov     ebx, [esp+1Ch]
27635
                shr     edx, 10h
27636
                and     ecx, 0FFh
27637
                shr     edi, 18h
27638
                and     edx, 0FFh
27639
                shr     ebp, 18h
27640
                mov     ecx, [esi+ecx*4]
27641
                shr     eax, 10h
27642
                mov     edi, [esi+edi*4]
27643
                shr     ebx, 10h
27644
                mov     edx, [esi+edx*4+400h]
27645
                mov     ebp, [esi+ebp*4+400h]
27646
                xor     ecx, edx
27647
                mov     edx, eax
27648
                xor     edi, ebp
27649
                shr     eax, 8
27650
                mov     ebp, ebx
27651
                and     edx, 0FFh
27652
                and     ebx, 0FFh
27653
                shr     ebp, 8
27654
                mov     eax, [esi+eax*4+800h]
27655
                mov     edx, [esi+edx*4+800h]
27656
                xor     edi, eax
27657
                xor     ecx, edx
27658
                mov     ebx, [esi+ebx*4+0C00h]
27659
                mov     ebp, [esi+ebp*4+0C00h]
27660
                xor     ecx, ebx
27661
                xor     edi, ebp
27662
                mov     eax, [esp+28h]
27663
                mov     ebx, [esp+2Ch]
27664
                xor     ecx, eax
27665
                xor     edi, ebx
27666
                mov     [esp+28h], ecx
27667
                mov     [esp+2Ch], edi
27668
                mov     eax, [esp+20h]
27669
                mov     ecx, [esp+24h]
27670
                mov     ebx, eax
27671
                mov     edx, ecx
27672
                shr     eax, 8
27673
                mov     edi, [esp+28h]
27674
                and     ebx, 0FFh
27675
                mov     ebp, [esp+2Ch]
27676
                shr     ecx, 8
27677
                and     eax, 0FFh
27678
                and     edx, 0FFh
27679
                and     ecx, 0FFh
27680
                mov     ebx, [esi+ebx*4]
27681
                mov     eax, [esi+eax*4]
27682
                mov     edx, [esi+edx*4+400h]
27683
                mov     ecx, [esi+ecx*4+400h]
27684
                xor     ebx, edx
27685
                mov     edx, edi
27686
                shr     edi, 8
27687
                xor     eax, ecx
27688
                mov     ecx, ebp
27689
                and     edx, 0FFh
27690
                shr     ebp, 8
27691
                and     edi, 0FFh
27692
                and     ecx, 0FFh
27693
                mov     edx, [esi+edx*4+800h]
27694
                and     ebp, 0FFh
27695
                mov     edi, [esi+edi*4+800h]
27696
                xor     ebx, edx
27697
                mov     edx, [esp+30h]
27698
                mov     ecx, [esi+ecx*4+0C00h]
27699
                xor     eax, edi
27700
                xor     ebx, ecx
27701
                mov     ecx, [esp+34h]
27702
                xor     ebx, edx
27703
                xor     eax, ecx
27704
                mov     ebp, [esi+ebp*4+0C00h]
27705
                mov     [esp+30h], ebx
27706
                xor     eax, ebp
27707
                mov     [esp+34h], eax
27708
                mov     ecx, [esp+20h]
27709
                mov     edx, [esp+24h]
27710
                mov     edi, ecx
27711
                shr     ecx, 10h
27712
                mov     eax, [esp+28h]
27713
                mov     ebp, edx
27714
                mov     ebx, [esp+2Ch]
27715
                shr     edx, 10h
27716
                and     ecx, 0FFh
27717
                shr     edi, 18h
27718
                and     edx, 0FFh
27719
                shr     ebp, 18h
27720
                mov     ecx, [esi+ecx*4]
27721
                shr     eax, 10h
27722
                mov     edi, [esi+edi*4]
27723
                shr     ebx, 10h
27724
                mov     edx, [esi+edx*4+400h]
27725
                mov     ebp, [esi+ebp*4+400h]
27726
                xor     ecx, edx
27727
                mov     edx, eax
27728
                xor     edi, ebp
27729
                shr     eax, 8
27730
                mov     ebp, ebx
27731
                and     edx, 0FFh
27732
                and     ebx, 0FFh
27733
                shr     ebp, 8
27734
                mov     eax, [esi+eax*4+800h]
27735
                mov     edx, [esi+edx*4+800h]
27736
                xor     edi, eax
27737
                xor     ecx, edx
27738
                mov     ebx, [esi+ebx*4+0C00h]
27739
                mov     ebp, [esi+ebp*4+0C00h]
27740
                xor     ecx, ebx
27741
                xor     edi, ebp
27742
                mov     eax, [esp+38h]
27743
                mov     ebx, [esp+3Ch]
27744
                xor     ecx, eax
27745
                xor     edi, ebx
27746
                mov     [esp+38h], ecx
27747
                mov     [esp+3Ch], edi
27748
                mov     eax, [esp+30h]
27749
                mov     ecx, [esp+34h]
27750
                mov     ebx, eax
27751
                mov     edx, ecx
27752
                shr     eax, 8
27753
                mov     edi, [esp+38h]
27754
                and     ebx, 0FFh
27755
                mov     ebp, [esp+3Ch]
27756
                shr     ecx, 8
27757
                and     eax, 0FFh
27758
                and     edx, 0FFh
27759
                and     ecx, 0FFh
27760
                mov     ebx, [esi+ebx*4]
27761
                mov     eax, [esi+eax*4]
27762
                mov     edx, [esi+edx*4+400h]
27763
                mov     ecx, [esi+ecx*4+400h]
27764
                xor     ebx, edx
27765
                mov     edx, edi
27766
                shr     edi, 8
27767
                xor     eax, ecx
27768
                mov     ecx, ebp
27769
                and     edx, 0FFh
27770
                shr     ebp, 8
27771
                and     edi, 0FFh
27772
                and     ecx, 0FFh
27773
                mov     edx, [esi+edx*4+800h]
27774
                and     ebp, 0FFh
27775
                mov     edi, [esi+edi*4+800h]
27776
                xor     ebx, edx
27777
                mov     edx, [esp+40h]
27778
                mov     ecx, [esi+ecx*4+0C00h]
27779
                xor     eax, edi
27780
                xor     ebx, ecx
27781
                mov     ecx, [esp+44h]
27782
                xor     ebx, edx
27783
                xor     eax, ecx
27784
                mov     ebp, [esi+ebp*4+0C00h]
27785
                mov     [esp+40h], ebx
27786
                xor     eax, ebp
27787
                mov     [esp+44h], eax
27788
                mov     ecx, [esp+30h]
27789
                mov     edx, [esp+34h]
27790
                mov     edi, ecx
27791
                shr     ecx, 10h
27792
                mov     eax, [esp+38h]
27793
                mov     ebp, edx
27794
                mov     ebx, [esp+3Ch]
27795
                shr     edx, 10h
27796
                and     ecx, 0FFh
27797
                shr     edi, 18h
27798
                and     edx, 0FFh
27799
                shr     ebp, 18h
27800
                mov     ecx, [esi+ecx*4]
27801
                shr     eax, 10h
27802
                mov     edi, [esi+edi*4]
27803
                shr     ebx, 10h
27804
                mov     edx, [esi+edx*4+400h]
27805
                mov     ebp, [esi+ebp*4+400h]
27806
                xor     ecx, edx
27807
                mov     edx, eax
27808
                xor     edi, ebp
27809
                shr     eax, 8
27810
                mov     ebp, ebx
27811
                and     edx, 0FFh
27812
                and     ebx, 0FFh
27813
                shr     ebp, 8
27814
                mov     eax, [esi+eax*4+800h]
27815
                mov     edx, [esi+edx*4+800h]
27816
                xor     edi, eax
27817
                xor     ecx, edx
27818
                mov     ebx, [esi+ebx*4+0C00h]
27819
                mov     ebp, [esi+ebp*4+0C00h]
27820
                xor     ecx, ebx
27821
                xor     edi, ebp
27822
                mov     eax, [esp+48h]
27823
                mov     ebx, [esp+4Ch]
27824
                xor     ecx, eax
27825
                xor     edi, ebx
27826
                mov     [esp+48h], ecx
27827
                mov     [esp+4Ch], edi
27828
                mov     eax, [esp+40h]
27829
                mov     ecx, [esp+44h]
27830
                mov     ebx, eax
27831
                mov     edx, ecx
27832
                shr     eax, 8
27833
                mov     edi, [esp+48h]
27834
                and     ebx, 0FFh
27835
                mov     ebp, [esp+4Ch]
27836
                shr     ecx, 8
27837
                and     eax, 0FFh
27838
                and     edx, 0FFh
27839
                and     ecx, 0FFh
27840
                mov     ebx, [esi+ebx*4]
27841
                mov     eax, [esi+eax*4]
27842
                mov     edx, [esi+edx*4+400h]
27843
                mov     ecx, [esi+ecx*4+400h]
27844
                xor     ebx, edx
27845
                mov     edx, edi
27846
                shr     edi, 8
27847
                xor     eax, ecx
27848
                mov     ecx, ebp
27849
                and     edx, 0FFh
27850
                shr     ebp, 8
27851
                and     edi, 0FFh
27852
                and     ecx, 0FFh
27853
                mov     edx, [esi+edx*4+800h]
27854
                and     ebp, 0FFh
27855
                mov     edi, [esi+edi*4+800h]
27856
                xor     ebx, edx
27857
                mov     edx, [esp+50h]
27858
                mov     ecx, [esi+ecx*4+0C00h]
27859
                xor     eax, edi
27860
                xor     ebx, ecx
27861
                mov     ecx, [esp+54h]
27862
                xor     ebx, edx
27863
                xor     eax, ecx
27864
                mov     ebp, [esi+ebp*4+0C00h]
27865
                mov     [esp+50h], ebx
27866
                xor     eax, ebp
27867
                mov     [esp+54h], eax
27868
                mov     ecx, [esp+40h]
27869
                mov     edx, [esp+44h]
27870
                mov     edi, ecx
27871
                shr     ecx, 10h
27872
                mov     eax, [esp+48h]
27873
                mov     ebp, edx
27874
                mov     ebx, [esp+4Ch]
27875
                shr     edx, 10h
27876
                and     ecx, 0FFh
27877
                shr     edi, 18h
27878
                and     edx, 0FFh
27879
                shr     ebp, 18h
27880
                mov     ecx, [esi+ecx*4]
27881
                shr     eax, 10h
27882
                mov     edi, [esi+edi*4]
27883
                shr     ebx, 10h
27884
                mov     edx, [esi+edx*4+400h]
27885
                mov     ebp, [esi+ebp*4+400h]
27886
                xor     ecx, edx
27887
                mov     edx, eax
27888
                xor     edi, ebp
27889
                shr     eax, 8
27890
                mov     ebp, ebx
27891
                and     edx, 0FFh
27892
                and     ebx, 0FFh
27893
                shr     ebp, 8
27894
                mov     eax, [esi+eax*4+800h]
27895
                mov     edx, [esi+edx*4+800h]
27896
                xor     edi, eax
27897
                xor     ecx, edx
27898
                mov     ebx, [esi+ebx*4+0C00h]
27899
                mov     ebp, [esi+ebp*4+0C00h]
27900
                xor     ecx, ebx
27901
                xor     edi, ebp
27902
                mov     eax, [esp+58h]
27903
                mov     ebx, [esp+5Ch]
27904
                xor     ecx, eax
27905
                xor     edi, ebx
27906
                mov     [esp+58h], ecx
27907
                mov     [esp+5Ch], edi
27908
                mov     eax, [esp+50h]
27909
                mov     ecx, [esp+54h]
27910
                mov     ebx, eax
27911
                mov     edx, ecx
27912
                shr     eax, 8
27913
                mov     edi, [esp+58h]
27914
                and     ebx, 0FFh
27915
                mov     ebp, [esp+5Ch]
27916
                shr     ecx, 8
27917
                and     eax, 0FFh
27918
                and     edx, 0FFh
27919
                and     ecx, 0FFh
27920
                mov     ebx, [esi+ebx*4]
27921
                mov     eax, [esi+eax*4]
27922
                mov     edx, [esi+edx*4+400h]
27923
                mov     ecx, [esi+ecx*4+400h]
27924
                xor     ebx, edx
27925
                mov     edx, edi
27926
                shr     edi, 8
27927
                xor     eax, ecx
27928
                mov     ecx, ebp
27929
                and     edx, 0FFh
27930
                shr     ebp, 8
27931
                and     edi, 0FFh
27932
                and     ecx, 0FFh
27933
                mov     edx, [esi+edx*4+800h]
27934
                and     ebp, 0FFh
27935
                mov     edi, [esi+edi*4+800h]
27936
                xor     ebx, edx
27937
                mov     edx, [esp+60h]
27938
                mov     ecx, [esi+ecx*4+0C00h]
27939
                xor     eax, edi
27940
                xor     ebx, ecx
27941
                mov     ecx, [esp+64h]
27942
                xor     ebx, edx
27943
                xor     eax, ecx
27944
                mov     ebp, [esi+ebp*4+0C00h]
27945
                mov     [esp+60h], ebx
27946
                xor     eax, ebp
27947
                mov     [esp+64h], eax
27948
                mov     ecx, [esp+50h]
27949
                mov     edx, [esp+54h]
27950
                mov     edi, ecx
27951
                shr     ecx, 10h
27952
                mov     eax, [esp+58h]
27953
                mov     ebp, edx
27954
                mov     ebx, [esp+5Ch]
27955
                shr     edx, 10h
27956
                and     ecx, 0FFh
27957
                shr     edi, 18h
27958
                and     edx, 0FFh
27959
                shr     ebp, 18h
27960
                mov     ecx, [esi+ecx*4]
27961
                shr     eax, 10h
27962
                mov     edi, [esi+edi*4]
27963
                shr     ebx, 10h
27964
                mov     edx, [esi+edx*4+400h]
27965
                mov     ebp, [esi+ebp*4+400h]
27966
                xor     ecx, edx
27967
                mov     edx, eax
27968
                xor     edi, ebp
27969
                shr     eax, 8
27970
                mov     ebp, ebx
27971
                and     edx, 0FFh
27972
                and     ebx, 0FFh
27973
                shr     ebp, 8
27974
                mov     eax, [esi+eax*4+800h]
27975
                mov     edx, [esi+edx*4+800h]
27976
                xor     edi, eax
27977
                xor     ecx, edx
27978
                mov     ebx, [esi+ebx*4+0C00h]
27979
                mov     ebp, [esi+ebp*4+0C00h]
27980
                xor     ecx, ebx
27981
                xor     edi, ebp
27982
                mov     eax, [esp+68h]
27983
                mov     ebx, [esp+6Ch]
27984
                xor     ecx, eax
27985
                xor     edi, ebx
27986
                mov     [esp+68h], ecx
27987
                mov     [esp+6Ch], edi
27988
                mov     eax, [esp+60h]
27989
                mov     ecx, [esp+64h]
27990
                mov     ebx, eax
27991
                mov     edx, ecx
27992
                shr     eax, 8
27993
                mov     edi, [esp+68h]
27994
                and     ebx, 0FFh
27995
                mov     ebp, [esp+6Ch]
27996
                shr     ecx, 8
27997
                and     eax, 0FFh
27998
                and     edx, 0FFh
27999
                and     ecx, 0FFh
28000
                mov     ebx, [esi+ebx*4]
28001
                mov     eax, [esi+eax*4]
28002
                mov     edx, [esi+edx*4+400h]
28003
                mov     ecx, [esi+ecx*4+400h]
28004
                xor     ebx, edx
28005
                mov     edx, edi
28006
                shr     edi, 8
28007
                xor     eax, ecx
28008
                mov     ecx, ebp
28009
                and     edx, 0FFh
28010
                shr     ebp, 8
28011
                and     edi, 0FFh
28012
                and     ecx, 0FFh
28013
                mov     edx, [esi+edx*4+800h]
28014
                and     ebp, 0FFh
28015
                mov     edi, [esi+edi*4+800h]
28016
                xor     ebx, edx
28017
                mov     edx, [esp+70h]
28018
                mov     ecx, [esi+ecx*4+0C00h]
28019
                xor     eax, edi
28020
                xor     ebx, ecx
28021
                mov     ecx, [esp+74h]
28022
                xor     ebx, edx
28023
                xor     eax, ecx
28024
                mov     ebp, [esi+ebp*4+0C00h]
28025
                mov     [esp+70h], ebx
28026
                xor     eax, ebp
28027
                mov     [esp+74h], eax
28028
                mov     ecx, [esp+60h]
28029
                mov     edx, [esp+64h]
28030
                mov     edi, ecx
28031
                shr     ecx, 10h
28032
                mov     eax, [esp+68h]
28033
                mov     ebp, edx
28034
                mov     ebx, [esp+6Ch]
28035
                shr     edx, 10h
28036
                and     ecx, 0FFh
28037
                shr     edi, 18h
28038
                and     edx, 0FFh
28039
                shr     ebp, 18h
28040
                mov     ecx, [esi+ecx*4]
28041
                shr     eax, 10h
28042
                mov     edi, [esi+edi*4]
28043
                shr     ebx, 10h
28044
                mov     edx, [esi+edx*4+400h]
28045
                mov     ebp, [esi+ebp*4+400h]
28046
                xor     ecx, edx
28047
                mov     edx, eax
28048
                xor     edi, ebp
28049
                shr     eax, 8
28050
                mov     ebp, ebx
28051
                and     edx, 0FFh
28052
                and     ebx, 0FFh
28053
                shr     ebp, 8
28054
                mov     eax, [esi+eax*4+800h]
28055
                mov     edx, [esi+edx*4+800h]
28056
                xor     edi, eax
28057
                xor     ecx, edx
28058
                mov     ebx, [esi+ebx*4+0C00h]
28059
                mov     ebp, [esi+ebp*4+0C00h]
28060
                xor     ecx, ebx
28061
                xor     edi, ebp
28062
                mov     eax, [esp+78h]
28063
                mov     ebx, [esp+7Ch]
28064
                xor     ecx, eax
28065
                xor     edi, ebx
28066
                mov     [esp+78h], ecx
28067
                mov     [esp+7Ch], edi
28068
                mov     esi, [esp+0A0h]
28069
                mov     eax, [esp+70h]
28070
                mov     ebx, [esp+74h]
28071
                mov     ecx, eax
28072
                mov     edi, [esp+78h]
28073
                shr     eax, 8
28074
                mov     ebp, [esp+7Ch]
28075
                mov     edx, ebx
28076
                and     ecx, 0FFh
28077
                and     eax, 0FFh
28078
                shr     ebx, 8
28079
                and     edx, 0FFh
28080
                and     ebx, 0FFh
28081
                mov     ecx, [esi+ecx*4]
28082
                mov     edx, [esi+edx*4]
28083
                mov     eax, [esi+eax*4]
28084
                shl     edx, 8
28085
                mov     ebx, [esi+ebx*4]
28086
                shl     ebx, 8
28087
                xor     ecx, edx
28088
                mov     edx, edi
28089
                xor     eax, ebx
28090
                shr     edi, 8
28091
                mov     ebx, ebp
28092
                shr     ebp, 8
28093
                and     edx, 0FFh
28094
                and     edi, 0FFh
28095
                and     ebx, 0FFh
28096
                and     ebp, 0FFh
28097
                mov     edx, [esi+edx*4]
28098
                mov     edi, [esi+edi*4]
28099
                mov     ebx, [esi+ebx*4]
28100
                shl     edx, 10h
28101
                mov     ebp, [esi+ebp*4]
28102
                shl     edi, 10h
28103
                xor     ecx, edx
28104
                shl     ebx, 18h
28105
                xor     eax, edi
28106
                shl     ebp, 18h
28107
                mov     edx, [esp+94h]
28108
                xor     ecx, ebx
28109
                xor     eax, ebp
28110
                mov     ebx, [edx]
28111
                mov     ebp, [edx+4]
28112
                mov     edx, [esp+90h]
28113
                xor     ecx, ebx
28114
                xor     eax, ebp
28115
                mov     ebx, [esp+80h]
28116
                mov     ebp, [esp+84h]
28117
                xor     ecx, ebx
28118
                xor     eax, ebp
28119
                mov     [edx], ecx
28120
                mov     [edx+4], eax
28121
                mov     eax, [esp+70h]
28122
                mov     ebx, [esp+74h]
28123
                mov     ecx, eax
28124
                shr     eax, 10h
28125
                mov     edi, [esp+78h]
28126
                mov     ebp, [esp+7Ch]
28127
                mov     edx, ebx
28128
                shr     ebx, 10h
28129
                and     eax, 0FFh
28130
                shr     ecx, 18h
28131
                and     ebx, 0FFh
28132
                shr     edx, 18h
28133
                mov     eax, [esi+eax*4]
28134
                mov     ebx, [esi+ebx*4]
28135
                mov     ecx, [esi+ecx*4]
28136
                shl     ebx, 8
28137
                mov     edx, [esi+edx*4]
28138
                shl     edx, 8
28139
                xor     eax, ebx
28140
                mov     ebx, edi
28141
                xor     ecx, edx
28142
                shr     edi, 10h
28143
                mov     edx, ebp
28144
                shr     ebp, 10h
28145
                and     edi, 0FFh
28146
                shr     ebx, 18h
28147
                and     ebp, 0FFh
28148
                shr     edx, 18h
28149
                mov     edi, [esi+edi*4]
28150
                mov     ebx, [esi+ebx*4]
28151
                mov     ebp, [esi+ebp*4]
28152
                shl     edi, 10h
28153
                mov     edx, [esi+edx*4]
28154
                shl     ebp, 18h
28155
                xor     eax, edi
28156
                shl     ebx, 10h
28157
                xor     eax, ebp
28158
                shl     edx, 18h
28159
                mov     edi, [esp+94h]
28160
                xor     ecx, ebx
28161
                mov     ebx, [esp+88h]
28162
                xor     ecx, edx
28163
                mov     edx, [esp+8Ch]
28164
                xor     eax, ebx
28165
                mov     ebx, [edi+8]
28166
                mov     edi, [edi+0Ch]
28167
                xor     ecx, edx
28168
                mov     edx, [esp+90h]
28169
                mov     ebp, [esp+0A4h]
28170
                xor     eax, ebx
28171
                mov     esp, ebp
28172
                xor     ecx, edi
28173
                mov     [edx+8], eax
28174
                mov     [edx+0Ch], ecx
28175
                pop  ebp
28176
                pop  edi
28177
                pop  esi
28178
                pop  ebx
28179
end;
28180
{$ENDIF}
28181
28182
{$IFDEF THash_Snefru128_asm}
28183
procedure THash_Snefru128.DoTransform(Buffer: PUInt32Array);
28184
begin
28185
  SwapUInt32Buffer(Buffer[0], FDigest[4], 12);
28186
  asm
28187
                push    ebx
28188
                mov     eax, Self
28189
                push    esi
28190
                push    edi
28191
                lea     edi, [eax].THash_Snefru128.FDigest
28192
                push    ebp
28193
                lea     esi, Snefru_Data
28194
                mov     ecx, [eax].THash_Snefru128.FRounds
28195
28196
                mov     ebp, esp
28197
                add     esp, 0FFFFFF94h
28198
                and     esp, 0FFFFFFE0h
28199
                mov     [esp+60h], edi
28200
                mov     [esp+68h], ebp
28201
                mov     eax, [edi]
28202
                mov     ebx, [edi+4]
28203
                mov     ebp, [edi+8]
28204
                mov     edx, [edi+0Ch]
28205
                mov     [esp], eax
28206
                mov     [esp+4], ebx
28207
                mov     [esp+8], ebp
28208
                mov     [esp+0Ch], edx
28209
                mov     [esp+40h], eax
28210
                mov     [esp+44h], ebx
28211
                mov     [esp+48h], ebp
28212
                mov     [esp+4Ch], edx
28213
                mov     eax, [edi+10h]
28214
                mov     ebx, [edi+14h]
28215
                mov     ebp, [edi+18h]
28216
                mov     edx, [edi+1Ch]
28217
                mov     [esp+10h], eax
28218
                mov     [esp+14h], ebx
28219
                mov     [esp+18h], ebp
28220
                mov     [esp+1Ch], edx
28221
                mov     eax, [edi+20h]
28222
                mov     ebx, [edi+24h]
28223
                mov     ebp, [edi+28h]
28224
                mov     edx, [edi+2Ch]
28225
                mov     [esp+20h], eax
28226
                mov     [esp+24h], ebx
28227
                mov     [esp+28h], ebp
28228
                mov     [esp+2Ch], edx
28229
                mov     eax, [edi+30h]
28230
                mov     ebx, [edi+34h]
28231
                mov     ebp, [edi+38h]
28232
                mov     edx, [edi+3Ch]
28233
                mov     [esp+30h], eax
28234
                mov     [esp+34h], ebx
28235
                mov     [esp+38h], ebp
28236
                mov     [esp+3Ch], edx
28237
28238
            @@_level_loop:
28239
                mov     [esp+64h], ecx
28240
                mov     ebx, [esp]
28241
                mov     ecx, [esp+4]
28242
                mov     edi, ebx
28243
                and     ebx, 0FFh
28244
                mov     eax, [esp+3Ch]
28245
                mov     ebx, [esi+ebx*4]
28246
                mov     edx, [esp+8]
28247
                xor     ecx, ebx
28248
                xor     eax, ebx
28249
                mov     ebp, ecx
28250
                and     ecx, 0FFh
28251
                mov     [esp+3Ch], eax
28252
                mov     ecx, [esi+ecx*4]
28253
                mov     ebx, [esp+0Ch]
28254
                xor     edx, ecx
28255
                xor     edi, ecx
28256
                mov     ecx, edx
28257
                and     edx, 0FFh
28258
                mov     [esp], edi
28259
                mov     edx, [esi+edx*4+400h]
28260
                mov     edi, [esp+10h]
28261
                xor     ebx, edx
28262
                xor     ebp, edx
28263
                mov     edx, ebx
28264
                and     ebx, 0FFh
28265
                ror     ebp, 10h
28266
                mov     ebx, [esi+ebx*4+400h]
28267
                mov     eax, [esp+14h]
28268
                mov     [esp+4], ebp
28269
                xor     edi, ebx
28270
                xor     ecx, ebx
28271
                mov     ebx, edi
28272
                and     edi, 0FFh
28273
                mov     ebp, [esp+18h]
28274
                ror     ecx, 10h
28275
                mov     edi, [esi+edi*4]
28276
                mov     [esp+8], ecx
28277
                xor     eax, edi
28278
                xor     edx, edi
28279
                mov     edi, eax
28280
                and     eax, 0FFh
28281
                ror     edx, 10h
28282
                mov     eax, [esi+eax*4]
28283
                mov     ecx, [esp+1Ch]
28284
                mov     [esp+0Ch], edx
28285
                xor     ebp, eax
28286
                xor     ebx, eax
28287
                mov     eax, ebp
28288
                and     ebp, 0FFh
28289
                mov     edx, [esp+20h]
28290
                ror     ebx, 10h
28291
                mov     ebp, [esi+ebp*4+400h]
28292
                mov     [esp+10h], ebx
28293
                xor     ecx, ebp
28294
                xor     edi, ebp
28295
                mov     ebp, ecx
28296
                and     ecx, 0FFh
28297
                ror     edi, 10h
28298
                mov     ecx, [esi+ecx*4+400h]
28299
                mov     ebx, [esp+24h]
28300
                mov     [esp+14h], edi
28301
                xor     edx, ecx
28302
                xor     eax, ecx
28303
                mov     ecx, edx
28304
                and     edx, 0FFh
28305
                mov     edi, [esp+28h]
28306
                ror     eax, 10h
28307
                mov     edx, [esi+edx*4]
28308
                mov     [esp+18h], eax
28309
                xor     ebx, edx
28310
                xor     ebp, edx
28311
                mov     edx, ebx
28312
                and     ebx, 0FFh
28313
                ror     ebp, 10h
28314
                mov     ebx, [esi+ebx*4]
28315
                mov     eax, [esp+2Ch]
28316
                mov     [esp+1Ch], ebp
28317
                xor     edi, ebx
28318
                xor     ecx, ebx
28319
                mov     ebx, edi
28320
                and     edi, 0FFh
28321
                mov     ebp, [esp+30h]
28322
                ror     ecx, 10h
28323
                mov     edi, [esi+edi*4+400h]
28324
                mov     [esp+20h], ecx
28325
                xor     eax, edi
28326
                xor     edx, edi
28327
                mov     edi, eax
28328
                and     eax, 0FFh
28329
                ror     edx, 10h
28330
                mov     eax, [esi+eax*4+400h]
28331
                mov     ecx, [esp+34h]
28332
                mov     [esp+24h], edx
28333
                xor     ebp, eax
28334
                xor     ebx, eax
28335
                mov     eax, ebp
28336
                and     ebp, 0FFh
28337
                mov     edx, [esp+38h]
28338
                ror     ebx, 10h
28339
                mov     ebp, [esi+ebp*4]
28340
                mov     [esp+28h], ebx
28341
                xor     ecx, ebp
28342
                xor     edi, ebp
28343
                mov     ebp, ecx
28344
                and     ecx, 0FFh
28345
                ror     edi, 10h
28346
                mov     ecx, [esi+ecx*4]
28347
                mov     ebx, [esp+3Ch]
28348
                mov     [esp+2Ch], edi
28349
                xor     edx, ecx
28350
                xor     eax, ecx
28351
                mov     ecx, edx
28352
                and     edx, 0FFh
28353
                mov     edi, [esp]
28354
                ror     eax, 10h
28355
                mov     edx, [esi+edx*4+400h]
28356
                mov     [esp+30h], eax
28357
                xor     ebx, edx
28358
                xor     ebp, edx
28359
                mov     edx, ebx
28360
                and     ebx, 0FFh
28361
                ror     ebp, 10h
28362
                ror     edx, 10h
28363
                mov     ebx, [esi+ebx*4+400h]
28364
                mov     [esp+34h], ebp
28365
                xor     edi, ebx
28366
                xor     ecx, ebx
28367
                ror     edi, 10h
28368
                ror     ecx, 10h
28369
                mov     [esp], edi
28370
                mov     [esp+38h], ecx
28371
                mov     [esp+3Ch], edx
28372
                mov     ebx, [esp]
28373
                mov     ecx, [esp+4]
28374
                mov     edi, ebx
28375
                and     ebx, 0FFh
28376
                mov     eax, [esp+3Ch]
28377
                mov     ebx, [esi+ebx*4]
28378
                mov     edx, [esp+8]
28379
                xor     ecx, ebx
28380
                xor     eax, ebx
28381
                mov     ebp, ecx
28382
                and     ecx, 0FFh
28383
                mov     [esp+3Ch], eax
28384
                mov     ecx, [esi+ecx*4]
28385
                mov     ebx, [esp+0Ch]
28386
                xor     edx, ecx
28387
                xor     edi, ecx
28388
                mov     ecx, edx
28389
                and     edx, 0FFh
28390
                mov     [esp], edi
28391
                mov     edx, [esi+edx*4+400h]
28392
                mov     edi, [esp+10h]
28393
                xor     ebx, edx
28394
                xor     ebp, edx
28395
                mov     edx, ebx
28396
                and     ebx, 0FFh
28397
                ror     ebp, 8
28398
                mov     ebx, [esi+ebx*4+400h]
28399
                mov     eax, [esp+14h]
28400
                mov     [esp+4], ebp
28401
                xor     edi, ebx
28402
                xor     ecx, ebx
28403
                mov     ebx, edi
28404
                and     edi, 0FFh
28405
                mov     ebp, [esp+18h]
28406
                ror     ecx, 8
28407
                mov     edi, [esi+edi*4]
28408
                mov     [esp+8], ecx
28409
                xor     eax, edi
28410
                xor     edx, edi
28411
                mov     edi, eax
28412
                and     eax, 0FFh
28413
                ror     edx, 8
28414
                mov     eax, [esi+eax*4]
28415
                mov     ecx, [esp+1Ch]
28416
                mov     [esp+0Ch], edx
28417
                xor     ebp, eax
28418
                xor     ebx, eax
28419
                mov     eax, ebp
28420
                and     ebp, 0FFh
28421
                mov     edx, [esp+20h]
28422
                ror     ebx, 8
28423
                mov     ebp, [esi+ebp*4+400h]
28424
                mov     [esp+10h], ebx
28425
                xor     ecx, ebp
28426
                xor     edi, ebp
28427
                mov     ebp, ecx
28428
                and     ecx, 0FFh
28429
                ror     edi, 8
28430
                mov     ecx, [esi+ecx*4+400h]
28431
                mov     ebx, [esp+24h]
28432
                mov     [esp+14h], edi
28433
                xor     edx, ecx
28434
                xor     eax, ecx
28435
                mov     ecx, edx
28436
                and     edx, 0FFh
28437
                mov     edi, [esp+28h]
28438
                ror     eax, 8
28439
                mov     edx, [esi+edx*4]
28440
                mov     [esp+18h], eax
28441
                xor     ebx, edx
28442
                xor     ebp, edx
28443
                mov     edx, ebx
28444
                and     ebx, 0FFh
28445
                ror     ebp, 8
28446
                mov     ebx, [esi+ebx*4]
28447
                mov     eax, [esp+2Ch]
28448
                mov     [esp+1Ch], ebp
28449
                xor     edi, ebx
28450
                xor     ecx, ebx
28451
                mov     ebx, edi
28452
                and     edi, 0FFh
28453
                mov     ebp, [esp+30h]
28454
                ror     ecx, 8
28455
                mov     edi, [esi+edi*4+400h]
28456
                mov     [esp+20h], ecx
28457
                xor     eax, edi
28458
                xor     edx, edi
28459
                mov     edi, eax
28460
                and     eax, 0FFh
28461
                ror     edx, 8
28462
                mov     eax, [esi+eax*4+400h]
28463
                mov     ecx, [esp+34h]
28464
                mov     [esp+24h], edx
28465
                xor     ebp, eax
28466
                xor     ebx, eax
28467
                mov     eax, ebp
28468
                and     ebp, 0FFh
28469
                mov     edx, [esp+38h]
28470
                ror     ebx, 8
28471
                mov     ebp, [esi+ebp*4]
28472
                mov     [esp+28h], ebx
28473
                xor     ecx, ebp
28474
                xor     edi, ebp
28475
                mov     ebp, ecx
28476
                and     ecx, 0FFh
28477
                ror     edi, 8
28478
                mov     ecx, [esi+ecx*4]
28479
                mov     ebx, [esp+3Ch]
28480
                mov     [esp+2Ch], edi
28481
                xor     edx, ecx
28482
                xor     eax, ecx
28483
                mov     ecx, edx
28484
                and     edx, 0FFh
28485
                mov     edi, [esp]
28486
                ror     eax, 8
28487
                mov     edx, [esi+edx*4+400h]
28488
                mov     [esp+30h], eax
28489
                xor     ebx, edx
28490
                xor     ebp, edx
28491
                mov     edx, ebx
28492
                and     ebx, 0FFh
28493
                ror     ebp, 8
28494
                ror     edx, 8
28495
                mov     ebx, [esi+ebx*4+400h]
28496
                mov     [esp+34h], ebp
28497
                xor     edi, ebx
28498
                xor     ecx, ebx
28499
                ror     edi, 8
28500
                ror     ecx, 8
28501
                mov     [esp], edi
28502
                mov     [esp+38h], ecx
28503
                mov     [esp+3Ch], edx
28504
                mov     ebx, [esp]
28505
                mov     ecx, [esp+4]
28506
                mov     edi, ebx
28507
                and     ebx, 0FFh
28508
                mov     eax, [esp+3Ch]
28509
                mov     ebx, [esi+ebx*4]
28510
                mov     edx, [esp+8]
28511
                xor     ecx, ebx
28512
                xor     eax, ebx
28513
                mov     ebp, ecx
28514
                and     ecx, 0FFh
28515
                mov     [esp+3Ch], eax
28516
                mov     ecx, [esi+ecx*4]
28517
                mov     ebx, [esp+0Ch]
28518
                xor     edx, ecx
28519
                xor     edi, ecx
28520
                mov     ecx, edx
28521
                and     edx, 0FFh
28522
                mov     [esp], edi
28523
                mov     edx, [esi+edx*4+400h]
28524
                mov     edi, [esp+10h]
28525
                xor     ebx, edx
28526
                xor     ebp, edx
28527
                mov     edx, ebx
28528
                and     ebx, 0FFh
28529
                ror     ebp, 10h
28530
                mov     ebx, [esi+ebx*4+400h]
28531
                mov     eax, [esp+14h]
28532
                mov     [esp+4], ebp
28533
                xor     edi, ebx
28534
                xor     ecx, ebx
28535
                mov     ebx, edi
28536
                and     edi, 0FFh
28537
                mov     ebp, [esp+18h]
28538
                ror     ecx, 10h
28539
                mov     edi, [esi+edi*4]
28540
                mov     [esp+8], ecx
28541
                xor     eax, edi
28542
                xor     edx, edi
28543
                mov     edi, eax
28544
                and     eax, 0FFh
28545
                ror     edx, 10h
28546
                mov     eax, [esi+eax*4]
28547
                mov     ecx, [esp+1Ch]
28548
                mov     [esp+0Ch], edx
28549
                xor     ebp, eax
28550
                xor     ebx, eax
28551
                mov     eax, ebp
28552
                and     ebp, 0FFh
28553
                mov     edx, [esp+20h]
28554
                ror     ebx, 10h
28555
                mov     ebp, [esi+ebp*4+400h]
28556
                mov     [esp+10h], ebx
28557
                xor     ecx, ebp
28558
                xor     edi, ebp
28559
                mov     ebp, ecx
28560
                and     ecx, 0FFh
28561
                ror     edi, 10h
28562
                mov     ecx, [esi+ecx*4+400h]
28563
                mov     ebx, [esp+24h]
28564
                mov     [esp+14h], edi
28565
                xor     edx, ecx
28566
                xor     eax, ecx
28567
                mov     ecx, edx
28568
                and     edx, 0FFh
28569
                mov     edi, [esp+28h]
28570
                ror     eax, 10h
28571
                mov     edx, [esi+edx*4]
28572
                mov     [esp+18h], eax
28573
                xor     ebx, edx
28574
                xor     ebp, edx
28575
                mov     edx, ebx
28576
                and     ebx, 0FFh
28577
                ror     ebp, 10h
28578
                mov     ebx, [esi+ebx*4]
28579
                mov     eax, [esp+2Ch]
28580
                mov     [esp+1Ch], ebp
28581
                xor     edi, ebx
28582
                xor     ecx, ebx
28583
                mov     ebx, edi
28584
                and     edi, 0FFh
28585
                mov     ebp, [esp+30h]
28586
                ror     ecx, 10h
28587
                mov     edi, [esi+edi*4+400h]
28588
                mov     [esp+20h], ecx
28589
                xor     eax, edi
28590
                xor     edx, edi
28591
                mov     edi, eax
28592
                and     eax, 0FFh
28593
                ror     edx, 10h
28594
                mov     eax, [esi+eax*4+400h]
28595
                mov     ecx, [esp+34h]
28596
                mov     [esp+24h], edx
28597
                xor     ebp, eax
28598
                xor     ebx, eax
28599
                mov     eax, ebp
28600
                and     ebp, 0FFh
28601
                mov     edx, [esp+38h]
28602
                ror     ebx, 10h
28603
                mov     ebp, [esi+ebp*4]
28604
                mov     [esp+28h], ebx
28605
                xor     ecx, ebp
28606
                xor     edi, ebp
28607
                mov     ebp, ecx
28608
                and     ecx, 0FFh
28609
                ror     edi, 10h
28610
                mov     ecx, [esi+ecx*4]
28611
                mov     ebx, [esp+3Ch]
28612
                mov     [esp+2Ch], edi
28613
                xor     edx, ecx
28614
                xor     eax, ecx
28615
                mov     ecx, edx
28616
                and     edx, 0FFh
28617
                mov     edi, [esp]
28618
                ror     eax, 10h
28619
                mov     edx, [esi+edx*4+400h]
28620
                mov     [esp+30h], eax
28621
                xor     ebx, edx
28622
                xor     ebp, edx
28623
                mov     edx, ebx
28624
                and     ebx, 0FFh
28625
                ror     ebp, 10h
28626
                ror     edx, 10h
28627
                mov     ebx, [esi+ebx*4+400h]
28628
                mov     [esp+34h], ebp
28629
                xor     edi, ebx
28630
                xor     ecx, ebx
28631
                ror     edi, 10h
28632
                ror     ecx, 10h
28633
                mov     [esp], edi
28634
                mov     [esp+38h], ecx
28635
                mov     [esp+3Ch], edx
28636
                mov     ebx, [esp]
28637
                mov     ecx, [esp+4]
28638
                mov     edi, ebx
28639
                and     ebx, 0FFh
28640
                mov     eax, [esp+3Ch]
28641
                mov     ebx, [esi+ebx*4]
28642
                mov     edx, [esp+8]
28643
                xor     ecx, ebx
28644
                xor     eax, ebx
28645
                mov     ebp, ecx
28646
                and     ecx, 0FFh
28647
                mov     [esp+3Ch], eax
28648
                mov     ecx, [esi+ecx*4]
28649
                mov     ebx, [esp+0Ch]
28650
                xor     edx, ecx
28651
                xor     edi, ecx
28652
                mov     ecx, edx
28653
                and     edx, 0FFh
28654
                mov     [esp], edi
28655
                mov     edx, [esi+edx*4+400h]
28656
                mov     edi, [esp+10h]
28657
                xor     ebx, edx
28658
                xor     ebp, edx
28659
                mov     edx, ebx
28660
                and     ebx, 0FFh
28661
                rol     ebp, 8
28662
                mov     ebx, [esi+ebx*4+400h]
28663
                mov     eax, [esp+14h]
28664
                mov     [esp+4], ebp
28665
                xor     edi, ebx
28666
                xor     ecx, ebx
28667
                mov     ebx, edi
28668
                and     edi, 0FFh
28669
                mov     ebp, [esp+18h]
28670
                rol     ecx, 8
28671
                mov     edi, [esi+edi*4]
28672
                mov     [esp+8], ecx
28673
                xor     eax, edi
28674
                xor     edx, edi
28675
                mov     edi, eax
28676
                and     eax, 0FFh
28677
                rol     edx, 8
28678
                mov     eax, [esi+eax*4]
28679
                mov     ecx, [esp+1Ch]
28680
                mov     [esp+0Ch], edx
28681
                xor     ebp, eax
28682
                xor     ebx, eax
28683
                mov     eax, ebp
28684
                and     ebp, 0FFh
28685
                mov     edx, [esp+20h]
28686
                rol     ebx, 8
28687
                mov     ebp, [esi+ebp*4+400h]
28688
                mov     [esp+10h], ebx
28689
                xor     ecx, ebp
28690
                xor     edi, ebp
28691
                mov     ebp, ecx
28692
                and     ecx, 0FFh
28693
                rol     edi, 8
28694
                mov     ecx, [esi+ecx*4+400h]
28695
                mov     ebx, [esp+24h]
28696
                mov     [esp+14h], edi
28697
                xor     edx, ecx
28698
                xor     eax, ecx
28699
                mov     ecx, edx
28700
                and     edx, 0FFh
28701
                mov     edi, [esp+28h]
28702
                rol     eax, 8
28703
                mov     edx, [esi+edx*4]
28704
                mov     [esp+18h], eax
28705
                xor     ebx, edx
28706
                xor     ebp, edx
28707
                mov     edx, ebx
28708
                and     ebx, 0FFh
28709
                rol     ebp, 8
28710
                mov     ebx, [esi+ebx*4]
28711
                mov     eax, [esp+2Ch]
28712
                mov     [esp+1Ch], ebp
28713
                xor     edi, ebx
28714
                xor     ecx, ebx
28715
                mov     ebx, edi
28716
                and     edi, 0FFh
28717
                mov     ebp, [esp+30h]
28718
                rol     ecx, 8
28719
                mov     edi, [esi+edi*4+400h]
28720
                mov     [esp+20h], ecx
28721
                xor     eax, edi
28722
                xor     edx, edi
28723
                mov     edi, eax
28724
                and     eax, 0FFh
28725
                rol     edx, 8
28726
                mov     eax, [esi+eax*4+400h]
28727
                mov     ecx, [esp+34h]
28728
                mov     [esp+24h], edx
28729
                xor     ebp, eax
28730
                xor     ebx, eax
28731
                mov     eax, ebp
28732
                and     ebp, 0FFh
28733
                mov     edx, [esp+38h]
28734
                rol     ebx, 8
28735
                mov     ebp, [esi+ebp*4]
28736
                mov     [esp+28h], ebx
28737
                xor     ecx, ebp
28738
                xor     edi, ebp
28739
                mov     ebp, ecx
28740
                and     ecx, 0FFh
28741
                rol     edi, 8
28742
                mov     ecx, [esi+ecx*4]
28743
                mov     ebx, [esp+3Ch]
28744
                mov     [esp+2Ch], edi
28745
                xor     edx, ecx
28746
                xor     eax, ecx
28747
                mov     ecx, edx
28748
                and     edx, 0FFh
28749
                mov     edi, [esp]
28750
                rol     eax, 8
28751
                mov     edx, [esi+edx*4+400h]
28752
                mov     [esp+30h], eax
28753
                xor     ebx, edx
28754
                xor     ebp, edx
28755
                mov     edx, ebx
28756
                and     ebx, 0FFh
28757
                rol     ebp, 8
28758
                rol     edx, 8
28759
                mov     ebx, [esi+ebx*4+400h]
28760
                mov     [esp+34h], ebp
28761
                xor     edi, ebx
28762
                xor     ecx, ebx
28763
                rol     edi, 8
28764
                rol     ecx, 8
28765
                mov     [esp], edi
28766
                mov     [esp+38h], ecx
28767
                mov     [esp+3Ch], edx
28768
                mov     ecx, [esp+64h]
28769
                add     esi, 800h
28770
                dec     ecx
28771
                jnz     @@_level_loop
28772
                mov     edi, [esp+60h]
28773
                mov     eax, [esp+40h]
28774
                mov     ebx, [esp+44h]
28775
                mov     ecx, [esp+3Ch]
28776
                mov     edx, [esp+38h]
28777
                xor     eax, ecx
28778
                xor     ebx, edx
28779
                mov     [edi], eax
28780
                mov     [edi+4], ebx
28781
                mov     eax, [esp+48h]
28782
                mov     ebx, [esp+4Ch]
28783
                mov     ecx, [esp+34h]
28784
                mov     edx, [esp+30h]
28785
                xor     eax, ecx
28786
                xor     ebx, edx
28787
                mov     [edi+8], eax
28788
                mov     [edi+0Ch], ebx
28789
                mov     ebp, [esp+68h]
28790
                mov     esp, ebp
28791
28792
                pop  ebp
28793
                pop  edi
28794
                pop  esi
28795
                pop  ebx
28796
  end;
28797
end;
28798
{$ENDIF}
28799
28800
{$IFDEF THash_Snefru256_asm}
28801
procedure THash_Snefru256.DoTransform(Buffer: PUInt32Array);
28802
begin
28803
  SwapUInt32Buffer(Buffer[0], FDigest[8], 8);
28804
  asm
28805
                push    ebx
28806
                mov     eax, Self
28807
                push    esi
28808
                push    edi
28809
                lea     edi, [eax].THash_Snefru256.FDigest
28810
                push    ebp
28811
                lea     esi, Snefru_Data
28812
                mov     ecx, [eax].THash_Snefru256.FRounds
28813
                mov     ebp, esp
28814
                add     esp, 0FFFFFF94h
28815
                and     esp, 0FFFFFFE0h
28816
                mov     [esp+60h], edi
28817
                mov     [esp+68h], ebp
28818
                mov     eax, [edi]
28819
                mov     ebx, [edi+4]
28820
                mov     ebp, [edi+8]
28821
                mov     edx, [edi+0Ch]
28822
                mov     [esp], eax
28823
                mov     [esp+4], ebx
28824
                mov     [esp+8], ebp
28825
                mov     [esp+0Ch], edx
28826
                mov     [esp+40h], eax
28827
                mov     [esp+44h], ebx
28828
                mov     [esp+48h], ebp
28829
                mov     [esp+4Ch], edx
28830
                mov     eax, [edi+10h]
28831
                mov     ebx, [edi+14h]
28832
                mov     ebp, [edi+18h]
28833
                mov     edx, [edi+1Ch]
28834
                mov     [esp+10h], eax
28835
                mov     [esp+14h], ebx
28836
                mov     [esp+18h], ebp
28837
                mov     [esp+1Ch], edx
28838
                mov     [esp+50h], eax
28839
                mov     [esp+54h], ebx
28840
                mov     [esp+58h], ebp
28841
                mov     [esp+5Ch], edx
28842
                mov     eax, [edi+20h]
28843
                mov     ebx, [edi+24h]
28844
                mov     ebp, [edi+28h]
28845
                mov     edx, [edi+2Ch]
28846
                mov     [esp+20h], eax
28847
                mov     [esp+24h], ebx
28848
                mov     [esp+28h], ebp
28849
                mov     [esp+2Ch], edx
28850
                mov     eax, [edi+30h]
28851
                mov     ebx, [edi+34h]
28852
                mov     ebp, [edi+38h]
28853
                mov     edx, [edi+3Ch]
28854
                mov     [esp+30h], eax
28855
                mov     [esp+34h], ebx
28856
                mov     [esp+38h], ebp
28857
                mov     [esp+3Ch], edx
28858
28859
            @@_level_loop:
28860
                mov     [esp+64h], ecx
28861
                mov     ebx, [esp]
28862
                mov     ecx, [esp+4]
28863
                mov     edi, ebx
28864
                and     ebx, 0FFh
28865
                mov     eax, [esp+3Ch]
28866
                mov     ebx, [esi+ebx*4]
28867
                mov     edx, [esp+8]
28868
                xor     ecx, ebx
28869
                xor     eax, ebx
28870
                mov     ebp, ecx
28871
                and     ecx, 0FFh
28872
                mov     [esp+3Ch], eax
28873
                mov     ecx, [esi+ecx*4]
28874
                mov     ebx, [esp+0Ch]
28875
                xor     edx, ecx
28876
                xor     edi, ecx
28877
                mov     ecx, edx
28878
                and     edx, 0FFh
28879
                mov     [esp], edi
28880
                mov     edx, [esi+edx*4+400h]
28881
                mov     edi, [esp+10h]
28882
                xor     ebx, edx
28883
                xor     ebp, edx
28884
                mov     edx, ebx
28885
                and     ebx, 0FFh
28886
                ror     ebp, 10h
28887
                mov     ebx, [esi+ebx*4+400h]
28888
                mov     eax, [esp+14h]
28889
                mov     [esp+4], ebp
28890
                xor     edi, ebx
28891
                xor     ecx, ebx
28892
                mov     ebx, edi
28893
                and     edi, 0FFh
28894
                mov     ebp, [esp+18h]
28895
                ror     ecx, 10h
28896
                mov     edi, [esi+edi*4]
28897
                mov     [esp+8], ecx
28898
                xor     eax, edi
28899
                xor     edx, edi
28900
                mov     edi, eax
28901
                and     eax, 0FFh
28902
                ror     edx, 10h
28903
                mov     eax, [esi+eax*4]
28904
                mov     ecx, [esp+1Ch]
28905
                mov     [esp+0Ch], edx
28906
                xor     ebp, eax
28907
                xor     ebx, eax
28908
                mov     eax, ebp
28909
                and     ebp, 0FFh
28910
                mov     edx, [esp+20h]
28911
                ror     ebx, 10h
28912
                mov     ebp, [esi+ebp*4+400h]
28913
                mov     [esp+10h], ebx
28914
                xor     ecx, ebp
28915
                xor     edi, ebp
28916
                mov     ebp, ecx
28917
                and     ecx, 0FFh
28918
                ror     edi, 10h
28919
                mov     ecx, [esi+ecx*4+400h]
28920
                mov     ebx, [esp+24h]
28921
                mov     [esp+14h], edi
28922
                xor     edx, ecx
28923
                xor     eax, ecx
28924
                mov     ecx, edx
28925
                and     edx, 0FFh
28926
                mov     edi, [esp+28h]
28927
                ror     eax, 10h
28928
                mov     edx, [esi+edx*4]
28929
                mov     [esp+18h], eax
28930
                xor     ebx, edx
28931
                xor     ebp, edx
28932
                mov     edx, ebx
28933
                and     ebx, 0FFh
28934
                ror     ebp, 10h
28935
                mov     ebx, [esi+ebx*4]
28936
                mov     eax, [esp+2Ch]
28937
                mov     [esp+1Ch], ebp
28938
                xor     edi, ebx
28939
                xor     ecx, ebx
28940
                mov     ebx, edi
28941
                and     edi, 0FFh
28942
                mov     ebp, [esp+30h]
28943
                ror     ecx, 10h
28944
                mov     edi, [esi+edi*4+400h]
28945
                mov     [esp+20h], ecx
28946
                xor     eax, edi
28947
                xor     edx, edi
28948
                mov     edi, eax
28949
                and     eax, 0FFh
28950
                ror     edx, 10h
28951
                mov     eax, [esi+eax*4+400h]
28952
                mov     ecx, [esp+34h]
28953
                mov     [esp+24h], edx
28954
                xor     ebp, eax
28955
                xor     ebx, eax
28956
                mov     eax, ebp
28957
                and     ebp, 0FFh
28958
                mov     edx, [esp+38h]
28959
                ror     ebx, 10h
28960
                mov     ebp, [esi+ebp*4]
28961
                mov     [esp+28h], ebx
28962
                xor     ecx, ebp
28963
                xor     edi, ebp
28964
                mov     ebp, ecx
28965
                and     ecx, 0FFh
28966
                ror     edi, 10h
28967
                mov     ecx, [esi+ecx*4]
28968
                mov     ebx, [esp+3Ch]
28969
                mov     [esp+2Ch], edi
28970
                xor     edx, ecx
28971
                xor     eax, ecx
28972
                mov     ecx, edx
28973
                and     edx, 0FFh
28974
                mov     edi, [esp]
28975
                ror     eax, 10h
28976
                mov     edx, [esi+edx*4+400h]
28977
                mov     [esp+30h], eax
28978
                xor     ebx, edx
28979
                xor     ebp, edx
28980
                mov     edx, ebx
28981
                and     ebx, 0FFh
28982
                ror     ebp, 10h
28983
                ror     edx, 10h
28984
                mov     ebx, [esi+ebx*4+400h]
28985
                mov     [esp+34h], ebp
28986
                xor     edi, ebx
28987
                xor     ecx, ebx
28988
                ror     edi, 10h
28989
                ror     ecx, 10h
28990
                mov     [esp], edi
28991
                mov     [esp+38h], ecx
28992
                mov     [esp+3Ch], edx
28993
                mov     ebx, [esp]
28994
                mov     ecx, [esp+4]
28995
                mov     edi, ebx
28996
                and     ebx, 0FFh
28997
                mov     eax, [esp+3Ch]
28998
                mov     ebx, [esi+ebx*4]
28999
                mov     edx, [esp+8]
29000
                xor     ecx, ebx
29001
                xor     eax, ebx
29002
                mov     ebp, ecx
29003
                and     ecx, 0FFh
29004
                mov     [esp+3Ch], eax
29005
                mov     ecx, [esi+ecx*4]
29006
                mov     ebx, [esp+0Ch]
29007
                xor     edx, ecx
29008
                xor     edi, ecx
29009
                mov     ecx, edx
29010
                and     edx, 0FFh
29011
                mov     [esp], edi
29012
                mov     edx, [esi+edx*4+400h]
29013
                mov     edi, [esp+10h]
29014
                xor     ebx, edx
29015
                xor     ebp, edx
29016
                mov     edx, ebx
29017
                and     ebx, 0FFh
29018
                ror     ebp, 8
29019
                mov     ebx, [esi+ebx*4+400h]
29020
                mov     eax, [esp+14h]
29021
                mov     [esp+4], ebp
29022
                xor     edi, ebx
29023
                xor     ecx, ebx
29024
                mov     ebx, edi
29025
                and     edi, 0FFh
29026
                mov     ebp, [esp+18h]
29027
                ror     ecx, 8
29028
                mov     edi, [esi+edi*4]
29029
                mov     [esp+8], ecx
29030
                xor     eax, edi
29031
                xor     edx, edi
29032
                mov     edi, eax
29033
                and     eax, 0FFh
29034
                ror     edx, 8
29035
                mov     eax, [esi+eax*4]
29036
                mov     ecx, [esp+1Ch]
29037
                mov     [esp+0Ch], edx
29038
                xor     ebp, eax
29039
                xor     ebx, eax
29040
                mov     eax, ebp
29041
                and     ebp, 0FFh
29042
                mov     edx, [esp+20h]
29043
                ror     ebx, 8
29044
                mov     ebp, [esi+ebp*4+400h]
29045
                mov     [esp+10h], ebx
29046
                xor     ecx, ebp
29047
                xor     edi, ebp
29048
                mov     ebp, ecx
29049
                and     ecx, 0FFh
29050
                ror     edi, 8
29051
                mov     ecx, [esi+ecx*4+400h]
29052
                mov     ebx, [esp+24h]
29053
                mov     [esp+14h], edi
29054
                xor     edx, ecx
29055
                xor     eax, ecx
29056
                mov     ecx, edx
29057
                and     edx, 0FFh
29058
                mov     edi, [esp+28h]
29059
                ror     eax, 8
29060
                mov     edx, [esi+edx*4]
29061
                mov     [esp+18h], eax
29062
                xor     ebx, edx
29063
                xor     ebp, edx
29064
                mov     edx, ebx
29065
                and     ebx, 0FFh
29066
                ror     ebp, 8
29067
                mov     ebx, [esi+ebx*4]
29068
                mov     eax, [esp+2Ch]
29069
                mov     [esp+1Ch], ebp
29070
                xor     edi, ebx
29071
                xor     ecx, ebx
29072
                mov     ebx, edi
29073
                and     edi, 0FFh
29074
                mov     ebp, [esp+30h]
29075
                ror     ecx, 8
29076
                mov     edi, [esi+edi*4+400h]
29077
                mov     [esp+20h], ecx
29078
                xor     eax, edi
29079
                xor     edx, edi
29080
                mov     edi, eax
29081
                and     eax, 0FFh
29082
                ror     edx, 8
29083
                mov     eax, [esi+eax*4+400h]
29084
                mov     ecx, [esp+34h]
29085
                mov     [esp+24h], edx
29086
                xor     ebp, eax
29087
                xor     ebx, eax
29088
                mov     eax, ebp
29089
                and     ebp, 0FFh
29090
                mov     edx, [esp+38h]
29091
                ror     ebx, 8
29092
                mov     ebp, [esi+ebp*4]
29093
                mov     [esp+28h], ebx
29094
                xor     ecx, ebp
29095
                xor     edi, ebp
29096
                mov     ebp, ecx
29097
                and     ecx, 0FFh
29098
                ror     edi, 8
29099
                mov     ecx, [esi+ecx*4]
29100
                mov     ebx, [esp+3Ch]
29101
                mov     [esp+2Ch], edi
29102
                xor     edx, ecx
29103
                xor     eax, ecx
29104
                mov     ecx, edx
29105
                and     edx, 0FFh
29106
                mov     edi, [esp]
29107
                ror     eax, 8
29108
                mov     edx, [esi+edx*4+400h]
29109
                mov     [esp+30h], eax
29110
                xor     ebx, edx
29111
                xor     ebp, edx
29112
                mov     edx, ebx
29113
                and     ebx, 0FFh
29114
                ror     ebp, 8
29115
                ror     edx, 8
29116
                mov     ebx, [esi+ebx*4+400h]
29117
                mov     [esp+34h], ebp
29118
                xor     edi, ebx
29119
                xor     ecx, ebx
29120
                ror     edi, 8
29121
                ror     ecx, 8
29122
                mov     [esp], edi
29123
                mov     [esp+38h], ecx
29124
                mov     [esp+3Ch], edx
29125
                mov     ebx, [esp]
29126
                mov     ecx, [esp+4]
29127
                mov     edi, ebx
29128
                and     ebx, 0FFh
29129
                mov     eax, [esp+3Ch]
29130
                mov     ebx, [esi+ebx*4]
29131
                mov     edx, [esp+8]
29132
                xor     ecx, ebx
29133
                xor     eax, ebx
29134
                mov     ebp, ecx
29135
                and     ecx, 0FFh
29136
                mov     [esp+3Ch], eax
29137
                mov     ecx, [esi+ecx*4]
29138
                mov     ebx, [esp+0Ch]
29139
                xor     edx, ecx
29140
                xor     edi, ecx
29141
                mov     ecx, edx
29142
                and     edx, 0FFh
29143
                mov     [esp], edi
29144
                mov     edx, [esi+edx*4+400h]
29145
                mov     edi, [esp+10h]
29146
                xor     ebx, edx
29147
                xor     ebp, edx
29148
                mov     edx, ebx
29149
                and     ebx, 0FFh
29150
                ror     ebp, 10h
29151
                mov     ebx, [esi+ebx*4+400h]
29152
                mov     eax, [esp+14h]
29153
                mov     [esp+4], ebp
29154
                xor     edi, ebx
29155
                xor     ecx, ebx
29156
                mov     ebx, edi
29157
                and     edi, 0FFh
29158
                mov     ebp, [esp+18h]
29159
                ror     ecx, 10h
29160
                mov     edi, [esi+edi*4]
29161
                mov     [esp+8], ecx
29162
                xor     eax, edi
29163
                xor     edx, edi
29164
                mov     edi, eax
29165
                and     eax, 0FFh
29166
                ror     edx, 10h
29167
                mov     eax, [esi+eax*4]
29168
                mov     ecx, [esp+1Ch]
29169
                mov     [esp+0Ch], edx
29170
                xor     ebp, eax
29171
                xor     ebx, eax
29172
                mov     eax, ebp
29173
                and     ebp, 0FFh
29174
                mov     edx, [esp+20h]
29175
                ror     ebx, 10h
29176
                mov     ebp, [esi+ebp*4+400h]
29177
                mov     [esp+10h], ebx
29178
                xor     ecx, ebp
29179
                xor     edi, ebp
29180
                mov     ebp, ecx
29181
                and     ecx, 0FFh
29182
                ror     edi, 10h
29183
                mov     ecx, [esi+ecx*4+400h]
29184
                mov     ebx, [esp+24h]
29185
                mov     [esp+14h], edi
29186
                xor     edx, ecx
29187
                xor     eax, ecx
29188
                mov     ecx, edx
29189
                and     edx, 0FFh
29190
                mov     edi, [esp+28h]
29191
                ror     eax, 10h
29192
                mov     edx, [esi+edx*4]
29193
                mov     [esp+18h], eax
29194
                xor     ebx, edx
29195
                xor     ebp, edx
29196
                mov     edx, ebx
29197
                and     ebx, 0FFh
29198
                ror     ebp, 10h
29199
                mov     ebx, [esi+ebx*4]
29200
                mov     eax, [esp+2Ch]
29201
                mov     [esp+1Ch], ebp
29202
                xor     edi, ebx
29203
                xor     ecx, ebx
29204
                mov     ebx, edi
29205
                and     edi, 0FFh
29206
                mov     ebp, [esp+30h]
29207
                ror     ecx, 10h
29208
                mov     edi, [esi+edi*4+400h]
29209
                mov     [esp+20h], ecx
29210
                xor     eax, edi
29211
                xor     edx, edi
29212
                mov     edi, eax
29213
                and     eax, 0FFh
29214
                ror     edx, 10h
29215
                mov     eax, [esi+eax*4+400h]
29216
                mov     ecx, [esp+34h]
29217
                mov     [esp+24h], edx
29218
                xor     ebp, eax
29219
                xor     ebx, eax
29220
                mov     eax, ebp
29221
                and     ebp, 0FFh
29222
                mov     edx, [esp+38h]
29223
                ror     ebx, 10h
29224
                mov     ebp, [esi+ebp*4]
29225
                mov     [esp+28h], ebx
29226
                xor     ecx, ebp
29227
                xor     edi, ebp
29228
                mov     ebp, ecx
29229
                and     ecx, 0FFh
29230
                ror     edi, 10h
29231
                mov     ecx, [esi+ecx*4]
29232
                mov     ebx, [esp+3Ch]
29233
                mov     [esp+2Ch], edi
29234
                xor     edx, ecx
29235
                xor     eax, ecx
29236
                mov     ecx, edx
29237
                and     edx, 0FFh
29238
                mov     edi, [esp]
29239
                ror     eax, 10h
29240
                mov     edx, [esi+edx*4+400h]
29241
                mov     [esp+30h], eax
29242
                xor     ebx, edx
29243
                xor     ebp, edx
29244
                mov     edx, ebx
29245
                and     ebx, 0FFh
29246
                ror     ebp, 10h
29247
                ror     edx, 10h
29248
                mov     ebx, [esi+ebx*4+400h]
29249
                mov     [esp+34h], ebp
29250
                xor     edi, ebx
29251
                xor     ecx, ebx
29252
                ror     edi, 10h
29253
                ror     ecx, 10h
29254
                mov     [esp], edi
29255
                mov     [esp+38h], ecx
29256
                mov     [esp+3Ch], edx
29257
                mov     ebx, [esp]
29258
                mov     ecx, [esp+4]
29259
                mov     edi, ebx
29260
                and     ebx, 0FFh
29261
                mov     eax, [esp+3Ch]
29262
                mov     ebx, [esi+ebx*4]
29263
                mov     edx, [esp+8]
29264
                xor     ecx, ebx
29265
                xor     eax, ebx
29266
                mov     ebp, ecx
29267
                and     ecx, 0FFh
29268
                mov     [esp+3Ch], eax
29269
                mov     ecx, [esi+ecx*4]
29270
                mov     ebx, [esp+0Ch]
29271
                xor     edx, ecx
29272
                xor     edi, ecx
29273
                mov     ecx, edx
29274
                and     edx, 0FFh
29275
                mov     [esp], edi
29276
                mov     edx, [esi+edx*4+400h]
29277
                mov     edi, [esp+10h]
29278
                xor     ebx, edx
29279
                xor     ebp, edx
29280
                mov     edx, ebx
29281
                and     ebx, 0FFh
29282
                rol     ebp, 8
29283
                mov     ebx, [esi+ebx*4+400h]
29284
                mov     eax, [esp+14h]
29285
                mov     [esp+4], ebp
29286
                xor     edi, ebx
29287
                xor     ecx, ebx
29288
                mov     ebx, edi
29289
                and     edi, 0FFh
29290
                mov     ebp, [esp+18h]
29291
                rol     ecx, 8
29292
                mov     edi, [esi+edi*4]
29293
                mov     [esp+8], ecx
29294
                xor     eax, edi
29295
                xor     edx, edi
29296
                mov     edi, eax
29297
                and     eax, 0FFh
29298
                rol     edx, 8
29299
                mov     eax, [esi+eax*4]
29300
                mov     ecx, [esp+1Ch]
29301
                mov     [esp+0Ch], edx
29302
                xor     ebp, eax
29303
                xor     ebx, eax
29304
                mov     eax, ebp
29305
                and     ebp, 0FFh
29306
                mov     edx, [esp+20h]
29307
                rol     ebx, 8
29308
                mov     ebp, [esi+ebp*4+400h]
29309
                mov     [esp+10h], ebx
29310
                xor     ecx, ebp
29311
                xor     edi, ebp
29312
                mov     ebp, ecx
29313
                and     ecx, 0FFh
29314
                rol     edi, 8
29315
                mov     ecx, [esi+ecx*4+400h]
29316
                mov     ebx, [esp+24h]
29317
                mov     [esp+14h], edi
29318
                xor     edx, ecx
29319
                xor     eax, ecx
29320
                mov     ecx, edx
29321
                and     edx, 0FFh
29322
                mov     edi, [esp+28h]
29323
                rol     eax, 8
29324
                mov     edx, [esi+edx*4]
29325
                mov     [esp+18h], eax
29326
                xor     ebx, edx
29327
                xor     ebp, edx
29328
                mov     edx, ebx
29329
                and     ebx, 0FFh
29330
                rol     ebp, 8
29331
                mov     ebx, [esi+ebx*4]
29332
                mov     eax, [esp+2Ch]
29333
                mov     [esp+1Ch], ebp
29334
                xor     edi, ebx
29335
                xor     ecx, ebx
29336
                mov     ebx, edi
29337
                and     edi, 0FFh
29338
                mov     ebp, [esp+30h]
29339
                rol     ecx, 8
29340
                mov     edi, [esi+edi*4+400h]
29341
                mov     [esp+20h], ecx
29342
                xor     eax, edi
29343
                xor     edx, edi
29344
                mov     edi, eax
29345
                and     eax, 0FFh
29346
                rol     edx, 8
29347
                mov     eax, [esi+eax*4+400h]
29348
                mov     ecx, [esp+34h]
29349
                mov     [esp+24h], edx
29350
                xor     ebp, eax
29351
                xor     ebx, eax
29352
                mov     eax, ebp
29353
                and     ebp, 0FFh
29354
                mov     edx, [esp+38h]
29355
                rol     ebx, 8
29356
                mov     ebp, [esi+ebp*4]
29357
                mov     [esp+28h], ebx
29358
                xor     ecx, ebp
29359
                xor     edi, ebp
29360
                mov     ebp, ecx
29361
                and     ecx, 0FFh
29362
                rol     edi, 8
29363
                mov     ecx, [esi+ecx*4]
29364
                mov     ebx, [esp+3Ch]
29365
                mov     [esp+2Ch], edi
29366
                xor     edx, ecx
29367
                xor     eax, ecx
29368
                mov     ecx, edx
29369
                and     edx, 0FFh
29370
                mov     edi, [esp]
29371
                rol     eax, 8
29372
                mov     edx, [esi+edx*4+400h]
29373
                mov     [esp+30h], eax
29374
                xor     ebx, edx
29375
                xor     ebp, edx
29376
                mov     edx, ebx
29377
                and     ebx, 0FFh
29378
                rol     ebp, 8
29379
                rol     edx, 8
29380
                mov     ebx, [esi+ebx*4+400h]
29381
                mov     [esp+34h], ebp
29382
                xor     edi, ebx
29383
                xor     ecx, ebx
29384
                rol     edi, 8
29385
                rol     ecx, 8
29386
                mov     [esp], edi
29387
                mov     [esp+38h], ecx
29388
                mov     [esp+3Ch], edx
29389
                mov     ecx, [esp+64h]
29390
                add     esi, 800h
29391
                dec     ecx
29392
                jnz     @@_level_loop
29393
                mov     edi, [esp+60h]
29394
                mov     eax, [esp+40h]
29395
                mov     ebx, [esp+44h]
29396
                mov     ecx, [esp+3Ch]
29397
                mov     edx, [esp+38h]
29398
                xor     eax, ecx
29399
                xor     ebx, edx
29400
                mov     [edi], eax
29401
                mov     [edi+4], ebx
29402
                mov     eax, [esp+48h]
29403
                mov     ebx, [esp+4Ch]
29404
                mov     ecx, [esp+34h]
29405
                mov     edx, [esp+30h]
29406
                xor     eax, ecx
29407
                xor     ebx, edx
29408
                mov     [edi+8], eax
29409
                mov     [edi+0Ch], ebx
29410
                mov     eax, [esp+50h]
29411
                mov     ebx, [esp+54h]
29412
                mov     ecx, [esp+2Ch]
29413
                mov     edx, [esp+28h]
29414
                xor     eax, ecx
29415
                xor     ebx, edx
29416
                mov     [edi+10h], eax
29417
                mov     [edi+14h], ebx
29418
                mov     eax, [esp+58h]
29419
                mov     ebx, [esp+5Ch]
29420
                mov     ecx, [esp+24h]
29421
                mov     edx, [esp+20h]
29422
                xor     eax, ecx
29423
                xor     ebx, edx
29424
                mov     [edi+18h], eax
29425
                mov     [edi+1Ch], ebx
29426
                mov     ebp, [esp+68h]
29427
                mov     esp, ebp
29428
                pop  ebp
29429
                pop  edi
29430
                pop  esi
29431
                pop  ebx
29432
  end;
29433
end;
29434
{$ENDIF}
29435
29436
{$IFDEF THash_Sapphire_asm}
29437
procedure THash_Sapphire.Calc(const Data; DataSize: Integer);
29438
asm
29439
                test    ecx,ecx
29440
                jle     @Exit
29441
29442
                push    ebx
29443
                push    esi
29444
                push    edi              // let edi points to Sapphire partial context (w/o cards array)
29445
                lea     esi,[eax].THash_Sapphire.FCards
29446
                lea     edi,[eax].THash_Sapphire.FRotor // let esi points to Sapphire cards array
29447
                push    ebp              // edx points to data, ecx contains DataSize
29448
29449
                mov     ebp, esp
29450
                sub     esp, 18h
29451
                and     esp, 0FFFFFFE0h
29452
                mov     eax, [edi]
29453
                mov     ebx, [edi+4]
29454
                mov     [esp+14h], ebp
29455
                mov     ebp, [edi+8]
29456
                mov     [esp], ebx
29457
                mov     [esp+4], ebp
29458
                mov     ebp, eax
29459
                mov     eax, [edi+0Ch]
29460
                mov     ebx, [edi+10h]
29461
                mov     [esp+8], edx
29462
                mov     [esp+10h], edi
29463
29464
            @@data_loop:
29465
                mov     [esp+0Ch], ecx
29466
                mov     ecx, [esi+ebp*4]
29467
                mov     edi, [esp]
29468
                inc     ebp
29469
                add     edi, ecx
29470
                mov     ecx, [esi+ebx*4]
29471
                and     edi, 0FFh
29472
                and     ebp, 0FFh
29473
                mov     edx, [esi+edi*4]
29474
                mov     [esp], edi
29475
                mov     [esi+ebx*4], edx
29476
                mov     edx, [esi+eax*4]
29477
                mov     [esi+edi*4], edx
29478
                mov     edx, [esi+ebp*4]
29479
                mov     [esi+eax*4], edx
29480
                mov     [esi+ebp*4], ecx
29481
                mov     ecx, [esi+ecx*4]
29482
                mov     edx, [esi+eax*4]
29483
                mov     eax, [esp+4]
29484
                mov     edi, [esi+edi*4]
29485
                add     ecx, eax
29486
                mov     eax, [esi+ebp*4]
29487
                and     ecx, 0FFh
29488
                add     edi, eax
29489
                mov     [esp+4], ecx
29490
                and     edi, 0FFh
29491
                mov     eax, [esi+ecx*4]
29492
                mov     ecx, [esp+8]
29493
                add     edx, eax
29494
                mov     eax, [esi+ebx*4]
29495
                add     edx, eax
29496
                movzx   eax, byte ptr [ecx]
29497
                and     edx, 0FFh
29498
                mov     edi, [esi+edi*4]
29499
                inc     ecx
29500
                mov     ebx, eax
29501
                mov     edx, [esi+edx*4]
29502
                mov     [esp+8], ecx
29503
                xor     ebx, edi
29504
                mov     edx, [esi+edx*4]
29505
                mov     ecx, [esp+0Ch]
29506
                xor     ebx, edx
29507
                dec     ecx
29508
                jnz     @@data_loop
29509
                mov     edi, [esp+10h]
29510
                mov     ecx, [esp]
29511
                mov     esi, [esp+4]
29512
                mov     edx, [esp+14h]
29513
                mov     [edi], ebp
29514
                mov     [edi+4], ecx
29515
                mov     esp, edx
29516
                mov     [edi+8], esi
29517
                mov     [edi+0Ch], eax
29518
                mov     [edi+10h], ebx
29519
                pop     ebp
29520
                pop     edi
29521
                pop     esi
29522
                pop     ebx
29523
29524
            @Exit:
29525
end;
29526
{$ENDIF}
29527
29528
{$ENDIF INCLUDED}
29529
+ + diff --git a/Unit Tests/CodeCoverage/DECHash(DECHash.pas).html b/Unit Tests/CodeCoverage/U/DECHash(DECHash.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECHash(DECHash.pas).html rename to Unit Tests/CodeCoverage/U/DECHash(DECHash.pas).html index ee9bc335..f03b0baa 100644 --- a/Unit Tests/CodeCoverage/DECHash(DECHash.pas).html +++ b/Unit Tests/CodeCoverage/U/DECHash(DECHash.pas).html @@ -1,4867 +1,4867 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.pas

-
Number of lines covered750
Number of lines with code gen768
Line coverage97%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Hash functions. Be aware that the x86 ASM implementations, if activated
20
///   by the define, are provided by DECHash.asm86.inc!
21
/// </summary>
22
unit DECHash;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECBaseClass, DECFormatBase, DECUtil, DECHashBase, DECHashAuthentication,
35
  DECHashBitBase, DECHashInterface, DECTypes;
36
37
type
38
  // Hash Classes
39
  THash_MD2         = class;
40
  THash_MD4         = class;
41
  THash_MD5         = class;
42
  THash_RipeMD128   = class;
43
  THash_RipeMD160   = class;
44
  THash_RipeMD256   = class;
45
  THash_RipeMD320   = class;
46
  THash_SHA0        = class;  // SHA-0
47
  THash_SHA1        = class;  // SHA-1
48
  THash_SHA224      = class;  // SHA-2, SHA-224
49
  THash_SHA256      = class;  // SHA-2, SHA-256
50
  THash_SHA384      = class;  // SHA-2, SHA-384
51
  THash_SHA512      = class;  // SHA-2, SHA-512
52
  THash_SHA3_224    = class;
53
  THash_SHA3_256    = class;
54
  THash_SHA3_384    = class;
55
  THash_SHA3_512    = class;
56
  THash_Shake128    = class;
57
  THash_Shake256    = class;
58
  THash_Haval128    = class;
59
  THash_Haval160    = class;  // Haval 160, 3 Rounds
60
  THash_Haval192    = class;  // Haval 192, 4 Rounds
61
  THash_Haval224    = class;  // Haval 224, 4 Rounds
62
  THash_Haval256    = class;  // Haval 256, 5 Rounds
63
  THash_Tiger       = class;
64
  THash_Panama      = class;
65
  {$IFDEF OLD_WHIRLPOOL_NAMES}
66
  THash_Whirlpool   = class;
67
  THash_Whirlpool1New = class;
68
  {$ENDIF}
69
70
  THash_Whirlpool0  = class;
71
  THash_Whirlpool1  = class; // differs, depending on OLD_WHIRLPOOL_NAMES define
72
  THash_WhirlpoolT  = class;
73
74
  THash_Square      = class;
75
  THash_Snefru128   = class;  // derived from the Xerox Secure Hash Function
76
  THash_Snefru256   = class;  // " - "
77
  THash_Sapphire    = class;
78
79
  /// <summary>
80
  ///   Implementation of the MD2 hash algorithm. Considered to be broken,
81
  ///   at least on paper.
82
  /// </summary>
83
  THash_MD2 = class(TDECHashAuthentication)
84
  private
85
    FDigest: array[0..63] of Byte;
86
  protected
87
    procedure DoInit; override;
88
    procedure DoTransform(Buffer: PUInt32Array); override;
89
    procedure DoDone; override;
90
  public
91
    function Digest: PByteArray; override;
92
    class function DigestSize: UInt32; override;
93
    class function BlockSize: UInt32; override;
94
  end;
95
96
  /// <summary>
97
  ///   Base class for the MD4 hash alrogithm and for other hash-algorithms which
98
  ///   are close relatives to the MD4 algorithm like the RipeMD ones.
99
  /// </summary>
100
  THashBaseMD4 = class(TDECHashAuthentication)
101
  private
102
    FDigest: array[0..9] of UInt32;
103
  protected
104
    procedure DoInit; override;
105
    procedure DoDone; override;
106
  public
107
    function Digest: PByteArray; override;
108
    class function DigestSize: UInt32; override;
109
    class function BlockSize: UInt32; override;
110
  end;
111
112
  /// <summary>
113
  ///   The MD4 algorithm is considered to be broken, at least on paper.
114
  /// </summary>
115
  THash_MD4 = class(THashBaseMD4)
116
  protected
117
    procedure DoTransform(Buffer: PUInt32Array); override;
118
  end;
119
120
  /// <summary>
121
  ///   The MD5 algorithm is considered to be broken. Using it in HMAC algorithms
122
  ///   is still ok.
123
  /// </summary>
124
  THash_MD5 = class(THashBaseMD4)
125
  protected
126
    procedure DoTransform(Buffer: PUInt32Array); override;
127
  end;
128
129
  /// <summary>
130
  ///   Do not confuse with the original RipeMD algorithm which ís being
131
  ///   considered to be unsafe anyway. Considered to be broken due to the only
132
  ///   128 Bit long message digest result.
133
  /// </summary>
134
  THash_RipeMD128 = class(THashBaseMD4)
135
  protected
136
    procedure DoTransform(Buffer: PUInt32Array); override;
137
  end;
138
139
  THash_RipeMD160 = class(THashBaseMD4)
140
  protected
141
    procedure DoTransform(Buffer: PUInt32Array); override;
142
  public
143
    class function DigestSize: UInt32; override;
144
  end;
145
146
  THash_RipeMD256 = class(THashBaseMD4)
147
  protected
148
    procedure DoInit; override;
149
    procedure DoTransform(Buffer: PUInt32Array); override;
150
  public
151
    class function DigestSize: UInt32; override;
152
  end;
153
154
  THash_RipeMD320 = class(THashBaseMD4)
155
  protected
156
    procedure DoTransform(Buffer: PUInt32Array); override;
157
  public
158
    class function DigestSize: UInt32; override;
159
  end;
160
161
  /// <summary>
162
  ///   Implementation of the SHA0 hash algorithm. This is the original version
163
  ///   of the SHA algorithm released in 1993. In 1995 some security issues have
164
  ///   been identified in this algorithm so he got replaced by the slightly
165
  ///   modified SHA1 algorithm. The recommendation is to not use this SHA0
166
  ///   algorithm at all. It is only being provided for scenarios where
167
  ///   compatibility with this algorithm is required.
168
  /// </summary>
169
  THash_SHA0 = class(THashBaseMD4)
170
  protected
171
    procedure DoTransform(Buffer: PUInt32Array); override;
172
    procedure DoDone; override;
173
  public
174
    class function DigestSize: UInt32; override;
175
  end;
176
177
  {$IFDEF OLD_SHA_NAME}
178
  /// <summary>
179
  ///   Implementation of the SHA0 hash algorithm. This is the original version
180
  ///   of the SHA algorithm released in 1993. In 1995 some security issues have
181
  ///   been identified in this algorithm so he got replaced by the slightly
182
  ///   modified SHA1 algorithm. The recommendation is to not use this SHA0
183
  ///   algorithm at all. It is only being provided for scenarios where
184
  ///   compatibility with this algorithm is required.
185
  /// </summary>
186
  THash_SHA = class(THash_SHA0)
187
  {$IFDEF X86ASM}
188
  protected
189
    procedure DoTransform(Buffer: PUInt32Array); override;
190
  end
191
  {$ENDIF};
192
193
  {$ENDIF}
194
195
  /// <summary>
196
  ///   Implementation of the SHA1 hash algorithm. At least since February 2017
197
  ///   collisions have been found for this algorithm so it's now completely
198
  ///   clear that it should not be used if possible! Use SHA256 or SHA512
199
  ///   instead!
200
  /// </summary>
201
  THash_SHA1 = class(THash_SHA0);
202
203
  /// <summary>
204
  ///   This algorithm is part of the SHA2 series of hash algorithms.
205
  /// </summary>
206
  THash_SHA256 = class(THash_SHA0)
207
  protected
208
    procedure DoInit; override;
209
    procedure DoTransform(Buffer: PUInt32Array); override;
210
  public
211
    class function DigestSize: UInt32; override;
212
  end;
213
214
  /// <summary>
215
  ///   This algorithm is part of the SHA2 series of hash algorithms.
216
  ///   German BSI recommends not to use this algorithm, they recommend SHA256
217
  ///   or higher instead.
218
  /// </summary>
219
  THash_SHA224 = class(THash_SHA256)
220
  protected
221
    procedure DoInit; override;
222
  public
223
    class function DigestSize: UInt32; override;
224
    class function BlockSize: UInt32; override;
225
  end;
226
227
  /// <summary>
228
  ///   This algorithm is part of the SHA2 series of hash algorithms.
229
  /// </summary>
230
  THash_SHA384 = class(TDECHashAuthentication)
231
  private
232
    FDigest: array[0..7] of Int64;
233
  protected
234
    procedure DoInit; override;
235
    procedure DoTransform(Buffer: PUInt32Array); override;
236
    procedure DoDone; override;
237
  public
238
    function Digest: PByteArray; override;
239
    class function DigestSize: UInt32; override;
240
    class function BlockSize: UInt32; override;
241
  end;
242
243
  /// <summary>
244
  ///   This algorithm is part of the SHA2 series of hash algorithms.
245
  /// </summary>
246
  THash_SHA512 = class(THash_SHA384)
247
  protected
248
    procedure DoInit; override;
249
  public
250
    class function DigestSize: UInt32; override;
251
  end;
252
253
  /// <summary>
254
  ///   Base class for tall SHA3 implementations
255
  /// </summary>
256
  THash_SHA3Base = class(TDECHashBit)
257
  strict private
258
    // Declarations for SHA3. Must be declared here to allow private methods
259
    // to use these types as well.
260
    const
261
      KeccakPermutationSize        = 1600;
262
      /// <summary>
263
      ///   Maximum bitrate? If yes this would be higher than any value listed here:
264
      ///   https://keccak.team/keccak.html
265
      /// </summary>
266
      KeccakMaximumRate            = 1536;
267
      /// <summary>
268
      ///   KeccakPermutationSize converted into bytes instead of bits
269
      /// </summary>
270
      KeccakPermutationSizeInBytes = KeccakPermutationSize div 8;
271
      /// <summary>
272
      ///   KeccakMaximumRate converted into bytes instead of bits
273
      /// </summary>
274
      KeccakMaximumRateInBytes     = KeccakMaximumRate div 8;
275
276
      /// <summary>
277
      ///   Number of times to run the algorithm on the data
278
      /// </summary>
279
      cKeccakNumberOfRounds        = 24;
280
281
      /// <summary>
282
      ///   Precalculated values for the 24 rounds of the algorithm
283
      /// </summary>
284
      cRoundConstants : array[0..23] of UInt64 = (
285
        UInt64($0000000000000001), UInt64($0000000000008082),
286
        UInt64($800000000000808A), UInt64($8000000080008000),
287
        UInt64($000000000000808B), UInt64($0000000080000001),
288
        UInt64($8000000080008081), UInt64($8000000000008009),
289
        UInt64($000000000000008A), UInt64($0000000000000088),
290
        UInt64($0000000080008009), UInt64($000000008000000A),
291
        UInt64($000000008000808B), UInt64($800000000000008B),
292
        UInt64($8000000000008089), UInt64($8000000000008003),
293
        UInt64($8000000000008002), UInt64($8000000000000080),
294
        UInt64($000000000000800A), UInt64($800000008000000A),
295
        UInt64($8000000080008081), UInt64($8000000000008080),
296
        UInt64($0000000080000001), UInt64($8000000080008008)
297
      );
298
    type
299
      TState_B = packed array[0..KeccakPermutationSizeInBytes-1] of UInt8;
300
      TState_L = packed array[0..(KeccakPermutationSizeInBytes) div 4 - 1] of Int32;
301
      TKDQueue = packed array[0..KeccakMaximumRateInBytes-1] of UInt8;
302
303
      /// <summary>
304
      ///   Calculation status of the algorithm
305
      /// </summary>
306
      TSpongeState = packed record
307
                       State                     : TState_B;
308
                       /// <summary>
309
                       ///   Data of the queue to be processed
310
                       /// </summary>
311
                       DataQueue                 : TKDQueue;
312
                       /// <summary>
313
                       ///   Bitrate r of Keccak
314
                       /// </summary>
315
                       Rate                      : UInt16;
316
                       /// <summary>
317
                       ///   Capacity c of Keccak
318
                       /// </summary>
319
                       Capacity                  : UInt16;
320
                       /// <summary>
321
                       ///   How many bits are in the queue
322
                       /// </summary>
323
                       BitsInQueue               : UInt16;
324
                       /// <summary>
325
                       ///   Length of the hash value to generate in bit
326
                       /// </summary>
327
                       FixedOutputLength         : UInt16;
328
                       /// <summary>
329
                       ///   Number of bits which can be squeezed
330
                       /// </summary>
331
                       bitsAvailableForSqueezing : UInt16;
332
                       /// <summary>
333
                       ///   Flag which is set to true when entering the
334
                       ///   squeezing state. Suppresses further absorb calls.
335
                       /// </summary>
336
                       SqueezeActive             : Boolean;
337
                       /// <summary>
338
                       ///   If an operation fails it sets this error code
339
                       /// </summary>
340
    //                   Fill3: packed array[405..HASHCTXSIZE] of byte;
341
                     end;
342
343
      /// <summary>
344
      ///   Buffer type
345
      /// </summary>
346
      TBABytes = array[0..65535] of UInt8;
347
      /// <summary>
348
      ///   Pointer to a buffer
349
      /// </summary>
350
      PBABytes = ^TBABytes;
351
352
      /// <summary>
353
      ///   Type for the generated hash value
354
      /// </summary>
355
      TSHA3Digest = array of UInt8;
356
357
    /// <summary>
358
    ///   Function to give input data for the sponge function to absorb
359
    /// </summary>
360
    /// <param name="Data">
361
    ///   Pointer to the data to work on
362
    /// </param>
363
    /// <param name="DatabitLen">
364
    ///   Length of the data passed via the pointer in bit
365
    /// </param>
366
    /// <remarks>
367
    ///   Raises an EDECHashEception when DataBit len not divideable by 8 without
368
    ///   reminder or when already in squeezin state.
369
    /// </remarks>
370
    procedure Absorb(Data: PBABytes; DatabitLen: Int32);
371
372
    /// <summary>
373
    ///   Absorb remaining bits from queue
374
    /// </summary>
375
    procedure AbsorbQueue;
376
377
    {$IFDEF PUREPASCAL}
378
    /// <summary>
379
    ///   Circular left shift
380
    /// </summary>
381
    /// <param name="x">
382
    ///   Value to be shifted
383
    /// </param>
384
    /// <param name="c">
385
    ///   Number of bits the value will be shifted
386
    /// </param>
387
    /// <returns>
388
    ///   Shifted value
389
    /// </returns>
390
    function RotL(const x: UInt64; c: Integer): UInt64; inline;
391
392
    /// <summary>
393
    ///   Circular left shift by 1
394
    /// </summary>
395
    /// <param name="x">
396
    ///   Value to be shifted
397
    /// </param>
398
    /// <returns>
399
    ///   Shifted value
400
    /// </returns>
401
    function RotL1(var x: UInt64): UInt64; inline;
402
    {$ENDIF}
403
    /// <summary>
404
    ///   Permutates the values in the passed state
405
    /// </summary>
406
    /// <param name="State">
407
    ///   State to permutate
408
    /// </param>
409
    procedure KeccakPermutation(var State: TState_L);
410
411
    /// <summary>
412
    ///   Carries out the XorIntoState and the permutation
413
    /// </summary>
414
    /// <param name="State">
415
    ///   State of the algorithm which gets modified by the permutation in this method
416
    /// </param>
417
    /// <param name="Data">
418
    ///   Pointer to the data to operate on
419
    /// </param>
420
    /// <param name="LaneCount">
421
    ///   Number of times the loop in this algorithm has tpo be carried out
422
    /// </param>
423
    procedure KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer);
424
425
    /// <summary>
426
    ///   Include input message data bits into the sponge state
427
    /// </summary>
428
    procedure XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer);
429
430
    /// <summary>
431
    ///   Update state with DataBitLen bits from data. May be called multiple
432
    ///   times, only the last DataBitLen may be a non-multiple of 8
433
    ///   (the corresponding byte) must be MSB aligned, i.e. in the
434
    ///   (databitlen and 7) most significant bits.
435
    /// </summary>
436
    /// <param name="data">
437
    ///   Data to work on
438
    /// </param>
439
    /// <param name="DataBitLen">
440
    ///   Length of the data in bits
441
    /// </param>
442
    procedure DoUpdate(Data: Pointer; DataBitLen: Int32);
443
444
    /// <summary>
445
    ///   Squeeze output data from the sponge function. If the sponge function
446
    ///   was in the absorbing phase, this function switches it to the squeezing
447
    ///   phase.
448
    /// </summary>
449
    /// <param name="Output">
450
    ///   pointer to the buffer where to store the output data
451
    /// </param>
452
    /// <param name="OutputLength">
453
    ///   number of output bits desired, must be a multiple of 8.
454
    /// </param>
455
    /// <returns>
456
    ///   0 if successful, 1 otherwise.
457
    /// </returns>
458
    procedure Squeeze(var Output: TSHA3Digest; OutputLength: Int32);
459
    /// <summary>
460
    ///   The algorithm starts in the absorb phase (one puts data into the sponge)
461
    ///   and ends with the squeze phase (one squeezes the sponge) and this method
462
    ///   does everything needed at the transition point between these two phases
463
    /// </summary>
464
    procedure PadAndSwitchToSqueezingPhase;
465
466
    /// <summary>
467
    ///   ???
468
    /// </summary>
469
    /// <param name="Outp">
470
    ///   Pointer where the output will be stored in
471
    /// </param>
472
    /// <param name="State">
473
    ///   State to work on
474
    /// </param>
475
    /// <param name="LaneCount">
476
    ///   Number of iterations
477
    /// </param>
478
    procedure ExtractFromState(Outp: Pointer; const State: TState_L; LaneCount: Integer);
479
480
    /// <summary>
481
    ///   Update final bits in LSB format, pad them, and compute the hash value
482
    /// </summary>
483
    /// <param name="Bits">
484
    ///   Value used for padding if the length of the message to be hashed
485
    ///   is not a multiple of 8 bit bytes.
486
    /// </param>
487
    /// <param name="BitLen">
488
    ///   Number of needed padding bits?
489
    /// </param>
490
    /// <param name="HashValue">
491
    ///   The hash value which shall be updated by this method
492
    /// </param>
493
    procedure FinalBit_LSB(Bits: Byte; Bitlen: UInt16;
494
                            var HashValue: TSHA3Digest);
495
  strict protected
496
    /// <summary>
497
    ///   Contains the current state of the algorithms sponge part
498
    /// </summary>
499
    FSpongeState : TSpongeState;
500
501
    /// <summary>
502
    ///   The generated hash value is stored here
503
    /// </summary>
504
    FDigest      : TSHA3Digest;
505
506
    /// <summary>
507
    ///   When true, the output length has been set (applicable for the expandable
508
    ///   output length algorithm variants named Shake) and needs to be preserved
509
    ///   in InitSponge
510
    /// </summary>
511
    FOutpLengSet : Boolean;
512
513
    /// <summary>
514
    ///   Initializes the state of the Keccak/SHA3 sponge function. It is set to
515
    ///   the absorbing phase by this. If invalid parameter values are specified
516
    ///   a EDECHashException will be raised
517
    /// </summary>
518
    /// <param name="rate">
519
    ///   Block length of the message to be processed, depends directly on the
520
    ///   SHA3 variant (224, 256...) to be used
521
    /// </param>
522
    /// <param name="capacity">
523
    ///   Capacity c (it could directly be calculated from the rate as
524
    ///   c = 1600 - r but the original author Wolfgang Erhardt decided against
525
    ///   this.
526
    ///   The capacity is the size of that part of the state vector which, when
527
    ///   xored with the message blocks and when extracting the resulting hash,
528
    ///   stays untouched.
529
    /// </param>
530
    procedure InitSponge(Rate, Capacity: UInt16);
531
532
    /// <summary>
533
    ///   Init internal data
534
    /// </summary>
535
    procedure DoInit; override;
536
    /// <summary>
537
    ///   Dummy method to avoid the compiler warning about a class with abstract method
538
    /// </summary>
539
    procedure DoTransform(Buffer: PUInt32Array); override;
540
    /// <summary>
541
    ///   Final step of the calculation
542
    /// </summary>
543
    procedure DoDone; override;
544
545
    /// <summary>
546
    ///   Returns the calculated hash value
547
    /// </summary>
548
    /// <returns>
549
    ///   Hash value calculated
550
    /// </returns>
551
    function Digest: PByteArray; override;
552
  public
553
    /// <summary>
554
    ///   Dimension hash result buffer
555
    /// </summary>
556
    constructor Create; override;
557
    /// <summary>
558
    ///   Processes one chunk of data to be hashed.
559
    /// </summary>
560
    /// <param name="Data">
561
    ///   Data on which the hash value shall be calculated on
562
    /// </param>
563
    /// <param name="DataSize">
564
    ///   Size of the data in bytes
565
    /// </param>
566
    procedure Calc(const Data; DataSize: Integer); override;
567
  end;
568
569
  /// <summary>
570
  ///   224 bit SHA3 variant
571
  /// </summary>
572
  THash_SHA3_224 = class(THash_SHA3Base)
573
  protected
574
    procedure DoInit; override;
575
  public
576
    class function BlockSize: UInt32; override;
577
    class function DigestSize: UInt32; override;
578
  end;
579
580
  /// <summary>
581
  ///   256 bit SHA3 variant
582
  /// </summary>
583
  THash_SHA3_256 = class(THash_SHA3Base)
584
  protected
585
    procedure DoInit; override;
586
  public
587
    class function BlockSize: UInt32; override;
588
    class function DigestSize: UInt32; override;
589
  end;
590
591
  /// <summary>
592
  ///   384 bit SHA3 variant
593
  /// </summary>
594
  THash_SHA3_384 = class(THash_SHA3Base)
595
  protected
596
    procedure DoInit; override;
597
  public
598
    class function BlockSize: UInt32; override;
599
    class function DigestSize: UInt32; override;
600
  end;
601
602
  /// <summary>
603
  ///   512 bit SHA3 variant
604
  /// </summary>
605
  THash_SHA3_512 = class(THash_SHA3Base)
606
  protected
607
    procedure DoInit; override;
608
  public
609
    class function BlockSize: UInt32; override;
610
    class function DigestSize: UInt32; override;
611
  end;
612
613
  /// <summary>
614
  ///   Base class for the Shake implementations
615
  /// </summary>
616
  THash_ShakeBase = class(THash_SHA3Base, IDECHashExtensibleOutput)
617
  private
618
    /// <summary>
619
    ///   Returns the length of the calculated hash value in byte
620
    /// </summary>
621
    function  GetHashSize: UInt16;
622
    /// <summary>
623
    ///   Defines the length of the calculated hash value
624
    /// </summary>
625
    /// <param name="Value">
626
    ///   Length of the hash value to be returned in byte
627
    /// </param>
628
    procedure SetHashSize(const Value: UInt16);
629
  public
630
    /// <summary>
631
    ///   Returns the calculated hash value as byte array. Needs to be overriden
632
    ///   here as the length of the output needs to be determined differently due
633
    ///   to Shake being extensible output length.
634
    /// </summary>
635
    function DigestAsBytes: TBytes; override;
636
    /// <summary>
637
    ///   Define the lenght of the resulting hash value in byte as these functions
638
    ///   are extendable output functions
639
    /// </summary>
640
    property HashSize : UInt16
641
      read   GetHashSize
642
      write  SetHashSize;
643
  end;
644
645
  /// <summary>
646
  ///   Shake128 veriant of SHA3
647
  /// </summary>
648
  THash_Shake128 = class(THash_ShakeBase)
649
  protected
650
    procedure DoInit; override;
651
  public
652
    class function BlockSize: UInt32; override;
653
    class function DigestSize: UInt32; override;
654
  end;
655
656
  /// <summary>
657
  ///   Shake128 veriant of SHA3
658
  /// </summary>
659
  THash_Shake256 = class(THash_ShakeBase)
660
  protected
661
    procedure DoInit; override;
662
  public
663
    class function BlockSize: UInt32; override;
664
    class function DigestSize: UInt32; override;
665
  end;
666
667
  THavalBaseTransformMethod = procedure(Buffer: PUInt32Array) of object;
668
669
  /// <summary>
670
  ///   Base class for all Haval implementations
671
  /// </summary>
672
  THashBaseHaval = class(TDECHashAuthentication, IDECHashRounds)
673
  private
674
    FDigest: array[0..7] of UInt32;
675
      /// <summary>
676
      ///   UInt32 for compatibility with 32 bit ASM implementation
677
      /// </summary>
678
    FRounds: UInt32;
679
    FTransform: THavalBaseTransformMethod;
680
    /// <summary>
681
    ///   Defines the number of calculation rounds and if a value outside the
682
    ///   allowed range is given it sets rounds to a value based on digest size.
683
    /// </summary>
684
    procedure SetRounds(Value: UInt32);
685
    function  GetRounds: UInt32;
686
  protected
687
    procedure DoInit; override;
688
    procedure DoTransform(Buffer: PUInt32Array); override;
689
    procedure DoTransform3(Buffer: PUInt32Array);
690
    procedure DoTransform4(Buffer: PUInt32Array);
691
    procedure DoTransform5(Buffer: PUInt32Array);
692
    procedure DoDone; override;
693
  public
694
    function Digest: PByteArray; override;
695
    class function BlockSize: UInt32; override;
696
    /// <summary>
697
    ///   Returns the minimum possible number for the rounds parameter.
698
    ///   Value depends on Digest size which depends on concrete implementation
699
    /// </summary>
700
    function GetMinRounds: UInt32;
701
    /// <summary>
702
    ///   Returns the maximum possible number for the rounds parameter.
703
    ///   Value depends on Digest size which depends on concrete implementation
704
    /// </summary>
705
    function GetMaxRounds: UInt32;
706
707
    /// <summary>
708
    ///   Defines the number of rounds the algorithm performs on the input data.
709
    ///   The range for this parameter is 3-5 rounds. If a value outside this
710
    ///   range is assigned, the value used depends on the DigestSize. For
711
    ///   DigestSizes <= 20 it will be set to 3, for values <= 28 to 4 and for
712
    ///   bigger values to 5. For 3 rounds the algorithm is considered unsafe,
713
    ///   as in 2003 collisions could be found with a setting of 3 rounds only.
714
    /// </summary>
715
    property Rounds: UInt32 read GetRounds write SetRounds default 3;
716
  end;
717
718
  /// <summary>
719
  ///   In 2004 collisions for this one were found, so this one should be
720
  ///   considered to be unsafe.
721
  /// </summary>
722
  THash_Haval128 = class(THashBaseHaval)
723
  public
724
    class function DigestSize: UInt32; override;
725
  end;
726
727
  THash_Haval160 = class(THashBaseHaval)
728
  public
729
    class function DigestSize: UInt32; override;
730
  end;
731
732
  THash_Haval192 = class(THashBaseHaval)
733
  public
734
    class function DigestSize: UInt32; override;
735
  end;
736
737
  THash_Haval224 = class(THashBaseHaval)
738
  public
739
    class function DigestSize: UInt32; override;
740
  end;
741
742
  THash_Haval256 = class(THashBaseHaval)
743
  public
744
    class function DigestSize: UInt32; override;
745
  end;
746
747
  /// <summary>
748
  ///   This is actually an implementation of the 192 bit variant of the Tiger
749
  ///   hash algorithm with 3 rounds, unless a different value is assigned
750
  ///   to the rounds property. It is considered to be unsafe at least in the
751
  ///   192 Bit variant!
752
  /// </summary>
753
  THash_Tiger = class(THashBaseMD4, IDECHashRounds)
754
  private
755
    const
756
      /// <summary>
757
      ///   Minimum number of rounds for the Tigher hash function. Trying to set a
758
      ///   lower one sets the rounds to this value.
759
      /// </summary>
760
      cTigerMinRounds = 3;
761
      /// <summary>
762
      ///   Maximum number of rounds for the Tigher hash function. Trying to set a
763
      ///   higher one sets the rounds to this value.
764
      /// </summary>
765
      cTigerMaxRounds = 32;
766
    var
767
      /// <summary>
768
      ///   UInt32 for compatibility with 32 bit ASM implementation
769
      /// </summary>
770
      FRounds: UInt32;
771
      function  GetRounds: UInt32;
772
      procedure SetRounds(Value: UInt32);
773
  protected
774
    procedure DoInit; override;
775
    procedure DoTransform(Buffer: PUInt32Array); override;
776
  public
777
    class function DigestSize: UInt32; override;
778
    /// <summary>
779
    ///   Returns the minimum possible number for the rounds parameter
780
    /// </summary>
781
    function GetMinRounds: UInt32;
782
    /// <summary>
783
    ///   Returns the maximum possible number for the rounds parameter
784
    /// </summary>
785
    function GetMaxRounds: UInt32;
786
787
    /// <summary>
788
    ///   Defines the number of rounds the algorithm will perform on the data
789
    ///   passed. Valid values are in the range from 3-32 rounds and values
790
    ///   outside this range will lead to a rounds value of 3 or 32 to be used,
791
    ///   depending on whether a lower or higher value has been given.
792
    /// </summary>
793
    property Rounds: UInt32 read GetRounds write SetRounds default 3;
794
  end;
795
796
  /// <summary>
797
  ///   As there seem to exist 128 and 160 bit variants of Tiger, which seem to
798
  ///   be truncated variants of Tiger 192, but we want to keep compatibility
799
  ///   with old code we introduce an alias for the time being.
800
  ///   It is considered to be unsafe at least in the 192 Bit variant!
801
  /// </summary>
802
  THash_Tiger192 = THash_Tiger;
803
804
  /// <summary>
805
  ///   The Panama algorithm is being considered to be unsafe. Support is only
806
  ///   being provided for backward compatibility.
807
  /// </summary>
808
  THash_Panama = class(TDECHashAuthentication)
809
  private
810
    FLFSRBuffer: array[0..31, 0..7] of UInt32;
811
    FDigest: array[0..16] of UInt32;
812
    FTap: UInt32;
813
  protected
814
    procedure DoInit; override;
815
    procedure DoTransform(Buffer: PUInt32Array); override;
816
    procedure DoDone; override;
817
    procedure DoPull;
818
  public
819
    function Digest: PByteArray; override;
820
    class function DigestSize: UInt32; override;
821
    class function BlockSize: UInt32; override; // 32
822
  end;
823
824
  THashBaseWhirlpool = class(TDECHashAuthentication)
825
  private
826
    FDigest: array[0..15] of UInt32;
827
    FTableC: Pointer;
828
    FTableR: Pointer;
829
  protected
830
    procedure DoTransform(Buffer: PUInt32Array); override;
831
    procedure DoDone; override;
832
  public
833
    function Digest: PByteArray; override;
834
    class function DigestSize: UInt32; override;
835
    class function BlockSize: UInt32; override;
836
  end;
837
838
  /// <summary>
839
  ///   This is the original variant of the algorithmus. Do not use it as some
840
  ///   security flaw has been detected early on by its inventors. DEC contains
841
  ///   it for backwards compatibility and completeness.
842
  /// </summary>
843
  THash_Whirlpool0 = class(THashBaseWhirlpool)
844
  protected
845
    procedure DoInit; override;
846
  end;
847
848
  /// <summary>
849
  ///   This is variant of the algorithmus fixing the security flaw of the
850
  ///   original version Whirlpool0. Do not use it in new code as it has been
851
  ///   superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC)
852
  ///   variant which is additionally more safe as well! It is there for
853
  ///   backwards compatibility and completeness only.
854
  /// </summary>
855
  THash_WhirlpoolT = class(THashBaseWhirlpool)
856
  protected
857
    procedure DoInit; override;
858
  end;
859
860
  /// <summary>
861
  ///   The current version of Whirlpool but not the one used in code developed
862
  ///   against the older DEC 5.x versions. The name of the one used in your
863
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
864
  ///   class names where the name Whirlpool1 was already taken by the variant
865
  ///   nowadays known as Whirlpool-T.
866
  /// </summary>
867
  THash_Whirlpool1_ = class(THashBaseWhirlpool)
868
  protected
869
    procedure DoInit; override;
870
  end;
871
872
  {$IFDEF OLD_WHIRLPOOL_NAMES}
873
  /// <summary>
874
  ///   This is the original variant of the algorithmus. Do not use it as some
875
  ///   security flaw has been detected early on by its inventors. DEC contains
876
  ///   it for backwards compatibility and completeness.
877
  /// </summary>
878
  THash_Whirlpool = class(THash_Whirlpool0);
879
  /// <summary>
880
  ///   This is variant of the algorithmus fixing the security flaw of the
881
  ///   original version Whirlpool0. Do not use it in new code as it has been
882
  ///   superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC)
883
  ///   variant which is additionally more safe as well! It is there for
884
  ///   backwards compatibility and completeness only.
885
  /// </summary>
886
  THash_Whirlpool1 = class(THash_WhirlpoolT);
887
  /// <summary>
888
  ///   The current version of Whirlpool but not the one used in code developed
889
  ///   against the older DEC 5.x versions. The name of the one used in your
890
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
891
  ///   class names where the name Whirlpool1 was already taken by the variant
892
  ///   nowadays known as Whirlpool-T.
893
  /// </summary>
894
  THash_Whirlpool1New = class(THash_Whirlpool1_);
895
  {$ELSE}
896
  /// <summary>
897
  ///   The current version of Whirlpool but not the one used in code developed
898
  ///   against the older DEC 5.x versions. The name of the one used in your
899
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
900
  ///   class names where the name Whirlpool1 was already taken by the variant
901
  ///   nowadays known as Whirlpool-T.
902
  /// </summary>
903
  THash_Whirlpool1 = class(THash_Whirlpool1_);
904
  {$ENDIF}
905
906
  THash_Square = class(TDECHashAuthentication)
907
  private
908
    FDigest: array[0..3] of UInt32;
909
  protected
910
    procedure DoInit; override;
911
    procedure DoTransform(Buffer: PUInt32Array); override;
912
    procedure DoDone; override;
913
  public
914
    function Digest: PByteArray; override;
915
    class function DigestSize: UInt32; override;
916
    class function BlockSize: UInt32; override;
917
  end;
918
919
  /// <summary>
920
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
921
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark there.
922
  /// </summary>
923
  THashBaseSnefru = class(TDECHashAuthentication, IDECHashRounds)
924
  private
925
    FDigest: array[0..23] of UInt32;
926
    /// <summary>
927
    ///   Number of rounds the loop will do on the data.
928
    ///   UInt32 for compatibility with 32 bit ASM implementation
929
    /// </summary>
930
    FRounds: UInt32;
931
    /// <summary>
932
    ///   Sets the number of rounds for the looping over the data
933
    /// </summary>
934
    procedure SetRounds(Value: UInt32);
935
    function  GetRounds: UInt32;
936
  protected
937
    procedure DoInit; override;
938
    procedure DoDone; override;
939
  public
940
    function Digest: PByteArray; override;
941
    ///   Returns the minimum possible number for the rounds parameter.
942
    ///   Value depends on Digest size which depends on concrete implementation
943
    /// </summary>
944
    function GetMinRounds: UInt32;
945
    ///   Returns the maximum possible number for the rounds parameter.
946
    ///   Value depends on Digest size which depends on concrete implementation
947
    /// </summary>
948
    function GetMaxRounds: UInt32;
949
950
    /// <summary>
951
    ///   Can be set from 2 to 8, default is 8. This is the number of rounds the
952
    ///   algorithm will use. With the default of 8 rounds it is being considered
953
    ///   as safe as of spring 2016, with less rounds this algorithm is considered
954
    ///   to be unsafe and even with 8 rounds it is not really strong.
955
    /// </summary>
956
    property Rounds: UInt32
957
      read   GetRounds
958
      write  SetRounds;
959
  end;
960
961
  /// <summary>
962
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
963
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark for
964
  ///   THashBaseSnefru.SecurityLevel.
965
  /// </summary>
966
  THash_Snefru128 = class(THashBaseSnefru)
967
  protected
968
    procedure DoTransform(Buffer: PUInt32Array); override;
969
  public
970
    class function DigestSize: UInt32; override;
971
    class function BlockSize: UInt32; override; // 48
972
  end;
973
974
  /// <summary>
975
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
976
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark
977
  ///   THashBaseSnefru.SecurityLevel.
978
  /// </summary>
979
  THash_Snefru256 = class(THashBaseSnefru)
980
  protected
981
    procedure DoTransform(Buffer: PUInt32Array); override;
982
  public
983
    class function DigestSize: UInt32; override;
984
    class function BlockSize: UInt32; override; // 32
985
  end;
986
987
  THash_Sapphire = class(TDECHashAuthentication)
988
  private
989
    FCards: array[0..255] of UInt32;
990
    FDigest: array[0..15] of UInt32;
991
    FRotor: UInt32;
992
    FRatchet: UInt32;
993
    FAvalanche: UInt32;
994
    FPlain: UInt32;
995
    FCipher: UInt32;
996
    FDigestSize: UInt8;
997
998
    /// <summary>
999
    ///   Set the length of the output hash value in byte.
1000
    /// </summary>
1001
    /// <param name="Value">
1002
    ///   Minimum value is 1 byte, maximum value is 64 byte = 512 bit.
1003
    ///   Sets the size to the default size returned by DigestSize otherwise.
1004
    ///   is specified.
1005
    /// </param>
1006
    procedure SetDigestSize(Value: UInt8);
1007
  protected
1008
    procedure DoInit; override;
1009
    procedure DoDone; override;
1010
    procedure DoTransform(Buffer: PUInt32Array); override;
1011
  public
1012
    function Digest: PByteArray; override;
1013
    function DigestAsBytes: TBytes; override;
1014
    /// <summary>
1015
    ///   Returns the default digest/hash size in bit. If RequestedDigestSize is
1016
    ///   not set, the defauilt size returned here is being used.
1017
    /// </summary>
1018
    class function DigestSize: UInt32; override;
1019
    /// <summary>
1020
    ///   Returns on which block size this algorithm operates. Since the Sapphire
1021
    ///   hash originates from a Sapphire stream cipher algorithm this is always 1.
1022
    /// </summary>
1023
    class function BlockSize: UInt32; override;
1024
    procedure Calc(const Data; DataSize: Integer); override;
1025
1026
    /// <summary>
1027
    ///   This property defines the length of the output from the hash calculation
1028
    ///   in byte. The maximum value is 64 byte = 512 bit. Values bigger 64 byte
1029
    ///   and a value of 0 lead to the default size returned by DigestSize otherwise.
1030
    ///   This setting is only respected by the DigestAsBytes method and all other
1031
    ///   convenience methods using that one like CalcStream, CalcString,
1032
    ///   DigestAsString or DigestAsRawString.
1033
    /// </summary>
1034
    property RequestedDigestSize: UInt8
1035
      read   FDigestSize
1036
      write  SetDigestSize;
1037
  end;
1038
1039
implementation
1040
1041
uses
1042
  DECData, DECDataHash;
1043
1044
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
1045
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
1046
1047
{$IFDEF X86ASM}
1048
  {$DEFINE INCLUDED} // allows having the DECHash.inc in the IDE's project manager
1049
  {$INCLUDE DECHash.asm86.inc}
1050
{$ENDIF !X86ASM}
1051
1052
{ Speed comparison of ASM vs. PurePascal Implementation. Valid only for Win32 compiler
1053
  and this was for DEC 5.1 and thus compiler versions < D2009!
1054
1055
                                           assembler                             pascal
1056
1057
  THash_SHA512    :       85.1 cycles/byte      17.62 Mb/sec      220.9 cycles/byte       6.79 Mb/sec  159%
1058
  THash_SHA384    :       85.2 cycles/byte      17.61 Mb/sec      220.0 cycles/byte       6.82 Mb/sec  158%
1059
  THash_Tiger     :       24.6 cycles/byte      60.98 Mb/sec       60.7 cycles/byte      24.69 Mb/sec  147%
1060
  THash_Haval128  :       13.3 cycles/byte     112.55 Mb/sec       26.0 cycles/byte      57.77 Mb/sec   95%
1061
  THash_SHA1      :       20.1 cycles/byte      74.80 Mb/sec       36.1 cycles/byte      41.51 Mb/sec   80%
1062
  THash_SHA       :       20.0 cycles/byte      75.03 Mb/sec       35.5 cycles/byte      42.21 Mb/sec   78%
1063
  THash_Haval160  :       13.2 cycles/byte     113.30 Mb/sec       22.7 cycles/byte      66.12 Mb/sec   71%
1064
  THash_Haval256  :       25.9 cycles/byte      57.84 Mb/sec       40.5 cycles/byte      37.07 Mb/sec   56%
1065
  THash_Snefru128 :      159.7 cycles/byte       9.39 Mb/sec      248.2 cycles/byte       6.04 Mb/sec   55%
1066
  THash_Snefru256 :      239.3 cycles/byte       6.27 Mb/sec      367.9 cycles/byte       4.08 Mb/sec   54%
1067
  THash_RipeMD256 :       14.5 cycles/byte     103.16 Mb/sec       21.4 cycles/byte      70.08 Mb/sec   47%
1068
  THash_MD4       :        5.8 cycles/byte     256.73 Mb/sec        8.5 cycles/byte     176.92 Mb/sec   45%
1069
1070
  THash_MD2       :      251.6 cycles/byte       5.96 Mb/sec      366.1 cycles/byte       4.10 Mb/sec   45%
1071
  THash_RipeMD128 :       15.2 cycles/byte      98.89 Mb/sec       21.2 cycles/byte      70.61 Mb/sec   40%
1072
  THash_RipeMD320 :       25.5 cycles/byte      58.73 Mb/sec       35.8 cycles/byte      41.87 Mb/sec   40%
1073
  THash_MD5       :        8.9 cycles/byte     169.43 Mb/sec       11.4 cycles/byte     131.01 Mb/sec   29%
1074
  THash_RipeMD160 :       26.5 cycles/byte      56.66 Mb/sec       31.4 cycles/byte      47.79 Mb/sec   19%
1075
  THash_Square    :       44.7 cycles/byte      33.58 Mb/sec       53.1 cycles/byte      28.23 Mb/sec   19%
1076
  THash_Haval192  :       32.5 cycles/byte      46.17 Mb/sec       37.6 cycles/byte      39.87 Mb/sec   18%
1077
  THash_WhirlpoolT:      104.9 cycles/byte      14.30 Mb/sec      122.8 cycles/byte      12.22 Mb/sec   17%
1078
  THash_Whirlpool0:      104.7 cycles/byte      14.33 Mb/sec      119.9 cycles/byte      12.51 Mb/sec   15%
1079
  THash_Sapphire  :       52.9 cycles/byte      28.35 Mb/sec       53.8 cycles/byte      27.86 Mb/sec    2%
1080
  THash_Haval224  :       32.0 cycles/byte      46.82 Mb/sec       32.3 cycles/byte      46.46 Mb/sec    1%
1081
  THash_SHA256    :       47.8 cycles/byte      31.35 Mb/sec       47.8 cycles/byte      31.39 Mb/sec    0%
1082
  THash_Panama    :        8.9 cycles/byte     169.01 Mb/sec        7.3 cycles/byte     206.55 Mb/sec  -18%
1083
}
1084
1085
resourcestring
1086
  /// <summary>
1087
  ///   Failure message when a hash algorithm is initialized with wrong parameters
1088
  /// </summary>
1089
  sHashInitFailure   = 'Invalid %0:s algorithm initialization parameters specified: %1:s';
1090
  /// <summary>
1091
  ///   Failure message when absorb is callt with a bitlength not divideable by 8
1092
  ///   without reminder or when it is called while already in squeezing state
1093
  /// </summary>
1094
  sSHA3AbsorbFailure = 'Absorb: number of bits mod 8 <> 0 or squeezing active. Bits: %0:d, '+
1095
                       'Squeezing: %1:s';
1096
  /// <summary>
1097
  ///   Part of the failure message shown when setting HashSize of Shake algorithms to 0
1098
  /// </summary>
1099
  sHashOutputLength0 = 'HashSize must not be 0';
1100
1101
{ THash_MD2 }
1102
1103
{$IFNDEF THash_MD2_asm}
1104
procedure THash_MD2.DoTransform(Buffer: PUInt32Array);
1105
var
1106
  I, J, T: UInt32;
1107
begin
1108
  for I := 0 to 3 do
1109
  begin
1110
    PUInt32Array(@FDigest[16])[I] := Buffer[I];
1111
    PUInt32Array(@FDigest[32])[I] := PUInt32Array(@FDigest[0])[I] xor PUInt32Array(@FDigest[16])[I];
1112
  end;
1113
  T := FDigest[63];
1114
  for I := 0 to 15 do
1115
  begin
1116
    T := FDigest[I + 48] xor MD2_PISubst[FDigest[I + 16] xor Byte(T)];
1117
    FDigest[I + 48] := Byte(T);
1118
  end;
1119
  T := 0;
1120
  for I := 0 to 17 do
1121
  begin
1122
    for J := 0 to 47 do
1123
    begin
1124
      T := FDigest[J] xor MD2_PISubst[T];
1125
      FDigest[J] := Byte(T);
1126
    end;
1127
    T := (T + I) and $FF;
1128
  end;
1129
end;
1130
{$ENDIF !THash_MD2_asm}
1131
1132
procedure THash_MD2.DoInit;
1133
begin
1134
  FillChar(FDigest, SizeOf(FDigest), 0);
1135
end;
1136
1137
procedure THash_MD2.DoDone;
1138
var
1139
  Remain: Integer;
1140
begin
1141
  Remain := FBufferSize - FBufferIndex;
1142
  FillChar(FBuffer[FBufferIndex], Remain, Remain);
1143
  DoTransform(Pointer(FBuffer));
1144
  Move(FDigest[48], FBuffer^, FBufferSize);
1145
  DoTransform(Pointer(FBuffer));
1146
end;
1147
1148
function THash_MD2.Digest: PByteArray;
1149
begin
1150
  Result := @FDigest;
1151
end;
1152
1153
class function THash_MD2.DigestSize: UInt32;
1154
begin
1155
  Result := 16;
1156
end;
1157
1158
class function THash_MD2.BlockSize: UInt32;
1159
begin
1160
  Result := 16;
1161
end;
1162
1163
{ THashBaseMD4 }
1164
1165
procedure THashBaseMD4.DoInit;
1166
begin
1167
  FDigest[0] := $67452301;
1168
  FDigest[1] := $EFCDAB89;
1169
  FDigest[2] := $98BADCFE;
1170
  FDigest[3] := $10325476;
1171
  FDigest[4] := $C3D2E1F0;
1172
  FDigest[5] := $76543210;
1173
  FDigest[6] := $FEDCBA98;
1174
  FDigest[7] := $89ABCDEF;
1175
  FDigest[8] := $01234567;
1176
  FDigest[9] := $3C2D1E0F;
1177
end;
1178
1179
procedure THashBaseMD4.DoDone;
1180
begin
1181
  if FCount[2] or FCount[3] <> 0 then
1182
    RaiseHashOverflowError;
1183
  if FPaddingByte = 0 then
1184
    FPaddingByte := $80;
1185
  FBuffer[FBufferIndex] := FPaddingByte;
1186
  Inc(FBufferIndex);
1187
  if FBufferIndex > FBufferSize - 8 then
1188
  begin
1189
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
1190
    DoTransform(Pointer(FBuffer));
1191
    FBufferIndex := 0;
1192
  end;
1193
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
1194
  Move(FCount, FBuffer[FBufferSize - 8], 8);
1195
  DoTransform(Pointer(FBuffer));
1196
end;
1197
1198
function THashBaseMD4.Digest: PByteArray;
1199
begin
1200
  Result := @FDigest;
1201
end;
1202
1203
class function THashBaseMD4.DigestSize: UInt32;
1204
begin
1205
  Result := 16;
1206
end;
1207
1208
class function THashBaseMD4.BlockSize: UInt32;
1209
begin
1210
  Result := 64;
1211
end;
1212
1213
{ THash_MD4 }
1214
1215
{$IFNDEF THash_MD4_asm}
1216
procedure THash_MD4.DoTransform(Buffer: PUInt32Array);
1217
const
1218
  S1 = $5A827999;
1219
  S2 = $6ED9EBA1;
1220
var
1221
  A, B, C, D: UInt32;
1222
begin
1223
  A := FDigest[0];
1224
  B := FDigest[1];
1225
  C := FDigest[2];
1226
  D := FDigest[3];
1227
1228
  Inc(A, B and C or not B and D + Buffer[ 0]); A := A shl  3 or A shr 29;
1229
  Inc(D, A and B or not A and C + Buffer[ 1]); D := D shl  7 or D shr 25;
1230
  Inc(C, D and A or not D and B + Buffer[ 2]); C := C shl 11 or C shr 21;
1231
  Inc(B, C and D or not C and A + Buffer[ 3]); B := B shl 19 or B shr 13;
1232
  Inc(A, B and C or not B and D + Buffer[ 4]); A := A shl  3 or A shr 29;
1233
  Inc(D, A and B or not A and C + Buffer[ 5]); D := D shl  7 or D shr 25;
1234
  Inc(C, D and A or not D and B + Buffer[ 6]); C := C shl 11 or C shr 21;
1235
  Inc(B, C and D or not C and A + Buffer[ 7]); B := B shl 19 or B shr 13;
1236
  Inc(A, B and C or not B and D + Buffer[ 8]); A := A shl  3 or A shr 29;
1237
  Inc(D, A and B or not A and C + Buffer[ 9]); D := D shl  7 or D shr 25;
1238
  Inc(C, D and A or not D and B + Buffer[10]); C := C shl 11 or C shr 21;
1239
  Inc(B, C and D or not C and A + Buffer[11]); B := B shl 19 or B shr 13;
1240
  Inc(A, B and C or not B and D + Buffer[12]); A := A shl  3 or A shr 29;
1241
  Inc(D, A and B or not A and C + Buffer[13]); D := D shl  7 or D shr 25;
1242
  Inc(C, D and A or not D and B + Buffer[14]); C := C shl 11 or C shr 21;
1243
  Inc(B, C and D or not C and A + Buffer[15]); B := B shl 19 or B shr 13;
1244
1245
  Inc(A, B and C or B and D or C and D + Buffer[ 0] + S1); A := A shl  3 or A shr 29;
1246
  Inc(D, A and B or A and C or B and C + Buffer[ 4] + S1); D := D shl  5 or D shr 27;
1247
  Inc(C, D and A or D and B or A and B + Buffer[ 8] + S1); C := C shl  9 or C shr 23;
1248
  Inc(B, C and D or C and A or D and A + Buffer[12] + S1); B := B shl 13 or B shr 19;
1249
  Inc(A, B and C or B and D or C and D + Buffer[ 1] + S1); A := A shl  3 or A shr 29;
1250
  Inc(D, A and B or A and C or B and C + Buffer[ 5] + S1); D := D shl  5 or D shr 27;
1251
  Inc(C, D and A or D and B or A and B + Buffer[ 9] + S1); C := C shl  9 or C shr 23;
1252
  Inc(B, C and D or C and A or D and A + Buffer[13] + S1); B := B shl 13 or B shr 19;
1253
  Inc(A, B and C or B and D or C and D + Buffer[ 2] + S1); A := A shl  3 or A shr 29;
1254
  Inc(D, A and B or A and C or B and C + Buffer[ 6] + S1); D := D shl  5 or D shr 27;
1255
  Inc(C, D and A or D and B or A and B + Buffer[10] + S1); C := C shl  9 or C shr 23;
1256
  Inc(B, C and D or C and A or D and A + Buffer[14] + S1); B := B shl 13 or B shr 19;
1257
  Inc(A, B and C or B and D or C and D + Buffer[ 3] + S1); A := A shl  3 or A shr 29;
1258
  Inc(D, A and B or A and C or B and C + Buffer[ 7] + S1); D := D shl  5 or D shr 27;
1259
  Inc(C, D and A or D and B or A and B + Buffer[11] + S1); C := C shl  9 or C shr 23;
1260
  Inc(B, C and D or C and A or D and A + Buffer[15] + S1); B := B shl 13 or B shr 19;
1261
1262
  Inc(A, B xor C xor D + Buffer[ 0] + S2); A := A shl  3 or A shr 29;
1263
  Inc(D, A xor B xor C + Buffer[ 8] + S2); D := D shl  9 or D shr 23;
1264
  Inc(C, D xor A xor B + Buffer[ 4] + S2); C := C shl 11 or C shr 21;
1265
  Inc(B, C xor D xor A + Buffer[12] + S2); B := B shl 15 or B shr 17;
1266
  Inc(A, B xor C xor D + Buffer[ 2] + S2); A := A shl  3 or A shr 29;
1267
  Inc(D, A xor B xor C + Buffer[10] + S2); D := D shl  9 or D shr 23;
1268
  Inc(C, D xor A xor B + Buffer[ 6] + S2); C := C shl 11 or C shr 21;
1269
  Inc(B, C xor D xor A + Buffer[14] + S2); B := B shl 15 or B shr 17;
1270
  Inc(A, B xor C xor D + Buffer[ 1] + S2); A := A shl  3 or A shr 29;
1271
  Inc(D, A xor B xor C + Buffer[ 9] + S2); D := D shl  9 or D shr 23;
1272
  Inc(C, D xor A xor B + Buffer[ 5] + S2); C := C shl 11 or C shr 21;
1273
  Inc(B, C xor D xor A + Buffer[13] + S2); B := B shl 15 or B shr 17;
1274
  Inc(A, B xor C xor D + Buffer[ 3] + S2); A := A shl  3 or A shr 29;
1275
  Inc(D, A xor B xor C + Buffer[11] + S2); D := D shl  9 or D shr 23;
1276
  Inc(C, D xor A xor B + Buffer[ 7] + S2); C := C shl 11 or C shr 21;
1277
  Inc(B, C xor D xor A + Buffer[15] + S2); B := B shl 15 or B shr 17;
1278
1279
  Inc(FDigest[0], A);
1280
  Inc(FDigest[1], B);
1281
  Inc(FDigest[2], C);
1282
  Inc(FDigest[3], D);
1283
end;
1284
{$ENDIF}
1285
1286
{ THash_MD5 }
1287
1288
{$IFNDEF THash_MD5_asm}
1289
procedure THash_MD5.DoTransform(Buffer: PUInt32Array);
1290
var
1291
  A, B, C, D: UInt32;
1292
begin
1293
  A := FDigest[0];
1294
  B := FDigest[1];
1295
  C := FDigest[2];
1296
  D := FDigest[3];
1297
1298
  Inc(A, Buffer[ 0] + $D76AA478 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1299
  Inc(D, Buffer[ 1] + $E8C7B756 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1300
  Inc(C, Buffer[ 2] + $242070DB + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1301
  Inc(B, Buffer[ 3] + $C1BDCEEE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1302
  Inc(A, Buffer[ 4] + $F57C0FAF + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1303
  Inc(D, Buffer[ 5] + $4787C62A + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1304
  Inc(C, Buffer[ 6] + $A8304613 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1305
  Inc(B, Buffer[ 7] + $FD469501 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1306
  Inc(A, Buffer[ 8] + $698098D8 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1307
  Inc(D, Buffer[ 9] + $8B44F7AF + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1308
  Inc(C, Buffer[10] + $FFFF5BB1 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1309
  Inc(B, Buffer[11] + $895CD7BE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1310
  Inc(A, Buffer[12] + $6B901122 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1311
  Inc(D, Buffer[13] + $FD987193 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1312
  Inc(C, Buffer[14] + $A679438E + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1313
  Inc(B, Buffer[15] + $49B40821 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1314
1315
  Inc(A, Buffer[ 1] + $F61E2562 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1316
  Inc(D, Buffer[ 6] + $C040B340 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1317
  Inc(C, Buffer[11] + $265E5A51 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1318
  Inc(B, Buffer[ 0] + $E9B6C7AA + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1319
  Inc(A, Buffer[ 5] + $D62F105D + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1320
  Inc(D, Buffer[10] + $02441453 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1321
  Inc(C, Buffer[15] + $D8A1E681 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1322
  Inc(B, Buffer[ 4] + $E7D3FBC8 + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1323
  Inc(A, Buffer[ 9] + $21E1CDE6 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1324
  Inc(D, Buffer[14] + $C33707D6 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1325
  Inc(C, Buffer[ 3] + $F4D50D87 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1326
  Inc(B, Buffer[ 8] + $455A14ED + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1327
  Inc(A, Buffer[13] + $A9E3E905 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1328
  Inc(D, Buffer[ 2] + $FCEFA3F8 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1329
  Inc(C, Buffer[ 7] + $676F02D9 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1330
  Inc(B, Buffer[12] + $8D2A4C8A + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1331
1332
  Inc(A, Buffer[ 5] + $FFFA3942 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1333
  Inc(D, Buffer[ 8] + $8771F681 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1334
  Inc(C, Buffer[11] + $6D9D6122 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1335
  Inc(B, Buffer[14] + $FDE5380C + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1336
  Inc(A, Buffer[ 1] + $A4BEEA44 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1337
  Inc(D, Buffer[ 4] + $4BDECFA9 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1338
  Inc(C, Buffer[ 7] + $F6BB4B60 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1339
  Inc(B, Buffer[10] + $BEBFBC70 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1340
  Inc(A, Buffer[13] + $289B7EC6 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1341
  Inc(D, Buffer[ 0] + $EAA127FA + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1342
  Inc(C, Buffer[ 3] + $D4EF3085 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1343
  Inc(B, Buffer[ 6] + $04881D05 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1344
  Inc(A, Buffer[ 9] + $D9D4D039 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1345
  Inc(D, Buffer[12] + $E6DB99E5 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1346
  Inc(C, Buffer[15] + $1FA27CF8 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1347
  Inc(B, Buffer[ 2] + $C4AC5665 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1348
1349
  Inc(A, Buffer[ 0] + $F4292244 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1350
  Inc(D, Buffer[ 7] + $432AFF97 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1351
  Inc(C, Buffer[14] + $AB9423A7 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1352
  Inc(B, Buffer[ 5] + $FC93A039 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1353
  Inc(A, Buffer[12] + $655B59C3 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1354
  Inc(D, Buffer[ 3] + $8F0CCC92 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1355
  Inc(C, Buffer[10] + $FFEFF47D + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1356
  Inc(B, Buffer[ 1] + $85845DD1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1357
  Inc(A, Buffer[ 8] + $6FA87E4F + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1358
  Inc(D, Buffer[15] + $FE2CE6E0 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1359
  Inc(C, Buffer[ 6] + $A3014314 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1360
  Inc(B, Buffer[13] + $4E0811A1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1361
  Inc(A, Buffer[ 4] + $F7537E82 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1362
  Inc(D, Buffer[11] + $BD3AF235 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1363
  Inc(C, Buffer[ 2] + $2AD7D2BB + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1364
  Inc(B, Buffer[ 9] + $EB86D391 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1365
1366
  Inc(FDigest[0], A);
1367
  Inc(FDigest[1], B);
1368
  Inc(FDigest[2], C);
1369
  Inc(FDigest[3], D);
1370
end;
1371
{$ENDIF}
1372
1373
{ THash_RipeMD128 }
1374
1375
{$IFNDEF X86ASM}
1376
const
1377
  RipeS1 = $5A827999;
1378
  RipeS2 = $6ED9EBA1;
1379
  RipeS3 = $8F1BBCDC;
1380
  RipeS4 = $A953FD4E;
1381
  RipeS5 = $50A28BE6;
1382
  RipeS6 = $5C4DD124;
1383
  RipeS7 = $6D703EF3;
1384
  RipeS8 = $7A6D76E9;
1385
{$ENDIF !X86ASM}
1386
1387
{$IFNDEF THash_RipeMD128_asm}
1388
procedure THash_RipeMD128.DoTransform(Buffer: PUInt32Array);
1389
var
1390
  A1, B1, C1, D1: UInt32;
1391
  A2, B2, C2, D2: UInt32;
1392
  T: UInt32;
1393
begin
1394
  A1 := FDigest[0];
1395
  B1 := FDigest[1];
1396
  C1 := FDigest[2];
1397
  D1 := FDigest[3];
1398
  A2 := FDigest[0];
1399
  B2 := FDigest[1];
1400
  C2 := FDigest[2];
1401
  D2 := FDigest[3];
1402
1403
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21;
1404
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18;
1405
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17;
1406
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20;
1407
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl  5 or A1 shr 27;
1408
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl  8 or D1 shr 24;
1409
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl  7 or C1 shr 25;
1410
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl  9 or B1 shr 23;
1411
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21;
1412
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19;
1413
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18;
1414
  Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17;
1415
  Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl  6 or A1 shr 26;
1416
  Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl  7 or D1 shr 25;
1417
  Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl  9 or C1 shr 23;
1418
  Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl  8 or B1 shr 24;
1419
1420
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1421
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26;
1422
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24;
1423
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19;
1424
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1425
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl  9 or D1 shr 23;
1426
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl  7 or C1 shr 25;
1427
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17;
1428
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1429
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20;
1430
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17;
1431
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl  9 or B1 shr 23;
1432
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1433
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl  7 or D1 shr 25;
1434
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19;
1435
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20;
1436
1437
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21;
1438
  Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19;
1439
  Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl  6 or C1 shr 26;
1440
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl  7 or B1 shr 25;
1441
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1442
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23;
1443
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1444
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17;
1445
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1446
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl  8 or D1 shr 24;
1447
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1448
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl  6 or B1 shr 26;
1449
  Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl  5 or A1 shr 27;
1450
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20;
1451
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl  7 or C1 shr 25;
1452
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl  5 or B1 shr 27;
1453
1454
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21;
1455
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20;
1456
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18;
1457
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17;
1458
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18;
1459
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17;
1460
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl  9 or C1 shr 23;
1461
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl  8 or B1 shr 24;
1462
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl  9 or A1 shr 23;
1463
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18;
1464
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1465
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26;
1466
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24;
1467
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl  6 or D1 shr 26;
1468
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1469
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20;
1470
1471
  T := A1; A1 := A2; A2 := T;
1472
  T := B1; B1 := B2; B2 := T;
1473
  T := C1; C1 := C2; C2 := T;
1474
  T := D1; D1 := D2; D2 := T;
1475
1476
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24;
1477
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl  9 or D1 shr 23;
1478
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl  9 or C1 shr 23;
1479
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1480
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19;
1481
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17;
1482
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17;
1483
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl  5 or B1 shr 27;
1484
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl  7 or A1 shr 25;
1485
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl  7 or D1 shr 25;
1486
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl  8 or C1 shr 24;
1487
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1488
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18;
1489
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18;
1490
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20;
1491
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl  6 or B1 shr 26;
1492
1493
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl  9 or A1 shr 23;
1494
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19;
1495
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17;
1496
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1497
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20;
1498
  Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl  8 or D1 shr 24;
1499
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl  9 or C1 shr 23;
1500
  Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1501
  Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl  7 or A1 shr 25;
1502
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl  7 or D1 shr 25;
1503
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20;
1504
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1505
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl  6 or A1 shr 26;
1506
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17;
1507
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19;
1508
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1509
1510
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl  9 or A1 shr 23;
1511
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl  7 or D1 shr 25;
1512
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17;
1513
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21;
1514
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl  8 or A1 shr 24;
1515
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26;
1516
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26;
1517
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1518
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20;
1519
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1520
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl  5 or C1 shr 27;
1521
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1522
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19;
1523
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1524
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl  7 or C1 shr 25;
1525
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl  5 or B1 shr 27;
1526
1527
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17;
1528
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl  5 or D1 shr 27;
1529
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl  8 or C1 shr 24;
1530
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21;
1531
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18;
1532
  Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18;
1533
  Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl  6 or C1 shr 26;
1534
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18;
1535
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  6 or A1 shr 26;
1536
  Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl  9 or D1 shr 23;
1537
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20;
1538
  Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl  9 or B1 shr 23;
1539
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20;
1540
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl  5 or D1 shr 27;
1541
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17;
1542
  Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl  8 or B1 shr 24;
1543
1544
  Inc(D1, C2 + FDigest[1]);
1545
  FDigest[1] := FDigest[2] + D2 + A1;
1546
  FDigest[2] := FDigest[3] + A2 + B1;
1547
  FDigest[3] := FDIgest[0] + B2 + C1;
1548
  FDigest[0] := D1;
1549
end;
1550
{$ENDIF !THash_RipeMD128_asm}
1551
1552
{ THash_RipeMD160 }
1553
1554
{$IFNDEF THash_RipeMD160_asm}
1555
procedure THash_RipeMD160.DoTransform(Buffer: PUInt32Array);
1556
var
1557
  A1, B1, C1, D1, E1: UInt32;
1558
  A2, B2, C2, D2, E2: UInt32;
1559
  T: UInt32;
1560
begin
1561
  A1 := FDigest[0];
1562
  B1 := FDigest[1];
1563
  C1 := FDigest[2];
1564
  D1 := FDigest[3];
1565
  E1 := FDigest[4];
1566
1567
  A2 := FDigest[0];
1568
  B2 := FDigest[1];
1569
  C2 := FDigest[2];
1570
  D2 := FDigest[3];
1571
  E2 := FDigest[4];
1572
1573
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1574
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
1575
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
1576
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1577
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1578
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1579
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1580
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1581
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1582
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1583
  Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1584
  Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1585
  Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1586
  Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1587
  Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1588
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1589
1590
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1591
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1592
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
1593
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1594
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1595
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1596
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
1597
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1598
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1599
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1600
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1601
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1602
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1603
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1604
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1605
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1606
1607
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
1608
  Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1609
  Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1610
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
1611
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
1612
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1613
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1614
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1615
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1616
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1617
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1618
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1619
  Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1620
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1621
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1622
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1623
1624
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1625
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
1626
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1627
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1628
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1629
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1630
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1631
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1632
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1633
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1634
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
1635
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1636
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1637
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1638
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1639
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1640
1641
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1642
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
1643
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
1644
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
1645
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1646
  Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
1647
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1648
  Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1649
  Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1650
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1651
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1652
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1653
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1654
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
1655
  Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
1656
  Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1657
1658
  T := A1; A1 := A2; A2 := T;
1659
  T := B1; B1 := B2; B2 := T;
1660
  T := C1; C1 := C2; C2 := T;
1661
  T := D1; D1 := D2; D2 := T;
1662
  T := E1; E1 := E2; E2 := T;
1663
1664
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1665
  Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1666
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1667
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1668
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1669
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
1670
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1671
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1672
  Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1673
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1674
  Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1675
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1676
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1677
  Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1678
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
1679
  Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl  6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22;
1680
1681
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1682
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1683
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1684
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1685
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1686
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1687
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1688
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1689
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1690
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
1691
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1692
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
1693
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1694
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1695
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1696
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1697
1698
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1699
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1700
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1701
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1702
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1703
  Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1704
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1705
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22;
1706
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1707
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22;
1708
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1709
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1710
  Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1711
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1712
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1713
  Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1714
1715
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1716
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1717
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1718
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1719
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1720
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1721
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1722
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1723
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1724
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1725
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1726
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1727
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1728
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
1729
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
1730
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
1731
1732
  Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
1733
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
1734
  Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1735
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1736
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1737
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1738
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1739
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1740
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
1741
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1742
  Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1743
  Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
1744
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1745
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1746
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1747
  Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22;
1748
1749
  Inc(D1, C2 + FDigest[1]);
1750
  FDigest[1] := FDigest[2] + D2 + E1;
1751
  FDigest[2] := FDigest[3] + E2 + A1;
1752
  FDigest[3] := FDigest[4] + A2 + B1;
1753
  FDigest[4] := FDigest[0] + B2 + C1;
1754
  FDigest[0] := D1;
1755
end;
1756
{$ENDIF !THash_RipeMD160_asm}
1757
1758
class function THash_RipeMD160.DigestSize: UInt32;
1759
begin
1760
  Result := 20;
1761
end;
1762
1763
{ THash_RipeMD256 }
1764
1765
{$IFNDEF THash_RipeMD256_asm}
1766
procedure THash_RipeMD256.DoTransform(Buffer: PUInt32Array);
1767
var
1768
  A1, B1, C1, D1: UInt32;
1769
  A2, B2, C2, D2: UInt32;
1770
  T: UInt32;
1771
begin
1772
  A1 := FDigest[0];
1773
  B1 := FDigest[1];
1774
  C1 := FDigest[2];
1775
  D1 := FDigest[3];
1776
1777
  A2 := FDigest[4];
1778
  B2 := FDigest[5];
1779
  C2 := FDigest[6];
1780
  D2 := FDigest[7];
1781
1782
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21;
1783
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18;
1784
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17;
1785
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20;
1786
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl  5 or A1 shr 27;
1787
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl  8 or D1 shr 24;
1788
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl  7 or C1 shr 25;
1789
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl  9 or B1 shr 23;
1790
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21;
1791
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19;
1792
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18;
1793
  Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17;
1794
  Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl  6 or A1 shr 26;
1795
  Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl  7 or D1 shr 25;
1796
  Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl  9 or C1 shr 23;
1797
  Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl  8 or B1 shr 24;
1798
1799
  T := A1; A1 := A2; A2 := T;
1800
  T := B1; B1 := B2; B2 := T;
1801
  T := C1; C1 := C2; C2 := T;
1802
  T := D1; D1 := D2; D2 := T;
1803
1804
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24;
1805
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl  9 or D1 shr 23;
1806
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl  9 or C1 shr 23;
1807
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1808
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19;
1809
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17;
1810
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17;
1811
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl  5 or B1 shr 27;
1812
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl  7 or A1 shr 25;
1813
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl  7 or D1 shr 25;
1814
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl  8 or C1 shr 24;
1815
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1816
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18;
1817
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18;
1818
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20;
1819
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl  6 or B1 shr 26;
1820
1821
  T := B1; B1 := B2; B2 := T;
1822
  T := C1; C1 := C2; C2 := T;
1823
  T := D1; D1 := D2; D2 := T;
1824
1825
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1826
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26;
1827
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24;
1828
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19;
1829
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1830
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl  9 or D1 shr 23;
1831
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl  7 or C1 shr 25;
1832
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17;
1833
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1834
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20;
1835
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17;
1836
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl  9 or B1 shr 23;
1837
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1838
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl  7 or D1 shr 25;
1839
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19;
1840
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20;
1841
1842
  T := A1; A1 := A2; A2 := T;
1843
  T := B1; B1 := B2; B2 := T;
1844
  T := C1; C1 := C2; C2 := T;
1845
  T := D1; D1 := D2; D2 := T;
1846
1847
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl  9 or A1 shr 23;
1848
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19;
1849
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17;
1850
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1851
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20;
1852
  Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl  8 or D1 shr 24;
1853
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl  9 or C1 shr 23;
1854
  Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1855
  Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl  7 or A1 shr 25;
1856
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl  7 or D1 shr 25;
1857
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20;
1858
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1859
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl  6 or A1 shr 26;
1860
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17;
1861
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19;
1862
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1863
1864
  T := A1; A1 := A2; A2 := T;
1865
  T := C1; C1 := C2; C2 := T;
1866
  T := D1; D1 := D2; D2 := T;
1867
1868
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21;
1869
  Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19;
1870
  Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl  6 or C1 shr 26;
1871
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl  7 or B1 shr 25;
1872
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1873
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23;
1874
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1875
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17;
1876
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1877
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl  8 or D1 shr 24;
1878
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1879
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl  6 or B1 shr 26;
1880
  Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl  5 or A1 shr 27;
1881
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20;
1882
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl  7 or C1 shr 25;
1883
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl  5 or B1 shr 27;
1884
1885
  T := A1; A1 := A2; A2 := T;
1886
  T := B1; B1 := B2; B2 := T;
1887
  T := C1; C1 := C2; C2 := T;
1888
  T := D1; D1 := D2; D2 := T;
1889
1890
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl  9 or A1 shr 23;
1891
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl  7 or D1 shr 25;
1892
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17;
1893
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21;
1894
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl  8 or A1 shr 24;
1895
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26;
1896
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26;
1897
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1898
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20;
1899
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1900
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl  5 or C1 shr 27;
1901
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1902
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19;
1903
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1904
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl  7 or C1 shr 25;
1905
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl  5 or B1 shr 27;
1906
1907
  T := A1; A1 := A2; A2 := T;
1908
  T := B1; B1 := B2; B2 := T;
1909
  T := D1; D1 := D2; D2 := T;
1910
1911
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21;
1912
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20;
1913
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18;
1914
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17;
1915
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18;
1916
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17;
1917
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl  9 or C1 shr 23;
1918
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl  8 or B1 shr 24;
1919
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl  9 or A1 shr 23;
1920
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18;
1921
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1922
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26;
1923
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24;
1924
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl  6 or D1 shr 26;
1925
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1926
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20;
1927
1928
  T := A1; A1 := A2; A2 := T;
1929
  T := B1; B1 := B2; B2 := T;
1930
  T := C1; C1 := C2; C2 := T;
1931
  T := D1; D1 := D2; D2 := T;
1932
1933
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17;
1934
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl  5 or D1 shr 27;
1935
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl  8 or C1 shr 24;
1936
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21;
1937
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18;
1938
  Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18;
1939
  Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl  6 or C1 shr 26;
1940
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18;
1941
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  6 or A1 shr 26;
1942
  Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl  9 or D1 shr 23;
1943
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20;
1944
  Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl  9 or B1 shr 23;
1945
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20;
1946
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl  5 or D1 shr 27;
1947
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17;
1948
  Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl  8 or B1 shr 24;
1949
1950
  Inc(FDigest[0], A2);
1951
  Inc(FDigest[1], B2);
1952
  Inc(FDigest[2], C2);
1953
  Inc(FDigest[3], D1);
1954
1955
  Inc(FDigest[4], A1);
1956
  Inc(FDigest[5], B1);
1957
  Inc(FDigest[6], C1);
1958
  Inc(FDigest[7], D2);
1959
end;
1960
{$ENDIF !THash_RipeMD256_asm}
1961
1962
procedure THash_RipeMD256.DoInit;
1963
begin
1964
  FDigest[0] := $67452301;
1965
  FDigest[1] := $EFCDAB89;
1966
  FDigest[2] := $98BADCFE;
1967
  FDigest[3] := $10325476;
1968
  FDigest[4] := $76543210;
1969
  FDigest[5] := $FEDCBA98;
1970
  FDigest[6] := $89ABCDEF;
1971
  FDigest[7] := $01234567;
1972
  FDigest[8] := $01234567;
1973
  FDigest[9] := $3C2D1E0F;
1974
end;
1975
1976
class function THash_RipeMD256.DigestSize: UInt32;
1977
begin
1978
  Result := 32;
1979
end;
1980
1981
{ THash_RipeMD320 }
1982
1983
{$IFNDEF THash_RipeMD320_asm}
1984
procedure THash_RipeMD320.DoTransform(Buffer: PUInt32Array);
1985
var
1986
  A1, B1, C1, D1, E1: UInt32;
1987
  A2, B2, C2, D2, E2: UInt32;
1988
  T: UInt32;
1989
begin
1990
  A1 := FDigest[0];
1991
  B1 := FDigest[1];
1992
  C1 := FDigest[2];
1993
  D1 := FDigest[3];
1994
  E1 := FDigest[4];
1995
  A2 := FDigest[5];
1996
  B2 := FDigest[6];
1997
  C2 := FDigest[7];
1998
  D2 := FDigest[8];
1999
  E2 := FDigest[9];
2000
2001
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2002
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
2003
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
2004
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2005
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2006
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2007
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2008
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2009
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2010
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2011
  Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2012
  Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2013
  Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2014
  Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2015
  Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2016
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2017
2018
  T := A1; A1 := A2; A2 := T;
2019
  T := B1; B1 := B2; B2 := T;
2020
  T := C1; C1 := C2; C2 := T;
2021
  T := D1; D1 := D2; D2 := T;
2022
  T := E1; E1 := E2; E2 := T;
2023
2024
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2025
  Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2026
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2027
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2028
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2029
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
2030
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2031
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2032
  Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2033
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2034
  Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2035
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2036
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2037
  Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2038
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
2039
  Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl  6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22;
2040
2041
  T := B1; B1 := B2; B2 := T;
2042
  T := C1; C1 := C2; C2 := T;
2043
  T := D1; D1 := D2; D2 := T;
2044
  T := E1; E1 := E2; E2 := T;
2045
2046
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2047
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2048
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
2049
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2050
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2051
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2052
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
2053
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2054
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2055
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2056
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2057
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2058
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2059
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2060
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2061
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2062
2063
  T := A1; A1 := A2; A2 := T;
2064
  T := B1; B1 := B2; B2 := T;
2065
  T := C1; C1 := C2; C2 := T;
2066
  T := D1; D1 := D2; D2 := T;
2067
  T := E1; E1 := E2; E2 := T;
2068
2069
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2070
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2071
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2072
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2073
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2074
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2075
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2076
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2077
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2078
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
2079
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2080
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
2081
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2082
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2083
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2084
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2085
2086
  T := A1; A1 := A2; A2 := T;
2087
  T := C1; C1 := C2; C2 := T;
2088
  T := D1; D1 := D2; D2 := T;
2089
  T := E1; E1 := E2; E2 := T;
2090
2091
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
2092
  Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2093
  Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2094
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
2095
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
2096
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2097
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2098
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2099
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2100
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2101
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2102
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2103
  Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2104
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2105
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2106
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2107
2108
  T := A1; A1 := A2; A2 := T;
2109
  T := B1; B1 := B2; B2 := T;
2110
  T := C1; C1 := C2; C2 := T;
2111
  T := D1; D1 := D2; D2 := T;
2112
  T := E1; E1 := E2; E2 := T;
2113
2114
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2115
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2116
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2117
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2118
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2119
  Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2120
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2121
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22;
2122
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2123
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22;
2124
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2125
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2126
  Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2127
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2128
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2129
  Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2130
2131
  T := A1; A1 := A2; A2 := T;
2132
  T := B1; B1 := B2; B2 := T;
2133
  T := D1; D1 := D2; D2 := T;
2134
  T := E1; E1 := E2; E2 := T;
2135
2136
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2137
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
2138
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2139
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2140
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2141
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2142
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2143
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2144
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2145
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2146
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
2147
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2148
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2149
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2150
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2151
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2152
2153
  T := A1; A1 := A2; A2 := T;
2154
  T := B1; B1 := B2; B2 := T;
2155
  T := C1; C1 := C2; C2 := T;
2156
  T := D1; D1 := D2; D2 := T;
2157
  T := E1; E1 := E2; E2 := T;
2158
2159
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2160
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2161
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2162
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2163
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2164
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2165
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2166
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2167
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2168
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2169
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2170
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2171
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2172
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
2173
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
2174
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
2175
2176
  T := A1; A1 := A2; A2 := T;
2177
  T := B1; B1 := B2; B2 := T;
2178
  T := C1; C1 := C2; C2 := T;
2179
  T := E1; E1 := E2; E2 := T;
2180
2181
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2182
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
2183
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
2184
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
2185
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2186
  Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
2187
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2188
  Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2189
  Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2190
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2191
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2192
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2193
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2194
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
2195
  Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
2196
  Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2197
2198
  T := A1; A1 := A2; A2 := T;
2199
  T := B1; B1 := B2; B2 := T;
2200
  T := C1; C1 := C2; C2 := T;
2201
  T := D1; D1 := D2; D2 := T;
2202
  T := E1; E1 := E2; E2 := T;
2203
2204
  Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
2205
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
2206
  Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2207
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2208
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2209
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2210
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2211
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2212
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
2213
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2214
  Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2215
  Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
2216
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2217
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2218
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2219
  Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22;
2220
2221
  Inc(FDigest[0], A2);
2222
  Inc(FDigest[1], B2);
2223
  Inc(FDigest[2], C2);
2224
  Inc(FDigest[3], D2);
2225
  Inc(FDigest[4], E1);
2226
  Inc(FDigest[5], A1);
2227
  Inc(FDigest[6], B1);
2228
  Inc(FDigest[7], C1);
2229
  Inc(FDigest[8], D1);
2230
  Inc(FDigest[9], E2);
2231
end;
2232
{$ENDIF !THash_RipeMD320_asm}
2233
2234
class function THash_RipeMD320.DigestSize: UInt32;
2235
begin
2236
  Result := 40;
2237
end;
2238
2239
{ THash_SHA }
2240
2241
{$IFNDEF THash_SHA_asm}
2242
procedure THash_SHA0.DoTransform(Buffer: PUInt32Array);
2243
var
2244
  A, B, C, D, E, T: UInt32;
2245
  W: array[0..79] of UInt32;
2246
  I: Integer;
2247
begin
2248
  SwapUInt32Buffer(Buffer[0], W, 16);
2249
  if ClassType <> THash_SHA1 then
2250
  begin
2251
    for I := 16 to 79 do
2252
    begin
2253
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
2254
      W[I] := T;
2255
    end;
2256
  end
2257
  else
2258
  begin
2259
    for I := 16 to 79 do
2260
    begin
2261
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
2262
      W[I] := T shl 1 or T shr 31;
2263
    end;
2264
  end;
2265
2266
  A := FDigest[0];
2267
  B := FDigest[1];
2268
  C := FDigest[2];
2269
  D := FDigest[3];
2270
  E := FDigest[4];
2271
2272
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 0] + $5A827999); B := B shr 2 or B shl 30;
2273
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 1] + $5A827999); A := A shr 2 or A shl 30;
2274
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 2] + $5A827999); E := E shr 2 or E shl 30;
2275
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 3] + $5A827999); D := D shr 2 or D shl 30;
2276
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 4] + $5A827999); C := C shr 2 or C shl 30;
2277
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 5] + $5A827999); B := B shr 2 or B shl 30;
2278
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 6] + $5A827999); A := A shr 2 or A shl 30;
2279
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 7] + $5A827999); E := E shr 2 or E shl 30;
2280
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 8] + $5A827999); D := D shr 2 or D shl 30;
2281
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 9] + $5A827999); C := C shr 2 or C shl 30;
2282
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[10] + $5A827999); B := B shr 2 or B shl 30;
2283
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[11] + $5A827999); A := A shr 2 or A shl 30;
2284
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[12] + $5A827999); E := E shr 2 or E shl 30;
2285
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[13] + $5A827999); D := D shr 2 or D shl 30;
2286
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[14] + $5A827999); C := C shr 2 or C shl 30;
2287
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[15] + $5A827999); B := B shr 2 or B shl 30;
2288
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[16] + $5A827999); A := A shr 2 or A shl 30;
2289
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[17] + $5A827999); E := E shr 2 or E shl 30;
2290
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[18] + $5A827999); D := D shr 2 or D shl 30;
2291
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[19] + $5A827999); C := C shr 2 or C shl 30;
2292
2293
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[20] + $6ED9EBA1); B := B shr 2 or B shl 30;
2294
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[21] + $6ED9EBA1); A := A shr 2 or A shl 30;
2295
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[22] + $6ED9EBA1); E := E shr 2 or E shl 30;
2296
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[23] + $6ED9EBA1); D := D shr 2 or D shl 30;
2297
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[24] + $6ED9EBA1); C := C shr 2 or C shl 30;
2298
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[25] + $6ED9EBA1); B := B shr 2 or B shl 30;
2299
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[26] + $6ED9EBA1); A := A shr 2 or A shl 30;
2300
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[27] + $6ED9EBA1); E := E shr 2 or E shl 30;
2301
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[28] + $6ED9EBA1); D := D shr 2 or D shl 30;
2302
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[29] + $6ED9EBA1); C := C shr 2 or C shl 30;
2303
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[30] + $6ED9EBA1); B := B shr 2 or B shl 30;
2304
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[31] + $6ED9EBA1); A := A shr 2 or A shl 30;
2305
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[32] + $6ED9EBA1); E := E shr 2 or E shl 30;
2306
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[33] + $6ED9EBA1); D := D shr 2 or D shl 30;
2307
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[34] + $6ED9EBA1); C := C shr 2 or C shl 30;
2308
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[35] + $6ED9EBA1); B := B shr 2 or B shl 30;
2309
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[36] + $6ED9EBA1); A := A shr 2 or A shl 30;
2310
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[37] + $6ED9EBA1); E := E shr 2 or E shl 30;
2311
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[38] + $6ED9EBA1); D := D shr 2 or D shl 30;
2312
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[39] + $6ED9EBA1); C := C shr 2 or C shl 30;
2313
2314
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[40] + $8F1BBCDC); B := B shr 2 or B shl 30;
2315
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[41] + $8F1BBCDC); A := A shr 2 or A shl 30;
2316
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[42] + $8F1BBCDC); E := E shr 2 or E shl 30;
2317
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[43] + $8F1BBCDC); D := D shr 2 or D shl 30;
2318
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[44] + $8F1BBCDC); C := C shr 2 or C shl 30;
2319
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[45] + $8F1BBCDC); B := B shr 2 or B shl 30;
2320
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[46] + $8F1BBCDC); A := A shr 2 or A shl 30;
2321
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[47] + $8F1BBCDC); E := E shr 2 or E shl 30;
2322
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[48] + $8F1BBCDC); D := D shr 2 or D shl 30;
2323
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[49] + $8F1BBCDC); C := C shr 2 or C shl 30;
2324
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[50] + $8F1BBCDC); B := B shr 2 or B shl 30;
2325
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[51] + $8F1BBCDC); A := A shr 2 or A shl 30;
2326
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[52] + $8F1BBCDC); E := E shr 2 or E shl 30;
2327
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[53] + $8F1BBCDC); D := D shr 2 or D shl 30;
2328
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[54] + $8F1BBCDC); C := C shr 2 or C shl 30;
2329
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[55] + $8F1BBCDC); B := B shr 2 or B shl 30;
2330
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[56] + $8F1BBCDC); A := A shr 2 or A shl 30;
2331
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[57] + $8F1BBCDC); E := E shr 2 or E shl 30;
2332
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[58] + $8F1BBCDC); D := D shr 2 or D shl 30;
2333
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[59] + $8F1BBCDC); C := C shr 2 or C shl 30;
2334
2335
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[60] + $CA62C1D6); B := B shr 2 or B shl 30;
2336
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[61] + $CA62C1D6); A := A shr 2 or A shl 30;
2337
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[62] + $CA62C1D6); E := E shr 2 or E shl 30;
2338
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[63] + $CA62C1D6); D := D shr 2 or D shl 30;
2339
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[64] + $CA62C1D6); C := C shr 2 or C shl 30;
2340
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[65] + $CA62C1D6); B := B shr 2 or B shl 30;
2341
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[66] + $CA62C1D6); A := A shr 2 or A shl 30;
2342
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[67] + $CA62C1D6); E := E shr 2 or E shl 30;
2343
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[68] + $CA62C1D6); D := D shr 2 or D shl 30;
2344
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[69] + $CA62C1D6); C := C shr 2 or C shl 30;
2345
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[70] + $CA62C1D6); B := B shr 2 or B shl 30;
2346
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[71] + $CA62C1D6); A := A shr 2 or A shl 30;
2347
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[72] + $CA62C1D6); E := E shr 2 or E shl 30;
2348
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[73] + $CA62C1D6); D := D shr 2 or D shl 30;
2349
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[74] + $CA62C1D6); C := C shr 2 or C shl 30;
2350
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[75] + $CA62C1D6); B := B shr 2 or B shl 30;
2351
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[76] + $CA62C1D6); A := A shr 2 or A shl 30;
2352
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[77] + $CA62C1D6); E := E shr 2 or E shl 30;
2353
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[78] + $CA62C1D6); D := D shr 2 or D shl 30;
2354
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[79] + $CA62C1D6); C := C shr 2 or C shl 30;
2355
2356
  Inc(FDigest[0], A);
2357
  Inc(FDigest[1], B);
2358
  Inc(FDigest[2], C);
2359
  Inc(FDigest[3], D);
2360
  Inc(FDigest[4], E);
2361
end;
2362
{$ENDIF !THash_SHA_asm}
2363
2364
procedure THash_SHA0.DoDone;
2365
begin
2366
  if FCount[2] or FCount[3] <> 0 then
2367
    RaiseHashOverflowError;
2368
  if FPaddingByte = 0 then
2369
    FPaddingByte := $80;
2370
  FBuffer[FBufferIndex] := FPaddingByte;
2371
  Inc(FBufferIndex);
2372
  if FBufferIndex > FBufferSize - 8 then
2373
  begin
2374
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2375
    DoTransform(Pointer(FBuffer));
2376
    FBufferIndex := 0;
2377
  end;
2378
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2379
  PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]);
2380
  PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]);
2381
  DoTransform(Pointer(FBuffer));
2382
  SwapUInt32Buffer(FDigest, FDigest, SizeOf(FDigest) div 4);
2383
end;
2384
2385
class function THash_SHA0.DigestSize: UInt32;
2386
begin
2387
  Result := 20;
2388
end;
2389
2390
{ THash_SHA256 }
2391
2392
procedure THash_SHA256.DoInit;
2393
begin
2394
  FDigest[0]:= $6A09E667;
2395
  FDigest[1]:= $BB67AE85;
2396
  FDigest[2]:= $3C6EF372;
2397
  FDigest[3]:= $A54FF53A;
2398
  FDigest[4]:= $510E527F;
2399
  FDigest[5]:= $9B05688C;
2400
  FDigest[6]:= $1F83D9AB;
2401
  FDigest[7]:= $5BE0CD19;
2402
end;
2403
2404
{$IFNDEF THash_SHA256_asm}
2405
procedure THash_SHA256.DoTransform(Buffer: PUInt32Array);
2406
var
2407
  I: Integer;
2408
  A, B, C, D, E, F, G, H: UInt32;
2409
  T1, T2: UInt32;
2410
  W: array[0..63] of UInt32;
2411
begin
2412
  SwapUInt32Buffer(Buffer[0], W, 16);
2413
2414
  for I := 16 to 63 do
2415
  begin
2416
    T1 := W[I - 15];
2417
    T2 := W[I - 2];
2418
    W[I] := W[I - 16] + W[I - 7] +
2419
            ((T1 shr  7 or T1 shl 25) xor (T1 shr 18 or T1 shl 14) xor (T1 shr  3)) +
2420
            ((T2 shr 17 or T2 shl 15) xor (T2 shr 19 or T2 shl 13) xor (T2 shr 10));
2421
  end;
2422
2423
  // calculate new hash values
2424
  A := FDigest[0];
2425
  B := FDigest[1];
2426
  C := FDigest[2];
2427
  D := FDigest[3];
2428
  E := FDigest[4];
2429
  F := FDigest[5];
2430
  G := FDigest[6];
2431
  H := FDigest[7];
2432
2433
  for I := 0 to 63 do
2434
  begin
2435
    T1 := ((E shr 6 or E shl 26) xor (E shr 11 or E shl 21) xor
2436
           (E shr 25 or E shl 7)) + H + (((F xor G) and E) xor G) + SHA_256K[I] + W[I];
2437
    T2 := ((A shr 2 or A shl 30) xor (A shr 13 or A shl 19) xor
2438
           (A shr 22 or A shl 10)) + (((B or C) and A) or (B and C));
2439
    H := G; G := F; F := E; E := D + T1; D := C; C := B; B := A; A := T1 + T2;
2440
  end;
2441
2442
  Inc(FDigest[0], A);
2443
  Inc(FDigest[1], B);
2444
  Inc(FDigest[2], C);
2445
  Inc(FDigest[3], D);
2446
  Inc(FDigest[4], E);
2447
  Inc(FDigest[5], F);
2448
  Inc(FDigest[6], G);
2449
  Inc(FDigest[7], H);
2450
end;
2451
{$ENDIF !THash_SHA256_asm}
2452
2453
class function THash_SHA256.DigestSize: UInt32;
2454
begin
2455
  Result := 32;
2456
end;
2457
2458
{ THash_SHA224 }
2459
2460
class function THash_SHA224.BlockSize: UInt32;
2461
begin
2462
  Result := 64;
2463
end;
2464
2465
class function THash_SHA224.DigestSize: UInt32;
2466
begin
2467
  Result := 28;
2468
end;
2469
2470
procedure THash_SHA224.DoInit;
2471
begin
2472
  FDigest[0]:= $C1059ED8;
2473
  FDigest[1]:= $367CD507;
2474
  FDigest[2]:= $3070DD17;
2475
  FDigest[3]:= $F70E5939;
2476
  FDigest[4]:= $FFC00B31;
2477
  FDigest[5]:= $68581511;
2478
  FDigest[6]:= $64F98FA7;
2479
  FDigest[7]:= $BEFA4FA4;
2480
end;
2481
2482
{ THash_SHA384 }
2483
2484
procedure THash_SHA384.DoInit;
2485
begin
2486
  FDigest[0] := Int64($CBBB9D5DC1059ED8);
2487
  FDigest[1] := Int64($629A292A367CD507);
2488
  FDigest[2] := Int64($9159015A3070DD17);
2489
  FDigest[3] := Int64($152FECD8F70E5939);
2490
  FDigest[4] := Int64($67332667FFC00B31);
2491
  FDigest[5] := Int64($8EB44A8768581511);
2492
  FDigest[6] := Int64($DB0C2E0D64F98FA7);
2493
  FDigest[7] := Int64($47B5481DBEFA4FA4);
2494
end;
2495
2496
{$IFNDEF THash_SHA384_asm}
2497
procedure THash_SHA384.DoTransform(Buffer: PUInt32Array);
2498
var
2499
  A, B, C, D, E, F, G, H: UInt64;
2500
  T1, T2: UInt64;
2501
  I: Integer;
2502
  W: array [0..79] of UInt64;
2503
begin
2504
{ TODO : The array passed is a UInt32 array, which doesn't fit with the name of this method!}
2505
  SwapInt64Buffer(Buffer[0], W, 16);
2506
2507
  // calculate other 64 uint64
2508
  for I := 16 to 79 do
2509
  begin
2510
    T1 := W[I - 15];
2511
    T2 := W[I - 2];
2512
    W[I] := W[I - 16] + W[I - 7] +
2513
            ((T1 shr  1 or T1 shl 63) xor (T1 shr  8 or T1 shl 56) xor (T1 shr  7)) +
2514
            ((T2 shr 19 or T2 shl 45) xor (T2 shr 61 or T2 shl  3) xor (T2 shr  6));
2515
  end;
2516
2517
  // calculate new hash values
2518
  A := FDigest[0];
2519
  B := FDigest[1];
2520
  C := FDigest[2];
2521
  D := FDigest[3];
2522
  E := FDigest[4];
2523
  F := FDigest[5];
2524
  G := FDigest[6];
2525
  H := FDigest[7];
2526
2527
  for I := 0 to 79 do
2528
  begin
2529
    T1 := ((E shr 14 or E shl 50) xor (E shr 18 or E shl 46) xor
2530
           (E shr 41 or E shl 23)) + H + (((F xor G) and E) xor G) + SHA_512K[I] + W[I];
2531
    T2 := ((A shr 28 or A shl 36) xor (A shr 34 or A shl 30) xor
2532
           (A shr 39 or A shl 25)) + (((B or C) and A) or (B and C));
2533
    H := G;
2534
    G := F;
2535
    F := E;
2536
    E := D + T1;
2537
    D := C;
2538
    C := B;
2539
    B := A;
2540
    A := T1 + T2;
2541
  end;
2542
2543
  Inc(FDigest[0], A);
2544
  Inc(FDigest[1], B);
2545
  Inc(FDigest[2], C);
2546
  Inc(FDigest[3], D);
2547
  Inc(FDigest[4], E);
2548
  Inc(FDigest[5], F);
2549
  Inc(FDigest[6], G);
2550
  Inc(FDigest[7], H);
2551
end;
2552
{$ENDIF !THash_SHA384_asm}
2553
2554
procedure THash_SHA384.DoDone;
2555
begin
2556
  if FPaddingByte = 0 then
2557
    FPaddingByte := $80;
2558
  FBuffer[FBufferIndex] := FPaddingByte;
2559
  Inc(FBufferIndex);
2560
  if FBufferIndex > FBufferSize - 16 then
2561
  begin
2562
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2563
    DoTransform(Pointer(FBuffer));
2564
    FBufferIndex := 0;
2565
  end;
2566
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2567
  SwapUInt32Buffer(FCount, FCount, 4);
2568
  PUInt32(@FBuffer[FBufferSize - 16])^ := FCount[3];
2569
  PUInt32(@FBuffer[FBufferSize - 12])^ := FCount[2];
2570
  PUInt32(@FBuffer[FBufferSize -  8])^ := FCount[1];
2571
  PUInt32(@FBuffer[FBufferSize -  4])^ := FCount[0];
2572
  DoTransform(Pointer(FBuffer));
2573
  SwapInt64Buffer(FDigest, FDigest, SizeOf(FDigest) div 8);
2574
end;
2575
2576
function THash_SHA384.Digest: PByteArray;
2577
begin
2578
  Result := @FDigest;
2579
end;
2580
2581
class function THash_SHA384.DigestSize: UInt32;
2582
begin
2583
  Result := 48;
2584
end;
2585
2586
class function THash_SHA384.BlockSize: UInt32;
2587
begin
2588
  Result := 128;
2589
end;
2590
2591
{ THash_SHA512 }
2592
2593
procedure THash_SHA512.DoInit;
2594
begin
2595
  FDigest[0] := Int64($6A09E667F3BCC908);
2596
  FDigest[1] := Int64($BB67AE8584CAA73B);
2597
  FDigest[2] := Int64($3C6EF372FE94F82B);
2598
  FDigest[3] := Int64($A54FF53A5F1D36F1);
2599
  FDigest[4] := Int64($510E527FADE682D1);
2600
  FDigest[5] := Int64($9B05688C2B3E6C1F);
2601
  FDigest[6] := Int64($1F83D9ABFB41BD6B);
2602
  FDigest[7] := Int64($5BE0CD19137E2179);
2603
end;
2604
2605
class function THash_SHA512.DigestSize: UInt32;
2606
begin
2607
  Result := 64;
2608
end;
2609
2610
{ THashBaseHaval }
2611
2612
procedure THashBaseHaval.SetRounds(Value: UInt32);
2613
begin
2614
  if (Value < GetMinRounds) or (Value > 5) then
2615
  begin
2616
    if DigestSize <= 20 then
2617
      Value := 3
2618
    else
2619
    begin
2620
      if DigestSize <= 28 then
2621
        Value := 4
2622
      else
2623
        Value := 5;
2624
    end;
2625
  end;
2626
  FRounds := Value;
2627
  case FRounds of
2628
    3: FTransform := DoTransform3;
2629
    4: FTransform := DoTransform4;
2630
    5: FTransform := DoTransform5;
2631
  end;
2632
end;
2633
2634
procedure THashBaseHaval.DoInit;
2635
begin
2636
  SetRounds(FRounds);
2637
  FDigest[0] := $243F6A88;
2638
  FDigest[1] := $85A308D3;
2639
  FDigest[2] := $13198A2E;
2640
  FDigest[3] := $03707344;
2641
  FDigest[4] := $A4093822;
2642
  FDigest[5] := $299F31D0;
2643
  FDigest[6] := $082EFA98;
2644
  FDigest[7] := $EC4E6C89;
2645
end;
2646
2647
procedure THashBaseHaval.DoTransform(Buffer: PUInt32Array);
2648
begin
2649
  FTransform(Buffer);
2650
end;
2651
2652
function THashBaseHaval.GetMaxRounds: UInt32;
2653
begin
2654
  Result := 5;
2655
end;
2656
2657
function THashBaseHaval.GetMinRounds: UInt32;
2658
begin
2659
  if DigestSize <= 20 then
2660
    Result := 3
2661
  else
2662
  begin
2663
    if DigestSize <= 28 then
2664
      Result := 4
2665
    else
2666
      Result := 5;
2667
  end;
2668
end;
2669
2670
function THashBaseHaval.GetRounds: UInt32;
2671
begin
2672
  Result := FRounds;
2673
end;
2674
2675
{$IFNDEF THashBaseHaval_asm}
2676
procedure THashBaseHaval.DoTransform3(Buffer: PUInt32Array);
2677
var
2678
  A, B, C, D, E, F, G, H, I, T: UInt32;
2679
  Data: PUInt32;
2680
  Offset: PByte;
2681
begin
2682
  Offset := @Haval_Offset;
2683
  Data   := @Haval_Data;
2684
2685
  A := FDigest[0];
2686
  B := FDigest[1];
2687
  C := FDigest[2];
2688
  D := FDigest[3];
2689
  E := FDigest[4];
2690
  F := FDigest[5];
2691
  G := FDigest[6];
2692
  H := FDigest[7];
2693
2694
  for I := 0 to 31 do
2695
  begin
2696
    T := C and (E xor D) xor G and A xor F and B xor E;
2697
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2698
	H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2699
  end;
2700
2701
  for I := 0 to 31 do
2702
  begin
2703
    T := F and (D and not A xor B and C xor E xor G) xor B and (D xor C) xor A and C xor G;
2704
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2705
    Inc(Offset);
2706
    Inc(Data);
2707
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2708
  end;
2709
2710
  for I := 0 to 31 do
2711
  begin
2712
    T := D and (F and E xor G xor A) xor F and C xor E and B xor A;
2713
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2714
    Inc(Offset);
2715
    Inc(Data);
2716
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2717
  end;
2718
2719
  Inc(FDigest[0], A);
2720
  Inc(FDigest[1], B);
2721
  Inc(FDigest[2], C);
2722
  Inc(FDigest[3], D);
2723
  Inc(FDigest[4], E);
2724
  Inc(FDigest[5], F);
2725
  Inc(FDigest[6], G);
2726
  Inc(FDigest[7], H);
2727
end;
2728
2729
procedure THashBaseHaval.DoTransform4(Buffer: PUInt32Array);
2730
var
2731
  A, B, C, D, E, F, G, H, I, T: UInt32;
2732
  Data: PUInt32;
2733
  Offset: PByte;
2734
begin
2735
  Offset := @Haval_Offset;
2736
  Data := @Haval_Data;
2737
2738
  A := FDigest[0];
2739
  B := FDigest[1];
2740
  C := FDigest[2];
2741
  D := FDigest[3];
2742
  E := FDigest[4];
2743
  F := FDigest[5];
2744
  G := FDigest[6];
2745
  H := FDigest[7];
2746
2747
  for I := 0 to 31 do
2748
  begin
2749
    T := D and (A xor B) xor F and G xor E and C xor A;
2750
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2751
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2752
  end;
2753
2754
  for I := 0 to 31 do
2755
  begin
2756
    T := B and (G and not A xor C and F xor D xor E) xor C and (G xor F) xor A and F xor E;
2757
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2758
    Inc(Offset);
2759
    Inc(Data);
2760
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2761
  end;
2762
2763
  for I := 0 to 31 do
2764
  begin
2765
    T := G and (C and A xor B xor F) xor C and D xor A and E xor F;
2766
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2767
    Inc(Offset);
2768
    Inc(Data);
2769
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2770
  end;
2771
2772
  for I := 0 to 31 do
2773
  begin
2774
    T := A and (E and not C xor F and not G xor B xor G xor D) xor F and
2775
        (B and C xor E xor G) xor C and G xor D;
2776
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2777
    Inc(Offset);
2778
    Inc(Data);
2779
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2780
  end;
2781
2782
  Inc(FDigest[0], A);
2783
  Inc(FDigest[1], B);
2784
  Inc(FDigest[2], C);
2785
  Inc(FDigest[3], D);
2786
  Inc(FDigest[4], E);
2787
  Inc(FDigest[5], F);
2788
  Inc(FDigest[6], G);
2789
  Inc(FDigest[7], H);
2790
end;
2791
2792
procedure THashBaseHaval.DoTransform5(Buffer: PUInt32Array);
2793
var
2794
  A, B, C, D, E, F, G, H, I, T: UInt32;
2795
  Data: PUInt32;
2796
  Offset: PByte;
2797
begin
2798
  Offset := @Haval_Offset;
2799
  Data := @Haval_Data;
2800
2801
  A := FDigest[0];
2802
  B := FDigest[1];
2803
  C := FDigest[2];
2804
  D := FDigest[3];
2805
  E := FDigest[4];
2806
  F := FDigest[5];
2807
  G := FDigest[6];
2808
  H := FDigest[7];
2809
2810
  for I := 0 to 31 do
2811
  begin
2812
    T := C and (G xor B) xor F and E xor A and D xor G;
2813
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2814
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2815
  end;
2816
2817
  for I := 0 to 31 do
2818
  begin
2819
    T := D and (E and not A xor B and C xor G xor F) xor B and (E xor C) xor A and C xor F;
2820
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2821
    Inc(Offset);
2822
    Inc(Data);
2823
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2824
  end;
2825
2826
  for I := 0 to 31 do
2827
  begin
2828
    T := E and (B and D xor C xor F) xor B and A xor D and G xor F;
2829
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2830
    Inc(Offset);
2831
    Inc(Data);
2832
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2833
  end;
2834
2835
  for I := 0 to 31 do
2836
  begin
2837
    T := D and (F and not A xor C and not B xor E xor B xor G) xor C and
2838
        (E and A xor F xor B) xor A and B xor G;
2839
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2840
    Inc(Offset);
2841
    Inc(Data);
2842
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2843
  end;
2844
2845
  for I := 0 to 31 do
2846
  begin
2847
    T := B and (D and E and G xor not F) xor D and A xor E and F xor G and C;
2848
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2849
    Inc(Offset); Inc(Data);
2850
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2851
  end;
2852
2853
  Inc(FDigest[0], A);
2854
  Inc(FDigest[1], B);
2855
  Inc(FDigest[2], C);
2856
  Inc(FDigest[3], D);
2857
  Inc(FDigest[4], E);
2858
  Inc(FDigest[5], F);
2859
  Inc(FDigest[6], G);
2860
  Inc(FDigest[7], H);
2861
end;
2862
2863
{$ENDIF !THashBaseHaval_asm}
2864
2865
procedure THashBaseHaval.DoDone;
2866
2867
  function ROR(Value, Count: UInt32): UInt32;
2868
  {$IFDEF X86ASM}
2869
  asm
2870
        MOV     ECX,EDX
2871
        ROR     EAX,CL
2872
  end;
2873
  {$ELSE !X86ASM}
2874
  begin
2875
    Result := (Value shr Count) or (Value shl (32 - Count));
2876
  end;
2877
  {$ENDIF !X86ASM}
2878
2879
var
2880
  T: Word;
2881
begin
2882
  if FCount[2] or FCount[3] <> 0 then
2883
    RaiseHashOverflowError;
2884
  if FPaddingByte = 0 then
2885
    FPaddingByte := $01;
2886
  FBuffer[FBufferIndex] := FPaddingByte;
2887
  Inc(FBufferIndex);
2888
  if FBufferIndex > FBufferSize - 10 then
2889
  begin
2890
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0);
2891
    DoTransform(Pointer(FBuffer));
2892
    FBufferIndex := 0;
2893
  end;
2894
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0);
2895
  T := (DigestSize shl 9) or (UInt32(FRounds) shl 3) or 1;
2896
  Move(T, FBuffer[FBufferSize - 10], SizeOf(T));
2897
  Move(FCount, FBuffer[FBufferSize - 8], 8);
2898
  DoTransform(Pointer(FBuffer));
2899
2900
  case DigestSize of
2901
    16: begin
2902
          Inc(FDigest[0], ROR(FDigest[7] and $000000FF or
2903
                              FDigest[6] and $FF000000 or
2904
                              FDigest[5] and $00FF0000 or
2905
                              FDigest[4] and $0000FF00, 8));
2906
          Inc(FDigest[1], ROR(FDigest[7] and $0000FF00 or
2907
                              FDigest[6] and $000000FF or
2908
                              FDigest[5] and $FF000000 or
2909
                              FDigest[4] and $00FF0000, 16));
2910
          Inc(FDigest[2], ROR(FDigest[7] and $00FF0000 or
2911
                              FDigest[6] and $0000FF00 or
2912
                              FDigest[5] and $000000FF or
2913
                              FDigest[4] and $FF000000, 24));
2914
          Inc(FDigest[3],     FDigest[7] and $FF000000 or
2915
                              FDigest[6] and $00FF0000 or
2916
                              FDigest[5] and $0000FF00 or
2917
                              FDigest[4] and $000000FF);
2918
        end;
2919
    20: begin
2920
          Inc(FDigest[0], ROR(FDigest[7] and ($3F) or
2921
                              FDigest[6] and ($7F shl 25) or
2922
                              FDigest[5] and ($3F shl 19), 19));
2923
          Inc(FDigest[1], ROR(FDigest[7] and ($3F shl 6) or
2924
                              FDigest[6] and ($3F) or
2925
                              FDigest[5] and ($7F shl 25), 25));
2926
          Inc(FDigest[2],     FDigest[7] and ($7F shl 12) or
2927
                              FDigest[6] and ($3F shl  6) or
2928
                              FDigest[5] and ($3F));
2929
          Inc(FDigest[3],    (FDigest[7] and ($3F shl 19) or
2930
                              FDigest[6] and ($7F shl 12) or
2931
                              FDigest[5] and ($3F shl  6)) shr 6);
2932
          Inc(FDigest[4],    (FDigest[7] and ($7F shl 25) or
2933
                              FDigest[6] and ($3F shl 19) or
2934
                              FDigest[5] and ($7F shl 12)) shr 12);
2935
        end;
2936
    24: begin
2937
          Inc(FDigest[0], ROR(FDigest[7] and ($1F) or
2938
                              FDigest[6] and ($3F shl 26), 26));
2939
          Inc(FDigest[1],     FDigest[7] and ($1F shl 5) or
2940
                              FDigest[6] and ($1F));
2941
          Inc(FDigest[2],    (FDigest[7] and ($3F shl 10) or
2942
                              FDigest[6] and ($1F shl  5)) shr 5);
2943
          Inc(FDigest[3],    (FDigest[7] and ($1F shl 16) or
2944
                              FDigest[6] and ($3F shl 10)) shr 10);
2945
          Inc(FDigest[4],    (FDigest[7] and ($1F shl 21) or
2946
                              FDigest[6] and ($1F shl 16)) shr 16);
2947
          Inc(FDigest[5],    (FDigest[7] and ($3F shl 26) or
2948
                              FDigest[6] and ($1F shl 21)) shr 21);
2949
        end;
2950
    28: begin
2951
          Inc(FDigest[0], FDigest[7] shr 27 and $1F);
2952
          Inc(FDigest[1], FDigest[7] shr 22 and $1F);
2953
          Inc(FDigest[2], FDigest[7] shr 18 and $0F);
2954
          Inc(FDigest[3], FDigest[7] shr 13 and $1F);
2955
          Inc(FDigest[4], FDigest[7] shr  9 and $0F);
2956
          Inc(FDigest[5], FDigest[7] shr  4 and $1F);
2957
          Inc(FDigest[6], FDigest[7]        and $0F);
2958
        end;
2959
  end;
2960
end;
2961
2962
function THashBaseHaval.Digest: PByteArray;
2963
begin
2964
  Result := @FDigest;
2965
end;
2966
2967
class function THashBaseHaval.BlockSize: UInt32;
2968
begin
2969
  Result := 128;
2970
end;
2971
2972
{ THash_Haval128 }
2973
2974
class function THash_Haval128.DigestSize: UInt32;
2975
begin
2976
  Result := 16;
2977
end;
2978
2979
{ THash_Haval160 }
2980
2981
class function THash_Haval160.DigestSize: UInt32;
2982
begin
2983
  Result := 20;
2984
end;
2985
2986
{ THash_Haval192 }
2987
2988
class function THash_Haval192.DigestSize: UInt32;
2989
begin
2990
  Result := 24;
2991
end;
2992
2993
{ THash_Haval224 }
2994
2995
class function THash_Haval224.DigestSize: UInt32;
2996
begin
2997
  Result := 28;
2998
end;
2999
3000
{ THash_Haval256 }
3001
3002
class function THash_Haval256.DigestSize: UInt32;
3003
begin
3004
  Result := 32;
3005
end;
3006
3007
{ THash_Tiger }
3008
3009
procedure THash_Tiger.SetRounds(Value: UInt32);
3010
begin
3011
  if (Value < cTigerMinRounds) then
3012
    Value := cTigerMinRounds;
3013
3014
  if (Value > cTigerMaxRounds) then
3015
    Value := cTigerMaxRounds;
3016
3017
  FRounds := Value;
3018
end;
3019
3020
procedure THash_Tiger.DoInit;
3021
begin
3022
  SetRounds(FRounds);
3023
  if FPaddingByte = 0 then
3024
    FPaddingByte := $01;
3025
  FDigest[0] := $89ABCDEF;
3026
  FDigest[1] := $01234567;
3027
  FDigest[2] := $76543210;
3028
  FDigest[3] := $FEDCBA98;
3029
  FDigest[4] := $C3B2E187;
3030
  FDigest[5] := $F096A5B4;
3031
end;
3032
3033
{$IFNDEF THash_Tiger_asm}
3034
procedure THash_Tiger.DoTransform(Buffer: PUInt32Array);
3035
type
3036
  PTiger_Data = ^TTiger_Data;
3037
  TTiger_Data = array[0..3, 0..255] of Int64;
3038
3039
  PInt64Array = ^TInt64Array;
3040
  TInt64Array = array[0..7] of Int64;
3041
3042
var
3043
  A, B, C, T: Int64;
3044
  x0, x1, x2, x3, x4, x5, x6, x7: UInt64;
3045
  I: Integer;
3046
begin
3047
  A  := PInt64Array(@FDigest)[0];
3048
  B  := PInt64Array(@FDigest)[1];
3049
  C  := PInt64Array(@FDigest)[2];
3050
  x0 := PInt64Array(Buffer)[0];
3051
  x1 := PInt64Array(Buffer)[1];
3052
  x2 := PInt64Array(Buffer)[2];
3053
  x3 := PInt64Array(Buffer)[3];
3054
  x4 := PInt64Array(Buffer)[4];
3055
  x5 := PInt64Array(Buffer)[5];
3056
  x6 := PInt64Array(Buffer)[6];
3057
  x7 := PInt64Array(Buffer)[7];
3058
3059
  for I := 1 to FRounds do // a Loop is faster for PC with small Cache
3060
  begin
3061
    if I > 1 then // Key Schedule
3062
    begin
3063
      Dec(x0, x7 xor $A5A5A5A5A5A5A5A5);
3064
      x1 := x1 xor x0;
3065
      Inc(x2, x1);
3066
      Dec(x3, x2 xor (not x1 shl 19));
3067
      x4 := x4 xor x3;
3068
      Inc(x5, x4);
3069
      Dec(x6, x5 xor (not x4 shr 23));
3070
      x7 := x7 xor x6;
3071
      Inc(x0, x7);
3072
      Dec(x1, x0 xor (not x7 shl 19));
3073
      x2 := x2 xor x1;
3074
      Inc(x3, x2);
3075
      Dec(x4, x3 xor (not x2 shr 23));
3076
      x5 := x5 xor x4;
3077
      Inc(x6, x5);
3078
      Dec(x7, x6 xor $0123456789ABCDEF);
3079
    end;
3080
3081
    C := C xor x0;
3082
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3083
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3084
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3085
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3086
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3087
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3088
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3089
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3090
3091
    if I = 1 then
3092
      B := B shl 2 + B
3093
    else
3094
    begin
3095
      if I = 2 then
3096
        B := B shl 3 - B
3097
      else
3098
        B := B shl 3 + B;
3099
    end;
3100
3101
    A := A xor x1;
3102
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3103
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3104
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3105
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3106
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3107
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3108
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3109
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3110
3111
    if I = 1 then
3112
      C := C shl 2 + C
3113
    else
3114
    begin
3115
      if I = 2 then
3116
        C := C shl 3 - C
3117
      else
3118
        C := C shl 3 + C;
3119
    end;
3120
3121
    B := B xor x2;
3122
    Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B)        and $FF] xor
3123
           TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor
3124
           TTiger_Data(Tiger_Data)[2,          B  shr 32 and $FF] xor
3125
           TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]);
3126
    Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr  8 and $FF] xor
3127
           TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor
3128
           TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor
3129
           TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]);
3130
3131
    if I = 1 then
3132
      A := A shl 2 + A
3133
    else
3134
    begin
3135
      if I = 2 then
3136
        A := A shl 3 - A
3137
      else
3138
        A := A shl 3 + A;
3139
    end;
3140
3141
    C := C xor x3;
3142
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3143
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3144
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3145
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3146
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3147
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3148
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3149
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3150
3151
    if I = 1 then
3152
      B := B shl 2 + B
3153
    else
3154
    begin
3155
      if I = 2 then
3156
        B := B shl 3 - B
3157
      else
3158
        B := B shl 3 + B;
3159
    end;
3160
3161
    A := A xor x4;
3162
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3163
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3164
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3165
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3166
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3167
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3168
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3169
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3170
3171
    if I = 1 then
3172
      C := C shl 2 + C
3173
    else
3174
    begin
3175
      if I = 2 then
3176
        C := C shl 3 - C
3177
      else
3178
        C := C shl 3 + C;
3179
    end;
3180
3181
    B := B xor x5;
3182
    Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B)        and $FF] xor
3183
           TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor
3184
           TTiger_Data(Tiger_Data)[2,          B  shr 32 and $FF] xor
3185
           TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]);
3186
    Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr  8 and $FF] xor
3187
           TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor
3188
           TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor
3189
           TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]);
3190
3191
    if I = 1 then
3192
      A := A shl 2 + A
3193
    else
3194
    begin
3195
      if I = 2 then
3196
        A := A shl 3 - A
3197
      else
3198
        A := A shl 3 + A;
3199
    end;
3200
3201
    C := C xor x6;
3202
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3203
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3204
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3205
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3206
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3207
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3208
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3209
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3210
3211
    if I = 1 then
3212
      B := B shl 2 + B
3213
    else
3214
    begin
3215
      if I = 2 then
3216
        B := B shl 3 - B
3217
      else
3218
        B := B shl 3 + B;
3219
    end;
3220
3221
    A := A xor x7;
3222
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3223
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3224
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3225
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3226
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3227
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3228
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3229
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3230
3231
    if I = 1 then
3232
      C := C shl 2 + C
3233
    else
3234
    begin
3235
      if I = 2 then
3236
        C := C shl 3 - C
3237
      else
3238
        C := C shl 3 + C;
3239
    end;
3240
3241
    T := A; A := C; C := B; B := T;
3242
  end;
3243
3244
  PInt64Array(@FDigest)[0] := A xor PInt64Array(@FDigest)[0];
3245
  PInt64Array(@FDigest)[1] := B  -  PInt64Array(@FDigest)[1];
3246
  PInt64Array(@FDigest)[2] := C  +  PInt64Array(@FDigest)[2];
3247
end;
3248
{$ENDIF}
3249
3250
function THash_Tiger.GetMaxRounds: UInt32;
3251
begin
3252
  Result := cTigerMaxRounds;
3253
end;
3254
3255
function THash_Tiger.GetMinRounds: UInt32;
3256
begin
3257
  Result := cTigerMinRounds;
3258
end;
3259
3260
function THash_Tiger.GetRounds: UInt32;
3261
begin
3262
  Result := FRounds;
3263
end;
3264
3265
class function THash_Tiger.DigestSize: UInt32;
3266
begin
3267
  Result := 24;
3268
end;
3269
3270
{ THash_Panama }
3271
3272
procedure THash_Panama.DoInit;
3273
begin
3274
  FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0);
3275
  FillChar(FDigest, SizeOf(FDigest), 0);
3276
  FTap := 0;
3277
end;
3278
3279
{$IFNDEF THash_Panama_asm}
3280
procedure THash_Panama.DoTransform(Buffer: PUInt32Array);
3281
var
3282
  T0, T1, T2, T3: UInt32;
3283
  PBufB, PTap0, PTap25: PUInt32Array;
3284
begin
3285
  // perform non-linearity stage (GAMMA)
3286
  T0 := FDigest[ 0];
3287
  T1 := FDigest[ 1];
3288
  FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]);
3289
  FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]);
3290
  FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]);
3291
  FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]);
3292
  FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]);
3293
  FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]);
3294
  FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]);
3295
  FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]);
3296
  FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]);
3297
  FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]);
3298
  FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]);
3299
  FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]);
3300
  FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]);
3301
  FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]);
3302
  FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]);
3303
  FDigest[15] := FDigest[15] xor (FDigest[16] or not T0);
3304
  FDigest[16] := FDigest[16] xor (T0 or not T1);
3305
3306
  // perform bit-dispersion stage (PI)
3307
  T0 := FDigest[ 1];
3308
  T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl  1) or (T1 shr 31);
3309
  T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17);
3310
  T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl  4) or (T1 shr 28);
3311
  T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11);
3312
  T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr  5);
3313
  T1 := FDigest[14]; FDigest[14] := (T0 shl  9) or (T0 shr 23);
3314
  T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl  3) or (T1 shr 29);
3315
  T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr  9);
3316
  T0 := FDigest[16]; FDigest[16] := (T1 shl  8) or (T1 shr 24);
3317
  T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18);
3318
  T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19);
3319
  T1 := FDigest[11]; FDigest[11] := (T0 shl  2) or (T0 shr 30);
3320
  T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22);
3321
  T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl  6) or (T0 shr 26);
3322
  T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr  8);
3323
  FDigest[ 7] := (T0 shl 28) or (T0 shr  4);
3324
3325
  // LFSR emulation
3326
  PBufB  := @FLFSRBuffer[(FTap + 16) and 31];
3327
  FTap   := (FTap - 1) and 31;
3328
  PTap0  := @FLFSRBuffer[FTap];
3329
  PTap25 := @FLFSRBuffer[(FTap + 25) and 31];
3330
3331
  // update the LFSR buffer (LAMBDA_PUSH)
3332
  PTap25[ 0] := PTap25[ 0] xor PTap0[ 2];
3333
  PTap25[ 1] := PTap25[ 1] xor PTap0[ 3];
3334
  PTap25[ 2] := PTap25[ 2] xor PTap0[ 4];
3335
  PTap25[ 3] := PTap25[ 3] xor PTap0[ 5];
3336
  PTap25[ 4] := PTap25[ 4] xor PTap0[ 6];
3337
  PTap25[ 5] := PTap25[ 5] xor PTap0[ 7];
3338
  PTap25[ 6] := PTap25[ 6] xor PTap0[ 0];
3339
  PTap25[ 7] := PTap25[ 7] xor PTap0[ 1];
3340
  PTap0[ 0] := PTap0[ 0] xor Buffer[ 0];
3341
  PTap0[ 1] := PTap0[ 1] xor Buffer[ 1];
3342
  PTap0[ 2] := PTap0[ 2] xor Buffer[ 2];
3343
  PTap0[ 3] := PTap0[ 3] xor Buffer[ 3];
3344
  PTap0[ 4] := PTap0[ 4] xor Buffer[ 4];
3345
  PTap0[ 5] := PTap0[ 5] xor Buffer[ 5];
3346
  PTap0[ 6] := PTap0[ 6] xor Buffer[ 6];
3347
  PTap0[ 7] := PTap0[ 7] xor Buffer[ 7];
3348
3349
  // perform diffusion stage (THETA) + buffer injection stage (SIGMA)
3350
  T0 := FDigest[ 0];
3351
  T1 := FDigest[ 1];
3352
  T2 := FDigest[ 2];
3353
  T3 := FDigest[ 3];
3354
3355
  FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1;
3356
  FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor Buffer[ 0];
3357
  FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor Buffer[ 1];
3358
  FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor Buffer[ 2];
3359
  FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor Buffer[ 3];
3360
  FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor Buffer[ 4];
3361
  FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor Buffer[ 5];
3362
  FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor Buffer[ 6];
3363
  FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor Buffer[ 7];
3364
3365
  FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0];
3366
  FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1];
3367
  FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2];
3368
  FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3];
3369
  FDigest[13] := FDigest[13] xor FDigest[14] xor T0          xor PBufB[ 4];
3370
  FDigest[14] := FDigest[14] xor FDigest[15] xor T1          xor PBufB[ 5];
3371
  FDigest[15] := FDigest[15] xor FDigest[16] xor T2          xor PBufB[ 6];
3372
  FDigest[16] := FDigest[16] xor T0          xor T3          xor PBufB[ 7];
3373
end;
3374
{$ENDIF !THash_Panama_asm}
3375
3376
procedure THash_Panama.DoDone;
3377
begin
3378
  if FPaddingByte = 0 then
3379
    FPaddingByte := $01;
3380
  FBuffer[FBufferIndex] := FPaddingByte;
3381
  Inc(FBufferIndex);
3382
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3383
  DoTransform(Pointer(FBuffer));
3384
  DoPull;
3385
  FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0);
3386
  FTap := 0;
3387
end;
3388
3389
{$IFNDEF THash_Panama_asm}
3390
procedure THash_Panama.DoPull;
3391
var
3392
  PBufL, PBufB, PTap0, PTap25: PUInt32Array;
3393
  T0, T1, T2, T3: UInt32;
3394
  I: Integer;
3395
begin
3396
  for I := 0 to 31 do
3397
  begin
3398
    // LFSR emulation
3399
    PBufL := @FLFSRBuffer[(FTap +  4) and 31];
3400
    PBufB := @FLFSRBuffer[(FTap + 16) and 31];
3401
    FTap := (FTap - 1) and 31;
3402
    PTap0  := @FLFSRBuffer[FTap];
3403
    PTap25 := @FLFSRBuffer[(FTap + 25) and 31];
3404
3405
    // update the LFSR buffer (LAMBDA_PULL)
3406
    PTap25[ 0] := PTap25[ 0] xor PTap0[ 2];
3407
    PTap25[ 1] := PTap25[ 1] xor PTap0[ 3];
3408
    PTap25[ 2] := PTap25[ 2] xor PTap0[ 4];
3409
    PTap25[ 3] := PTap25[ 3] xor PTap0[ 5];
3410
    PTap25[ 4] := PTap25[ 4] xor PTap0[ 6];
3411
    PTap25[ 5] := PTap25[ 5] xor PTap0[ 7];
3412
    PTap25[ 6] := PTap25[ 6] xor PTap0[ 0];
3413
    PTap25[ 7] := PTap25[ 7] xor PTap0[ 1];
3414
    PTap0[ 0] := PTap0[ 0] xor FDigest[ 1];
3415
    PTap0[ 1] := PTap0[ 1] xor FDigest[ 2];
3416
    PTap0[ 2] := PTap0[ 2] xor FDigest[ 3];
3417
    PTap0[ 3] := PTap0[ 3] xor FDigest[ 4];
3418
    PTap0[ 4] := PTap0[ 4] xor FDigest[ 5];
3419
    PTap0[ 5] := PTap0[ 5] xor FDigest[ 6];
3420
    PTap0[ 6] := PTap0[ 6] xor FDigest[ 7];
3421
    PTap0[ 7] := PTap0[ 7] xor FDigest[ 8];
3422
3423
    // perform non-linearity stage (GAMMA)
3424
    T0 := FDigest[ 0];
3425
    T1 := FDigest[ 1];
3426
    FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]);
3427
    FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]);
3428
    FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]);
3429
    FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]);
3430
    FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]);
3431
    FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]);
3432
    FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]);
3433
    FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]);
3434
    FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]);
3435
    FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]);
3436
    FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]);
3437
    FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]);
3438
    FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]);
3439
    FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]);
3440
    FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]);
3441
    FDigest[15] := FDigest[15] xor (FDigest[16] or not T0);
3442
    FDigest[16] := FDigest[16] xor (T0 or not T1);
3443
3444
    // perform bit-dispersion stage (PI)
3445
    T0 := FDigest[ 1];
3446
    T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl  1) or (T1 shr 31);
3447
    T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17);
3448
    T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl  4) or (T1 shr 28);
3449
    T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11);
3450
    T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr  5);
3451
    T1 := FDigest[14]; FDigest[14] := (T0 shl  9) or (T0 shr 23);
3452
    T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl  3) or (T1 shr 29);
3453
    T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr  9);
3454
    T0 := FDigest[16]; FDigest[16] := (T1 shl  8) or (T1 shr 24);
3455
    T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18);
3456
    T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19);
3457
    T1 := FDigest[11]; FDigest[11] := (T0 shl  2) or (T0 shr 30);
3458
    T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22);
3459
    T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl  6) or (T0 shr 26);
3460
    T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr  8);
3461
    FDigest[ 7] := (T0 shl 28) or (T0 shr  4);
3462
3463
    // perform diffusion stage (THETA) + buffer injection stage (SIGMA)
3464
    T0 := FDigest[ 0];
3465
    T1 := FDigest[ 1];
3466
    T2 := FDigest[ 2];
3467
    T3 := FDigest[ 3];
3468
    FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1;
3469
    FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor PBufL[ 0];
3470
    FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor PBufL[ 1];
3471
    FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor PBufL[ 2];
3472
    FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor PBufL[ 3];
3473
    FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor PBufL[ 4];
3474
    FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor PBufL[ 5];
3475
    FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor PBufL[ 6];
3476
    FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor PBufL[ 7];
3477
    FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0];
3478
    FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1];
3479
    FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2];
3480
    FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3];
3481
    FDigest[13] := FDigest[13] xor FDigest[14] xor T0          xor PBufB[ 4];
3482
    FDigest[14] := FDigest[14] xor FDigest[15] xor T1          xor PBufB[ 5];
3483
    FDigest[15] := FDigest[15] xor FDigest[16] xor T2          xor PBufB[ 6];
3484
    FDigest[16] := FDigest[16] xor T0 xor T3                   xor PBufB[ 7];
3485
  end;
3486
3487
  // move state to Digest buffer
3488
  FDigest[0] := FDigest[ 9];
3489
  FDigest[1] := FDigest[10];
3490
  FDigest[2] := FDigest[11];
3491
  FDigest[3] := FDigest[12];
3492
  FDigest[4] := FDigest[13];
3493
  FDigest[5] := FDigest[14];
3494
  FDigest[6] := FDigest[15];
3495
  FDigest[7] := FDigest[16];
3496
end;
3497
{$ENDIF !THash_Panama_asm}
3498
3499
function THash_Panama.Digest: PByteArray;
3500
begin
3501
  Result := @FDigest;
3502
end;
3503
3504
class function THash_Panama.DigestSize: UInt32;
3505
begin
3506
  Result := 32;
3507
end;
3508
3509
class function THash_Panama.BlockSize: UInt32;
3510
begin
3511
  Result := 32
3512
end;
3513
3514
{ THashBaseWhirlpool }
3515
3516
{$IFNDEF THashBaseWhirlpool_asm}
3517
procedure THashBaseWhirlpool.DoTransform(Buffer: PUInt32Array);
3518
type
3519
  PWhirlData = ^TWhirlData;
3520
  TWhirlData = array[0..15] of UInt32;
3521
  PWhirlTable = ^TWhirlTable;
3522
  TWhirlTable = array[0..7, 0..511] of UInt32;
3523
3524
  procedure Whirl(var L: TWhirlData; const K: TWhirlData; const T: PWhirlTable);
3525
  begin
3526
    L[0*2+0] := T[0, ((K[ 0] shl  1) and $1fe)] xor
3527
                T[1, ((K[14] shr  7) and $1fe)] xor
3528
                T[2, ((K[12] shr 15) and $1fe)] xor
3529
                T[3, ((K[10] shr 23) and $1fe)] xor
3530
                T[4, ((K[ 9] shl  1) and $1fe)] xor
3531
                T[5, ((K[ 7] shr  7) and $1fe)] xor
3532
                T[6, ((K[ 5] shr 15) and $1fe)] xor
3533
                T[7, ((K[ 3] shr 23) and $1fe)];
3534
    L[0*2+1] := T[0, ((K[ 0] shl  1) and $1fe)+1] xor
3535
                T[1, ((K[14] shr  7) and $1fe)+1] xor
3536
                T[2, ((K[12] shr 15) and $1fe)+1] xor
3537
                T[3, ((K[10] shr 23) and $1fe)+1] xor
3538
                T[4, ((K[ 9] shl  1) and $1fe)+1] xor
3539
                T[5, ((K[ 7] shr  7) and $1fe)+1] xor
3540
                T[6, ((K[ 5] shr 15) and $1fe)+1] xor
3541
                T[7, ((K[ 3] shr 23) and $1fe)+1];
3542
    L[1*2+0] := T[0, ((K[ 2] shl  1) and $1fe)] xor
3543
                T[1, ((K[ 0] shr  7) and $1fe)] xor
3544
                T[2, ((K[14] shr 15) and $1fe)] xor
3545
                T[3, ((K[12] shr 23) and $1fe)] xor
3546
                T[4, ((K[11] shl  1) and $1fe)] xor
3547
                T[5, ((K[ 9] shr  7) and $1fe)] xor
3548
                T[6, ((K[ 7] shr 15) and $1fe)] xor
3549
                T[7, ((K[ 5] shr 23) and $1fe)];
3550
    L[1*2+1] := T[0, ((K[ 2] shl  1) and $1fe)+1] xor
3551
                T[1, ((K[ 0] shr  7) and $1fe)+1] xor
3552
                T[2, ((K[14] shr 15) and $1fe)+1] xor
3553
                T[3, ((K[12] shr 23) and $1fe)+1] xor
3554
                T[4, ((K[11] shl  1) and $1fe)+1] xor
3555
                T[5, ((K[ 9] shr  7) and $1fe)+1] xor
3556
                T[6, ((K[ 7] shr 15) and $1fe)+1] xor
3557
                T[7, ((K[ 5] shr 23) and $1fe)+1];
3558
    L[2*2+0] := T[0, ((K[ 4] shl  1) and $1fe)] xor
3559
                T[1, ((K[ 2] shr  7) and $1fe)] xor
3560
                T[2, ((K[ 0] shr 15) and $1fe)] xor
3561
                T[3, ((K[14] shr 23) and $1fe)] xor
3562
                T[4, ((K[13] shl  1) and $1fe)] xor
3563
                T[5, ((K[11] shr  7) and $1fe)] xor
3564
                T[6, ((K[ 9] shr 15) and $1fe)] xor
3565
                T[7, ((K[ 7] shr 23) and $1fe)];
3566
    L[2*2+1] := T[0, ((K[ 4] shl  1) and $1fe)+1] xor
3567
                T[1, ((K[ 2] shr  7) and $1fe)+1] xor
3568
                T[2, ((K[ 0] shr 15) and $1fe)+1] xor
3569
                T[3, ((K[14] shr 23) and $1fe)+1] xor
3570
                T[4, ((K[13] shl  1) and $1fe)+1] xor
3571
                T[5, ((K[11] shr  7) and $1fe)+1] xor
3572
                T[6, ((K[ 9] shr 15) and $1fe)+1] xor
3573
                T[7, ((K[ 7] shr 23) and $1fe)+1];
3574
    L[3*2+0] := T[0, ((K[ 6] shl  1) and $1fe)] xor
3575
                T[1, ((K[ 4] shr  7) and $1fe)] xor
3576
                T[2, ((K[ 2] shr 15) and $1fe)] xor
3577
                T[3, ((K[ 0] shr 23) and $1fe)] xor
3578
                T[4, ((K[15] shl  1) and $1fe)] xor
3579
                T[5, ((K[13] shr  7) and $1fe)] xor
3580
                T[6, ((K[11] shr 15) and $1fe)] xor
3581
                T[7, ((K[ 9] shr 23) and $1fe)];
3582
    L[3*2+1] := T[0, ((K[ 6] shl  1) and $1fe)+1] xor
3583
                T[1, ((K[ 4] shr  7) and $1fe)+1] xor
3584
                T[2, ((K[ 2] shr 15) and $1fe)+1] xor
3585
                T[3, ((K[ 0] shr 23) and $1fe)+1] xor
3586
                T[4, ((K[15] shl  1) and $1fe)+1] xor
3587
                T[5, ((K[13] shr  7) and $1fe)+1] xor
3588
                T[6, ((K[11] shr 15) and $1fe)+1] xor
3589
                T[7, ((K[ 9] shr 23) and $1fe)+1];
3590
    L[4*2+0] := T[0, ((K[ 8] shl  1) and $1fe)] xor
3591
                T[1, ((K[ 6] shr  7) and $1fe)] xor
3592
                T[2, ((K[ 4] shr 15) and $1fe)] xor
3593
                T[3, ((K[ 2] shr 23) and $1fe)] xor
3594
                T[4, ((K[ 1] shl  1) and $1fe)] xor
3595
                T[5, ((K[15] shr  7) and $1fe)] xor
3596
                T[6, ((K[13] shr 15) and $1fe)] xor
3597
                T[7, ((K[11] shr 23) and $1fe)];
3598
    L[4*2+1] := T[0, ((K[ 8] shl  1) and $1fe)+1] xor
3599
                T[1, ((K[ 6] shr  7) and $1fe)+1] xor
3600
                T[2, ((K[ 4] shr 15) and $1fe)+1] xor
3601
                T[3, ((K[ 2] shr 23) and $1fe)+1] xor
3602
                T[4, ((K[ 1] shl  1) and $1fe)+1] xor
3603
                T[5, ((K[15] shr  7) and $1fe)+1] xor
3604
                T[6, ((K[13] shr 15) and $1fe)+1] xor
3605
                T[7, ((K[11] shr 23) and $1fe)+1];
3606
    L[5*2+0] := T[0, ((K[10] shl  1) and $1fe)] xor
3607
                T[1, ((K[ 8] shr  7) and $1fe)] xor
3608
                T[2, ((K[ 6] shr 15) and $1fe)] xor
3609
                T[3, ((K[ 4] shr 23) and $1fe)] xor
3610
                T[4, ((K[ 3] shl  1) and $1fe)] xor
3611
                T[5, ((K[ 1] shr  7) and $1fe)] xor
3612
                T[6, ((K[15] shr 15) and $1fe)] xor
3613
                T[7, ((K[13] shr 23) and $1fe)];
3614
    L[5*2+1] := T[0, ((K[10] shl  1) and $1fe)+1] xor
3615
                T[1, ((K[ 8] shr  7) and $1fe)+1] xor
3616
                T[2, ((K[ 6] shr 15) and $1fe)+1] xor
3617
                T[3, ((K[ 4] shr 23) and $1fe)+1] xor
3618
                T[4, ((K[ 3] shl  1) and $1fe)+1] xor
3619
                T[5, ((K[ 1] shr  7) and $1fe)+1] xor
3620
                T[6, ((K[15] shr 15) and $1fe)+1] xor
3621
                T[7, ((K[13] shr 23) and $1fe)+1];
3622
    L[6*2+0] := T[0, ((K[12] shl  1) and $1fe)] xor
3623
                T[1, ((K[10] shr  7) and $1fe)] xor
3624
                T[2, ((K[ 8] shr 15) and $1fe)] xor
3625
                T[3, ((K[ 6] shr 23) and $1fe)] xor
3626
                T[4, ((K[ 5] shl  1) and $1fe)] xor
3627
                T[5, ((K[ 3] shr  7) and $1fe)] xor
3628
                T[6, ((K[ 1] shr 15) and $1fe)] xor
3629
                T[7, ((K[15] shr 23) and $1fe)];
3630
    L[6*2+1] := T[0, ((K[12] shl  1) and $1fe)+1] xor
3631
                T[1, ((K[10] shr  7) and $1fe)+1] xor
3632
                T[2, ((K[ 8] shr 15) and $1fe)+1] xor
3633
                T[3, ((K[ 6] shr 23) and $1fe)+1] xor
3634
                T[4, ((K[ 5] shl  1) and $1fe)+1] xor
3635
                T[5, ((K[ 3] shr  7) and $1fe)+1] xor
3636
                T[6, ((K[ 1] shr 15) and $1fe)+1] xor
3637
                T[7, ((K[15] shr 23) and $1fe)+1];
3638
    L[7*2+0] := T[0, ((K[14] shl  1) and $1fe)] xor
3639
                T[1, ((K[12] shr  7) and $1fe)] xor
3640
                T[2, ((K[10] shr 15) and $1fe)] xor
3641
                T[3, ((K[ 8] shr 23) and $1fe)] xor
3642
                T[4, ((K[ 7] shl  1) and $1fe)] xor
3643
                T[5, ((K[ 5] shr  7) and $1fe)] xor
3644
                T[6, ((K[ 3] shr 15) and $1fe)] xor
3645
                T[7, ((K[ 1] shr 23) and $1fe)];
3646
    L[7*2+1] := T[0, ((K[14] shl  1) and $1fe)+1] xor
3647
                T[1, ((K[12] shr  7) and $1fe)+1] xor
3648
                T[2, ((K[10] shr 15) and $1fe)+1] xor
3649
                T[3, ((K[ 8] shr 23) and $1fe)+1] xor
3650
                T[4, ((K[ 7] shl  1) and $1fe)+1] xor
3651
                T[5, ((K[ 5] shr  7) and $1fe)+1] xor
3652
                T[6, ((K[ 3] shr 15) and $1fe)+1] xor
3653
                T[7, ((K[ 1] shr 23) and $1fe)+1];
3654
  end;
3655
3656
var
3657
  S, L, K: TWhirlData;
3658
  I: Integer;
3659
begin
3660
  Assert(not Odd(Whirlpool_Rounds));
3661
3662
  Move(FDigest, K, SizeOf(FDigest));
3663
  XORBuffers(FDigest, Buffer[0], SizeOf(FDigest), S);
3664
3665
  // iterate over all rounds
3666
  for I := 0 to Whirlpool_Rounds div 2 - 1 do
3667
  begin
3668
    Whirl(L, K, FTableC);
3669
    L[0] := L[0] xor PUInt32Array(FTableR)[I*4+0];
3670
    L[1] := L[1] xor PUInt32Array(FTableR)[I*4+1];
3671
    Whirl(K, S, FTableC);
3672
    XORBuffers(L, K, SizeOf(S), S);
3673
3674
    Whirl(K, L, FTableC);
3675
    K[0] := K[0] xor PUInt32Array(FTableR)[I*4+2];
3676
    K[1] := K[1] xor PUInt32Array(FTableR)[I*4+3];
3677
    Whirl(L, S, FTableC);
3678
    XORBuffers(K, L, SizeOf(S), S);
3679
  end;
3680
3681
  XORBuffers(S, Buffer[0], SizeOf(FDigest), S);
3682
  XORBuffers(S, FDigest, SizeOf(FDigest), FDigest);
3683
end;
3684
{$ENDIF !THashBaseWhirlpool_asm}
3685
3686
procedure THashBaseWhirlpool.DoDone;
3687
var
3688
  I: Integer;
3689
begin
3690
  if FPaddingByte = 0 then
3691
    FPaddingByte := $80;
3692
  FBuffer[FBufferIndex] := FPaddingByte;
3693
  Inc(FBufferIndex);
3694
  if FBufferIndex > FBufferSize - 32 then
3695
  begin
3696
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3697
    DoTransform(Pointer(FBuffer));
3698
    FBufferIndex := 0;
3699
  end;
3700
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3701
  for I := 31 downto 0 do
3702
    FBuffer[63 - I] := PByteArray(@FCount)[I];
3703
  DoTransform(Pointer(FBuffer));
3704
end;
3705
3706
function THashBaseWhirlpool.Digest: PByteArray;
3707
begin
3708
  Result := @FDigest;
3709
end;
3710
3711
class function THashBaseWhirlpool.DigestSize: UInt32;
3712
begin
3713
  Result := 64;
3714
end;
3715
3716
class function THashBaseWhirlpool.BlockSize: UInt32;
3717
begin
3718
  Result := 64;
3719
end;
3720
3721
{ THash_Whirlpool0 }
3722
3723
procedure THash_Whirlpool0.DoInit;
3724
begin
3725
  FillChar(FDigest, SizeOf(FDigest), 0);
3726
  FTableC := @Whirlpool_C_U;
3727
  FTableR := @Whirlpool_RC_U
3728
end;
3729
3730
{ THash_WhirlpoolT }
3731
3732
procedure THash_WhirlpoolT.DoInit;
3733
begin
3734
  FillChar(FDigest, SizeOf(FDigest), 0);
3735
  FTableC := @Whirlpool_C_T;
3736
  FTableR := @Whirlpool_RC_T;
3737
end;
3738
3739
{ THash_Whirlpool1_ }
3740
3741
procedure THash_Whirlpool1_.DoInit;
3742
begin
3743
  FillChar(FDigest, SizeOf(FDigest), 0);
3744
  FTableC := @Whirlpool_C_1;
3745
  FTableR := @Whirlpool_RC_1;
3746
end;
3747
3748
{ THash_Square }
3749
3750
procedure THash_Square.DoInit;
3751
begin
3752
  FillChar(FDigest, SizeOf(FDigest), 0);
3753
end;
3754
3755
{$IFNDEF THash_Square_asm}
3756
procedure THash_Square.DoTransform(Buffer: PUInt32Array);
3757
var
3758
  Key: array[0..8, 0..3] of UInt32;
3759
  A, B, C, D: UInt32;
3760
  AA, BB, CC, DD: UInt32;
3761
  I: Integer;
3762
begin
3763
  // Build and expand the Key, Digest include the Key
3764
  Key[0, 0] := FDigest[0];
3765
  Key[0, 1] := FDigest[1];
3766
  Key[0, 2] := FDigest[2];
3767
  Key[0, 3] := FDigest[3];
3768
3769
  for I := 1 to 8 do
3770
  begin
3771
    Key[I, 0] := Key[I - 1, 0] xor Key[I - 1, 3] shr 8 xor Key[I - 1, 3] shl 24 xor 1 shl (I - 1);
3772
    Key[I, 1] := Key[I - 1, 1] xor Key[I, 0];
3773
    Key[I, 2] := Key[I - 1, 2] xor Key[I, 1];
3774
    Key[I, 3] := Key[I - 1, 3] xor Key[I, 2];
3775
3776
    Key[I - 1, 0] := Square_PHIr[0, Key[I - 1, 0]        and $FF] xor
3777
                     Square_PHIr[1, Key[I - 1, 0] shr  8 and $FF] xor
3778
                     Square_PHIr[2, Key[I - 1, 0] shr 16 and $FF] xor
3779
                     Square_PHIr[3, Key[I - 1, 0] shr 24        ];
3780
    Key[I - 1, 1] := Square_PHIr[0, Key[I - 1, 1]        and $FF] xor
3781
                     Square_PHIr[1, Key[I - 1, 1] shr  8 and $FF] xor
3782
                     Square_PHIr[2, Key[I - 1, 1] shr 16 and $FF] xor
3783
                     Square_PHIr[3, Key[I - 1, 1] shr 24        ];
3784
    Key[I - 1, 2] := Square_PHIr[0, Key[I - 1, 2]        and $FF] xor
3785
                     Square_PHIr[1, Key[I - 1, 2] shr  8 and $FF] xor
3786
                     Square_PHIr[2, Key[I - 1, 2] shr 16 and $FF] xor
3787
                     Square_PHIr[3, Key[I - 1, 2] shr 24        ];
3788
    Key[I - 1, 3] := Square_PHIr[0, Key[I - 1, 3]        and $FF] xor
3789
                     Square_PHIr[1, Key[I - 1, 3] shr  8 and $FF] xor
3790
                     Square_PHIr[2, Key[I - 1, 3] shr 16 and $FF] xor
3791
                     Square_PHIr[3, Key[I - 1, 3] shr 24        ];
3792
  end;
3793
3794
  // Encrypt begin here, same TCipher_Square.Encode
3795
  A := Buffer[0] xor Key[0, 0];
3796
  B := Buffer[1] xor Key[0, 1];
3797
  C := Buffer[2] xor Key[0, 2];
3798
  D := Buffer[3] xor Key[0, 3];
3799
3800
  for I := 0 to 6 do
3801
  begin
3802
    AA := Square_TE[0, A        and $FF] xor
3803
          Square_TE[1, B        and $FF] xor
3804
          Square_TE[2, C        and $FF] xor
3805
          Square_TE[3, D        and $FF] xor Key[I + 1, 0];
3806
    BB := Square_TE[0, A shr  8 and $FF] xor
3807
          Square_TE[1, B shr  8 and $FF] xor
3808
          Square_TE[2, C shr  8 and $FF] xor
3809
          Square_TE[3, D shr  8 and $FF] xor Key[I + 1, 1];
3810
    CC := Square_TE[0, A shr 16 and $FF] xor
3811
          Square_TE[1, B shr 16 and $FF] xor
3812
          Square_TE[2, C shr 16 and $FF] xor
3813
          Square_TE[3, D shr 16 and $FF] xor Key[I + 1, 2];
3814
    DD := Square_TE[0, A shr 24        ] xor
3815
          Square_TE[1, B shr 24        ] xor
3816
          Square_TE[2, C shr 24        ] xor
3817
          Square_TE[3, D shr 24        ] xor Key[I + 1, 3];
3818
3819
    A := AA; B := BB; C := CC; D := DD;
3820
  end;
3821
3822
  FDigest[0] := Buffer[0] xor
3823
                Square_SEint[A        and $FF]        xor
3824
                Square_SEint[B        and $FF] shl  8 xor
3825
                Square_SEint[C        and $FF] shl 16 xor
3826
                Square_SEint[D        and $FF] shl 24 xor Key[8, 0];
3827
  FDigest[1] := Buffer[1] xor
3828
                Square_SEint[A shr  8 and $FF]        xor
3829
                Square_SEint[B shr  8 and $FF] shl  8 xor
3830
                Square_SEint[C shr  8 and $FF] shl 16 xor
3831
                Square_SEint[D shr  8 and $FF] shl 24 xor Key[8, 1];
3832
  FDigest[2] := Buffer[2] xor
3833
                Square_SEint[A shr 16 and $FF]        xor
3834
                Square_SEint[B shr 16 and $FF] shl  8 xor
3835
                Square_SEint[C shr 16 and $FF] shl 16 xor
3836
                Square_SEint[D shr 16 and $FF] shl 24 xor Key[8, 2];
3837
  FDigest[3] := Buffer[3] xor
3838
                Square_SEint[A shr 24        ]        xor
3839
                Square_SEint[B shr 24        ] shl  8 xor
3840
                Square_SEint[C shr 24        ] shl 16 xor
3841
                Square_SEint[D shr 24        ] shl 24 xor Key[8, 3];
3842
end;
3843
{$ENDIF !THash_Square_asm}
3844
3845
procedure THash_Square.DoDone;
3846
var
3847
  I: Integer;
3848
begin
3849
  if FPaddingByte = 0 then
3850
    FPaddingByte := $80;
3851
  FBuffer[FBufferIndex] := FPaddingByte;
3852
  Inc(FBufferIndex);
3853
  if FBufferIndex > FBufferSize - 8 then
3854
  begin
3855
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3856
    DoTransform(Pointer(FBuffer));
3857
    FBufferIndex := 0;
3858
  end;
3859
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3860
  for I := 7 downto 0 do
3861
    FBuffer[15 - I] := PByteArray(@FCount[0])[I];
3862
  DoTransform(Pointer(FBuffer));
3863
end;
3864
3865
function THash_Square.Digest: PByteArray;
3866
begin
3867
  Result := @FDigest;
3868
end;
3869
3870
class function THash_Square.DigestSize: UInt32;
3871
begin
3872
  Result := 16;
3873
end;
3874
3875
class function THash_Square.BlockSize: UInt32;
3876
begin
3877
  Result := 16;
3878
end;
3879
3880
{ THashBaseSnefru }
3881
3882
procedure THashBaseSnefru.SetRounds(Value: UInt32);
3883
begin
3884
  if (Value < 2) or (Value > 8) then
3885
    Value := 8;
3886
  FRounds := Value;
3887
end;
3888
3889
procedure THashBaseSnefru.DoInit;
3890
begin
3891
  FillChar(FDigest, SizeOf(FDigest), 0);
3892
  SetRounds(FRounds);
3893
end;
3894
3895
function THashBaseSnefru.GetMaxRounds: UInt32;
3896
begin
3897
  Result := 8;
3898
end;
3899
3900
function THashBaseSnefru.GetMinRounds: UInt32;
3901
begin
3902
  Result := 2;
3903
end;
3904
3905
function THashBaseSnefru.GetRounds: UInt32;
3906
begin
3907
  Result := FRounds;
3908
end;
3909
3910
procedure THashBaseSnefru.DoDone;
3911
begin
3912
  if FBufferIndex > 0 then
3913
  begin
3914
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3915
    DoTransform(Pointer(FBuffer));
3916
    FBufferIndex := 0;
3917
  end;
3918
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3919
  PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]);
3920
  PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]);
3921
  DoTransform(Pointer(FBuffer));
3922
  SwapUInt32Buffer(FDigest, FDigest, 8);
3923
end;
3924
3925
function THashBaseSnefru.Digest: PByteArray;
3926
begin
3927
  Result := @FDigest;
3928
end;
3929
3930
{ THash_Snefru128 }
3931
3932
{$IFNDEF THash_Snefru128_asm}
3933
procedure THash_Snefru128.DoTransform(Buffer: PUInt32Array);
3934
const
3935
  ShiftTable: array[0..3] of Integer = (16, 8, 16, 24);
3936
var
3937
  I, Index, ByteInWord, T, N, S, S0, S1: UInt32;
3938
  D, Box0, Box1: PUInt32Array;
3939
begin
3940
  D := @FDigest;
3941
  SwapUInt32Buffer(Buffer[0], D[4], 12);
3942
  Move(D[0], D[16], 16);
3943
  Box0 := @Snefru_Data[0];
3944
  Box1 := @Snefru_Data[1];
3945
  for Index := 0 to FRounds - 1 do
3946
  begin
3947
    for ByteInWord := 0 to 3 do
3948
    begin
3949
      I := 0;
3950
      N := D[0];
3951
      while I < 16 do
3952
      begin
3953
        S0 := Box0[N and $FF];
3954
        T := (I +  1) and 15;    N := D[T] xor S0; D[T] := N;
3955
        T := (I + 15) and 15; D[T] := D[T] xor S0;
3956
        S1 := Box0[N and $FF];
3957
        T := (I +  2) and 15;    N := D[T] xor S1; D[T] := N;
3958
        T := (I + 16) and 15; D[T] := D[T] xor S1;
3959
        S0 := Box1[N and $FF];
3960
        T := (I +  3) and 15;    N := D[T] xor S0; D[T] := N;
3961
        T := (I + 17) and 15; D[T] := D[T] xor S0;
3962
        S1 := Box1[N and $FF];
3963
        T := (I +  4) and 15;    N := D[T] xor S1; D[T] := N;
3964
        T := (I + 18) and 15; D[T] := D[T] xor S1;
3965
        Inc(I, 4);
3966
      end;
3967
      T := ShiftTable[ByteInWord];
3968
      S := 32 - T;
3969
      for I := 0 to 15 do
3970
        D[I] := D[I] shr T or D[I] shl S;
3971
    end;
3972
    Box0 := @Box0[512];
3973
    Box1 := @Box1[512];
3974
  end;
3975
  for I := 0 to 3 do
3976
    D[I] := D[I + 16] xor D[15 - I];
3977
end;
3978
{$ENDIF !THash_Snefru128_asm}
3979
3980
class function THash_Snefru128.DigestSize: UInt32;
3981
begin
3982
  Result := 16;
3983
end;
3984
3985
class function THash_Snefru128.BlockSize: UInt32;
3986
begin
3987
  Result := 48
3988
end;
3989
3990
{ THash_Snefru256 }
3991
3992
{$IFNDEF THash_Snefru256_asm}
3993
procedure THash_Snefru256.DoTransform(Buffer: PUInt32Array);
3994
const
3995
  ShiftTable: array[0..3] of Integer = (16, 8, 16, 24);
3996
var
3997
  I, Index, ByteInWord, T, N, S, S0, S1: UInt32;
3998
  D, Box0, Box1: PUInt32Array;
3999
begin
4000
  D := @FDigest;
4001
  SwapUInt32Buffer(Buffer[0], D[8], 8);
4002
  Move(D[0], D[16], 32);
4003
  Box0 := @Snefru_Data[0];
4004
  Box1 := @Snefru_Data[1];
4005
  for Index := 0 to FRounds - 1 do
4006
  begin
4007
    for ByteInWord := 0 to 3 do
4008
    begin
4009
      I := 0;
4010
      N := D[0];
4011
      while I < 16 do
4012
      begin
4013
        S0 := Box0[N and $FF];
4014
        T := (I +  1) and 15;    N := D[T] xor S0; D[T] := N;
4015
        T := (I + 15) and 15; D[T] := D[T] xor S0;
4016
        S1 := Box0[N and $FF];
4017
        T := (I +  2) and 15;    N := D[T] xor S1; D[T] := N;
4018
        T := (I + 16) and 15; D[T] := D[T] xor S1;
4019
        S0 := Box1[N and $FF];
4020
        T := (I +  3) and 15;    N := D[T] xor S0; D[T] := N;
4021
        T := (I + 17) and 15; D[T] := D[T] xor S0;
4022
        S1 := Box1[N and $FF];
4023
        T := (I +  4) and 15;    N := D[T] xor S1; D[T] := N;
4024
        T := (I + 18) and 15; D[T] := D[T] xor S1;
4025
        Inc(I, 4);
4026
      end;
4027
      T := ShiftTable[ByteInWord];
4028
      S := 32 - T;
4029
      for I := 0 to 15 do
4030
        D[I] := D[I] shr T or D[I] shl S;
4031
    end;
4032
    Box0 := @Box0[512];
4033
    Box1 := @Box1[512];
4034
  end;
4035
  for I := 0 to 7 do
4036
    D[I] := D[I + 16] xor D[15 - I];
4037
end;
4038
{$ENDIF !THash_Snefru256_asm}
4039
4040
class function THash_Snefru256.DigestSize: UInt32;
4041
begin
4042
  Result := 32;
4043
end;
4044
4045
class function THash_Snefru256.BlockSize: UInt32;
4046
begin
4047
  Result := 32
4048
end;
4049
4050
{ THash_Sapphire }
4051
4052
procedure THash_Sapphire.DoInit;
4053
var
4054
  I: Integer;
4055
begin
4056
  FillChar(FDigest, SizeOf(FDigest), 0);
4057
  FRotor := 1;
4058
  FRatchet := 3;
4059
  FAvalanche := 5;
4060
  FPlain := 7;
4061
  FCipher := 11;
4062
  for I := 0 to 255 do
4063
    FCards[I] := 255 - I;
4064
end;
4065
4066
procedure THash_Sapphire.DoTransform(Buffer: PUInt32Array);
4067
begin
4068
  // Empty on purpose: the base class for the hashes declares an abstract
4069
  // DoTransform method and not providing an override for it would cause a
4070
  // compiler warning
4071
end;
4072
4073
procedure THash_Sapphire.SetDigestSize(Value: UInt8);
4074
begin
4075
  if (Value >= 1) and (Value <= 64) then
4076
    FDigestSize := Value
4077
  else
4078
    FDigestSize := DigestSize;
4079
end;
4080
4081
procedure THash_Sapphire.DoDone;
4082
var
4083
  I: Integer;
4084
begin
4085
  for I := 255 downto 0 do
4086
    Calc(I, 1);
4087
  for I := 0 to DigestSize - 1 do
4088
  begin
4089
    Calc(#0#0, 1);
4090
    PByteArray(@FDigest)[I] := FCipher;
4091
  end;
4092
end;
4093
4094
{$IFNDEF THash_Sapphire_asm}
4095
procedure THash_Sapphire.Calc(const Data; DataSize: Integer);
4096
var
4097
  Cipher, Ratchet, Rotor, Plain, Avalanche, T: UInt32;
4098
  D: PByte;
4099
begin
4100
  D         := @Data;
4101
  Cipher    := FCipher;
4102
  Ratchet   := FRatchet;
4103
  Rotor     := FRotor;
4104
  Plain     := FPlain;
4105
  Avalanche := FAvalanche;
4106
4107
  while DataSize > 0 do
4108
  begin
4109
    Dec(DataSize);
4110
    Ratchet := (Ratchet + FCards[Rotor]) and $FF;
4111
    Rotor := (Rotor + 1) and $FF;
4112
    T := FCards[Cipher];
4113
    FCards[Cipher] := FCards[Ratchet];
4114
    FCards[Ratchet] := FCards[Plain];
4115
    FCards[Plain] := FCards[Rotor];
4116
    FCards[Rotor] := T;
4117
    Avalanche := (Avalanche + FCards[T]) and $FF;
4118
    T := (FCards[Plain] + FCards[Cipher] + FCards[Avalanche]) and $FF;
4119
    Plain := D^; Inc(D);
4120
    Cipher := Plain xor FCards[FCards[T]] xor FCards[(FCards[Ratchet] + FCards[Rotor]) and $FF];
4121
  end;
4122
4123
  FCipher    := Cipher;
4124
  FRatchet   := Ratchet;
4125
  FRotor     := Rotor;
4126
  FPlain     := Plain;
4127
  FAvalanche := Avalanche;
4128
end;
4129
{$ENDIF !THash_Sapphire_asm}
4130
4131
function THash_Sapphire.Digest: PByteArray;
4132
begin
4133
  Result := @FDigest;
4134
end;
4135
4136
function THash_Sapphire.DigestAsBytes: TBytes;
4137
var
4138
  Size: Integer;
4139
begin
4140
  if FDigestSize > 0 then
4141
    Size := FDigestSize
4142
  else
4143
    Size := DigestSize;
4144
4145
  SetLength(Result, Size);
4146
  if Size <> 0 then
4147
    Move(FDigest, Result[0], Size);
4148
end;
4149
4150
class function THash_Sapphire.DigestSize: UInt32;
4151
begin
4152
  Result := 64;
4153
end;
4154
4155
class function THash_Sapphire.BlockSize: UInt32;
4156
begin
4157
  Result := 1;
4158
end;
4159
4160
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
4161
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
4162
4163
{ THash_SHA3_224 }
4164
4165
class function THash_SHA3_224.BlockSize: UInt32;
4166
begin
4167
  Result := 144;
4168
end;
4169
4170
class function THash_SHA3_224.DigestSize: UInt32;
4171
begin
4172
  Result := 28;
4173
end;
4174
4175
procedure THash_SHA3_224.DoInit;
4176
begin
4177
  inherited;
4178
4179
  InitSponge(1152,  448);
4180
  FSpongeState.FixedOutputLength := 224;
4181
end;
4182
4183
{ THash_SHA3_256 }
4184
4185
class function THash_SHA3_256.BlockSize: UInt32;
4186
begin
4187
  Result := 136;
4188
end;
4189
4190
class function THash_SHA3_256.DigestSize: UInt32;
4191
begin
4192
  Result := 32;
4193
end;
4194
4195
procedure THash_SHA3_256.DoInit;
4196
begin
4197
  inherited;
4198
4199
  InitSponge(1088,  512);
4200
  FSpongeState.fixedOutputLength := 256;
4201
end;
4202
4203
{ THash_SHA3_384 }
4204
4205
class function THash_SHA3_384.BlockSize: UInt32;
4206
begin
4207
  Result := 104;
4208
end;
4209
4210
class function THash_SHA3_384.DigestSize: UInt32;
4211
begin
4212
  Result := 48;
4213
end;
4214
4215
procedure THash_SHA3_384.DoInit;
4216
begin
4217
  inherited;
4218
4219
  InitSponge(832,  768);
4220
  FSpongeState.fixedOutputLength := 384;
4221
end;
4222
4223
{ THash_SHA3_512 }
4224
4225
class function THash_SHA3_512.BlockSize: UInt32;
4226
begin
4227
  Result := 72;
4228
end;
4229
4230
class function THash_SHA3_512.DigestSize: UInt32;
4231
begin
4232
  Result := 64;
4233
end;
4234
4235
procedure THash_SHA3_512.DoInit;
4236
begin
4237
  inherited;
4238
4239
  InitSponge(576, 1024);
4240
  FSpongeState.fixedOutputLength := 512;
4241
end;
4242
4243
{ THash_Shake128 }
4244
4245
class function THash_Shake128.BlockSize: UInt32;
4246
begin
4247
  Result := 168;
4248
end;
4249
4250
class function THash_Shake128.DigestSize: UInt32;
4251
begin
4252
  // 0 because the hash output length is defined via HashSize property at runtime
4253
  Result := 0;
4254
end;
4255
4256
procedure THash_Shake128.DoInit;
4257
begin
4258
  inherited;
4259
4260
  InitSponge(1344, 256);
4261
end;
4262
4263
{ THash_Shake256 }
4264
4265
class function THash_Shake256.BlockSize: UInt32;
4266
begin
4267
  Result := 136;
4268
end;
4269
4270
class function THash_Shake256.DigestSize: UInt32;
4271
begin
4272
  // 0 because the hash output length is defined via HashSize property at runtime
4273
  Result := 0;
4274
end;
4275
4276
procedure THash_Shake256.DoInit;
4277
begin
4278
  inherited;
4279
4280
  InitSponge(1088, 512);
4281
end;
4282
4283
{ THash_SHA3Base }
4284
4285
procedure THash_SHA3Base.InitSponge(Rate, Capacity: UInt16);
4286
var
4287
  OutputLengthBackup : UInt16;
4288
begin
4289
  if FOutpLengSet then
4290
    OutputLengthBackup := FSpongeState.FixedOutputLength
4291
  else
4292
    // Suppress compiler warning about potentially uninitialized variable
4293
    OutputLengthBackup := 0;
4294
4295
  FillChar(FSpongeState, SizeOf(FSpongeState), 0);
4296
4297
  if (Rate + Capacity <> 1600) or (Rate = 0) or (Rate >= 1600) or
4298
     ((Rate and 63) <> 0) then
4299
    raise EDECHashException.CreateFmt(sHashInitFailure, ['SHA3',
4300
                                                         'rate: ' + IntToStr(Rate) +
4301
                                                         ' capacity: ' + IntToStr(Capacity)]);
4302
4303
  FSpongeState.Rate     := Rate;
4304
  FSpongeState.Capacity := Capacity;
4305
4306
  if FOutpLengSet then
4307
    FSpongeState.FixedOutputLength := OutputLengthBackup;
4308
end;
4309
4310
procedure THash_SHA3Base.KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer);
4311
begin
4312
   XORIntoState(TState_L(state), data, laneCount);
4313
   KeccakPermutation(TState_L(state));
4314
end;
4315
4316
{$IFDEF PUREPASCAL}
4317
function THash_SHA3Base.RotL(const x: UInt64; c: Integer): UInt64;
4318
begin
4319
  Result := (x shl c) or (x shr (64-c));
4320
end;
4321
4322
function THash_SHA3Base.RotL1(var x: UInt64): UInt64;
4323
begin
4324
  Result := (x shl 1) or (x shr (64-1));
4325
end;
4326
4327
procedure THash_SHA3Base.KeccakPermutation(var state: TState_L);
4328
var
4329
   A : PUInt64Array;
4330
   B : array[0..24] of UInt64;
4331
   C0, C1, C2, C3, C4, D0, D1, D2, D3, D4: UInt64;
4332
   i : Integer;
4333
4334
begin
4335
   A := PUInt64Array(@state);
4336
   for i := 0 to 23 do begin
4337
      C0 := A[00] xor A[05] xor A[10] xor A[15] xor A[20];
4338
      C1 := A[01] xor A[06] xor A[11] xor A[16] xor A[21];
4339
      C2 := A[02] xor A[07] xor A[12] xor A[17] xor A[22];
4340
      C3 := A[03] xor A[08] xor A[13] xor A[18] xor A[23];
4341
      C4 := A[04] xor A[09] xor A[14] xor A[19] xor A[24];
4342
4343
      D0 := RotL1(C0) xor C3;
4344
      D1 := RotL1(C1) xor C4;
4345
      D2 := RotL1(C2) xor C0;
4346
      D3 := RotL1(C3) xor C1;
4347
      D4 := RotL1(C4) xor C2;
4348
4349
      B[00] := A[00] xor D1;
4350
      B[01] := RotL(A[06] xor D2, 44);
4351
      B[02] := RotL(A[12] xor D3, 43);
4352
      B[03] := RotL(A[18] xor D4, 21);
4353
      B[04] := RotL(A[24] xor D0, 14);
4354
      B[05] := RotL(A[03] xor D4, 28);
4355
      B[06] := RotL(A[09] xor D0, 20);
4356
      B[07] := RotL(A[10] xor D1, 3);
4357
      B[08] := RotL(A[16] xor D2, 45);
4358
      B[09] := RotL(A[22] xor D3, 61);
4359
      B[10] := RotL(A[01] xor D2, 1);
4360
      B[11] := RotL(A[07] xor D3, 6);
4361
      B[12] := RotL(A[13] xor D4, 25);
4362
      B[13] := RotL(A[19] xor D0, 8);
4363
      B[14] := RotL(A[20] xor D1, 18);
4364
      B[15] := RotL(A[04] xor D0, 27);
4365
      B[16] := RotL(A[05] xor D1, 36);
4366
      B[17] := RotL(A[11] xor D2, 10);
4367
      B[18] := RotL(A[17] xor D3, 15);
4368
      B[19] := RotL(A[23] xor D4, 56);
4369
      B[20] := RotL(A[02] xor D3, 62);
4370
      B[21] := RotL(A[08] xor D4, 55);
4371
      B[22] := RotL(A[14] xor D0, 39);
4372
      B[23] := RotL(A[15] xor D1, 41);
4373
      B[24] := RotL(A[21] xor D2, 2);
4374
4375
      A[00] := B[00] xor ((not B[01]) and B[02]);
4376
      A[01] := B[01] xor ((not B[02]) and B[03]);
4377
      A[02] := B[02] xor ((not B[03]) and B[04]);
4378
      A[03] := B[03] xor ((not B[04]) and B[00]);
4379
      A[04] := B[04] xor ((not B[00]) and B[01]);
4380
      A[05] := B[05] xor ((not B[06]) and B[07]);
4381
      A[06] := B[06] xor ((not B[07]) and B[08]);
4382
      A[07] := B[07] xor ((not B[08]) and B[09]);
4383
      A[08] := B[08] xor ((not B[09]) and B[05]);
4384
      A[09] := B[09] xor ((not B[05]) and B[06]);
4385
      A[10] := B[10] xor ((not B[11]) and B[12]);
4386
      A[11] := B[11] xor ((not B[12]) and B[13]);
4387
      A[12] := B[12] xor ((not B[13]) and B[14]);
4388
      A[13] := B[13] xor ((not B[14]) and B[10]);
4389
      A[14] := B[14] xor ((not B[10]) and B[11]);
4390
      A[15] := B[15] xor ((not B[16]) and B[17]);
4391
      A[16] := B[16] xor ((not B[17]) and B[18]);
4392
      A[17] := B[17] xor ((not B[18]) and B[19]);
4393
      A[18] := B[18] xor ((not B[19]) and B[15]);
4394
      A[19] := B[19] xor ((not B[15]) and B[16]);
4395
      A[20] := B[20] xor ((not B[21]) and B[22]);
4396
      A[21] := B[21] xor ((not B[22]) and B[23]);
4397
      A[22] := B[22] xor ((not B[23]) and B[24]);
4398
      A[23] := B[23] xor ((not B[24]) and B[20]);
4399
      A[24] := B[24] xor ((not B[20]) and B[21]);
4400
4401
      A[00] := A[00] xor cRoundConstants[i];
4402
   end;
4403
end;
4404
{$ELSE}
4405
// Must be procedural as otherwise the parameters get passed in different
4406
// CPU registers and the complete ASM code would have needed to be rewritten.
4407
procedure KeccakPermutationKernel(B, A, C : Pointer);
4408
asm
4409
  {$IFDEF X86ASM}
4410
    {$INCLUDE DECHash.sha3_mmx.inc}
4411
  {$ELSE}
4412
    {$INCLUDE DECHash.sha3_x64.inc}
4413
  {$ENDIF}
4414
end;
4415
4416
procedure THash_SHA3Base.KeccakPermutation(var state: TState_L);
4417
var
4418
   A : PUInt64Array;
4419
   B : array [0..24] of UInt64;
4420
   C : array [0..4] of UInt64;
4421
   i : Integer;
4422
4423
  {$IFDEF X86ASM}
4424
  procedure EMMS;
4425
  asm
4426
    // This operation marks the x87 FPU data registers (which are aliased to the
4427
    // MMX technology registers) as available for use by x87 FPU floating-point
4428
    // instructions.
4429
    emms
4430
  end;
4431
  {$ENDIF}
4432
4433
begin
4434
   A := PUInt64Array(@state);
4435
   for i:=0 to 23 do begin
4436
      KeccakPermutationKernel(@B, A, @C);
4437
      A[00] := A[00] xor cRoundConstants[i];
4438
   end;
4439
4440
   {$IFDEF X86ASM}
4441
   EMMS;
4442
   {$ENDIF}
4443
end;
4444
{$ENDIF}
4445
4446
procedure THash_SHA3Base.PadAndSwitchToSqueezingPhase;
4447
var
4448
  i: integer;
4449
begin
4450
  // Note: the bits are numbered from 0 = LSB to 7 = MSB
4451
  if (FSpongeState.BitsInQueue + 1 = FSpongeState.Rate) then
4452
  begin
4453
    i := FSpongeState.BitsInQueue div 8;
4454
    FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4455
                                 (1 shl (FSpongeState.BitsInQueue and 7));
4456
    AbsorbQueue;
4457
    FillChar(FSpongeState.DataQueue, FSpongeState.Rate div 8, 0);
4458
  end
4459
  else
4460
  begin
4461
    i := FSpongeState.BitsInQueue div 8;
4462
    FillChar(FSpongeState.DataQueue[(FSpongeState.BitsInQueue+7) div 8],
4463
             FSpongeState.Rate div 8 - (FSpongeState.BitsInQueue+7) div 8, 0);
4464
    FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4465
                                 (1 shl (FSpongeState.BitsInQueue and 7));
4466
  end;
4467
4468
  i := (FSpongeState.Rate-1) div 8;
4469
  FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4470
                               (1 shl ((FSpongeState.Rate-1) and 7));
4471
  AbsorbQueue;
4472
  ExtractFromState(@FSpongeState.DataQueue,
4473
                   TState_L(FSpongeState.State),
4474
                   FSpongeState.Rate div 64);
4475
  FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate;
4476
  FSpongeState.SqueezeActive := true;
4477
end;
4478
4479
procedure THash_SHA3Base.Squeeze(var Output: TSHA3Digest; OutputLength: Int32);
4480
var
4481
  i            : Int32;
4482
  PartialBlock : Int16;
4483
begin
4484
  if not FSpongeState.SqueezeActive then
4485
    PadAndSwitchToSqueezingPhase;
4486
4487
  // Only multiple of 8 bits are allowed, truncation must be done at user level
4488
  if OutputLength and 7 <> 0 then
4489
    raise EDECHashException.CreateFmt(sSHA3AbsorbFailure,
4490
                                 [OutputLength, 'true']);
4491
4492
  i := 0;
4493
  while i < OutputLength do
4494
  begin
4495
    if FSpongeState.bitsAvailableForSqueezing = 0 then
4496
    begin
4497
      KeccakPermutation(TState_L(FSpongeState.State));
4498
      ExtractFromState(@FSpongeState.DataQueue, TState_L(FSpongeState.State),
4499
                       FSpongeState.Rate div 64);
4500
      FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate;
4501
    end;
4502
4503
    PartialBlock := FSpongeState.bitsAvailableForSqueezing;
4504
    if PartialBlock > OutputLength - i then
4505
      PartialBlock := OutputLength - i;
4506
4507
    move(FSpongeState.DataQueue[(FSpongeState.Rate - FSpongeState.bitsAvailableForSqueezing) div 8],
4508
         output[i div 8], PartialBlock div 8);
4509
    dec(FSpongeState.bitsAvailableForSqueezing, PartialBlock);
4510
    inc(i, PartialBlock);
4511
  end;
4512
end;
4513
4514
procedure THash_SHA3Base.XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer);
4515
var
4516
   pS: PUInt64;
4517
   i: Integer;
4518
begin
4519
   pS := @state[0];
4520
   for i:=laneCount-1 downto 0 do begin
4521
      pS^ := pS^ xor pI^;
4522
      Inc(pI);
4523
      Inc(pS);
4524
   end;
4525
end;
4526
4527
4528
procedure THash_SHA3Base.Absorb(Data: PBABytes; DatabitLen: Int32);
4529
var
4530
  i, j, wholeBlocks, partialBlock: Integer;
4531
  partialByte: Integer;
4532
  curData: PUInt64;
4533
begin
4534
  // if a number of bits which cannot be divided by 8 without reminder is in the
4535
  // queue or algorithm is already in squeezing state
4536
  if (FSpongeState.BitsInQueue and 7 <> 0) or FSpongeState.SqueezeActive then
4537
  begin
4538
    raise EDECHashException.CreateFmt(sSHA3AbsorbFailure,
4539
                                     [FSpongeState.BitsInQueue,
4540
                                      BoolToStr(FSpongeState.SqueezeActive, true)]);
4541
  end;
4542
4543
  i := 0;
4544
4545
  while i < databitlen do
4546
  begin
4547
     if ((FSpongeState.BitsInQueue = 0) and (databitlen >= FSpongeState.Rate) and
4548
        (i <= (databitlen - FSpongeState.Rate))) then
4549
     begin
4550
       wholeBlocks := (databitlen-i) div FSpongeState.Rate;
4551
       curData := @data^[i div 8];
4552
       j := 0;
4553
       while j < wholeBlocks do
4554
       begin
4555
         KeccakAbsorb(FSpongeState.State, curData, FSpongeState.Rate div 64);
4556
         Inc(j);
4557
         Inc(PByte(curData), FSpongeState.Rate div 8);
4558
       end;
4559
       Inc(i, wholeBlocks * FSpongeState.Rate);
4560
     end
4561
     else
4562
     begin
4563
       partialBlock := databitlen - i;
4564
       if partialBlock + FSpongeState.BitsInQueue > FSpongeState.Rate then
4565
         partialBlock := FSpongeState.Rate - FSpongeState.BitsInQueue;
4566
4567
       partialByte := partialBlock and 7;
4568
       Dec(partialBlock, partialByte);
4569
       Move(data^[i div 8], FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8], partialBlock div 8);
4570
       Inc(FSpongeState.BitsInQueue, partialBlock);
4571
       Inc(i, partialBlock);
4572
       if FSpongeState.BitsInQueue=FSpongeState.Rate then
4573
          AbsorbQueue;
4574
4575
       if partialByte > 0 then
4576
       begin
4577
         FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8] :=
4578
           data^[i div 8] and ((1 shl partialByte)-1);
4579
4580
         Inc(FSpongeState.BitsInQueue, partialByte);
4581
         Inc(i, partialByte);
4582
       end;
4583
     end;
4584
  end;
4585
end;
4586
4587
procedure THash_SHA3Base.AbsorbQueue;
4588
begin
4589
  // state.bitsInQueue is assumed to be equal to state.rat
4590
  KeccakAbsorb(FSpongeState.State, @FSpongeState.DataQueue, FSpongeState.Rate div 64);
4591
  FSpongeState.BitsInQueue := 0;
4592
end;
4593
4594
procedure THash_SHA3Base.Calc(const Data; DataSize: Integer);
4595
var
4596
  DataPtr   : PBABytes;
4597
  RoundSize : UInt32;
4598
const
4599
  // Maximum number of bytes one can process in one round
4600
  MaxRoundSize = MaxInt div 8;
4601
begin
4602
  // due to the way the inherited calc is constructed it must not be called here!
4603
  if (DataSize > 0) then
4604
  begin
4605
    DataPtr := PBABytes(@Data);
4606
4607
    while (UInt32(DataSize) > 0) do
4608
    begin
4609
      RoundSize := DataSize;
4610
      if (RoundSize > MaxRoundSize) then
4611
        RoundSize := MaxRoundSize;
4612
4613
      Absorb(DataPtr, RoundSize * 8);
4614
      Dec(DataSize, RoundSize);
4615
      Inc(DataPtr, RoundSize);
4616
    end;
4617
4618
  end;
4619
end;
4620
4621
constructor THash_SHA3Base.Create;
4622
begin
4623
  inherited;
4624
4625
  FOutpLengSet := false;
4626
  SetLength(FDigest, 64);
4627
end;
4628
4629
function THash_SHA3Base.Digest: PByteArray;
4630
begin
4631
  Result := @FDigest[0];
4632
end;
4633
4634
procedure THash_SHA3Base.DoDone;
4635
begin
4636
  FinalBit_LSB(FFinalByte, FFinalByteLength, FDigest);
4637
end;
4638
4639
procedure THash_SHA3Base.DoInit;
4640
begin
4641
  inherited;
4642
4643
  FillChar(FDIgest[0], Length(FDigest), 0);
4644
end;
4645
4646
procedure THash_SHA3Base.DoUpdate(Data: Pointer; DataBitLen: Int32);
4647
var
4648
  LastByte: Byte;
4649
begin
4650
  // No partial byte
4651
  if DataBitLen and 7 = 0 then
4652
    Absorb(Data, DataBitLen)
4653
  else
4654
  begin
4655
    // Data contains a partial byte. Calculate the whole bytes first then the
4656
    // partial one.
4657
    Absorb(Data, DataBitLen - (DataBitLen and 7));
4658
4659
    // Align the last partial byte to the least significant bits
4660
    LastByte := PBABytes(Data)^[DatabitLen div 8] shr (8 - (DataBitLen and 7));
4661
    Absorb(@LastByte, DataBitLen and 7);
4662
  end;
4663
end;
4664
4665
procedure THash_SHA3Base.ExtractFromState(outp: Pointer; const state: TState_L; laneCount: Integer);
4666
var
4667
   pI, pS: PUInt64;
4668
   i: Integer;
4669
begin
4670
   pI := outp;
4671
   pS := @state[0];
4672
   for i := laneCount - 1 downto 0 do
4673
   begin
4674
      pI^ := pS^;
4675
      Inc(pI);
4676
      Inc(pS);
4677
   end;
4678
end;
4679
4680
procedure THash_SHA3Base.FinalBit_LSB(Bits: Byte; Bitlen: UInt16;
4681
                                     var Hashvalue: TSHA3Digest);
4682
var
4683
  WorkingBitLen : Int16;
4684
  lw : UInt16;
4685
begin
4686
  // normalize Bitlen and Bits (zero high bits)
4687
  Bitlen := Bitlen and 7;
4688
  if Bitlen = 0 then
4689
    lw := 0
4690
  else
4691
    lw := Bits and pred(word(1) shl Bitlen);
4692
4693
  // 'append' (in LSB language) the domain separation bits
4694
  //if (FSpongeState.FixedOutputLength = 0) then
4695
  if self.ClassParent = THash_ShakeBase then
4696
  begin
4697
    lw := lw or (word($F) shl Bitlen);
4698
    WorkingBitLen := Bitlen+4;
4699
  end
4700
  else
4701
  begin
4702
    // SHA3: append two bits 01
4703
    lw := lw or (word($2) shl Bitlen);
4704
    WorkingBitLen := Bitlen+2;
4705
  end;
4706
4707
  // update state with final bits
4708
  if WorkingBitLen < 9 then
4709
  begin
4710
    // 0..8 bits, one call to update
4711
    lw := lw shl (8-WorkingBitLen);
4712
    DoUpdate(@lw, WorkingBitLen);
4713
    // squeeze the digits from the sponge
4714
    Squeeze(Hashvalue, FSpongeState.FixedOutputLength);
4715
  end
4716
  else
4717
  begin
4718
    // More than 8 bits, first a regular update with low byte
4719
    DoUpdate(@lw, 8);
4720
4721
    // Finally update remaining last bits
4722
    dec(WorkingBitLen,8);
4723
    lw := lw shr WorkingBitLen;
4724
    DoUpdate(@lw, WorkingBitLen);
4725
4726
    Squeeze(Hashvalue, FSpongeState.FixedOutputLength);
4727
  end;
4728
end;
4729
4730
procedure THash_SHA3Base.DoTransform(Buffer: PUInt32Array);
4731
begin
4732
// Empty on purpose as calculation is implemented differently for SHA3. Needed
4733
// to suppress the compiler warning that a class with an abstract method is created
4734
end;
4735
4736
{ THash_ShakeBase }
4737
4738
function THash_ShakeBase.GetHashSize: UInt16;
4739
begin
4740
  // divided by 8 since this field is in bits
4741
  Result := FSpongeState.FixedOutputLength shr 3;
4742
end;
4743
4744
procedure THash_ShakeBase.SetHashSize(const Value: UInt16);
4745
begin
4746
  if (Value = 0) then
4747
    raise EDECHashException.CreateResFmt(@sHashInitFailure,
4748
                                         [GetShortClassName, sHashOutputLength0]);
4749
4750
  // multiplied with 8 since this field is in bits
4751
  FSpongeState.FixedOutputLength := Value * 8;
4752
  // This flag tells the initialization of the algorithm that
4753
  // FixedOutputLength needs to be preserved
4754
  FOutpLengSet := true;
4755
4756
  SetLength(FDigest, Value);
4757
  FillChar(FDigest[0], Length(FDigest), #0);
4758
end;
4759
4760
function THash_ShakeBase.DigestAsBytes: TBytes;
4761
begin
4762
  SetLength(Result, FSpongeState.FixedOutputLength shr 3);
4763
  if FSpongeState.FixedOutputLength > 0 then
4764
    Move(Digest^, Result[0], Length(Result));
4765
end;
4766
4767
initialization
4768
  // Define the has returned by ValidHash if passing nil as parameter
4769
  SetDefaultHashClass(THash_SHA256);
4770
4771
  {$IFNDEF ManualRegisterHashClasses}
4772
  THash_MD2.RegisterClass(TDECHash.ClassList);
4773
  THash_MD4.RegisterClass(TDECHash.ClassList);
4774
  THash_MD5.RegisterClass(TDECHash.ClassList);
4775
  THash_RipeMD128.RegisterClass(TDECHash.ClassList);
4776
  THash_RipeMD160.RegisterClass(TDECHash.ClassList);
4777
  THash_RipeMD256.RegisterClass(TDECHash.ClassList);
4778
  THash_RipeMD320.RegisterClass(TDECHash.ClassList);
4779
  THash_SHA0.RegisterClass(TDECHash.ClassList);
4780
  THash_SHA1.RegisterClass(TDECHash.ClassList);
4781
  THash_SHA224.RegisterClass(TDECHash.ClassList);
4782
  THash_SHA256.RegisterClass(TDECHash.ClassList);
4783
  THash_SHA384.RegisterClass(TDECHash.ClassList);
4784
  THash_SHA512.RegisterClass(TDECHash.ClassList);
4785
  THash_SHA3_224.RegisterClass(TDECHash.ClassList);
4786
  THash_SHA3_256.RegisterClass(TDECHash.ClassList);
4787
  THash_SHA3_384.RegisterClass(TDECHash.ClassList);
4788
  THash_SHA3_512.RegisterClass(TDECHash.ClassList);
4789
  THash_Shake128.RegisterClass(TDECHash.ClassList);
4790
  THash_Shake256.RegisterClass(TDECHash.ClassList);
4791
  THash_Haval128.RegisterClass(TDECHash.ClassList);
4792
  THash_Haval160.RegisterClass(TDECHash.ClassList);
4793
  THash_Haval192.RegisterClass(TDECHash.ClassList);
4794
  THash_Haval224.RegisterClass(TDECHash.ClassList);
4795
  THash_Haval256.RegisterClass(TDECHash.ClassList);
4796
  THash_Tiger.RegisterClass(TDECHash.ClassList);
4797
  THash_Panama.RegisterClass(TDECHash.ClassList);
4798
4799
    {$IFDEF OLD_WHIRLPOOL_NAMES}
4800
    THash_Whirlpool.RegisterClass(TDECHash.ClassList);
4801
    THash_Whirlpool1.RegisterClass(TDECHash.ClassList);
4802
    THash_Whirlpool1New.RegisterClass(TDECHash.ClassList);
4803
    {$ELSE}
4804
    THash_Whirlpool1.RegisterClass(TDECHash.ClassList);
4805
    {$ENDIF}
4806
4807
  THash_Whirlpool0.RegisterClass(TDECHash.ClassList);
4808
  THash_WhirlpoolT.RegisterClass(TDECHash.ClassList);
4809
4810
  THash_Square.RegisterClass(TDECHash.ClassList);
4811
  THash_Snefru128.RegisterClass(TDECHash.ClassList);
4812
  THash_Snefru256.RegisterClass(TDECHash.ClassList);
4813
  THash_Sapphire.RegisterClass(TDECHash.ClassList);
4814
4815
    {$IFDEF OLD_SHA_NAME}
4816
    THash_SHA.RegisterClass(TDECHash.ClassList);
4817
    {$ENDIF}
4818
4819
  {$ENDIF}
4820
4821
finalization
4822
  // No need to unregister the hash classes, as the list is being freed
4823
  // in finalization of DECHashBase unit
4824
4825
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.pas

+
Number of lines covered750
Number of lines with code gen768
Line coverage97%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Hash functions. Be aware that the x86 ASM implementations, if activated
20
///   by the define, are provided by DECHash.asm86.inc!
21
/// </summary>
22
unit DECHash;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECBaseClass, DECFormatBase, DECUtil, DECHashBase, DECHashAuthentication,
35
  DECHashBitBase, DECHashInterface, DECTypes;
36
37
type
38
  // Hash Classes
39
  THash_MD2         = class;
40
  THash_MD4         = class;
41
  THash_MD5         = class;
42
  THash_RipeMD128   = class;
43
  THash_RipeMD160   = class;
44
  THash_RipeMD256   = class;
45
  THash_RipeMD320   = class;
46
  THash_SHA0        = class;  // SHA-0
47
  THash_SHA1        = class;  // SHA-1
48
  THash_SHA224      = class;  // SHA-2, SHA-224
49
  THash_SHA256      = class;  // SHA-2, SHA-256
50
  THash_SHA384      = class;  // SHA-2, SHA-384
51
  THash_SHA512      = class;  // SHA-2, SHA-512
52
  THash_SHA3_224    = class;
53
  THash_SHA3_256    = class;
54
  THash_SHA3_384    = class;
55
  THash_SHA3_512    = class;
56
  THash_Shake128    = class;
57
  THash_Shake256    = class;
58
  THash_Haval128    = class;
59
  THash_Haval160    = class;  // Haval 160, 3 Rounds
60
  THash_Haval192    = class;  // Haval 192, 4 Rounds
61
  THash_Haval224    = class;  // Haval 224, 4 Rounds
62
  THash_Haval256    = class;  // Haval 256, 5 Rounds
63
  THash_Tiger       = class;
64
  THash_Panama      = class;
65
  {$IFDEF OLD_WHIRLPOOL_NAMES}
66
  THash_Whirlpool   = class;
67
  THash_Whirlpool1New = class;
68
  {$ENDIF}
69
70
  THash_Whirlpool0  = class;
71
  THash_Whirlpool1  = class; // differs, depending on OLD_WHIRLPOOL_NAMES define
72
  THash_WhirlpoolT  = class;
73
74
  THash_Square      = class;
75
  THash_Snefru128   = class;  // derived from the Xerox Secure Hash Function
76
  THash_Snefru256   = class;  // " - "
77
  THash_Sapphire    = class;
78
79
  /// <summary>
80
  ///   Implementation of the MD2 hash algorithm. Considered to be broken,
81
  ///   at least on paper.
82
  /// </summary>
83
  THash_MD2 = class(TDECHashAuthentication)
84
  private
85
    FDigest: array[0..63] of Byte;
86
  protected
87
    procedure DoInit; override;
88
    procedure DoTransform(Buffer: PUInt32Array); override;
89
    procedure DoDone; override;
90
  public
91
    function Digest: PByteArray; override;
92
    class function DigestSize: UInt32; override;
93
    class function BlockSize: UInt32; override;
94
  end;
95
96
  /// <summary>
97
  ///   Base class for the MD4 hash alrogithm and for other hash-algorithms which
98
  ///   are close relatives to the MD4 algorithm like the RipeMD ones.
99
  /// </summary>
100
  THashBaseMD4 = class(TDECHashAuthentication)
101
  private
102
    FDigest: array[0..9] of UInt32;
103
  protected
104
    procedure DoInit; override;
105
    procedure DoDone; override;
106
  public
107
    function Digest: PByteArray; override;
108
    class function DigestSize: UInt32; override;
109
    class function BlockSize: UInt32; override;
110
  end;
111
112
  /// <summary>
113
  ///   The MD4 algorithm is considered to be broken, at least on paper.
114
  /// </summary>
115
  THash_MD4 = class(THashBaseMD4)
116
  protected
117
    procedure DoTransform(Buffer: PUInt32Array); override;
118
  end;
119
120
  /// <summary>
121
  ///   The MD5 algorithm is considered to be broken. Using it in HMAC algorithms
122
  ///   is still ok.
123
  /// </summary>
124
  THash_MD5 = class(THashBaseMD4)
125
  protected
126
    procedure DoTransform(Buffer: PUInt32Array); override;
127
  end;
128
129
  /// <summary>
130
  ///   Do not confuse with the original RipeMD algorithm which ís being
131
  ///   considered to be unsafe anyway. Considered to be broken due to the only
132
  ///   128 Bit long message digest result.
133
  /// </summary>
134
  THash_RipeMD128 = class(THashBaseMD4)
135
  protected
136
    procedure DoTransform(Buffer: PUInt32Array); override;
137
  end;
138
139
  THash_RipeMD160 = class(THashBaseMD4)
140
  protected
141
    procedure DoTransform(Buffer: PUInt32Array); override;
142
  public
143
    class function DigestSize: UInt32; override;
144
  end;
145
146
  THash_RipeMD256 = class(THashBaseMD4)
147
  protected
148
    procedure DoInit; override;
149
    procedure DoTransform(Buffer: PUInt32Array); override;
150
  public
151
    class function DigestSize: UInt32; override;
152
  end;
153
154
  THash_RipeMD320 = class(THashBaseMD4)
155
  protected
156
    procedure DoTransform(Buffer: PUInt32Array); override;
157
  public
158
    class function DigestSize: UInt32; override;
159
  end;
160
161
  /// <summary>
162
  ///   Implementation of the SHA0 hash algorithm. This is the original version
163
  ///   of the SHA algorithm released in 1993. In 1995 some security issues have
164
  ///   been identified in this algorithm so he got replaced by the slightly
165
  ///   modified SHA1 algorithm. The recommendation is to not use this SHA0
166
  ///   algorithm at all. It is only being provided for scenarios where
167
  ///   compatibility with this algorithm is required.
168
  /// </summary>
169
  THash_SHA0 = class(THashBaseMD4)
170
  protected
171
    procedure DoTransform(Buffer: PUInt32Array); override;
172
    procedure DoDone; override;
173
  public
174
    class function DigestSize: UInt32; override;
175
  end;
176
177
  {$IFDEF OLD_SHA_NAME}
178
  /// <summary>
179
  ///   Implementation of the SHA0 hash algorithm. This is the original version
180
  ///   of the SHA algorithm released in 1993. In 1995 some security issues have
181
  ///   been identified in this algorithm so he got replaced by the slightly
182
  ///   modified SHA1 algorithm. The recommendation is to not use this SHA0
183
  ///   algorithm at all. It is only being provided for scenarios where
184
  ///   compatibility with this algorithm is required.
185
  /// </summary>
186
  THash_SHA = class(THash_SHA0)
187
  {$IFDEF X86ASM}
188
  protected
189
    procedure DoTransform(Buffer: PUInt32Array); override;
190
  end
191
  {$ENDIF};
192
193
  {$ENDIF}
194
195
  /// <summary>
196
  ///   Implementation of the SHA1 hash algorithm. At least since February 2017
197
  ///   collisions have been found for this algorithm so it's now completely
198
  ///   clear that it should not be used if possible! Use SHA256 or SHA512
199
  ///   instead!
200
  /// </summary>
201
  THash_SHA1 = class(THash_SHA0);
202
203
  /// <summary>
204
  ///   This algorithm is part of the SHA2 series of hash algorithms.
205
  /// </summary>
206
  THash_SHA256 = class(THash_SHA0)
207
  protected
208
    procedure DoInit; override;
209
    procedure DoTransform(Buffer: PUInt32Array); override;
210
  public
211
    class function DigestSize: UInt32; override;
212
  end;
213
214
  /// <summary>
215
  ///   This algorithm is part of the SHA2 series of hash algorithms.
216
  ///   German BSI recommends not to use this algorithm, they recommend SHA256
217
  ///   or higher instead.
218
  /// </summary>
219
  THash_SHA224 = class(THash_SHA256)
220
  protected
221
    procedure DoInit; override;
222
  public
223
    class function DigestSize: UInt32; override;
224
    class function BlockSize: UInt32; override;
225
  end;
226
227
  /// <summary>
228
  ///   This algorithm is part of the SHA2 series of hash algorithms.
229
  /// </summary>
230
  THash_SHA384 = class(TDECHashAuthentication)
231
  private
232
    FDigest: array[0..7] of Int64;
233
  protected
234
    procedure DoInit; override;
235
    procedure DoTransform(Buffer: PUInt32Array); override;
236
    procedure DoDone; override;
237
  public
238
    function Digest: PByteArray; override;
239
    class function DigestSize: UInt32; override;
240
    class function BlockSize: UInt32; override;
241
  end;
242
243
  /// <summary>
244
  ///   This algorithm is part of the SHA2 series of hash algorithms.
245
  /// </summary>
246
  THash_SHA512 = class(THash_SHA384)
247
  protected
248
    procedure DoInit; override;
249
  public
250
    class function DigestSize: UInt32; override;
251
  end;
252
253
  /// <summary>
254
  ///   Base class for tall SHA3 implementations
255
  /// </summary>
256
  THash_SHA3Base = class(TDECHashBit)
257
  strict private
258
    // Declarations for SHA3. Must be declared here to allow private methods
259
    // to use these types as well.
260
    const
261
      KeccakPermutationSize        = 1600;
262
      /// <summary>
263
      ///   Maximum bitrate? If yes this would be higher than any value listed here:
264
      ///   https://keccak.team/keccak.html
265
      /// </summary>
266
      KeccakMaximumRate            = 1536;
267
      /// <summary>
268
      ///   KeccakPermutationSize converted into bytes instead of bits
269
      /// </summary>
270
      KeccakPermutationSizeInBytes = KeccakPermutationSize div 8;
271
      /// <summary>
272
      ///   KeccakMaximumRate converted into bytes instead of bits
273
      /// </summary>
274
      KeccakMaximumRateInBytes     = KeccakMaximumRate div 8;
275
276
      /// <summary>
277
      ///   Number of times to run the algorithm on the data
278
      /// </summary>
279
      cKeccakNumberOfRounds        = 24;
280
281
      /// <summary>
282
      ///   Precalculated values for the 24 rounds of the algorithm
283
      /// </summary>
284
      cRoundConstants : array[0..23] of UInt64 = (
285
        UInt64($0000000000000001), UInt64($0000000000008082),
286
        UInt64($800000000000808A), UInt64($8000000080008000),
287
        UInt64($000000000000808B), UInt64($0000000080000001),
288
        UInt64($8000000080008081), UInt64($8000000000008009),
289
        UInt64($000000000000008A), UInt64($0000000000000088),
290
        UInt64($0000000080008009), UInt64($000000008000000A),
291
        UInt64($000000008000808B), UInt64($800000000000008B),
292
        UInt64($8000000000008089), UInt64($8000000000008003),
293
        UInt64($8000000000008002), UInt64($8000000000000080),
294
        UInt64($000000000000800A), UInt64($800000008000000A),
295
        UInt64($8000000080008081), UInt64($8000000000008080),
296
        UInt64($0000000080000001), UInt64($8000000080008008)
297
      );
298
    type
299
      TState_B = packed array[0..KeccakPermutationSizeInBytes-1] of UInt8;
300
      TState_L = packed array[0..(KeccakPermutationSizeInBytes) div 4 - 1] of Int32;
301
      TKDQueue = packed array[0..KeccakMaximumRateInBytes-1] of UInt8;
302
303
      /// <summary>
304
      ///   Calculation status of the algorithm
305
      /// </summary>
306
      TSpongeState = packed record
307
                       State                     : TState_B;
308
                       /// <summary>
309
                       ///   Data of the queue to be processed
310
                       /// </summary>
311
                       DataQueue                 : TKDQueue;
312
                       /// <summary>
313
                       ///   Bitrate r of Keccak
314
                       /// </summary>
315
                       Rate                      : UInt16;
316
                       /// <summary>
317
                       ///   Capacity c of Keccak
318
                       /// </summary>
319
                       Capacity                  : UInt16;
320
                       /// <summary>
321
                       ///   How many bits are in the queue
322
                       /// </summary>
323
                       BitsInQueue               : UInt16;
324
                       /// <summary>
325
                       ///   Length of the hash value to generate in bit
326
                       /// </summary>
327
                       FixedOutputLength         : UInt16;
328
                       /// <summary>
329
                       ///   Number of bits which can be squeezed
330
                       /// </summary>
331
                       bitsAvailableForSqueezing : UInt16;
332
                       /// <summary>
333
                       ///   Flag which is set to true when entering the
334
                       ///   squeezing state. Suppresses further absorb calls.
335
                       /// </summary>
336
                       SqueezeActive             : Boolean;
337
                       /// <summary>
338
                       ///   If an operation fails it sets this error code
339
                       /// </summary>
340
    //                   Fill3: packed array[405..HASHCTXSIZE] of byte;
341
                     end;
342
343
      /// <summary>
344
      ///   Buffer type
345
      /// </summary>
346
      TBABytes = array[0..65535] of UInt8;
347
      /// <summary>
348
      ///   Pointer to a buffer
349
      /// </summary>
350
      PBABytes = ^TBABytes;
351
352
      /// <summary>
353
      ///   Type for the generated hash value
354
      /// </summary>
355
      TSHA3Digest = array of UInt8;
356
357
    /// <summary>
358
    ///   Function to give input data for the sponge function to absorb
359
    /// </summary>
360
    /// <param name="Data">
361
    ///   Pointer to the data to work on
362
    /// </param>
363
    /// <param name="DatabitLen">
364
    ///   Length of the data passed via the pointer in bit
365
    /// </param>
366
    /// <remarks>
367
    ///   Raises an EDECHashEception when DataBit len not divideable by 8 without
368
    ///   reminder or when already in squeezin state.
369
    /// </remarks>
370
    procedure Absorb(Data: PBABytes; DatabitLen: Int32);
371
372
    /// <summary>
373
    ///   Absorb remaining bits from queue
374
    /// </summary>
375
    procedure AbsorbQueue;
376
377
    {$IFDEF PUREPASCAL}
378
    /// <summary>
379
    ///   Circular left shift
380
    /// </summary>
381
    /// <param name="x">
382
    ///   Value to be shifted
383
    /// </param>
384
    /// <param name="c">
385
    ///   Number of bits the value will be shifted
386
    /// </param>
387
    /// <returns>
388
    ///   Shifted value
389
    /// </returns>
390
    function RotL(const x: UInt64; c: Integer): UInt64; inline;
391
392
    /// <summary>
393
    ///   Circular left shift by 1
394
    /// </summary>
395
    /// <param name="x">
396
    ///   Value to be shifted
397
    /// </param>
398
    /// <returns>
399
    ///   Shifted value
400
    /// </returns>
401
    function RotL1(var x: UInt64): UInt64; inline;
402
    {$ENDIF}
403
    /// <summary>
404
    ///   Permutates the values in the passed state
405
    /// </summary>
406
    /// <param name="State">
407
    ///   State to permutate
408
    /// </param>
409
    procedure KeccakPermutation(var State: TState_L);
410
411
    /// <summary>
412
    ///   Carries out the XorIntoState and the permutation
413
    /// </summary>
414
    /// <param name="State">
415
    ///   State of the algorithm which gets modified by the permutation in this method
416
    /// </param>
417
    /// <param name="Data">
418
    ///   Pointer to the data to operate on
419
    /// </param>
420
    /// <param name="LaneCount">
421
    ///   Number of times the loop in this algorithm has tpo be carried out
422
    /// </param>
423
    procedure KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer);
424
425
    /// <summary>
426
    ///   Include input message data bits into the sponge state
427
    /// </summary>
428
    procedure XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer);
429
430
    /// <summary>
431
    ///   Update state with DataBitLen bits from data. May be called multiple
432
    ///   times, only the last DataBitLen may be a non-multiple of 8
433
    ///   (the corresponding byte) must be MSB aligned, i.e. in the
434
    ///   (databitlen and 7) most significant bits.
435
    /// </summary>
436
    /// <param name="data">
437
    ///   Data to work on
438
    /// </param>
439
    /// <param name="DataBitLen">
440
    ///   Length of the data in bits
441
    /// </param>
442
    procedure DoUpdate(Data: Pointer; DataBitLen: Int32);
443
444
    /// <summary>
445
    ///   Squeeze output data from the sponge function. If the sponge function
446
    ///   was in the absorbing phase, this function switches it to the squeezing
447
    ///   phase.
448
    /// </summary>
449
    /// <param name="Output">
450
    ///   pointer to the buffer where to store the output data
451
    /// </param>
452
    /// <param name="OutputLength">
453
    ///   number of output bits desired, must be a multiple of 8.
454
    /// </param>
455
    /// <returns>
456
    ///   0 if successful, 1 otherwise.
457
    /// </returns>
458
    procedure Squeeze(var Output: TSHA3Digest; OutputLength: Int32);
459
    /// <summary>
460
    ///   The algorithm starts in the absorb phase (one puts data into the sponge)
461
    ///   and ends with the squeze phase (one squeezes the sponge) and this method
462
    ///   does everything needed at the transition point between these two phases
463
    /// </summary>
464
    procedure PadAndSwitchToSqueezingPhase;
465
466
    /// <summary>
467
    ///   ???
468
    /// </summary>
469
    /// <param name="Outp">
470
    ///   Pointer where the output will be stored in
471
    /// </param>
472
    /// <param name="State">
473
    ///   State to work on
474
    /// </param>
475
    /// <param name="LaneCount">
476
    ///   Number of iterations
477
    /// </param>
478
    procedure ExtractFromState(Outp: Pointer; const State: TState_L; LaneCount: Integer);
479
480
    /// <summary>
481
    ///   Update final bits in LSB format, pad them, and compute the hash value
482
    /// </summary>
483
    /// <param name="Bits">
484
    ///   Value used for padding if the length of the message to be hashed
485
    ///   is not a multiple of 8 bit bytes.
486
    /// </param>
487
    /// <param name="BitLen">
488
    ///   Number of needed padding bits?
489
    /// </param>
490
    /// <param name="HashValue">
491
    ///   The hash value which shall be updated by this method
492
    /// </param>
493
    procedure FinalBit_LSB(Bits: Byte; Bitlen: UInt16;
494
                            var HashValue: TSHA3Digest);
495
  strict protected
496
    /// <summary>
497
    ///   Contains the current state of the algorithms sponge part
498
    /// </summary>
499
    FSpongeState : TSpongeState;
500
501
    /// <summary>
502
    ///   The generated hash value is stored here
503
    /// </summary>
504
    FDigest      : TSHA3Digest;
505
506
    /// <summary>
507
    ///   When true, the output length has been set (applicable for the expandable
508
    ///   output length algorithm variants named Shake) and needs to be preserved
509
    ///   in InitSponge
510
    /// </summary>
511
    FOutpLengSet : Boolean;
512
513
    /// <summary>
514
    ///   Initializes the state of the Keccak/SHA3 sponge function. It is set to
515
    ///   the absorbing phase by this. If invalid parameter values are specified
516
    ///   a EDECHashException will be raised
517
    /// </summary>
518
    /// <param name="rate">
519
    ///   Block length of the message to be processed, depends directly on the
520
    ///   SHA3 variant (224, 256...) to be used
521
    /// </param>
522
    /// <param name="capacity">
523
    ///   Capacity c (it could directly be calculated from the rate as
524
    ///   c = 1600 - r but the original author Wolfgang Erhardt decided against
525
    ///   this.
526
    ///   The capacity is the size of that part of the state vector which, when
527
    ///   xored with the message blocks and when extracting the resulting hash,
528
    ///   stays untouched.
529
    /// </param>
530
    procedure InitSponge(Rate, Capacity: UInt16);
531
532
    /// <summary>
533
    ///   Init internal data
534
    /// </summary>
535
    procedure DoInit; override;
536
    /// <summary>
537
    ///   Dummy method to avoid the compiler warning about a class with abstract method
538
    /// </summary>
539
    procedure DoTransform(Buffer: PUInt32Array); override;
540
    /// <summary>
541
    ///   Final step of the calculation
542
    /// </summary>
543
    procedure DoDone; override;
544
545
    /// <summary>
546
    ///   Returns the calculated hash value
547
    /// </summary>
548
    /// <returns>
549
    ///   Hash value calculated
550
    /// </returns>
551
    function Digest: PByteArray; override;
552
  public
553
    /// <summary>
554
    ///   Dimension hash result buffer
555
    /// </summary>
556
    constructor Create; override;
557
    /// <summary>
558
    ///   Processes one chunk of data to be hashed.
559
    /// </summary>
560
    /// <param name="Data">
561
    ///   Data on which the hash value shall be calculated on
562
    /// </param>
563
    /// <param name="DataSize">
564
    ///   Size of the data in bytes
565
    /// </param>
566
    procedure Calc(const Data; DataSize: Integer); override;
567
  end;
568
569
  /// <summary>
570
  ///   224 bit SHA3 variant
571
  /// </summary>
572
  THash_SHA3_224 = class(THash_SHA3Base)
573
  protected
574
    procedure DoInit; override;
575
  public
576
    class function BlockSize: UInt32; override;
577
    class function DigestSize: UInt32; override;
578
  end;
579
580
  /// <summary>
581
  ///   256 bit SHA3 variant
582
  /// </summary>
583
  THash_SHA3_256 = class(THash_SHA3Base)
584
  protected
585
    procedure DoInit; override;
586
  public
587
    class function BlockSize: UInt32; override;
588
    class function DigestSize: UInt32; override;
589
  end;
590
591
  /// <summary>
592
  ///   384 bit SHA3 variant
593
  /// </summary>
594
  THash_SHA3_384 = class(THash_SHA3Base)
595
  protected
596
    procedure DoInit; override;
597
  public
598
    class function BlockSize: UInt32; override;
599
    class function DigestSize: UInt32; override;
600
  end;
601
602
  /// <summary>
603
  ///   512 bit SHA3 variant
604
  /// </summary>
605
  THash_SHA3_512 = class(THash_SHA3Base)
606
  protected
607
    procedure DoInit; override;
608
  public
609
    class function BlockSize: UInt32; override;
610
    class function DigestSize: UInt32; override;
611
  end;
612
613
  /// <summary>
614
  ///   Base class for the Shake implementations
615
  /// </summary>
616
  THash_ShakeBase = class(THash_SHA3Base, IDECHashExtensibleOutput)
617
  private
618
    /// <summary>
619
    ///   Returns the length of the calculated hash value in byte
620
    /// </summary>
621
    function  GetHashSize: UInt16;
622
    /// <summary>
623
    ///   Defines the length of the calculated hash value
624
    /// </summary>
625
    /// <param name="Value">
626
    ///   Length of the hash value to be returned in byte
627
    /// </param>
628
    procedure SetHashSize(const Value: UInt16);
629
  public
630
    /// <summary>
631
    ///   Returns the calculated hash value as byte array. Needs to be overriden
632
    ///   here as the length of the output needs to be determined differently due
633
    ///   to Shake being extensible output length.
634
    /// </summary>
635
    function DigestAsBytes: TBytes; override;
636
    /// <summary>
637
    ///   Define the lenght of the resulting hash value in byte as these functions
638
    ///   are extendable output functions
639
    /// </summary>
640
    property HashSize : UInt16
641
      read   GetHashSize
642
      write  SetHashSize;
643
  end;
644
645
  /// <summary>
646
  ///   Shake128 veriant of SHA3
647
  /// </summary>
648
  THash_Shake128 = class(THash_ShakeBase)
649
  protected
650
    procedure DoInit; override;
651
  public
652
    class function BlockSize: UInt32; override;
653
    class function DigestSize: UInt32; override;
654
  end;
655
656
  /// <summary>
657
  ///   Shake128 veriant of SHA3
658
  /// </summary>
659
  THash_Shake256 = class(THash_ShakeBase)
660
  protected
661
    procedure DoInit; override;
662
  public
663
    class function BlockSize: UInt32; override;
664
    class function DigestSize: UInt32; override;
665
  end;
666
667
  THavalBaseTransformMethod = procedure(Buffer: PUInt32Array) of object;
668
669
  /// <summary>
670
  ///   Base class for all Haval implementations
671
  /// </summary>
672
  THashBaseHaval = class(TDECHashAuthentication, IDECHashRounds)
673
  private
674
    FDigest: array[0..7] of UInt32;
675
      /// <summary>
676
      ///   UInt32 for compatibility with 32 bit ASM implementation
677
      /// </summary>
678
    FRounds: UInt32;
679
    FTransform: THavalBaseTransformMethod;
680
    /// <summary>
681
    ///   Defines the number of calculation rounds and if a value outside the
682
    ///   allowed range is given it sets rounds to a value based on digest size.
683
    /// </summary>
684
    procedure SetRounds(Value: UInt32);
685
    function  GetRounds: UInt32;
686
  protected
687
    procedure DoInit; override;
688
    procedure DoTransform(Buffer: PUInt32Array); override;
689
    procedure DoTransform3(Buffer: PUInt32Array);
690
    procedure DoTransform4(Buffer: PUInt32Array);
691
    procedure DoTransform5(Buffer: PUInt32Array);
692
    procedure DoDone; override;
693
  public
694
    function Digest: PByteArray; override;
695
    class function BlockSize: UInt32; override;
696
    /// <summary>
697
    ///   Returns the minimum possible number for the rounds parameter.
698
    ///   Value depends on Digest size which depends on concrete implementation
699
    /// </summary>
700
    function GetMinRounds: UInt32;
701
    /// <summary>
702
    ///   Returns the maximum possible number for the rounds parameter.
703
    ///   Value depends on Digest size which depends on concrete implementation
704
    /// </summary>
705
    function GetMaxRounds: UInt32;
706
707
    /// <summary>
708
    ///   Defines the number of rounds the algorithm performs on the input data.
709
    ///   The range for this parameter is 3-5 rounds. If a value outside this
710
    ///   range is assigned, the value used depends on the DigestSize. For
711
    ///   DigestSizes <= 20 it will be set to 3, for values <= 28 to 4 and for
712
    ///   bigger values to 5. For 3 rounds the algorithm is considered unsafe,
713
    ///   as in 2003 collisions could be found with a setting of 3 rounds only.
714
    /// </summary>
715
    property Rounds: UInt32 read GetRounds write SetRounds default 3;
716
  end;
717
718
  /// <summary>
719
  ///   In 2004 collisions for this one were found, so this one should be
720
  ///   considered to be unsafe.
721
  /// </summary>
722
  THash_Haval128 = class(THashBaseHaval)
723
  public
724
    class function DigestSize: UInt32; override;
725
  end;
726
727
  THash_Haval160 = class(THashBaseHaval)
728
  public
729
    class function DigestSize: UInt32; override;
730
  end;
731
732
  THash_Haval192 = class(THashBaseHaval)
733
  public
734
    class function DigestSize: UInt32; override;
735
  end;
736
737
  THash_Haval224 = class(THashBaseHaval)
738
  public
739
    class function DigestSize: UInt32; override;
740
  end;
741
742
  THash_Haval256 = class(THashBaseHaval)
743
  public
744
    class function DigestSize: UInt32; override;
745
  end;
746
747
  /// <summary>
748
  ///   This is actually an implementation of the 192 bit variant of the Tiger
749
  ///   hash algorithm with 3 rounds, unless a different value is assigned
750
  ///   to the rounds property. It is considered to be unsafe at least in the
751
  ///   192 Bit variant!
752
  /// </summary>
753
  THash_Tiger = class(THashBaseMD4, IDECHashRounds)
754
  private
755
    const
756
      /// <summary>
757
      ///   Minimum number of rounds for the Tigher hash function. Trying to set a
758
      ///   lower one sets the rounds to this value.
759
      /// </summary>
760
      cTigerMinRounds = 3;
761
      /// <summary>
762
      ///   Maximum number of rounds for the Tigher hash function. Trying to set a
763
      ///   higher one sets the rounds to this value.
764
      /// </summary>
765
      cTigerMaxRounds = 32;
766
    var
767
      /// <summary>
768
      ///   UInt32 for compatibility with 32 bit ASM implementation
769
      /// </summary>
770
      FRounds: UInt32;
771
      function  GetRounds: UInt32;
772
      procedure SetRounds(Value: UInt32);
773
  protected
774
    procedure DoInit; override;
775
    procedure DoTransform(Buffer: PUInt32Array); override;
776
  public
777
    class function DigestSize: UInt32; override;
778
    /// <summary>
779
    ///   Returns the minimum possible number for the rounds parameter
780
    /// </summary>
781
    function GetMinRounds: UInt32;
782
    /// <summary>
783
    ///   Returns the maximum possible number for the rounds parameter
784
    /// </summary>
785
    function GetMaxRounds: UInt32;
786
787
    /// <summary>
788
    ///   Defines the number of rounds the algorithm will perform on the data
789
    ///   passed. Valid values are in the range from 3-32 rounds and values
790
    ///   outside this range will lead to a rounds value of 3 or 32 to be used,
791
    ///   depending on whether a lower or higher value has been given.
792
    /// </summary>
793
    property Rounds: UInt32 read GetRounds write SetRounds default 3;
794
  end;
795
796
  /// <summary>
797
  ///   As there seem to exist 128 and 160 bit variants of Tiger, which seem to
798
  ///   be truncated variants of Tiger 192, but we want to keep compatibility
799
  ///   with old code we introduce an alias for the time being.
800
  ///   It is considered to be unsafe at least in the 192 Bit variant!
801
  /// </summary>
802
  THash_Tiger192 = THash_Tiger;
803
804
  /// <summary>
805
  ///   The Panama algorithm is being considered to be unsafe. Support is only
806
  ///   being provided for backward compatibility.
807
  /// </summary>
808
  THash_Panama = class(TDECHashAuthentication)
809
  private
810
    FLFSRBuffer: array[0..31, 0..7] of UInt32;
811
    FDigest: array[0..16] of UInt32;
812
    FTap: UInt32;
813
  protected
814
    procedure DoInit; override;
815
    procedure DoTransform(Buffer: PUInt32Array); override;
816
    procedure DoDone; override;
817
    procedure DoPull;
818
  public
819
    function Digest: PByteArray; override;
820
    class function DigestSize: UInt32; override;
821
    class function BlockSize: UInt32; override; // 32
822
  end;
823
824
  THashBaseWhirlpool = class(TDECHashAuthentication)
825
  private
826
    FDigest: array[0..15] of UInt32;
827
    FTableC: Pointer;
828
    FTableR: Pointer;
829
  protected
830
    procedure DoTransform(Buffer: PUInt32Array); override;
831
    procedure DoDone; override;
832
  public
833
    function Digest: PByteArray; override;
834
    class function DigestSize: UInt32; override;
835
    class function BlockSize: UInt32; override;
836
  end;
837
838
  /// <summary>
839
  ///   This is the original variant of the algorithmus. Do not use it as some
840
  ///   security flaw has been detected early on by its inventors. DEC contains
841
  ///   it for backwards compatibility and completeness.
842
  /// </summary>
843
  THash_Whirlpool0 = class(THashBaseWhirlpool)
844
  protected
845
    procedure DoInit; override;
846
  end;
847
848
  /// <summary>
849
  ///   This is variant of the algorithmus fixing the security flaw of the
850
  ///   original version Whirlpool0. Do not use it in new code as it has been
851
  ///   superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC)
852
  ///   variant which is additionally more safe as well! It is there for
853
  ///   backwards compatibility and completeness only.
854
  /// </summary>
855
  THash_WhirlpoolT = class(THashBaseWhirlpool)
856
  protected
857
    procedure DoInit; override;
858
  end;
859
860
  /// <summary>
861
  ///   The current version of Whirlpool but not the one used in code developed
862
  ///   against the older DEC 5.x versions. The name of the one used in your
863
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
864
  ///   class names where the name Whirlpool1 was already taken by the variant
865
  ///   nowadays known as Whirlpool-T.
866
  /// </summary>
867
  THash_Whirlpool1_ = class(THashBaseWhirlpool)
868
  protected
869
    procedure DoInit; override;
870
  end;
871
872
  {$IFDEF OLD_WHIRLPOOL_NAMES}
873
  /// <summary>
874
  ///   This is the original variant of the algorithmus. Do not use it as some
875
  ///   security flaw has been detected early on by its inventors. DEC contains
876
  ///   it for backwards compatibility and completeness.
877
  /// </summary>
878
  THash_Whirlpool = class(THash_Whirlpool0);
879
  /// <summary>
880
  ///   This is variant of the algorithmus fixing the security flaw of the
881
  ///   original version Whirlpool0. Do not use it in new code as it has been
882
  ///   superseeded by the optimized Whirlpool1 (THash_Whirlpool1 class in DEC)
883
  ///   variant which is additionally more safe as well! It is there for
884
  ///   backwards compatibility and completeness only.
885
  /// </summary>
886
  THash_Whirlpool1 = class(THash_WhirlpoolT);
887
  /// <summary>
888
  ///   The current version of Whirlpool but not the one used in code developed
889
  ///   against the older DEC 5.x versions. The name of the one used in your
890
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
891
  ///   class names where the name Whirlpool1 was already taken by the variant
892
  ///   nowadays known as Whirlpool-T.
893
  /// </summary>
894
  THash_Whirlpool1New = class(THash_Whirlpool1_);
895
  {$ELSE}
896
  /// <summary>
897
  ///   The current version of Whirlpool but not the one used in code developed
898
  ///   against the older DEC 5.x versions. The name of the one used in your
899
  ///   code differs, depending whether you opt tu use the old DEC 5.2 compatible
900
  ///   class names where the name Whirlpool1 was already taken by the variant
901
  ///   nowadays known as Whirlpool-T.
902
  /// </summary>
903
  THash_Whirlpool1 = class(THash_Whirlpool1_);
904
  {$ENDIF}
905
906
  THash_Square = class(TDECHashAuthentication)
907
  private
908
    FDigest: array[0..3] of UInt32;
909
  protected
910
    procedure DoInit; override;
911
    procedure DoTransform(Buffer: PUInt32Array); override;
912
    procedure DoDone; override;
913
  public
914
    function Digest: PByteArray; override;
915
    class function DigestSize: UInt32; override;
916
    class function BlockSize: UInt32; override;
917
  end;
918
919
  /// <summary>
920
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
921
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark there.
922
  /// </summary>
923
  THashBaseSnefru = class(TDECHashAuthentication, IDECHashRounds)
924
  private
925
    FDigest: array[0..23] of UInt32;
926
    /// <summary>
927
    ///   Number of rounds the loop will do on the data.
928
    ///   UInt32 for compatibility with 32 bit ASM implementation
929
    /// </summary>
930
    FRounds: UInt32;
931
    /// <summary>
932
    ///   Sets the number of rounds for the looping over the data
933
    /// </summary>
934
    procedure SetRounds(Value: UInt32);
935
    function  GetRounds: UInt32;
936
  protected
937
    procedure DoInit; override;
938
    procedure DoDone; override;
939
  public
940
    function Digest: PByteArray; override;
941
    ///   Returns the minimum possible number for the rounds parameter.
942
    ///   Value depends on Digest size which depends on concrete implementation
943
    /// </summary>
944
    function GetMinRounds: UInt32;
945
    ///   Returns the maximum possible number for the rounds parameter.
946
    ///   Value depends on Digest size which depends on concrete implementation
947
    /// </summary>
948
    function GetMaxRounds: UInt32;
949
950
    /// <summary>
951
    ///   Can be set from 2 to 8, default is 8. This is the number of rounds the
952
    ///   algorithm will use. With the default of 8 rounds it is being considered
953
    ///   as safe as of spring 2016, with less rounds this algorithm is considered
954
    ///   to be unsafe and even with 8 rounds it is not really strong.
955
    /// </summary>
956
    property Rounds: UInt32
957
      read   GetRounds
958
      write  SetRounds;
959
  end;
960
961
  /// <summary>
962
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
963
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark for
964
  ///   THashBaseSnefru.SecurityLevel.
965
  /// </summary>
966
  THash_Snefru128 = class(THashBaseSnefru)
967
  protected
968
    procedure DoTransform(Buffer: PUInt32Array); override;
969
  public
970
    class function DigestSize: UInt32; override;
971
    class function BlockSize: UInt32; override; // 48
972
  end;
973
974
  /// <summary>
975
  ///   This 1990 developed hash function was named after the Egyptian Pharaoh
976
  ///   Sneferu. Be sure to set SecurityLevel to at least 8. See remark
977
  ///   THashBaseSnefru.SecurityLevel.
978
  /// </summary>
979
  THash_Snefru256 = class(THashBaseSnefru)
980
  protected
981
    procedure DoTransform(Buffer: PUInt32Array); override;
982
  public
983
    class function DigestSize: UInt32; override;
984
    class function BlockSize: UInt32; override; // 32
985
  end;
986
987
  THash_Sapphire = class(TDECHashAuthentication)
988
  private
989
    FCards: array[0..255] of UInt32;
990
    FDigest: array[0..15] of UInt32;
991
    FRotor: UInt32;
992
    FRatchet: UInt32;
993
    FAvalanche: UInt32;
994
    FPlain: UInt32;
995
    FCipher: UInt32;
996
    FDigestSize: UInt8;
997
998
    /// <summary>
999
    ///   Set the length of the output hash value in byte.
1000
    /// </summary>
1001
    /// <param name="Value">
1002
    ///   Minimum value is 1 byte, maximum value is 64 byte = 512 bit.
1003
    ///   Sets the size to the default size returned by DigestSize otherwise.
1004
    ///   is specified.
1005
    /// </param>
1006
    procedure SetDigestSize(Value: UInt8);
1007
  protected
1008
    procedure DoInit; override;
1009
    procedure DoDone; override;
1010
    procedure DoTransform(Buffer: PUInt32Array); override;
1011
  public
1012
    function Digest: PByteArray; override;
1013
    function DigestAsBytes: TBytes; override;
1014
    /// <summary>
1015
    ///   Returns the default digest/hash size in bit. If RequestedDigestSize is
1016
    ///   not set, the defauilt size returned here is being used.
1017
    /// </summary>
1018
    class function DigestSize: UInt32; override;
1019
    /// <summary>
1020
    ///   Returns on which block size this algorithm operates. Since the Sapphire
1021
    ///   hash originates from a Sapphire stream cipher algorithm this is always 1.
1022
    /// </summary>
1023
    class function BlockSize: UInt32; override;
1024
    procedure Calc(const Data; DataSize: Integer); override;
1025
1026
    /// <summary>
1027
    ///   This property defines the length of the output from the hash calculation
1028
    ///   in byte. The maximum value is 64 byte = 512 bit. Values bigger 64 byte
1029
    ///   and a value of 0 lead to the default size returned by DigestSize otherwise.
1030
    ///   This setting is only respected by the DigestAsBytes method and all other
1031
    ///   convenience methods using that one like CalcStream, CalcString,
1032
    ///   DigestAsString or DigestAsRawString.
1033
    /// </summary>
1034
    property RequestedDigestSize: UInt8
1035
      read   FDigestSize
1036
      write  SetDigestSize;
1037
  end;
1038
1039
implementation
1040
1041
uses
1042
  DECData, DECDataHash;
1043
1044
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
1045
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
1046
1047
{$IFDEF X86ASM}
1048
  {$DEFINE INCLUDED} // allows having the DECHash.inc in the IDE's project manager
1049
  {$INCLUDE DECHash.asm86.inc}
1050
{$ENDIF !X86ASM}
1051
1052
{ Speed comparison of ASM vs. PurePascal Implementation. Valid only for Win32 compiler
1053
  and this was for DEC 5.1 and thus compiler versions < D2009!
1054
1055
                                           assembler                             pascal
1056
1057
  THash_SHA512    :       85.1 cycles/byte      17.62 Mb/sec      220.9 cycles/byte       6.79 Mb/sec  159%
1058
  THash_SHA384    :       85.2 cycles/byte      17.61 Mb/sec      220.0 cycles/byte       6.82 Mb/sec  158%
1059
  THash_Tiger     :       24.6 cycles/byte      60.98 Mb/sec       60.7 cycles/byte      24.69 Mb/sec  147%
1060
  THash_Haval128  :       13.3 cycles/byte     112.55 Mb/sec       26.0 cycles/byte      57.77 Mb/sec   95%
1061
  THash_SHA1      :       20.1 cycles/byte      74.80 Mb/sec       36.1 cycles/byte      41.51 Mb/sec   80%
1062
  THash_SHA       :       20.0 cycles/byte      75.03 Mb/sec       35.5 cycles/byte      42.21 Mb/sec   78%
1063
  THash_Haval160  :       13.2 cycles/byte     113.30 Mb/sec       22.7 cycles/byte      66.12 Mb/sec   71%
1064
  THash_Haval256  :       25.9 cycles/byte      57.84 Mb/sec       40.5 cycles/byte      37.07 Mb/sec   56%
1065
  THash_Snefru128 :      159.7 cycles/byte       9.39 Mb/sec      248.2 cycles/byte       6.04 Mb/sec   55%
1066
  THash_Snefru256 :      239.3 cycles/byte       6.27 Mb/sec      367.9 cycles/byte       4.08 Mb/sec   54%
1067
  THash_RipeMD256 :       14.5 cycles/byte     103.16 Mb/sec       21.4 cycles/byte      70.08 Mb/sec   47%
1068
  THash_MD4       :        5.8 cycles/byte     256.73 Mb/sec        8.5 cycles/byte     176.92 Mb/sec   45%
1069
1070
  THash_MD2       :      251.6 cycles/byte       5.96 Mb/sec      366.1 cycles/byte       4.10 Mb/sec   45%
1071
  THash_RipeMD128 :       15.2 cycles/byte      98.89 Mb/sec       21.2 cycles/byte      70.61 Mb/sec   40%
1072
  THash_RipeMD320 :       25.5 cycles/byte      58.73 Mb/sec       35.8 cycles/byte      41.87 Mb/sec   40%
1073
  THash_MD5       :        8.9 cycles/byte     169.43 Mb/sec       11.4 cycles/byte     131.01 Mb/sec   29%
1074
  THash_RipeMD160 :       26.5 cycles/byte      56.66 Mb/sec       31.4 cycles/byte      47.79 Mb/sec   19%
1075
  THash_Square    :       44.7 cycles/byte      33.58 Mb/sec       53.1 cycles/byte      28.23 Mb/sec   19%
1076
  THash_Haval192  :       32.5 cycles/byte      46.17 Mb/sec       37.6 cycles/byte      39.87 Mb/sec   18%
1077
  THash_WhirlpoolT:      104.9 cycles/byte      14.30 Mb/sec      122.8 cycles/byte      12.22 Mb/sec   17%
1078
  THash_Whirlpool0:      104.7 cycles/byte      14.33 Mb/sec      119.9 cycles/byte      12.51 Mb/sec   15%
1079
  THash_Sapphire  :       52.9 cycles/byte      28.35 Mb/sec       53.8 cycles/byte      27.86 Mb/sec    2%
1080
  THash_Haval224  :       32.0 cycles/byte      46.82 Mb/sec       32.3 cycles/byte      46.46 Mb/sec    1%
1081
  THash_SHA256    :       47.8 cycles/byte      31.35 Mb/sec       47.8 cycles/byte      31.39 Mb/sec    0%
1082
  THash_Panama    :        8.9 cycles/byte     169.01 Mb/sec        7.3 cycles/byte     206.55 Mb/sec  -18%
1083
}
1084
1085
resourcestring
1086
  /// <summary>
1087
  ///   Failure message when a hash algorithm is initialized with wrong parameters
1088
  /// </summary>
1089
  sHashInitFailure   = 'Invalid %0:s algorithm initialization parameters specified: %1:s';
1090
  /// <summary>
1091
  ///   Failure message when absorb is callt with a bitlength not divideable by 8
1092
  ///   without reminder or when it is called while already in squeezing state
1093
  /// </summary>
1094
  sSHA3AbsorbFailure = 'Absorb: number of bits mod 8 <> 0 or squeezing active. Bits: %0:d, '+
1095
                       'Squeezing: %1:s';
1096
  /// <summary>
1097
  ///   Part of the failure message shown when setting HashSize of Shake algorithms to 0
1098
  /// </summary>
1099
  sHashOutputLength0 = 'HashSize must not be 0';
1100
1101
{ THash_MD2 }
1102
1103
{$IFNDEF THash_MD2_asm}
1104
procedure THash_MD2.DoTransform(Buffer: PUInt32Array);
1105
var
1106
  I, J, T: UInt32;
1107
begin
1108
  for I := 0 to 3 do
1109
  begin
1110
    PUInt32Array(@FDigest[16])[I] := Buffer[I];
1111
    PUInt32Array(@FDigest[32])[I] := PUInt32Array(@FDigest[0])[I] xor PUInt32Array(@FDigest[16])[I];
1112
  end;
1113
  T := FDigest[63];
1114
  for I := 0 to 15 do
1115
  begin
1116
    T := FDigest[I + 48] xor MD2_PISubst[FDigest[I + 16] xor Byte(T)];
1117
    FDigest[I + 48] := Byte(T);
1118
  end;
1119
  T := 0;
1120
  for I := 0 to 17 do
1121
  begin
1122
    for J := 0 to 47 do
1123
    begin
1124
      T := FDigest[J] xor MD2_PISubst[T];
1125
      FDigest[J] := Byte(T);
1126
    end;
1127
    T := (T + I) and $FF;
1128
  end;
1129
end;
1130
{$ENDIF !THash_MD2_asm}
1131
1132
procedure THash_MD2.DoInit;
1133
begin
1134
  FillChar(FDigest, SizeOf(FDigest), 0);
1135
end;
1136
1137
procedure THash_MD2.DoDone;
1138
var
1139
  Remain: Integer;
1140
begin
1141
  Remain := FBufferSize - FBufferIndex;
1142
  FillChar(FBuffer[FBufferIndex], Remain, Remain);
1143
  DoTransform(Pointer(FBuffer));
1144
  Move(FDigest[48], FBuffer^, FBufferSize);
1145
  DoTransform(Pointer(FBuffer));
1146
end;
1147
1148
function THash_MD2.Digest: PByteArray;
1149
begin
1150
  Result := @FDigest;
1151
end;
1152
1153
class function THash_MD2.DigestSize: UInt32;
1154
begin
1155
  Result := 16;
1156
end;
1157
1158
class function THash_MD2.BlockSize: UInt32;
1159
begin
1160
  Result := 16;
1161
end;
1162
1163
{ THashBaseMD4 }
1164
1165
procedure THashBaseMD4.DoInit;
1166
begin
1167
  FDigest[0] := $67452301;
1168
  FDigest[1] := $EFCDAB89;
1169
  FDigest[2] := $98BADCFE;
1170
  FDigest[3] := $10325476;
1171
  FDigest[4] := $C3D2E1F0;
1172
  FDigest[5] := $76543210;
1173
  FDigest[6] := $FEDCBA98;
1174
  FDigest[7] := $89ABCDEF;
1175
  FDigest[8] := $01234567;
1176
  FDigest[9] := $3C2D1E0F;
1177
end;
1178
1179
procedure THashBaseMD4.DoDone;
1180
begin
1181
  if FCount[2] or FCount[3] <> 0 then
1182
    RaiseHashOverflowError;
1183
  if FPaddingByte = 0 then
1184
    FPaddingByte := $80;
1185
  FBuffer[FBufferIndex] := FPaddingByte;
1186
  Inc(FBufferIndex);
1187
  if FBufferIndex > FBufferSize - 8 then
1188
  begin
1189
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
1190
    DoTransform(Pointer(FBuffer));
1191
    FBufferIndex := 0;
1192
  end;
1193
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
1194
  Move(FCount, FBuffer[FBufferSize - 8], 8);
1195
  DoTransform(Pointer(FBuffer));
1196
end;
1197
1198
function THashBaseMD4.Digest: PByteArray;
1199
begin
1200
  Result := @FDigest;
1201
end;
1202
1203
class function THashBaseMD4.DigestSize: UInt32;
1204
begin
1205
  Result := 16;
1206
end;
1207
1208
class function THashBaseMD4.BlockSize: UInt32;
1209
begin
1210
  Result := 64;
1211
end;
1212
1213
{ THash_MD4 }
1214
1215
{$IFNDEF THash_MD4_asm}
1216
procedure THash_MD4.DoTransform(Buffer: PUInt32Array);
1217
const
1218
  S1 = $5A827999;
1219
  S2 = $6ED9EBA1;
1220
var
1221
  A, B, C, D: UInt32;
1222
begin
1223
  A := FDigest[0];
1224
  B := FDigest[1];
1225
  C := FDigest[2];
1226
  D := FDigest[3];
1227
1228
  Inc(A, B and C or not B and D + Buffer[ 0]); A := A shl  3 or A shr 29;
1229
  Inc(D, A and B or not A and C + Buffer[ 1]); D := D shl  7 or D shr 25;
1230
  Inc(C, D and A or not D and B + Buffer[ 2]); C := C shl 11 or C shr 21;
1231
  Inc(B, C and D or not C and A + Buffer[ 3]); B := B shl 19 or B shr 13;
1232
  Inc(A, B and C or not B and D + Buffer[ 4]); A := A shl  3 or A shr 29;
1233
  Inc(D, A and B or not A and C + Buffer[ 5]); D := D shl  7 or D shr 25;
1234
  Inc(C, D and A or not D and B + Buffer[ 6]); C := C shl 11 or C shr 21;
1235
  Inc(B, C and D or not C and A + Buffer[ 7]); B := B shl 19 or B shr 13;
1236
  Inc(A, B and C or not B and D + Buffer[ 8]); A := A shl  3 or A shr 29;
1237
  Inc(D, A and B or not A and C + Buffer[ 9]); D := D shl  7 or D shr 25;
1238
  Inc(C, D and A or not D and B + Buffer[10]); C := C shl 11 or C shr 21;
1239
  Inc(B, C and D or not C and A + Buffer[11]); B := B shl 19 or B shr 13;
1240
  Inc(A, B and C or not B and D + Buffer[12]); A := A shl  3 or A shr 29;
1241
  Inc(D, A and B or not A and C + Buffer[13]); D := D shl  7 or D shr 25;
1242
  Inc(C, D and A or not D and B + Buffer[14]); C := C shl 11 or C shr 21;
1243
  Inc(B, C and D or not C and A + Buffer[15]); B := B shl 19 or B shr 13;
1244
1245
  Inc(A, B and C or B and D or C and D + Buffer[ 0] + S1); A := A shl  3 or A shr 29;
1246
  Inc(D, A and B or A and C or B and C + Buffer[ 4] + S1); D := D shl  5 or D shr 27;
1247
  Inc(C, D and A or D and B or A and B + Buffer[ 8] + S1); C := C shl  9 or C shr 23;
1248
  Inc(B, C and D or C and A or D and A + Buffer[12] + S1); B := B shl 13 or B shr 19;
1249
  Inc(A, B and C or B and D or C and D + Buffer[ 1] + S1); A := A shl  3 or A shr 29;
1250
  Inc(D, A and B or A and C or B and C + Buffer[ 5] + S1); D := D shl  5 or D shr 27;
1251
  Inc(C, D and A or D and B or A and B + Buffer[ 9] + S1); C := C shl  9 or C shr 23;
1252
  Inc(B, C and D or C and A or D and A + Buffer[13] + S1); B := B shl 13 or B shr 19;
1253
  Inc(A, B and C or B and D or C and D + Buffer[ 2] + S1); A := A shl  3 or A shr 29;
1254
  Inc(D, A and B or A and C or B and C + Buffer[ 6] + S1); D := D shl  5 or D shr 27;
1255
  Inc(C, D and A or D and B or A and B + Buffer[10] + S1); C := C shl  9 or C shr 23;
1256
  Inc(B, C and D or C and A or D and A + Buffer[14] + S1); B := B shl 13 or B shr 19;
1257
  Inc(A, B and C or B and D or C and D + Buffer[ 3] + S1); A := A shl  3 or A shr 29;
1258
  Inc(D, A and B or A and C or B and C + Buffer[ 7] + S1); D := D shl  5 or D shr 27;
1259
  Inc(C, D and A or D and B or A and B + Buffer[11] + S1); C := C shl  9 or C shr 23;
1260
  Inc(B, C and D or C and A or D and A + Buffer[15] + S1); B := B shl 13 or B shr 19;
1261
1262
  Inc(A, B xor C xor D + Buffer[ 0] + S2); A := A shl  3 or A shr 29;
1263
  Inc(D, A xor B xor C + Buffer[ 8] + S2); D := D shl  9 or D shr 23;
1264
  Inc(C, D xor A xor B + Buffer[ 4] + S2); C := C shl 11 or C shr 21;
1265
  Inc(B, C xor D xor A + Buffer[12] + S2); B := B shl 15 or B shr 17;
1266
  Inc(A, B xor C xor D + Buffer[ 2] + S2); A := A shl  3 or A shr 29;
1267
  Inc(D, A xor B xor C + Buffer[10] + S2); D := D shl  9 or D shr 23;
1268
  Inc(C, D xor A xor B + Buffer[ 6] + S2); C := C shl 11 or C shr 21;
1269
  Inc(B, C xor D xor A + Buffer[14] + S2); B := B shl 15 or B shr 17;
1270
  Inc(A, B xor C xor D + Buffer[ 1] + S2); A := A shl  3 or A shr 29;
1271
  Inc(D, A xor B xor C + Buffer[ 9] + S2); D := D shl  9 or D shr 23;
1272
  Inc(C, D xor A xor B + Buffer[ 5] + S2); C := C shl 11 or C shr 21;
1273
  Inc(B, C xor D xor A + Buffer[13] + S2); B := B shl 15 or B shr 17;
1274
  Inc(A, B xor C xor D + Buffer[ 3] + S2); A := A shl  3 or A shr 29;
1275
  Inc(D, A xor B xor C + Buffer[11] + S2); D := D shl  9 or D shr 23;
1276
  Inc(C, D xor A xor B + Buffer[ 7] + S2); C := C shl 11 or C shr 21;
1277
  Inc(B, C xor D xor A + Buffer[15] + S2); B := B shl 15 or B shr 17;
1278
1279
  Inc(FDigest[0], A);
1280
  Inc(FDigest[1], B);
1281
  Inc(FDigest[2], C);
1282
  Inc(FDigest[3], D);
1283
end;
1284
{$ENDIF}
1285
1286
{ THash_MD5 }
1287
1288
{$IFNDEF THash_MD5_asm}
1289
procedure THash_MD5.DoTransform(Buffer: PUInt32Array);
1290
var
1291
  A, B, C, D: UInt32;
1292
begin
1293
  A := FDigest[0];
1294
  B := FDigest[1];
1295
  C := FDigest[2];
1296
  D := FDigest[3];
1297
1298
  Inc(A, Buffer[ 0] + $D76AA478 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1299
  Inc(D, Buffer[ 1] + $E8C7B756 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1300
  Inc(C, Buffer[ 2] + $242070DB + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1301
  Inc(B, Buffer[ 3] + $C1BDCEEE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1302
  Inc(A, Buffer[ 4] + $F57C0FAF + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1303
  Inc(D, Buffer[ 5] + $4787C62A + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1304
  Inc(C, Buffer[ 6] + $A8304613 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1305
  Inc(B, Buffer[ 7] + $FD469501 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1306
  Inc(A, Buffer[ 8] + $698098D8 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1307
  Inc(D, Buffer[ 9] + $8B44F7AF + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1308
  Inc(C, Buffer[10] + $FFFF5BB1 + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1309
  Inc(B, Buffer[11] + $895CD7BE + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1310
  Inc(A, Buffer[12] + $6B901122 + (D xor (B and (C xor D)))); A := A shl  7 or A shr 25 + B;
1311
  Inc(D, Buffer[13] + $FD987193 + (C xor (A and (B xor C)))); D := D shl 12 or D shr 20 + A;
1312
  Inc(C, Buffer[14] + $A679438E + (B xor (D and (A xor B)))); C := C shl 17 or C shr 15 + D;
1313
  Inc(B, Buffer[15] + $49B40821 + (A xor (C and (D xor A)))); B := B shl 22 or B shr 10 + C;
1314
1315
  Inc(A, Buffer[ 1] + $F61E2562 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1316
  Inc(D, Buffer[ 6] + $C040B340 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1317
  Inc(C, Buffer[11] + $265E5A51 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1318
  Inc(B, Buffer[ 0] + $E9B6C7AA + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1319
  Inc(A, Buffer[ 5] + $D62F105D + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1320
  Inc(D, Buffer[10] + $02441453 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1321
  Inc(C, Buffer[15] + $D8A1E681 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1322
  Inc(B, Buffer[ 4] + $E7D3FBC8 + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1323
  Inc(A, Buffer[ 9] + $21E1CDE6 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1324
  Inc(D, Buffer[14] + $C33707D6 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1325
  Inc(C, Buffer[ 3] + $F4D50D87 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1326
  Inc(B, Buffer[ 8] + $455A14ED + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1327
  Inc(A, Buffer[13] + $A9E3E905 + (C xor (D and (B xor C)))); A := A shl  5 or A shr 27 + B;
1328
  Inc(D, Buffer[ 2] + $FCEFA3F8 + (B xor (C and (A xor B)))); D := D shl  9 or D shr 23 + A;
1329
  Inc(C, Buffer[ 7] + $676F02D9 + (A xor (B and (D xor A)))); C := C shl 14 or C shr 18 + D;
1330
  Inc(B, Buffer[12] + $8D2A4C8A + (D xor (A and (C xor D)))); B := B shl 20 or B shr 12 + C;
1331
1332
  Inc(A, Buffer[ 5] + $FFFA3942 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1333
  Inc(D, Buffer[ 8] + $8771F681 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1334
  Inc(C, Buffer[11] + $6D9D6122 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1335
  Inc(B, Buffer[14] + $FDE5380C + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1336
  Inc(A, Buffer[ 1] + $A4BEEA44 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1337
  Inc(D, Buffer[ 4] + $4BDECFA9 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1338
  Inc(C, Buffer[ 7] + $F6BB4B60 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1339
  Inc(B, Buffer[10] + $BEBFBC70 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1340
  Inc(A, Buffer[13] + $289B7EC6 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1341
  Inc(D, Buffer[ 0] + $EAA127FA + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1342
  Inc(C, Buffer[ 3] + $D4EF3085 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1343
  Inc(B, Buffer[ 6] + $04881D05 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1344
  Inc(A, Buffer[ 9] + $D9D4D039 + (B xor C xor D)); A := A shl  4 or A shr 28 + B;
1345
  Inc(D, Buffer[12] + $E6DB99E5 + (A xor B xor C)); D := D shl 11 or D shr 21 + A;
1346
  Inc(C, Buffer[15] + $1FA27CF8 + (D xor A xor B)); C := C shl 16 or C shr 16 + D;
1347
  Inc(B, Buffer[ 2] + $C4AC5665 + (C xor D xor A)); B := B shl 23 or B shr  9 + C;
1348
1349
  Inc(A, Buffer[ 0] + $F4292244 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1350
  Inc(D, Buffer[ 7] + $432AFF97 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1351
  Inc(C, Buffer[14] + $AB9423A7 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1352
  Inc(B, Buffer[ 5] + $FC93A039 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1353
  Inc(A, Buffer[12] + $655B59C3 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1354
  Inc(D, Buffer[ 3] + $8F0CCC92 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1355
  Inc(C, Buffer[10] + $FFEFF47D + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1356
  Inc(B, Buffer[ 1] + $85845DD1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1357
  Inc(A, Buffer[ 8] + $6FA87E4F + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1358
  Inc(D, Buffer[15] + $FE2CE6E0 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1359
  Inc(C, Buffer[ 6] + $A3014314 + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1360
  Inc(B, Buffer[13] + $4E0811A1 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1361
  Inc(A, Buffer[ 4] + $F7537E82 + (C xor (B or not D))); A := A shl  6 or A shr 26 + B;
1362
  Inc(D, Buffer[11] + $BD3AF235 + (B xor (A or not C))); D := D shl 10 or D shr 22 + A;
1363
  Inc(C, Buffer[ 2] + $2AD7D2BB + (A xor (D or not B))); C := C shl 15 or C shr 17 + D;
1364
  Inc(B, Buffer[ 9] + $EB86D391 + (D xor (C or not A))); B := B shl 21 or B shr 11 + C;
1365
1366
  Inc(FDigest[0], A);
1367
  Inc(FDigest[1], B);
1368
  Inc(FDigest[2], C);
1369
  Inc(FDigest[3], D);
1370
end;
1371
{$ENDIF}
1372
1373
{ THash_RipeMD128 }
1374
1375
{$IFNDEF X86ASM}
1376
const
1377
  RipeS1 = $5A827999;
1378
  RipeS2 = $6ED9EBA1;
1379
  RipeS3 = $8F1BBCDC;
1380
  RipeS4 = $A953FD4E;
1381
  RipeS5 = $50A28BE6;
1382
  RipeS6 = $5C4DD124;
1383
  RipeS7 = $6D703EF3;
1384
  RipeS8 = $7A6D76E9;
1385
{$ENDIF !X86ASM}
1386
1387
{$IFNDEF THash_RipeMD128_asm}
1388
procedure THash_RipeMD128.DoTransform(Buffer: PUInt32Array);
1389
var
1390
  A1, B1, C1, D1: UInt32;
1391
  A2, B2, C2, D2: UInt32;
1392
  T: UInt32;
1393
begin
1394
  A1 := FDigest[0];
1395
  B1 := FDigest[1];
1396
  C1 := FDigest[2];
1397
  D1 := FDigest[3];
1398
  A2 := FDigest[0];
1399
  B2 := FDigest[1];
1400
  C2 := FDigest[2];
1401
  D2 := FDigest[3];
1402
1403
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21;
1404
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18;
1405
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17;
1406
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20;
1407
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl  5 or A1 shr 27;
1408
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl  8 or D1 shr 24;
1409
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl  7 or C1 shr 25;
1410
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl  9 or B1 shr 23;
1411
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21;
1412
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19;
1413
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18;
1414
  Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17;
1415
  Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl  6 or A1 shr 26;
1416
  Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl  7 or D1 shr 25;
1417
  Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl  9 or C1 shr 23;
1418
  Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl  8 or B1 shr 24;
1419
1420
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1421
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26;
1422
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24;
1423
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19;
1424
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1425
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl  9 or D1 shr 23;
1426
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl  7 or C1 shr 25;
1427
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17;
1428
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1429
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20;
1430
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17;
1431
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl  9 or B1 shr 23;
1432
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1433
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl  7 or D1 shr 25;
1434
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19;
1435
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20;
1436
1437
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21;
1438
  Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19;
1439
  Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl  6 or C1 shr 26;
1440
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl  7 or B1 shr 25;
1441
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1442
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23;
1443
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1444
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17;
1445
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1446
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl  8 or D1 shr 24;
1447
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1448
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl  6 or B1 shr 26;
1449
  Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl  5 or A1 shr 27;
1450
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20;
1451
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl  7 or C1 shr 25;
1452
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl  5 or B1 shr 27;
1453
1454
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21;
1455
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20;
1456
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18;
1457
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17;
1458
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18;
1459
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17;
1460
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl  9 or C1 shr 23;
1461
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl  8 or B1 shr 24;
1462
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl  9 or A1 shr 23;
1463
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18;
1464
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1465
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26;
1466
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24;
1467
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl  6 or D1 shr 26;
1468
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1469
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20;
1470
1471
  T := A1; A1 := A2; A2 := T;
1472
  T := B1; B1 := B2; B2 := T;
1473
  T := C1; C1 := C2; C2 := T;
1474
  T := D1; D1 := D2; D2 := T;
1475
1476
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24;
1477
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl  9 or D1 shr 23;
1478
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl  9 or C1 shr 23;
1479
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1480
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19;
1481
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17;
1482
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17;
1483
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl  5 or B1 shr 27;
1484
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl  7 or A1 shr 25;
1485
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl  7 or D1 shr 25;
1486
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl  8 or C1 shr 24;
1487
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1488
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18;
1489
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18;
1490
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20;
1491
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl  6 or B1 shr 26;
1492
1493
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl  9 or A1 shr 23;
1494
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19;
1495
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17;
1496
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1497
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20;
1498
  Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl  8 or D1 shr 24;
1499
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl  9 or C1 shr 23;
1500
  Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1501
  Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl  7 or A1 shr 25;
1502
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl  7 or D1 shr 25;
1503
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20;
1504
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1505
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl  6 or A1 shr 26;
1506
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17;
1507
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19;
1508
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1509
1510
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl  9 or A1 shr 23;
1511
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl  7 or D1 shr 25;
1512
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17;
1513
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21;
1514
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl  8 or A1 shr 24;
1515
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26;
1516
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26;
1517
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1518
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20;
1519
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1520
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl  5 or C1 shr 27;
1521
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1522
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19;
1523
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1524
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl  7 or C1 shr 25;
1525
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl  5 or B1 shr 27;
1526
1527
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17;
1528
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl  5 or D1 shr 27;
1529
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl  8 or C1 shr 24;
1530
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21;
1531
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18;
1532
  Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18;
1533
  Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl  6 or C1 shr 26;
1534
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18;
1535
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  6 or A1 shr 26;
1536
  Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl  9 or D1 shr 23;
1537
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20;
1538
  Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl  9 or B1 shr 23;
1539
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20;
1540
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl  5 or D1 shr 27;
1541
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17;
1542
  Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl  8 or B1 shr 24;
1543
1544
  Inc(D1, C2 + FDigest[1]);
1545
  FDigest[1] := FDigest[2] + D2 + A1;
1546
  FDigest[2] := FDigest[3] + A2 + B1;
1547
  FDigest[3] := FDIgest[0] + B2 + C1;
1548
  FDigest[0] := D1;
1549
end;
1550
{$ENDIF !THash_RipeMD128_asm}
1551
1552
{ THash_RipeMD160 }
1553
1554
{$IFNDEF THash_RipeMD160_asm}
1555
procedure THash_RipeMD160.DoTransform(Buffer: PUInt32Array);
1556
var
1557
  A1, B1, C1, D1, E1: UInt32;
1558
  A2, B2, C2, D2, E2: UInt32;
1559
  T: UInt32;
1560
begin
1561
  A1 := FDigest[0];
1562
  B1 := FDigest[1];
1563
  C1 := FDigest[2];
1564
  D1 := FDigest[3];
1565
  E1 := FDigest[4];
1566
1567
  A2 := FDigest[0];
1568
  B2 := FDigest[1];
1569
  C2 := FDigest[2];
1570
  D2 := FDigest[3];
1571
  E2 := FDigest[4];
1572
1573
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1574
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
1575
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
1576
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1577
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1578
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1579
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1580
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1581
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1582
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1583
  Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1584
  Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1585
  Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1586
  Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1587
  Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1588
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1589
1590
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1591
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1592
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
1593
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1594
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1595
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1596
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
1597
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1598
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1599
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1600
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1601
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1602
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1603
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1604
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1605
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1606
1607
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
1608
  Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1609
  Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1610
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
1611
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
1612
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1613
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1614
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1615
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1616
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1617
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1618
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1619
  Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1620
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1621
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1622
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1623
1624
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1625
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
1626
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1627
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1628
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1629
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1630
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1631
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1632
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1633
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1634
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
1635
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1636
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1637
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1638
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1639
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1640
1641
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1642
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
1643
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
1644
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
1645
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1646
  Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
1647
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1648
  Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1649
  Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1650
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1651
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1652
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1653
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1654
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
1655
  Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
1656
  Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1657
1658
  T := A1; A1 := A2; A2 := T;
1659
  T := B1; B1 := B2; B2 := T;
1660
  T := C1; C1 := C2; C2 := T;
1661
  T := D1; D1 := D2; D2 := T;
1662
  T := E1; E1 := E2; E2 := T;
1663
1664
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1665
  Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1666
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1667
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1668
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1669
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
1670
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1671
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1672
  Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1673
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1674
  Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1675
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1676
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1677
  Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1678
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
1679
  Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl  6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22;
1680
1681
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
1682
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1683
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1684
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1685
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1686
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1687
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1688
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1689
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
1690
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
1691
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1692
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
1693
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1694
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1695
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1696
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1697
1698
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1699
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
1700
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
1701
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
1702
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
1703
  Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
1704
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
1705
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22;
1706
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1707
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22;
1708
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1709
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1710
  Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
1711
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
1712
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
1713
  Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
1714
1715
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
1716
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1717
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
1718
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
1719
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
1720
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
1721
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1722
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1723
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1724
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1725
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1726
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
1727
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
1728
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
1729
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
1730
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
1731
1732
  Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
1733
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
1734
  Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
1735
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
1736
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
1737
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
1738
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
1739
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
1740
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
1741
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
1742
  Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
1743
  Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
1744
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
1745
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
1746
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
1747
  Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22;
1748
1749
  Inc(D1, C2 + FDigest[1]);
1750
  FDigest[1] := FDigest[2] + D2 + E1;
1751
  FDigest[2] := FDigest[3] + E2 + A1;
1752
  FDigest[3] := FDigest[4] + A2 + B1;
1753
  FDigest[4] := FDigest[0] + B2 + C1;
1754
  FDigest[0] := D1;
1755
end;
1756
{$ENDIF !THash_RipeMD160_asm}
1757
1758
class function THash_RipeMD160.DigestSize: UInt32;
1759
begin
1760
  Result := 20;
1761
end;
1762
1763
{ THash_RipeMD256 }
1764
1765
{$IFNDEF THash_RipeMD256_asm}
1766
procedure THash_RipeMD256.DoTransform(Buffer: PUInt32Array);
1767
var
1768
  A1, B1, C1, D1: UInt32;
1769
  A2, B2, C2, D2: UInt32;
1770
  T: UInt32;
1771
begin
1772
  A1 := FDigest[0];
1773
  B1 := FDigest[1];
1774
  C1 := FDigest[2];
1775
  D1 := FDigest[3];
1776
1777
  A2 := FDigest[4];
1778
  B2 := FDigest[5];
1779
  C2 := FDigest[6];
1780
  D2 := FDigest[7];
1781
1782
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21;
1783
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 1]); D1 := D1 shl 14 or D1 shr 18;
1784
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 15 or C1 shr 17;
1785
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 3]); B1 := B1 shl 12 or B1 shr 20;
1786
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 4]); A1 := A1 shl  5 or A1 shr 27;
1787
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 5]); D1 := D1 shl  8 or D1 shr 24;
1788
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 6]); C1 := C1 shl  7 or C1 shr 25;
1789
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 7]); B1 := B1 shl  9 or B1 shr 23;
1790
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 11 or A1 shr 21;
1791
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 9]); D1 := D1 shl 13 or D1 shr 19;
1792
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 14 or C1 shr 18;
1793
  Inc(B1, C1 xor D1 xor A1 + Buffer[11]); B1 := B1 shl 15 or B1 shr 17;
1794
  Inc(A1, B1 xor C1 xor D1 + Buffer[12]); A1 := A1 shl  6 or A1 shr 26;
1795
  Inc(D1, A1 xor B1 xor C1 + Buffer[13]); D1 := D1 shl  7 or D1 shr 25;
1796
  Inc(C1, D1 xor A1 xor B1 + Buffer[14]); C1 := C1 shl  9 or C1 shr 23;
1797
  Inc(B1, C1 xor D1 xor A1 + Buffer[15]); B1 := B1 shl  8 or B1 shr 24;
1798
1799
  T := A1; A1 := A2; A2 := T;
1800
  T := B1; B1 := B2; B2 := T;
1801
  T := C1; C1 := C2; C2 := T;
1802
  T := D1; D1 := D2; D2 := T;
1803
1804
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24;
1805
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[14] + RipeS5); D1 := D1 shl  9 or D1 shr 23;
1806
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS5); C1 := C1 shl  9 or C1 shr 23;
1807
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 0] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1808
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 9] + RipeS5); A1 := A1 shl 13 or A1 shr 19;
1809
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS5); D1 := D1 shl 15 or D1 shr 17;
1810
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS5); C1 := C1 shl 15 or C1 shr 17;
1811
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS5); B1 := B1 shl  5 or B1 shr 27;
1812
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS5); A1 := A1 shl  7 or A1 shr 25;
1813
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS5); D1 := D1 shl  7 or D1 shr 25;
1814
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[15] + RipeS5); C1 := C1 shl  8 or C1 shr 24;
1815
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 8] + RipeS5); B1 := B1 shl 11 or B1 shr 21;
1816
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS5); A1 := A1 shl 14 or A1 shr 18;
1817
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS5); D1 := D1 shl 14 or D1 shr 18;
1818
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS5); C1 := C1 shl 12 or C1 shr 20;
1819
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[12] + RipeS5); B1 := B1 shl  6 or B1 shr 26;
1820
1821
  T := B1; B1 := B2; B2 := T;
1822
  T := C1; C1 := C2; C2 := T;
1823
  T := D1; D1 := D2; D2 := T;
1824
1825
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1826
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26;
1827
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24;
1828
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19;
1829
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1830
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); D1 := D1 shl  9 or D1 shr 23;
1831
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[15] + RipeS1); C1 := C1 shl  7 or C1 shr 25;
1832
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS1); B1 := B1 shl 15 or B1 shr 17;
1833
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[12] + RipeS1); A1 := A1 shl  7 or A1 shr 25;
1834
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS1); D1 := D1 shl 12 or D1 shr 20;
1835
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 9] + RipeS1); C1 := C1 shl 15 or C1 shr 17;
1836
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 5] + RipeS1); B1 := B1 shl  9 or B1 shr 23;
1837
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 2] + RipeS1); A1 := A1 shl 11 or A1 shr 21;
1838
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS1); D1 := D1 shl  7 or D1 shr 25;
1839
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[11] + RipeS1); C1 := C1 shl 13 or C1 shr 19;
1840
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 8] + RipeS1); B1 := B1 shl 12 or B1 shr 20;
1841
1842
  T := A1; A1 := A2; A2 := T;
1843
  T := B1; B1 := B2; B2 := T;
1844
  T := C1; C1 := C2; C2 := T;
1845
  T := D1; D1 := D2; D2 := T;
1846
1847
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 6] + RipeS6); A1 := A1 shl  9 or A1 shr 23;
1848
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19;
1849
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17;
1850
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1851
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20;
1852
  Inc(D1, A1 or not B1 xor C1 + Buffer[13] + RipeS6); D1 := D1 shl  8 or D1 shr 24;
1853
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS6); C1 := C1 shl  9 or C1 shr 23;
1854
  Inc(B1, C1 or not D1 xor A1 + Buffer[10] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1855
  Inc(A1, B1 or not C1 xor D1 + Buffer[14] + RipeS6); A1 := A1 shl  7 or A1 shr 25;
1856
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS6); D1 := D1 shl  7 or D1 shr 25;
1857
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS6); C1 := C1 shl 12 or C1 shr 20;
1858
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS6); B1 := B1 shl  7 or B1 shr 25;
1859
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS6); A1 := A1 shl  6 or A1 shr 26;
1860
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS6); D1 := D1 shl 15 or D1 shr 17;
1861
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 1] + RipeS6); C1 := C1 shl 13 or C1 shr 19;
1862
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 2] + RipeS6); B1 := B1 shl 11 or B1 shr 21;
1863
1864
  T := A1; A1 := A2; A2 := T;
1865
  T := C1; C1 := C2; C2 := T;
1866
  T := D1; D1 := D2; D2 := T;
1867
1868
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS2); A1 := A1 shl 11 or A1 shr 21;
1869
  Inc(D1, A1 or not B1 xor C1 + Buffer[10] + RipeS2); D1 := D1 shl 13 or D1 shr 19;
1870
  Inc(C1, D1 or not A1 xor B1 + Buffer[14] + RipeS2); C1 := C1 shl  6 or C1 shr 26;
1871
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 4] + RipeS2); B1 := B1 shl  7 or B1 shr 25;
1872
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 9] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1873
  Inc(D1, A1 or not B1 xor C1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23;
1874
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1875
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17;
1876
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18;
1877
  Inc(D1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); D1 := D1 shl  8 or D1 shr 24;
1878
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 0] + RipeS2); C1 := C1 shl 13 or C1 shr 19;
1879
  Inc(B1, C1 or not D1 xor A1 + Buffer[ 6] + RipeS2); B1 := B1 shl  6 or B1 shr 26;
1880
  Inc(A1, B1 or not C1 xor D1 + Buffer[13] + RipeS2); A1 := A1 shl  5 or A1 shr 27;
1881
  Inc(D1, A1 or not B1 xor C1 + Buffer[11] + RipeS2); D1 := D1 shl 12 or D1 shr 20;
1882
  Inc(C1, D1 or not A1 xor B1 + Buffer[ 5] + RipeS2); C1 := C1 shl  7 or C1 shr 25;
1883
  Inc(B1, C1 or not D1 xor A1 + Buffer[12] + RipeS2); B1 := B1 shl  5 or B1 shr 27;
1884
1885
  T := A1; A1 := A2; A2 := T;
1886
  T := B1; B1 := B2; B2 := T;
1887
  T := C1; C1 := C2; C2 := T;
1888
  T := D1; D1 := D2; D2 := T;
1889
1890
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[15] + RipeS7); A1 := A1 shl  9 or A1 shr 23;
1891
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS7); D1 := D1 shl  7 or D1 shr 25;
1892
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 1] + RipeS7); C1 := C1 shl 15 or C1 shr 17;
1893
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 3] + RipeS7); B1 := B1 shl 11 or B1 shr 21;
1894
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 7] + RipeS7); A1 := A1 shl  8 or A1 shr 24;
1895
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26;
1896
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26;
1897
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1898
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20;
1899
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1900
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[12] + RipeS7); C1 := C1 shl  5 or C1 shr 27;
1901
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[ 2] + RipeS7); B1 := B1 shl 14 or B1 shr 18;
1902
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS7); A1 := A1 shl 13 or A1 shr 19;
1903
  Inc(D1, A1 and B1 or not A1 and C1 + Buffer[ 0] + RipeS7); D1 := D1 shl 13 or D1 shr 19;
1904
  Inc(C1, D1 and A1 or not D1 and B1 + Buffer[ 4] + RipeS7); C1 := C1 shl  7 or C1 shr 25;
1905
  Inc(B1, C1 and D1 or not C1 and A1 + Buffer[13] + RipeS7); B1 := B1 shl  5 or B1 shr 27;
1906
1907
  T := A1; A1 := A2; A2 := T;
1908
  T := B1; B1 := B2; B2 := T;
1909
  T := D1; D1 := D2; D2 := T;
1910
1911
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS3); A1 := A1 shl 11 or A1 shr 21;
1912
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 9] + RipeS3); D1 := D1 shl 12 or D1 shr 20;
1913
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[11] + RipeS3); C1 := C1 shl 14 or C1 shr 18;
1914
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[10] + RipeS3); B1 := B1 shl 15 or B1 shr 17;
1915
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS3); A1 := A1 shl 14 or A1 shr 18;
1916
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS3); D1 := D1 shl 15 or D1 shr 17;
1917
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[12] + RipeS3); C1 := C1 shl  9 or C1 shr 23;
1918
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 4] + RipeS3); B1 := B1 shl  8 or B1 shr 24;
1919
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[13] + RipeS3); A1 := A1 shl  9 or A1 shr 23;
1920
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18;
1921
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1922
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26;
1923
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24;
1924
  Inc(D1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); D1 := D1 shl  6 or D1 shr 26;
1925
  Inc(C1, D1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); C1 := C1 shl  5 or C1 shr 27;
1926
  Inc(B1, C1 and A1 or D1 and not A1 + Buffer[ 2] + RipeS3); B1 := B1 shl 12 or B1 shr 20;
1927
1928
  T := A1; A1 := A2; A2 := T;
1929
  T := B1; B1 := B2; B2 := T;
1930
  T := C1; C1 := C2; C2 := T;
1931
  T := D1; D1 := D2; D2 := T;
1932
1933
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 15 or A1 shr 17;
1934
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 6]); D1 := D1 shl  5 or D1 shr 27;
1935
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 4]); C1 := C1 shl  8 or C1 shr 24;
1936
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 1]); B1 := B1 shl 11 or B1 shr 21;
1937
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 3]); A1 := A1 shl 14 or A1 shr 18;
1938
  Inc(D1, A1 xor B1 xor C1 + Buffer[11]); D1 := D1 shl 14 or D1 shr 18;
1939
  Inc(C1, D1 xor A1 xor B1 + Buffer[15]); C1 := C1 shl  6 or C1 shr 26;
1940
  Inc(B1, C1 xor D1 xor A1 + Buffer[ 0]); B1 := B1 shl 14 or B1 shr 18;
1941
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  6 or A1 shr 26;
1942
  Inc(D1, A1 xor B1 xor C1 + Buffer[12]); D1 := D1 shl  9 or D1 shr 23;
1943
  Inc(C1, D1 xor A1 xor B1 + Buffer[ 2]); C1 := C1 shl 12 or C1 shr 20;
1944
  Inc(B1, C1 xor D1 xor A1 + Buffer[13]); B1 := B1 shl  9 or B1 shr 23;
1945
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 9]); A1 := A1 shl 12 or A1 shr 20;
1946
  Inc(D1, A1 xor B1 xor C1 + Buffer[ 7]); D1 := D1 shl  5 or D1 shr 27;
1947
  Inc(C1, D1 xor A1 xor B1 + Buffer[10]); C1 := C1 shl 15 or C1 shr 17;
1948
  Inc(B1, C1 xor D1 xor A1 + Buffer[14]); B1 := B1 shl  8 or B1 shr 24;
1949
1950
  Inc(FDigest[0], A2);
1951
  Inc(FDigest[1], B2);
1952
  Inc(FDigest[2], C2);
1953
  Inc(FDigest[3], D1);
1954
1955
  Inc(FDigest[4], A1);
1956
  Inc(FDigest[5], B1);
1957
  Inc(FDigest[6], C1);
1958
  Inc(FDigest[7], D2);
1959
end;
1960
{$ENDIF !THash_RipeMD256_asm}
1961
1962
procedure THash_RipeMD256.DoInit;
1963
begin
1964
  FDigest[0] := $67452301;
1965
  FDigest[1] := $EFCDAB89;
1966
  FDigest[2] := $98BADCFE;
1967
  FDigest[3] := $10325476;
1968
  FDigest[4] := $76543210;
1969
  FDigest[5] := $FEDCBA98;
1970
  FDigest[6] := $89ABCDEF;
1971
  FDigest[7] := $01234567;
1972
  FDigest[8] := $01234567;
1973
  FDigest[9] := $3C2D1E0F;
1974
end;
1975
1976
class function THash_RipeMD256.DigestSize: UInt32;
1977
begin
1978
  Result := 32;
1979
end;
1980
1981
{ THash_RipeMD320 }
1982
1983
{$IFNDEF THash_RipeMD320_asm}
1984
procedure THash_RipeMD320.DoTransform(Buffer: PUInt32Array);
1985
var
1986
  A1, B1, C1, D1, E1: UInt32;
1987
  A2, B2, C2, D2, E2: UInt32;
1988
  T: UInt32;
1989
begin
1990
  A1 := FDigest[0];
1991
  B1 := FDigest[1];
1992
  C1 := FDigest[2];
1993
  D1 := FDigest[3];
1994
  E1 := FDigest[4];
1995
  A2 := FDigest[5];
1996
  B2 := FDigest[6];
1997
  C2 := FDigest[7];
1998
  D2 := FDigest[8];
1999
  E2 := FDigest[9];
2000
2001
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 0]); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2002
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 1]); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
2003
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 2]); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
2004
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 3]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2005
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 4]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2006
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 5]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2007
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 6]); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2008
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 7]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2009
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 8]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2010
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 9]); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2011
  Inc(A1, B1 xor C1 xor D1 + Buffer[10]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2012
  Inc(E1, A1 xor B1 xor C1 + Buffer[11]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2013
  Inc(D1, E1 xor A1 xor B1 + Buffer[12]); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2014
  Inc(C1, D1 xor E1 xor A1 + Buffer[13]); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2015
  Inc(B1, C1 xor D1 xor E1 + Buffer[14]); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2016
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2017
2018
  T := A1; A1 := A2; A2 := T;
2019
  T := B1; B1 := B2; B2 := T;
2020
  T := C1; C1 := C2; C2 := T;
2021
  T := D1; D1 := D2; D2 := T;
2022
  T := E1; E1 := E2; E2 := T;
2023
2024
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 5] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2025
  Inc(E1, B1 or not C1 xor A1 + Buffer[14] + RipeS5); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2026
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 7] + RipeS5); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2027
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 0] + RipeS5); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2028
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 9] + RipeS5); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2029
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS5); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
2030
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS5); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2031
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 4] + RipeS5); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2032
  Inc(C1, E1 or not A1 xor D1 + Buffer[13] + RipeS5); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2033
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 6] + RipeS5); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2034
  Inc(A1, C1 or not D1 xor B1 + Buffer[15] + RipeS5); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2035
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 8] + RipeS5); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2036
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 1] + RipeS5); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2037
  Inc(C1, E1 or not A1 xor D1 + Buffer[10] + RipeS5); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2038
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS5); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
2039
  Inc(A1, C1 or not D1 xor B1 + Buffer[12] + RipeS5); A1 := A1 shl  6 or A1 shr 26 + E1; C1 := C1 shl 10 or C1 shr 22;
2040
2041
  T := B1; B1 := B2; B2 := T;
2042
  T := C1; C1 := C2; C2 := T;
2043
  T := D1; D1 := D2; D2 := T;
2044
  T := E1; E1 := E2; E2 := T;
2045
2046
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS1); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2047
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 4] + RipeS1); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2048
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[13] + RipeS1); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
2049
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 1] + RipeS1); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2050
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[10] + RipeS1); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2051
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 6] + RipeS1); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2052
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[15] + RipeS1); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
2053
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 3] + RipeS1); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2054
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[12] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2055
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS1); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2056
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 9] + RipeS1); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2057
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 5] + RipeS1); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2058
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS1); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2059
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[14] + RipeS1); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2060
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[11] + RipeS1); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2061
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 8] + RipeS1); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2062
2063
  T := A1; A1 := A2; A2 := T;
2064
  T := B1; B1 := B2; B2 := T;
2065
  T := C1; C1 := C2; C2 := T;
2066
  T := D1; D1 := D2; D2 := T;
2067
  T := E1; E1 := E2; E2 := T;
2068
2069
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 6] + RipeS6); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2070
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[11] + RipeS6); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2071
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 3] + RipeS6); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2072
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 7] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2073
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 0] + RipeS6); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2074
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS6); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2075
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 5] + RipeS6); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2076
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[10] + RipeS6); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2077
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[14] + RipeS6); B1 := B1 shl  7 or B1 shr 25 + A1; D1 := D1 shl 10 or D1 shr 22;
2078
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[15] + RipeS6); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
2079
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 8] + RipeS6); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2080
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[12] + RipeS6); D1 := D1 shl  7 or D1 shr 25 + C1; A1 := A1 shl 10 or A1 shr 22;
2081
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 4] + RipeS6); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2082
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS6); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2083
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 1] + RipeS6); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2084
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 2] + RipeS6); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2085
2086
  T := A1; A1 := A2; A2 := T;
2087
  T := C1; C1 := C2; C2 := T;
2088
  T := D1; D1 := D2; D2 := T;
2089
  T := E1; E1 := E2; E2 := T;
2090
2091
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 3] + RipeS2); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
2092
  Inc(C1, D1 or not E1 xor A1 + Buffer[10] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2093
  Inc(B1, C1 or not D1 xor E1 + Buffer[14] + RipeS2); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2094
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 4] + RipeS2); A1 := A1 shl  7 or A1 shr 25 + E1; C1 := C1 shl 10 or C1 shr 22;
2095
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 9] + RipeS2); E1 := E1 shl 14 or E1 shr 18 + D1; B1 := B1 shl 10 or B1 shr 22;
2096
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS2); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2097
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 8] + RipeS2); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2098
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS2); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2099
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 2] + RipeS2); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2100
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS2); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2101
  Inc(D1, E1 or not A1 xor B1 + Buffer[ 0] + RipeS2); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2102
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS2); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2103
  Inc(B1, C1 or not D1 xor E1 + Buffer[13] + RipeS2); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2104
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS2); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2105
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 5] + RipeS2); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2106
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS2); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2107
2108
  T := A1; A1 := A2; A2 := T;
2109
  T := B1; B1 := B2; B2 := T;
2110
  T := C1; C1 := C2; C2 := T;
2111
  T := D1; D1 := D2; D2 := T;
2112
  T := E1; E1 := E2; E2 := T;
2113
2114
  Inc(D1, E1 or not A1 xor B1 + Buffer[15] + RipeS7); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2115
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 5] + RipeS7); C1 := C1 shl  7 or C1 shr 25 + B1; E1 := E1 shl 10 or E1 shr 22;
2116
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 1] + RipeS7); B1 := B1 shl 15 or B1 shr 17 + A1; D1 := D1 shl 10 or D1 shr 22;
2117
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 3] + RipeS7); A1 := A1 shl 11 or A1 shr 21 + E1; C1 := C1 shl 10 or C1 shr 22;
2118
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 7] + RipeS7); E1 := E1 shl  8 or E1 shr 24 + D1; B1 := B1 shl 10 or B1 shr 22;
2119
  Inc(D1, E1 or not A1 xor B1 + Buffer[14] + RipeS7); D1 := D1 shl  6 or D1 shr 26 + C1; A1 := A1 shl 10 or A1 shr 22;
2120
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 6] + RipeS7); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2121
  Inc(B1, C1 or not D1 xor E1 + Buffer[ 9] + RipeS7); B1 := B1 shl 14 or B1 shr 18 + A1; D1 := D1 shl 10 or D1 shr 22;
2122
  Inc(A1, B1 or not C1 xor D1 + Buffer[11] + RipeS7); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2123
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 8] + RipeS7); E1 := E1 shl 13 or E1 shr 19 + D1; B1 := B1 shl 10 or B1 shr 22;
2124
  Inc(D1, E1 or not A1 xor B1 + Buffer[12] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2125
  Inc(C1, D1 or not E1 xor A1 + Buffer[ 2] + RipeS7); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2126
  Inc(B1, C1 or not D1 xor E1 + Buffer[10] + RipeS7); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2127
  Inc(A1, B1 or not C1 xor D1 + Buffer[ 0] + RipeS7); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2128
  Inc(E1, A1 or not B1 xor C1 + Buffer[ 4] + RipeS7); E1 := E1 shl  7 or E1 shr 25 + D1; B1 := B1 shl 10 or B1 shr 22;
2129
  Inc(D1, E1 or not A1 xor B1 + Buffer[13] + RipeS7); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2130
2131
  T := A1; A1 := A2; A2 := T;
2132
  T := B1; B1 := B2; B2 := T;
2133
  T := D1; D1 := D2; D2 := T;
2134
  T := E1; E1 := E2; E2 := T;
2135
2136
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 1] + RipeS3); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2137
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[ 9] + RipeS3); B1 := B1 shl 12 or B1 shr 20 + A1; D1 := D1 shl 10 or D1 shr 22;
2138
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[11] + RipeS3); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2139
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[10] + RipeS3); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2140
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 0] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2141
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 8] + RipeS3); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2142
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[12] + RipeS3); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2143
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[ 4] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2144
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[13] + RipeS3); E1 := E1 shl  9 or E1 shr 23 + D1; B1 := B1 shl 10 or B1 shr 22;
2145
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 3] + RipeS3); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2146
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 7] + RipeS3); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
2147
  Inc(B1, C1 and E1 or D1 and not E1 + Buffer[15] + RipeS3); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2148
  Inc(A1, B1 and D1 or C1 and not D1 + Buffer[14] + RipeS3); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2149
  Inc(E1, A1 and C1 or B1 and not C1 + Buffer[ 5] + RipeS3); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2150
  Inc(D1, E1 and B1 or A1 and not B1 + Buffer[ 6] + RipeS3); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2151
  Inc(C1, D1 and A1 or E1 and not A1 + Buffer[ 2] + RipeS3); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2152
2153
  T := A1; A1 := A2; A2 := T;
2154
  T := B1; B1 := B2; B2 := T;
2155
  T := C1; C1 := C2; C2 := T;
2156
  T := D1; D1 := D2; D2 := T;
2157
  T := E1; E1 := E2; E2 := T;
2158
2159
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 8] + RipeS8); C1 := C1 shl 15 or C1 shr 17 + B1; E1 := E1 shl 10 or E1 shr 22;
2160
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[ 6] + RipeS8); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2161
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 4] + RipeS8); A1 := A1 shl  8 or A1 shr 24 + E1; C1 := C1 shl 10 or C1 shr 22;
2162
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 1] + RipeS8); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2163
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[ 3] + RipeS8); D1 := D1 shl 14 or D1 shr 18 + C1; A1 := A1 shl 10 or A1 shr 22;
2164
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[11] + RipeS8); C1 := C1 shl 14 or C1 shr 18 + B1; E1 := E1 shl 10 or E1 shr 22;
2165
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[15] + RipeS8); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2166
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 0] + RipeS8); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2167
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 5] + RipeS8); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2168
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[12] + RipeS8); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2169
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[ 2] + RipeS8); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2170
  Inc(B1, C1 and D1 or not C1 and E1 + Buffer[13] + RipeS8); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2171
  Inc(A1, B1 and C1 or not B1 and D1 + Buffer[ 9] + RipeS8); A1 := A1 shl 12 or A1 shr 20 + E1; C1 := C1 shl 10 or C1 shr 22;
2172
  Inc(E1, A1 and B1 or not A1 and C1 + Buffer[ 7] + RipeS8); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
2173
  Inc(D1, E1 and A1 or not E1 and B1 + Buffer[10] + RipeS8); D1 := D1 shl 15 or D1 shr 17 + C1; A1 := A1 shl 10 or A1 shr 22;
2174
  Inc(C1, D1 and E1 or not D1 and A1 + Buffer[14] + RipeS8); C1 := C1 shl  8 or C1 shr 24 + B1; E1 := E1 shl 10 or E1 shr 22;
2175
2176
  T := A1; A1 := A2; A2 := T;
2177
  T := B1; B1 := B2; B2 := T;
2178
  T := C1; C1 := C2; C2 := T;
2179
  T := E1; E1 := E2; E2 := T;
2180
2181
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 4] + RipeS4); B1 := B1 shl  9 or B1 shr 23 + A1; D1 := D1 shl 10 or D1 shr 22;
2182
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 0] + RipeS4); A1 := A1 shl 15 or A1 shr 17 + E1; C1 := C1 shl 10 or C1 shr 22;
2183
  Inc(E1, B1 or not C1 xor A1 + Buffer[ 5] + RipeS4); E1 := E1 shl  5 or E1 shr 27 + D1; B1 := B1 shl 10 or B1 shr 22;
2184
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 9] + RipeS4); D1 := D1 shl 11 or D1 shr 21 + C1; A1 := A1 shl 10 or A1 shr 22;
2185
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 7] + RipeS4); C1 := C1 shl  6 or C1 shr 26 + B1; E1 := E1 shl 10 or E1 shr 22;
2186
  Inc(B1, D1 or not E1 xor C1 + Buffer[12] + RipeS4); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
2187
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 2] + RipeS4); A1 := A1 shl 13 or A1 shr 19 + E1; C1 := C1 shl 10 or C1 shr 22;
2188
  Inc(E1, B1 or not C1 xor A1 + Buffer[10] + RipeS4); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2189
  Inc(D1, A1 or not B1 xor E1 + Buffer[14] + RipeS4); D1 := D1 shl  5 or D1 shr 27 + C1; A1 := A1 shl 10 or A1 shr 22;
2190
  Inc(C1, E1 or not A1 xor D1 + Buffer[ 1] + RipeS4); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2191
  Inc(B1, D1 or not E1 xor C1 + Buffer[ 3] + RipeS4); B1 := B1 shl 13 or B1 shr 19 + A1; D1 := D1 shl 10 or D1 shr 22;
2192
  Inc(A1, C1 or not D1 xor B1 + Buffer[ 8] + RipeS4); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2193
  Inc(E1, B1 or not C1 xor A1 + Buffer[11] + RipeS4); E1 := E1 shl 11 or E1 shr 21 + D1; B1 := B1 shl 10 or B1 shr 22;
2194
  Inc(D1, A1 or not B1 xor E1 + Buffer[ 6] + RipeS4); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
2195
  Inc(C1, E1 or not A1 xor D1 + Buffer[15] + RipeS4); C1 := C1 shl  5 or C1 shr 27 + B1; E1 := E1 shl 10 or E1 shr 22;
2196
  Inc(B1, D1 or not E1 xor C1 + Buffer[13] + RipeS4); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2197
2198
  T := A1; A1 := A2; A2 := T;
2199
  T := B1; B1 := B2; B2 := T;
2200
  T := C1; C1 := C2; C2 := T;
2201
  T := D1; D1 := D2; D2 := T;
2202
  T := E1; E1 := E2; E2 := T;
2203
2204
  Inc(B1, C1 xor D1 xor E1 + Buffer[12]); B1 := B1 shl  8 or B1 shr 24 + A1; D1 := D1 shl 10 or D1 shr 22;
2205
  Inc(A1, B1 xor C1 xor D1 + Buffer[15]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
2206
  Inc(E1, A1 xor B1 xor C1 + Buffer[10]); E1 := E1 shl 12 or E1 shr 20 + D1; B1 := B1 shl 10 or B1 shr 22;
2207
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 4]); D1 := D1 shl  9 or D1 shr 23 + C1; A1 := A1 shl 10 or A1 shr 22;
2208
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 1]); C1 := C1 shl 12 or C1 shr 20 + B1; E1 := E1 shl 10 or E1 shr 22;
2209
  Inc(B1, C1 xor D1 xor E1 + Buffer[ 5]); B1 := B1 shl  5 or B1 shr 27 + A1; D1 := D1 shl 10 or D1 shr 22;
2210
  Inc(A1, B1 xor C1 xor D1 + Buffer[ 8]); A1 := A1 shl 14 or A1 shr 18 + E1; C1 := C1 shl 10 or C1 shr 22;
2211
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 7]); E1 := E1 shl  6 or E1 shr 26 + D1; B1 := B1 shl 10 or B1 shr 22;
2212
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 6]); D1 := D1 shl  8 or D1 shr 24 + C1; A1 := A1 shl 10 or A1 shr 22;
2213
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 2]); C1 := C1 shl 13 or C1 shr 19 + B1; E1 := E1 shl 10 or E1 shr 22;
2214
  Inc(B1, C1 xor D1 xor E1 + Buffer[13]); B1 := B1 shl  6 or B1 shr 26 + A1; D1 := D1 shl 10 or D1 shr 22;
2215
  Inc(A1, B1 xor C1 xor D1 + Buffer[14]); A1 := A1 shl  5 or A1 shr 27 + E1; C1 := C1 shl 10 or C1 shr 22;
2216
  Inc(E1, A1 xor B1 xor C1 + Buffer[ 0]); E1 := E1 shl 15 or E1 shr 17 + D1; B1 := B1 shl 10 or B1 shr 22;
2217
  Inc(D1, E1 xor A1 xor B1 + Buffer[ 3]); D1 := D1 shl 13 or D1 shr 19 + C1; A1 := A1 shl 10 or A1 shr 22;
2218
  Inc(C1, D1 xor E1 xor A1 + Buffer[ 9]); C1 := C1 shl 11 or C1 shr 21 + B1; E1 := E1 shl 10 or E1 shr 22;
2219
  Inc(B1, C1 xor D1 xor E1 + Buffer[11]); B1 := B1 shl 11 or B1 shr 21 + A1; D1 := D1 shl 10 or D1 shr 22;
2220
2221
  Inc(FDigest[0], A2);
2222
  Inc(FDigest[1], B2);
2223
  Inc(FDigest[2], C2);
2224
  Inc(FDigest[3], D2);
2225
  Inc(FDigest[4], E1);
2226
  Inc(FDigest[5], A1);
2227
  Inc(FDigest[6], B1);
2228
  Inc(FDigest[7], C1);
2229
  Inc(FDigest[8], D1);
2230
  Inc(FDigest[9], E2);
2231
end;
2232
{$ENDIF !THash_RipeMD320_asm}
2233
2234
class function THash_RipeMD320.DigestSize: UInt32;
2235
begin
2236
  Result := 40;
2237
end;
2238
2239
{ THash_SHA }
2240
2241
{$IFNDEF THash_SHA_asm}
2242
procedure THash_SHA0.DoTransform(Buffer: PUInt32Array);
2243
var
2244
  A, B, C, D, E, T: UInt32;
2245
  W: array[0..79] of UInt32;
2246
  I: Integer;
2247
begin
2248
  SwapUInt32Buffer(Buffer[0], W, 16);
2249
  if ClassType <> THash_SHA1 then
2250
  begin
2251
    for I := 16 to 79 do
2252
    begin
2253
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
2254
      W[I] := T;
2255
    end;
2256
  end
2257
  else
2258
  begin
2259
    for I := 16 to 79 do
2260
    begin
2261
      T := W[I - 3] xor W[I - 8] xor W[I - 14] xor W[I - 16];
2262
      W[I] := T shl 1 or T shr 31;
2263
    end;
2264
  end;
2265
2266
  A := FDigest[0];
2267
  B := FDigest[1];
2268
  C := FDigest[2];
2269
  D := FDigest[3];
2270
  E := FDigest[4];
2271
2272
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 0] + $5A827999); B := B shr 2 or B shl 30;
2273
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 1] + $5A827999); A := A shr 2 or A shl 30;
2274
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 2] + $5A827999); E := E shr 2 or E shl 30;
2275
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 3] + $5A827999); D := D shr 2 or D shl 30;
2276
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 4] + $5A827999); C := C shr 2 or C shl 30;
2277
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[ 5] + $5A827999); B := B shr 2 or B shl 30;
2278
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[ 6] + $5A827999); A := A shr 2 or A shl 30;
2279
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[ 7] + $5A827999); E := E shr 2 or E shl 30;
2280
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[ 8] + $5A827999); D := D shr 2 or D shl 30;
2281
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[ 9] + $5A827999); C := C shr 2 or C shl 30;
2282
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[10] + $5A827999); B := B shr 2 or B shl 30;
2283
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[11] + $5A827999); A := A shr 2 or A shl 30;
2284
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[12] + $5A827999); E := E shr 2 or E shl 30;
2285
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[13] + $5A827999); D := D shr 2 or D shl 30;
2286
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[14] + $5A827999); C := C shr 2 or C shl 30;
2287
  Inc(E, (A shl 5 or A shr 27) + (D xor (B and (C xor D))) + W[15] + $5A827999); B := B shr 2 or B shl 30;
2288
  Inc(D, (E shl 5 or E shr 27) + (C xor (A and (B xor C))) + W[16] + $5A827999); A := A shr 2 or A shl 30;
2289
  Inc(C, (D shl 5 or D shr 27) + (B xor (E and (A xor B))) + W[17] + $5A827999); E := E shr 2 or E shl 30;
2290
  Inc(B, (C shl 5 or C shr 27) + (A xor (D and (E xor A))) + W[18] + $5A827999); D := D shr 2 or D shl 30;
2291
  Inc(A, (B shl 5 or B shr 27) + (E xor (C and (D xor E))) + W[19] + $5A827999); C := C shr 2 or C shl 30;
2292
2293
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[20] + $6ED9EBA1); B := B shr 2 or B shl 30;
2294
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[21] + $6ED9EBA1); A := A shr 2 or A shl 30;
2295
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[22] + $6ED9EBA1); E := E shr 2 or E shl 30;
2296
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[23] + $6ED9EBA1); D := D shr 2 or D shl 30;
2297
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[24] + $6ED9EBA1); C := C shr 2 or C shl 30;
2298
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[25] + $6ED9EBA1); B := B shr 2 or B shl 30;
2299
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[26] + $6ED9EBA1); A := A shr 2 or A shl 30;
2300
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[27] + $6ED9EBA1); E := E shr 2 or E shl 30;
2301
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[28] + $6ED9EBA1); D := D shr 2 or D shl 30;
2302
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[29] + $6ED9EBA1); C := C shr 2 or C shl 30;
2303
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[30] + $6ED9EBA1); B := B shr 2 or B shl 30;
2304
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[31] + $6ED9EBA1); A := A shr 2 or A shl 30;
2305
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[32] + $6ED9EBA1); E := E shr 2 or E shl 30;
2306
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[33] + $6ED9EBA1); D := D shr 2 or D shl 30;
2307
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[34] + $6ED9EBA1); C := C shr 2 or C shl 30;
2308
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[35] + $6ED9EBA1); B := B shr 2 or B shl 30;
2309
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[36] + $6ED9EBA1); A := A shr 2 or A shl 30;
2310
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[37] + $6ED9EBA1); E := E shr 2 or E shl 30;
2311
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[38] + $6ED9EBA1); D := D shr 2 or D shl 30;
2312
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[39] + $6ED9EBA1); C := C shr 2 or C shl 30;
2313
2314
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[40] + $8F1BBCDC); B := B shr 2 or B shl 30;
2315
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[41] + $8F1BBCDC); A := A shr 2 or A shl 30;
2316
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[42] + $8F1BBCDC); E := E shr 2 or E shl 30;
2317
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[43] + $8F1BBCDC); D := D shr 2 or D shl 30;
2318
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[44] + $8F1BBCDC); C := C shr 2 or C shl 30;
2319
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[45] + $8F1BBCDC); B := B shr 2 or B shl 30;
2320
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[46] + $8F1BBCDC); A := A shr 2 or A shl 30;
2321
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[47] + $8F1BBCDC); E := E shr 2 or E shl 30;
2322
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[48] + $8F1BBCDC); D := D shr 2 or D shl 30;
2323
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[49] + $8F1BBCDC); C := C shr 2 or C shl 30;
2324
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[50] + $8F1BBCDC); B := B shr 2 or B shl 30;
2325
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[51] + $8F1BBCDC); A := A shr 2 or A shl 30;
2326
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[52] + $8F1BBCDC); E := E shr 2 or E shl 30;
2327
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[53] + $8F1BBCDC); D := D shr 2 or D shl 30;
2328
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[54] + $8F1BBCDC); C := C shr 2 or C shl 30;
2329
  Inc(E, (A shl 5 or A shr 27) + ((B and C) or (D and (B or C))) + W[55] + $8F1BBCDC); B := B shr 2 or B shl 30;
2330
  Inc(D, (E shl 5 or E shr 27) + ((A and B) or (C and (A or B))) + W[56] + $8F1BBCDC); A := A shr 2 or A shl 30;
2331
  Inc(C, (D shl 5 or D shr 27) + ((E and A) or (B and (E or A))) + W[57] + $8F1BBCDC); E := E shr 2 or E shl 30;
2332
  Inc(B, (C shl 5 or C shr 27) + ((D and E) or (A and (D or E))) + W[58] + $8F1BBCDC); D := D shr 2 or D shl 30;
2333
  Inc(A, (B shl 5 or B shr 27) + ((C and D) or (E and (C or D))) + W[59] + $8F1BBCDC); C := C shr 2 or C shl 30;
2334
2335
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[60] + $CA62C1D6); B := B shr 2 or B shl 30;
2336
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[61] + $CA62C1D6); A := A shr 2 or A shl 30;
2337
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[62] + $CA62C1D6); E := E shr 2 or E shl 30;
2338
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[63] + $CA62C1D6); D := D shr 2 or D shl 30;
2339
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[64] + $CA62C1D6); C := C shr 2 or C shl 30;
2340
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[65] + $CA62C1D6); B := B shr 2 or B shl 30;
2341
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[66] + $CA62C1D6); A := A shr 2 or A shl 30;
2342
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[67] + $CA62C1D6); E := E shr 2 or E shl 30;
2343
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[68] + $CA62C1D6); D := D shr 2 or D shl 30;
2344
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[69] + $CA62C1D6); C := C shr 2 or C shl 30;
2345
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[70] + $CA62C1D6); B := B shr 2 or B shl 30;
2346
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[71] + $CA62C1D6); A := A shr 2 or A shl 30;
2347
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[72] + $CA62C1D6); E := E shr 2 or E shl 30;
2348
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[73] + $CA62C1D6); D := D shr 2 or D shl 30;
2349
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[74] + $CA62C1D6); C := C shr 2 or C shl 30;
2350
  Inc(E, (A shl 5 or A shr 27) + (D xor B xor C) + W[75] + $CA62C1D6); B := B shr 2 or B shl 30;
2351
  Inc(D, (E shl 5 or E shr 27) + (C xor A xor B) + W[76] + $CA62C1D6); A := A shr 2 or A shl 30;
2352
  Inc(C, (D shl 5 or D shr 27) + (B xor E xor A) + W[77] + $CA62C1D6); E := E shr 2 or E shl 30;
2353
  Inc(B, (C shl 5 or C shr 27) + (A xor D xor E) + W[78] + $CA62C1D6); D := D shr 2 or D shl 30;
2354
  Inc(A, (B shl 5 or B shr 27) + (E xor C xor D) + W[79] + $CA62C1D6); C := C shr 2 or C shl 30;
2355
2356
  Inc(FDigest[0], A);
2357
  Inc(FDigest[1], B);
2358
  Inc(FDigest[2], C);
2359
  Inc(FDigest[3], D);
2360
  Inc(FDigest[4], E);
2361
end;
2362
{$ENDIF !THash_SHA_asm}
2363
2364
procedure THash_SHA0.DoDone;
2365
begin
2366
  if FCount[2] or FCount[3] <> 0 then
2367
    RaiseHashOverflowError;
2368
  if FPaddingByte = 0 then
2369
    FPaddingByte := $80;
2370
  FBuffer[FBufferIndex] := FPaddingByte;
2371
  Inc(FBufferIndex);
2372
  if FBufferIndex > FBufferSize - 8 then
2373
  begin
2374
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2375
    DoTransform(Pointer(FBuffer));
2376
    FBufferIndex := 0;
2377
  end;
2378
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2379
  PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]);
2380
  PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]);
2381
  DoTransform(Pointer(FBuffer));
2382
  SwapUInt32Buffer(FDigest, FDigest, SizeOf(FDigest) div 4);
2383
end;
2384
2385
class function THash_SHA0.DigestSize: UInt32;
2386
begin
2387
  Result := 20;
2388
end;
2389
2390
{ THash_SHA256 }
2391
2392
procedure THash_SHA256.DoInit;
2393
begin
2394
  FDigest[0]:= $6A09E667;
2395
  FDigest[1]:= $BB67AE85;
2396
  FDigest[2]:= $3C6EF372;
2397
  FDigest[3]:= $A54FF53A;
2398
  FDigest[4]:= $510E527F;
2399
  FDigest[5]:= $9B05688C;
2400
  FDigest[6]:= $1F83D9AB;
2401
  FDigest[7]:= $5BE0CD19;
2402
end;
2403
2404
{$IFNDEF THash_SHA256_asm}
2405
procedure THash_SHA256.DoTransform(Buffer: PUInt32Array);
2406
var
2407
  I: Integer;
2408
  A, B, C, D, E, F, G, H: UInt32;
2409
  T1, T2: UInt32;
2410
  W: array[0..63] of UInt32;
2411
begin
2412
  SwapUInt32Buffer(Buffer[0], W, 16);
2413
2414
  for I := 16 to 63 do
2415
  begin
2416
    T1 := W[I - 15];
2417
    T2 := W[I - 2];
2418
    W[I] := W[I - 16] + W[I - 7] +
2419
            ((T1 shr  7 or T1 shl 25) xor (T1 shr 18 or T1 shl 14) xor (T1 shr  3)) +
2420
            ((T2 shr 17 or T2 shl 15) xor (T2 shr 19 or T2 shl 13) xor (T2 shr 10));
2421
  end;
2422
2423
  // calculate new hash values
2424
  A := FDigest[0];
2425
  B := FDigest[1];
2426
  C := FDigest[2];
2427
  D := FDigest[3];
2428
  E := FDigest[4];
2429
  F := FDigest[5];
2430
  G := FDigest[6];
2431
  H := FDigest[7];
2432
2433
  for I := 0 to 63 do
2434
  begin
2435
    T1 := ((E shr 6 or E shl 26) xor (E shr 11 or E shl 21) xor
2436
           (E shr 25 or E shl 7)) + H + (((F xor G) and E) xor G) + SHA_256K[I] + W[I];
2437
    T2 := ((A shr 2 or A shl 30) xor (A shr 13 or A shl 19) xor
2438
           (A shr 22 or A shl 10)) + (((B or C) and A) or (B and C));
2439
    H := G; G := F; F := E; E := D + T1; D := C; C := B; B := A; A := T1 + T2;
2440
  end;
2441
2442
  Inc(FDigest[0], A);
2443
  Inc(FDigest[1], B);
2444
  Inc(FDigest[2], C);
2445
  Inc(FDigest[3], D);
2446
  Inc(FDigest[4], E);
2447
  Inc(FDigest[5], F);
2448
  Inc(FDigest[6], G);
2449
  Inc(FDigest[7], H);
2450
end;
2451
{$ENDIF !THash_SHA256_asm}
2452
2453
class function THash_SHA256.DigestSize: UInt32;
2454
begin
2455
  Result := 32;
2456
end;
2457
2458
{ THash_SHA224 }
2459
2460
class function THash_SHA224.BlockSize: UInt32;
2461
begin
2462
  Result := 64;
2463
end;
2464
2465
class function THash_SHA224.DigestSize: UInt32;
2466
begin
2467
  Result := 28;
2468
end;
2469
2470
procedure THash_SHA224.DoInit;
2471
begin
2472
  FDigest[0]:= $C1059ED8;
2473
  FDigest[1]:= $367CD507;
2474
  FDigest[2]:= $3070DD17;
2475
  FDigest[3]:= $F70E5939;
2476
  FDigest[4]:= $FFC00B31;
2477
  FDigest[5]:= $68581511;
2478
  FDigest[6]:= $64F98FA7;
2479
  FDigest[7]:= $BEFA4FA4;
2480
end;
2481
2482
{ THash_SHA384 }
2483
2484
procedure THash_SHA384.DoInit;
2485
begin
2486
  FDigest[0] := Int64($CBBB9D5DC1059ED8);
2487
  FDigest[1] := Int64($629A292A367CD507);
2488
  FDigest[2] := Int64($9159015A3070DD17);
2489
  FDigest[3] := Int64($152FECD8F70E5939);
2490
  FDigest[4] := Int64($67332667FFC00B31);
2491
  FDigest[5] := Int64($8EB44A8768581511);
2492
  FDigest[6] := Int64($DB0C2E0D64F98FA7);
2493
  FDigest[7] := Int64($47B5481DBEFA4FA4);
2494
end;
2495
2496
{$IFNDEF THash_SHA384_asm}
2497
procedure THash_SHA384.DoTransform(Buffer: PUInt32Array);
2498
var
2499
  A, B, C, D, E, F, G, H: UInt64;
2500
  T1, T2: UInt64;
2501
  I: Integer;
2502
  W: array [0..79] of UInt64;
2503
begin
2504
{ TODO : The array passed is a UInt32 array, which doesn't fit with the name of this method!}
2505
  SwapInt64Buffer(Buffer[0], W, 16);
2506
2507
  // calculate other 64 uint64
2508
  for I := 16 to 79 do
2509
  begin
2510
    T1 := W[I - 15];
2511
    T2 := W[I - 2];
2512
    W[I] := W[I - 16] + W[I - 7] +
2513
            ((T1 shr  1 or T1 shl 63) xor (T1 shr  8 or T1 shl 56) xor (T1 shr  7)) +
2514
            ((T2 shr 19 or T2 shl 45) xor (T2 shr 61 or T2 shl  3) xor (T2 shr  6));
2515
  end;
2516
2517
  // calculate new hash values
2518
  A := FDigest[0];
2519
  B := FDigest[1];
2520
  C := FDigest[2];
2521
  D := FDigest[3];
2522
  E := FDigest[4];
2523
  F := FDigest[5];
2524
  G := FDigest[6];
2525
  H := FDigest[7];
2526
2527
  for I := 0 to 79 do
2528
  begin
2529
    T1 := ((E shr 14 or E shl 50) xor (E shr 18 or E shl 46) xor
2530
           (E shr 41 or E shl 23)) + H + (((F xor G) and E) xor G) + SHA_512K[I] + W[I];
2531
    T2 := ((A shr 28 or A shl 36) xor (A shr 34 or A shl 30) xor
2532
           (A shr 39 or A shl 25)) + (((B or C) and A) or (B and C));
2533
    H := G;
2534
    G := F;
2535
    F := E;
2536
    E := D + T1;
2537
    D := C;
2538
    C := B;
2539
    B := A;
2540
    A := T1 + T2;
2541
  end;
2542
2543
  Inc(FDigest[0], A);
2544
  Inc(FDigest[1], B);
2545
  Inc(FDigest[2], C);
2546
  Inc(FDigest[3], D);
2547
  Inc(FDigest[4], E);
2548
  Inc(FDigest[5], F);
2549
  Inc(FDigest[6], G);
2550
  Inc(FDigest[7], H);
2551
end;
2552
{$ENDIF !THash_SHA384_asm}
2553
2554
procedure THash_SHA384.DoDone;
2555
begin
2556
  if FPaddingByte = 0 then
2557
    FPaddingByte := $80;
2558
  FBuffer[FBufferIndex] := FPaddingByte;
2559
  Inc(FBufferIndex);
2560
  if FBufferIndex > FBufferSize - 16 then
2561
  begin
2562
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2563
    DoTransform(Pointer(FBuffer));
2564
    FBufferIndex := 0;
2565
  end;
2566
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
2567
  SwapUInt32Buffer(FCount, FCount, 4);
2568
  PUInt32(@FBuffer[FBufferSize - 16])^ := FCount[3];
2569
  PUInt32(@FBuffer[FBufferSize - 12])^ := FCount[2];
2570
  PUInt32(@FBuffer[FBufferSize -  8])^ := FCount[1];
2571
  PUInt32(@FBuffer[FBufferSize -  4])^ := FCount[0];
2572
  DoTransform(Pointer(FBuffer));
2573
  SwapInt64Buffer(FDigest, FDigest, SizeOf(FDigest) div 8);
2574
end;
2575
2576
function THash_SHA384.Digest: PByteArray;
2577
begin
2578
  Result := @FDigest;
2579
end;
2580
2581
class function THash_SHA384.DigestSize: UInt32;
2582
begin
2583
  Result := 48;
2584
end;
2585
2586
class function THash_SHA384.BlockSize: UInt32;
2587
begin
2588
  Result := 128;
2589
end;
2590
2591
{ THash_SHA512 }
2592
2593
procedure THash_SHA512.DoInit;
2594
begin
2595
  FDigest[0] := Int64($6A09E667F3BCC908);
2596
  FDigest[1] := Int64($BB67AE8584CAA73B);
2597
  FDigest[2] := Int64($3C6EF372FE94F82B);
2598
  FDigest[3] := Int64($A54FF53A5F1D36F1);
2599
  FDigest[4] := Int64($510E527FADE682D1);
2600
  FDigest[5] := Int64($9B05688C2B3E6C1F);
2601
  FDigest[6] := Int64($1F83D9ABFB41BD6B);
2602
  FDigest[7] := Int64($5BE0CD19137E2179);
2603
end;
2604
2605
class function THash_SHA512.DigestSize: UInt32;
2606
begin
2607
  Result := 64;
2608
end;
2609
2610
{ THashBaseHaval }
2611
2612
procedure THashBaseHaval.SetRounds(Value: UInt32);
2613
begin
2614
  if (Value < GetMinRounds) or (Value > 5) then
2615
  begin
2616
    if DigestSize <= 20 then
2617
      Value := 3
2618
    else
2619
    begin
2620
      if DigestSize <= 28 then
2621
        Value := 4
2622
      else
2623
        Value := 5;
2624
    end;
2625
  end;
2626
  FRounds := Value;
2627
  case FRounds of
2628
    3: FTransform := DoTransform3;
2629
    4: FTransform := DoTransform4;
2630
    5: FTransform := DoTransform5;
2631
  end;
2632
end;
2633
2634
procedure THashBaseHaval.DoInit;
2635
begin
2636
  SetRounds(FRounds);
2637
  FDigest[0] := $243F6A88;
2638
  FDigest[1] := $85A308D3;
2639
  FDigest[2] := $13198A2E;
2640
  FDigest[3] := $03707344;
2641
  FDigest[4] := $A4093822;
2642
  FDigest[5] := $299F31D0;
2643
  FDigest[6] := $082EFA98;
2644
  FDigest[7] := $EC4E6C89;
2645
end;
2646
2647
procedure THashBaseHaval.DoTransform(Buffer: PUInt32Array);
2648
begin
2649
  FTransform(Buffer);
2650
end;
2651
2652
function THashBaseHaval.GetMaxRounds: UInt32;
2653
begin
2654
  Result := 5;
2655
end;
2656
2657
function THashBaseHaval.GetMinRounds: UInt32;
2658
begin
2659
  if DigestSize <= 20 then
2660
    Result := 3
2661
  else
2662
  begin
2663
    if DigestSize <= 28 then
2664
      Result := 4
2665
    else
2666
      Result := 5;
2667
  end;
2668
end;
2669
2670
function THashBaseHaval.GetRounds: UInt32;
2671
begin
2672
  Result := FRounds;
2673
end;
2674
2675
{$IFNDEF THashBaseHaval_asm}
2676
procedure THashBaseHaval.DoTransform3(Buffer: PUInt32Array);
2677
var
2678
  A, B, C, D, E, F, G, H, I, T: UInt32;
2679
  Data: PUInt32;
2680
  Offset: PByte;
2681
begin
2682
  Offset := @Haval_Offset;
2683
  Data   := @Haval_Data;
2684
2685
  A := FDigest[0];
2686
  B := FDigest[1];
2687
  C := FDigest[2];
2688
  D := FDigest[3];
2689
  E := FDigest[4];
2690
  F := FDigest[5];
2691
  G := FDigest[6];
2692
  H := FDigest[7];
2693
2694
  for I := 0 to 31 do
2695
  begin
2696
    T := C and (E xor D) xor G and A xor F and B xor E;
2697
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2698
	H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2699
  end;
2700
2701
  for I := 0 to 31 do
2702
  begin
2703
    T := F and (D and not A xor B and C xor E xor G) xor B and (D xor C) xor A and C xor G;
2704
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2705
    Inc(Offset);
2706
    Inc(Data);
2707
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2708
  end;
2709
2710
  for I := 0 to 31 do
2711
  begin
2712
    T := D and (F and E xor G xor A) xor F and C xor E and B xor A;
2713
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2714
    Inc(Offset);
2715
    Inc(Data);
2716
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2717
  end;
2718
2719
  Inc(FDigest[0], A);
2720
  Inc(FDigest[1], B);
2721
  Inc(FDigest[2], C);
2722
  Inc(FDigest[3], D);
2723
  Inc(FDigest[4], E);
2724
  Inc(FDigest[5], F);
2725
  Inc(FDigest[6], G);
2726
  Inc(FDigest[7], H);
2727
end;
2728
2729
procedure THashBaseHaval.DoTransform4(Buffer: PUInt32Array);
2730
var
2731
  A, B, C, D, E, F, G, H, I, T: UInt32;
2732
  Data: PUInt32;
2733
  Offset: PByte;
2734
begin
2735
  Offset := @Haval_Offset;
2736
  Data := @Haval_Data;
2737
2738
  A := FDigest[0];
2739
  B := FDigest[1];
2740
  C := FDigest[2];
2741
  D := FDigest[3];
2742
  E := FDigest[4];
2743
  F := FDigest[5];
2744
  G := FDigest[6];
2745
  H := FDigest[7];
2746
2747
  for I := 0 to 31 do
2748
  begin
2749
    T := D and (A xor B) xor F and G xor E and C xor A;
2750
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2751
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2752
  end;
2753
2754
  for I := 0 to 31 do
2755
  begin
2756
    T := B and (G and not A xor C and F xor D xor E) xor C and (G xor F) xor A and F xor E;
2757
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2758
    Inc(Offset);
2759
    Inc(Data);
2760
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2761
  end;
2762
2763
  for I := 0 to 31 do
2764
  begin
2765
    T := G and (C and A xor B xor F) xor C and D xor A and E xor F;
2766
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2767
    Inc(Offset);
2768
    Inc(Data);
2769
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2770
  end;
2771
2772
  for I := 0 to 31 do
2773
  begin
2774
    T := A and (E and not C xor F and not G xor B xor G xor D) xor F and
2775
        (B and C xor E xor G) xor C and G xor D;
2776
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2777
    Inc(Offset);
2778
    Inc(Data);
2779
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2780
  end;
2781
2782
  Inc(FDigest[0], A);
2783
  Inc(FDigest[1], B);
2784
  Inc(FDigest[2], C);
2785
  Inc(FDigest[3], D);
2786
  Inc(FDigest[4], E);
2787
  Inc(FDigest[5], F);
2788
  Inc(FDigest[6], G);
2789
  Inc(FDigest[7], H);
2790
end;
2791
2792
procedure THashBaseHaval.DoTransform5(Buffer: PUInt32Array);
2793
var
2794
  A, B, C, D, E, F, G, H, I, T: UInt32;
2795
  Data: PUInt32;
2796
  Offset: PByte;
2797
begin
2798
  Offset := @Haval_Offset;
2799
  Data := @Haval_Data;
2800
2801
  A := FDigest[0];
2802
  B := FDigest[1];
2803
  C := FDigest[2];
2804
  D := FDigest[3];
2805
  E := FDigest[4];
2806
  F := FDigest[5];
2807
  G := FDigest[6];
2808
  H := FDigest[7];
2809
2810
  for I := 0 to 31 do
2811
  begin
2812
    T := C and (G xor B) xor F and E xor A and D xor G;
2813
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[I];
2814
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2815
  end;
2816
2817
  for I := 0 to 31 do
2818
  begin
2819
    T := D and (E and not A xor B and C xor G xor F) xor B and (E xor C) xor A and C xor F;
2820
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2821
    Inc(Offset);
2822
    Inc(Data);
2823
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2824
  end;
2825
2826
  for I := 0 to 31 do
2827
  begin
2828
    T := E and (B and D xor C xor F) xor B and A xor D and G xor F;
2829
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2830
    Inc(Offset);
2831
    Inc(Data);
2832
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2833
  end;
2834
2835
  for I := 0 to 31 do
2836
  begin
2837
    T := D and (F and not A xor C and not B xor E xor B xor G) xor C and
2838
        (E and A xor F xor B) xor A and B xor G;
2839
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2840
    Inc(Offset);
2841
    Inc(Data);
2842
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2843
  end;
2844
2845
  for I := 0 to 31 do
2846
  begin
2847
    T := B and (D and E and G xor not F) xor D and A xor E and F xor G and C;
2848
    T := (T shr 7 or T shl 25) + (H shr 11 or H shl 21) + Buffer[Offset^] + Data^;
2849
    Inc(Offset); Inc(Data);
2850
    H := G; G := F; F := E; E := D; D := C; C := B; B := A; A := T;
2851
  end;
2852
2853
  Inc(FDigest[0], A);
2854
  Inc(FDigest[1], B);
2855
  Inc(FDigest[2], C);
2856
  Inc(FDigest[3], D);
2857
  Inc(FDigest[4], E);
2858
  Inc(FDigest[5], F);
2859
  Inc(FDigest[6], G);
2860
  Inc(FDigest[7], H);
2861
end;
2862
2863
{$ENDIF !THashBaseHaval_asm}
2864
2865
procedure THashBaseHaval.DoDone;
2866
2867
  function ROR(Value, Count: UInt32): UInt32;
2868
  {$IFDEF X86ASM}
2869
  asm
2870
        MOV     ECX,EDX
2871
        ROR     EAX,CL
2872
  end;
2873
  {$ELSE !X86ASM}
2874
  begin
2875
    Result := (Value shr Count) or (Value shl (32 - Count));
2876
  end;
2877
  {$ENDIF !X86ASM}
2878
2879
var
2880
  T: Word;
2881
begin
2882
  if FCount[2] or FCount[3] <> 0 then
2883
    RaiseHashOverflowError;
2884
  if FPaddingByte = 0 then
2885
    FPaddingByte := $01;
2886
  FBuffer[FBufferIndex] := FPaddingByte;
2887
  Inc(FBufferIndex);
2888
  if FBufferIndex > FBufferSize - 10 then
2889
  begin
2890
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0);
2891
    DoTransform(Pointer(FBuffer));
2892
    FBufferIndex := 0;
2893
  end;
2894
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex - 10, 0);
2895
  T := (DigestSize shl 9) or (UInt32(FRounds) shl 3) or 1;
2896
  Move(T, FBuffer[FBufferSize - 10], SizeOf(T));
2897
  Move(FCount, FBuffer[FBufferSize - 8], 8);
2898
  DoTransform(Pointer(FBuffer));
2899
2900
  case DigestSize of
2901
    16: begin
2902
          Inc(FDigest[0], ROR(FDigest[7] and $000000FF or
2903
                              FDigest[6] and $FF000000 or
2904
                              FDigest[5] and $00FF0000 or
2905
                              FDigest[4] and $0000FF00, 8));
2906
          Inc(FDigest[1], ROR(FDigest[7] and $0000FF00 or
2907
                              FDigest[6] and $000000FF or
2908
                              FDigest[5] and $FF000000 or
2909
                              FDigest[4] and $00FF0000, 16));
2910
          Inc(FDigest[2], ROR(FDigest[7] and $00FF0000 or
2911
                              FDigest[6] and $0000FF00 or
2912
                              FDigest[5] and $000000FF or
2913
                              FDigest[4] and $FF000000, 24));
2914
          Inc(FDigest[3],     FDigest[7] and $FF000000 or
2915
                              FDigest[6] and $00FF0000 or
2916
                              FDigest[5] and $0000FF00 or
2917
                              FDigest[4] and $000000FF);
2918
        end;
2919
    20: begin
2920
          Inc(FDigest[0], ROR(FDigest[7] and ($3F) or
2921
                              FDigest[6] and ($7F shl 25) or
2922
                              FDigest[5] and ($3F shl 19), 19));
2923
          Inc(FDigest[1], ROR(FDigest[7] and ($3F shl 6) or
2924
                              FDigest[6] and ($3F) or
2925
                              FDigest[5] and ($7F shl 25), 25));
2926
          Inc(FDigest[2],     FDigest[7] and ($7F shl 12) or
2927
                              FDigest[6] and ($3F shl  6) or
2928
                              FDigest[5] and ($3F));
2929
          Inc(FDigest[3],    (FDigest[7] and ($3F shl 19) or
2930
                              FDigest[6] and ($7F shl 12) or
2931
                              FDigest[5] and ($3F shl  6)) shr 6);
2932
          Inc(FDigest[4],    (FDigest[7] and ($7F shl 25) or
2933
                              FDigest[6] and ($3F shl 19) or
2934
                              FDigest[5] and ($7F shl 12)) shr 12);
2935
        end;
2936
    24: begin
2937
          Inc(FDigest[0], ROR(FDigest[7] and ($1F) or
2938
                              FDigest[6] and ($3F shl 26), 26));
2939
          Inc(FDigest[1],     FDigest[7] and ($1F shl 5) or
2940
                              FDigest[6] and ($1F));
2941
          Inc(FDigest[2],    (FDigest[7] and ($3F shl 10) or
2942
                              FDigest[6] and ($1F shl  5)) shr 5);
2943
          Inc(FDigest[3],    (FDigest[7] and ($1F shl 16) or
2944
                              FDigest[6] and ($3F shl 10)) shr 10);
2945
          Inc(FDigest[4],    (FDigest[7] and ($1F shl 21) or
2946
                              FDigest[6] and ($1F shl 16)) shr 16);
2947
          Inc(FDigest[5],    (FDigest[7] and ($3F shl 26) or
2948
                              FDigest[6] and ($1F shl 21)) shr 21);
2949
        end;
2950
    28: begin
2951
          Inc(FDigest[0], FDigest[7] shr 27 and $1F);
2952
          Inc(FDigest[1], FDigest[7] shr 22 and $1F);
2953
          Inc(FDigest[2], FDigest[7] shr 18 and $0F);
2954
          Inc(FDigest[3], FDigest[7] shr 13 and $1F);
2955
          Inc(FDigest[4], FDigest[7] shr  9 and $0F);
2956
          Inc(FDigest[5], FDigest[7] shr  4 and $1F);
2957
          Inc(FDigest[6], FDigest[7]        and $0F);
2958
        end;
2959
  end;
2960
end;
2961
2962
function THashBaseHaval.Digest: PByteArray;
2963
begin
2964
  Result := @FDigest;
2965
end;
2966
2967
class function THashBaseHaval.BlockSize: UInt32;
2968
begin
2969
  Result := 128;
2970
end;
2971
2972
{ THash_Haval128 }
2973
2974
class function THash_Haval128.DigestSize: UInt32;
2975
begin
2976
  Result := 16;
2977
end;
2978
2979
{ THash_Haval160 }
2980
2981
class function THash_Haval160.DigestSize: UInt32;
2982
begin
2983
  Result := 20;
2984
end;
2985
2986
{ THash_Haval192 }
2987
2988
class function THash_Haval192.DigestSize: UInt32;
2989
begin
2990
  Result := 24;
2991
end;
2992
2993
{ THash_Haval224 }
2994
2995
class function THash_Haval224.DigestSize: UInt32;
2996
begin
2997
  Result := 28;
2998
end;
2999
3000
{ THash_Haval256 }
3001
3002
class function THash_Haval256.DigestSize: UInt32;
3003
begin
3004
  Result := 32;
3005
end;
3006
3007
{ THash_Tiger }
3008
3009
procedure THash_Tiger.SetRounds(Value: UInt32);
3010
begin
3011
  if (Value < cTigerMinRounds) then
3012
    Value := cTigerMinRounds;
3013
3014
  if (Value > cTigerMaxRounds) then
3015
    Value := cTigerMaxRounds;
3016
3017
  FRounds := Value;
3018
end;
3019
3020
procedure THash_Tiger.DoInit;
3021
begin
3022
  SetRounds(FRounds);
3023
  if FPaddingByte = 0 then
3024
    FPaddingByte := $01;
3025
  FDigest[0] := $89ABCDEF;
3026
  FDigest[1] := $01234567;
3027
  FDigest[2] := $76543210;
3028
  FDigest[3] := $FEDCBA98;
3029
  FDigest[4] := $C3B2E187;
3030
  FDigest[5] := $F096A5B4;
3031
end;
3032
3033
{$IFNDEF THash_Tiger_asm}
3034
procedure THash_Tiger.DoTransform(Buffer: PUInt32Array);
3035
type
3036
  PTiger_Data = ^TTiger_Data;
3037
  TTiger_Data = array[0..3, 0..255] of Int64;
3038
3039
  PInt64Array = ^TInt64Array;
3040
  TInt64Array = array[0..7] of Int64;
3041
3042
var
3043
  A, B, C, T: Int64;
3044
  x0, x1, x2, x3, x4, x5, x6, x7: UInt64;
3045
  I: Integer;
3046
begin
3047
  A  := PInt64Array(@FDigest)[0];
3048
  B  := PInt64Array(@FDigest)[1];
3049
  C  := PInt64Array(@FDigest)[2];
3050
  x0 := PInt64Array(Buffer)[0];
3051
  x1 := PInt64Array(Buffer)[1];
3052
  x2 := PInt64Array(Buffer)[2];
3053
  x3 := PInt64Array(Buffer)[3];
3054
  x4 := PInt64Array(Buffer)[4];
3055
  x5 := PInt64Array(Buffer)[5];
3056
  x6 := PInt64Array(Buffer)[6];
3057
  x7 := PInt64Array(Buffer)[7];
3058
3059
  for I := 1 to FRounds do // a Loop is faster for PC with small Cache
3060
  begin
3061
    if I > 1 then // Key Schedule
3062
    begin
3063
      Dec(x0, x7 xor $A5A5A5A5A5A5A5A5);
3064
      x1 := x1 xor x0;
3065
      Inc(x2, x1);
3066
      Dec(x3, x2 xor (not x1 shl 19));
3067
      x4 := x4 xor x3;
3068
      Inc(x5, x4);
3069
      Dec(x6, x5 xor (not x4 shr 23));
3070
      x7 := x7 xor x6;
3071
      Inc(x0, x7);
3072
      Dec(x1, x0 xor (not x7 shl 19));
3073
      x2 := x2 xor x1;
3074
      Inc(x3, x2);
3075
      Dec(x4, x3 xor (not x2 shr 23));
3076
      x5 := x5 xor x4;
3077
      Inc(x6, x5);
3078
      Dec(x7, x6 xor $0123456789ABCDEF);
3079
    end;
3080
3081
    C := C xor x0;
3082
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3083
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3084
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3085
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3086
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3087
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3088
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3089
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3090
3091
    if I = 1 then
3092
      B := B shl 2 + B
3093
    else
3094
    begin
3095
      if I = 2 then
3096
        B := B shl 3 - B
3097
      else
3098
        B := B shl 3 + B;
3099
    end;
3100
3101
    A := A xor x1;
3102
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3103
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3104
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3105
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3106
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3107
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3108
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3109
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3110
3111
    if I = 1 then
3112
      C := C shl 2 + C
3113
    else
3114
    begin
3115
      if I = 2 then
3116
        C := C shl 3 - C
3117
      else
3118
        C := C shl 3 + C;
3119
    end;
3120
3121
    B := B xor x2;
3122
    Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B)        and $FF] xor
3123
           TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor
3124
           TTiger_Data(Tiger_Data)[2,          B  shr 32 and $FF] xor
3125
           TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]);
3126
    Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr  8 and $FF] xor
3127
           TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor
3128
           TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor
3129
           TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]);
3130
3131
    if I = 1 then
3132
      A := A shl 2 + A
3133
    else
3134
    begin
3135
      if I = 2 then
3136
        A := A shl 3 - A
3137
      else
3138
        A := A shl 3 + A;
3139
    end;
3140
3141
    C := C xor x3;
3142
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3143
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3144
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3145
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3146
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3147
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3148
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3149
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3150
3151
    if I = 1 then
3152
      B := B shl 2 + B
3153
    else
3154
    begin
3155
      if I = 2 then
3156
        B := B shl 3 - B
3157
      else
3158
        B := B shl 3 + B;
3159
    end;
3160
3161
    A := A xor x4;
3162
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3163
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3164
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3165
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3166
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3167
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3168
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3169
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3170
3171
    if I = 1 then
3172
      C := C shl 2 + C
3173
    else
3174
    begin
3175
      if I = 2 then
3176
        C := C shl 3 - C
3177
      else
3178
        C := C shl 3 + C;
3179
    end;
3180
3181
    B := B xor x5;
3182
    Dec(C, TTiger_Data(Tiger_Data)[0, UInt32(B)        and $FF] xor
3183
           TTiger_Data(Tiger_Data)[1, UInt32(B) shr 16 and $FF] xor
3184
           TTiger_Data(Tiger_Data)[2,          B  shr 32 and $FF] xor
3185
           TTiger_Data(Tiger_Data)[3, UInt32(B shr 32) shr 16 and $FF]);
3186
    Inc(A, TTiger_Data(Tiger_Data)[3, UInt32(B) shr  8 and $FF] xor
3187
           TTiger_Data(Tiger_Data)[2, UInt32(B) shr 24] xor
3188
           TTiger_Data(Tiger_Data)[1, UInt32(B shr 32) shr 8 and $FF] xor
3189
           TTiger_Data(Tiger_Data)[0, UInt32(B shr 32) shr 24]);
3190
3191
    if I = 1 then
3192
      A := A shl 2 + A
3193
    else
3194
    begin
3195
      if I = 2 then
3196
        A := A shl 3 - A
3197
      else
3198
        A := A shl 3 + A;
3199
    end;
3200
3201
    C := C xor x6;
3202
    Dec(A, TTiger_Data(Tiger_Data)[0, UInt32(C)        and $FF] xor
3203
           TTiger_Data(Tiger_Data)[1, UInt32(C) shr 16 and $FF] xor
3204
           TTiger_Data(Tiger_Data)[2,          C  shr 32 and $FF] xor
3205
           TTiger_Data(Tiger_Data)[3, UInt32(C shr 32) shr 16 and $FF]);
3206
    Inc(B, TTiger_Data(Tiger_Data)[3, UInt32(C) shr  8 and $FF] xor
3207
           TTiger_Data(Tiger_Data)[2, UInt32(C) shr 24] xor
3208
           TTiger_Data(Tiger_Data)[1, UInt32(C shr 32) shr 8 and $FF] xor
3209
           TTiger_Data(Tiger_Data)[0, UInt32(C shr 32) shr 24]);
3210
3211
    if I = 1 then
3212
      B := B shl 2 + B
3213
    else
3214
    begin
3215
      if I = 2 then
3216
        B := B shl 3 - B
3217
      else
3218
        B := B shl 3 + B;
3219
    end;
3220
3221
    A := A xor x7;
3222
    Dec(B, TTiger_Data(Tiger_Data)[0, UInt32(A)        and $FF] xor
3223
           TTiger_Data(Tiger_Data)[1, UInt32(A) shr 16 and $FF] xor
3224
           TTiger_Data(Tiger_Data)[2,          A  shr 32 and $FF] xor
3225
           TTiger_Data(Tiger_Data)[3, UInt32(A shr 32) shr 16 and $FF]);
3226
    Inc(C, TTiger_Data(Tiger_Data)[3, UInt32(A) shr  8 and $FF] xor
3227
           TTiger_Data(Tiger_Data)[2, UInt32(A) shr 24] xor
3228
           TTiger_Data(Tiger_Data)[1, UInt32(A shr 32) shr 8 and $FF] xor
3229
           TTiger_Data(Tiger_Data)[0, UInt32(A shr 32) shr 24]);
3230
3231
    if I = 1 then
3232
      C := C shl 2 + C
3233
    else
3234
    begin
3235
      if I = 2 then
3236
        C := C shl 3 - C
3237
      else
3238
        C := C shl 3 + C;
3239
    end;
3240
3241
    T := A; A := C; C := B; B := T;
3242
  end;
3243
3244
  PInt64Array(@FDigest)[0] := A xor PInt64Array(@FDigest)[0];
3245
  PInt64Array(@FDigest)[1] := B  -  PInt64Array(@FDigest)[1];
3246
  PInt64Array(@FDigest)[2] := C  +  PInt64Array(@FDigest)[2];
3247
end;
3248
{$ENDIF}
3249
3250
function THash_Tiger.GetMaxRounds: UInt32;
3251
begin
3252
  Result := cTigerMaxRounds;
3253
end;
3254
3255
function THash_Tiger.GetMinRounds: UInt32;
3256
begin
3257
  Result := cTigerMinRounds;
3258
end;
3259
3260
function THash_Tiger.GetRounds: UInt32;
3261
begin
3262
  Result := FRounds;
3263
end;
3264
3265
class function THash_Tiger.DigestSize: UInt32;
3266
begin
3267
  Result := 24;
3268
end;
3269
3270
{ THash_Panama }
3271
3272
procedure THash_Panama.DoInit;
3273
begin
3274
  FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0);
3275
  FillChar(FDigest, SizeOf(FDigest), 0);
3276
  FTap := 0;
3277
end;
3278
3279
{$IFNDEF THash_Panama_asm}
3280
procedure THash_Panama.DoTransform(Buffer: PUInt32Array);
3281
var
3282
  T0, T1, T2, T3: UInt32;
3283
  PBufB, PTap0, PTap25: PUInt32Array;
3284
begin
3285
  // perform non-linearity stage (GAMMA)
3286
  T0 := FDigest[ 0];
3287
  T1 := FDigest[ 1];
3288
  FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]);
3289
  FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]);
3290
  FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]);
3291
  FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]);
3292
  FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]);
3293
  FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]);
3294
  FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]);
3295
  FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]);
3296
  FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]);
3297
  FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]);
3298
  FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]);
3299
  FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]);
3300
  FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]);
3301
  FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]);
3302
  FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]);
3303
  FDigest[15] := FDigest[15] xor (FDigest[16] or not T0);
3304
  FDigest[16] := FDigest[16] xor (T0 or not T1);
3305
3306
  // perform bit-dispersion stage (PI)
3307
  T0 := FDigest[ 1];
3308
  T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl  1) or (T1 shr 31);
3309
  T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17);
3310
  T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl  4) or (T1 shr 28);
3311
  T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11);
3312
  T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr  5);
3313
  T1 := FDigest[14]; FDigest[14] := (T0 shl  9) or (T0 shr 23);
3314
  T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl  3) or (T1 shr 29);
3315
  T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr  9);
3316
  T0 := FDigest[16]; FDigest[16] := (T1 shl  8) or (T1 shr 24);
3317
  T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18);
3318
  T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19);
3319
  T1 := FDigest[11]; FDigest[11] := (T0 shl  2) or (T0 shr 30);
3320
  T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22);
3321
  T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl  6) or (T0 shr 26);
3322
  T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr  8);
3323
  FDigest[ 7] := (T0 shl 28) or (T0 shr  4);
3324
3325
  // LFSR emulation
3326
  PBufB  := @FLFSRBuffer[(FTap + 16) and 31];
3327
  FTap   := (FTap - 1) and 31;
3328
  PTap0  := @FLFSRBuffer[FTap];
3329
  PTap25 := @FLFSRBuffer[(FTap + 25) and 31];
3330
3331
  // update the LFSR buffer (LAMBDA_PUSH)
3332
  PTap25[ 0] := PTap25[ 0] xor PTap0[ 2];
3333
  PTap25[ 1] := PTap25[ 1] xor PTap0[ 3];
3334
  PTap25[ 2] := PTap25[ 2] xor PTap0[ 4];
3335
  PTap25[ 3] := PTap25[ 3] xor PTap0[ 5];
3336
  PTap25[ 4] := PTap25[ 4] xor PTap0[ 6];
3337
  PTap25[ 5] := PTap25[ 5] xor PTap0[ 7];
3338
  PTap25[ 6] := PTap25[ 6] xor PTap0[ 0];
3339
  PTap25[ 7] := PTap25[ 7] xor PTap0[ 1];
3340
  PTap0[ 0] := PTap0[ 0] xor Buffer[ 0];
3341
  PTap0[ 1] := PTap0[ 1] xor Buffer[ 1];
3342
  PTap0[ 2] := PTap0[ 2] xor Buffer[ 2];
3343
  PTap0[ 3] := PTap0[ 3] xor Buffer[ 3];
3344
  PTap0[ 4] := PTap0[ 4] xor Buffer[ 4];
3345
  PTap0[ 5] := PTap0[ 5] xor Buffer[ 5];
3346
  PTap0[ 6] := PTap0[ 6] xor Buffer[ 6];
3347
  PTap0[ 7] := PTap0[ 7] xor Buffer[ 7];
3348
3349
  // perform diffusion stage (THETA) + buffer injection stage (SIGMA)
3350
  T0 := FDigest[ 0];
3351
  T1 := FDigest[ 1];
3352
  T2 := FDigest[ 2];
3353
  T3 := FDigest[ 3];
3354
3355
  FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1;
3356
  FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor Buffer[ 0];
3357
  FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor Buffer[ 1];
3358
  FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor Buffer[ 2];
3359
  FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor Buffer[ 3];
3360
  FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor Buffer[ 4];
3361
  FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor Buffer[ 5];
3362
  FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor Buffer[ 6];
3363
  FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor Buffer[ 7];
3364
3365
  FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0];
3366
  FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1];
3367
  FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2];
3368
  FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3];
3369
  FDigest[13] := FDigest[13] xor FDigest[14] xor T0          xor PBufB[ 4];
3370
  FDigest[14] := FDigest[14] xor FDigest[15] xor T1          xor PBufB[ 5];
3371
  FDigest[15] := FDigest[15] xor FDigest[16] xor T2          xor PBufB[ 6];
3372
  FDigest[16] := FDigest[16] xor T0          xor T3          xor PBufB[ 7];
3373
end;
3374
{$ENDIF !THash_Panama_asm}
3375
3376
procedure THash_Panama.DoDone;
3377
begin
3378
  if FPaddingByte = 0 then
3379
    FPaddingByte := $01;
3380
  FBuffer[FBufferIndex] := FPaddingByte;
3381
  Inc(FBufferIndex);
3382
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3383
  DoTransform(Pointer(FBuffer));
3384
  DoPull;
3385
  FillChar(FLFSRBuffer, SizeOf(FLFSRBuffer), 0);
3386
  FTap := 0;
3387
end;
3388
3389
{$IFNDEF THash_Panama_asm}
3390
procedure THash_Panama.DoPull;
3391
var
3392
  PBufL, PBufB, PTap0, PTap25: PUInt32Array;
3393
  T0, T1, T2, T3: UInt32;
3394
  I: Integer;
3395
begin
3396
  for I := 0 to 31 do
3397
  begin
3398
    // LFSR emulation
3399
    PBufL := @FLFSRBuffer[(FTap +  4) and 31];
3400
    PBufB := @FLFSRBuffer[(FTap + 16) and 31];
3401
    FTap := (FTap - 1) and 31;
3402
    PTap0  := @FLFSRBuffer[FTap];
3403
    PTap25 := @FLFSRBuffer[(FTap + 25) and 31];
3404
3405
    // update the LFSR buffer (LAMBDA_PULL)
3406
    PTap25[ 0] := PTap25[ 0] xor PTap0[ 2];
3407
    PTap25[ 1] := PTap25[ 1] xor PTap0[ 3];
3408
    PTap25[ 2] := PTap25[ 2] xor PTap0[ 4];
3409
    PTap25[ 3] := PTap25[ 3] xor PTap0[ 5];
3410
    PTap25[ 4] := PTap25[ 4] xor PTap0[ 6];
3411
    PTap25[ 5] := PTap25[ 5] xor PTap0[ 7];
3412
    PTap25[ 6] := PTap25[ 6] xor PTap0[ 0];
3413
    PTap25[ 7] := PTap25[ 7] xor PTap0[ 1];
3414
    PTap0[ 0] := PTap0[ 0] xor FDigest[ 1];
3415
    PTap0[ 1] := PTap0[ 1] xor FDigest[ 2];
3416
    PTap0[ 2] := PTap0[ 2] xor FDigest[ 3];
3417
    PTap0[ 3] := PTap0[ 3] xor FDigest[ 4];
3418
    PTap0[ 4] := PTap0[ 4] xor FDigest[ 5];
3419
    PTap0[ 5] := PTap0[ 5] xor FDigest[ 6];
3420
    PTap0[ 6] := PTap0[ 6] xor FDigest[ 7];
3421
    PTap0[ 7] := PTap0[ 7] xor FDigest[ 8];
3422
3423
    // perform non-linearity stage (GAMMA)
3424
    T0 := FDigest[ 0];
3425
    T1 := FDigest[ 1];
3426
    FDigest[ 0] := FDigest[ 0] xor (FDigest[ 1] or not FDigest[ 2]);
3427
    FDigest[ 1] := FDigest[ 1] xor (FDigest[ 2] or not FDigest[ 3]);
3428
    FDigest[ 2] := FDigest[ 2] xor (FDigest[ 3] or not FDigest[ 4]);
3429
    FDigest[ 3] := FDigest[ 3] xor (FDigest[ 4] or not FDigest[ 5]);
3430
    FDigest[ 4] := FDigest[ 4] xor (FDigest[ 5] or not FDigest[ 6]);
3431
    FDigest[ 5] := FDigest[ 5] xor (FDigest[ 6] or not FDigest[ 7]);
3432
    FDigest[ 6] := FDigest[ 6] xor (FDigest[ 7] or not FDigest[ 8]);
3433
    FDigest[ 7] := FDigest[ 7] xor (FDigest[ 8] or not FDigest[ 9]);
3434
    FDigest[ 8] := FDigest[ 8] xor (FDigest[ 9] or not FDigest[10]);
3435
    FDigest[ 9] := FDigest[ 9] xor (FDigest[10] or not FDigest[11]);
3436
    FDigest[10] := FDigest[10] xor (FDigest[11] or not FDigest[12]);
3437
    FDigest[11] := FDigest[11] xor (FDigest[12] or not FDigest[13]);
3438
    FDigest[12] := FDigest[12] xor (FDigest[13] or not FDigest[14]);
3439
    FDigest[13] := FDigest[13] xor (FDigest[14] or not FDigest[15]);
3440
    FDigest[14] := FDigest[14] xor (FDigest[15] or not FDigest[16]);
3441
    FDigest[15] := FDigest[15] xor (FDigest[16] or not T0);
3442
    FDigest[16] := FDigest[16] xor (T0 or not T1);
3443
3444
    // perform bit-dispersion stage (PI)
3445
    T0 := FDigest[ 1];
3446
    T1 := FDigest[ 7]; FDigest[ 1] := (T1 shl  1) or (T1 shr 31);
3447
    T1 := FDigest[ 5]; FDigest[ 5] := (T0 shl 15) or (T0 shr 17);
3448
    T0 := FDigest[ 8]; FDigest[ 8] := (T1 shl  4) or (T1 shr 28);
3449
    T1 := FDigest[ 6]; FDigest[ 6] := (T0 shl 21) or (T0 shr 11);
3450
    T0 := FDigest[13]; FDigest[13] := (T1 shl 27) or (T1 shr  5);
3451
    T1 := FDigest[14]; FDigest[14] := (T0 shl  9) or (T0 shr 23);
3452
    T0 := FDigest[ 2]; FDigest[ 2] := (T1 shl  3) or (T1 shr 29);
3453
    T1 := FDigest[10]; FDigest[10] := (T0 shl 23) or (T0 shr  9);
3454
    T0 := FDigest[16]; FDigest[16] := (T1 shl  8) or (T1 shr 24);
3455
    T1 := FDigest[12]; FDigest[12] := (T0 shl 14) or (T0 shr 18);
3456
    T0 := FDigest[ 9]; FDigest[ 9] := (T1 shl 13) or (T1 shr 19);
3457
    T1 := FDigest[11]; FDigest[11] := (T0 shl  2) or (T0 shr 30);
3458
    T0 := FDigest[ 4]; FDigest[ 4] := (T1 shl 10) or (T1 shr 22);
3459
    T1 := FDigest[ 3]; FDigest[ 3] := (T0 shl  6) or (T0 shr 26);
3460
    T0 := FDigest[15]; FDigest[15] := (T1 shl 24) or (T1 shr  8);
3461
    FDigest[ 7] := (T0 shl 28) or (T0 shr  4);
3462
3463
    // perform diffusion stage (THETA) + buffer injection stage (SIGMA)
3464
    T0 := FDigest[ 0];
3465
    T1 := FDigest[ 1];
3466
    T2 := FDigest[ 2];
3467
    T3 := FDigest[ 3];
3468
    FDigest[ 0] := FDigest[ 0] xor FDigest[ 1] xor FDigest[ 4] xor 1;
3469
    FDigest[ 1] := FDigest[ 1] xor FDigest[ 2] xor FDigest[ 5] xor PBufL[ 0];
3470
    FDigest[ 2] := FDigest[ 2] xor FDigest[ 3] xor FDigest[ 6] xor PBufL[ 1];
3471
    FDigest[ 3] := FDigest[ 3] xor FDigest[ 4] xor FDigest[ 7] xor PBufL[ 2];
3472
    FDigest[ 4] := FDigest[ 4] xor FDigest[ 5] xor FDigest[ 8] xor PBufL[ 3];
3473
    FDigest[ 5] := FDigest[ 5] xor FDigest[ 6] xor FDigest[ 9] xor PBufL[ 4];
3474
    FDigest[ 6] := FDigest[ 6] xor FDigest[ 7] xor FDigest[10] xor PBufL[ 5];
3475
    FDigest[ 7] := FDigest[ 7] xor FDigest[ 8] xor FDigest[11] xor PBufL[ 6];
3476
    FDigest[ 8] := FDigest[ 8] xor FDigest[ 9] xor FDigest[12] xor PBufL[ 7];
3477
    FDigest[ 9] := FDigest[ 9] xor FDigest[10] xor FDigest[13] xor PBufB[ 0];
3478
    FDigest[10] := FDigest[10] xor FDigest[11] xor FDigest[14] xor PBufB[ 1];
3479
    FDigest[11] := FDigest[11] xor FDigest[12] xor FDigest[15] xor PBufB[ 2];
3480
    FDigest[12] := FDigest[12] xor FDigest[13] xor FDigest[16] xor PBufB[ 3];
3481
    FDigest[13] := FDigest[13] xor FDigest[14] xor T0          xor PBufB[ 4];
3482
    FDigest[14] := FDigest[14] xor FDigest[15] xor T1          xor PBufB[ 5];
3483
    FDigest[15] := FDigest[15] xor FDigest[16] xor T2          xor PBufB[ 6];
3484
    FDigest[16] := FDigest[16] xor T0 xor T3                   xor PBufB[ 7];
3485
  end;
3486
3487
  // move state to Digest buffer
3488
  FDigest[0] := FDigest[ 9];
3489
  FDigest[1] := FDigest[10];
3490
  FDigest[2] := FDigest[11];
3491
  FDigest[3] := FDigest[12];
3492
  FDigest[4] := FDigest[13];
3493
  FDigest[5] := FDigest[14];
3494
  FDigest[6] := FDigest[15];
3495
  FDigest[7] := FDigest[16];
3496
end;
3497
{$ENDIF !THash_Panama_asm}
3498
3499
function THash_Panama.Digest: PByteArray;
3500
begin
3501
  Result := @FDigest;
3502
end;
3503
3504
class function THash_Panama.DigestSize: UInt32;
3505
begin
3506
  Result := 32;
3507
end;
3508
3509
class function THash_Panama.BlockSize: UInt32;
3510
begin
3511
  Result := 32
3512
end;
3513
3514
{ THashBaseWhirlpool }
3515
3516
{$IFNDEF THashBaseWhirlpool_asm}
3517
procedure THashBaseWhirlpool.DoTransform(Buffer: PUInt32Array);
3518
type
3519
  PWhirlData = ^TWhirlData;
3520
  TWhirlData = array[0..15] of UInt32;
3521
  PWhirlTable = ^TWhirlTable;
3522
  TWhirlTable = array[0..7, 0..511] of UInt32;
3523
3524
  procedure Whirl(var L: TWhirlData; const K: TWhirlData; const T: PWhirlTable);
3525
  begin
3526
    L[0*2+0] := T[0, ((K[ 0] shl  1) and $1fe)] xor
3527
                T[1, ((K[14] shr  7) and $1fe)] xor
3528
                T[2, ((K[12] shr 15) and $1fe)] xor
3529
                T[3, ((K[10] shr 23) and $1fe)] xor
3530
                T[4, ((K[ 9] shl  1) and $1fe)] xor
3531
                T[5, ((K[ 7] shr  7) and $1fe)] xor
3532
                T[6, ((K[ 5] shr 15) and $1fe)] xor
3533
                T[7, ((K[ 3] shr 23) and $1fe)];
3534
    L[0*2+1] := T[0, ((K[ 0] shl  1) and $1fe)+1] xor
3535
                T[1, ((K[14] shr  7) and $1fe)+1] xor
3536
                T[2, ((K[12] shr 15) and $1fe)+1] xor
3537
                T[3, ((K[10] shr 23) and $1fe)+1] xor
3538
                T[4, ((K[ 9] shl  1) and $1fe)+1] xor
3539
                T[5, ((K[ 7] shr  7) and $1fe)+1] xor
3540
                T[6, ((K[ 5] shr 15) and $1fe)+1] xor
3541
                T[7, ((K[ 3] shr 23) and $1fe)+1];
3542
    L[1*2+0] := T[0, ((K[ 2] shl  1) and $1fe)] xor
3543
                T[1, ((K[ 0] shr  7) and $1fe)] xor
3544
                T[2, ((K[14] shr 15) and $1fe)] xor
3545
                T[3, ((K[12] shr 23) and $1fe)] xor
3546
                T[4, ((K[11] shl  1) and $1fe)] xor
3547
                T[5, ((K[ 9] shr  7) and $1fe)] xor
3548
                T[6, ((K[ 7] shr 15) and $1fe)] xor
3549
                T[7, ((K[ 5] shr 23) and $1fe)];
3550
    L[1*2+1] := T[0, ((K[ 2] shl  1) and $1fe)+1] xor
3551
                T[1, ((K[ 0] shr  7) and $1fe)+1] xor
3552
                T[2, ((K[14] shr 15) and $1fe)+1] xor
3553
                T[3, ((K[12] shr 23) and $1fe)+1] xor
3554
                T[4, ((K[11] shl  1) and $1fe)+1] xor
3555
                T[5, ((K[ 9] shr  7) and $1fe)+1] xor
3556
                T[6, ((K[ 7] shr 15) and $1fe)+1] xor
3557
                T[7, ((K[ 5] shr 23) and $1fe)+1];
3558
    L[2*2+0] := T[0, ((K[ 4] shl  1) and $1fe)] xor
3559
                T[1, ((K[ 2] shr  7) and $1fe)] xor
3560
                T[2, ((K[ 0] shr 15) and $1fe)] xor
3561
                T[3, ((K[14] shr 23) and $1fe)] xor
3562
                T[4, ((K[13] shl  1) and $1fe)] xor
3563
                T[5, ((K[11] shr  7) and $1fe)] xor
3564
                T[6, ((K[ 9] shr 15) and $1fe)] xor
3565
                T[7, ((K[ 7] shr 23) and $1fe)];
3566
    L[2*2+1] := T[0, ((K[ 4] shl  1) and $1fe)+1] xor
3567
                T[1, ((K[ 2] shr  7) and $1fe)+1] xor
3568
                T[2, ((K[ 0] shr 15) and $1fe)+1] xor
3569
                T[3, ((K[14] shr 23) and $1fe)+1] xor
3570
                T[4, ((K[13] shl  1) and $1fe)+1] xor
3571
                T[5, ((K[11] shr  7) and $1fe)+1] xor
3572
                T[6, ((K[ 9] shr 15) and $1fe)+1] xor
3573
                T[7, ((K[ 7] shr 23) and $1fe)+1];
3574
    L[3*2+0] := T[0, ((K[ 6] shl  1) and $1fe)] xor
3575
                T[1, ((K[ 4] shr  7) and $1fe)] xor
3576
                T[2, ((K[ 2] shr 15) and $1fe)] xor
3577
                T[3, ((K[ 0] shr 23) and $1fe)] xor
3578
                T[4, ((K[15] shl  1) and $1fe)] xor
3579
                T[5, ((K[13] shr  7) and $1fe)] xor
3580
                T[6, ((K[11] shr 15) and $1fe)] xor
3581
                T[7, ((K[ 9] shr 23) and $1fe)];
3582
    L[3*2+1] := T[0, ((K[ 6] shl  1) and $1fe)+1] xor
3583
                T[1, ((K[ 4] shr  7) and $1fe)+1] xor
3584
                T[2, ((K[ 2] shr 15) and $1fe)+1] xor
3585
                T[3, ((K[ 0] shr 23) and $1fe)+1] xor
3586
                T[4, ((K[15] shl  1) and $1fe)+1] xor
3587
                T[5, ((K[13] shr  7) and $1fe)+1] xor
3588
                T[6, ((K[11] shr 15) and $1fe)+1] xor
3589
                T[7, ((K[ 9] shr 23) and $1fe)+1];
3590
    L[4*2+0] := T[0, ((K[ 8] shl  1) and $1fe)] xor
3591
                T[1, ((K[ 6] shr  7) and $1fe)] xor
3592
                T[2, ((K[ 4] shr 15) and $1fe)] xor
3593
                T[3, ((K[ 2] shr 23) and $1fe)] xor
3594
                T[4, ((K[ 1] shl  1) and $1fe)] xor
3595
                T[5, ((K[15] shr  7) and $1fe)] xor
3596
                T[6, ((K[13] shr 15) and $1fe)] xor
3597
                T[7, ((K[11] shr 23) and $1fe)];
3598
    L[4*2+1] := T[0, ((K[ 8] shl  1) and $1fe)+1] xor
3599
                T[1, ((K[ 6] shr  7) and $1fe)+1] xor
3600
                T[2, ((K[ 4] shr 15) and $1fe)+1] xor
3601
                T[3, ((K[ 2] shr 23) and $1fe)+1] xor
3602
                T[4, ((K[ 1] shl  1) and $1fe)+1] xor
3603
                T[5, ((K[15] shr  7) and $1fe)+1] xor
3604
                T[6, ((K[13] shr 15) and $1fe)+1] xor
3605
                T[7, ((K[11] shr 23) and $1fe)+1];
3606
    L[5*2+0] := T[0, ((K[10] shl  1) and $1fe)] xor
3607
                T[1, ((K[ 8] shr  7) and $1fe)] xor
3608
                T[2, ((K[ 6] shr 15) and $1fe)] xor
3609
                T[3, ((K[ 4] shr 23) and $1fe)] xor
3610
                T[4, ((K[ 3] shl  1) and $1fe)] xor
3611
                T[5, ((K[ 1] shr  7) and $1fe)] xor
3612
                T[6, ((K[15] shr 15) and $1fe)] xor
3613
                T[7, ((K[13] shr 23) and $1fe)];
3614
    L[5*2+1] := T[0, ((K[10] shl  1) and $1fe)+1] xor
3615
                T[1, ((K[ 8] shr  7) and $1fe)+1] xor
3616
                T[2, ((K[ 6] shr 15) and $1fe)+1] xor
3617
                T[3, ((K[ 4] shr 23) and $1fe)+1] xor
3618
                T[4, ((K[ 3] shl  1) and $1fe)+1] xor
3619
                T[5, ((K[ 1] shr  7) and $1fe)+1] xor
3620
                T[6, ((K[15] shr 15) and $1fe)+1] xor
3621
                T[7, ((K[13] shr 23) and $1fe)+1];
3622
    L[6*2+0] := T[0, ((K[12] shl  1) and $1fe)] xor
3623
                T[1, ((K[10] shr  7) and $1fe)] xor
3624
                T[2, ((K[ 8] shr 15) and $1fe)] xor
3625
                T[3, ((K[ 6] shr 23) and $1fe)] xor
3626
                T[4, ((K[ 5] shl  1) and $1fe)] xor
3627
                T[5, ((K[ 3] shr  7) and $1fe)] xor
3628
                T[6, ((K[ 1] shr 15) and $1fe)] xor
3629
                T[7, ((K[15] shr 23) and $1fe)];
3630
    L[6*2+1] := T[0, ((K[12] shl  1) and $1fe)+1] xor
3631
                T[1, ((K[10] shr  7) and $1fe)+1] xor
3632
                T[2, ((K[ 8] shr 15) and $1fe)+1] xor
3633
                T[3, ((K[ 6] shr 23) and $1fe)+1] xor
3634
                T[4, ((K[ 5] shl  1) and $1fe)+1] xor
3635
                T[5, ((K[ 3] shr  7) and $1fe)+1] xor
3636
                T[6, ((K[ 1] shr 15) and $1fe)+1] xor
3637
                T[7, ((K[15] shr 23) and $1fe)+1];
3638
    L[7*2+0] := T[0, ((K[14] shl  1) and $1fe)] xor
3639
                T[1, ((K[12] shr  7) and $1fe)] xor
3640
                T[2, ((K[10] shr 15) and $1fe)] xor
3641
                T[3, ((K[ 8] shr 23) and $1fe)] xor
3642
                T[4, ((K[ 7] shl  1) and $1fe)] xor
3643
                T[5, ((K[ 5] shr  7) and $1fe)] xor
3644
                T[6, ((K[ 3] shr 15) and $1fe)] xor
3645
                T[7, ((K[ 1] shr 23) and $1fe)];
3646
    L[7*2+1] := T[0, ((K[14] shl  1) and $1fe)+1] xor
3647
                T[1, ((K[12] shr  7) and $1fe)+1] xor
3648
                T[2, ((K[10] shr 15) and $1fe)+1] xor
3649
                T[3, ((K[ 8] shr 23) and $1fe)+1] xor
3650
                T[4, ((K[ 7] shl  1) and $1fe)+1] xor
3651
                T[5, ((K[ 5] shr  7) and $1fe)+1] xor
3652
                T[6, ((K[ 3] shr 15) and $1fe)+1] xor
3653
                T[7, ((K[ 1] shr 23) and $1fe)+1];
3654
  end;
3655
3656
var
3657
  S, L, K: TWhirlData;
3658
  I: Integer;
3659
begin
3660
  Assert(not Odd(Whirlpool_Rounds));
3661
3662
  Move(FDigest, K, SizeOf(FDigest));
3663
  XORBuffers(FDigest, Buffer[0], SizeOf(FDigest), S);
3664
3665
  // iterate over all rounds
3666
  for I := 0 to Whirlpool_Rounds div 2 - 1 do
3667
  begin
3668
    Whirl(L, K, FTableC);
3669
    L[0] := L[0] xor PUInt32Array(FTableR)[I*4+0];
3670
    L[1] := L[1] xor PUInt32Array(FTableR)[I*4+1];
3671
    Whirl(K, S, FTableC);
3672
    XORBuffers(L, K, SizeOf(S), S);
3673
3674
    Whirl(K, L, FTableC);
3675
    K[0] := K[0] xor PUInt32Array(FTableR)[I*4+2];
3676
    K[1] := K[1] xor PUInt32Array(FTableR)[I*4+3];
3677
    Whirl(L, S, FTableC);
3678
    XORBuffers(K, L, SizeOf(S), S);
3679
  end;
3680
3681
  XORBuffers(S, Buffer[0], SizeOf(FDigest), S);
3682
  XORBuffers(S, FDigest, SizeOf(FDigest), FDigest);
3683
end;
3684
{$ENDIF !THashBaseWhirlpool_asm}
3685
3686
procedure THashBaseWhirlpool.DoDone;
3687
var
3688
  I: Integer;
3689
begin
3690
  if FPaddingByte = 0 then
3691
    FPaddingByte := $80;
3692
  FBuffer[FBufferIndex] := FPaddingByte;
3693
  Inc(FBufferIndex);
3694
  if FBufferIndex > FBufferSize - 32 then
3695
  begin
3696
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3697
    DoTransform(Pointer(FBuffer));
3698
    FBufferIndex := 0;
3699
  end;
3700
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3701
  for I := 31 downto 0 do
3702
    FBuffer[63 - I] := PByteArray(@FCount)[I];
3703
  DoTransform(Pointer(FBuffer));
3704
end;
3705
3706
function THashBaseWhirlpool.Digest: PByteArray;
3707
begin
3708
  Result := @FDigest;
3709
end;
3710
3711
class function THashBaseWhirlpool.DigestSize: UInt32;
3712
begin
3713
  Result := 64;
3714
end;
3715
3716
class function THashBaseWhirlpool.BlockSize: UInt32;
3717
begin
3718
  Result := 64;
3719
end;
3720
3721
{ THash_Whirlpool0 }
3722
3723
procedure THash_Whirlpool0.DoInit;
3724
begin
3725
  FillChar(FDigest, SizeOf(FDigest), 0);
3726
  FTableC := @Whirlpool_C_U;
3727
  FTableR := @Whirlpool_RC_U
3728
end;
3729
3730
{ THash_WhirlpoolT }
3731
3732
procedure THash_WhirlpoolT.DoInit;
3733
begin
3734
  FillChar(FDigest, SizeOf(FDigest), 0);
3735
  FTableC := @Whirlpool_C_T;
3736
  FTableR := @Whirlpool_RC_T;
3737
end;
3738
3739
{ THash_Whirlpool1_ }
3740
3741
procedure THash_Whirlpool1_.DoInit;
3742
begin
3743
  FillChar(FDigest, SizeOf(FDigest), 0);
3744
  FTableC := @Whirlpool_C_1;
3745
  FTableR := @Whirlpool_RC_1;
3746
end;
3747
3748
{ THash_Square }
3749
3750
procedure THash_Square.DoInit;
3751
begin
3752
  FillChar(FDigest, SizeOf(FDigest), 0);
3753
end;
3754
3755
{$IFNDEF THash_Square_asm}
3756
procedure THash_Square.DoTransform(Buffer: PUInt32Array);
3757
var
3758
  Key: array[0..8, 0..3] of UInt32;
3759
  A, B, C, D: UInt32;
3760
  AA, BB, CC, DD: UInt32;
3761
  I: Integer;
3762
begin
3763
  // Build and expand the Key, Digest include the Key
3764
  Key[0, 0] := FDigest[0];
3765
  Key[0, 1] := FDigest[1];
3766
  Key[0, 2] := FDigest[2];
3767
  Key[0, 3] := FDigest[3];
3768
3769
  for I := 1 to 8 do
3770
  begin
3771
    Key[I, 0] := Key[I - 1, 0] xor Key[I - 1, 3] shr 8 xor Key[I - 1, 3] shl 24 xor 1 shl (I - 1);
3772
    Key[I, 1] := Key[I - 1, 1] xor Key[I, 0];
3773
    Key[I, 2] := Key[I - 1, 2] xor Key[I, 1];
3774
    Key[I, 3] := Key[I - 1, 3] xor Key[I, 2];
3775
3776
    Key[I - 1, 0] := Square_PHIr[0, Key[I - 1, 0]        and $FF] xor
3777
                     Square_PHIr[1, Key[I - 1, 0] shr  8 and $FF] xor
3778
                     Square_PHIr[2, Key[I - 1, 0] shr 16 and $FF] xor
3779
                     Square_PHIr[3, Key[I - 1, 0] shr 24        ];
3780
    Key[I - 1, 1] := Square_PHIr[0, Key[I - 1, 1]        and $FF] xor
3781
                     Square_PHIr[1, Key[I - 1, 1] shr  8 and $FF] xor
3782
                     Square_PHIr[2, Key[I - 1, 1] shr 16 and $FF] xor
3783
                     Square_PHIr[3, Key[I - 1, 1] shr 24        ];
3784
    Key[I - 1, 2] := Square_PHIr[0, Key[I - 1, 2]        and $FF] xor
3785
                     Square_PHIr[1, Key[I - 1, 2] shr  8 and $FF] xor
3786
                     Square_PHIr[2, Key[I - 1, 2] shr 16 and $FF] xor
3787
                     Square_PHIr[3, Key[I - 1, 2] shr 24        ];
3788
    Key[I - 1, 3] := Square_PHIr[0, Key[I - 1, 3]        and $FF] xor
3789
                     Square_PHIr[1, Key[I - 1, 3] shr  8 and $FF] xor
3790
                     Square_PHIr[2, Key[I - 1, 3] shr 16 and $FF] xor
3791
                     Square_PHIr[3, Key[I - 1, 3] shr 24        ];
3792
  end;
3793
3794
  // Encrypt begin here, same TCipher_Square.Encode
3795
  A := Buffer[0] xor Key[0, 0];
3796
  B := Buffer[1] xor Key[0, 1];
3797
  C := Buffer[2] xor Key[0, 2];
3798
  D := Buffer[3] xor Key[0, 3];
3799
3800
  for I := 0 to 6 do
3801
  begin
3802
    AA := Square_TE[0, A        and $FF] xor
3803
          Square_TE[1, B        and $FF] xor
3804
          Square_TE[2, C        and $FF] xor
3805
          Square_TE[3, D        and $FF] xor Key[I + 1, 0];
3806
    BB := Square_TE[0, A shr  8 and $FF] xor
3807
          Square_TE[1, B shr  8 and $FF] xor
3808
          Square_TE[2, C shr  8 and $FF] xor
3809
          Square_TE[3, D shr  8 and $FF] xor Key[I + 1, 1];
3810
    CC := Square_TE[0, A shr 16 and $FF] xor
3811
          Square_TE[1, B shr 16 and $FF] xor
3812
          Square_TE[2, C shr 16 and $FF] xor
3813
          Square_TE[3, D shr 16 and $FF] xor Key[I + 1, 2];
3814
    DD := Square_TE[0, A shr 24        ] xor
3815
          Square_TE[1, B shr 24        ] xor
3816
          Square_TE[2, C shr 24        ] xor
3817
          Square_TE[3, D shr 24        ] xor Key[I + 1, 3];
3818
3819
    A := AA; B := BB; C := CC; D := DD;
3820
  end;
3821
3822
  FDigest[0] := Buffer[0] xor
3823
                Square_SEint[A        and $FF]        xor
3824
                Square_SEint[B        and $FF] shl  8 xor
3825
                Square_SEint[C        and $FF] shl 16 xor
3826
                Square_SEint[D        and $FF] shl 24 xor Key[8, 0];
3827
  FDigest[1] := Buffer[1] xor
3828
                Square_SEint[A shr  8 and $FF]        xor
3829
                Square_SEint[B shr  8 and $FF] shl  8 xor
3830
                Square_SEint[C shr  8 and $FF] shl 16 xor
3831
                Square_SEint[D shr  8 and $FF] shl 24 xor Key[8, 1];
3832
  FDigest[2] := Buffer[2] xor
3833
                Square_SEint[A shr 16 and $FF]        xor
3834
                Square_SEint[B shr 16 and $FF] shl  8 xor
3835
                Square_SEint[C shr 16 and $FF] shl 16 xor
3836
                Square_SEint[D shr 16 and $FF] shl 24 xor Key[8, 2];
3837
  FDigest[3] := Buffer[3] xor
3838
                Square_SEint[A shr 24        ]        xor
3839
                Square_SEint[B shr 24        ] shl  8 xor
3840
                Square_SEint[C shr 24        ] shl 16 xor
3841
                Square_SEint[D shr 24        ] shl 24 xor Key[8, 3];
3842
end;
3843
{$ENDIF !THash_Square_asm}
3844
3845
procedure THash_Square.DoDone;
3846
var
3847
  I: Integer;
3848
begin
3849
  if FPaddingByte = 0 then
3850
    FPaddingByte := $80;
3851
  FBuffer[FBufferIndex] := FPaddingByte;
3852
  Inc(FBufferIndex);
3853
  if FBufferIndex > FBufferSize - 8 then
3854
  begin
3855
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3856
    DoTransform(Pointer(FBuffer));
3857
    FBufferIndex := 0;
3858
  end;
3859
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3860
  for I := 7 downto 0 do
3861
    FBuffer[15 - I] := PByteArray(@FCount[0])[I];
3862
  DoTransform(Pointer(FBuffer));
3863
end;
3864
3865
function THash_Square.Digest: PByteArray;
3866
begin
3867
  Result := @FDigest;
3868
end;
3869
3870
class function THash_Square.DigestSize: UInt32;
3871
begin
3872
  Result := 16;
3873
end;
3874
3875
class function THash_Square.BlockSize: UInt32;
3876
begin
3877
  Result := 16;
3878
end;
3879
3880
{ THashBaseSnefru }
3881
3882
procedure THashBaseSnefru.SetRounds(Value: UInt32);
3883
begin
3884
  if (Value < 2) or (Value > 8) then
3885
    Value := 8;
3886
  FRounds := Value;
3887
end;
3888
3889
procedure THashBaseSnefru.DoInit;
3890
begin
3891
  FillChar(FDigest, SizeOf(FDigest), 0);
3892
  SetRounds(FRounds);
3893
end;
3894
3895
function THashBaseSnefru.GetMaxRounds: UInt32;
3896
begin
3897
  Result := 8;
3898
end;
3899
3900
function THashBaseSnefru.GetMinRounds: UInt32;
3901
begin
3902
  Result := 2;
3903
end;
3904
3905
function THashBaseSnefru.GetRounds: UInt32;
3906
begin
3907
  Result := FRounds;
3908
end;
3909
3910
procedure THashBaseSnefru.DoDone;
3911
begin
3912
  if FBufferIndex > 0 then
3913
  begin
3914
    FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3915
    DoTransform(Pointer(FBuffer));
3916
    FBufferIndex := 0;
3917
  end;
3918
  FillChar(FBuffer[FBufferIndex], FBufferSize - FBufferIndex, 0);
3919
  PUInt32(@FBuffer[FBufferSize - 8])^ := SwapUInt32(FCount[1]);
3920
  PUInt32(@FBuffer[FBufferSize - 4])^ := SwapUInt32(FCount[0]);
3921
  DoTransform(Pointer(FBuffer));
3922
  SwapUInt32Buffer(FDigest, FDigest, 8);
3923
end;
3924
3925
function THashBaseSnefru.Digest: PByteArray;
3926
begin
3927
  Result := @FDigest;
3928
end;
3929
3930
{ THash_Snefru128 }
3931
3932
{$IFNDEF THash_Snefru128_asm}
3933
procedure THash_Snefru128.DoTransform(Buffer: PUInt32Array);
3934
const
3935
  ShiftTable: array[0..3] of Integer = (16, 8, 16, 24);
3936
var
3937
  I, Index, ByteInWord, T, N, S, S0, S1: UInt32;
3938
  D, Box0, Box1: PUInt32Array;
3939
begin
3940
  D := @FDigest;
3941
  SwapUInt32Buffer(Buffer[0], D[4], 12);
3942
  Move(D[0], D[16], 16);
3943
  Box0 := @Snefru_Data[0];
3944
  Box1 := @Snefru_Data[1];
3945
  for Index := 0 to FRounds - 1 do
3946
  begin
3947
    for ByteInWord := 0 to 3 do
3948
    begin
3949
      I := 0;
3950
      N := D[0];
3951
      while I < 16 do
3952
      begin
3953
        S0 := Box0[N and $FF];
3954
        T := (I +  1) and 15;    N := D[T] xor S0; D[T] := N;
3955
        T := (I + 15) and 15; D[T] := D[T] xor S0;
3956
        S1 := Box0[N and $FF];
3957
        T := (I +  2) and 15;    N := D[T] xor S1; D[T] := N;
3958
        T := (I + 16) and 15; D[T] := D[T] xor S1;
3959
        S0 := Box1[N and $FF];
3960
        T := (I +  3) and 15;    N := D[T] xor S0; D[T] := N;
3961
        T := (I + 17) and 15; D[T] := D[T] xor S0;
3962
        S1 := Box1[N and $FF];
3963
        T := (I +  4) and 15;    N := D[T] xor S1; D[T] := N;
3964
        T := (I + 18) and 15; D[T] := D[T] xor S1;
3965
        Inc(I, 4);
3966
      end;
3967
      T := ShiftTable[ByteInWord];
3968
      S := 32 - T;
3969
      for I := 0 to 15 do
3970
        D[I] := D[I] shr T or D[I] shl S;
3971
    end;
3972
    Box0 := @Box0[512];
3973
    Box1 := @Box1[512];
3974
  end;
3975
  for I := 0 to 3 do
3976
    D[I] := D[I + 16] xor D[15 - I];
3977
end;
3978
{$ENDIF !THash_Snefru128_asm}
3979
3980
class function THash_Snefru128.DigestSize: UInt32;
3981
begin
3982
  Result := 16;
3983
end;
3984
3985
class function THash_Snefru128.BlockSize: UInt32;
3986
begin
3987
  Result := 48
3988
end;
3989
3990
{ THash_Snefru256 }
3991
3992
{$IFNDEF THash_Snefru256_asm}
3993
procedure THash_Snefru256.DoTransform(Buffer: PUInt32Array);
3994
const
3995
  ShiftTable: array[0..3] of Integer = (16, 8, 16, 24);
3996
var
3997
  I, Index, ByteInWord, T, N, S, S0, S1: UInt32;
3998
  D, Box0, Box1: PUInt32Array;
3999
begin
4000
  D := @FDigest;
4001
  SwapUInt32Buffer(Buffer[0], D[8], 8);
4002
  Move(D[0], D[16], 32);
4003
  Box0 := @Snefru_Data[0];
4004
  Box1 := @Snefru_Data[1];
4005
  for Index := 0 to FRounds - 1 do
4006
  begin
4007
    for ByteInWord := 0 to 3 do
4008
    begin
4009
      I := 0;
4010
      N := D[0];
4011
      while I < 16 do
4012
      begin
4013
        S0 := Box0[N and $FF];
4014
        T := (I +  1) and 15;    N := D[T] xor S0; D[T] := N;
4015
        T := (I + 15) and 15; D[T] := D[T] xor S0;
4016
        S1 := Box0[N and $FF];
4017
        T := (I +  2) and 15;    N := D[T] xor S1; D[T] := N;
4018
        T := (I + 16) and 15; D[T] := D[T] xor S1;
4019
        S0 := Box1[N and $FF];
4020
        T := (I +  3) and 15;    N := D[T] xor S0; D[T] := N;
4021
        T := (I + 17) and 15; D[T] := D[T] xor S0;
4022
        S1 := Box1[N and $FF];
4023
        T := (I +  4) and 15;    N := D[T] xor S1; D[T] := N;
4024
        T := (I + 18) and 15; D[T] := D[T] xor S1;
4025
        Inc(I, 4);
4026
      end;
4027
      T := ShiftTable[ByteInWord];
4028
      S := 32 - T;
4029
      for I := 0 to 15 do
4030
        D[I] := D[I] shr T or D[I] shl S;
4031
    end;
4032
    Box0 := @Box0[512];
4033
    Box1 := @Box1[512];
4034
  end;
4035
  for I := 0 to 7 do
4036
    D[I] := D[I + 16] xor D[15 - I];
4037
end;
4038
{$ENDIF !THash_Snefru256_asm}
4039
4040
class function THash_Snefru256.DigestSize: UInt32;
4041
begin
4042
  Result := 32;
4043
end;
4044
4045
class function THash_Snefru256.BlockSize: UInt32;
4046
begin
4047
  Result := 32
4048
end;
4049
4050
{ THash_Sapphire }
4051
4052
procedure THash_Sapphire.DoInit;
4053
var
4054
  I: Integer;
4055
begin
4056
  FillChar(FDigest, SizeOf(FDigest), 0);
4057
  FRotor := 1;
4058
  FRatchet := 3;
4059
  FAvalanche := 5;
4060
  FPlain := 7;
4061
  FCipher := 11;
4062
  for I := 0 to 255 do
4063
    FCards[I] := 255 - I;
4064
end;
4065
4066
procedure THash_Sapphire.DoTransform(Buffer: PUInt32Array);
4067
begin
4068
  // Empty on purpose: the base class for the hashes declares an abstract
4069
  // DoTransform method and not providing an override for it would cause a
4070
  // compiler warning
4071
end;
4072
4073
procedure THash_Sapphire.SetDigestSize(Value: UInt8);
4074
begin
4075
  if (Value >= 1) and (Value <= 64) then
4076
    FDigestSize := Value
4077
  else
4078
    FDigestSize := DigestSize;
4079
end;
4080
4081
procedure THash_Sapphire.DoDone;
4082
var
4083
  I: Integer;
4084
begin
4085
  for I := 255 downto 0 do
4086
    Calc(I, 1);
4087
  for I := 0 to DigestSize - 1 do
4088
  begin
4089
    Calc(#0#0, 1);
4090
    PByteArray(@FDigest)[I] := FCipher;
4091
  end;
4092
end;
4093
4094
{$IFNDEF THash_Sapphire_asm}
4095
procedure THash_Sapphire.Calc(const Data; DataSize: Integer);
4096
var
4097
  Cipher, Ratchet, Rotor, Plain, Avalanche, T: UInt32;
4098
  D: PByte;
4099
begin
4100
  D         := @Data;
4101
  Cipher    := FCipher;
4102
  Ratchet   := FRatchet;
4103
  Rotor     := FRotor;
4104
  Plain     := FPlain;
4105
  Avalanche := FAvalanche;
4106
4107
  while DataSize > 0 do
4108
  begin
4109
    Dec(DataSize);
4110
    Ratchet := (Ratchet + FCards[Rotor]) and $FF;
4111
    Rotor := (Rotor + 1) and $FF;
4112
    T := FCards[Cipher];
4113
    FCards[Cipher] := FCards[Ratchet];
4114
    FCards[Ratchet] := FCards[Plain];
4115
    FCards[Plain] := FCards[Rotor];
4116
    FCards[Rotor] := T;
4117
    Avalanche := (Avalanche + FCards[T]) and $FF;
4118
    T := (FCards[Plain] + FCards[Cipher] + FCards[Avalanche]) and $FF;
4119
    Plain := D^; Inc(D);
4120
    Cipher := Plain xor FCards[FCards[T]] xor FCards[(FCards[Ratchet] + FCards[Rotor]) and $FF];
4121
  end;
4122
4123
  FCipher    := Cipher;
4124
  FRatchet   := Ratchet;
4125
  FRotor     := Rotor;
4126
  FPlain     := Plain;
4127
  FAvalanche := Avalanche;
4128
end;
4129
{$ENDIF !THash_Sapphire_asm}
4130
4131
function THash_Sapphire.Digest: PByteArray;
4132
begin
4133
  Result := @FDigest;
4134
end;
4135
4136
function THash_Sapphire.DigestAsBytes: TBytes;
4137
var
4138
  Size: Integer;
4139
begin
4140
  if FDigestSize > 0 then
4141
    Size := FDigestSize
4142
  else
4143
    Size := DigestSize;
4144
4145
  SetLength(Result, Size);
4146
  if Size <> 0 then
4147
    Move(FDigest, Result[0], Size);
4148
end;
4149
4150
class function THash_Sapphire.DigestSize: UInt32;
4151
begin
4152
  Result := 64;
4153
end;
4154
4155
class function THash_Sapphire.BlockSize: UInt32;
4156
begin
4157
  Result := 1;
4158
end;
4159
4160
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
4161
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
4162
4163
{ THash_SHA3_224 }
4164
4165
class function THash_SHA3_224.BlockSize: UInt32;
4166
begin
4167
  Result := 144;
4168
end;
4169
4170
class function THash_SHA3_224.DigestSize: UInt32;
4171
begin
4172
  Result := 28;
4173
end;
4174
4175
procedure THash_SHA3_224.DoInit;
4176
begin
4177
  inherited;
4178
4179
  InitSponge(1152,  448);
4180
  FSpongeState.FixedOutputLength := 224;
4181
end;
4182
4183
{ THash_SHA3_256 }
4184
4185
class function THash_SHA3_256.BlockSize: UInt32;
4186
begin
4187
  Result := 136;
4188
end;
4189
4190
class function THash_SHA3_256.DigestSize: UInt32;
4191
begin
4192
  Result := 32;
4193
end;
4194
4195
procedure THash_SHA3_256.DoInit;
4196
begin
4197
  inherited;
4198
4199
  InitSponge(1088,  512);
4200
  FSpongeState.fixedOutputLength := 256;
4201
end;
4202
4203
{ THash_SHA3_384 }
4204
4205
class function THash_SHA3_384.BlockSize: UInt32;
4206
begin
4207
  Result := 104;
4208
end;
4209
4210
class function THash_SHA3_384.DigestSize: UInt32;
4211
begin
4212
  Result := 48;
4213
end;
4214
4215
procedure THash_SHA3_384.DoInit;
4216
begin
4217
  inherited;
4218
4219
  InitSponge(832,  768);
4220
  FSpongeState.fixedOutputLength := 384;
4221
end;
4222
4223
{ THash_SHA3_512 }
4224
4225
class function THash_SHA3_512.BlockSize: UInt32;
4226
begin
4227
  Result := 72;
4228
end;
4229
4230
class function THash_SHA3_512.DigestSize: UInt32;
4231
begin
4232
  Result := 64;
4233
end;
4234
4235
procedure THash_SHA3_512.DoInit;
4236
begin
4237
  inherited;
4238
4239
  InitSponge(576, 1024);
4240
  FSpongeState.fixedOutputLength := 512;
4241
end;
4242
4243
{ THash_Shake128 }
4244
4245
class function THash_Shake128.BlockSize: UInt32;
4246
begin
4247
  Result := 168;
4248
end;
4249
4250
class function THash_Shake128.DigestSize: UInt32;
4251
begin
4252
  // 0 because the hash output length is defined via HashSize property at runtime
4253
  Result := 0;
4254
end;
4255
4256
procedure THash_Shake128.DoInit;
4257
begin
4258
  inherited;
4259
4260
  InitSponge(1344, 256);
4261
end;
4262
4263
{ THash_Shake256 }
4264
4265
class function THash_Shake256.BlockSize: UInt32;
4266
begin
4267
  Result := 136;
4268
end;
4269
4270
class function THash_Shake256.DigestSize: UInt32;
4271
begin
4272
  // 0 because the hash output length is defined via HashSize property at runtime
4273
  Result := 0;
4274
end;
4275
4276
procedure THash_Shake256.DoInit;
4277
begin
4278
  inherited;
4279
4280
  InitSponge(1088, 512);
4281
end;
4282
4283
{ THash_SHA3Base }
4284
4285
procedure THash_SHA3Base.InitSponge(Rate, Capacity: UInt16);
4286
var
4287
  OutputLengthBackup : UInt16;
4288
begin
4289
  if FOutpLengSet then
4290
    OutputLengthBackup := FSpongeState.FixedOutputLength
4291
  else
4292
    // Suppress compiler warning about potentially uninitialized variable
4293
    OutputLengthBackup := 0;
4294
4295
  FillChar(FSpongeState, SizeOf(FSpongeState), 0);
4296
4297
  if (Rate + Capacity <> 1600) or (Rate = 0) or (Rate >= 1600) or
4298
     ((Rate and 63) <> 0) then
4299
    raise EDECHashException.CreateFmt(sHashInitFailure, ['SHA3',
4300
                                                         'rate: ' + IntToStr(Rate) +
4301
                                                         ' capacity: ' + IntToStr(Capacity)]);
4302
4303
  FSpongeState.Rate     := Rate;
4304
  FSpongeState.Capacity := Capacity;
4305
4306
  if FOutpLengSet then
4307
    FSpongeState.FixedOutputLength := OutputLengthBackup;
4308
end;
4309
4310
procedure THash_SHA3Base.KeccakAbsorb(var state: TState_B; data: PUInt64; laneCount: Integer);
4311
begin
4312
   XORIntoState(TState_L(state), data, laneCount);
4313
   KeccakPermutation(TState_L(state));
4314
end;
4315
4316
{$IFDEF PUREPASCAL}
4317
function THash_SHA3Base.RotL(const x: UInt64; c: Integer): UInt64;
4318
begin
4319
  Result := (x shl c) or (x shr (64-c));
4320
end;
4321
4322
function THash_SHA3Base.RotL1(var x: UInt64): UInt64;
4323
begin
4324
  Result := (x shl 1) or (x shr (64-1));
4325
end;
4326
4327
procedure THash_SHA3Base.KeccakPermutation(var state: TState_L);
4328
var
4329
   A : PUInt64Array;
4330
   B : array[0..24] of UInt64;
4331
   C0, C1, C2, C3, C4, D0, D1, D2, D3, D4: UInt64;
4332
   i : Integer;
4333
4334
begin
4335
   A := PUInt64Array(@state);
4336
   for i := 0 to 23 do begin
4337
      C0 := A[00] xor A[05] xor A[10] xor A[15] xor A[20];
4338
      C1 := A[01] xor A[06] xor A[11] xor A[16] xor A[21];
4339
      C2 := A[02] xor A[07] xor A[12] xor A[17] xor A[22];
4340
      C3 := A[03] xor A[08] xor A[13] xor A[18] xor A[23];
4341
      C4 := A[04] xor A[09] xor A[14] xor A[19] xor A[24];
4342
4343
      D0 := RotL1(C0) xor C3;
4344
      D1 := RotL1(C1) xor C4;
4345
      D2 := RotL1(C2) xor C0;
4346
      D3 := RotL1(C3) xor C1;
4347
      D4 := RotL1(C4) xor C2;
4348
4349
      B[00] := A[00] xor D1;
4350
      B[01] := RotL(A[06] xor D2, 44);
4351
      B[02] := RotL(A[12] xor D3, 43);
4352
      B[03] := RotL(A[18] xor D4, 21);
4353
      B[04] := RotL(A[24] xor D0, 14);
4354
      B[05] := RotL(A[03] xor D4, 28);
4355
      B[06] := RotL(A[09] xor D0, 20);
4356
      B[07] := RotL(A[10] xor D1, 3);
4357
      B[08] := RotL(A[16] xor D2, 45);
4358
      B[09] := RotL(A[22] xor D3, 61);
4359
      B[10] := RotL(A[01] xor D2, 1);
4360
      B[11] := RotL(A[07] xor D3, 6);
4361
      B[12] := RotL(A[13] xor D4, 25);
4362
      B[13] := RotL(A[19] xor D0, 8);
4363
      B[14] := RotL(A[20] xor D1, 18);
4364
      B[15] := RotL(A[04] xor D0, 27);
4365
      B[16] := RotL(A[05] xor D1, 36);
4366
      B[17] := RotL(A[11] xor D2, 10);
4367
      B[18] := RotL(A[17] xor D3, 15);
4368
      B[19] := RotL(A[23] xor D4, 56);
4369
      B[20] := RotL(A[02] xor D3, 62);
4370
      B[21] := RotL(A[08] xor D4, 55);
4371
      B[22] := RotL(A[14] xor D0, 39);
4372
      B[23] := RotL(A[15] xor D1, 41);
4373
      B[24] := RotL(A[21] xor D2, 2);
4374
4375
      A[00] := B[00] xor ((not B[01]) and B[02]);
4376
      A[01] := B[01] xor ((not B[02]) and B[03]);
4377
      A[02] := B[02] xor ((not B[03]) and B[04]);
4378
      A[03] := B[03] xor ((not B[04]) and B[00]);
4379
      A[04] := B[04] xor ((not B[00]) and B[01]);
4380
      A[05] := B[05] xor ((not B[06]) and B[07]);
4381
      A[06] := B[06] xor ((not B[07]) and B[08]);
4382
      A[07] := B[07] xor ((not B[08]) and B[09]);
4383
      A[08] := B[08] xor ((not B[09]) and B[05]);
4384
      A[09] := B[09] xor ((not B[05]) and B[06]);
4385
      A[10] := B[10] xor ((not B[11]) and B[12]);
4386
      A[11] := B[11] xor ((not B[12]) and B[13]);
4387
      A[12] := B[12] xor ((not B[13]) and B[14]);
4388
      A[13] := B[13] xor ((not B[14]) and B[10]);
4389
      A[14] := B[14] xor ((not B[10]) and B[11]);
4390
      A[15] := B[15] xor ((not B[16]) and B[17]);
4391
      A[16] := B[16] xor ((not B[17]) and B[18]);
4392
      A[17] := B[17] xor ((not B[18]) and B[19]);
4393
      A[18] := B[18] xor ((not B[19]) and B[15]);
4394
      A[19] := B[19] xor ((not B[15]) and B[16]);
4395
      A[20] := B[20] xor ((not B[21]) and B[22]);
4396
      A[21] := B[21] xor ((not B[22]) and B[23]);
4397
      A[22] := B[22] xor ((not B[23]) and B[24]);
4398
      A[23] := B[23] xor ((not B[24]) and B[20]);
4399
      A[24] := B[24] xor ((not B[20]) and B[21]);
4400
4401
      A[00] := A[00] xor cRoundConstants[i];
4402
   end;
4403
end;
4404
{$ELSE}
4405
// Must be procedural as otherwise the parameters get passed in different
4406
// CPU registers and the complete ASM code would have needed to be rewritten.
4407
procedure KeccakPermutationKernel(B, A, C : Pointer);
4408
asm
4409
  {$IFDEF X86ASM}
4410
    {$INCLUDE DECHash.sha3_mmx.inc}
4411
  {$ELSE}
4412
    {$INCLUDE DECHash.sha3_x64.inc}
4413
  {$ENDIF}
4414
end;
4415
4416
procedure THash_SHA3Base.KeccakPermutation(var state: TState_L);
4417
var
4418
   A : PUInt64Array;
4419
   B : array [0..24] of UInt64;
4420
   C : array [0..4] of UInt64;
4421
   i : Integer;
4422
4423
  {$IFDEF X86ASM}
4424
  procedure EMMS;
4425
  asm
4426
    // This operation marks the x87 FPU data registers (which are aliased to the
4427
    // MMX technology registers) as available for use by x87 FPU floating-point
4428
    // instructions.
4429
    emms
4430
  end;
4431
  {$ENDIF}
4432
4433
begin
4434
   A := PUInt64Array(@state);
4435
   for i:=0 to 23 do begin
4436
      KeccakPermutationKernel(@B, A, @C);
4437
      A[00] := A[00] xor cRoundConstants[i];
4438
   end;
4439
4440
   {$IFDEF X86ASM}
4441
   EMMS;
4442
   {$ENDIF}
4443
end;
4444
{$ENDIF}
4445
4446
procedure THash_SHA3Base.PadAndSwitchToSqueezingPhase;
4447
var
4448
  i: integer;
4449
begin
4450
  // Note: the bits are numbered from 0 = LSB to 7 = MSB
4451
  if (FSpongeState.BitsInQueue + 1 = FSpongeState.Rate) then
4452
  begin
4453
    i := FSpongeState.BitsInQueue div 8;
4454
    FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4455
                                 (1 shl (FSpongeState.BitsInQueue and 7));
4456
    AbsorbQueue;
4457
    FillChar(FSpongeState.DataQueue, FSpongeState.Rate div 8, 0);
4458
  end
4459
  else
4460
  begin
4461
    i := FSpongeState.BitsInQueue div 8;
4462
    FillChar(FSpongeState.DataQueue[(FSpongeState.BitsInQueue+7) div 8],
4463
             FSpongeState.Rate div 8 - (FSpongeState.BitsInQueue+7) div 8, 0);
4464
    FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4465
                                 (1 shl (FSpongeState.BitsInQueue and 7));
4466
  end;
4467
4468
  i := (FSpongeState.Rate-1) div 8;
4469
  FSpongeState.DataQueue[i] := FSpongeState.DataQueue[i] or
4470
                               (1 shl ((FSpongeState.Rate-1) and 7));
4471
  AbsorbQueue;
4472
  ExtractFromState(@FSpongeState.DataQueue,
4473
                   TState_L(FSpongeState.State),
4474
                   FSpongeState.Rate div 64);
4475
  FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate;
4476
  FSpongeState.SqueezeActive := true;
4477
end;
4478
4479
procedure THash_SHA3Base.Squeeze(var Output: TSHA3Digest; OutputLength: Int32);
4480
var
4481
  i            : Int32;
4482
  PartialBlock : Int16;
4483
begin
4484
  if not FSpongeState.SqueezeActive then
4485
    PadAndSwitchToSqueezingPhase;
4486
4487
  // Only multiple of 8 bits are allowed, truncation must be done at user level
4488
  if OutputLength and 7 <> 0 then
4489
    raise EDECHashException.CreateFmt(sSHA3AbsorbFailure,
4490
                                 [OutputLength, 'true']);
4491
4492
  i := 0;
4493
  while i < OutputLength do
4494
  begin
4495
    if FSpongeState.bitsAvailableForSqueezing = 0 then
4496
    begin
4497
      KeccakPermutation(TState_L(FSpongeState.State));
4498
      ExtractFromState(@FSpongeState.DataQueue, TState_L(FSpongeState.State),
4499
                       FSpongeState.Rate div 64);
4500
      FSpongeState.bitsAvailableForSqueezing := FSpongeState.Rate;
4501
    end;
4502
4503
    PartialBlock := FSpongeState.bitsAvailableForSqueezing;
4504
    if PartialBlock > OutputLength - i then
4505
      PartialBlock := OutputLength - i;
4506
4507
    move(FSpongeState.DataQueue[(FSpongeState.Rate - FSpongeState.bitsAvailableForSqueezing) div 8],
4508
         output[i div 8], PartialBlock div 8);
4509
    dec(FSpongeState.bitsAvailableForSqueezing, PartialBlock);
4510
    inc(i, PartialBlock);
4511
  end;
4512
end;
4513
4514
procedure THash_SHA3Base.XORIntoState(var state: TState_L; pI: PUInt64; laneCount: Integer);
4515
var
4516
   pS: PUInt64;
4517
   i: Integer;
4518
begin
4519
   pS := @state[0];
4520
   for i:=laneCount-1 downto 0 do begin
4521
      pS^ := pS^ xor pI^;
4522
      Inc(pI);
4523
      Inc(pS);
4524
   end;
4525
end;
4526
4527
4528
procedure THash_SHA3Base.Absorb(Data: PBABytes; DatabitLen: Int32);
4529
var
4530
  i, j, wholeBlocks, partialBlock: Integer;
4531
  partialByte: Integer;
4532
  curData: PUInt64;
4533
begin
4534
  // if a number of bits which cannot be divided by 8 without reminder is in the
4535
  // queue or algorithm is already in squeezing state
4536
  if (FSpongeState.BitsInQueue and 7 <> 0) or FSpongeState.SqueezeActive then
4537
  begin
4538
    raise EDECHashException.CreateFmt(sSHA3AbsorbFailure,
4539
                                     [FSpongeState.BitsInQueue,
4540
                                      BoolToStr(FSpongeState.SqueezeActive, true)]);
4541
  end;
4542
4543
  i := 0;
4544
4545
  while i < databitlen do
4546
  begin
4547
     if ((FSpongeState.BitsInQueue = 0) and (databitlen >= FSpongeState.Rate) and
4548
        (i <= (databitlen - FSpongeState.Rate))) then
4549
     begin
4550
       wholeBlocks := (databitlen-i) div FSpongeState.Rate;
4551
       curData := @data^[i div 8];
4552
       j := 0;
4553
       while j < wholeBlocks do
4554
       begin
4555
         KeccakAbsorb(FSpongeState.State, curData, FSpongeState.Rate div 64);
4556
         Inc(j);
4557
         Inc(PByte(curData), FSpongeState.Rate div 8);
4558
       end;
4559
       Inc(i, wholeBlocks * FSpongeState.Rate);
4560
     end
4561
     else
4562
     begin
4563
       partialBlock := databitlen - i;
4564
       if partialBlock + FSpongeState.BitsInQueue > FSpongeState.Rate then
4565
         partialBlock := FSpongeState.Rate - FSpongeState.BitsInQueue;
4566
4567
       partialByte := partialBlock and 7;
4568
       Dec(partialBlock, partialByte);
4569
       Move(data^[i div 8], FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8], partialBlock div 8);
4570
       Inc(FSpongeState.BitsInQueue, partialBlock);
4571
       Inc(i, partialBlock);
4572
       if FSpongeState.BitsInQueue=FSpongeState.Rate then
4573
          AbsorbQueue;
4574
4575
       if partialByte > 0 then
4576
       begin
4577
         FSpongeState.DataQueue[FSpongeState.BitsInQueue div 8] :=
4578
           data^[i div 8] and ((1 shl partialByte)-1);
4579
4580
         Inc(FSpongeState.BitsInQueue, partialByte);
4581
         Inc(i, partialByte);
4582
       end;
4583
     end;
4584
  end;
4585
end;
4586
4587
procedure THash_SHA3Base.AbsorbQueue;
4588
begin
4589
  // state.bitsInQueue is assumed to be equal to state.rat
4590
  KeccakAbsorb(FSpongeState.State, @FSpongeState.DataQueue, FSpongeState.Rate div 64);
4591
  FSpongeState.BitsInQueue := 0;
4592
end;
4593
4594
procedure THash_SHA3Base.Calc(const Data; DataSize: Integer);
4595
var
4596
  DataPtr   : PBABytes;
4597
  RoundSize : UInt32;
4598
const
4599
  // Maximum number of bytes one can process in one round
4600
  MaxRoundSize = MaxInt div 8;
4601
begin
4602
  // due to the way the inherited calc is constructed it must not be called here!
4603
  if (DataSize > 0) then
4604
  begin
4605
    DataPtr := PBABytes(@Data);
4606
4607
    while (UInt32(DataSize) > 0) do
4608
    begin
4609
      RoundSize := DataSize;
4610
      if (RoundSize > MaxRoundSize) then
4611
        RoundSize := MaxRoundSize;
4612
4613
      Absorb(DataPtr, RoundSize * 8);
4614
      Dec(DataSize, RoundSize);
4615
      Inc(DataPtr, RoundSize);
4616
    end;
4617
4618
  end;
4619
end;
4620
4621
constructor THash_SHA3Base.Create;
4622
begin
4623
  inherited;
4624
4625
  FOutpLengSet := false;
4626
  SetLength(FDigest, 64);
4627
end;
4628
4629
function THash_SHA3Base.Digest: PByteArray;
4630
begin
4631
  Result := @FDigest[0];
4632
end;
4633
4634
procedure THash_SHA3Base.DoDone;
4635
begin
4636
  FinalBit_LSB(FFinalByte, FFinalByteLength, FDigest);
4637
end;
4638
4639
procedure THash_SHA3Base.DoInit;
4640
begin
4641
  inherited;
4642
4643
  FillChar(FDIgest[0], Length(FDigest), 0);
4644
end;
4645
4646
procedure THash_SHA3Base.DoUpdate(Data: Pointer; DataBitLen: Int32);
4647
var
4648
  LastByte: Byte;
4649
begin
4650
  // No partial byte
4651
  if DataBitLen and 7 = 0 then
4652
    Absorb(Data, DataBitLen)
4653
  else
4654
  begin
4655
    // Data contains a partial byte. Calculate the whole bytes first then the
4656
    // partial one.
4657
    Absorb(Data, DataBitLen - (DataBitLen and 7));
4658
4659
    // Align the last partial byte to the least significant bits
4660
    LastByte := PBABytes(Data)^[DatabitLen div 8] shr (8 - (DataBitLen and 7));
4661
    Absorb(@LastByte, DataBitLen and 7);
4662
  end;
4663
end;
4664
4665
procedure THash_SHA3Base.ExtractFromState(outp: Pointer; const state: TState_L; laneCount: Integer);
4666
var
4667
   pI, pS: PUInt64;
4668
   i: Integer;
4669
begin
4670
   pI := outp;
4671
   pS := @state[0];
4672
   for i := laneCount - 1 downto 0 do
4673
   begin
4674
      pI^ := pS^;
4675
      Inc(pI);
4676
      Inc(pS);
4677
   end;
4678
end;
4679
4680
procedure THash_SHA3Base.FinalBit_LSB(Bits: Byte; Bitlen: UInt16;
4681
                                     var Hashvalue: TSHA3Digest);
4682
var
4683
  WorkingBitLen : Int16;
4684
  lw : UInt16;
4685
begin
4686
  // normalize Bitlen and Bits (zero high bits)
4687
  Bitlen := Bitlen and 7;
4688
  if Bitlen = 0 then
4689
    lw := 0
4690
  else
4691
    lw := Bits and pred(word(1) shl Bitlen);
4692
4693
  // 'append' (in LSB language) the domain separation bits
4694
  //if (FSpongeState.FixedOutputLength = 0) then
4695
  if self.ClassParent = THash_ShakeBase then
4696
  begin
4697
    lw := lw or (word($F) shl Bitlen);
4698
    WorkingBitLen := Bitlen+4;
4699
  end
4700
  else
4701
  begin
4702
    // SHA3: append two bits 01
4703
    lw := lw or (word($2) shl Bitlen);
4704
    WorkingBitLen := Bitlen+2;
4705
  end;
4706
4707
  // update state with final bits
4708
  if WorkingBitLen < 9 then
4709
  begin
4710
    // 0..8 bits, one call to update
4711
    lw := lw shl (8-WorkingBitLen);
4712
    DoUpdate(@lw, WorkingBitLen);
4713
    // squeeze the digits from the sponge
4714
    Squeeze(Hashvalue, FSpongeState.FixedOutputLength);
4715
  end
4716
  else
4717
  begin
4718
    // More than 8 bits, first a regular update with low byte
4719
    DoUpdate(@lw, 8);
4720
4721
    // Finally update remaining last bits
4722
    dec(WorkingBitLen,8);
4723
    lw := lw shr WorkingBitLen;
4724
    DoUpdate(@lw, WorkingBitLen);
4725
4726
    Squeeze(Hashvalue, FSpongeState.FixedOutputLength);
4727
  end;
4728
end;
4729
4730
procedure THash_SHA3Base.DoTransform(Buffer: PUInt32Array);
4731
begin
4732
// Empty on purpose as calculation is implemented differently for SHA3. Needed
4733
// to suppress the compiler warning that a class with an abstract method is created
4734
end;
4735
4736
{ THash_ShakeBase }
4737
4738
function THash_ShakeBase.GetHashSize: UInt16;
4739
begin
4740
  // divided by 8 since this field is in bits
4741
  Result := FSpongeState.FixedOutputLength shr 3;
4742
end;
4743
4744
procedure THash_ShakeBase.SetHashSize(const Value: UInt16);
4745
begin
4746
  if (Value = 0) then
4747
    raise EDECHashException.CreateResFmt(@sHashInitFailure,
4748
                                         [GetShortClassName, sHashOutputLength0]);
4749
4750
  // multiplied with 8 since this field is in bits
4751
  FSpongeState.FixedOutputLength := Value * 8;
4752
  // This flag tells the initialization of the algorithm that
4753
  // FixedOutputLength needs to be preserved
4754
  FOutpLengSet := true;
4755
4756
  SetLength(FDigest, Value);
4757
  FillChar(FDigest[0], Length(FDigest), #0);
4758
end;
4759
4760
function THash_ShakeBase.DigestAsBytes: TBytes;
4761
begin
4762
  SetLength(Result, FSpongeState.FixedOutputLength shr 3);
4763
  if FSpongeState.FixedOutputLength > 0 then
4764
    Move(Digest^, Result[0], Length(Result));
4765
end;
4766
4767
initialization
4768
  // Define the has returned by ValidHash if passing nil as parameter
4769
  SetDefaultHashClass(THash_SHA256);
4770
4771
  {$IFNDEF ManualRegisterHashClasses}
4772
  THash_MD2.RegisterClass(TDECHash.ClassList);
4773
  THash_MD4.RegisterClass(TDECHash.ClassList);
4774
  THash_MD5.RegisterClass(TDECHash.ClassList);
4775
  THash_RipeMD128.RegisterClass(TDECHash.ClassList);
4776
  THash_RipeMD160.RegisterClass(TDECHash.ClassList);
4777
  THash_RipeMD256.RegisterClass(TDECHash.ClassList);
4778
  THash_RipeMD320.RegisterClass(TDECHash.ClassList);
4779
  THash_SHA0.RegisterClass(TDECHash.ClassList);
4780
  THash_SHA1.RegisterClass(TDECHash.ClassList);
4781
  THash_SHA224.RegisterClass(TDECHash.ClassList);
4782
  THash_SHA256.RegisterClass(TDECHash.ClassList);
4783
  THash_SHA384.RegisterClass(TDECHash.ClassList);
4784
  THash_SHA512.RegisterClass(TDECHash.ClassList);
4785
  THash_SHA3_224.RegisterClass(TDECHash.ClassList);
4786
  THash_SHA3_256.RegisterClass(TDECHash.ClassList);
4787
  THash_SHA3_384.RegisterClass(TDECHash.ClassList);
4788
  THash_SHA3_512.RegisterClass(TDECHash.ClassList);
4789
  THash_Shake128.RegisterClass(TDECHash.ClassList);
4790
  THash_Shake256.RegisterClass(TDECHash.ClassList);
4791
  THash_Haval128.RegisterClass(TDECHash.ClassList);
4792
  THash_Haval160.RegisterClass(TDECHash.ClassList);
4793
  THash_Haval192.RegisterClass(TDECHash.ClassList);
4794
  THash_Haval224.RegisterClass(TDECHash.ClassList);
4795
  THash_Haval256.RegisterClass(TDECHash.ClassList);
4796
  THash_Tiger.RegisterClass(TDECHash.ClassList);
4797
  THash_Panama.RegisterClass(TDECHash.ClassList);
4798
4799
    {$IFDEF OLD_WHIRLPOOL_NAMES}
4800
    THash_Whirlpool.RegisterClass(TDECHash.ClassList);
4801
    THash_Whirlpool1.RegisterClass(TDECHash.ClassList);
4802
    THash_Whirlpool1New.RegisterClass(TDECHash.ClassList);
4803
    {$ELSE}
4804
    THash_Whirlpool1.RegisterClass(TDECHash.ClassList);
4805
    {$ENDIF}
4806
4807
  THash_Whirlpool0.RegisterClass(TDECHash.ClassList);
4808
  THash_WhirlpoolT.RegisterClass(TDECHash.ClassList);
4809
4810
  THash_Square.RegisterClass(TDECHash.ClassList);
4811
  THash_Snefru128.RegisterClass(TDECHash.ClassList);
4812
  THash_Snefru256.RegisterClass(TDECHash.ClassList);
4813
  THash_Sapphire.RegisterClass(TDECHash.ClassList);
4814
4815
    {$IFDEF OLD_SHA_NAME}
4816
    THash_SHA.RegisterClass(TDECHash.ClassList);
4817
    {$ENDIF}
4818
4819
  {$ENDIF}
4820
4821
finalization
4822
  // No need to unregister the hash classes, as the list is being freed
4823
  // in finalization of DECHashBase unit
4824
4825
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECHash(DECHash.sha3_mmx.inc).html b/Unit Tests/CodeCoverage/U/DECHash(DECHash.sha3_mmx.inc).html similarity index 99% rename from Unit Tests/CodeCoverage/DECHash(DECHash.sha3_mmx.inc).html rename to Unit Tests/CodeCoverage/U/DECHash(DECHash.sha3_mmx.inc).html index 5f00eed3..6faa21ea 100644 --- a/Unit Tests/CodeCoverage/DECHash(DECHash.sha3_mmx.inc).html +++ b/Unit Tests/CodeCoverage/U/DECHash(DECHash.sha3_mmx.inc).html @@ -1,419 +1,419 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.sha3_mmx.inc).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.sha3_mmx.inc

-
Number of lines covered338
Number of lines with code gen338
Line coverage100%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory of
6
  this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{**********************************************************************}
19
{                                                                      }
20
{    "The contents of this file are subject to the Mozilla Public      }
21
{    License Version 1.1 (the "License"); you may not use this         }
22
{    file except in compliance with the License. You may obtain        }
23
{    a copy of the License at http://www.mozilla.org/MPL/              }
24
{                                                                      }
25
{    Software distributed under the License is distributed on an       }
26
{    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express       }
27
{    or implied. See the License for the specific language             }
28
{    governing rights and limitations under the License.               }
29
{                                                                      }
30
{    Copyright Creative IT.                                            }
31
{    Current maintainer: Eric Grange                                   }
32
{                                                                      }
33
{**********************************************************************}
34
35
// The original source file can be found here:
36
// https://bitbucket.org/egrange/dwscript/src
37
38
   add edx, 128
39
   add eax, 128
40
41
   movq  mm1, [edx-120]
42
   movq  mm4, [edx-96]
43
   movq  mm3, [edx-104]
44
   pxor  mm1, [edx-80]
45
   movq  mm5, [edx+16]
46
   pxor  mm1, [edx]
47
   movq  mm2, [edx-112]
48
   pxor  mm1, [edx+40]
49
   pxor  mm1, [edx-40]
50
   movq  mm0, [edx-128]
51
   movq  mm6, mm1
52
   pxor  mm4, [edx-56]
53
   movq  [ecx+8], mm1
54
   psrlq mm6, 63
55
   pxor  mm4, [edx+24]
56
   pxor  mm4, [edx+64]
57
   pxor  mm4, [edx-16]
58
   psllq mm1, 1
59
   pxor  mm2, [edx+48]
60
   por   mm1, mm6
61
   movq  mm6, [edx-88]
62
   pxor  mm1, mm4
63
   pxor  mm2, [edx-32]
64
   pxor  mm2, [edx-72]
65
   pxor  mm6, mm1
66
   movq  mm7, mm6
67
   psrlq mm7, 28
68
   psllq mm6, 36
69
   por   mm6, mm7
70
   pxor  mm2, [edx+8]
71
   movq  [eax], mm6
72
   movq  mm6, [edx+32]
73
   movq  mm7, mm4
74
   psrlq mm7, 63
75
   psllq mm4, 1
76
   pxor  mm0, mm6
77
   por   mm4, mm7
78
   pxor  mm4, mm2
79
   pxor  mm5, mm4
80
   movq  mm7, mm5
81
   pxor  mm0, [edx-8]
82
   psllq mm5, 21
83
   psrlq mm7, 43
84
   pxor  mm6, mm1
85
   por   mm5, mm7
86
   movq  [eax-104], mm5
87
   movq  mm5, [edx-48]
88
   pxor  mm0, mm5
89
   movq  mm7, mm6
90
   psrlq mm7, 46
91
   psllq mm6, 18
92
   por   mm6, mm7
93
   movq  [eax-16], mm6
94
   movq  mm6, [edx+56]
95
   pxor  mm5, mm1
96
   movq  mm7, mm5
97
   pxor  mm3, mm6
98
   psllq mm5, 3
99
   psrlq mm7, 61
100
   pxor  mm3, [edx+16]
101
   pxor  mm3, [edx-24]
102
   por   mm5, mm7
103
   pxor  mm6, mm4
104
   pxor  mm0, [edx-88]
105
   movq  mm7, mm6
106
   psrlq mm7, 8
107
   movq  [eax-72], mm5
108
   movq  mm5, mm2
109
   psllq mm2, 1
110
   psllq mm6, 56
111
   psrlq mm5, 63
112
   por   mm6, mm7
113
   por   mm2, mm5
114
   pxor  mm2, mm0
115
   movq  [eax+24], mm6
116
   movq  mm5, [edx-120]
117
   movq  mm6, mm0
118
   psllq mm0, 1
119
   pxor  mm5, mm2
120
   pxor  mm3, [edx-64]
121
   psrlq mm6, 63
122
   por   mm0, mm6
123
   movq  mm6, [edx-64]
124
   movq  mm7, mm5
125
   psllq mm5, 1
126
   psrlq mm7, 63
127
   pxor  mm6, mm4
128
   por   mm5, mm7
129
   pxor  mm0, mm3
130
   movq  mm7, mm6
131
   movq  [eax-48], mm5
132
   movq  mm5, [edx]
133
   psllq mm6, 55
134
   psrlq mm7, 9
135
   por   mm6, mm7
136
   movq  [eax+40], mm6
137
   movq  mm6, [edx-40]
138
   pxor  mm5, mm2
139
   movq  mm7, mm5
140
   psllq mm5, 45
141
   psrlq mm7, 19
142
   pxor  mm6, mm2
143
   por   mm5, mm7
144
   movq  [eax-64], mm5
145
   movq  mm5, [edx+40]
146
   movq  mm7, mm6
147
   pxor  mm5, mm2
148
   psllq mm6, 10
149
   psrlq mm7, 54
150
   por   mm6, mm7
151
   movq  [eax+8], mm6
152
   movq  mm6, [edx-96]
153
   movq  mm7, mm3
154
   psrlq mm7, 63
155
   psllq mm3, 1
156
   por   mm3, mm7
157
   movq  mm7, mm5
158
   psllq mm5, 2
159
   psrlq mm7, 62
160
   por   mm5, mm7
161
   movq  [eax+64], mm5
162
   movq  mm5, [edx+24]
163
   pxor  mm6, mm0
164
   movq  mm7, mm6
165
   psrlq mm7, 37
166
   psllq mm6, 27
167
   por   mm6, mm7
168
   movq  [eax-8], mm6
169
   pxor  mm5, mm0
170
   movq  mm6, [edx-16]
171
   movq  mm7, mm5
172
   psllq mm5, 8
173
   pxor  mm3, [ecx+8]
174
   psrlq mm7, 56
175
   pxor  mm6, mm0
176
   por   mm5, mm7
177
   movq  [eax-24], mm5
178
   movq  mm7, mm6
179
   psllq mm6, 39
180
   movq  mm5, [edx-112]
181
   psrlq mm7, 25
182
   por   mm6, mm7
183
   movq  [eax+48], mm6
184
   movq  mm6, [edx-24]
185
   pxor  mm5, mm3
186
   movq  mm7, mm5
187
   psrlq mm7, 2
188
   psllq mm5, 62
189
   por   mm5, mm7
190
   movq  [eax+32], mm5
191
   movq  mm5, [edx-104]
192
   pxor  mm6, mm4
193
   movq  mm7, mm6
194
   psrlq mm7, 39
195
   psllq mm6, 25
196
   por   mm6, mm7
197
   pxor  mm5, mm4
198
   movq  [eax-32], mm6
199
   movq  mm6, [edx-128]
200
   pxor  mm6, mm1
201
   movq  mm4, mm6
202
   movq  [eax-128], mm6
203
   movq  mm4, mm6
204
   movq  mm6, [edx-8]
205
   movq  mm7, mm5
206
   psrlq mm7, 36
207
   psllq mm5, 28
208
   pxor  mm6, mm1
209
   por   mm5, mm7
210
   movq  mm7, mm6
211
   psrlq mm7, 23
212
   movq  mm1, mm5
213
   movq  [eax-88], mm5
214
   movq  mm5, [edx-56]
215
   pxor  mm5, mm0
216
   psllq mm6, 41
217
   por   mm6, mm7
218
   movq  [eax+56], mm6
219
   movq  mm6, [edx+48]
220
   pxor  mm6, mm3
221
   movq  mm7, mm5
222
   psrlq mm7, 44
223
   psllq mm5, 20
224
   por   mm5, mm7
225
   movq  [eax-80], mm5
226
   pandn mm1, mm5
227
   movq  mm5, [edx-32]
228
   movq  mm7, mm6
229
   psrlq mm7, 3
230
   psllq mm6, 61
231
   por   mm6, mm7
232
   pxor  mm1, mm6
233
   movq  [eax-56], mm6
234
   movq  mm6, [edx+8]
235
   movq  [edx-56], mm1
236
   movq  mm1, [eax-112]
237
   pxor  mm5, mm3
238
   movq  mm7, mm5
239
   psllq mm5, 43
240
   psrlq mm7, 21
241
   pxor  mm6, mm3
242
   por   mm5, mm7
243
   movq  mm1, mm5
244
   movq  mm5, [edx-80]
245
   pxor  mm5, mm2
246
   movq  mm2, [eax-104]
247
   movq  mm7, mm6
248
   psrlq mm7, 49
249
   psllq mm6, 15
250
   por   mm6, mm7
251
   movq  [eax+16], mm6
252
   movq  mm6, [edx+64]
253
   movq  [eax-96], mm6
254
   movq  mm7, mm5
255
   psrlq mm7, 20
256
   psllq mm5, 44
257
   pxor  mm6, mm0
258
   por   mm5, mm7
259
   movq  mm7, mm6
260
   psrlq mm7, 50
261
   psllq mm6, 14
262
   por   mm6, mm7
263
   pandn mm2, mm6
264
   movq  mm0, mm5
265
   pandn mm0, mm1
266
   pxor  mm2, mm1
267
   pandn mm1, [eax-104]
268
   movq  [edx-112], mm2
269
   pandn mm4, mm5
270
   pxor  mm1, mm5
271
   movq  [eax-120], mm5
272
   movq  mm2, [eax-40]
273
   movq  [edx-120], mm1
274
   movq  mm5, [edx-72]
275
   movq  mm1, [eax-64]
276
   pxor  mm4, mm6
277
   movq  [edx-96], mm4
278
   pxor  mm5, mm3
279
   movq  mm4, [eax-88]
280
   movq  mm7, mm5
281
   movq  mm3, mm6
282
   pxor  mm0, [eax-128]
283
   movq  [edx-128], mm0
284
   movq  mm6, [eax-72]
285
   psllq mm5, 6
286
   psrlq mm7, 58
287
   movq  mm0, [eax-56]
288
   por   mm5, mm7
289
   movq  mm2, mm5
290
   movq  mm5, [eax-80]
291
   movq  mm7, mm1
292
   pandn mm7, mm0
293
   pxor  mm7, mm6
294
   movq  [edx-72], mm7
295
   movq  mm7, [eax-72]
296
   pandn mm6, mm1
297
   pxor  mm6, mm5
298
   pandn mm0, mm4
299
   pandn mm5, mm7
300
   movq  mm7, [eax]
301
   pxor  mm5, mm4
302
   movq  mm4, [eax-24]
303
   movq  [edx-80], mm6
304
   movq  mm6, [eax-48]
305
   movq  [edx-88], mm5
306
   movq  mm5, mm1
307
   movq  mm1, [eax-16]
308
   pxor  mm0, mm5
309
   movq  mm5, mm1
310
   pandn mm3, [eax-128]
311
   pxor  mm3, [eax-104]
312
   movq  [edx-64], mm0
313
   movq  mm0, [eax+8]
314
   movq  [edx-104], mm3
315
   movq  mm3, [eax-32]
316
   pandn mm6, mm2
317
   pxor  mm6, mm5
318
   movq  [edx-16], mm6
319
   movq  mm6, [eax+56]
320
   pandn mm3, mm4
321
   pxor  mm3, mm2
322
   movq  [edx-40], mm3
323
   movq  mm3, [eax-32]
324
   pandn mm5, [eax-48]
325
   pxor  mm5, mm4
326
   movq  [edx-24], mm5
327
   pandn mm7, mm0
328
   movq  mm5, [eax+16]
329
   pandn mm4, mm1
330
   pxor  mm4, mm3
331
   movq  [edx-32], mm4
332
   movq  mm4, [eax+40]
333
   movq  mm1, mm5
334
   movq  mm5, [eax+48]
335
   pandn mm5, mm6
336
   pxor  mm5, mm4
337
   pandn mm2, mm3
338
   movq  mm3, [eax-8]
339
   movq  [edx+40], mm5
340
   movq  mm5, [eax+24]
341
   pxor  mm7, mm3
342
   movq  [edx-8], mm7
343
   movq  mm7, [eax+64]
344
   pxor  mm2, [eax-48]
345
   movq  [edx-48], mm2
346
   movq  mm2, mm5
347
   pandn mm2, mm3
348
   pxor  mm2, mm1
349
   movq  [edx+16], mm2
350
   pandn mm3, [eax]
351
   movq  mm2, mm5
352
   movq  mm5, [eax+48]
353
   pandn mm6, mm7
354
   pxor  mm6, mm5
355
   movq  [edx+48], mm6
356
   pandn mm1, mm2
357
   movq  mm6, [eax+32]
358
   pxor  mm1, mm0
359
   pxor  mm3, mm2
360
   movq  [edx+24], mm3
361
   pandn mm0, [eax+16]
362
   pxor  mm0, [eax]
363
   movq  mm3, mm4
364
   movq  [edx+8], mm1
365
   movq  [edx], mm0
366
   movq  mm0, mm6
367
   movq  mm1, [eax+56]
368
   pandn mm4, mm5
369
   pxor  mm4, mm0
370
   pandn mm0, mm3
371
   pxor  mm0, mm7
372
   movq  [edx+32], mm4
373
   pandn mm7, mm6
374
   pxor  mm7, mm1
375
   movq  [edx+56], mm7
376
   movq  [edx+64], mm0
377
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHash (D:\Projekte\DECGitMaster\Source\DECHash.sha3_mmx.inc).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHash.sha3_mmx.inc

+
Number of lines covered338
Number of lines with code gen338
Line coverage100%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory of
6
  this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
{**********************************************************************}
19
{                                                                      }
20
{    "The contents of this file are subject to the Mozilla Public      }
21
{    License Version 1.1 (the "License"); you may not use this         }
22
{    file except in compliance with the License. You may obtain        }
23
{    a copy of the License at http://www.mozilla.org/MPL/              }
24
{                                                                      }
25
{    Software distributed under the License is distributed on an       }
26
{    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express       }
27
{    or implied. See the License for the specific language             }
28
{    governing rights and limitations under the License.               }
29
{                                                                      }
30
{    Copyright Creative IT.                                            }
31
{    Current maintainer: Eric Grange                                   }
32
{                                                                      }
33
{**********************************************************************}
34
35
// The original source file can be found here:
36
// https://bitbucket.org/egrange/dwscript/src
37
38
   add edx, 128
39
   add eax, 128
40
41
   movq  mm1, [edx-120]
42
   movq  mm4, [edx-96]
43
   movq  mm3, [edx-104]
44
   pxor  mm1, [edx-80]
45
   movq  mm5, [edx+16]
46
   pxor  mm1, [edx]
47
   movq  mm2, [edx-112]
48
   pxor  mm1, [edx+40]
49
   pxor  mm1, [edx-40]
50
   movq  mm0, [edx-128]
51
   movq  mm6, mm1
52
   pxor  mm4, [edx-56]
53
   movq  [ecx+8], mm1
54
   psrlq mm6, 63
55
   pxor  mm4, [edx+24]
56
   pxor  mm4, [edx+64]
57
   pxor  mm4, [edx-16]
58
   psllq mm1, 1
59
   pxor  mm2, [edx+48]
60
   por   mm1, mm6
61
   movq  mm6, [edx-88]
62
   pxor  mm1, mm4
63
   pxor  mm2, [edx-32]
64
   pxor  mm2, [edx-72]
65
   pxor  mm6, mm1
66
   movq  mm7, mm6
67
   psrlq mm7, 28
68
   psllq mm6, 36
69
   por   mm6, mm7
70
   pxor  mm2, [edx+8]
71
   movq  [eax], mm6
72
   movq  mm6, [edx+32]
73
   movq  mm7, mm4
74
   psrlq mm7, 63
75
   psllq mm4, 1
76
   pxor  mm0, mm6
77
   por   mm4, mm7
78
   pxor  mm4, mm2
79
   pxor  mm5, mm4
80
   movq  mm7, mm5
81
   pxor  mm0, [edx-8]
82
   psllq mm5, 21
83
   psrlq mm7, 43
84
   pxor  mm6, mm1
85
   por   mm5, mm7
86
   movq  [eax-104], mm5
87
   movq  mm5, [edx-48]
88
   pxor  mm0, mm5
89
   movq  mm7, mm6
90
   psrlq mm7, 46
91
   psllq mm6, 18
92
   por   mm6, mm7
93
   movq  [eax-16], mm6
94
   movq  mm6, [edx+56]
95
   pxor  mm5, mm1
96
   movq  mm7, mm5
97
   pxor  mm3, mm6
98
   psllq mm5, 3
99
   psrlq mm7, 61
100
   pxor  mm3, [edx+16]
101
   pxor  mm3, [edx-24]
102
   por   mm5, mm7
103
   pxor  mm6, mm4
104
   pxor  mm0, [edx-88]
105
   movq  mm7, mm6
106
   psrlq mm7, 8
107
   movq  [eax-72], mm5
108
   movq  mm5, mm2
109
   psllq mm2, 1
110
   psllq mm6, 56
111
   psrlq mm5, 63
112
   por   mm6, mm7
113
   por   mm2, mm5
114
   pxor  mm2, mm0
115
   movq  [eax+24], mm6
116
   movq  mm5, [edx-120]
117
   movq  mm6, mm0
118
   psllq mm0, 1
119
   pxor  mm5, mm2
120
   pxor  mm3, [edx-64]
121
   psrlq mm6, 63
122
   por   mm0, mm6
123
   movq  mm6, [edx-64]
124
   movq  mm7, mm5
125
   psllq mm5, 1
126
   psrlq mm7, 63
127
   pxor  mm6, mm4
128
   por   mm5, mm7
129
   pxor  mm0, mm3
130
   movq  mm7, mm6
131
   movq  [eax-48], mm5
132
   movq  mm5, [edx]
133
   psllq mm6, 55
134
   psrlq mm7, 9
135
   por   mm6, mm7
136
   movq  [eax+40], mm6
137
   movq  mm6, [edx-40]
138
   pxor  mm5, mm2
139
   movq  mm7, mm5
140
   psllq mm5, 45
141
   psrlq mm7, 19
142
   pxor  mm6, mm2
143
   por   mm5, mm7
144
   movq  [eax-64], mm5
145
   movq  mm5, [edx+40]
146
   movq  mm7, mm6
147
   pxor  mm5, mm2
148
   psllq mm6, 10
149
   psrlq mm7, 54
150
   por   mm6, mm7
151
   movq  [eax+8], mm6
152
   movq  mm6, [edx-96]
153
   movq  mm7, mm3
154
   psrlq mm7, 63
155
   psllq mm3, 1
156
   por   mm3, mm7
157
   movq  mm7, mm5
158
   psllq mm5, 2
159
   psrlq mm7, 62
160
   por   mm5, mm7
161
   movq  [eax+64], mm5
162
   movq  mm5, [edx+24]
163
   pxor  mm6, mm0
164
   movq  mm7, mm6
165
   psrlq mm7, 37
166
   psllq mm6, 27
167
   por   mm6, mm7
168
   movq  [eax-8], mm6
169
   pxor  mm5, mm0
170
   movq  mm6, [edx-16]
171
   movq  mm7, mm5
172
   psllq mm5, 8
173
   pxor  mm3, [ecx+8]
174
   psrlq mm7, 56
175
   pxor  mm6, mm0
176
   por   mm5, mm7
177
   movq  [eax-24], mm5
178
   movq  mm7, mm6
179
   psllq mm6, 39
180
   movq  mm5, [edx-112]
181
   psrlq mm7, 25
182
   por   mm6, mm7
183
   movq  [eax+48], mm6
184
   movq  mm6, [edx-24]
185
   pxor  mm5, mm3
186
   movq  mm7, mm5
187
   psrlq mm7, 2
188
   psllq mm5, 62
189
   por   mm5, mm7
190
   movq  [eax+32], mm5
191
   movq  mm5, [edx-104]
192
   pxor  mm6, mm4
193
   movq  mm7, mm6
194
   psrlq mm7, 39
195
   psllq mm6, 25
196
   por   mm6, mm7
197
   pxor  mm5, mm4
198
   movq  [eax-32], mm6
199
   movq  mm6, [edx-128]
200
   pxor  mm6, mm1
201
   movq  mm4, mm6
202
   movq  [eax-128], mm6
203
   movq  mm4, mm6
204
   movq  mm6, [edx-8]
205
   movq  mm7, mm5
206
   psrlq mm7, 36
207
   psllq mm5, 28
208
   pxor  mm6, mm1
209
   por   mm5, mm7
210
   movq  mm7, mm6
211
   psrlq mm7, 23
212
   movq  mm1, mm5
213
   movq  [eax-88], mm5
214
   movq  mm5, [edx-56]
215
   pxor  mm5, mm0
216
   psllq mm6, 41
217
   por   mm6, mm7
218
   movq  [eax+56], mm6
219
   movq  mm6, [edx+48]
220
   pxor  mm6, mm3
221
   movq  mm7, mm5
222
   psrlq mm7, 44
223
   psllq mm5, 20
224
   por   mm5, mm7
225
   movq  [eax-80], mm5
226
   pandn mm1, mm5
227
   movq  mm5, [edx-32]
228
   movq  mm7, mm6
229
   psrlq mm7, 3
230
   psllq mm6, 61
231
   por   mm6, mm7
232
   pxor  mm1, mm6
233
   movq  [eax-56], mm6
234
   movq  mm6, [edx+8]
235
   movq  [edx-56], mm1
236
   movq  mm1, [eax-112]
237
   pxor  mm5, mm3
238
   movq  mm7, mm5
239
   psllq mm5, 43
240
   psrlq mm7, 21
241
   pxor  mm6, mm3
242
   por   mm5, mm7
243
   movq  mm1, mm5
244
   movq  mm5, [edx-80]
245
   pxor  mm5, mm2
246
   movq  mm2, [eax-104]
247
   movq  mm7, mm6
248
   psrlq mm7, 49
249
   psllq mm6, 15
250
   por   mm6, mm7
251
   movq  [eax+16], mm6
252
   movq  mm6, [edx+64]
253
   movq  [eax-96], mm6
254
   movq  mm7, mm5
255
   psrlq mm7, 20
256
   psllq mm5, 44
257
   pxor  mm6, mm0
258
   por   mm5, mm7
259
   movq  mm7, mm6
260
   psrlq mm7, 50
261
   psllq mm6, 14
262
   por   mm6, mm7
263
   pandn mm2, mm6
264
   movq  mm0, mm5
265
   pandn mm0, mm1
266
   pxor  mm2, mm1
267
   pandn mm1, [eax-104]
268
   movq  [edx-112], mm2
269
   pandn mm4, mm5
270
   pxor  mm1, mm5
271
   movq  [eax-120], mm5
272
   movq  mm2, [eax-40]
273
   movq  [edx-120], mm1
274
   movq  mm5, [edx-72]
275
   movq  mm1, [eax-64]
276
   pxor  mm4, mm6
277
   movq  [edx-96], mm4
278
   pxor  mm5, mm3
279
   movq  mm4, [eax-88]
280
   movq  mm7, mm5
281
   movq  mm3, mm6
282
   pxor  mm0, [eax-128]
283
   movq  [edx-128], mm0
284
   movq  mm6, [eax-72]
285
   psllq mm5, 6
286
   psrlq mm7, 58
287
   movq  mm0, [eax-56]
288
   por   mm5, mm7
289
   movq  mm2, mm5
290
   movq  mm5, [eax-80]
291
   movq  mm7, mm1
292
   pandn mm7, mm0
293
   pxor  mm7, mm6
294
   movq  [edx-72], mm7
295
   movq  mm7, [eax-72]
296
   pandn mm6, mm1
297
   pxor  mm6, mm5
298
   pandn mm0, mm4
299
   pandn mm5, mm7
300
   movq  mm7, [eax]
301
   pxor  mm5, mm4
302
   movq  mm4, [eax-24]
303
   movq  [edx-80], mm6
304
   movq  mm6, [eax-48]
305
   movq  [edx-88], mm5
306
   movq  mm5, mm1
307
   movq  mm1, [eax-16]
308
   pxor  mm0, mm5
309
   movq  mm5, mm1
310
   pandn mm3, [eax-128]
311
   pxor  mm3, [eax-104]
312
   movq  [edx-64], mm0
313
   movq  mm0, [eax+8]
314
   movq  [edx-104], mm3
315
   movq  mm3, [eax-32]
316
   pandn mm6, mm2
317
   pxor  mm6, mm5
318
   movq  [edx-16], mm6
319
   movq  mm6, [eax+56]
320
   pandn mm3, mm4
321
   pxor  mm3, mm2
322
   movq  [edx-40], mm3
323
   movq  mm3, [eax-32]
324
   pandn mm5, [eax-48]
325
   pxor  mm5, mm4
326
   movq  [edx-24], mm5
327
   pandn mm7, mm0
328
   movq  mm5, [eax+16]
329
   pandn mm4, mm1
330
   pxor  mm4, mm3
331
   movq  [edx-32], mm4
332
   movq  mm4, [eax+40]
333
   movq  mm1, mm5
334
   movq  mm5, [eax+48]
335
   pandn mm5, mm6
336
   pxor  mm5, mm4
337
   pandn mm2, mm3
338
   movq  mm3, [eax-8]
339
   movq  [edx+40], mm5
340
   movq  mm5, [eax+24]
341
   pxor  mm7, mm3
342
   movq  [edx-8], mm7
343
   movq  mm7, [eax+64]
344
   pxor  mm2, [eax-48]
345
   movq  [edx-48], mm2
346
   movq  mm2, mm5
347
   pandn mm2, mm3
348
   pxor  mm2, mm1
349
   movq  [edx+16], mm2
350
   pandn mm3, [eax]
351
   movq  mm2, mm5
352
   movq  mm5, [eax+48]
353
   pandn mm6, mm7
354
   pxor  mm6, mm5
355
   movq  [edx+48], mm6
356
   pandn mm1, mm2
357
   movq  mm6, [eax+32]
358
   pxor  mm1, mm0
359
   pxor  mm3, mm2
360
   movq  [edx+24], mm3
361
   pandn mm0, [eax+16]
362
   pxor  mm0, [eax]
363
   movq  mm3, mm4
364
   movq  [edx+8], mm1
365
   movq  [edx], mm0
366
   movq  mm0, mm6
367
   movq  mm1, [eax+56]
368
   pandn mm4, mm5
369
   pxor  mm4, mm0
370
   pandn mm0, mm3
371
   pxor  mm0, mm7
372
   movq  [edx+32], mm4
373
   pandn mm7, mm6
374
   pxor  mm7, mm1
375
   movq  [edx+56], mm7
376
   movq  [edx+64], mm0
377
+ + diff --git a/Unit Tests/CodeCoverage/DECHash.html b/Unit Tests/CodeCoverage/U/DECHash.html similarity index 98% rename from Unit Tests/CodeCoverage/DECHash.html rename to Unit Tests/CodeCoverage/U/DECHash.html index b3c59036..3b5b2f0f 100644 --- a/Unit Tests/CodeCoverage/DECHash.html +++ b/Unit Tests/CodeCoverage/U/DECHash.html @@ -1,45 +1,45 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHash.

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Aggregate statistics for all units

- - - - - - -
Source File NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECHash.asm86.inc2830828308100%
DECHash.pas75076897%
DECHash.sha3_mmx.inc338338100%
Aggregated for all files293962941499%
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHash.

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Aggregate statistics for all units

+ + + + + + +
Source File NameNumber of covered linesNumber of lines (which generated code)Percent(s) covered
DECHash.asm86.inc2830828308100%
DECHash.pas75076897%
DECHash.sha3_mmx.inc338338100%
Aggregated for all files293962941499%
+ + diff --git a/Unit Tests/CodeCoverage/DECHashAuthentication(DECHashAuthentication.pas).html b/Unit Tests/CodeCoverage/U/DECHashAuthentication(DECHashAuthentication.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECHashAuthentication(DECHashAuthentication.pas).html rename to Unit Tests/CodeCoverage/U/DECHashAuthentication(DECHashAuthentication.pas).html index 6cd62a74..637392b3 100644 --- a/Unit Tests/CodeCoverage/DECHashAuthentication(DECHashAuthentication.pas).html +++ b/Unit Tests/CodeCoverage/U/DECHashAuthentication(DECHashAuthentication.pas).html @@ -1,923 +1,923 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHashAuthentication (D:\Projekte\DECGitMaster\Source\DECHashAuthentication.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHashAuthentication.pas

-
Number of lines covered177
Number of lines with code gen179
Line coverage98%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Unit containing all the KDF, MGF, HMAC and PBKDF2 algorithms
20
/// </summary>
21
unit DECHashAuthentication;
22
23
interface
24
25
uses
26
  System.SysUtils, DECHashBase;
27
28
{$INCLUDE DECOptions.inc}
29
30
type
31
  /// <summary>
32
  ///   Meta class for all the hashing classes in order to support the
33
  ///   registration mechanism
34
  /// </summary>
35
  TDECHashAuthenticationClass = class of TDECHashAuthentication;
36
37
  /// <summary>
38
  ///   Type of the KDF variant
39
  /// </summary>
40
  TKDFType = (ktKDF1, ktKDF2, ktKDF3);
41
42
  /// <summary>
43
  ///   Class containing all the KDF, MGF, HMAC and PBKDF2 algorithms
44
  /// </summary>
45
  TDECHashAuthentication = class(TDECHash)
46
  strict private
47
    /// <summary>
48
    ///   Key deviation algorithm to derrive keys from other keys.
49
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
50
    ///   This is either KDF1 or KDF2 depending on KDFType
51
    /// </summary>
52
    /// <param name="Data">
53
    ///   Source data from which the new key shall be derrived.
54
    /// </param>
55
    /// <param name="DataSize">
56
    ///   Size in bytes of the source data passed.
57
    /// </param>
58
    /// <param name="Seed">
59
    ///   Start value for pseudo random number generator
60
    /// </param>
61
    /// <param name="SeedSize">
62
    ///   Size of the seed in byte.
63
    /// </param>
64
    /// <param name="MaskSize">
65
    ///   Size of the generated output in byte
66
    /// </param>
67
    /// <param name="KDFType">
68
    ///   Type of the algorithm: 1 = KDF1, 2 = KDF2 and 3 = KDF 3
69
    /// </param>
70
    /// <returns>
71
    ///   Returns the new derrived key.
72
    /// </returns>
73
    class function KDFInternal(const Data; DataSize: Integer; const Seed;
74
                               SeedSize, MaskSize: Integer; KDFType: TKDFType): TBytes; inline;
75
  public
76
    /// <summary>
77
    ///   Detects whether the given hash class is one particularily suited
78
    ///   for storing hashes of passwords
79
    /// </summary>
80
    /// <returns>
81
    ///   true if it's a hash class specifically designed to store password
82
    ///   hashes, false for ordinary hash algorithms.
83
    /// </returns>
84
    class function IsPasswordHash: Boolean; override;
85
86
    // mask generation
87
88
    /// <summary>
89
    ///   Mask generation: generates an output based on the data given which is
90
    ///   similar to a hash function but in contrast does not have a fixed output
91
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
92
    ///   would be inadequate. Examples include generating padding, producing
93
    ///   one time pads or keystreams in symmetric key encryption, and yielding
94
    ///   outputs for pseudorandom number generators.
95
    ///   Indexed Mask generation function, IEEE P1363 working group
96
    ///   equal to KDF1 except without seed. RFC 2437 PKCS #1
97
    /// </summary>
98
    /// <param name="Data">
99
    ///   Data from which to generate a mask from
100
    /// </param>
101
    /// <param name="DataSize">
102
    ///   Size of the input data in bytes
103
    /// </param>
104
    /// <param name="MaskSize">
105
    ///   Size of the returned mask in bytes
106
    /// </param>
107
    /// <returns>
108
    ///   Mask such that one cannot determine the data which had been given to
109
    ///   generate this mask from.
110
    /// </returns>
111
    class function MGF1(const Data; DataSize, MaskSize: Integer): TBytes; overload;
112
    /// <summary>
113
    ///   Mask generation: generates an output based on the data given which is
114
    ///   similar to a hash function but incontrast does not have a fixed output
115
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
116
    ///   would be inadequate. Examples include generating padding, producing
117
    ///   one time pads or keystreams in symmetric key encryption, and yielding
118
    ///   outputs for pseudorandom number generators
119
    /// </summary>
120
    /// <param name="Data">
121
    ///   Data from which to generate a mask from
122
    /// </param>
123
    /// <param name="MaskSize">
124
    ///   Size of the returned mask in bytes
125
    /// </param>
126
    /// <returns>
127
    ///   Mask such that one cannot determine the data which had been given to
128
    ///   generate this mask from.
129
    /// </returns>
130
    class function MGF1(const Data: TBytes; MaskSize: Integer): TBytes; overload;
131
132
    /// <summary>
133
    ///   Key deviation algorithm to derrive keys from other keys.
134
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
135
    /// </summary>
136
    /// <param name="Data">
137
    ///   Source data from which the new key shall be derrived.
138
    /// </param>
139
    /// <param name="DataSize">
140
    ///   Size in bytes of the source data passed.
141
    /// </param>
142
    /// <param name="Seed">
143
    ///   Salt value
144
    /// </param>
145
    /// <param name="SeedSize">
146
    ///   Size of the seed/salt in byte.
147
    /// </param>
148
    /// <param name="MaskSize">
149
    ///   Size of the generated output in byte
150
    /// </param>
151
    /// <returns>
152
    ///   Returns the new derrived key with the length specified in MaskSize.
153
    /// </returns>
154
    /// <remarks>
155
    ///   In earlier versions there was an optional format parameter. This has
156
    ///   been removed as this is a base class. The method might not have
157
    ///   returned a result with the MaskSize specified, as the formatting might
158
    ///   have had to alter this. This would have been illogical.
159
    /// </remarks>
160
    class function KDF1(const Data; DataSize: Integer; const Seed;
161
                        SeedSize, MaskSize: Integer): TBytes; overload;
162
163
    /// <summary>
164
    ///   Key deviation algorithm to derrive keys from other keys.
165
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
166
    /// </summary>
167
    /// <param name="Data">
168
    ///   Source data from which the new key shall be derrived.
169
    /// </param>
170
    /// <param name="Seed">
171
    ///   Salt value
172
    /// </param>
173
    /// <param name="MaskSize">
174
    ///   Size of the generated output in byte
175
    /// </param>
176
    /// <returns>
177
    ///   Returns the new derrived key with the length specified in MaskSize.
178
    /// </returns>
179
    class function KDF1(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
180
181
    /// <summary>
182
    ///   Key deviation algorithm to derrive keys from other keys.
183
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
184
    /// </summary>
185
    /// <param name="Data">
186
    ///   Source data from which the new key shall be derrived.
187
    /// </param>
188
    /// <param name="DataSize">
189
    ///   Size in bytes of the source data passed.
190
    /// </param>
191
    /// <param name="Seed">
192
    ///   Salt value
193
    /// </param>
194
    /// <param name="SeedSize">
195
    ///   Size of the seed/salt in byte.
196
    /// </param>
197
    /// <param name="MaskSize">
198
    ///   Size of the generated output in byte
199
    /// </param>
200
    /// <returns>
201
    ///   Returns the new derrived key with the length specified in MaskSize.
202
    /// </returns>
203
    /// <remarks>
204
    ///   In earlier versions there was an optional format parameter. This has
205
    ///   been removed as this is a base class. The method might not have
206
    ///   returned a result with the MaskSize specified, as the formatting might
207
    ///   have had to alter this. This would have been illogical.
208
    /// </remarks>
209
    class function KDF2(const Data; DataSize: Integer; const Seed;
210
                        SeedSize, MaskSize: Integer): TBytes; overload;
211
212
    /// <summary>
213
    ///   Key deviation algorithm to derrive keys from other keys.
214
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
215
    /// </summary>
216
    /// <param name="Data">
217
    ///   Source data from which the new key shall be derrived.
218
    /// </param>
219
    /// <param name="Seed">
220
    ///   Start value for pseudo random number generator
221
    /// </param>
222
    /// <param name="MaskSize">
223
    ///   Size of the generated output in byte
224
    /// </param>
225
    /// <returns>
226
    ///   Returns the new derrived key with the length specified in MaskSize.
227
    /// </returns>
228
    class function KDF2(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
229
230
    /// <summary>
231
    ///   Key deviation algorithm to derrive keys from other keys.
232
    /// </summary>
233
    /// <param name="Data">
234
    ///   Source data from which the new key shall be derrived.
235
    /// </param>
236
    /// <param name="DataSize">
237
    ///   Size in bytes of the source data passed.
238
    /// </param>
239
    /// <param name="Seed">
240
    ///   Salt value
241
    /// </param>
242
    /// <param name="SeedSize">
243
    ///   Size of the seed/salt in byte.
244
    /// </param>
245
    /// <param name="MaskSize">
246
    ///   Size of the generated output in byte
247
    /// </param>
248
    /// <returns>
249
    ///   Returns the new derrived key with the length specified in MaskSize.
250
    /// </returns>
251
    /// <remarks>
252
    ///   In earlier versions there was an optional format parameter. This has
253
    ///   been removed as this is a base class. The method might not have
254
    ///   returned a result with the MaskSize specified, as the formatting might
255
    ///   have had to alter this. This would have been illogical.
256
    /// </remarks>
257
    class function KDF3(const Data; DataSize: Integer; const Seed;
258
                        SeedSize, MaskSize: Integer): TBytes; overload;
259
260
    /// <summary>
261
    ///   Key deviation algorithm to derrive keys from other keys.
262
    /// </summary>
263
    /// <param name="Data">
264
    ///   Source data from which the new key shall be derrived.
265
    /// </param>
266
    /// <param name="Seed">
267
    ///   Salt value
268
    /// </param>
269
    /// <param name="MaskSize">
270
    ///   Size of the generated output in byte
271
    /// </param>
272
    /// <returns>
273
    ///   Returns the new derrived key with the length specified in MaskSize.
274
    /// </returns>
275
    class function KDF3(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
276
277
    // DEC's own KDF + MGF
278
279
    /// <summary>
280
    ///   Key deviation algorithm to derrive keys from other keys. The alrorithm
281
    ///   implemented by this method does not follow any official standard.
282
    /// </summary>
283
    /// <param name="Data">
284
    ///   Source data from which the new key shall be derrived.
285
    /// </param>
286
    /// <param name="DataSize">
287
    ///   Size in bytes of the source data passed.
288
    /// </param>
289
    /// <param name="Seed">
290
    ///   Salt value
291
    /// </param>
292
    /// <param name="SeedSize">
293
    ///   Size of the seed/salt in byte.
294
    /// </param>
295
    /// <param name="MaskSize">
296
    ///   Size of the generated output in byte
297
    /// </param>
298
    /// <param name="Index">
299
    ///   Optional parameter: can be used to specify a different default value
300
    ///   for the index variable used in the algorithm.
301
    /// </param>
302
    /// <returns>
303
    ///   Returns the new derrived key with the length specified in MaskSize.
304
    /// </returns>
305
    class function KDFx(const Data; DataSize: Integer; const Seed; SeedSize, MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
306
    /// <summary>
307
    ///   Key deviation algorithm to derrive keys from other keys.
308
    /// </summary>
309
    /// <remarks>
310
    ///   This variant of the algorithm does not follow an official standard.
311
    ///   It has been created by the original author of DEC.
312
    /// </remarks>
313
    /// <param name="Data">
314
    ///   Source data from which the new key shall be derrived.
315
    /// </param>
316
    /// <param name="Seed">
317
    ///   Salt value
318
    /// </param>
319
    /// <param name="MaskSize">
320
    ///   Size of the generated output in byte
321
    /// </param>
322
    /// <param name="Index">
323
    ///   Optional parameter: can be used to specify a different default value
324
    ///   for the index variable used in the algorithm.
325
    /// </param>
326
    /// <returns>
327
    ///   Returns the new derrived key with the length specified in MaskSize.
328
    /// </returns>
329
    class function KDFx(const Data, Seed: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
330
331
    /// <summary>
332
    ///   Mask generation: generates an output based on the data given which is
333
    ///   similar to a hash function but incontrast does not have a fixed output
334
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
335
    ///   would be inadequate. Examples include generating padding, producing
336
    ///   one time pads or keystreams in symmetric key encryption, and yielding
337
    ///   outputs for pseudorandom number generators.
338
    /// </summary>
339
    /// <remarks>
340
    ///   This variant of the algorithm does not follow an official standard.
341
    ///   It has been created by the original author of DEC.
342
    /// </remarks>
343
    /// <param name="Data">
344
    ///   Data from which to generate a mask from
345
    /// </param>
346
    /// <param name="DataSize">
347
    ///   Size of the passed data in bytes
348
    /// </param>
349
    /// <param name="MaskSize">
350
    ///   Size of the returned mask in bytes
351
    /// </param>
352
    /// <param name="Index">
353
    ///   Looks like this is a salt applied to each byte of output data?
354
{ TODO : Clarify this parameter }
355
    /// </param>
356
    /// <returns>
357
    ///   Mask such that one cannot determine the data which had been given to
358
    ///   generate this mask from.
359
    /// </returns>
360
    class function MGFx(const Data; DataSize, MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
361
    /// <summary>
362
    ///   Mask generation: generates an output based on the data given which is
363
    ///   similar to a hash function but incontrast does not have a fixed output
364
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
365
    ///   would be inadequate. Examples include generating padding, producing
366
    ///   one time pads or keystreams in symmetric key encryption, and yielding
367
    ///   outputs for pseudorandom number generators.
368
    /// </summary>
369
    /// <remarks>
370
    ///   This variant of the algorithm does not follow an official standard.
371
    ///   It has been created by the original author of DEC.
372
    /// </remarks>
373
    /// <param name="Data">
374
    ///   Data from which to generate a mask from
375
    /// </param>
376
    /// <param name="MaskSize">
377
    ///   Size of the returned mask in bytes
378
    /// </param>
379
    /// <param name="Index">
380
    ///   Looks like this is a salt applied to each byte of output data?
381
{ TODO : Clarify this parameter }
382
    /// </param>
383
    /// <returns>
384
    ///   Mask such that one cannot determine the data which had been given to
385
    ///   generate this mask from.
386
    /// </returns>
387
    class function MGFx(const Data: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
388
389
    /// <summary>
390
    ///   HMAC according to rfc2202: hash message authentication code allow to
391
    ///   verify both the data integrity and the authenticity of a message.
392
    /// </summary>
393
    /// <param name="Key">
394
    ///   This is the secret key which shall not be transmitted over the line.
395
    ///   The sender uses this key to create the resulting HMAC, transmits the
396
    ///   text and the HMAC over the line and the receiver recalculates the HMAC
397
    ///   based on his copy of the secret key. If his calculated HMAC equals the
398
    ///   transfered HMAC value the message has not been tampered.
399
    /// </param>
400
    /// <param name="Text">
401
    ///   Text over which to calculate the HMAC
402
    /// </param>
403
    /// <returns>
404
    ///   Calculated HMAC
405
    /// </returns>
406
    class function HMAC(const Key, Text: TBytes): TBytes; overload;
407
408
    /// <summary>
409
    ///   HMAC according to rfc2202: hash message authentication code allow to
410
    ///   verify both the data integrity and the authenticity of a message.
411
    /// </summary>
412
    /// <param name="Key">
413
    ///   This is the secret key which shall not be transmitted over the line.
414
    ///   The sender uses this key to create the resulting HMAC, transmits the
415
    ///   text and the HMAC over the line and the receiver recalculates the HMAC
416
    ///   based on his copy of the secret key. If his calculated HMAC equals the
417
    ///   transfered HMAC value the message has not been tampered.
418
    /// </param>
419
    /// <param name="Text">
420
    ///   Text over which to calculate the HMAC
421
    /// </param>
422
    /// <returns>
423
    ///   Calculated HMAC
424
    /// </returns>
425
    class function HMAC(const Key, Text: RawByteString): TBytes; overload;
426
427
    /// <summary>
428
    ///   Password based key deviation function 2
429
    ///   RFC 2898, PKCS #5.
430
    ///   This can be used to create a login sheme by storing the output,
431
    ///   number of iterations and the salt. When the user enters a password
432
    ///   this calculation is done using the same parameters as stored for his
433
    ///   user account and comparing the output.
434
    /// </summary>
435
    /// <param name="Password">
436
    ///   Password to create the deviation from
437
    /// </param>
438
    /// <param name="Salt">
439
    ///   Salt used to modify the password
440
    /// </param>
441
    /// <param name="Iterations">
442
    ///   Number of iterations to perform
443
    /// </param>
444
    /// <param name="KeyLength">
445
    ///   Length of the resulting key in byte
446
    /// </param>
447
    class function PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes; overload;
448
449
    /// <summary>
450
    ///   Password based key deviation function 2
451
    ///   RFC 2898, PKCS #5.
452
    ///   This can be used to create a login sheme by storing the output,
453
    ///   number of iterations and the salt. When the user enters a password
454
    ///   this calculation is done using the same parameters as stored for his
455
    ///   user account and comparing the output.
456
    /// </summary>
457
    /// <param name="Password">
458
    ///   Password to create the deviation from
459
    /// </param>
460
    /// <param name="Salt">
461
    ///   Salt used to modify the password
462
    /// </param>
463
    /// <param name="Iterations">
464
    ///   Number of iterations to perform
465
    /// </param>
466
    /// <param name="KeyLength">
467
    ///   Length of the resulting key in byte
468
    /// </param>
469
    class function PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes; overload;
470
  end;
471
472
  /// <summary>
473
  ///   All hash classes with hash algorithms specially developed for password
474
  ///   hashing should inherit from this class in order to be able to distinguish
475
  ///   those from normal hash algorithms not really meant to be used for password
476
  ///   hashing.
477
  /// </summary>
478
  TDECPasswordHash = class(TDECHashAuthentication);
479
480
  {$IF CompilerVersion < 28.0}
481
  /// <summary>
482
  ///   Class helper for implementing array concatenation which is not available
483
  ///   in Delphi XE6 or lower.
484
  /// </summary>
485
  /// <remarks>
486
  ///   SHall be removed as soon as the minimum supported version is XE7 or higher.
487
  /// </remarks>
488
  TArrHelper = class
489
    class procedure AppendArrays<T>(var A: TArray<T>; const B: TArray<T>);
490
  end;
491
  {$IFEND}
492
493
implementation
494
495
uses
496
  DECUtil;
497
498
class function TDECHashAuthentication.IsPasswordHash: Boolean;
499
begin
500
  Result := self.InheritsFrom(TDECPasswordHash);
501
end;
502
503
class function TDECHashAuthentication.KDFInternal(const Data; DataSize: Integer; const Seed;
504
                             SeedSize, MaskSize: Integer; KDFType: TKDFType): TBytes;
505
var
506
  I, n,
507
  Rounds, DigestBytes : Integer;
508
  Dest                : PByteArray;
509
  Count               : UInt32;
510
  HashInstance        : TDECHashAuthentication;
511
begin
512
  SetLength(Result, 0);
513
  DigestBytes := DigestSize;
514
  Assert(MaskSize >= 0);
515
  Assert(DataSize >= 0);
516
  Assert(SeedSize >= 0);
517
  Assert(DigestBytes >= 0);
518
519
  HashInstance := TDECHashAuthenticationClass(self).Create;
520
  try
521
    Rounds := (MaskSize + DigestBytes - 1) div DigestBytes;
522
    SetLength(Result, Rounds * DigestBytes);
523
    Dest := @Result[0];
524
525
526
    if (KDFType = ktKDF2) then
527
      n := 1
528
    else
529
      n := 0;
530
531
    for I := 0 to Rounds-1 do
532
    begin
533
      Count := SwapUInt32(n);
534
      HashInstance.Init;
535
536
      if (KDFType = ktKDF3) then
537
      begin
538
        HashInstance.Calc(Count, SizeOf(Count));
539
        HashInstance.Calc(Data, DataSize);
540
      end
541
      else
542
      begin
543
        HashInstance.Calc(Data, DataSize);
544
        HashInstance.Calc(Count, SizeOf(Count));
545
      end;
546
547
      HashInstance.Calc(Seed, SeedSize);
548
      HashInstance.Done;
549
      Move(HashInstance.Digest[0], Dest[(I) * DigestBytes], DigestBytes);
550
551
      inc(n);
552
    end;
553
554
    SetLength(Result, MaskSize);
555
  finally
556
    HashInstance.Free;
557
  end;
558
end;
559
560
class function TDECHashAuthentication.MGF1(const Data; DataSize, MaskSize: Integer): TBytes;
561
begin
562
  Result := KDF1(Data, DataSize, NullStr, 0, MaskSize);
563
end;
564
565
class function TDECHashAuthentication.MGF1(const Data: TBytes; MaskSize: Integer): TBytes;
566
begin
567
  Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF1);
568
end;
569
570
class function TDECHashAuthentication.KDF1(const Data; DataSize: Integer; const Seed;
571
  SeedSize, MaskSize: Integer): TBytes;
572
begin
573
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF1);
574
end;
575
576
class function TDECHashAuthentication.KDF1(const Data, Seed: TBytes;
577
  MaskSize: Integer): TBytes;
578
begin
579
  if (length(Seed) > 0) then
580
    Result := KDFInternal(Data[0], length(Data), Seed[0], length(Seed), MaskSize, ktKDF1)
581
  else
582
    Result := KDFInternal(Data[0], length(Data), NullStr, 0, MaskSize, ktKDF1);
583
end;
584
585
class function TDECHashAuthentication.KDF2(const Data; DataSize: Integer; const Seed;
586
                             SeedSize, MaskSize: Integer): TBytes;
587
begin
588
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF2);
589
end;
590
591
class function TDECHashAuthentication.KDF2(const Data, Seed: TBytes; MaskSize: Integer): TBytes;
592
begin
593
  if (length(Seed) > 0) then
594
    Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF2)
595
  else
596
    Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF2);
597
end;
598
599
class function TDECHashAuthentication.KDF3(const Data; DataSize: Integer; const Seed;
600
                             SeedSize, MaskSize: Integer): TBytes;
601
begin
602
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF3);
603
end;
604
605
class function TDECHashAuthentication.KDF3(const Data, Seed: TBytes; MaskSize: Integer): TBytes;
606
begin
607
  if (length(Seed) > 0) then
608
    Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF3)
609
  else
610
    Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF3);
611
end;
612
613
class function TDECHashAuthentication.KDFx(const Data; DataSize: Integer; const Seed; SeedSize, MaskSize: Integer; Index: UInt32 = 1): TBytes;
614
// DEC's own KDF, even stronger
615
var
616
  I, J         : Integer;
617
  Count        : UInt32;
618
  R            : Byte;
619
  HashInstance : TDECHashAuthentication;
620
begin
621
  Assert(MaskSize >= 0);
622
  Assert(DataSize >= 0);
623
  Assert(SeedSize >= 0);
624
  Assert(DigestSize > 0);
625
626
  SetLength(Result, MaskSize);
627
  Index := SwapUInt32(Index);
628
629
  HashInstance := TDECHashAuthenticationClass(self).Create;
630
  try
631
    for I := 0 to MaskSize - 1 do
632
    begin
633
      HashInstance.Init;
634
635
      Count := SwapUInt32(I);
636
      HashInstance.Calc(Count, SizeOf(Count));
637
      HashInstance.Calc(Result[0], I);
638
639
      HashInstance.Calc(Index, SizeOf(Index));
640
641
      Count := SwapUInt32(SeedSize);
642
      HashInstance.Calc(Count, SizeOf(Count));
643
      HashInstance.Calc(Seed, SeedSize);
644
645
      Count := SwapUInt32(DataSize);
646
      HashInstance.Calc(Count, SizeOf(Count));
647
      HashInstance.Calc(Data, DataSize);
648
649
      HashInstance.Done;
650
651
      R := 0;
652
653
      for J := 0 to DigestSize - 1 do
654
        R := R xor HashInstance.Digest[J];
655
656
      Result[I] := R;
657
    end;
658
  finally
659
    HashInstance.Free;
660
  end;
661
end;
662
663
class function TDECHashAuthentication.KDFx(const Data, Seed: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes;
664
begin
665
  if (length(Seed) > 0) then
666
    Result := KDFx(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, Index)
667
  else
668
    Result := KDFx(Data[0], Length(Data), NullStr, Length(Seed), MaskSize, Index)
669
end;
670
671
class function TDECHashAuthentication.MGFx(const Data; DataSize, MaskSize: Integer; Index: UInt32 = 1): TBytes;
672
begin
673
  Result := KDFx(Data, DataSize, NullStr, 0, MaskSize, Index);
674
end;
675
676
class function TDECHashAuthentication.MGFx(const Data: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes;
677
begin
678
  Result := KDFx(Data[0], Length(Data), NullStr, 0, MaskSize, Index);
679
end;
680
681
class function TDECHashAuthentication.HMAC(const Key, Text: RawByteString): TBytes;
682
begin
683
  result := HMAC(BytesOf(Key), BytesOf(Text));
684
end;
685
686
class function TDECHashAuthentication.HMAC(const Key, Text: TBytes): TBytes;
687
const
688
  CONST_UINT_OF_0x36 = $3636363636363636;
689
  CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C;
690
var
691
  HashInstance: TDECHashAuthentication;
692
  InnerKeyPad, OuterKeyPad: array of Byte;
693
  I, KeyLength, BlockSize, DigestLength: Integer;
694
begin
695
  HashInstance := TDECHashAuthenticationClass(self).Create;
696
  try
697
    BlockSize    := HashInstance.BlockSize; // 64 for sha1, ...
698
    DigestLength := HashInstance.DigestSize;
699
    KeyLength    := Length(Key);
700
701
    SetLength(InnerKeyPad, BlockSize);
702
    SetLength(OuterKeyPad, BlockSize);
703
704
    I := 0;
705
706
    if KeyLength > BlockSize then
707
    begin
708
      Result    := HashInstance.CalcBytes(Key);
709
      KeyLength := DigestLength;
710
    end
711
    else
712
      Result := Key;
713
714
    while I <= KeyLength - SizeOf(NativeUInt) do
715
    begin
716
      PNativeUInt(@InnerKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x36);
717
      PNativeUInt(@OuterKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x5C);
718
      Inc(I, SizeOf(NativeUInt));
719
    end;
720
721
    while I < KeyLength do
722
    begin
723
      InnerKeyPad[I] := Result[I] xor $36;
724
      OuterKeyPad[I] := Result[I] xor $5C;
725
      Inc(I);
726
    end;
727
728
    while I <= BlockSize - SizeOf(NativeUInt) do
729
    begin
730
      PNativeUInt(@InnerKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x36);
731
      PNativeUInt(@OuterKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x5C);
732
      Inc(I, SizeOf(NativeUInt));
733
    end;
734
735
    while I < BlockSize do
736
    begin
737
      InnerKeyPad[I] := $36;
738
      OuterKeyPad[I] := $5C;
739
      Inc(I);
740
    end;
741
742
    HashInstance.Init;
743
    HashInstance.Calc(InnerKeyPad[0], BlockSize);
744
    if Length(Text) > 0 then
745
      HashInstance.Calc(Text[0], Length(Text));
746
    HashInstance.Done;
747
    Result := HashInstance.DigestAsBytes;
748
749
    HashInstance.Init;
750
    HashInstance.Calc(OuterKeyPad[0], BlockSize);
751
    HashInstance.Calc(Result[0], DigestLength);
752
    HashInstance.Done;
753
754
    Result := HashInstance.DigestAsBytes;
755
  finally
756
    HashInstance.Free;
757
  end;
758
end;
759
760
class function TDECHashAuthentication.PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes;
761
const
762
  CONST_UINT_OF_0x36 = $3636363636363636;
763
  CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C;
764
var
765
  Hash: TDECHashAuthentication;
766
  I, J, C: Integer;
767
  BlockCount, HashLengthRounded, SaltLength: Integer;
768
  PassLength, DigestLength, BlockSize: Integer;
769
  InnerKeyPad, OuterKeyPad: TBytes;
770
  SaltEx, T, U, TrimmedKey: TBytes;
771
begin
772
  Hash := TDECHashAuthenticationClass(self).Create;
773
  try
774
    // Setup needed parameters
775
    DigestLength      := Hash.DigestSize;
776
    HashLengthRounded := DigestLength - SizeOf(NativeUInt) + 1;
777
    BlockCount        := Trunc((KeyLength + DigestLength - 1) / DigestLength);
778
    BlockSize         := Hash.BlockSize;
779
    PassLength        := Length(Password);
780
    SaltLength        := Length(Salt);
781
    SaltEx            := Salt;
782
    SetLength(SaltEx, SaltLength + 4);  // reserve 4 bytes for INT_32_BE(i)
783
    SetLength(T, DigestLength);
784
785
    // Prepare Key for HMAC calculation
786
    // PrepareKeyForHMAC;
787
    I := 0;
788
    if PassLength > BlockSize then
789
    begin
790
      TrimmedKey := Hash.CalcBytes(Password);
791
      PassLength := DigestLength;
792
    end
793
    else
794
      TrimmedKey := Password;
795
796
    SetLength(InnerKeyPad, BlockSize);
797
    SetLength(OuterKeyPad, BlockSize);
798
    while I < PassLength do
799
    begin
800
      InnerKeyPad[I] := TrimmedKey[I] xor $36;
801
      OuterKeyPad[I] := TrimmedKey[I] xor $5C;
802
      Inc(I);
803
    end;
804
    while I < BlockSize do
805
    begin
806
      InnerKeyPad[I] := $36;
807
      OuterKeyPad[I] := $5C;
808
      Inc(I);
809
    end;
810
811
    // Calculate DK
812
    for I := 1 to BlockCount do
813
    begin
814
      SaltEx[SaltLength + 0] := Byte(I shr 24);   // INT_32_BE(i)
815
      SaltEx[SaltLength + 1] := Byte(I shr 16);
816
      SaltEx[SaltLength + 2] := Byte(I shr 8);
817
      SaltEx[SaltLength + 3] := Byte(I shr 0);
818
      FillChar(T[0], DigestLength, 0);            // reset Ti / F
819
      U := SaltEx;                                // initialize U to U1 = Salt + INT_32_BE(i)
820
      // Calculate F(Password, Salt, c, i) = U1 ^ U2 ^ ... ^ Uc
821
      for C := 1 to Iterations do
822
      begin
823
        Hash.Init;
824
        Hash.Calc(InnerKeyPad[0], BlockSize);
825
        Hash.Calc(U[0], Length(U));
826
        Hash.Done;
827
        U := Hash.DigestAsBytes;
828
829
        Hash.Init;
830
        Hash.Calc(OuterKeyPad[0], BlockSize);
831
        Hash.Calc(U[0], DigestLength);
832
        Hash.Done;
833
        U := Hash.DigestAsBytes;                  // Ui
834
        // F = U1 ^ U2 ^ ... ^ Uc
835
        J := 0;
836
        while J < HashLengthRounded do
837
        begin
838
          PNativeUInt(@T[J])^ := PNativeUInt(@T[J])^ xor PNativeUInt(@U[J])^;
839
          Inc(J, SizeOf(NativeUInt));
840
        end;
841
        while J < DigestLength do
842
        begin
843
          T[J] := T[J] xor U[J];
844
          Inc(J);
845
        end;
846
      end;
847
848
      {$IF CompilerVersion >= 28.0}
849
      Result := Result + T;                       // DK += F    , DK = DK || Ti
850
      {$ELSE}
851
      TArrHelper.AppendArrays<Byte>(Result, T);
852
      {$IFEND}
853
    end;
854
  finally
855
    Hash.Free;
856
  end;
857
858
  // Trim to the needed key length
859
  SetLength(Result, KeyLength);
860
end;
861
862
class function TDECHashAuthentication.PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes;
863
begin
864
  result := PBKDF2(BytesOf(Password), BytesOf(Salt), Iterations, KeyLength);
865
end;
866
867
{ TArrHelper }
868
869
{$IF CompilerVersion < 28.0}
870
class procedure TArrHelper.AppendArrays<T>(var A: TArray<T>; const B: TArray<T>);
871
var
872
  i, L: Integer;
873
begin
874
  L := Length(A);
875
  SetLength(A, L + Length(B));
876
  for i := 0 to High(B) do
877
    A[L + i] := B[i];
878
end;
879
{$IFEND}
880
881
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashAuthentication (D:\Projekte\DECGitMaster\Source\DECHashAuthentication.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHashAuthentication.pas

+
Number of lines covered177
Number of lines with code gen179
Line coverage98%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Unit containing all the KDF, MGF, HMAC and PBKDF2 algorithms
20
/// </summary>
21
unit DECHashAuthentication;
22
23
interface
24
25
uses
26
  System.SysUtils, DECHashBase;
27
28
{$INCLUDE DECOptions.inc}
29
30
type
31
  /// <summary>
32
  ///   Meta class for all the hashing classes in order to support the
33
  ///   registration mechanism
34
  /// </summary>
35
  TDECHashAuthenticationClass = class of TDECHashAuthentication;
36
37
  /// <summary>
38
  ///   Type of the KDF variant
39
  /// </summary>
40
  TKDFType = (ktKDF1, ktKDF2, ktKDF3);
41
42
  /// <summary>
43
  ///   Class containing all the KDF, MGF, HMAC and PBKDF2 algorithms
44
  /// </summary>
45
  TDECHashAuthentication = class(TDECHash)
46
  strict private
47
    /// <summary>
48
    ///   Key deviation algorithm to derrive keys from other keys.
49
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
50
    ///   This is either KDF1 or KDF2 depending on KDFType
51
    /// </summary>
52
    /// <param name="Data">
53
    ///   Source data from which the new key shall be derrived.
54
    /// </param>
55
    /// <param name="DataSize">
56
    ///   Size in bytes of the source data passed.
57
    /// </param>
58
    /// <param name="Seed">
59
    ///   Start value for pseudo random number generator
60
    /// </param>
61
    /// <param name="SeedSize">
62
    ///   Size of the seed in byte.
63
    /// </param>
64
    /// <param name="MaskSize">
65
    ///   Size of the generated output in byte
66
    /// </param>
67
    /// <param name="KDFType">
68
    ///   Type of the algorithm: 1 = KDF1, 2 = KDF2 and 3 = KDF 3
69
    /// </param>
70
    /// <returns>
71
    ///   Returns the new derrived key.
72
    /// </returns>
73
    class function KDFInternal(const Data; DataSize: Integer; const Seed;
74
                               SeedSize, MaskSize: Integer; KDFType: TKDFType): TBytes; inline;
75
  public
76
    /// <summary>
77
    ///   Detects whether the given hash class is one particularily suited
78
    ///   for storing hashes of passwords
79
    /// </summary>
80
    /// <returns>
81
    ///   true if it's a hash class specifically designed to store password
82
    ///   hashes, false for ordinary hash algorithms.
83
    /// </returns>
84
    class function IsPasswordHash: Boolean; override;
85
86
    // mask generation
87
88
    /// <summary>
89
    ///   Mask generation: generates an output based on the data given which is
90
    ///   similar to a hash function but in contrast does not have a fixed output
91
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
92
    ///   would be inadequate. Examples include generating padding, producing
93
    ///   one time pads or keystreams in symmetric key encryption, and yielding
94
    ///   outputs for pseudorandom number generators.
95
    ///   Indexed Mask generation function, IEEE P1363 working group
96
    ///   equal to KDF1 except without seed. RFC 2437 PKCS #1
97
    /// </summary>
98
    /// <param name="Data">
99
    ///   Data from which to generate a mask from
100
    /// </param>
101
    /// <param name="DataSize">
102
    ///   Size of the input data in bytes
103
    /// </param>
104
    /// <param name="MaskSize">
105
    ///   Size of the returned mask in bytes
106
    /// </param>
107
    /// <returns>
108
    ///   Mask such that one cannot determine the data which had been given to
109
    ///   generate this mask from.
110
    /// </returns>
111
    class function MGF1(const Data; DataSize, MaskSize: Integer): TBytes; overload;
112
    /// <summary>
113
    ///   Mask generation: generates an output based on the data given which is
114
    ///   similar to a hash function but incontrast does not have a fixed output
115
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
116
    ///   would be inadequate. Examples include generating padding, producing
117
    ///   one time pads or keystreams in symmetric key encryption, and yielding
118
    ///   outputs for pseudorandom number generators
119
    /// </summary>
120
    /// <param name="Data">
121
    ///   Data from which to generate a mask from
122
    /// </param>
123
    /// <param name="MaskSize">
124
    ///   Size of the returned mask in bytes
125
    /// </param>
126
    /// <returns>
127
    ///   Mask such that one cannot determine the data which had been given to
128
    ///   generate this mask from.
129
    /// </returns>
130
    class function MGF1(const Data: TBytes; MaskSize: Integer): TBytes; overload;
131
132
    /// <summary>
133
    ///   Key deviation algorithm to derrive keys from other keys.
134
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
135
    /// </summary>
136
    /// <param name="Data">
137
    ///   Source data from which the new key shall be derrived.
138
    /// </param>
139
    /// <param name="DataSize">
140
    ///   Size in bytes of the source data passed.
141
    /// </param>
142
    /// <param name="Seed">
143
    ///   Salt value
144
    /// </param>
145
    /// <param name="SeedSize">
146
    ///   Size of the seed/salt in byte.
147
    /// </param>
148
    /// <param name="MaskSize">
149
    ///   Size of the generated output in byte
150
    /// </param>
151
    /// <returns>
152
    ///   Returns the new derrived key with the length specified in MaskSize.
153
    /// </returns>
154
    /// <remarks>
155
    ///   In earlier versions there was an optional format parameter. This has
156
    ///   been removed as this is a base class. The method might not have
157
    ///   returned a result with the MaskSize specified, as the formatting might
158
    ///   have had to alter this. This would have been illogical.
159
    /// </remarks>
160
    class function KDF1(const Data; DataSize: Integer; const Seed;
161
                        SeedSize, MaskSize: Integer): TBytes; overload;
162
163
    /// <summary>
164
    ///   Key deviation algorithm to derrive keys from other keys.
165
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
166
    /// </summary>
167
    /// <param name="Data">
168
    ///   Source data from which the new key shall be derrived.
169
    /// </param>
170
    /// <param name="Seed">
171
    ///   Salt value
172
    /// </param>
173
    /// <param name="MaskSize">
174
    ///   Size of the generated output in byte
175
    /// </param>
176
    /// <returns>
177
    ///   Returns the new derrived key with the length specified in MaskSize.
178
    /// </returns>
179
    class function KDF1(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
180
181
    /// <summary>
182
    ///   Key deviation algorithm to derrive keys from other keys.
183
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
184
    /// </summary>
185
    /// <param name="Data">
186
    ///   Source data from which the new key shall be derrived.
187
    /// </param>
188
    /// <param name="DataSize">
189
    ///   Size in bytes of the source data passed.
190
    /// </param>
191
    /// <param name="Seed">
192
    ///   Salt value
193
    /// </param>
194
    /// <param name="SeedSize">
195
    ///   Size of the seed/salt in byte.
196
    /// </param>
197
    /// <param name="MaskSize">
198
    ///   Size of the generated output in byte
199
    /// </param>
200
    /// <returns>
201
    ///   Returns the new derrived key with the length specified in MaskSize.
202
    /// </returns>
203
    /// <remarks>
204
    ///   In earlier versions there was an optional format parameter. This has
205
    ///   been removed as this is a base class. The method might not have
206
    ///   returned a result with the MaskSize specified, as the formatting might
207
    ///   have had to alter this. This would have been illogical.
208
    /// </remarks>
209
    class function KDF2(const Data; DataSize: Integer; const Seed;
210
                        SeedSize, MaskSize: Integer): TBytes; overload;
211
212
    /// <summary>
213
    ///   Key deviation algorithm to derrive keys from other keys.
214
    ///   IEEE P1363 Working Group, ISO 18033-2:2004
215
    /// </summary>
216
    /// <param name="Data">
217
    ///   Source data from which the new key shall be derrived.
218
    /// </param>
219
    /// <param name="Seed">
220
    ///   Start value for pseudo random number generator
221
    /// </param>
222
    /// <param name="MaskSize">
223
    ///   Size of the generated output in byte
224
    /// </param>
225
    /// <returns>
226
    ///   Returns the new derrived key with the length specified in MaskSize.
227
    /// </returns>
228
    class function KDF2(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
229
230
    /// <summary>
231
    ///   Key deviation algorithm to derrive keys from other keys.
232
    /// </summary>
233
    /// <param name="Data">
234
    ///   Source data from which the new key shall be derrived.
235
    /// </param>
236
    /// <param name="DataSize">
237
    ///   Size in bytes of the source data passed.
238
    /// </param>
239
    /// <param name="Seed">
240
    ///   Salt value
241
    /// </param>
242
    /// <param name="SeedSize">
243
    ///   Size of the seed/salt in byte.
244
    /// </param>
245
    /// <param name="MaskSize">
246
    ///   Size of the generated output in byte
247
    /// </param>
248
    /// <returns>
249
    ///   Returns the new derrived key with the length specified in MaskSize.
250
    /// </returns>
251
    /// <remarks>
252
    ///   In earlier versions there was an optional format parameter. This has
253
    ///   been removed as this is a base class. The method might not have
254
    ///   returned a result with the MaskSize specified, as the formatting might
255
    ///   have had to alter this. This would have been illogical.
256
    /// </remarks>
257
    class function KDF3(const Data; DataSize: Integer; const Seed;
258
                        SeedSize, MaskSize: Integer): TBytes; overload;
259
260
    /// <summary>
261
    ///   Key deviation algorithm to derrive keys from other keys.
262
    /// </summary>
263
    /// <param name="Data">
264
    ///   Source data from which the new key shall be derrived.
265
    /// </param>
266
    /// <param name="Seed">
267
    ///   Salt value
268
    /// </param>
269
    /// <param name="MaskSize">
270
    ///   Size of the generated output in byte
271
    /// </param>
272
    /// <returns>
273
    ///   Returns the new derrived key with the length specified in MaskSize.
274
    /// </returns>
275
    class function KDF3(const Data, Seed: TBytes; MaskSize: Integer): TBytes; overload;
276
277
    // DEC's own KDF + MGF
278
279
    /// <summary>
280
    ///   Key deviation algorithm to derrive keys from other keys. The alrorithm
281
    ///   implemented by this method does not follow any official standard.
282
    /// </summary>
283
    /// <param name="Data">
284
    ///   Source data from which the new key shall be derrived.
285
    /// </param>
286
    /// <param name="DataSize">
287
    ///   Size in bytes of the source data passed.
288
    /// </param>
289
    /// <param name="Seed">
290
    ///   Salt value
291
    /// </param>
292
    /// <param name="SeedSize">
293
    ///   Size of the seed/salt in byte.
294
    /// </param>
295
    /// <param name="MaskSize">
296
    ///   Size of the generated output in byte
297
    /// </param>
298
    /// <param name="Index">
299
    ///   Optional parameter: can be used to specify a different default value
300
    ///   for the index variable used in the algorithm.
301
    /// </param>
302
    /// <returns>
303
    ///   Returns the new derrived key with the length specified in MaskSize.
304
    /// </returns>
305
    class function KDFx(const Data; DataSize: Integer; const Seed; SeedSize, MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
306
    /// <summary>
307
    ///   Key deviation algorithm to derrive keys from other keys.
308
    /// </summary>
309
    /// <remarks>
310
    ///   This variant of the algorithm does not follow an official standard.
311
    ///   It has been created by the original author of DEC.
312
    /// </remarks>
313
    /// <param name="Data">
314
    ///   Source data from which the new key shall be derrived.
315
    /// </param>
316
    /// <param name="Seed">
317
    ///   Salt value
318
    /// </param>
319
    /// <param name="MaskSize">
320
    ///   Size of the generated output in byte
321
    /// </param>
322
    /// <param name="Index">
323
    ///   Optional parameter: can be used to specify a different default value
324
    ///   for the index variable used in the algorithm.
325
    /// </param>
326
    /// <returns>
327
    ///   Returns the new derrived key with the length specified in MaskSize.
328
    /// </returns>
329
    class function KDFx(const Data, Seed: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
330
331
    /// <summary>
332
    ///   Mask generation: generates an output based on the data given which is
333
    ///   similar to a hash function but incontrast does not have a fixed output
334
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
335
    ///   would be inadequate. Examples include generating padding, producing
336
    ///   one time pads or keystreams in symmetric key encryption, and yielding
337
    ///   outputs for pseudorandom number generators.
338
    /// </summary>
339
    /// <remarks>
340
    ///   This variant of the algorithm does not follow an official standard.
341
    ///   It has been created by the original author of DEC.
342
    /// </remarks>
343
    /// <param name="Data">
344
    ///   Data from which to generate a mask from
345
    /// </param>
346
    /// <param name="DataSize">
347
    ///   Size of the passed data in bytes
348
    /// </param>
349
    /// <param name="MaskSize">
350
    ///   Size of the returned mask in bytes
351
    /// </param>
352
    /// <param name="Index">
353
    ///   Looks like this is a salt applied to each byte of output data?
354
{ TODO : Clarify this parameter }
355
    /// </param>
356
    /// <returns>
357
    ///   Mask such that one cannot determine the data which had been given to
358
    ///   generate this mask from.
359
    /// </returns>
360
    class function MGFx(const Data; DataSize, MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
361
    /// <summary>
362
    ///   Mask generation: generates an output based on the data given which is
363
    ///   similar to a hash function but incontrast does not have a fixed output
364
    ///   length. Use of a MGF is desirable in cases where a fixed-size hash
365
    ///   would be inadequate. Examples include generating padding, producing
366
    ///   one time pads or keystreams in symmetric key encryption, and yielding
367
    ///   outputs for pseudorandom number generators.
368
    /// </summary>
369
    /// <remarks>
370
    ///   This variant of the algorithm does not follow an official standard.
371
    ///   It has been created by the original author of DEC.
372
    /// </remarks>
373
    /// <param name="Data">
374
    ///   Data from which to generate a mask from
375
    /// </param>
376
    /// <param name="MaskSize">
377
    ///   Size of the returned mask in bytes
378
    /// </param>
379
    /// <param name="Index">
380
    ///   Looks like this is a salt applied to each byte of output data?
381
{ TODO : Clarify this parameter }
382
    /// </param>
383
    /// <returns>
384
    ///   Mask such that one cannot determine the data which had been given to
385
    ///   generate this mask from.
386
    /// </returns>
387
    class function MGFx(const Data: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes; overload;
388
389
    /// <summary>
390
    ///   HMAC according to rfc2202: hash message authentication code allow to
391
    ///   verify both the data integrity and the authenticity of a message.
392
    /// </summary>
393
    /// <param name="Key">
394
    ///   This is the secret key which shall not be transmitted over the line.
395
    ///   The sender uses this key to create the resulting HMAC, transmits the
396
    ///   text and the HMAC over the line and the receiver recalculates the HMAC
397
    ///   based on his copy of the secret key. If his calculated HMAC equals the
398
    ///   transfered HMAC value the message has not been tampered.
399
    /// </param>
400
    /// <param name="Text">
401
    ///   Text over which to calculate the HMAC
402
    /// </param>
403
    /// <returns>
404
    ///   Calculated HMAC
405
    /// </returns>
406
    class function HMAC(const Key, Text: TBytes): TBytes; overload;
407
408
    /// <summary>
409
    ///   HMAC according to rfc2202: hash message authentication code allow to
410
    ///   verify both the data integrity and the authenticity of a message.
411
    /// </summary>
412
    /// <param name="Key">
413
    ///   This is the secret key which shall not be transmitted over the line.
414
    ///   The sender uses this key to create the resulting HMAC, transmits the
415
    ///   text and the HMAC over the line and the receiver recalculates the HMAC
416
    ///   based on his copy of the secret key. If his calculated HMAC equals the
417
    ///   transfered HMAC value the message has not been tampered.
418
    /// </param>
419
    /// <param name="Text">
420
    ///   Text over which to calculate the HMAC
421
    /// </param>
422
    /// <returns>
423
    ///   Calculated HMAC
424
    /// </returns>
425
    class function HMAC(const Key, Text: RawByteString): TBytes; overload;
426
427
    /// <summary>
428
    ///   Password based key deviation function 2
429
    ///   RFC 2898, PKCS #5.
430
    ///   This can be used to create a login sheme by storing the output,
431
    ///   number of iterations and the salt. When the user enters a password
432
    ///   this calculation is done using the same parameters as stored for his
433
    ///   user account and comparing the output.
434
    /// </summary>
435
    /// <param name="Password">
436
    ///   Password to create the deviation from
437
    /// </param>
438
    /// <param name="Salt">
439
    ///   Salt used to modify the password
440
    /// </param>
441
    /// <param name="Iterations">
442
    ///   Number of iterations to perform
443
    /// </param>
444
    /// <param name="KeyLength">
445
    ///   Length of the resulting key in byte
446
    /// </param>
447
    class function PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes; overload;
448
449
    /// <summary>
450
    ///   Password based key deviation function 2
451
    ///   RFC 2898, PKCS #5.
452
    ///   This can be used to create a login sheme by storing the output,
453
    ///   number of iterations and the salt. When the user enters a password
454
    ///   this calculation is done using the same parameters as stored for his
455
    ///   user account and comparing the output.
456
    /// </summary>
457
    /// <param name="Password">
458
    ///   Password to create the deviation from
459
    /// </param>
460
    /// <param name="Salt">
461
    ///   Salt used to modify the password
462
    /// </param>
463
    /// <param name="Iterations">
464
    ///   Number of iterations to perform
465
    /// </param>
466
    /// <param name="KeyLength">
467
    ///   Length of the resulting key in byte
468
    /// </param>
469
    class function PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes; overload;
470
  end;
471
472
  /// <summary>
473
  ///   All hash classes with hash algorithms specially developed for password
474
  ///   hashing should inherit from this class in order to be able to distinguish
475
  ///   those from normal hash algorithms not really meant to be used for password
476
  ///   hashing.
477
  /// </summary>
478
  TDECPasswordHash = class(TDECHashAuthentication);
479
480
  {$IF CompilerVersion < 28.0}
481
  /// <summary>
482
  ///   Class helper for implementing array concatenation which is not available
483
  ///   in Delphi XE6 or lower.
484
  /// </summary>
485
  /// <remarks>
486
  ///   SHall be removed as soon as the minimum supported version is XE7 or higher.
487
  /// </remarks>
488
  TArrHelper = class
489
    class procedure AppendArrays<T>(var A: TArray<T>; const B: TArray<T>);
490
  end;
491
  {$IFEND}
492
493
implementation
494
495
uses
496
  DECUtil;
497
498
class function TDECHashAuthentication.IsPasswordHash: Boolean;
499
begin
500
  Result := self.InheritsFrom(TDECPasswordHash);
501
end;
502
503
class function TDECHashAuthentication.KDFInternal(const Data; DataSize: Integer; const Seed;
504
                             SeedSize, MaskSize: Integer; KDFType: TKDFType): TBytes;
505
var
506
  I, n,
507
  Rounds, DigestBytes : Integer;
508
  Dest                : PByteArray;
509
  Count               : UInt32;
510
  HashInstance        : TDECHashAuthentication;
511
begin
512
  SetLength(Result, 0);
513
  DigestBytes := DigestSize;
514
  Assert(MaskSize >= 0);
515
  Assert(DataSize >= 0);
516
  Assert(SeedSize >= 0);
517
  Assert(DigestBytes >= 0);
518
519
  HashInstance := TDECHashAuthenticationClass(self).Create;
520
  try
521
    Rounds := (MaskSize + DigestBytes - 1) div DigestBytes;
522
    SetLength(Result, Rounds * DigestBytes);
523
    Dest := @Result[0];
524
525
526
    if (KDFType = ktKDF2) then
527
      n := 1
528
    else
529
      n := 0;
530
531
    for I := 0 to Rounds-1 do
532
    begin
533
      Count := SwapUInt32(n);
534
      HashInstance.Init;
535
536
      if (KDFType = ktKDF3) then
537
      begin
538
        HashInstance.Calc(Count, SizeOf(Count));
539
        HashInstance.Calc(Data, DataSize);
540
      end
541
      else
542
      begin
543
        HashInstance.Calc(Data, DataSize);
544
        HashInstance.Calc(Count, SizeOf(Count));
545
      end;
546
547
      HashInstance.Calc(Seed, SeedSize);
548
      HashInstance.Done;
549
      Move(HashInstance.Digest[0], Dest[(I) * DigestBytes], DigestBytes);
550
551
      inc(n);
552
    end;
553
554
    SetLength(Result, MaskSize);
555
  finally
556
    HashInstance.Free;
557
  end;
558
end;
559
560
class function TDECHashAuthentication.MGF1(const Data; DataSize, MaskSize: Integer): TBytes;
561
begin
562
  Result := KDF1(Data, DataSize, NullStr, 0, MaskSize);
563
end;
564
565
class function TDECHashAuthentication.MGF1(const Data: TBytes; MaskSize: Integer): TBytes;
566
begin
567
  Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF1);
568
end;
569
570
class function TDECHashAuthentication.KDF1(const Data; DataSize: Integer; const Seed;
571
  SeedSize, MaskSize: Integer): TBytes;
572
begin
573
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF1);
574
end;
575
576
class function TDECHashAuthentication.KDF1(const Data, Seed: TBytes;
577
  MaskSize: Integer): TBytes;
578
begin
579
  if (length(Seed) > 0) then
580
    Result := KDFInternal(Data[0], length(Data), Seed[0], length(Seed), MaskSize, ktKDF1)
581
  else
582
    Result := KDFInternal(Data[0], length(Data), NullStr, 0, MaskSize, ktKDF1);
583
end;
584
585
class function TDECHashAuthentication.KDF2(const Data; DataSize: Integer; const Seed;
586
                             SeedSize, MaskSize: Integer): TBytes;
587
begin
588
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF2);
589
end;
590
591
class function TDECHashAuthentication.KDF2(const Data, Seed: TBytes; MaskSize: Integer): TBytes;
592
begin
593
  if (length(Seed) > 0) then
594
    Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF2)
595
  else
596
    Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF2);
597
end;
598
599
class function TDECHashAuthentication.KDF3(const Data; DataSize: Integer; const Seed;
600
                             SeedSize, MaskSize: Integer): TBytes;
601
begin
602
  Result := KDFInternal(Data, DataSize, Seed, SeedSize, MaskSize, ktKDF3);
603
end;
604
605
class function TDECHashAuthentication.KDF3(const Data, Seed: TBytes; MaskSize: Integer): TBytes;
606
begin
607
  if (length(Seed) > 0) then
608
    Result := KDFInternal(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, ktKDF3)
609
  else
610
    Result := KDFInternal(Data[0], Length(Data), NullStr, 0, MaskSize, ktKDF3);
611
end;
612
613
class function TDECHashAuthentication.KDFx(const Data; DataSize: Integer; const Seed; SeedSize, MaskSize: Integer; Index: UInt32 = 1): TBytes;
614
// DEC's own KDF, even stronger
615
var
616
  I, J         : Integer;
617
  Count        : UInt32;
618
  R            : Byte;
619
  HashInstance : TDECHashAuthentication;
620
begin
621
  Assert(MaskSize >= 0);
622
  Assert(DataSize >= 0);
623
  Assert(SeedSize >= 0);
624
  Assert(DigestSize > 0);
625
626
  SetLength(Result, MaskSize);
627
  Index := SwapUInt32(Index);
628
629
  HashInstance := TDECHashAuthenticationClass(self).Create;
630
  try
631
    for I := 0 to MaskSize - 1 do
632
    begin
633
      HashInstance.Init;
634
635
      Count := SwapUInt32(I);
636
      HashInstance.Calc(Count, SizeOf(Count));
637
      HashInstance.Calc(Result[0], I);
638
639
      HashInstance.Calc(Index, SizeOf(Index));
640
641
      Count := SwapUInt32(SeedSize);
642
      HashInstance.Calc(Count, SizeOf(Count));
643
      HashInstance.Calc(Seed, SeedSize);
644
645
      Count := SwapUInt32(DataSize);
646
      HashInstance.Calc(Count, SizeOf(Count));
647
      HashInstance.Calc(Data, DataSize);
648
649
      HashInstance.Done;
650
651
      R := 0;
652
653
      for J := 0 to DigestSize - 1 do
654
        R := R xor HashInstance.Digest[J];
655
656
      Result[I] := R;
657
    end;
658
  finally
659
    HashInstance.Free;
660
  end;
661
end;
662
663
class function TDECHashAuthentication.KDFx(const Data, Seed: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes;
664
begin
665
  if (length(Seed) > 0) then
666
    Result := KDFx(Data[0], Length(Data), Seed[0], Length(Seed), MaskSize, Index)
667
  else
668
    Result := KDFx(Data[0], Length(Data), NullStr, Length(Seed), MaskSize, Index)
669
end;
670
671
class function TDECHashAuthentication.MGFx(const Data; DataSize, MaskSize: Integer; Index: UInt32 = 1): TBytes;
672
begin
673
  Result := KDFx(Data, DataSize, NullStr, 0, MaskSize, Index);
674
end;
675
676
class function TDECHashAuthentication.MGFx(const Data: TBytes; MaskSize: Integer; Index: UInt32 = 1): TBytes;
677
begin
678
  Result := KDFx(Data[0], Length(Data), NullStr, 0, MaskSize, Index);
679
end;
680
681
class function TDECHashAuthentication.HMAC(const Key, Text: RawByteString): TBytes;
682
begin
683
  result := HMAC(BytesOf(Key), BytesOf(Text));
684
end;
685
686
class function TDECHashAuthentication.HMAC(const Key, Text: TBytes): TBytes;
687
const
688
  CONST_UINT_OF_0x36 = $3636363636363636;
689
  CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C;
690
var
691
  HashInstance: TDECHashAuthentication;
692
  InnerKeyPad, OuterKeyPad: array of Byte;
693
  I, KeyLength, BlockSize, DigestLength: Integer;
694
begin
695
  HashInstance := TDECHashAuthenticationClass(self).Create;
696
  try
697
    BlockSize    := HashInstance.BlockSize; // 64 for sha1, ...
698
    DigestLength := HashInstance.DigestSize;
699
    KeyLength    := Length(Key);
700
701
    SetLength(InnerKeyPad, BlockSize);
702
    SetLength(OuterKeyPad, BlockSize);
703
704
    I := 0;
705
706
    if KeyLength > BlockSize then
707
    begin
708
      Result    := HashInstance.CalcBytes(Key);
709
      KeyLength := DigestLength;
710
    end
711
    else
712
      Result := Key;
713
714
    while I <= KeyLength - SizeOf(NativeUInt) do
715
    begin
716
      PNativeUInt(@InnerKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x36);
717
      PNativeUInt(@OuterKeyPad[I])^ := PNativeUInt(@Result[I])^ xor NativeUInt(CONST_UINT_OF_0x5C);
718
      Inc(I, SizeOf(NativeUInt));
719
    end;
720
721
    while I < KeyLength do
722
    begin
723
      InnerKeyPad[I] := Result[I] xor $36;
724
      OuterKeyPad[I] := Result[I] xor $5C;
725
      Inc(I);
726
    end;
727
728
    while I <= BlockSize - SizeOf(NativeUInt) do
729
    begin
730
      PNativeUInt(@InnerKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x36);
731
      PNativeUInt(@OuterKeyPad[I])^ := NativeUInt(CONST_UINT_OF_0x5C);
732
      Inc(I, SizeOf(NativeUInt));
733
    end;
734
735
    while I < BlockSize do
736
    begin
737
      InnerKeyPad[I] := $36;
738
      OuterKeyPad[I] := $5C;
739
      Inc(I);
740
    end;
741
742
    HashInstance.Init;
743
    HashInstance.Calc(InnerKeyPad[0], BlockSize);
744
    if Length(Text) > 0 then
745
      HashInstance.Calc(Text[0], Length(Text));
746
    HashInstance.Done;
747
    Result := HashInstance.DigestAsBytes;
748
749
    HashInstance.Init;
750
    HashInstance.Calc(OuterKeyPad[0], BlockSize);
751
    HashInstance.Calc(Result[0], DigestLength);
752
    HashInstance.Done;
753
754
    Result := HashInstance.DigestAsBytes;
755
  finally
756
    HashInstance.Free;
757
  end;
758
end;
759
760
class function TDECHashAuthentication.PBKDF2(const Password, Salt: TBytes; Iterations: Integer; KeyLength: Integer): TBytes;
761
const
762
  CONST_UINT_OF_0x36 = $3636363636363636;
763
  CONST_UINT_OF_0x5C = $5C5C5C5C5C5C5C5C;
764
var
765
  Hash: TDECHashAuthentication;
766
  I, J, C: Integer;
767
  BlockCount, HashLengthRounded, SaltLength: Integer;
768
  PassLength, DigestLength, BlockSize: Integer;
769
  InnerKeyPad, OuterKeyPad: TBytes;
770
  SaltEx, T, U, TrimmedKey: TBytes;
771
begin
772
  Hash := TDECHashAuthenticationClass(self).Create;
773
  try
774
    // Setup needed parameters
775
    DigestLength      := Hash.DigestSize;
776
    HashLengthRounded := DigestLength - SizeOf(NativeUInt) + 1;
777
    BlockCount        := Trunc((KeyLength + DigestLength - 1) / DigestLength);
778
    BlockSize         := Hash.BlockSize;
779
    PassLength        := Length(Password);
780
    SaltLength        := Length(Salt);
781
    SaltEx            := Salt;
782
    SetLength(SaltEx, SaltLength + 4);  // reserve 4 bytes for INT_32_BE(i)
783
    SetLength(T, DigestLength);
784
785
    // Prepare Key for HMAC calculation
786
    // PrepareKeyForHMAC;
787
    I := 0;
788
    if PassLength > BlockSize then
789
    begin
790
      TrimmedKey := Hash.CalcBytes(Password);
791
      PassLength := DigestLength;
792
    end
793
    else
794
      TrimmedKey := Password;
795
796
    SetLength(InnerKeyPad, BlockSize);
797
    SetLength(OuterKeyPad, BlockSize);
798
    while I < PassLength do
799
    begin
800
      InnerKeyPad[I] := TrimmedKey[I] xor $36;
801
      OuterKeyPad[I] := TrimmedKey[I] xor $5C;
802
      Inc(I);
803
    end;
804
    while I < BlockSize do
805
    begin
806
      InnerKeyPad[I] := $36;
807
      OuterKeyPad[I] := $5C;
808
      Inc(I);
809
    end;
810
811
    // Calculate DK
812
    for I := 1 to BlockCount do
813
    begin
814
      SaltEx[SaltLength + 0] := Byte(I shr 24);   // INT_32_BE(i)
815
      SaltEx[SaltLength + 1] := Byte(I shr 16);
816
      SaltEx[SaltLength + 2] := Byte(I shr 8);
817
      SaltEx[SaltLength + 3] := Byte(I shr 0);
818
      FillChar(T[0], DigestLength, 0);            // reset Ti / F
819
      U := SaltEx;                                // initialize U to U1 = Salt + INT_32_BE(i)
820
      // Calculate F(Password, Salt, c, i) = U1 ^ U2 ^ ... ^ Uc
821
      for C := 1 to Iterations do
822
      begin
823
        Hash.Init;
824
        Hash.Calc(InnerKeyPad[0], BlockSize);
825
        Hash.Calc(U[0], Length(U));
826
        Hash.Done;
827
        U := Hash.DigestAsBytes;
828
829
        Hash.Init;
830
        Hash.Calc(OuterKeyPad[0], BlockSize);
831
        Hash.Calc(U[0], DigestLength);
832
        Hash.Done;
833
        U := Hash.DigestAsBytes;                  // Ui
834
        // F = U1 ^ U2 ^ ... ^ Uc
835
        J := 0;
836
        while J < HashLengthRounded do
837
        begin
838
          PNativeUInt(@T[J])^ := PNativeUInt(@T[J])^ xor PNativeUInt(@U[J])^;
839
          Inc(J, SizeOf(NativeUInt));
840
        end;
841
        while J < DigestLength do
842
        begin
843
          T[J] := T[J] xor U[J];
844
          Inc(J);
845
        end;
846
      end;
847
848
      {$IF CompilerVersion >= 28.0}
849
      Result := Result + T;                       // DK += F    , DK = DK || Ti
850
      {$ELSE}
851
      TArrHelper.AppendArrays<Byte>(Result, T);
852
      {$IFEND}
853
    end;
854
  finally
855
    Hash.Free;
856
  end;
857
858
  // Trim to the needed key length
859
  SetLength(Result, KeyLength);
860
end;
861
862
class function TDECHashAuthentication.PBKDF2(const Password, Salt: RawByteString; Iterations: Integer; KeyLength: Integer): TBytes;
863
begin
864
  result := PBKDF2(BytesOf(Password), BytesOf(Salt), Iterations, KeyLength);
865
end;
866
867
{ TArrHelper }
868
869
{$IF CompilerVersion < 28.0}
870
class procedure TArrHelper.AppendArrays<T>(var A: TArray<T>; const B: TArray<T>);
871
var
872
  i, L: Integer;
873
begin
874
  L := Length(A);
875
  SetLength(A, L + Length(B));
876
  for i := 0 to High(B) do
877
    A[L + i] := B[i];
878
end;
879
{$IFEND}
880
881
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECHashBase(DECHashBase.pas).html b/Unit Tests/CodeCoverage/U/DECHashBase(DECHashBase.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECHashBase(DECHashBase.pas).html rename to Unit Tests/CodeCoverage/U/DECHashBase(DECHashBase.pas).html index 48b21aef..9ce3dbe4 100644 --- a/Unit Tests/CodeCoverage/DECHashBase(DECHashBase.pas).html +++ b/Unit Tests/CodeCoverage/U/DECHashBase(DECHashBase.pas).html @@ -1,987 +1,987 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHashBase (D:\Projekte\DECGitMaster\Source\DECHashBase.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHashBase.pas

-
Number of lines covered186
Number of lines with code gen216
Line coverage86%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Base unit for all the hash algorithms. The key deviation algorithms are
20
///   in the DECHashAUthentication unit and hash algorithms which can process
21
///   messages with a length specified in bits instead of whole bytes have
22
///   to inherit from TDECHashBit
23
/// </summary>
24
unit DECHashBase;
25
26
interface
27
28
{$INCLUDE DECOptions.inc}
29
30
uses
31
  {$IFDEF FPC}
32
  SysUtils, Classes,
33
  {$ELSE}
34
  System.SysUtils, System.Classes, Generics.Collections,
35
  {$ENDIF}
36
  DECBaseClass, DECFormatBase, DECUtil, DECTypes, DECHashInterface;
37
38
type
39
  /// <summary>
40
  ///   Meta class for all the hashing classes in order to support the
41
  ///   registration mechanism
42
  /// </summary>
43
  TDECHashClass = class of TDECHash;
44
45
  /// <summary>
46
  ///   Base class for all hash algorithm implementation classes
47
  /// </summary>
48
  {$IFDEF FPC}
49
  TDECHash = class(TDECObject)  // does not find methods of the interface as it
50
                                // searches for AnsiString instead of RawByteString
51
                                // and thus does not find that
52
  {$ELSE}
53
  TDECHash = class(TDECObject, IDECHash)
54
  {$ENDIF}
55
  strict private
56
    /// <summary>
57
    ///   Raises an EDECHashException hash algorithm not initialized exception
58
    /// </summary>
59
    procedure RaiseHashNotInitialized;
60
61
    /// <summary>
62
    ///   Returns the current value of the padding byte used to fill up data
63
    ///   if necessary
64
    /// </summary>
65
    function GetPaddingByte: Byte;
66
    /// <summary>
67
    ///   Changes the value of the padding byte used to fill up data
68
    ///   if necessary
69
    /// </summary>
70
    /// <param name="Value">
71
    ///   New value for the padding byte
72
    /// </param>
73
    procedure SetPaddingByte(Value: Byte);
74
  strict protected
75
    FCount       : array[0..7] of UInt32;
76
    /// <summary>
77
    ///   Internal processing buffer
78
    /// </summary>
79
    FBuffer      : PByteArray;
80
    /// <summary>
81
    ///   Size of the internal processing buffer in byte
82
    /// </summary>
83
    FBufferSize  : Integer;
84
    /// <summary>
85
    ///   Position the algorithm is currently at in the processing buffer
86
    /// </summary>
87
    FBufferIndex : Integer;
88
    /// <summary>
89
    ///   Value used to fill up data
90
    /// </summary>
91
    FPaddingByte : Byte;
92
    /// <summary>
93
    ///   Last byte of the message to be hashed if the algorithm is capable of
94
    ///   processing bit sized message lengths and FFinalBitLen > 0.
95
    /// </summary>
96
    FFinalByte   : UInt8;
97
    /// <summary>
98
    ///   Setting this to a number of bits allows to process messages which have
99
    ///   a length which is not a exact multiple of bytes.
100
    /// </summary>
101
    FFinalByteLength : UInt8;
102
    /// <summary>
103
    ///   This abstract method has to be overridden by each concrete hash algorithm
104
    ///   to initialize the necessary data structures.
105
    /// </summary>
106
    procedure DoInit; virtual; abstract;
107
108
    procedure DoTransform(Buffer: PUInt32Array); virtual; abstract;
109
    /// <summary>
110
    ///   This abstract method has to be overridden by each concrete hash algorithm
111
    ///   to finalize the calculation of a hash value over the data passed.
112
    /// </summary>
113
    procedure DoDone; virtual; abstract;
114
    /// <summary>
115
    ///   Adds the value of 8*Add to the value (which is interpreted as an
116
    ///   8*32 bit unsigned integer array. The carry is taken care of.
117
    /// </summary>
118
    /// <param name="Value">
119
    ///   Value which is incremented
120
    /// </param>
121
    /// <param name="Add">
122
    ///   Value (which is being multiplied by 8) by which to increment Value
123
    /// </param>
124
    /// <remarks>
125
    ///   Raises an EDECHashException overflow error if the last operation has
126
    ///   set the carry flag
127
    /// </remarks>
128
    procedure Increment8(var Value; Add: UInt32);
129
    /// <summary>
130
    ///   Raises an EDECHashException overflow error
131
    /// </summary>
132
    procedure RaiseHashOverflowError;
133
134
    /// <summary>
135
    ///   Overwrite internally used processing buffers to make it harder to steal
136
    ///   any data from memory.
137
    /// </summary>
138
    procedure SecureErase; virtual;
139
140
    /// <summary>
141
    ///   Returns the calculated hash value
142
    /// </summary>
143
    function Digest: PByteArray; virtual; abstract;
144
  public
145
    /// <summary>
146
    ///   Initialize internal fields
147
    /// </summary>
148
    constructor Create; override;
149
    /// <summary>
150
    ///   Fees internal resources
151
    /// </summary>
152
    destructor Destroy; override;
153
    /// <summary>
154
    ///   Generic initialization of internal data structures. Additionally the
155
    ///   internal algorithm specific (because of being overridden by each
156
    ///   hash algorithm) DoInit method is called. Needs to be called before
157
    ///   each hash calculation.
158
    /// </summary>
159
    procedure Init;
160
    /// <summary>
161
    ///   Processes one chunk of data to be hashed.
162
    /// </summary>
163
    /// <param name="Data">
164
    ///   Data on which the hash value shall be calculated on
165
    /// </param>
166
    /// <param name="DataSize">
167
    ///   Size of the data in bytes
168
    /// </param>
169
    procedure Calc(const Data; DataSize: Integer); virtual;
170
171
    /// <summary>
172
    ///   Frees dynamically allocated buffers in a way which safeguards agains
173
    ///   data stealing by other methods which afterwards might allocate this memory.
174
    ///   Additionaly calls the algorithm spercific DoDone method.
175
    /// </summary>
176
    procedure Done;
177
178
    /// <summary>
179
    ///   Returns the calculated hash value as byte array
180
    /// </summary>
181
    function DigestAsBytes: TBytes; virtual;
182
183
    /// <summary>
184
    ///   Returns the calculated hash value as formatted Unicode string
185
    /// </summary>
186
    /// <param name="Format">
187
    ///   Optional parameter. If a formatting class is being passed the formatting
188
    ///   will be applied to the returned string. Otherwise no formatting is
189
    ///   being used.
190
    /// </param>
191
    /// <returns>
192
    ///   Hash value of the last performed hash calculation
193
    /// </returns>
194
    /// <remarks>
195
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
196
    ///   being returned, otherwise the conversion into the Unicode string might
197
    ///   result in strange characters in the returned result.
198
    /// </remarks>
199
    function DigestAsString(Format: TDECFormatClass = nil): string;
200
    /// <summary>
201
    ///   Returns the calculated hash value as formatted RawByteString
202
    /// </summary>
203
    /// <param name="Format">
204
    ///   Optional parameter. If a formatting class is being passed the formatting
205
    ///   will be applied to the returned string. Otherwise no formatting is
206
    ///   being used.
207
    /// </param>
208
    /// <returns>
209
    ///   Hash value of the last performed hash calculation
210
    /// </returns>
211
    /// <remarks>
212
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
213
    ///   being returned, otherwise the conversion into the RawByteString might
214
    ///   result in strange characters in the returned result.
215
    /// </remarks>
216
    function DigestAsRawByteString(Format: TDECFormatClass = nil): RawByteString;
217
218
    /// <summary>
219
    ///   Gives the length of the calculated hash value in byte. Needs to be
220
    ///   overridden in concrete hash implementations.
221
    /// </summary>
222
    class function DigestSize: UInt32; virtual;
223
    /// <summary>
224
    ///   Gives the length of the blocks the hash value is being calculated
225
    ///   on in byte. Needs to be overridden in concrete hash implementations.
226
    /// </summary>
227
    class function BlockSize: UInt32; virtual;
228
229
    /// <summary>
230
    ///   List of registered DEC classes. Key is the Identity of the class.
231
    /// </summary>
232
    class var ClassList : TDECClassList;
233
234
    /// <summary>
235
    ///   Tries to find a class type by its name
236
    /// </summary>
237
    /// <param name="Name">
238
    ///   Name to look for in the list
239
    /// </param>
240
    /// <returns>
241
    ///   Returns the class type if found. if it could not be found a
242
    ///   EDECClassNotRegisteredException will be thrown
243
    /// </returns>
244
    class function ClassByName(const Name: string): TDECHashClass;
245
246
    /// <summary>
247
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
248
    ///   Useful for file headers, so they can easily encode numerically which
249
    ///   cipher class was being used.
250
    /// </summary>
251
    /// <param name="Identity">
252
    ///   Identity to look for
253
    /// </param>
254
    /// <returns>
255
    ///   Returns the class type of the class with the specified identity value
256
    ///   or throws an EDECClassNotRegisteredException exception if no class
257
    ///   with the given identity has been found
258
    /// </returns>
259
    class function ClassByIdentity(Identity: Int64): TDECHashClass;
260
261
    /// <summary>
262
    ///   Detects whether the given hash class is one particularily suited
263
    ///   for storing hashes of passwords
264
    /// </summary>
265
    /// <returns>
266
    ///   true if it's a hash class specifically designed to store password
267
    ///   hashes, false for ordinary hash algorithms.
268
    /// </returns>
269
    class function IsPasswordHash: Boolean; virtual;
270
271
    // hash calculation wrappers
272
273
    /// <summary>
274
    ///   Calculates the hash value (digest) for a given buffer
275
    /// </summary>
276
    /// <param name="Buffer">
277
    ///   Untyped buffer the hash shall be calculated for
278
    /// </param>
279
    /// <param name="BufferSize">
280
    ///   Size of the buffer in byte
281
    /// </param>
282
    /// <returns>
283
    ///   Byte array with the calculated hash value
284
    /// </returns>
285
    function CalcBuffer(const Buffer; BufferSize: Integer): TBytes;
286
    /// <summary>
287
    ///   Calculates the hash value (digest) for a given buffer
288
    /// </summary>
289
    /// <param name="Data">
290
    ///   The TBytes array the hash shall be calculated on
291
    /// </param>
292
    /// <returns>
293
    ///   Byte array with the calculated hash value
294
    /// </returns>
295
    function CalcBytes(const Data: TBytes): TBytes;
296
297
    /// <summary>
298
    ///   Calculates the hash value (digest) for a given unicode string
299
    /// </summary>
300
    /// <param name="Value">
301
    ///   The string the hash shall be calculated on
302
    /// </param>
303
    /// <param name="Format">
304
    ///   Formatting class from DECFormat. The formatting will be applied to the
305
    ///   returned digest value. This parameter is optional.
306
    /// </param>
307
    /// <returns>
308
    ///   string with the calculated hash value
309
    /// </returns>
310
    function CalcString(const Value: string; Format: TDECFormatClass = nil): string; overload;
311
    /// <summary>
312
    ///   Calculates the hash value (digest) for a given rawbytestring
313
    /// </summary>
314
    /// <param name="Value">
315
    ///   The string the hash shall be calculated on
316
    /// </param>
317
    /// <param name="Format">
318
    ///   Formatting class from DECFormat. The formatting will be applied to the
319
    ///   returned digest value. This parameter is optional.
320
    /// </param>
321
    /// <returns>
322
    ///   string with the calculated hash value
323
    /// </returns>
324
    function CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString; overload;
325
326
    /// <summary>
327
    ///   Calculates the hash value over a given stream of bytes
328
    /// </summary>
329
    /// <param name="Stream">
330
    ///   Memory or file stream over which the hash value shall be calculated.
331
    ///   The stream must be assigned. The hash value will always be calculated
332
    ///   from the current position of the stream.
333
    /// </param>
334
    /// <param name="Size">
335
    ///   Number of bytes within the stream over which to calculate the hash value
336
    /// </param>
337
    /// <param name="HashResult">
338
    ///   In this byte array the calculated hash value will be returned
339
    /// </param>
340
    /// <param name="OnProgress">
341
    ///   Optional callback routine. It can be used to display the progress of
342
    ///   the operation.
343
    /// </param>
344
    procedure CalcStream(const Stream: TStream; Size: Int64; var HashResult: TBytes;
345
                         const OnProgress:TDECProgressEvent = nil); overload;
346
    /// <summary>
347
    ///   Calculates the hash value over a givens stream of bytes
348
    /// </summary>
349
    /// <param name="Stream">
350
    ///   Memory or file stream over which the hash value shall be calculated.
351
    ///   The stream must be assigned. The hash value will always be calculated
352
    ///   from the current position of the stream.
353
    /// </param>
354
    /// <param name="Size">
355
    ///   Number of bytes within the stream over which to calculate the hash value
356
    /// </param>
357
    /// <param name="Format">
358
    ///   Optional formatting class. The formatting of that will be applied to
359
    ///   the returned hash value.
360
    /// </param>
361
    /// <param name="OnProgress">
362
    ///   Optional callback routine. It can be used to display the progress of
363
    ///   the operation.
364
    /// </param>
365
    /// <returns>
366
    ///   Hash value over the bytes in the stream, formatted with the formatting
367
    ///   passed as format parameter, if used.
368
    /// </returns>
369
    function CalcStream(const Stream: TStream; Size: Int64; Format: TDECFormatClass = nil;
370
                        const OnProgress:TDECProgressEvent = nil): RawByteString; overload;
371
372
    /// <summary>
373
    ///   Calculates the hash value over the contents of a given file
374
    /// </summary>
375
    /// <param name="FileName">
376
    ///   Path and name of the file to be processed
377
    /// </param>
378
    /// <param name="HashResult">
379
    ///   Here the resulting hash value is being returned as byte array
380
    /// </param>
381
    /// <param name="OnProgress">
382
    ///   Optional callback. If being used the hash calculation will call it from
383
    ///   time to time to return the current progress of the operation
384
    /// </param>
385
    procedure CalcFile(const FileName: string; var HashResult: TBytes;
386
                       const OnProgress:TDECProgressEvent = nil); overload;
387
    /// <summary>
388
    ///   Calculates the hash value over the contents of a given file
389
    /// </summary>
390
    /// <param name="FileName">
391
    ///   Path and name of the file to be processed
392
    /// </param>
393
    /// <param name="Format">
394
    ///   Optional parameter: Formatting class. If being used the formatting is
395
    ///   being applied to the returned string with the calculated hash value
396
    /// </param>
397
    /// <param name="OnProgress">
398
    ///   Optional callback. If being used the hash calculation will call it from
399
    ///   time to time to return the current progress of the operation
400
    /// </param>
401
    /// <returns>
402
    ///   Calculated hash value as RawByteString.
403
    /// </returns>
404
    /// <remarks>
405
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
406
    ///   being returned, otherwise the conversion into the RawByteString might
407
    ///   result in strange characters in the returned result.
408
    /// </remarks>
409
    function CalcFile(const FileName: string; Format: TDECFormatClass = nil;
410
                      const OnProgress:TDECProgressEvent = nil): RawByteString; overload;
411
412
    /// <summary>
413
    ///   Defines the byte used in the KDF methods to padd the end of the data
414
    ///   if the length of the data cannot be divided by required size for the
415
    ///   hash algorithm without reminder
416
    /// </summary>
417
    property PaddingByte: Byte read GetPaddingByte write SetPaddingByte;
418
  end;
419
420
/// <summary>
421
///   Returns the passed hash class type if it is not nil. Otherwise the
422
///   class type class set per SetDefaultHashClass is being returned. If using
423
///   the DECHash unit THash_SHA256 is registered in the initialization, otherwise
424
///   nil might be returned!
425
/// </summary>
426
/// <param name="HashClass">
427
///   Class type of a hash class like THash_SHA256. If nil is passed the one set
428
///   as default is returned.
429
/// </param>
430
/// <returns>
431
///   Passed class type or defined default hash class type, depending on
432
///   HashClass parameter value.
433
/// </returns>
434
function ValidHash(HashClass: TDECHashClass = nil): TDECHashClass;
435
436
/// <summary>
437
///   Defines which cipher class to return by ValidCipher if passing nil to that
438
/// </summary>
439
/// <param name="HashClass">
440
///   Class type of a hash class to return by ValidHash if passing nil to
441
///   that one. This parameter should not be nil!
442
/// </param>
443
procedure SetDefaultHashClass(HashClass: TDECHashClass);
444
445
implementation
446
447
resourcestring
448
  sHashNotInitialized     = 'Hash must be initialized';
449
  sRaiseHashOverflowError = 'Hash Overflow: Too many bits processed';
450
  sHashNoDefault          = 'No default hash has been registered';
451
452
var
453
  /// <summary>
454
  ///   Hash class returned by ValidHash if nil is passed as parameter to it
455
  /// </summary>
456
  FDefaultHashClass: TDECHashClass = nil;
457
458
function ValidHash(HashClass: TDECHashClass): TDECHashClass;
459
begin
460
  if Assigned(HashClass) then
461
    Result := HashClass
462
  else
463
    Result := FDefaultHashClass;
464
465
  if not Assigned(Result) then
466
    raise EDECHashException.CreateRes(@sHashNoDefault);
467
end;
468
469
procedure SetDefaultHashClass(HashClass: TDECHashClass);
470
begin
471
  Assert(Assigned(HashClass), 'Do not set a nil default hash class!');
472
473
  FDefaultHashClass := HashClass;
474
end;
475
476
{ TDECHash }
477
478
constructor TDECHash.Create;
479
begin
480
  inherited;
481
  FBufferSize := 0;
482
  FBuffer     := nil;
483
end;
484
485
destructor TDECHash.Destroy;
486
begin
487
  SecureErase;
488
  FreeMem(FBuffer, FBufferSize);
489
490
  inherited Destroy;
491
end;
492
493
procedure TDECHash.SecureErase;
494
begin
495
  ProtectBuffer(Digest^, DigestSize);
496
  if FBuffer = nil then
497
    ProtectBuffer(FBuffer^, FBufferSize);
498
end;
499
500
procedure TDECHash.Init;
501
begin
502
  FBufferIndex := 0;
503
504
  if (FBuffer = nil) or (UInt32(FBufferSize) <> BlockSize) then
505
    begin
506
      FBufferSize := BlockSize;
507
      // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help
508
      // It is necessary to reallocate the buffer as FreeMem in destructor wouldn't
509
      // accept a nil pointer on some platforms.
510
      FBuffer := ReallocMemory(FBuffer, FBufferSize);
511
    end;
512
513
  FillChar(FBuffer^, FBufferSize, 0);
514
  FillChar(FCount, SizeOf(FCount), 0);
515
  DoInit;
516
end;
517
518
class function TDECHash.IsPasswordHash: Boolean;
519
begin
520
  // has to be overwritten by the base class for password hash algorithms
521
  result := false;
522
end;
523
524
procedure TDECHash.Done;
525
begin
526
  DoDone;
527
end;
528
529
function TDECHash.GetPaddingByte: Byte;
530
begin
531
  Result := FPaddingByte;
532
end;
533
534
procedure TDECHash.Increment8(var Value; Add: UInt32);
535
// Value := Value + 8 * Add
536
// Value is array[0..7] of UInt32
537
{ TODO -oNormanNG -cCodeReview : !!Unbedingt noch einmal prüfen, ob das wirklich so alles stimmt!!
538
Mein Versuch der Umsetzung von Increment8 in ASM.
539
Die Implementierung zuvor hat immer Zugriffsverletzungen ausgelöst.
540
Vermutung: die alte Implementierung lag ursprünglich ausserhalb der Klasse und wurde später
541
in die Klasse verschoben. Dabei verändert sich aber die Nutzung der Register, da zusätzlich
542
der SELF-Parameter in EAX übergeben wird. Beim Schreiben nach auf Value wurde dann in die Instanz (Self)
543
geschrieben -> peng
544
}
545
{$IF defined(X86ASM) or defined(X64ASM)}
546
  {$IFDEF X86ASM}
547
  //   type TData = packed array[0..7] of UInt32;  8x32bit
548
  //   TypeOf Param "Value" = TData
549
  //
550
  //   EAX = Self
551
  //   EDX = Pointer to "Value"
552
  //   ECX = Value of "ADD"
553
  register; // redundant but informative
554
  asm
555
      LEA EAX,[ECX*8]              //                      EAX := ADD * 8
556
      SHR ECX,29                   //                      29bit nach rechts schieben, 3bit beiben stehen
557
      ADD [EDX].DWord[00],EAX      // add [edx], eax       TData(Value)[00] := TData(Value)[00] + EAX
558
      ADC [EDX].DWord[04],ECX      // adc [edx+$04], ecx   TData(Value)[04] := TData(Value)[04] + ECX + Carry
559
      ADC [EDX].DWord[08],0        // adc [edx+$08], 0     TData(Value)[08] := TData(Value)[08] + 0 + Carry
560
      ADC [EDX].DWord[12],0        // adc [edx+$0c], 0     TData(Value)[12] := TData(Value)[12] + 0 + Carry
561
      ADC [EDX].DWord[16],0        // adc [edx+$10], 0     TData(Value)[16] := TData(Value)[16] + 0 + Carry
562
      ADC [EDX].DWord[20],0        // adc [edx+$14], 0     TData(Value)[20] := TData(Value)[20] + 0 + Carry
563
      ADC [EDX].DWord[24],0        // adc [edx+$18], 0     TData(Value)[24] := TData(Value)[24] + 0 + Carry
564
      ADC [EDX].DWord[28],0        // adc [edx+$1c], 0     TData(Value)[28] := TData(Value)[28] + 0 + Carry
565
      JC  RaiseHashOverflowError
566
  end;
567
  {$ENDIF !X86ASM}
568
  {$IFDEF X64ASM}
569
  //   type TData = packed array[0..3] of UInt64;  4x64bit
570
  //   TypeOf Param "Value" = TData
571
  //
572
  //   RCX = Self
573
  //   RDX = Pointer to "Value"
574
  //   R8D = Value of "ADD"
575
  register; // redundant but informative
576
  asm
577
    SHL R8, 3                      // R8 := Add * 8       the caller writes to R8D what automatically clears the high DWORD of R8
578
    ADD QWORD PTR [RDX     ], R8   // add [rdx], r8       TData(Value)[00] := TData(Value)[00] + R8
579
    ADD QWORD PTR [RDX +  8], 0    // add [rdx+$08], 0    TData(Value)[08] := TData(Value)[08] + 0 + Carry
580
    ADD QWORD PTR [RDX + 16], 0    // add [rdx+$10], 0    TData(Value)[16] := TData(Value)[16] + 0 + Carry
581
    ADD QWORD PTR [RDX + 24], 0    // add [rdx+$18], 0    TData(Value)[24] := TData(Value)[24] + 0 + Carry
582
    JC RaiseHashOverflowError;
583
  end;
584
  {$ENDIF !X64ASM}
585
{$ELSE PUREPASCAL}
586
type
587
  TData = packed array[0..7] of UInt32;
588
589
var
590
  HiBits: UInt32;
591
  Add8: UInt32;
592
  Carry: Boolean;
593
594
  procedure AddC(var Value: UInt32; const Add: UInt32; var Carry: Boolean);
595
  begin
596
    if Carry then
597
    begin
598
      Value := Value + 1;
599
      Carry := (Value = 0); // we might cause another overflow by adding the carry bit
600
    end
601
    else
602
      Carry := False;
603
604
    Value := Value + Add;
605
    Carry := Carry or (Value < Add); // set Carry Flag on overflow or keep it if already set
606
  end;
607
608
begin
609
  HiBits := Add shr 29; // Save most significant 3 bits in case an overflow occurs
610
  Add8 := Add * 8;
611
  Carry := False;
612
613
  AddC(TData(Value)[0], Add8, Carry);
614
  AddC(TData(Value)[1], HiBits, Carry);
615
  AddC(TData(Value)[2], 0, Carry);
616
  AddC(TData(Value)[3], 0, Carry);
617
  AddC(TData(Value)[4], 0, Carry);
618
  AddC(TData(Value)[5], 0, Carry);
619
  AddC(TData(Value)[6], 0, Carry);
620
  AddC(TData(Value)[7], 0, Carry);
621
622
  if Carry then
623
    RaiseHashOverflowError;
624
end;
625
{$IFEND PUREPASCAL}
626
627
procedure TDECHash.RaiseHashOverflowError;
628
begin
629
  raise EDECHashException.CreateRes(@sRaiseHashOverflowError);
630
end;
631
632
procedure TDECHash.SetPaddingByte(Value: Byte);
633
begin
634
  FPaddingByte := Value;
635
end;
636
637
procedure TDECHash.RaiseHashNotInitialized;
638
begin
639
  raise EDECHashException.CreateRes(@sHashNotInitialized);
640
end;
641
642
procedure TDECHash.Calc(const Data; DataSize: Integer);
643
var
644
  Remain: Integer;
645
  Value: PByte;
646
begin
647
  if DataSize <= 0 then
648
    Exit;
649
650
  if not Assigned(FBuffer) then
651
    RaiseHashNotInitialized;
652
653
  Increment8(FCount, DataSize);
654
  Value := @TByteArray(Data)[0];
655
656
  if FBufferIndex > 0 then
657
  begin
658
    Remain := FBufferSize - FBufferIndex;
659
    if DataSize < Remain then
660
    begin
661
      Move(Value^, FBuffer[FBufferIndex], DataSize);
662
      Inc(FBufferIndex, DataSize);
663
      Exit;
664
    end;
665
    Move(Value^, FBuffer[FBufferIndex], Remain);
666
    DoTransform(Pointer(FBuffer));
667
    Dec(DataSize, Remain);
668
    Inc(Value, Remain);
669
  end;
670
671
  while DataSize >= FBufferSize do
672
  begin
673
    DoTransform(Pointer(Value));
674
    Inc(Value, FBufferSize);
675
    Dec(DataSize, FBufferSize);
676
  end;
677
678
  Move(Value^, FBuffer^, DataSize);
679
  FBufferIndex := DataSize;
680
end;
681
682
function TDECHash.DigestAsBytes: TBytes;
683
begin
684
  SetLength(Result, DigestSize);
685
  if DigestSize <> 0 then
686
    Move(Digest^, Result[0], DigestSize);
687
end;
688
689
function TDECHash.DigestAsRawByteString(Format: TDECFormatClass): RawByteString;
690
begin
691
  Result := BytesToRawString(ValidFormat(Format).Encode(DigestAsBytes));
692
end;
693
694
function TDECHash.DigestAsString(Format: TDECFormatClass): string;
695
begin
696
  Result := StringOf(ValidFormat(Format).Encode(DigestAsBytes));
697
end;
698
699
class function TDECHash.DigestSize: UInt32;
700
begin
701
  // C++ does not support virtual static functions thus the base cannot be
702
  // marked 'abstract'. This is our workaround:
703
  raise EDECAbstractError.Create(GetShortClassName);
704
end;
705
706
class function TDECHash.BlockSize: UInt32;
707
begin
708
  // C++ does not support virtual static functions thus the base cannot be
709
  // marked 'abstract'. This is our workaround:
710
  raise EDECAbstractError.Create(GetShortClassName);
711
end;
712
713
function TDECHash.CalcBuffer(const Buffer; BufferSize: Integer): TBytes;
714
var
715
  DataPtr: PByte;
716
begin
717
  Init;
718
719
  if (FFinalByteLength = 0) or (BufferSize = 0) then
720
    Calc(Buffer, BufferSize)
721
  else
722
    if (BufferSize > 0) then
723
    begin
724
      // Remember last byte as this might be required for padding for such
725
      // algorithms which have some automatic padding logic
726
      DataPtr := @Buffer;
727
      Inc(DataPtr, BufferSize - 1);
728
      FFinalByte := DataPtr^;
729
730
      // Last byte is incomplete so do not process normally
731
      Calc(Buffer, BufferSize-1);
732
    end;
733
734
  Done;
735
  Result := DigestAsBytes;
736
end;
737
738
function TDECHash.CalcBytes(const Data: TBytes): TBytes;
739
begin
740
  SetLength(Result, 0);
741
  if Length(Data) > 0 then
742
    Result := CalcBuffer(Data[0], Length(Data))
743
  else
744
    Result := CalcBuffer(Data, Length(Data));
745
end;
746
747
function TDECHash.CalcString(const Value: string; Format: TDECFormatClass): string;
748
var
749
  Size : Integer;
750
  Data : TBytes;
751
begin
752
  Result := '';
753
  if Length(Value) > 0 then
754
  begin
755
    {$IF CompilerVersion >= 24.0}
756
    Size   := Length(Value) * SizeOf(Value[low(Value)]);
757
    Data   := CalcBuffer(Value[low(Value)], Size);
758
    {$ELSE}
759
    Size   := Length(Value) * SizeOf(Value[1]);
760
    Data   := CalcBuffer(Value[1], Size);
761
    {$IFEND}
762
    Result := StringOf(ValidFormat(Format).Encode(Data));
763
  end
764
  else
765
  begin
766
    SetLength(Data, 0);
767
    result := StringOf(ValidFormat(Format).Encode(CalcBuffer(Data, 0)));
768
  end;
769
end;
770
771
function TDECHash.CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString;
772
var
773
  Buf : TBytes;
774
begin
775
  Result := '';
776
  if Length(Value) > 0 then
777
    {$IF CompilerVersion >= 24.0}
778
    result := BytesToRawString(
779
                ValidFormat(Format).Encode(
780
                  CalcBuffer(Value[low(Value)],
781
                             Length(Value) * SizeOf(Value[low(Value)]))))
782
    {$ELSE}
783
    result := BytesToRawString(
784
                ValidFormat(Format).Encode(
785
                  CalcBuffer(Value[1],
786
                             Length(Value) * SizeOf(Value[1]))))
787
    {$IFEND}
788
  else
789
  begin
790
    SetLength(Buf, 0);
791
    Result := BytesToRawString(ValidFormat(Format).Encode(CalcBuffer(Buf, 0)));
792
  end;
793
end;
794
795
class function TDECHash.ClassByIdentity(Identity: Int64): TDECHashClass;
796
begin
797
  Result := TDECHashClass(ClassList.ClassByIdentity(Identity));
798
end;
799
800
class function TDECHash.ClassByName(const Name: string): TDECHashClass;
801
begin
802
  Result := TDECHashClass(ClassList.ClassByName(Name));
803
end;
804
805
procedure TDECHash.CalcStream(const Stream: TStream; Size: Int64;
806
  var HashResult: TBytes; const OnProgress:TDECProgressEvent);
807
var
808
  Buffer: TBytes;
809
  Bytes: Integer;
810
  Max, Pos: Int64;
811
begin
812
  Assert(Assigned(Stream), 'Stream to calculate hash on is not assigned');
813
814
  Max := 0;
815
  SetLength(HashResult, 0);
816
  try
817
    Init;
818
819
    if StreamBufferSize <= 0 then
820
      StreamBufferSize := 8192;
821
822
    Pos := Stream.Position;
823
824
    if Size < 0 then
825
      Size := Stream.Size - Pos;
826
827
    // Last byte is incomplete so it mustn't be processed
828
    if (FFinalByteLength > 0) then
829
      Dec(Size);
830
831
    Max      := Pos + Size;
832
833
    if Assigned(OnProgress) then
834
      OnProgress(Max, 0, Started);
835
836
    Bytes := StreamBufferSize mod FBufferSize;
837
838
    if Bytes = 0 then
839
      Bytes := StreamBufferSize
840
    else
841
      Bytes := StreamBufferSize + FBufferSize - Bytes;
842
843
    if Bytes > Size then
844
      SetLength(Buffer, Size)
845
    else
846
      SetLength(Buffer, Bytes);
847
848
    while Size > 0 do
849
    begin
850
      Bytes := Length(Buffer);
851
      if Bytes > Size then
852
        Bytes := Size;
853
      Stream.ReadBuffer(Buffer[0], Bytes);
854
      Calc(Buffer[0], Bytes);
855
      Dec(Size, Bytes);
856
      Inc(Pos, Bytes);
857
858
      if Assigned(OnProgress) then
859
        OnProgress(Max, Pos, Processing);
860
    end;
861
862
    // Last byte is incomplete but algorithm may need its value for padding
863
    if (FFinalByteLength > 0) then
864
      Stream.ReadBuffer(FFinalByte, 1);
865
866
    Done;
867
    HashResult := DigestAsBytes;
868
  finally
869
    ProtectBytes(Buffer);
870
    if Assigned(OnProgress) then
871
      OnProgress(Max, Max, Finished);
872
  end;
873
end;
874
875
function TDECHash.CalcStream(const Stream: TStream; Size: Int64;
876
  Format: TDECFormatClass; const OnProgress:TDECProgressEvent): RawByteString;
877
var
878
  Hash: TBytes;
879
begin
880
  CalcStream(Stream, Size, Hash, OnProgress);
881
  Result := BytesToRawString(ValidFormat(Format).Encode(Hash));
882
end;
883
884
procedure TDECHash.CalcFile(const FileName: string; var HashResult: TBytes;
885
                            const OnProgress:TDECProgressEvent);
886
var
887
  S: TFileStream;
888
begin
889
  SetLength(HashResult, 0);
890
  S := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
891
  try
892
    CalcStream(S, S.Size, HashResult, OnProgress);
893
  finally
894
    S.Free;
895
  end;
896
end;
897
898
function TDECHash.CalcFile(const FileName: string; Format: TDECFormatClass;
899
                           const OnProgress:TDECProgressEvent): RawByteString;
900
var
901
  Hash: TBytes;
902
begin
903
  CalcFile(FileName, Hash, OnProgress);
904
  Result := BytesToRawString(ValidFormat(Format).Encode(Hash));
905
end;
906
907
{$IFDEF DELPHIORBCB}
908
procedure ModuleUnload(Instance: NativeUInt);
909
var // automaticaly deregistration/releasing
910
  i: Integer;
911
  Items: TArray<TPair<Int64, TDECCLass>>;
912
begin
913
  // C++Builder calls this function for our own module, but we destroy the ClassList
914
  // in that case in the finalization section anyway.
915
  if (Instance <> HInstance) and
916
     (TDECHash.ClassList <> nil) and (TDECHash.ClassList.Count > 0) then
917
  begin
918
    Items := TDECHash.ClassList.ToArray;
919
    for i := Length(Items) - 1 downto 0 do
920
    begin
921
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
922
        TDECHash.ClassList.Remove(Items[i].Key);
923
    end;
924
  end;
925
end;
926
{$ENDIF DELPHIORBCB}
927
928
initialization
929
  // Code for packages and dynamic extension of the class registration list
930
  {$IFDEF DELPHIORBCB}
931
  AddModuleUnloadProc(ModuleUnload);
932
  {$ENDIF DELPHIORBCB}
933
934
  TDECHash.ClassList := TDECClassList.Create;
935
936
finalization
937
  // Ensure no further instances of classes registered in the registration list
938
  // are possible through the list after this unit has been unloaded by unloding
939
  // the package this unit is in
940
  {$IFDEF DELPHIORBCB}
941
  RemoveModuleUnloadProc(ModuleUnload);
942
  {$ENDIF DELPHIORBCB}
943
944
  TDECHash.ClassList.Free;
945
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashBase (D:\Projekte\DECGitMaster\Source\DECHashBase.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHashBase.pas

+
Number of lines covered186
Number of lines with code gen216
Line coverage86%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Base unit for all the hash algorithms. The key deviation algorithms are
20
///   in the DECHashAUthentication unit and hash algorithms which can process
21
///   messages with a length specified in bits instead of whole bytes have
22
///   to inherit from TDECHashBit
23
/// </summary>
24
unit DECHashBase;
25
26
interface
27
28
{$INCLUDE DECOptions.inc}
29
30
uses
31
  {$IFDEF FPC}
32
  SysUtils, Classes,
33
  {$ELSE}
34
  System.SysUtils, System.Classes, Generics.Collections,
35
  {$ENDIF}
36
  DECBaseClass, DECFormatBase, DECUtil, DECTypes, DECHashInterface;
37
38
type
39
  /// <summary>
40
  ///   Meta class for all the hashing classes in order to support the
41
  ///   registration mechanism
42
  /// </summary>
43
  TDECHashClass = class of TDECHash;
44
45
  /// <summary>
46
  ///   Base class for all hash algorithm implementation classes
47
  /// </summary>
48
  {$IFDEF FPC}
49
  TDECHash = class(TDECObject)  // does not find methods of the interface as it
50
                                // searches for AnsiString instead of RawByteString
51
                                // and thus does not find that
52
  {$ELSE}
53
  TDECHash = class(TDECObject, IDECHash)
54
  {$ENDIF}
55
  strict private
56
    /// <summary>
57
    ///   Raises an EDECHashException hash algorithm not initialized exception
58
    /// </summary>
59
    procedure RaiseHashNotInitialized;
60
61
    /// <summary>
62
    ///   Returns the current value of the padding byte used to fill up data
63
    ///   if necessary
64
    /// </summary>
65
    function GetPaddingByte: Byte;
66
    /// <summary>
67
    ///   Changes the value of the padding byte used to fill up data
68
    ///   if necessary
69
    /// </summary>
70
    /// <param name="Value">
71
    ///   New value for the padding byte
72
    /// </param>
73
    procedure SetPaddingByte(Value: Byte);
74
  strict protected
75
    FCount       : array[0..7] of UInt32;
76
    /// <summary>
77
    ///   Internal processing buffer
78
    /// </summary>
79
    FBuffer      : PByteArray;
80
    /// <summary>
81
    ///   Size of the internal processing buffer in byte
82
    /// </summary>
83
    FBufferSize  : Integer;
84
    /// <summary>
85
    ///   Position the algorithm is currently at in the processing buffer
86
    /// </summary>
87
    FBufferIndex : Integer;
88
    /// <summary>
89
    ///   Value used to fill up data
90
    /// </summary>
91
    FPaddingByte : Byte;
92
    /// <summary>
93
    ///   Last byte of the message to be hashed if the algorithm is capable of
94
    ///   processing bit sized message lengths and FFinalBitLen > 0.
95
    /// </summary>
96
    FFinalByte   : UInt8;
97
    /// <summary>
98
    ///   Setting this to a number of bits allows to process messages which have
99
    ///   a length which is not a exact multiple of bytes.
100
    /// </summary>
101
    FFinalByteLength : UInt8;
102
    /// <summary>
103
    ///   This abstract method has to be overridden by each concrete hash algorithm
104
    ///   to initialize the necessary data structures.
105
    /// </summary>
106
    procedure DoInit; virtual; abstract;
107
108
    procedure DoTransform(Buffer: PUInt32Array); virtual; abstract;
109
    /// <summary>
110
    ///   This abstract method has to be overridden by each concrete hash algorithm
111
    ///   to finalize the calculation of a hash value over the data passed.
112
    /// </summary>
113
    procedure DoDone; virtual; abstract;
114
    /// <summary>
115
    ///   Adds the value of 8*Add to the value (which is interpreted as an
116
    ///   8*32 bit unsigned integer array. The carry is taken care of.
117
    /// </summary>
118
    /// <param name="Value">
119
    ///   Value which is incremented
120
    /// </param>
121
    /// <param name="Add">
122
    ///   Value (which is being multiplied by 8) by which to increment Value
123
    /// </param>
124
    /// <remarks>
125
    ///   Raises an EDECHashException overflow error if the last operation has
126
    ///   set the carry flag
127
    /// </remarks>
128
    procedure Increment8(var Value; Add: UInt32);
129
    /// <summary>
130
    ///   Raises an EDECHashException overflow error
131
    /// </summary>
132
    procedure RaiseHashOverflowError;
133
134
    /// <summary>
135
    ///   Overwrite internally used processing buffers to make it harder to steal
136
    ///   any data from memory.
137
    /// </summary>
138
    procedure SecureErase; virtual;
139
140
    /// <summary>
141
    ///   Returns the calculated hash value
142
    /// </summary>
143
    function Digest: PByteArray; virtual; abstract;
144
  public
145
    /// <summary>
146
    ///   Initialize internal fields
147
    /// </summary>
148
    constructor Create; override;
149
    /// <summary>
150
    ///   Fees internal resources
151
    /// </summary>
152
    destructor Destroy; override;
153
    /// <summary>
154
    ///   Generic initialization of internal data structures. Additionally the
155
    ///   internal algorithm specific (because of being overridden by each
156
    ///   hash algorithm) DoInit method is called. Needs to be called before
157
    ///   each hash calculation.
158
    /// </summary>
159
    procedure Init;
160
    /// <summary>
161
    ///   Processes one chunk of data to be hashed.
162
    /// </summary>
163
    /// <param name="Data">
164
    ///   Data on which the hash value shall be calculated on
165
    /// </param>
166
    /// <param name="DataSize">
167
    ///   Size of the data in bytes
168
    /// </param>
169
    procedure Calc(const Data; DataSize: Integer); virtual;
170
171
    /// <summary>
172
    ///   Frees dynamically allocated buffers in a way which safeguards agains
173
    ///   data stealing by other methods which afterwards might allocate this memory.
174
    ///   Additionaly calls the algorithm spercific DoDone method.
175
    /// </summary>
176
    procedure Done;
177
178
    /// <summary>
179
    ///   Returns the calculated hash value as byte array
180
    /// </summary>
181
    function DigestAsBytes: TBytes; virtual;
182
183
    /// <summary>
184
    ///   Returns the calculated hash value as formatted Unicode string
185
    /// </summary>
186
    /// <param name="Format">
187
    ///   Optional parameter. If a formatting class is being passed the formatting
188
    ///   will be applied to the returned string. Otherwise no formatting is
189
    ///   being used.
190
    /// </param>
191
    /// <returns>
192
    ///   Hash value of the last performed hash calculation
193
    /// </returns>
194
    /// <remarks>
195
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
196
    ///   being returned, otherwise the conversion into the Unicode string might
197
    ///   result in strange characters in the returned result.
198
    /// </remarks>
199
    function DigestAsString(Format: TDECFormatClass = nil): string;
200
    /// <summary>
201
    ///   Returns the calculated hash value as formatted RawByteString
202
    /// </summary>
203
    /// <param name="Format">
204
    ///   Optional parameter. If a formatting class is being passed the formatting
205
    ///   will be applied to the returned string. Otherwise no formatting is
206
    ///   being used.
207
    /// </param>
208
    /// <returns>
209
    ///   Hash value of the last performed hash calculation
210
    /// </returns>
211
    /// <remarks>
212
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
213
    ///   being returned, otherwise the conversion into the RawByteString might
214
    ///   result in strange characters in the returned result.
215
    /// </remarks>
216
    function DigestAsRawByteString(Format: TDECFormatClass = nil): RawByteString;
217
218
    /// <summary>
219
    ///   Gives the length of the calculated hash value in byte. Needs to be
220
    ///   overridden in concrete hash implementations.
221
    /// </summary>
222
    class function DigestSize: UInt32; virtual;
223
    /// <summary>
224
    ///   Gives the length of the blocks the hash value is being calculated
225
    ///   on in byte. Needs to be overridden in concrete hash implementations.
226
    /// </summary>
227
    class function BlockSize: UInt32; virtual;
228
229
    /// <summary>
230
    ///   List of registered DEC classes. Key is the Identity of the class.
231
    /// </summary>
232
    class var ClassList : TDECClassList;
233
234
    /// <summary>
235
    ///   Tries to find a class type by its name
236
    /// </summary>
237
    /// <param name="Name">
238
    ///   Name to look for in the list
239
    /// </param>
240
    /// <returns>
241
    ///   Returns the class type if found. if it could not be found a
242
    ///   EDECClassNotRegisteredException will be thrown
243
    /// </returns>
244
    class function ClassByName(const Name: string): TDECHashClass;
245
246
    /// <summary>
247
    ///   Tries to find a class type by its numeric identity DEC assigned to it.
248
    ///   Useful for file headers, so they can easily encode numerically which
249
    ///   cipher class was being used.
250
    /// </summary>
251
    /// <param name="Identity">
252
    ///   Identity to look for
253
    /// </param>
254
    /// <returns>
255
    ///   Returns the class type of the class with the specified identity value
256
    ///   or throws an EDECClassNotRegisteredException exception if no class
257
    ///   with the given identity has been found
258
    /// </returns>
259
    class function ClassByIdentity(Identity: Int64): TDECHashClass;
260
261
    /// <summary>
262
    ///   Detects whether the given hash class is one particularily suited
263
    ///   for storing hashes of passwords
264
    /// </summary>
265
    /// <returns>
266
    ///   true if it's a hash class specifically designed to store password
267
    ///   hashes, false for ordinary hash algorithms.
268
    /// </returns>
269
    class function IsPasswordHash: Boolean; virtual;
270
271
    // hash calculation wrappers
272
273
    /// <summary>
274
    ///   Calculates the hash value (digest) for a given buffer
275
    /// </summary>
276
    /// <param name="Buffer">
277
    ///   Untyped buffer the hash shall be calculated for
278
    /// </param>
279
    /// <param name="BufferSize">
280
    ///   Size of the buffer in byte
281
    /// </param>
282
    /// <returns>
283
    ///   Byte array with the calculated hash value
284
    /// </returns>
285
    function CalcBuffer(const Buffer; BufferSize: Integer): TBytes;
286
    /// <summary>
287
    ///   Calculates the hash value (digest) for a given buffer
288
    /// </summary>
289
    /// <param name="Data">
290
    ///   The TBytes array the hash shall be calculated on
291
    /// </param>
292
    /// <returns>
293
    ///   Byte array with the calculated hash value
294
    /// </returns>
295
    function CalcBytes(const Data: TBytes): TBytes;
296
297
    /// <summary>
298
    ///   Calculates the hash value (digest) for a given unicode string
299
    /// </summary>
300
    /// <param name="Value">
301
    ///   The string the hash shall be calculated on
302
    /// </param>
303
    /// <param name="Format">
304
    ///   Formatting class from DECFormat. The formatting will be applied to the
305
    ///   returned digest value. This parameter is optional.
306
    /// </param>
307
    /// <returns>
308
    ///   string with the calculated hash value
309
    /// </returns>
310
    function CalcString(const Value: string; Format: TDECFormatClass = nil): string; overload;
311
    /// <summary>
312
    ///   Calculates the hash value (digest) for a given rawbytestring
313
    /// </summary>
314
    /// <param name="Value">
315
    ///   The string the hash shall be calculated on
316
    /// </param>
317
    /// <param name="Format">
318
    ///   Formatting class from DECFormat. The formatting will be applied to the
319
    ///   returned digest value. This parameter is optional.
320
    /// </param>
321
    /// <returns>
322
    ///   string with the calculated hash value
323
    /// </returns>
324
    function CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString; overload;
325
326
    /// <summary>
327
    ///   Calculates the hash value over a given stream of bytes
328
    /// </summary>
329
    /// <param name="Stream">
330
    ///   Memory or file stream over which the hash value shall be calculated.
331
    ///   The stream must be assigned. The hash value will always be calculated
332
    ///   from the current position of the stream.
333
    /// </param>
334
    /// <param name="Size">
335
    ///   Number of bytes within the stream over which to calculate the hash value
336
    /// </param>
337
    /// <param name="HashResult">
338
    ///   In this byte array the calculated hash value will be returned
339
    /// </param>
340
    /// <param name="OnProgress">
341
    ///   Optional callback routine. It can be used to display the progress of
342
    ///   the operation.
343
    /// </param>
344
    procedure CalcStream(const Stream: TStream; Size: Int64; var HashResult: TBytes;
345
                         const OnProgress:TDECProgressEvent = nil); overload;
346
    /// <summary>
347
    ///   Calculates the hash value over a givens stream of bytes
348
    /// </summary>
349
    /// <param name="Stream">
350
    ///   Memory or file stream over which the hash value shall be calculated.
351
    ///   The stream must be assigned. The hash value will always be calculated
352
    ///   from the current position of the stream.
353
    /// </param>
354
    /// <param name="Size">
355
    ///   Number of bytes within the stream over which to calculate the hash value
356
    /// </param>
357
    /// <param name="Format">
358
    ///   Optional formatting class. The formatting of that will be applied to
359
    ///   the returned hash value.
360
    /// </param>
361
    /// <param name="OnProgress">
362
    ///   Optional callback routine. It can be used to display the progress of
363
    ///   the operation.
364
    /// </param>
365
    /// <returns>
366
    ///   Hash value over the bytes in the stream, formatted with the formatting
367
    ///   passed as format parameter, if used.
368
    /// </returns>
369
    function CalcStream(const Stream: TStream; Size: Int64; Format: TDECFormatClass = nil;
370
                        const OnProgress:TDECProgressEvent = nil): RawByteString; overload;
371
372
    /// <summary>
373
    ///   Calculates the hash value over the contents of a given file
374
    /// </summary>
375
    /// <param name="FileName">
376
    ///   Path and name of the file to be processed
377
    /// </param>
378
    /// <param name="HashResult">
379
    ///   Here the resulting hash value is being returned as byte array
380
    /// </param>
381
    /// <param name="OnProgress">
382
    ///   Optional callback. If being used the hash calculation will call it from
383
    ///   time to time to return the current progress of the operation
384
    /// </param>
385
    procedure CalcFile(const FileName: string; var HashResult: TBytes;
386
                       const OnProgress:TDECProgressEvent = nil); overload;
387
    /// <summary>
388
    ///   Calculates the hash value over the contents of a given file
389
    /// </summary>
390
    /// <param name="FileName">
391
    ///   Path and name of the file to be processed
392
    /// </param>
393
    /// <param name="Format">
394
    ///   Optional parameter: Formatting class. If being used the formatting is
395
    ///   being applied to the returned string with the calculated hash value
396
    /// </param>
397
    /// <param name="OnProgress">
398
    ///   Optional callback. If being used the hash calculation will call it from
399
    ///   time to time to return the current progress of the operation
400
    /// </param>
401
    /// <returns>
402
    ///   Calculated hash value as RawByteString.
403
    /// </returns>
404
    /// <remarks>
405
    ///   We recommend to use a formatting which results in 7 bit ASCII chars
406
    ///   being returned, otherwise the conversion into the RawByteString might
407
    ///   result in strange characters in the returned result.
408
    /// </remarks>
409
    function CalcFile(const FileName: string; Format: TDECFormatClass = nil;
410
                      const OnProgress:TDECProgressEvent = nil): RawByteString; overload;
411
412
    /// <summary>
413
    ///   Defines the byte used in the KDF methods to padd the end of the data
414
    ///   if the length of the data cannot be divided by required size for the
415
    ///   hash algorithm without reminder
416
    /// </summary>
417
    property PaddingByte: Byte read GetPaddingByte write SetPaddingByte;
418
  end;
419
420
/// <summary>
421
///   Returns the passed hash class type if it is not nil. Otherwise the
422
///   class type class set per SetDefaultHashClass is being returned. If using
423
///   the DECHash unit THash_SHA256 is registered in the initialization, otherwise
424
///   nil might be returned!
425
/// </summary>
426
/// <param name="HashClass">
427
///   Class type of a hash class like THash_SHA256. If nil is passed the one set
428
///   as default is returned.
429
/// </param>
430
/// <returns>
431
///   Passed class type or defined default hash class type, depending on
432
///   HashClass parameter value.
433
/// </returns>
434
function ValidHash(HashClass: TDECHashClass = nil): TDECHashClass;
435
436
/// <summary>
437
///   Defines which cipher class to return by ValidCipher if passing nil to that
438
/// </summary>
439
/// <param name="HashClass">
440
///   Class type of a hash class to return by ValidHash if passing nil to
441
///   that one. This parameter should not be nil!
442
/// </param>
443
procedure SetDefaultHashClass(HashClass: TDECHashClass);
444
445
implementation
446
447
resourcestring
448
  sHashNotInitialized     = 'Hash must be initialized';
449
  sRaiseHashOverflowError = 'Hash Overflow: Too many bits processed';
450
  sHashNoDefault          = 'No default hash has been registered';
451
452
var
453
  /// <summary>
454
  ///   Hash class returned by ValidHash if nil is passed as parameter to it
455
  /// </summary>
456
  FDefaultHashClass: TDECHashClass = nil;
457
458
function ValidHash(HashClass: TDECHashClass): TDECHashClass;
459
begin
460
  if Assigned(HashClass) then
461
    Result := HashClass
462
  else
463
    Result := FDefaultHashClass;
464
465
  if not Assigned(Result) then
466
    raise EDECHashException.CreateRes(@sHashNoDefault);
467
end;
468
469
procedure SetDefaultHashClass(HashClass: TDECHashClass);
470
begin
471
  Assert(Assigned(HashClass), 'Do not set a nil default hash class!');
472
473
  FDefaultHashClass := HashClass;
474
end;
475
476
{ TDECHash }
477
478
constructor TDECHash.Create;
479
begin
480
  inherited;
481
  FBufferSize := 0;
482
  FBuffer     := nil;
483
end;
484
485
destructor TDECHash.Destroy;
486
begin
487
  SecureErase;
488
  FreeMem(FBuffer, FBufferSize);
489
490
  inherited Destroy;
491
end;
492
493
procedure TDECHash.SecureErase;
494
begin
495
  ProtectBuffer(Digest^, DigestSize);
496
  if FBuffer = nil then
497
    ProtectBuffer(FBuffer^, FBufferSize);
498
end;
499
500
procedure TDECHash.Init;
501
begin
502
  FBufferIndex := 0;
503
504
  if (FBuffer = nil) or (UInt32(FBufferSize) <> BlockSize) then
505
    begin
506
      FBufferSize := BlockSize;
507
      // ReallocMemory instead of ReallocMem due to C++ compatibility as per 10.1 help
508
      // It is necessary to reallocate the buffer as FreeMem in destructor wouldn't
509
      // accept a nil pointer on some platforms.
510
      FBuffer := ReallocMemory(FBuffer, FBufferSize);
511
    end;
512
513
  FillChar(FBuffer^, FBufferSize, 0);
514
  FillChar(FCount, SizeOf(FCount), 0);
515
  DoInit;
516
end;
517
518
class function TDECHash.IsPasswordHash: Boolean;
519
begin
520
  // has to be overwritten by the base class for password hash algorithms
521
  result := false;
522
end;
523
524
procedure TDECHash.Done;
525
begin
526
  DoDone;
527
end;
528
529
function TDECHash.GetPaddingByte: Byte;
530
begin
531
  Result := FPaddingByte;
532
end;
533
534
procedure TDECHash.Increment8(var Value; Add: UInt32);
535
// Value := Value + 8 * Add
536
// Value is array[0..7] of UInt32
537
{ TODO -oNormanNG -cCodeReview : !!Unbedingt noch einmal prüfen, ob das wirklich so alles stimmt!!
538
Mein Versuch der Umsetzung von Increment8 in ASM.
539
Die Implementierung zuvor hat immer Zugriffsverletzungen ausgelöst.
540
Vermutung: die alte Implementierung lag ursprünglich ausserhalb der Klasse und wurde später
541
in die Klasse verschoben. Dabei verändert sich aber die Nutzung der Register, da zusätzlich
542
der SELF-Parameter in EAX übergeben wird. Beim Schreiben nach auf Value wurde dann in die Instanz (Self)
543
geschrieben -> peng
544
}
545
{$IF defined(X86ASM) or defined(X64ASM)}
546
  {$IFDEF X86ASM}
547
  //   type TData = packed array[0..7] of UInt32;  8x32bit
548
  //   TypeOf Param "Value" = TData
549
  //
550
  //   EAX = Self
551
  //   EDX = Pointer to "Value"
552
  //   ECX = Value of "ADD"
553
  register; // redundant but informative
554
  asm
555
      LEA EAX,[ECX*8]              //                      EAX := ADD * 8
556
      SHR ECX,29                   //                      29bit nach rechts schieben, 3bit beiben stehen
557
      ADD [EDX].DWord[00],EAX      // add [edx], eax       TData(Value)[00] := TData(Value)[00] + EAX
558
      ADC [EDX].DWord[04],ECX      // adc [edx+$04], ecx   TData(Value)[04] := TData(Value)[04] + ECX + Carry
559
      ADC [EDX].DWord[08],0        // adc [edx+$08], 0     TData(Value)[08] := TData(Value)[08] + 0 + Carry
560
      ADC [EDX].DWord[12],0        // adc [edx+$0c], 0     TData(Value)[12] := TData(Value)[12] + 0 + Carry
561
      ADC [EDX].DWord[16],0        // adc [edx+$10], 0     TData(Value)[16] := TData(Value)[16] + 0 + Carry
562
      ADC [EDX].DWord[20],0        // adc [edx+$14], 0     TData(Value)[20] := TData(Value)[20] + 0 + Carry
563
      ADC [EDX].DWord[24],0        // adc [edx+$18], 0     TData(Value)[24] := TData(Value)[24] + 0 + Carry
564
      ADC [EDX].DWord[28],0        // adc [edx+$1c], 0     TData(Value)[28] := TData(Value)[28] + 0 + Carry
565
      JC  RaiseHashOverflowError
566
  end;
567
  {$ENDIF !X86ASM}
568
  {$IFDEF X64ASM}
569
  //   type TData = packed array[0..3] of UInt64;  4x64bit
570
  //   TypeOf Param "Value" = TData
571
  //
572
  //   RCX = Self
573
  //   RDX = Pointer to "Value"
574
  //   R8D = Value of "ADD"
575
  register; // redundant but informative
576
  asm
577
    SHL R8, 3                      // R8 := Add * 8       the caller writes to R8D what automatically clears the high DWORD of R8
578
    ADD QWORD PTR [RDX     ], R8   // add [rdx], r8       TData(Value)[00] := TData(Value)[00] + R8
579
    ADD QWORD PTR [RDX +  8], 0    // add [rdx+$08], 0    TData(Value)[08] := TData(Value)[08] + 0 + Carry
580
    ADD QWORD PTR [RDX + 16], 0    // add [rdx+$10], 0    TData(Value)[16] := TData(Value)[16] + 0 + Carry
581
    ADD QWORD PTR [RDX + 24], 0    // add [rdx+$18], 0    TData(Value)[24] := TData(Value)[24] + 0 + Carry
582
    JC RaiseHashOverflowError;
583
  end;
584
  {$ENDIF !X64ASM}
585
{$ELSE PUREPASCAL}
586
type
587
  TData = packed array[0..7] of UInt32;
588
589
var
590
  HiBits: UInt32;
591
  Add8: UInt32;
592
  Carry: Boolean;
593
594
  procedure AddC(var Value: UInt32; const Add: UInt32; var Carry: Boolean);
595
  begin
596
    if Carry then
597
    begin
598
      Value := Value + 1;
599
      Carry := (Value = 0); // we might cause another overflow by adding the carry bit
600
    end
601
    else
602
      Carry := False;
603
604
    Value := Value + Add;
605
    Carry := Carry or (Value < Add); // set Carry Flag on overflow or keep it if already set
606
  end;
607
608
begin
609
  HiBits := Add shr 29; // Save most significant 3 bits in case an overflow occurs
610
  Add8 := Add * 8;
611
  Carry := False;
612
613
  AddC(TData(Value)[0], Add8, Carry);
614
  AddC(TData(Value)[1], HiBits, Carry);
615
  AddC(TData(Value)[2], 0, Carry);
616
  AddC(TData(Value)[3], 0, Carry);
617
  AddC(TData(Value)[4], 0, Carry);
618
  AddC(TData(Value)[5], 0, Carry);
619
  AddC(TData(Value)[6], 0, Carry);
620
  AddC(TData(Value)[7], 0, Carry);
621
622
  if Carry then
623
    RaiseHashOverflowError;
624
end;
625
{$IFEND PUREPASCAL}
626
627
procedure TDECHash.RaiseHashOverflowError;
628
begin
629
  raise EDECHashException.CreateRes(@sRaiseHashOverflowError);
630
end;
631
632
procedure TDECHash.SetPaddingByte(Value: Byte);
633
begin
634
  FPaddingByte := Value;
635
end;
636
637
procedure TDECHash.RaiseHashNotInitialized;
638
begin
639
  raise EDECHashException.CreateRes(@sHashNotInitialized);
640
end;
641
642
procedure TDECHash.Calc(const Data; DataSize: Integer);
643
var
644
  Remain: Integer;
645
  Value: PByte;
646
begin
647
  if DataSize <= 0 then
648
    Exit;
649
650
  if not Assigned(FBuffer) then
651
    RaiseHashNotInitialized;
652
653
  Increment8(FCount, DataSize);
654
  Value := @TByteArray(Data)[0];
655
656
  if FBufferIndex > 0 then
657
  begin
658
    Remain := FBufferSize - FBufferIndex;
659
    if DataSize < Remain then
660
    begin
661
      Move(Value^, FBuffer[FBufferIndex], DataSize);
662
      Inc(FBufferIndex, DataSize);
663
      Exit;
664
    end;
665
    Move(Value^, FBuffer[FBufferIndex], Remain);
666
    DoTransform(Pointer(FBuffer));
667
    Dec(DataSize, Remain);
668
    Inc(Value, Remain);
669
  end;
670
671
  while DataSize >= FBufferSize do
672
  begin
673
    DoTransform(Pointer(Value));
674
    Inc(Value, FBufferSize);
675
    Dec(DataSize, FBufferSize);
676
  end;
677
678
  Move(Value^, FBuffer^, DataSize);
679
  FBufferIndex := DataSize;
680
end;
681
682
function TDECHash.DigestAsBytes: TBytes;
683
begin
684
  SetLength(Result, DigestSize);
685
  if DigestSize <> 0 then
686
    Move(Digest^, Result[0], DigestSize);
687
end;
688
689
function TDECHash.DigestAsRawByteString(Format: TDECFormatClass): RawByteString;
690
begin
691
  Result := BytesToRawString(ValidFormat(Format).Encode(DigestAsBytes));
692
end;
693
694
function TDECHash.DigestAsString(Format: TDECFormatClass): string;
695
begin
696
  Result := StringOf(ValidFormat(Format).Encode(DigestAsBytes));
697
end;
698
699
class function TDECHash.DigestSize: UInt32;
700
begin
701
  // C++ does not support virtual static functions thus the base cannot be
702
  // marked 'abstract'. This is our workaround:
703
  raise EDECAbstractError.Create(GetShortClassName);
704
end;
705
706
class function TDECHash.BlockSize: UInt32;
707
begin
708
  // C++ does not support virtual static functions thus the base cannot be
709
  // marked 'abstract'. This is our workaround:
710
  raise EDECAbstractError.Create(GetShortClassName);
711
end;
712
713
function TDECHash.CalcBuffer(const Buffer; BufferSize: Integer): TBytes;
714
var
715
  DataPtr: PByte;
716
begin
717
  Init;
718
719
  if (FFinalByteLength = 0) or (BufferSize = 0) then
720
    Calc(Buffer, BufferSize)
721
  else
722
    if (BufferSize > 0) then
723
    begin
724
      // Remember last byte as this might be required for padding for such
725
      // algorithms which have some automatic padding logic
726
      DataPtr := @Buffer;
727
      Inc(DataPtr, BufferSize - 1);
728
      FFinalByte := DataPtr^;
729
730
      // Last byte is incomplete so do not process normally
731
      Calc(Buffer, BufferSize-1);
732
    end;
733
734
  Done;
735
  Result := DigestAsBytes;
736
end;
737
738
function TDECHash.CalcBytes(const Data: TBytes): TBytes;
739
begin
740
  SetLength(Result, 0);
741
  if Length(Data) > 0 then
742
    Result := CalcBuffer(Data[0], Length(Data))
743
  else
744
    Result := CalcBuffer(Data, Length(Data));
745
end;
746
747
function TDECHash.CalcString(const Value: string; Format: TDECFormatClass): string;
748
var
749
  Size : Integer;
750
  Data : TBytes;
751
begin
752
  Result := '';
753
  if Length(Value) > 0 then
754
  begin
755
    {$IF CompilerVersion >= 24.0}
756
    Size   := Length(Value) * SizeOf(Value[low(Value)]);
757
    Data   := CalcBuffer(Value[low(Value)], Size);
758
    {$ELSE}
759
    Size   := Length(Value) * SizeOf(Value[1]);
760
    Data   := CalcBuffer(Value[1], Size);
761
    {$IFEND}
762
    Result := StringOf(ValidFormat(Format).Encode(Data));
763
  end
764
  else
765
  begin
766
    SetLength(Data, 0);
767
    result := StringOf(ValidFormat(Format).Encode(CalcBuffer(Data, 0)));
768
  end;
769
end;
770
771
function TDECHash.CalcString(const Value: RawByteString; Format: TDECFormatClass): RawByteString;
772
var
773
  Buf : TBytes;
774
begin
775
  Result := '';
776
  if Length(Value) > 0 then
777
    {$IF CompilerVersion >= 24.0}
778
    result := BytesToRawString(
779
                ValidFormat(Format).Encode(
780
                  CalcBuffer(Value[low(Value)],
781
                             Length(Value) * SizeOf(Value[low(Value)]))))
782
    {$ELSE}
783
    result := BytesToRawString(
784
                ValidFormat(Format).Encode(
785
                  CalcBuffer(Value[1],
786
                             Length(Value) * SizeOf(Value[1]))))
787
    {$IFEND}
788
  else
789
  begin
790
    SetLength(Buf, 0);
791
    Result := BytesToRawString(ValidFormat(Format).Encode(CalcBuffer(Buf, 0)));
792
  end;
793
end;
794
795
class function TDECHash.ClassByIdentity(Identity: Int64): TDECHashClass;
796
begin
797
  Result := TDECHashClass(ClassList.ClassByIdentity(Identity));
798
end;
799
800
class function TDECHash.ClassByName(const Name: string): TDECHashClass;
801
begin
802
  Result := TDECHashClass(ClassList.ClassByName(Name));
803
end;
804
805
procedure TDECHash.CalcStream(const Stream: TStream; Size: Int64;
806
  var HashResult: TBytes; const OnProgress:TDECProgressEvent);
807
var
808
  Buffer: TBytes;
809
  Bytes: Integer;
810
  Max, Pos: Int64;
811
begin
812
  Assert(Assigned(Stream), 'Stream to calculate hash on is not assigned');
813
814
  Max := 0;
815
  SetLength(HashResult, 0);
816
  try
817
    Init;
818
819
    if StreamBufferSize <= 0 then
820
      StreamBufferSize := 8192;
821
822
    Pos := Stream.Position;
823
824
    if Size < 0 then
825
      Size := Stream.Size - Pos;
826
827
    // Last byte is incomplete so it mustn't be processed
828
    if (FFinalByteLength > 0) then
829
      Dec(Size);
830
831
    Max      := Pos + Size;
832
833
    if Assigned(OnProgress) then
834
      OnProgress(Max, 0, Started);
835
836
    Bytes := StreamBufferSize mod FBufferSize;
837
838
    if Bytes = 0 then
839
      Bytes := StreamBufferSize
840
    else
841
      Bytes := StreamBufferSize + FBufferSize - Bytes;
842
843
    if Bytes > Size then
844
      SetLength(Buffer, Size)
845
    else
846
      SetLength(Buffer, Bytes);
847
848
    while Size > 0 do
849
    begin
850
      Bytes := Length(Buffer);
851
      if Bytes > Size then
852
        Bytes := Size;
853
      Stream.ReadBuffer(Buffer[0], Bytes);
854
      Calc(Buffer[0], Bytes);
855
      Dec(Size, Bytes);
856
      Inc(Pos, Bytes);
857
858
      if Assigned(OnProgress) then
859
        OnProgress(Max, Pos, Processing);
860
    end;
861
862
    // Last byte is incomplete but algorithm may need its value for padding
863
    if (FFinalByteLength > 0) then
864
      Stream.ReadBuffer(FFinalByte, 1);
865
866
    Done;
867
    HashResult := DigestAsBytes;
868
  finally
869
    ProtectBytes(Buffer);
870
    if Assigned(OnProgress) then
871
      OnProgress(Max, Max, Finished);
872
  end;
873
end;
874
875
function TDECHash.CalcStream(const Stream: TStream; Size: Int64;
876
  Format: TDECFormatClass; const OnProgress:TDECProgressEvent): RawByteString;
877
var
878
  Hash: TBytes;
879
begin
880
  CalcStream(Stream, Size, Hash, OnProgress);
881
  Result := BytesToRawString(ValidFormat(Format).Encode(Hash));
882
end;
883
884
procedure TDECHash.CalcFile(const FileName: string; var HashResult: TBytes;
885
                            const OnProgress:TDECProgressEvent);
886
var
887
  S: TFileStream;
888
begin
889
  SetLength(HashResult, 0);
890
  S := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
891
  try
892
    CalcStream(S, S.Size, HashResult, OnProgress);
893
  finally
894
    S.Free;
895
  end;
896
end;
897
898
function TDECHash.CalcFile(const FileName: string; Format: TDECFormatClass;
899
                           const OnProgress:TDECProgressEvent): RawByteString;
900
var
901
  Hash: TBytes;
902
begin
903
  CalcFile(FileName, Hash, OnProgress);
904
  Result := BytesToRawString(ValidFormat(Format).Encode(Hash));
905
end;
906
907
{$IFDEF DELPHIORBCB}
908
procedure ModuleUnload(Instance: NativeUInt);
909
var // automaticaly deregistration/releasing
910
  i: Integer;
911
  Items: TArray<TPair<Int64, TDECCLass>>;
912
begin
913
  // C++Builder calls this function for our own module, but we destroy the ClassList
914
  // in that case in the finalization section anyway.
915
  if (Instance <> HInstance) and
916
     (TDECHash.ClassList <> nil) and (TDECHash.ClassList.Count > 0) then
917
  begin
918
    Items := TDECHash.ClassList.ToArray;
919
    for i := Length(Items) - 1 downto 0 do
920
    begin
921
      if FindClassHInstance(Items[i].Value) = HINST(HInstance) then
922
        TDECHash.ClassList.Remove(Items[i].Key);
923
    end;
924
  end;
925
end;
926
{$ENDIF DELPHIORBCB}
927
928
initialization
929
  // Code for packages and dynamic extension of the class registration list
930
  {$IFDEF DELPHIORBCB}
931
  AddModuleUnloadProc(ModuleUnload);
932
  {$ENDIF DELPHIORBCB}
933
934
  TDECHash.ClassList := TDECClassList.Create;
935
936
finalization
937
  // Ensure no further instances of classes registered in the registration list
938
  // are possible through the list after this unit has been unloaded by unloding
939
  // the package this unit is in
940
  {$IFDEF DELPHIORBCB}
941
  RemoveModuleUnloadProc(ModuleUnload);
942
  {$ENDIF DELPHIORBCB}
943
944
  TDECHash.ClassList.Free;
945
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECHashBitBase(DECHashBitBase.pas).html b/Unit Tests/CodeCoverage/U/DECHashBitBase(DECHashBitBase.pas).html similarity index 98% rename from Unit Tests/CodeCoverage/DECHashBitBase(DECHashBitBase.pas).html rename to Unit Tests/CodeCoverage/U/DECHashBitBase(DECHashBitBase.pas).html index d32ccf1b..d79aad9f 100644 --- a/Unit Tests/CodeCoverage/DECHashBitBase(DECHashBitBase.pas).html +++ b/Unit Tests/CodeCoverage/U/DECHashBitBase(DECHashBitBase.pas).html @@ -1,134 +1,134 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECHashBitBase (D:\Projekte\DECGitMaster\Source\DECHashBitBase.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECHashBitBase.pas

-
Number of lines covered8
Number of lines with code gen8
Line coverage100%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Base unit for all the hash algorithms which can operate on bit sized
20
///   messsages as well.
21
/// </summary>
22
unit DECHashBitBase;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECHashAuthentication, DECHashInterface, DECTypes;
35
36
type
37
  /// <summary>
38
  ///   Base class for all hash algorithms which can operate on bit sized
39
  ///   messsages as well.
40
  /// </summary>
41
  TDECHashBit = class(TDECHashAuthentication, IDECHashBitsized)
42
  strict private
43
    /// <summary>
44
    ///   Returns the number of bits the final byte of the message consists of
45
    /// </summary>
46
    function GetFinalByteLength: UInt8;
47
    /// <summary>
48
    ///   Sets the number of bits the final byte of the message consists of
49
    /// </summary>
50
    procedure SetFinalByteLength(const Value: UInt8);
51
  public
52
    /// <summary>
53
    ///   Setting this to a number of bits allows to process messages which have
54
    ///   a length which is not a exact multiple of bytes.
55
    /// </summary>
56
    property FinalByteLength : UInt8
57
      read   GetFinalByteLength
58
      write  SetFinalByteLength;
59
  end;
60
61
implementation
62
63
resourcestring
64
  /// <summary>
65
  ///   Exception message for the exception raised when a to long final byte
66
  ///   length is specified.
67
  /// </summary>
68
  rFinalByteLengthTooBig = 'Final byte length too big (%0:d) must be 0..7';
69
70
{ TDECHashBit }
71
72
function TDECHashBit.GetFinalByteLength: UInt8;
73
begin
74
  Result := FFinalByteLength;
75
end;
76
77
procedure TDECHashBit.SetFinalByteLength(const Value: UInt8);
78
begin
79
  // if length of final byte is 8 this value shall be 0 as the normal specification
80
  // of message length is good enough then.
81
82
  // commented out as otherwise the unit test for the exception won't properly work
83
  // and we cannot situatively turn on/off assertion generation
84
  //  Assert(Value < 8, 'Length of final byte too big, a byte has 8 bit maximum');
85
86
  if (Value > 7) then
87
    raise EDECHashException.CreateFmt(rFinalByteLengthTooBig, [Value]);
88
89
  FFinalByteLength := Value;
90
end;
91
92
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECHashBitBase (D:\Projekte\DECGitMaster\Source\DECHashBitBase.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECHashBitBase.pas

+
Number of lines covered8
Number of lines with code gen8
Line coverage100%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Base unit for all the hash algorithms which can operate on bit sized
20
///   messsages as well.
21
/// </summary>
22
unit DECHashBitBase;
23
24
interface
25
26
{$INCLUDE DECOptions.inc}
27
28
uses
29
  {$IFDEF FPC}
30
  SysUtils, Classes,
31
  {$ELSE}
32
  System.SysUtils, System.Classes,
33
  {$ENDIF}
34
  DECHashAuthentication, DECHashInterface, DECTypes;
35
36
type
37
  /// <summary>
38
  ///   Base class for all hash algorithms which can operate on bit sized
39
  ///   messsages as well.
40
  /// </summary>
41
  TDECHashBit = class(TDECHashAuthentication, IDECHashBitsized)
42
  strict private
43
    /// <summary>
44
    ///   Returns the number of bits the final byte of the message consists of
45
    /// </summary>
46
    function GetFinalByteLength: UInt8;
47
    /// <summary>
48
    ///   Sets the number of bits the final byte of the message consists of
49
    /// </summary>
50
    procedure SetFinalByteLength(const Value: UInt8);
51
  public
52
    /// <summary>
53
    ///   Setting this to a number of bits allows to process messages which have
54
    ///   a length which is not a exact multiple of bytes.
55
    /// </summary>
56
    property FinalByteLength : UInt8
57
      read   GetFinalByteLength
58
      write  SetFinalByteLength;
59
  end;
60
61
implementation
62
63
resourcestring
64
  /// <summary>
65
  ///   Exception message for the exception raised when a to long final byte
66
  ///   length is specified.
67
  /// </summary>
68
  rFinalByteLengthTooBig = 'Final byte length too big (%0:d) must be 0..7';
69
70
{ TDECHashBit }
71
72
function TDECHashBit.GetFinalByteLength: UInt8;
73
begin
74
  Result := FFinalByteLength;
75
end;
76
77
procedure TDECHashBit.SetFinalByteLength(const Value: UInt8);
78
begin
79
  // if length of final byte is 8 this value shall be 0 as the normal specification
80
  // of message length is good enough then.
81
82
  // commented out as otherwise the unit test for the exception won't properly work
83
  // and we cannot situatively turn on/off assertion generation
84
  //  Assert(Value < 8, 'Length of final byte too big, a byte has 8 bit maximum');
85
86
  if (Value > 7) then
87
    raise EDECHashException.CreateFmt(rFinalByteLengthTooBig, [Value]);
88
89
  FFinalByteLength := Value;
90
end;
91
92
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECRandom(DECRandom.pas).html b/Unit Tests/CodeCoverage/U/DECRandom(DECRandom.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECRandom(DECRandom.pas).html rename to Unit Tests/CodeCoverage/U/DECRandom(DECRandom.pas).html index a76f3606..e6992848 100644 --- a/Unit Tests/CodeCoverage/DECRandom(DECRandom.pas).html +++ b/Unit Tests/CodeCoverage/U/DECRandom(DECRandom.pas).html @@ -1,500 +1,500 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECRandom (D:\Projekte\DECGitMaster\Source\DECRandom.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECRandom.pas

-
Number of lines covered91
Number of lines with code gen94
Line coverage96%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Secure Pseudo Random Number Generator based on Yarrow. If used without
20
///   doing anything special for initialization a repeatable generator will be
21
///   initialized always using the same start value.
22
/// </summary>
23
unit DECRandom;
24
25
interface
26
27
{$INCLUDE DECOptions.inc}
28
29
uses
30
  {$IFDEF FPC}
31
  SysUtils,
32
  {$ELSE}
33
  System.SysUtils,
34
  {$ENDIF}
35
  DECHashBase, DECHash;
36
37
/// <summary>
38
///   Create a seed for the random number generator from system time and
39
///   PerformanceCounter.
40
/// </summary>
41
/// <remarks>
42
///   Avoid initializing the seed using this fuction if you can as it is not
43
///   really secure. Use RandomBuffer instead and provide user generated input
44
///   as Buffer value but ensure that this is not uniform e.g. not a buffer only
45
///   containing $00 all over or something like this.
46
/// </remarks>
47
/// <returns>
48
///   Created seed value
49
/// </returns>
50
function RandomSystemTime: Int64;
51
52
/// <summary>
53
///   Fills the provided buffer with random values. If the DoRandomBuffer
54
///   variable is assigned (which is usually the case because DoBuffer is
55
///   assigned to it in initialization of this unit) the hash based algorithm
56
///   in DoBuffer will be used, otherwise the weaker one in DoRndBuffer.
57
/// </summary>
58
/// <param name="Buffer">
59
///   Buffer to be filled with random values
60
/// </param>
61
/// <param name="Size">
62
///   Size of the buffer in byte
63
/// </param>
64
procedure RandomBuffer(out Buffer; Size: Integer);
65
66
/// <summary>
67
///   Creates a buffer of the specified size filled with random bytes
68
/// </summary>
69
/// <param name="Size">
70
///   Size of the buffer to be created in bytes
71
/// </param>
72
/// <returns>
73
///   Buffer of the specified size in bytes filled with random data
74
/// </returns>
75
function RandomBytes(Size: Integer): TBytes;
76
/// <summary>
77
///   Creates a RawByteString of the specified length filled with random bytes.
78
/// </summary>
79
/// <remarks>
80
///   This function is deprecated. Better use RandomBytes where ever possible!
81
/// </remarks>
82
/// <param name="Size">
83
///   Length of the string to be created in bytes
84
/// </param>
85
/// <returns>
86
///   String of the specified length in bytes filled with random data
87
/// </returns>
88
function RandomRawByteString(Size: Integer): RawByteString; deprecated 'please use RandomBytes now';
89
/// <summary>
90
///   Creates a random UInt32 value
91
/// </summary>
92
/// <returns>
93
///   Random value
94
/// </returns>
95
function RandomLong: UInt32;
96
97
/// <summary>
98
///   If the default value of the global DoRandomSeed variable is kept, this
99
///   procedure initializes a repeatable or a non repeatable seed,
100
///   depending on the parameters specified. Otherwise the alternative DoRandomSeed
101
///   implementation is called. The FRndSeed variable is initialized with the
102
///   seed value generated.
103
/// </summary>
104
/// <param name="Buffer">
105
///   If a repeatable seed is to be initialized, the contents of this buffer is
106
///   a parameter to the seed generation and a buffer containing at least Size
107
///   bytes needs to be passed.
108
/// </param>
109
/// <param name="Size">
110
///   If Size is > 0 a repeatable seed is initialized. If Size is 0 the
111
///   internal seed variable FRndSeed is initialized with 0. If Size is
112
///   less than 0 the internal FRndSeed variable is initialized with
113
///   a value derrived from current system time/performance counter using
114
///   RandomSystemTime.
115
/// </param>
116
procedure RandomSeed(const Buffer; Size: Integer); overload;
117
/// <summary>
118
///   Creates a seed (starting) value for the random number generator. If the
119
///   default value of the global DoRandomSeed variable is kept, a non repeatable
120
///   seed based on RandomSystemTime (based on system time and potentially
121
///   QueryPerformanceCounter) is created and assigned to the internal FRndSeed
122
///   variable.
123
/// </summary>
124
procedure RandomSeed; overload;
125
126
type
127
  /// <summary>
128
  ///   Type for the random buffer generation
129
  /// </summary>
130
  /// <param name="Buffer">
131
  ///   Buffer in which the random bytes shall be written. The buffer needs to
132
  ///   exist and must be of at least Size bytes length.
133
  /// </param>
134
  /// <param name="Size">
135
  ///   Length of the buffer to be filled in Byte.
136
  /// </param>
137
  TRandomBufferProc = procedure(out Buffer; Size: Integer) register;
138
139
  /// <summary>
140
  ///   Type for an initialization procedure for a seed
141
  /// </summary>
142
  /// <param name="Buffer">
143
  ///   Buffer from which the random bytes shall be taken. The buffer needs to
144
  ///   exist and must be of at least Size bytes length.
145
  /// </param>
146
  /// <param name="Size">
147
  ///   Length of the buffer in Byte.
148
  /// </param>
149
  TRandomSeedProc = procedure(const Buffer; Size: Integer); register;
150
151
var
152
  // secure PRNG initialized by this unit
153
154
  /// <summary>
155
  ///   This variable allows overriding the random number generation procedure
156
  ///   used for data buffers. By default it is initialized to point to DoBuffer,
157
  ///   which is a DECRandom internal procedure.
158
  /// </summary>
159
  /// <param name="Buffer">
160
  ///   Buffer in which the random bytes shall be written. The buffer needs to
161
  ///   exist and must be of at least Size bytes length.
162
  /// </param>
163
  /// <param name="Size">
164
  ///   Length of the buffer to be filled in Byte.
165
  /// </param>
166
  DoRandomBuffer: TRandomBufferProc = nil;
167
168
  /// <summary>
169
  ///   This variable allows overriding the seed value generation procedure.
170
  ///   By default it is initialized with the DECRandom internal procedure DoSeed.
171
  /// </summary>
172
  DoRandomSeed: TRandomSeedProc = nil;
173
  /// <summary>
174
  ///   Defines the hash-algorithm used for generatin seed values or hashed buffers
175
  /// </summary>
176
  RandomClass: TDECHashClass = THash_SHA256;
177
178
implementation
179
180
uses
181
  {$IFDEF DELPHI_2010_UP}
182
    System.Diagnostics
183
  {$ELSE}
184
    {$IFDEF FPC}
185
      {$IFDEF MSWINDOWS}
186
      Windows
187
      {$ELSE}
188
      LclIntf
189
      {$ENDIF}
190
    {$ELSE}
191
    Winapi.Windows
192
    {$ENDIF}
193
  {$ENDIF}
194
  ;
195
196
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
197
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
198
199
var
200
  /// <summary>
201
  ///   A sequence of values which over time will be random by replacing each
202
  ///   value with a derived value generated by applying the hash algorithm.
203
  /// </summary>
204
  FRegister: array[0..127] of Byte;
205
  /// <summary>
206
  ///   The hash used to generate derived values stored in FRegister is calculated
207
  ///   using this counter as input and this counter additionaly defines the index
208
  ///   in FRegister where the value will be stored. The counter can assume higher
209
  ///   values than the lngth of FRegister. The index calculation takes this into
210
  ///   account.
211
  /// </summary>
212
  FCounter: Cardinal;
213
  /// <summary>
214
  ///   Object instance for the hash generation algorithm used. The object is
215
  ///   created the first time it is needed and freed in finalization of this unit.
216
  /// </summary>
217
  FHash: TDECHash = nil;
218
219
  /// <summary>
220
  ///   Seed value, stores the last generated random number as start value for
221
  ///   the next randum number generation
222
  /// </summary>
223
  FRndSeed: Cardinal = 0;
224
225
function RandomSystemTime: Int64;
226
type
227
  TInt64Rec = packed record
228
    Lo, Hi: UInt32;
229
  end;
230
var
231
  {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)}
232
  SysTime: TSystemTime;
233
  {$ELSE}
234
  Hour, Minute, Second, Milliseconds: Word;
235
  {$IFEND}
236
  Counter: TInt64Rec;
237
  Time: Cardinal;
238
begin
239
  {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)}
240
  GetSystemTime(SysTime);
241
  Time := ((Cardinal(SysTime.wHour) * 60 + SysTime.wMinute) * 60 + SysTime.wSecond) * 1000 + SysTime.wMilliseconds;
242
  QueryPerformanceCounter(Int64(Counter));
243
  {$ELSE}
244
  DecodeTime(Now, Hour, Minute, Second, Milliseconds);
245
  Time := ((Cardinal(Hour) * 60 + Minute) * 60 + Second) * 1000 + Milliseconds;
246
    {$IFDEF DELPHI_2010_UP}
247
    Int64(Counter) := TStopWatch.GetTimeStamp; // uses System.Diagnostics
248
    {$ELSE}
249
      {$IFDEF FPC}
250
      Int64(Counter) := LclIntf.GetTickCount * 10000 {TicksPerMillisecond}; // uses LclIntf
251
      {$ENDIF}
252
    {$ENDIF}
253
  {$IFEND}
254
255
  Result := Time + Counter.Hi;
256
  Inc(Result, Ord(Result < Time)); // add "carry flag"
257
  Inc(Result, Counter.Lo);
258
end;
259
260
/// <summary>
261
///   Simplistic algorithm for filling a buffer with random numbers. This
262
///   algorithm is directly dependant on the seed passed, which by internal use
263
///   will normally be FRndSeed.
264
/// </summary>
265
/// <param name="Seed">
266
///   Seed value as starting value
267
/// </param>
268
/// <param name="Buffer">
269
///   Buffer which shall be filled with random bytes
270
/// </param>
271
/// <param name="Size">
272
///   Size of the buffer in byte
273
/// </param>
274
/// <returns>
275
///   New seed value after calculating the random number for the last byte in
276
///   the buffer.
277
/// </returns>
278
function DoRndBuffer(Seed: Cardinal; out Buffer; Size: Integer): Cardinal;
279
// comparable to Delphi Random() function
280
var
281
  P: PByte;
282
begin
283
  Result := Seed;
284
  P := @Buffer;
285
  if P <> nil then
286
  begin
287
    while Size > 0 do
288
    begin
289
      Result := Result * $08088405 + 1;
290
      P^ := Byte(Result shr 24);
291
      Inc(P);
292
      Dec(Size);
293
    end;
294
  end;
295
end;
296
297
procedure RandomBuffer(out Buffer; Size: Integer);
298
begin
299
  if Assigned(DoRandomBuffer) then
300
    DoRandomBuffer(Buffer, Size)
301
  else
302
    FRndSeed := DoRndBuffer(FRndSeed, Buffer, Size);
303
end;
304
305
function RandomBytes(Size: Integer): TBytes;
306
begin
307
  SetLength(Result, Size);
308
  RandomBuffer(Result[0], Size);
309
end;
310
311
function RandomRawByteString(Size: Integer): RawByteString;
312
begin
313
  SetLength(Result, Size);
314
  {$IF CompilerVersion >= 24.0}
315
  RandomBuffer(Result[Low(Result)], Size);
316
  {$ELSE}
317
  RandomBuffer(Result[1], Size);
318
  {$IFEND}
319
end;
320
321
function RandomLong: UInt32;
322
begin
323
  RandomBuffer(Result, SizeOf(Result));
324
end;
325
326
procedure RandomSeed(const Buffer; Size: Integer);
327
begin
328
  if Assigned(DoRandomSeed) then
329
    DoRandomSeed(Buffer, Size)
330
  else
331
  begin
332
    if Size >= 0 then
333
    begin
334
      FRndSeed := 0;
335
      while Size > 0 do
336
      begin
337
        Dec(Size);
338
        FRndSeed := (FRndSeed shl 8 + FRndSeed shr 24) xor TByteArray(Buffer)[Size]
339
      end;
340
    end
341
    else
342
      FRndSeed := RandomSystemTime;
343
  end;
344
end;
345
346
procedure RandomSeed;
347
begin
348
  RandomSeed('', -1);
349
end;
350
351
/// <summary>
352
///   Generate one random byte and modify FCounter and FRegister
353
/// </summary>
354
function DoGenerateRandomByte: Byte;
355
begin
356
  if FHash = nil then
357
    FHash := RandomClass.Create;
358
359
  FHash.Init;
360
  FHash.Calc(FCounter, SizeOf(FCounter));
361
  FHash.Calc(FRegister, SizeOf(FRegister));
362
  FHash.Done;
363
364
  FRegister[FCounter mod SizeOf(FRegister)] := FRegister[FCounter mod SizeOf(FRegister)] xor FHash.DigestAsBytes[0];
365
  Inc(FCounter);
366
367
  Result := FHash.DigestAsBytes[1]; // no real predictable dependency to above FHash.Digest[0] !
368
end;
369
370
procedure DoBuffer(out Buffer; Size: Integer);
371
var
372
  i: Integer;
373
begin
374
  for i := 0 to Size - 1 do
375
    TByteArray(Buffer)[i] := DoGenerateRandomByte;
376
end;
377
378
/// <summary>
379
///   Initializes a repeatable or a non repeatable seed, depending on the
380
///   parameters specified
381
/// </summary>
382
/// <param name="Buffer">
383
///   If a repeatable seed is to be initialized, the contents of this buffer is
384
///   a parameter to the seed generation and a buffer containing at least Size
385
///   bytes needs to be passed.
386
/// </param>
387
/// <param name="Size">
388
///   If Size is >= 0 a repeatable seed is initialized, otherwise a non repeatable
389
///   based on system time
390
/// </param>
391
procedure DoSeed(const Buffer; Size: Integer);
392
var
393
  i: Integer;
394
  t: Cardinal;
395
begin
396
  if Size >= 0 then
397
  begin
398
    // initalize a repeatable Seed
399
    FillChar(FRegister, SizeOf(FRegister), 0);
400
    FCounter := 0;
401
    for i := 0 to Size - 1 do
402
      FRegister[i mod SizeOf(FRegister)] := FRegister[i mod SizeOf(FRegister)] xor TByteArray(Buffer)[i];
403
  end
404
  else
405
  begin
406
    // ! ATTENTION !
407
    // Initalizes a non-repeatable Seed based on Timers, which is not secure
408
    // and inpredictable. The user should call RandomSeed(Data, SizeOf(Data))
409
    // instead, where Date contains i.e. user generated (Human) input.
410
    t := RandomSystemTime;
411
    for i := Low(FRegister) to High(FRegister) do
412
    begin
413
      FRegister[i] := FRegister[i] xor Byte(t);
414
      t := t shl 1 or t shr 31;
415
    end;
416
  end;
417
  for i := Low(FRegister) to High(FRegister) do
418
    DoGenerateRandomByte;
419
  FCounter := 0;
420
end;
421
422
procedure DoInit;
423
begin
424
  DoRandomBuffer := DoBuffer;
425
  DoRandomSeed := DoSeed;
426
  DoSeed('', 0);
427
end;
428
429
procedure DoDone;
430
begin
431
  try
432
    if FHash <> nil then
433
      FHash.Free;
434
  except
435
  end;
436
  FHash := nil;
437
438
  FreeAndNil(FHash);
439
  FillChar(FRegister, SizeOf(FRegister), 0);
440
  FCounter := 0;
441
end;
442
443
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
444
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
445
446
initialization
447
  {$DEFINE AUTO_PRNG}
448
449
  DoInit;
450
451
  {$IFDEF AUTO_PRNG} // see DECOptions.inc
452
  RandomSeed;
453
  {$ENDIF AUTO_PRNG}
454
455
finalization
456
  DoDone;
457
458
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECRandom (D:\Projekte\DECGitMaster\Source\DECRandom.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECRandom.pas

+
Number of lines covered91
Number of lines with code gen94
Line coverage96%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Secure Pseudo Random Number Generator based on Yarrow. If used without
20
///   doing anything special for initialization a repeatable generator will be
21
///   initialized always using the same start value.
22
/// </summary>
23
unit DECRandom;
24
25
interface
26
27
{$INCLUDE DECOptions.inc}
28
29
uses
30
  {$IFDEF FPC}
31
  SysUtils,
32
  {$ELSE}
33
  System.SysUtils,
34
  {$ENDIF}
35
  DECHashBase, DECHash;
36
37
/// <summary>
38
///   Create a seed for the random number generator from system time and
39
///   PerformanceCounter.
40
/// </summary>
41
/// <remarks>
42
///   Avoid initializing the seed using this fuction if you can as it is not
43
///   really secure. Use RandomBuffer instead and provide user generated input
44
///   as Buffer value but ensure that this is not uniform e.g. not a buffer only
45
///   containing $00 all over or something like this.
46
/// </remarks>
47
/// <returns>
48
///   Created seed value
49
/// </returns>
50
function RandomSystemTime: Int64;
51
52
/// <summary>
53
///   Fills the provided buffer with random values. If the DoRandomBuffer
54
///   variable is assigned (which is usually the case because DoBuffer is
55
///   assigned to it in initialization of this unit) the hash based algorithm
56
///   in DoBuffer will be used, otherwise the weaker one in DoRndBuffer.
57
/// </summary>
58
/// <param name="Buffer">
59
///   Buffer to be filled with random values
60
/// </param>
61
/// <param name="Size">
62
///   Size of the buffer in byte
63
/// </param>
64
procedure RandomBuffer(out Buffer; Size: Integer);
65
66
/// <summary>
67
///   Creates a buffer of the specified size filled with random bytes
68
/// </summary>
69
/// <param name="Size">
70
///   Size of the buffer to be created in bytes
71
/// </param>
72
/// <returns>
73
///   Buffer of the specified size in bytes filled with random data
74
/// </returns>
75
function RandomBytes(Size: Integer): TBytes;
76
/// <summary>
77
///   Creates a RawByteString of the specified length filled with random bytes.
78
/// </summary>
79
/// <remarks>
80
///   This function is deprecated. Better use RandomBytes where ever possible!
81
/// </remarks>
82
/// <param name="Size">
83
///   Length of the string to be created in bytes
84
/// </param>
85
/// <returns>
86
///   String of the specified length in bytes filled with random data
87
/// </returns>
88
function RandomRawByteString(Size: Integer): RawByteString; deprecated 'please use RandomBytes now';
89
/// <summary>
90
///   Creates a random UInt32 value
91
/// </summary>
92
/// <returns>
93
///   Random value
94
/// </returns>
95
function RandomLong: UInt32;
96
97
/// <summary>
98
///   If the default value of the global DoRandomSeed variable is kept, this
99
///   procedure initializes a repeatable or a non repeatable seed,
100
///   depending on the parameters specified. Otherwise the alternative DoRandomSeed
101
///   implementation is called. The FRndSeed variable is initialized with the
102
///   seed value generated.
103
/// </summary>
104
/// <param name="Buffer">
105
///   If a repeatable seed is to be initialized, the contents of this buffer is
106
///   a parameter to the seed generation and a buffer containing at least Size
107
///   bytes needs to be passed.
108
/// </param>
109
/// <param name="Size">
110
///   If Size is > 0 a repeatable seed is initialized. If Size is 0 the
111
///   internal seed variable FRndSeed is initialized with 0. If Size is
112
///   less than 0 the internal FRndSeed variable is initialized with
113
///   a value derrived from current system time/performance counter using
114
///   RandomSystemTime.
115
/// </param>
116
procedure RandomSeed(const Buffer; Size: Integer); overload;
117
/// <summary>
118
///   Creates a seed (starting) value for the random number generator. If the
119
///   default value of the global DoRandomSeed variable is kept, a non repeatable
120
///   seed based on RandomSystemTime (based on system time and potentially
121
///   QueryPerformanceCounter) is created and assigned to the internal FRndSeed
122
///   variable.
123
/// </summary>
124
procedure RandomSeed; overload;
125
126
type
127
  /// <summary>
128
  ///   Type for the random buffer generation
129
  /// </summary>
130
  /// <param name="Buffer">
131
  ///   Buffer in which the random bytes shall be written. The buffer needs to
132
  ///   exist and must be of at least Size bytes length.
133
  /// </param>
134
  /// <param name="Size">
135
  ///   Length of the buffer to be filled in Byte.
136
  /// </param>
137
  TRandomBufferProc = procedure(out Buffer; Size: Integer) register;
138
139
  /// <summary>
140
  ///   Type for an initialization procedure for a seed
141
  /// </summary>
142
  /// <param name="Buffer">
143
  ///   Buffer from which the random bytes shall be taken. The buffer needs to
144
  ///   exist and must be of at least Size bytes length.
145
  /// </param>
146
  /// <param name="Size">
147
  ///   Length of the buffer in Byte.
148
  /// </param>
149
  TRandomSeedProc = procedure(const Buffer; Size: Integer); register;
150
151
var
152
  // secure PRNG initialized by this unit
153
154
  /// <summary>
155
  ///   This variable allows overriding the random number generation procedure
156
  ///   used for data buffers. By default it is initialized to point to DoBuffer,
157
  ///   which is a DECRandom internal procedure.
158
  /// </summary>
159
  /// <param name="Buffer">
160
  ///   Buffer in which the random bytes shall be written. The buffer needs to
161
  ///   exist and must be of at least Size bytes length.
162
  /// </param>
163
  /// <param name="Size">
164
  ///   Length of the buffer to be filled in Byte.
165
  /// </param>
166
  DoRandomBuffer: TRandomBufferProc = nil;
167
168
  /// <summary>
169
  ///   This variable allows overriding the seed value generation procedure.
170
  ///   By default it is initialized with the DECRandom internal procedure DoSeed.
171
  /// </summary>
172
  DoRandomSeed: TRandomSeedProc = nil;
173
  /// <summary>
174
  ///   Defines the hash-algorithm used for generatin seed values or hashed buffers
175
  /// </summary>
176
  RandomClass: TDECHashClass = THash_SHA256;
177
178
implementation
179
180
uses
181
  {$IFDEF DELPHI_2010_UP}
182
    System.Diagnostics
183
  {$ELSE}
184
    {$IFDEF FPC}
185
      {$IFDEF MSWINDOWS}
186
      Windows
187
      {$ELSE}
188
      LclIntf
189
      {$ENDIF}
190
    {$ELSE}
191
    Winapi.Windows
192
    {$ENDIF}
193
  {$ENDIF}
194
  ;
195
196
{$IFOPT Q+}{$DEFINE RESTORE_OVERFLOWCHECKS}{$Q-}{$ENDIF}
197
{$IFOPT R+}{$DEFINE RESTORE_RANGECHECKS}{$R-}{$ENDIF}
198
199
var
200
  /// <summary>
201
  ///   A sequence of values which over time will be random by replacing each
202
  ///   value with a derived value generated by applying the hash algorithm.
203
  /// </summary>
204
  FRegister: array[0..127] of Byte;
205
  /// <summary>
206
  ///   The hash used to generate derived values stored in FRegister is calculated
207
  ///   using this counter as input and this counter additionaly defines the index
208
  ///   in FRegister where the value will be stored. The counter can assume higher
209
  ///   values than the lngth of FRegister. The index calculation takes this into
210
  ///   account.
211
  /// </summary>
212
  FCounter: Cardinal;
213
  /// <summary>
214
  ///   Object instance for the hash generation algorithm used. The object is
215
  ///   created the first time it is needed and freed in finalization of this unit.
216
  /// </summary>
217
  FHash: TDECHash = nil;
218
219
  /// <summary>
220
  ///   Seed value, stores the last generated random number as start value for
221
  ///   the next randum number generation
222
  /// </summary>
223
  FRndSeed: Cardinal = 0;
224
225
function RandomSystemTime: Int64;
226
type
227
  TInt64Rec = packed record
228
    Lo, Hi: UInt32;
229
  end;
230
var
231
  {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)}
232
  SysTime: TSystemTime;
233
  {$ELSE}
234
  Hour, Minute, Second, Milliseconds: Word;
235
  {$IFEND}
236
  Counter: TInt64Rec;
237
  Time: Cardinal;
238
begin
239
  {$IF defined(MSWINDOWS) and not defined(DELPHI_2010_UP)}
240
  GetSystemTime(SysTime);
241
  Time := ((Cardinal(SysTime.wHour) * 60 + SysTime.wMinute) * 60 + SysTime.wSecond) * 1000 + SysTime.wMilliseconds;
242
  QueryPerformanceCounter(Int64(Counter));
243
  {$ELSE}
244
  DecodeTime(Now, Hour, Minute, Second, Milliseconds);
245
  Time := ((Cardinal(Hour) * 60 + Minute) * 60 + Second) * 1000 + Milliseconds;
246
    {$IFDEF DELPHI_2010_UP}
247
    Int64(Counter) := TStopWatch.GetTimeStamp; // uses System.Diagnostics
248
    {$ELSE}
249
      {$IFDEF FPC}
250
      Int64(Counter) := LclIntf.GetTickCount * 10000 {TicksPerMillisecond}; // uses LclIntf
251
      {$ENDIF}
252
    {$ENDIF}
253
  {$IFEND}
254
255
  Result := Time + Counter.Hi;
256
  Inc(Result, Ord(Result < Time)); // add "carry flag"
257
  Inc(Result, Counter.Lo);
258
end;
259
260
/// <summary>
261
///   Simplistic algorithm for filling a buffer with random numbers. This
262
///   algorithm is directly dependant on the seed passed, which by internal use
263
///   will normally be FRndSeed.
264
/// </summary>
265
/// <param name="Seed">
266
///   Seed value as starting value
267
/// </param>
268
/// <param name="Buffer">
269
///   Buffer which shall be filled with random bytes
270
/// </param>
271
/// <param name="Size">
272
///   Size of the buffer in byte
273
/// </param>
274
/// <returns>
275
///   New seed value after calculating the random number for the last byte in
276
///   the buffer.
277
/// </returns>
278
function DoRndBuffer(Seed: Cardinal; out Buffer; Size: Integer): Cardinal;
279
// comparable to Delphi Random() function
280
var
281
  P: PByte;
282
begin
283
  Result := Seed;
284
  P := @Buffer;
285
  if P <> nil then
286
  begin
287
    while Size > 0 do
288
    begin
289
      Result := Result * $08088405 + 1;
290
      P^ := Byte(Result shr 24);
291
      Inc(P);
292
      Dec(Size);
293
    end;
294
  end;
295
end;
296
297
procedure RandomBuffer(out Buffer; Size: Integer);
298
begin
299
  if Assigned(DoRandomBuffer) then
300
    DoRandomBuffer(Buffer, Size)
301
  else
302
    FRndSeed := DoRndBuffer(FRndSeed, Buffer, Size);
303
end;
304
305
function RandomBytes(Size: Integer): TBytes;
306
begin
307
  SetLength(Result, Size);
308
  RandomBuffer(Result[0], Size);
309
end;
310
311
function RandomRawByteString(Size: Integer): RawByteString;
312
begin
313
  SetLength(Result, Size);
314
  {$IF CompilerVersion >= 24.0}
315
  RandomBuffer(Result[Low(Result)], Size);
316
  {$ELSE}
317
  RandomBuffer(Result[1], Size);
318
  {$IFEND}
319
end;
320
321
function RandomLong: UInt32;
322
begin
323
  RandomBuffer(Result, SizeOf(Result));
324
end;
325
326
procedure RandomSeed(const Buffer; Size: Integer);
327
begin
328
  if Assigned(DoRandomSeed) then
329
    DoRandomSeed(Buffer, Size)
330
  else
331
  begin
332
    if Size >= 0 then
333
    begin
334
      FRndSeed := 0;
335
      while Size > 0 do
336
      begin
337
        Dec(Size);
338
        FRndSeed := (FRndSeed shl 8 + FRndSeed shr 24) xor TByteArray(Buffer)[Size]
339
      end;
340
    end
341
    else
342
      FRndSeed := RandomSystemTime;
343
  end;
344
end;
345
346
procedure RandomSeed;
347
begin
348
  RandomSeed('', -1);
349
end;
350
351
/// <summary>
352
///   Generate one random byte and modify FCounter and FRegister
353
/// </summary>
354
function DoGenerateRandomByte: Byte;
355
begin
356
  if FHash = nil then
357
    FHash := RandomClass.Create;
358
359
  FHash.Init;
360
  FHash.Calc(FCounter, SizeOf(FCounter));
361
  FHash.Calc(FRegister, SizeOf(FRegister));
362
  FHash.Done;
363
364
  FRegister[FCounter mod SizeOf(FRegister)] := FRegister[FCounter mod SizeOf(FRegister)] xor FHash.DigestAsBytes[0];
365
  Inc(FCounter);
366
367
  Result := FHash.DigestAsBytes[1]; // no real predictable dependency to above FHash.Digest[0] !
368
end;
369
370
procedure DoBuffer(out Buffer; Size: Integer);
371
var
372
  i: Integer;
373
begin
374
  for i := 0 to Size - 1 do
375
    TByteArray(Buffer)[i] := DoGenerateRandomByte;
376
end;
377
378
/// <summary>
379
///   Initializes a repeatable or a non repeatable seed, depending on the
380
///   parameters specified
381
/// </summary>
382
/// <param name="Buffer">
383
///   If a repeatable seed is to be initialized, the contents of this buffer is
384
///   a parameter to the seed generation and a buffer containing at least Size
385
///   bytes needs to be passed.
386
/// </param>
387
/// <param name="Size">
388
///   If Size is >= 0 a repeatable seed is initialized, otherwise a non repeatable
389
///   based on system time
390
/// </param>
391
procedure DoSeed(const Buffer; Size: Integer);
392
var
393
  i: Integer;
394
  t: Cardinal;
395
begin
396
  if Size >= 0 then
397
  begin
398
    // initalize a repeatable Seed
399
    FillChar(FRegister, SizeOf(FRegister), 0);
400
    FCounter := 0;
401
    for i := 0 to Size - 1 do
402
      FRegister[i mod SizeOf(FRegister)] := FRegister[i mod SizeOf(FRegister)] xor TByteArray(Buffer)[i];
403
  end
404
  else
405
  begin
406
    // ! ATTENTION !
407
    // Initalizes a non-repeatable Seed based on Timers, which is not secure
408
    // and inpredictable. The user should call RandomSeed(Data, SizeOf(Data))
409
    // instead, where Date contains i.e. user generated (Human) input.
410
    t := RandomSystemTime;
411
    for i := Low(FRegister) to High(FRegister) do
412
    begin
413
      FRegister[i] := FRegister[i] xor Byte(t);
414
      t := t shl 1 or t shr 31;
415
    end;
416
  end;
417
  for i := Low(FRegister) to High(FRegister) do
418
    DoGenerateRandomByte;
419
  FCounter := 0;
420
end;
421
422
procedure DoInit;
423
begin
424
  DoRandomBuffer := DoBuffer;
425
  DoRandomSeed := DoSeed;
426
  DoSeed('', 0);
427
end;
428
429
procedure DoDone;
430
begin
431
  try
432
    if FHash <> nil then
433
      FHash.Free;
434
  except
435
  end;
436
  FHash := nil;
437
438
  FreeAndNil(FHash);
439
  FillChar(FRegister, SizeOf(FRegister), 0);
440
  FCounter := 0;
441
end;
442
443
{$IFDEF RESTORE_RANGECHECKS}{$R+}{$ENDIF}
444
{$IFDEF RESTORE_OVERFLOWCHECKS}{$Q+}{$ENDIF}
445
446
initialization
447
  {$DEFINE AUTO_PRNG}
448
449
  DoInit;
450
451
  {$IFDEF AUTO_PRNG} // see DECOptions.inc
452
  RandomSeed;
453
  {$ENDIF AUTO_PRNG}
454
455
finalization
456
  DoDone;
457
458
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECTypes(DECTypes.pas).html b/Unit Tests/CodeCoverage/U/DECTypes(DECTypes.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECTypes(DECTypes.pas).html rename to Unit Tests/CodeCoverage/U/DECTypes(DECTypes.pas).html index 4d5eca1f..d4e8af34 100644 --- a/Unit Tests/CodeCoverage/DECTypes(DECTypes.pas).html +++ b/Unit Tests/CodeCoverage/U/DECTypes(DECTypes.pas).html @@ -1,233 +1,233 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECTypes (D:\Projekte\DECGitMaster\Source\DECTypes.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECTypes.pas

-
Number of lines covered0
Number of lines with code gen3
Line coverage0%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Declarations of various datatypes, some of those have not been
20
///   declared for certain platforms but are used in DEC and some do change
21
///   meanings between platforms like PLongWord where LongWord is 32 bit on
22
///   Windows and Android but 64 bit on iOS for instance
23
/// </summary>
24
unit DECTypes;
25
26
interface
27
28
{$INCLUDE DECOptions.inc}
29
30
uses
31
  {$IFDEF FPC}
32
  SysUtils;
33
  {$ELSE}
34
  System.SysUtils;
35
  {$ENDIF}
36
37
type
38
  {$IFNDEF FPC}
39
    {$IF CompilerVersion <= 20}
40
    // In D2009 NativeInt was not properly treated by the compiler under certain
41
    // conditions. See: http://qc.embarcadero.com/wc/qcmain.aspx?d=71292
42
    NativeInt = Integer;
43
    {$IFEND}
44
  {$ENDIF}
45
46
  PUInt32Array = ^TUInt32Array;
47
  TUInt32Array = array[0..1023] of UInt32;
48
49
  /// <summary>
50
  ///   Replacement for PLongWord, as LongWord changes between platforms from
51
  ///   32 to 64 bit
52
  /// </summary>
53
  PUInt32 = ^UINT32;
54
55
  PUInt64Array = ^TUInt64Array;
56
  TUInt64Array = array[0..1023] of UInt64;
57
58
  /// <summary>
59
  ///   List of standard bit lengths defined in the official standard for some
60
  ///  algorithm property which allows a variable bit length.
61
  /// </summary>
62
  TStandardBitLengths = array of UInt16;
63
64
  /// <summary>
65
  ///   Reason for calling the progress event
66
  /// </summary>
67
  TDECProgressState = (Started, Processing, Finished);
68
69
  /// <summary>
70
  ///   Event type used by several hash- and cipher methods to display their
71
  ///   progress. It can be implemented as regular method, procedure and as
72
  ///   anonymous method, means: in place.
73
  /// </summary>
74
  /// <param name="Size">
75
  ///   Number of bytes to process. For files this is usually the file size. For
76
  ///   streams this can be less than the stream size if the stream is not being
77
  ///   processed from the beginning.
78
  /// </param>
79
  /// <param name="Pos">
80
  ///   Position within size in byte. For streams this may be a position
81
  ///   relative to the starting position for processing.
82
  /// </param>
83
  TDECProgressEvent = reference to procedure(Size, Pos: Int64; State: TDECProgressState);
84
85
  // Exception Classes
86
87
  /// <summary>
88
  ///   Base exception class for all DEC specific exceptions,
89
  /// </summary>
90
  EDECException       = class(Exception)
91
  public
92
    {$IFDEF FMXTranslateableExceptions}
93
    /// <summary>
94
    ///   Creates the exception instance and makes the exception message translateable
95
    ///   via Firemonkey's TLang translation mechanism. Normal ressource strings
96
    ///   are not translated in the same way on mobile platforms as they are on
97
    ///   Win32/Win64.
98
    /// </summary>
99
    /// <param name="Msg">
100
    ///   String with a failure message to be output or logged
101
    /// </param>
102
    constructor Create(const Msg: string); reintroduce; overload;
103
    /// <summary>
104
    ///   Creates the exception instance and makes the exception message translateable
105
    ///   via Firemonkey's TLang translation mechanism. Normal ressource strings
106
    ///   are not translated in the same way on mobile platforms as they are on
107
    ///   Win32/Win64.
108
    /// </summary>
109
    /// <param name="Msg">
110
    ///   String with a failure message to be output or logged
111
    /// </param>
112
    /// <param name="Args">
113
    ///   Array with values for the parameters specified in the format string
114
    /// </param>
115
    constructor CreateFmt(const Msg: string;
116
                          const Args: array of const); reintroduce; overload;
117
    {$ENDIF}
118
  end;
119
120
  /// <summary>
121
  ///   Exception class used when reporting that a class searched in a list is
122
  ///   not contained in that list, e.g. when searching for a non existant
123
  ///   formatting class.
124
  /// </summary>
125
  EDECClassNotRegisteredException = class(EDECException);
126
  /// <summary>
127
  ///   Exception class for reporting formatting related exceptions
128
  /// </summary>
129
  EDECFormatException = class(EDECException);
130
  /// <summary>
131
  ///   Exception class for reporting exceptions related to hash functions
132
  /// </summary>
133
  EDECHashException   = class(EDECException);
134
  /// <summary>
135
  ///   Exception class for reporting encryption/decryption caused exceptions
136
  /// </summary>
137
  EDECCipherException = class(EDECException);
138
  /// <summary>
139
  ///   Exception class for reporting calculation of a wrong authentication
140
  ///   value when decrypting using a cipher supporting authentication
141
  /// </summary>
142
  EDECCipherAuthenticationException = class(EDECException);
143
144
  /// <summary>
145
  ///   Exception class for reporting the use of abstract things which cannot
146
  ///   be called directly
147
  /// </summary>
148
  EDECAbstractError = class(EDECException)
149
    /// <summary>
150
    ///   Create the exception using a meaningfull error message
151
    /// </summary>
152
    constructor Create(ClassName: string); overload;
153
  end;
154
155
const
156
{ TODO : Check why this is a constant, which is immediately used by the
157
         resource string. Is this because of the lack of resource string support
158
         of FMX on some platforms?}
159
  cAbstractError = 'Abstract Error: %s is not implemented';
160
161
resourcestring
162
  sAbstractError = cAbstractError;
163
164
implementation
165
166
{ EDECException }
167
168
{$IFDEF FMXTranslateableExceptions}
169
constructor EDECException.Create(const Msg: string);
170
begin
171
  inherited Create(Translate(msg));
172
end;
173
174
constructor EDECException.CreateFmt(const Msg: string;
175
                                    const Args: array of const);
176
begin
177
  inherited Create(Format(Translate(Msg), Args));
178
end;
179
180
constructor EDECAbstractError.Create(ClassName: string);
181
begin
182
  inherited Create(Format(Translate(sAbstractError), [ClassName]));
183
end;
184
{$ELSE}
185
constructor EDECAbstractError.Create(ClassName: string);
186
begin
187
  inherited CreateResFmt(@sAbstractError, [ClassName]);
188
end;
189
{$ENDIF}
190
191
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECTypes (D:\Projekte\DECGitMaster\Source\DECTypes.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECTypes.pas

+
Number of lines covered0
Number of lines with code gen3
Line coverage0%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Declarations of various datatypes, some of those have not been
20
///   declared for certain platforms but are used in DEC and some do change
21
///   meanings between platforms like PLongWord where LongWord is 32 bit on
22
///   Windows and Android but 64 bit on iOS for instance
23
/// </summary>
24
unit DECTypes;
25
26
interface
27
28
{$INCLUDE DECOptions.inc}
29
30
uses
31
  {$IFDEF FPC}
32
  SysUtils;
33
  {$ELSE}
34
  System.SysUtils;
35
  {$ENDIF}
36
37
type
38
  {$IFNDEF FPC}
39
    {$IF CompilerVersion <= 20}
40
    // In D2009 NativeInt was not properly treated by the compiler under certain
41
    // conditions. See: http://qc.embarcadero.com/wc/qcmain.aspx?d=71292
42
    NativeInt = Integer;
43
    {$IFEND}
44
  {$ENDIF}
45
46
  PUInt32Array = ^TUInt32Array;
47
  TUInt32Array = array[0..1023] of UInt32;
48
49
  /// <summary>
50
  ///   Replacement for PLongWord, as LongWord changes between platforms from
51
  ///   32 to 64 bit
52
  /// </summary>
53
  PUInt32 = ^UINT32;
54
55
  PUInt64Array = ^TUInt64Array;
56
  TUInt64Array = array[0..1023] of UInt64;
57
58
  /// <summary>
59
  ///   List of standard bit lengths defined in the official standard for some
60
  ///  algorithm property which allows a variable bit length.
61
  /// </summary>
62
  TStandardBitLengths = array of UInt16;
63
64
  /// <summary>
65
  ///   Reason for calling the progress event
66
  /// </summary>
67
  TDECProgressState = (Started, Processing, Finished);
68
69
  /// <summary>
70
  ///   Event type used by several hash- and cipher methods to display their
71
  ///   progress. It can be implemented as regular method, procedure and as
72
  ///   anonymous method, means: in place.
73
  /// </summary>
74
  /// <param name="Size">
75
  ///   Number of bytes to process. For files this is usually the file size. For
76
  ///   streams this can be less than the stream size if the stream is not being
77
  ///   processed from the beginning.
78
  /// </param>
79
  /// <param name="Pos">
80
  ///   Position within size in byte. For streams this may be a position
81
  ///   relative to the starting position for processing.
82
  /// </param>
83
  TDECProgressEvent = reference to procedure(Size, Pos: Int64; State: TDECProgressState);
84
85
  // Exception Classes
86
87
  /// <summary>
88
  ///   Base exception class for all DEC specific exceptions,
89
  /// </summary>
90
  EDECException       = class(Exception)
91
  public
92
    {$IFDEF FMXTranslateableExceptions}
93
    /// <summary>
94
    ///   Creates the exception instance and makes the exception message translateable
95
    ///   via Firemonkey's TLang translation mechanism. Normal ressource strings
96
    ///   are not translated in the same way on mobile platforms as they are on
97
    ///   Win32/Win64.
98
    /// </summary>
99
    /// <param name="Msg">
100
    ///   String with a failure message to be output or logged
101
    /// </param>
102
    constructor Create(const Msg: string); reintroduce; overload;
103
    /// <summary>
104
    ///   Creates the exception instance and makes the exception message translateable
105
    ///   via Firemonkey's TLang translation mechanism. Normal ressource strings
106
    ///   are not translated in the same way on mobile platforms as they are on
107
    ///   Win32/Win64.
108
    /// </summary>
109
    /// <param name="Msg">
110
    ///   String with a failure message to be output or logged
111
    /// </param>
112
    /// <param name="Args">
113
    ///   Array with values for the parameters specified in the format string
114
    /// </param>
115
    constructor CreateFmt(const Msg: string;
116
                          const Args: array of const); reintroduce; overload;
117
    {$ENDIF}
118
  end;
119
120
  /// <summary>
121
  ///   Exception class used when reporting that a class searched in a list is
122
  ///   not contained in that list, e.g. when searching for a non existant
123
  ///   formatting class.
124
  /// </summary>
125
  EDECClassNotRegisteredException = class(EDECException);
126
  /// <summary>
127
  ///   Exception class for reporting formatting related exceptions
128
  /// </summary>
129
  EDECFormatException = class(EDECException);
130
  /// <summary>
131
  ///   Exception class for reporting exceptions related to hash functions
132
  /// </summary>
133
  EDECHashException   = class(EDECException);
134
  /// <summary>
135
  ///   Exception class for reporting encryption/decryption caused exceptions
136
  /// </summary>
137
  EDECCipherException = class(EDECException);
138
  /// <summary>
139
  ///   Exception class for reporting calculation of a wrong authentication
140
  ///   value when decrypting using a cipher supporting authentication
141
  /// </summary>
142
  EDECCipherAuthenticationException = class(EDECException);
143
144
  /// <summary>
145
  ///   Exception class for reporting the use of abstract things which cannot
146
  ///   be called directly
147
  /// </summary>
148
  EDECAbstractError = class(EDECException)
149
    /// <summary>
150
    ///   Create the exception using a meaningfull error message
151
    /// </summary>
152
    constructor Create(ClassName: string); overload;
153
  end;
154
155
const
156
{ TODO : Check why this is a constant, which is immediately used by the
157
         resource string. Is this because of the lack of resource string support
158
         of FMX on some platforms?}
159
  cAbstractError = 'Abstract Error: %s is not implemented';
160
161
resourcestring
162
  sAbstractError = cAbstractError;
163
164
implementation
165
166
{ EDECException }
167
168
{$IFDEF FMXTranslateableExceptions}
169
constructor EDECException.Create(const Msg: string);
170
begin
171
  inherited Create(Translate(msg));
172
end;
173
174
constructor EDECException.CreateFmt(const Msg: string;
175
                                    const Args: array of const);
176
begin
177
  inherited Create(Format(Translate(Msg), Args));
178
end;
179
180
constructor EDECAbstractError.Create(ClassName: string);
181
begin
182
  inherited Create(Format(Translate(sAbstractError), [ClassName]));
183
end;
184
{$ELSE}
185
constructor EDECAbstractError.Create(ClassName: string);
186
begin
187
  inherited CreateResFmt(@sAbstractError, [ClassName]);
188
end;
189
{$ENDIF}
190
191
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECUtil(DECUtil.pas).html b/Unit Tests/CodeCoverage/U/DECUtil(DECUtil.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECUtil(DECUtil.pas).html rename to Unit Tests/CodeCoverage/U/DECUtil(DECUtil.pas).html index ea707270..548d76e2 100644 --- a/Unit Tests/CodeCoverage/DECUtil(DECUtil.pas).html +++ b/Unit Tests/CodeCoverage/U/DECUtil(DECUtil.pas).html @@ -1,680 +1,680 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECUtil (D:\Projekte\DECGitMaster\Source\DECUtil.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECUtil.pas

-
Number of lines covered146
Number of lines with code gen146
Line coverage100%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Utility functions
20
/// </summary>
21
unit DECUtil;
22
23
interface
24
25
{$INCLUDE DECOptions.inc}
26
27
uses
28
  {$IFDEF FPC}
29
  SysUtils, Classes;
30
  {$ELSE}
31
  System.SysUtils, System.Classes;
32
  {$ENDIF}
33
34
// Byte Ordering
35
36
/// <summary>
37
///   Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards
38
/// </summary>
39
/// <param name="Source">
40
///   Value who's bits are to be reversed
41
/// </param>
42
/// <returns>
43
///   Representation of Source but with all bits reversed
44
/// </returns>
45
function ReverseBits(Source: UInt32): UInt32; overload;
46
47
/// <summary>
48
///   Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards
49
/// </summary>
50
/// <param name="Source">
51
///   Value who's bits are to be reversed
52
/// </param>
53
/// <returns>
54
///   Representation of Source but with all bits reversed
55
/// </returns>
56
function ReverseBits(Source: UInt8): UInt8; overload;
57
58
/// <summary>
59
///   Reverses the order of the bytes contained in the buffer passed in.
60
///   e.g. 1 2 3 will be 3 2 1 afterwards
61
/// </summary>
62
/// <param name="Buffer">
63
///   Buffer who's contents is to be reversed.
64
/// </param>
65
/// <param name="Size">
66
///   Size of the passed buffer in byte
67
/// </param>
68
procedure SwapBytes(var Buffer; Size: Integer);
69
/// <summary>
70
///   Reverses the byte order of the passed variable
71
/// </summary>
72
/// <param name="Source">
73
///   value who's byte order shall be reversed
74
/// </param>
75
/// <returns>
76
///   value of the passed vallue with reversed byte order
77
/// </returns>
78
function  SwapUInt32(Source: UInt32): UInt32;
79
/// <summary>
80
///   Reverses the byte order for all entries of a passed array of UInt32 values
81
/// </summary>
82
/// <param name="Source">
83
///   Data with a layout like an array of UInt32 values for which the byte order
84
///   of all entries shall be reversed
85
/// </param>
86
/// <param name="Dest">
87
///   In this variable the reversed values will be stored. Layout is like an
88
///   array of UInt32 values
89
/// </param>
90
/// <param name="Count">
91
///   Number of values to be reversed
92
/// </param>
93
procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer);
94
/// <summary>
95
///   Reverses the byte order of an Int64 value
96
/// </summary>
97
/// <param name="Source">
98
///   Value who's byte order shall be reversed
99
/// </param>
100
/// <returns>
101
///   Representation of the passed value after reversing its byte order
102
/// </returns>
103
function  SwapInt64(Source: Int64): Int64;
104
/// <summary>
105
///   Reverses the byte order for all entries of a passed array of Int64 values
106
/// </summary>
107
/// <param name="Source">
108
///   Data with a layout like an array of Int64 values for which the byte order
109
///   of all entries shall be reversed
110
/// </param>
111
/// <param name="Dest">
112
///   In this variable the reversed values will be stored. Layout is like an
113
///   array of Int64 values
114
/// </param>
115
/// <param name="Count">
116
///   Number of values to be reversed
117
/// </param>
118
procedure SwapInt64Buffer(const Source; var Dest; Count: Integer);
119
120
/// <summary>
121
///   XORs the contents of two passed buffers and stores the result into a 3rd one
122
/// </summary>
123
/// <param name="Left">
124
///   One source buffer of bytes to be XORed
125
/// </param>
126
/// <param name="Right">
127
///   The other source buffer of bytes to be XORed. Buffer size must be equal
128
///   or bigger than Left
129
/// </param>
130
/// <param name="Size">
131
///   Buffer size in byte.
132
/// </param>
133
/// <param name="Dest">
134
///   Buffer where the result is to be stored in. Must be of equal or bigger
135
///   size than Left
136
/// </param>
137
procedure XORBuffers(const Left, Right; Size: Integer; var Dest);
138
139
// Buffer and Data Protection
140
141
/// <summary>
142
///   Fills a given buffer with zeros in a secure way
143
/// </summary>
144
/// <param name="Buffer">
145
///   Buffer to be zeroed. In case of TBytes to be passed as Buf[0]
146
/// </param>
147
/// <param name="Size">
148
///   Buffer size in byte
149
/// </param>
150
procedure ProtectBuffer(var Buffer; Size: NativeUInt);
151
/// <summary>
152
///   Fills a given stream with zeros in a secure way
153
/// </summary>
154
/// <param name="Stream">
155
///   Stream to be zeroed.
156
/// </param>
157
/// <param name="SizeToProtect">
158
///   Number of bytes of that stream to be zeroed. Starting point is Stream.Position
159
/// </param>
160
procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0);
161
/// <summary>
162
///   Fills a given byte array with zeros in a secure way and then empties the
163
///   buffer.
164
/// </summary>
165
/// <param name="Source">
166
///   Byte array to be zeroed. The length of the passed buffer is 0 afterwards!
167
/// </param>
168
procedure ProtectBytes(var Source: TBytes);
169
170
/// <summary>
171
///   Overwrites the string's contents in a secure way and returns an empty string.
172
/// </summary>
173
/// <param name="Source">
174
///   String to be safely overwritten
175
/// </param>
176
procedure ProtectString(var Source: string); overload;
177
178
/// <summary>
179
///   Overwrites the string's contents in a secure way and returns an empty string.
180
/// </summary>
181
/// <param name="Source">
182
///   String to be safely overwritten
183
/// </param>
184
procedure ProtectString(var Source: RawByteString); overload;
185
186
{$IFDEF ANSISTRINGSUPPORTED}
187
/// <summary>
188
///   Overwrites the string's contents in a secure way and returns an empty string.
189
/// </summary>
190
/// <param name="Source">
191
///   String to be safely overwritten
192
/// </param>
193
procedure ProtectString(var Source: AnsiString); overload;
194
{$ENDIF}
195
196
{$IFNDEF NEXTGEN}
197
/// <summary>
198
///   Overwrites the string's contents in a secure way and returns an empty string.
199
/// </summary>
200
/// <param name="Source">
201
///   String to be safely overwritten
202
/// </param>
203
procedure ProtectString(var Source: WideString); overload;
204
{$ENDIF}
205
206
// Byte/String conversion
207
208
/// <summary>
209
///   Converts a byte array to a RawByteString
210
/// </summary>
211
/// <param name="Source">
212
///   Byte array to be converted into a string. An empty byte array is allowed
213
///   and results in an empty string.
214
/// </param>
215
/// <returns>
216
///   RawByteString with the same length as Source and all bytes copied over.
217
///   No conversion of any sort is being applied to the bytes.
218
/// </returns>
219
/// <remarks>
220
///   Not easily replaced by some RTL function as none for TBytes to RawByteString
221
///   seems to exist
222
/// </remarks>
223
function BytesToRawString(const Source: TBytes): RawByteString;
224
225
// Buffer comparison
226
227
/// <summary>
228
///   Checks whether two TBytes values contain the same data
229
/// </summary>
230
/// <param name="a">
231
///   First value for the comparison
232
/// </param>
233
/// <param name="b">
234
///   Second value for the comparison
235
/// </param>
236
/// <returns>
237
///   true, if both contain exactly the same data
238
/// </returns>
239
function IsEqual(const a, b : TBytes ):Boolean;
240
241
implementation
242
243
{$IFDEF FMXTranslateableExceptions}
244
uses
245
  FMX.Types,
246
{$ELSE}
247
uses
248
{$ENDIF}
249
  DECUtilRawByteStringHelper, DECTypes;
250
251
const
252
  // Bit Lookup Table - see 'Bit Twiddling Hacks' by Sean Eron Anderson
253
  // http://graphics.stanford.edu/~seander/bithacks.html
254
  ReverseBitLookupTable256: array[0..255] of Byte = ($00, $80, $40, $C0,
255
   $20, $A0, $60, $E0, $10, $90, $50, $D0, $30, $B0, $70, $F0, $08, $88,
256
   $48, $C8, $28, $A8, $68, $E8, $18, $98, $58, $D8, $38, $B8, $78, $F8,
257
   $04, $84, $44, $C4, $24, $A4, $64, $E4, $14, $94, $54, $D4, $34, $B4,
258
   $74, $F4, $0C, $8C, $4C, $CC, $2C, $AC, $6C, $EC, $1C, $9C, $5C, $DC,
259
   $3C, $BC, $7C, $FC, $02, $82, $42, $C2, $22, $A2, $62, $E2, $12, $92,
260
   $52, $D2, $32, $B2, $72, $F2, $0A, $8A, $4A, $CA, $2A, $AA, $6A, $EA,
261
   $1A, $9A, $5A, $DA, $3A, $BA, $7A, $FA, $06, $86, $46, $C6, $26, $A6,
262
   $66, $E6, $16, $96, $56, $D6, $36, $B6, $76, $F6, $0E, $8E, $4E, $CE,
263
   $2E, $AE, $6E, $EE, $1E, $9E, $5E, $DE, $3E, $BE, $7E, $FE, $01, $81,
264
   $41, $C1, $21, $A1, $61, $E1, $11, $91, $51, $D1, $31, $B1, $71, $F1,
265
   $09, $89, $49, $C9, $29, $A9, $69, $E9, $19, $99, $59, $D9, $39, $B9,
266
   $79, $F9, $05, $85, $45, $C5, $25, $A5, $65, $E5, $15, $95, $55, $D5,
267
   $35, $B5, $75, $F5, $0D, $8D, $4D, $CD, $2D, $AD, $6D, $ED, $1D, $9D,
268
   $5D, $DD, $3D, $BD, $7D, $FD, $03, $83, $43, $C3, $23, $A3, $63, $E3,
269
   $13, $93, $53, $D3, $33, $B3, $73, $F3, $0B, $8B, $4B, $CB, $2B, $AB,
270
   $6B, $EB, $1B, $9B, $5B, $DB, $3B, $BB, $7B, $FB, $07, $87, $47, $C7,
271
   $27, $A7, $67, $E7, $17, $97, $57, $D7, $37, $B7, $77, $F7, $0F, $8F,
272
   $4F, $CF, $2F, $AF, $6F, $EF, $1F, $9F, $5F, $DF, $3F, $BF, $7F, $FF);
273
274
function ReverseBits(Source: UInt32): UInt32;
275
begin
276
  Result := (ReverseBitLookupTable256[Source and $FF] shl 24) or
277
            (ReverseBitLookupTable256[(Source shr 8) and $FF] shl 16) or
278
            (ReverseBitLookupTable256[(Source shr 16) and $FF] shl 8) or
279
            (ReverseBitLookupTable256[(Source shr 24) and $FF]);
280
end;
281
282
function ReverseBits(Source: UInt8): UInt8;
283
begin
284
  Result := ReverseBitLookupTable256[Source];
285
end;
286
287
procedure SwapBytes(var Buffer; Size: Integer);
288
{$IFDEF X86ASM}
289
asm
290
      CMP     EDX,1
291
      JLE     @@3
292
      AND     EAX,EAX
293
      JZ      @@3
294
      PUSH    EBX
295
      MOV     ECX,EDX
296
      LEA     EDX,[EAX + ECX - 1]
297
      SHR     ECX,1
298
@@1:  MOV     BL,[EAX]
299
      XCHG    BL,[EDX]
300
      DEC     EDX
301
      MOV     [EAX],BL
302
      INC     EAX
303
      DEC     ECX
304
      JNZ     @@1
305
@@2:  POP     EBX
306
@@3:
307
end;
308
{$ELSE !X86ASM}
309
var
310
  T: Byte;
311
  P, Q: PByte;
312
  i: Integer;
313
begin
314
  P := @Buffer;
315
  Inc(P, Size - 1);
316
  Q := @Buffer;
317
  for i := 0 to Size div 2 - 1 do // using P/Q comparison with 'while' breaks some compilers
318
  begin
319
    T := Q^;
320
    Q^ := P^;
321
    P^ := T;
322
    Dec(P);
323
    Inc(Q);
324
  end;
325
end;
326
{$ENDIF !X86ASM}
327
328
function SwapUInt32(Source: UInt32): UInt32;
329
{$IF defined(X86ASM) or defined(X64ASM)}
330
  asm
331
  {$IFDEF X64ASM}
332
    MOV   EAX, ECX
333
  {$ENDIF X64ASM}
334
    BSWAP EAX
335
  end;
336
{$ELSE PUREPASCAL}
337
begin
338
  Result := Source shl 24 or
339
            Source shr 24 or
340
            Source shl 8 and $00FF0000 or
341
            Source shr 8 and $0000FF00;
342
end;
343
{$IFEND PUREPASCAL}
344
345
procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer);
346
{$IFDEF X86ASM}
347
asm
348
      TEST    ECX,ECX
349
      JLE     @Exit
350
      PUSH    EDI
351
      SUB     EAX,4
352
      SUB     EDX,4
353
@@1:  MOV     EDI,[EAX + ECX * 4]
354
      BSWAP   EDI
355
      MOV     [EDX + ECX * 4],EDI
356
      DEC     ECX
357
      JNZ     @@1
358
      POP     EDI
359
@Exit:
360
end;
361
{$ELSE !X86ASM}
362
var
363
  i: Integer;
364
  T: UInt32;
365
begin
366
  for i := 0 to Count - 1 do
367
  begin
368
    T := TUInt32Array(Source)[i];
369
    TUInt32Array(Dest)[i] := (T shl 24) or (T shr 24) or
370
                           ((T shl 8) and $00FF0000) or ((T shr 8) and $0000FF00);
371
  end;
372
end;
373
{$ENDIF !X86ASM}
374
375
function SwapInt64(Source: Int64): Int64;
376
{$IFDEF X86ASM}
377
asm
378
      MOV     EDX,Source.DWord[0]
379
      MOV     EAX,Source.DWord[4]
380
      BSWAP   EDX
381
      BSWAP   EAX
382
end;
383
{$ELSE !X86ASM}
384
var
385
  L, H: Cardinal;
386
begin
387
  L := Int64Rec(Source).Lo;
388
  H := Int64Rec(Source).Hi;
389
  L := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00;
390
  H := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00;
391
  Int64Rec(Result).Hi := L;
392
  Int64Rec(Result).Lo := H;
393
end;
394
{$ENDIF !X86ASM}
395
396
procedure SwapInt64Buffer(const Source; var Dest; Count: Integer);
397
{$IFDEF X86ASM}
398
asm
399
      TEST    ECX,ECX
400
      JLE     @Exit
401
      PUSH    ESI
402
      PUSH    EDI
403
      LEA     ESI,[EAX + ECX * 8]
404
      LEA     EDI,[EDX + ECX * 8]
405
      NEG     ECX
406
@@1:  MOV     EAX,[ESI + ECX * 8]
407
      MOV     EDX,[ESI + ECX * 8 + 4]
408
      BSWAP   EAX
409
      BSWAP   EDX
410
      MOV     [EDI + ECX * 8 + 4],EAX
411
      MOV     [EDI + ECX * 8],EDX
412
      INC     ECX
413
      JNZ     @@1
414
      POP     EDI
415
      POP     ESI
416
@Exit:
417
end;
418
{$ELSE !X86ASM}
419
var
420
  H, L: Cardinal;
421
  i: Integer;
422
begin
423
  for i := 0 to Count - 1 do
424
  begin
425
    H := TUInt32Array(Source)[i * 2    ];
426
    L := TUInt32Array(Source)[i * 2 + 1];
427
    TUInt32Array(Dest)[i * 2    ] := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00;
428
    TUInt32Array(Dest)[i * 2 + 1] := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00;
429
  end;
430
end;
431
{$ENDIF !X86ASM}
432
433
procedure XORBuffers(const Left, Right; Size: Integer; var Dest);
434
// Dest^ = Source1^ xor Source2^
435
// Buffers must have the same size!
436
{$IFDEF X86ASM}
437
asm
438
      AND     ECX,ECX
439
      JZ      @@5
440
      PUSH    ESI
441
      PUSH    EDI
442
      MOV     ESI,EAX
443
      MOV     EDI,Dest
444
@@1:  TEST    ECX,3
445
      JNZ     @@3
446
@@2:  SUB     ECX,4
447
      JL      @@4
448
      MOV     EAX,[ESI + ECX]
449
      XOR     EAX,[EDX + ECX]
450
      MOV     [EDI + ECX],EAX
451
      JMP     @@2
452
@@3:  DEC     ECX
453
      MOV     AL,[ESI + ECX]
454
      XOR     AL,[EDX + ECX]
455
      MOV     [EDI + ECX],AL
456
      JMP     @@1
457
@@4:  POP     EDI
458
      POP     ESI
459
@@5:
460
end;
461
{$ELSE !X86ASM}
462
var
463
  P, Q, D: PByte;
464
  i: Integer;
465
begin
466
  P := @Left;
467
  Q := @Right;
468
  D := @Dest;
469
  for i := 0 to Size - 1 do
470
  begin
471
    D^ := P^ xor Q^;
472
    Inc(P);
473
    Inc(Q);
474
    Inc(D);
475
  end;
476
end;
477
{$ENDIF !X86ASM}
478
479
const
480
  WipeCount = 4;
481
  WipeBytes: array[0..WipeCount - 1] of Byte = (
482
    $55, // 0101 0101
483
    $AA, // 1010 1010
484
    $FF, // 1111 1111
485
    $00  // 0000 0000
486
  );
487
488
procedure ProtectBuffer(var Buffer; Size: NativeUInt);
489
var
490
  Count: Integer;
491
begin
492
  if Size > 0 then
493
  begin
494
    for Count := 0 to WipeCount - 1 do
495
      FillChar(Buffer, Size, WipeBytes[Count]);
496
  end;
497
end;
498
499
procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0);
500
const
501
  BufferSize = 512;
502
var
503
  Buffer: string;
504
  Count, Bytes, Size: Integer;
505
  Position: Integer;
506
begin
507
  Position := Stream.Position;
508
  Size := Stream.Size;
509
  if SizeToProtect <= 0 then
510
  begin
511
    SizeToProtect := Size;
512
    Position := 0;
513
  end else
514
  begin
515
    Dec(Size, Position);
516
    if SizeToProtect > Size then
517
      SizeToProtect := Size;
518
  end;
519
  SetLength(Buffer, BufferSize);
520
  for Count := 0 to WipeCount -1 do
521
  begin
522
    Stream.Position := Position;
523
    Size := SizeToProtect;
524
    {$IF CompilerVersion >= 24.0}
525
    FillChar(Buffer[Low(Buffer)], BufferSize, WipeBytes[Count]);
526
    {$ELSE}
527
    FillChar(Buffer[1], BufferSize, WipeBytes[Count]);
528
    {$IFEND}
529
    while Size > 0 do
530
    begin
531
      Bytes := Size;
532
      if Bytes > BufferSize then
533
        Bytes := BufferSize;
534
      {$IF CompilerVersion >= 24.0}
535
      Stream.Write(Buffer[Low(Buffer)], Bytes);
536
      {$ELSE}
537
      Stream.Write(Buffer[1], Bytes);
538
      {$IFEND}
539
      Dec(Size, Bytes);
540
    end;
541
  end;
542
end;
543
544
procedure ProtectBytes(var Source: TBytes);
545
begin
546
  if (Source <> nil) and (Length(Source) > 0) then
547
  begin
548
    ProtectBuffer(Source[0], Length(Source));
549
    SetLength(Source, 0);
550
  end;
551
end;
552
553
procedure ProtectString(var Source: string);
554
begin
555
  if Length(Source) > 0 then
556
  begin
557
    System.UniqueString(Source);
558
    {$IF CompilerVersion >= 24.0}
559
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
560
    {$ELSE}
561
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
562
    {$IFEND}
563
    Source := '';
564
  end;
565
end;
566
567
procedure ProtectString(var Source: RawByteString);
568
begin
569
  if Length(Source) > 0 then
570
  begin
571
    // UniqueString(Source); cannot be called with a RawByteString as there is
572
    // no overload for it, so we need to call our own one.
573
    DECUtilRawByteStringHelper.UniqueString(Source);
574
    {$IF CompilerVersion >= 24.0}
575
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
576
    {$ELSE}
577
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
578
    {$IFEND}
579
    Source := '';
580
  end;
581
end;
582
583
{$IFNDEF NEXTGEN}
584
procedure ProtectString(var Source: AnsiString); overload;
585
begin
586
  if Length(Source) > 0 then
587
  begin
588
    System.UniqueString(Source);
589
    {$IF CompilerVersion >= 24.0}
590
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
591
    {$ELSE}
592
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
593
    {$IFEND}
594
    Source := '';
595
  end;
596
end;
597
598
procedure ProtectString(var Source: WideString); overload;
599
begin
600
  if Length(Source) > 0 then
601
  begin
602
    System.UniqueString(Source); // for OS <> Win, WideString is not RefCounted on Win
603
    {$IF CompilerVersion >= 24.0}
604
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
605
    {$ELSE}
606
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
607
    {$IFEND}
608
    Source := '';
609
  end;
610
end;
611
{$ENDIF}
612
613
function BytesToRawString(const Source: TBytes): RawByteString;
614
begin
615
  SetLength(Result, Length(Source));
616
  if Length(Source) > 0 then
617
  begin
618
    // determine lowest string index for handling of ZeroBasedStrings
619
    {$IF CompilerVersion >= 24.0}
620
    Move(Source[0], Result[Low(result)], Length(Source));
621
    {$ELSE}
622
    Move(Source[0], Result[1], Length(Source));
623
    {$IFEND}
624
  end;
625
end;
626
627
function IsEqual(const a, b : TBytes):Boolean;
628
begin
629
  if (length(a) <> length(b)) then
630
    Result := false
631
  else
632
    if (Length(a) > 0) then
633
      Result := CompareMem(@a[0], @b[0], length(a))
634
    else
635
      Result := true;
636
end;
637
638
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECUtil (D:\Projekte\DECGitMaster\Source\DECUtil.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECUtil.pas

+
Number of lines covered146
Number of lines with code gen146
Line coverage100%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory
6
  of this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
18
/// <summary>
19
///   Utility functions
20
/// </summary>
21
unit DECUtil;
22
23
interface
24
25
{$INCLUDE DECOptions.inc}
26
27
uses
28
  {$IFDEF FPC}
29
  SysUtils, Classes;
30
  {$ELSE}
31
  System.SysUtils, System.Classes;
32
  {$ENDIF}
33
34
// Byte Ordering
35
36
/// <summary>
37
///   Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards
38
/// </summary>
39
/// <param name="Source">
40
///   Value who's bits are to be reversed
41
/// </param>
42
/// <returns>
43
///   Representation of Source but with all bits reversed
44
/// </returns>
45
function ReverseBits(Source: UInt32): UInt32; overload;
46
47
/// <summary>
48
///   Reverses all bits in the passed value, 1111 0000 will be 0000 1111 afterwards
49
/// </summary>
50
/// <param name="Source">
51
///   Value who's bits are to be reversed
52
/// </param>
53
/// <returns>
54
///   Representation of Source but with all bits reversed
55
/// </returns>
56
function ReverseBits(Source: UInt8): UInt8; overload;
57
58
/// <summary>
59
///   Reverses the order of the bytes contained in the buffer passed in.
60
///   e.g. 1 2 3 will be 3 2 1 afterwards
61
/// </summary>
62
/// <param name="Buffer">
63
///   Buffer who's contents is to be reversed.
64
/// </param>
65
/// <param name="Size">
66
///   Size of the passed buffer in byte
67
/// </param>
68
procedure SwapBytes(var Buffer; Size: Integer);
69
/// <summary>
70
///   Reverses the byte order of the passed variable
71
/// </summary>
72
/// <param name="Source">
73
///   value who's byte order shall be reversed
74
/// </param>
75
/// <returns>
76
///   value of the passed vallue with reversed byte order
77
/// </returns>
78
function  SwapUInt32(Source: UInt32): UInt32;
79
/// <summary>
80
///   Reverses the byte order for all entries of a passed array of UInt32 values
81
/// </summary>
82
/// <param name="Source">
83
///   Data with a layout like an array of UInt32 values for which the byte order
84
///   of all entries shall be reversed
85
/// </param>
86
/// <param name="Dest">
87
///   In this variable the reversed values will be stored. Layout is like an
88
///   array of UInt32 values
89
/// </param>
90
/// <param name="Count">
91
///   Number of values to be reversed
92
/// </param>
93
procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer);
94
/// <summary>
95
///   Reverses the byte order of an Int64 value
96
/// </summary>
97
/// <param name="Source">
98
///   Value who's byte order shall be reversed
99
/// </param>
100
/// <returns>
101
///   Representation of the passed value after reversing its byte order
102
/// </returns>
103
function  SwapInt64(Source: Int64): Int64;
104
/// <summary>
105
///   Reverses the byte order for all entries of a passed array of Int64 values
106
/// </summary>
107
/// <param name="Source">
108
///   Data with a layout like an array of Int64 values for which the byte order
109
///   of all entries shall be reversed
110
/// </param>
111
/// <param name="Dest">
112
///   In this variable the reversed values will be stored. Layout is like an
113
///   array of Int64 values
114
/// </param>
115
/// <param name="Count">
116
///   Number of values to be reversed
117
/// </param>
118
procedure SwapInt64Buffer(const Source; var Dest; Count: Integer);
119
120
/// <summary>
121
///   XORs the contents of two passed buffers and stores the result into a 3rd one
122
/// </summary>
123
/// <param name="Left">
124
///   One source buffer of bytes to be XORed
125
/// </param>
126
/// <param name="Right">
127
///   The other source buffer of bytes to be XORed. Buffer size must be equal
128
///   or bigger than Left
129
/// </param>
130
/// <param name="Size">
131
///   Buffer size in byte.
132
/// </param>
133
/// <param name="Dest">
134
///   Buffer where the result is to be stored in. Must be of equal or bigger
135
///   size than Left
136
/// </param>
137
procedure XORBuffers(const Left, Right; Size: Integer; var Dest);
138
139
// Buffer and Data Protection
140
141
/// <summary>
142
///   Fills a given buffer with zeros in a secure way
143
/// </summary>
144
/// <param name="Buffer">
145
///   Buffer to be zeroed. In case of TBytes to be passed as Buf[0]
146
/// </param>
147
/// <param name="Size">
148
///   Buffer size in byte
149
/// </param>
150
procedure ProtectBuffer(var Buffer; Size: NativeUInt);
151
/// <summary>
152
///   Fills a given stream with zeros in a secure way
153
/// </summary>
154
/// <param name="Stream">
155
///   Stream to be zeroed.
156
/// </param>
157
/// <param name="SizeToProtect">
158
///   Number of bytes of that stream to be zeroed. Starting point is Stream.Position
159
/// </param>
160
procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0);
161
/// <summary>
162
///   Fills a given byte array with zeros in a secure way and then empties the
163
///   buffer.
164
/// </summary>
165
/// <param name="Source">
166
///   Byte array to be zeroed. The length of the passed buffer is 0 afterwards!
167
/// </param>
168
procedure ProtectBytes(var Source: TBytes);
169
170
/// <summary>
171
///   Overwrites the string's contents in a secure way and returns an empty string.
172
/// </summary>
173
/// <param name="Source">
174
///   String to be safely overwritten
175
/// </param>
176
procedure ProtectString(var Source: string); overload;
177
178
/// <summary>
179
///   Overwrites the string's contents in a secure way and returns an empty string.
180
/// </summary>
181
/// <param name="Source">
182
///   String to be safely overwritten
183
/// </param>
184
procedure ProtectString(var Source: RawByteString); overload;
185
186
{$IFDEF ANSISTRINGSUPPORTED}
187
/// <summary>
188
///   Overwrites the string's contents in a secure way and returns an empty string.
189
/// </summary>
190
/// <param name="Source">
191
///   String to be safely overwritten
192
/// </param>
193
procedure ProtectString(var Source: AnsiString); overload;
194
{$ENDIF}
195
196
{$IFNDEF NEXTGEN}
197
/// <summary>
198
///   Overwrites the string's contents in a secure way and returns an empty string.
199
/// </summary>
200
/// <param name="Source">
201
///   String to be safely overwritten
202
/// </param>
203
procedure ProtectString(var Source: WideString); overload;
204
{$ENDIF}
205
206
// Byte/String conversion
207
208
/// <summary>
209
///   Converts a byte array to a RawByteString
210
/// </summary>
211
/// <param name="Source">
212
///   Byte array to be converted into a string. An empty byte array is allowed
213
///   and results in an empty string.
214
/// </param>
215
/// <returns>
216
///   RawByteString with the same length as Source and all bytes copied over.
217
///   No conversion of any sort is being applied to the bytes.
218
/// </returns>
219
/// <remarks>
220
///   Not easily replaced by some RTL function as none for TBytes to RawByteString
221
///   seems to exist
222
/// </remarks>
223
function BytesToRawString(const Source: TBytes): RawByteString;
224
225
// Buffer comparison
226
227
/// <summary>
228
///   Checks whether two TBytes values contain the same data
229
/// </summary>
230
/// <param name="a">
231
///   First value for the comparison
232
/// </param>
233
/// <param name="b">
234
///   Second value for the comparison
235
/// </param>
236
/// <returns>
237
///   true, if both contain exactly the same data
238
/// </returns>
239
function IsEqual(const a, b : TBytes ):Boolean;
240
241
implementation
242
243
{$IFDEF FMXTranslateableExceptions}
244
uses
245
  FMX.Types,
246
{$ELSE}
247
uses
248
{$ENDIF}
249
  DECUtilRawByteStringHelper, DECTypes;
250
251
const
252
  // Bit Lookup Table - see 'Bit Twiddling Hacks' by Sean Eron Anderson
253
  // http://graphics.stanford.edu/~seander/bithacks.html
254
  ReverseBitLookupTable256: array[0..255] of Byte = ($00, $80, $40, $C0,
255
   $20, $A0, $60, $E0, $10, $90, $50, $D0, $30, $B0, $70, $F0, $08, $88,
256
   $48, $C8, $28, $A8, $68, $E8, $18, $98, $58, $D8, $38, $B8, $78, $F8,
257
   $04, $84, $44, $C4, $24, $A4, $64, $E4, $14, $94, $54, $D4, $34, $B4,
258
   $74, $F4, $0C, $8C, $4C, $CC, $2C, $AC, $6C, $EC, $1C, $9C, $5C, $DC,
259
   $3C, $BC, $7C, $FC, $02, $82, $42, $C2, $22, $A2, $62, $E2, $12, $92,
260
   $52, $D2, $32, $B2, $72, $F2, $0A, $8A, $4A, $CA, $2A, $AA, $6A, $EA,
261
   $1A, $9A, $5A, $DA, $3A, $BA, $7A, $FA, $06, $86, $46, $C6, $26, $A6,
262
   $66, $E6, $16, $96, $56, $D6, $36, $B6, $76, $F6, $0E, $8E, $4E, $CE,
263
   $2E, $AE, $6E, $EE, $1E, $9E, $5E, $DE, $3E, $BE, $7E, $FE, $01, $81,
264
   $41, $C1, $21, $A1, $61, $E1, $11, $91, $51, $D1, $31, $B1, $71, $F1,
265
   $09, $89, $49, $C9, $29, $A9, $69, $E9, $19, $99, $59, $D9, $39, $B9,
266
   $79, $F9, $05, $85, $45, $C5, $25, $A5, $65, $E5, $15, $95, $55, $D5,
267
   $35, $B5, $75, $F5, $0D, $8D, $4D, $CD, $2D, $AD, $6D, $ED, $1D, $9D,
268
   $5D, $DD, $3D, $BD, $7D, $FD, $03, $83, $43, $C3, $23, $A3, $63, $E3,
269
   $13, $93, $53, $D3, $33, $B3, $73, $F3, $0B, $8B, $4B, $CB, $2B, $AB,
270
   $6B, $EB, $1B, $9B, $5B, $DB, $3B, $BB, $7B, $FB, $07, $87, $47, $C7,
271
   $27, $A7, $67, $E7, $17, $97, $57, $D7, $37, $B7, $77, $F7, $0F, $8F,
272
   $4F, $CF, $2F, $AF, $6F, $EF, $1F, $9F, $5F, $DF, $3F, $BF, $7F, $FF);
273
274
function ReverseBits(Source: UInt32): UInt32;
275
begin
276
  Result := (ReverseBitLookupTable256[Source and $FF] shl 24) or
277
            (ReverseBitLookupTable256[(Source shr 8) and $FF] shl 16) or
278
            (ReverseBitLookupTable256[(Source shr 16) and $FF] shl 8) or
279
            (ReverseBitLookupTable256[(Source shr 24) and $FF]);
280
end;
281
282
function ReverseBits(Source: UInt8): UInt8;
283
begin
284
  Result := ReverseBitLookupTable256[Source];
285
end;
286
287
procedure SwapBytes(var Buffer; Size: Integer);
288
{$IFDEF X86ASM}
289
asm
290
      CMP     EDX,1
291
      JLE     @@3
292
      AND     EAX,EAX
293
      JZ      @@3
294
      PUSH    EBX
295
      MOV     ECX,EDX
296
      LEA     EDX,[EAX + ECX - 1]
297
      SHR     ECX,1
298
@@1:  MOV     BL,[EAX]
299
      XCHG    BL,[EDX]
300
      DEC     EDX
301
      MOV     [EAX],BL
302
      INC     EAX
303
      DEC     ECX
304
      JNZ     @@1
305
@@2:  POP     EBX
306
@@3:
307
end;
308
{$ELSE !X86ASM}
309
var
310
  T: Byte;
311
  P, Q: PByte;
312
  i: Integer;
313
begin
314
  P := @Buffer;
315
  Inc(P, Size - 1);
316
  Q := @Buffer;
317
  for i := 0 to Size div 2 - 1 do // using P/Q comparison with 'while' breaks some compilers
318
  begin
319
    T := Q^;
320
    Q^ := P^;
321
    P^ := T;
322
    Dec(P);
323
    Inc(Q);
324
  end;
325
end;
326
{$ENDIF !X86ASM}
327
328
function SwapUInt32(Source: UInt32): UInt32;
329
{$IF defined(X86ASM) or defined(X64ASM)}
330
  asm
331
  {$IFDEF X64ASM}
332
    MOV   EAX, ECX
333
  {$ENDIF X64ASM}
334
    BSWAP EAX
335
  end;
336
{$ELSE PUREPASCAL}
337
begin
338
  Result := Source shl 24 or
339
            Source shr 24 or
340
            Source shl 8 and $00FF0000 or
341
            Source shr 8 and $0000FF00;
342
end;
343
{$IFEND PUREPASCAL}
344
345
procedure SwapUInt32Buffer(const Source; var Dest; Count: Integer);
346
{$IFDEF X86ASM}
347
asm
348
      TEST    ECX,ECX
349
      JLE     @Exit
350
      PUSH    EDI
351
      SUB     EAX,4
352
      SUB     EDX,4
353
@@1:  MOV     EDI,[EAX + ECX * 4]
354
      BSWAP   EDI
355
      MOV     [EDX + ECX * 4],EDI
356
      DEC     ECX
357
      JNZ     @@1
358
      POP     EDI
359
@Exit:
360
end;
361
{$ELSE !X86ASM}
362
var
363
  i: Integer;
364
  T: UInt32;
365
begin
366
  for i := 0 to Count - 1 do
367
  begin
368
    T := TUInt32Array(Source)[i];
369
    TUInt32Array(Dest)[i] := (T shl 24) or (T shr 24) or
370
                           ((T shl 8) and $00FF0000) or ((T shr 8) and $0000FF00);
371
  end;
372
end;
373
{$ENDIF !X86ASM}
374
375
function SwapInt64(Source: Int64): Int64;
376
{$IFDEF X86ASM}
377
asm
378
      MOV     EDX,Source.DWord[0]
379
      MOV     EAX,Source.DWord[4]
380
      BSWAP   EDX
381
      BSWAP   EAX
382
end;
383
{$ELSE !X86ASM}
384
var
385
  L, H: Cardinal;
386
begin
387
  L := Int64Rec(Source).Lo;
388
  H := Int64Rec(Source).Hi;
389
  L := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00;
390
  H := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00;
391
  Int64Rec(Result).Hi := L;
392
  Int64Rec(Result).Lo := H;
393
end;
394
{$ENDIF !X86ASM}
395
396
procedure SwapInt64Buffer(const Source; var Dest; Count: Integer);
397
{$IFDEF X86ASM}
398
asm
399
      TEST    ECX,ECX
400
      JLE     @Exit
401
      PUSH    ESI
402
      PUSH    EDI
403
      LEA     ESI,[EAX + ECX * 8]
404
      LEA     EDI,[EDX + ECX * 8]
405
      NEG     ECX
406
@@1:  MOV     EAX,[ESI + ECX * 8]
407
      MOV     EDX,[ESI + ECX * 8 + 4]
408
      BSWAP   EAX
409
      BSWAP   EDX
410
      MOV     [EDI + ECX * 8 + 4],EAX
411
      MOV     [EDI + ECX * 8],EDX
412
      INC     ECX
413
      JNZ     @@1
414
      POP     EDI
415
      POP     ESI
416
@Exit:
417
end;
418
{$ELSE !X86ASM}
419
var
420
  H, L: Cardinal;
421
  i: Integer;
422
begin
423
  for i := 0 to Count - 1 do
424
  begin
425
    H := TUInt32Array(Source)[i * 2    ];
426
    L := TUInt32Array(Source)[i * 2 + 1];
427
    TUInt32Array(Dest)[i * 2    ] := L shl 24 or L shr 24 or L shl 8 and $00FF0000 or L shr 8 and $0000FF00;
428
    TUInt32Array(Dest)[i * 2 + 1] := H shl 24 or H shr 24 or H shl 8 and $00FF0000 or H shr 8 and $0000FF00;
429
  end;
430
end;
431
{$ENDIF !X86ASM}
432
433
procedure XORBuffers(const Left, Right; Size: Integer; var Dest);
434
// Dest^ = Source1^ xor Source2^
435
// Buffers must have the same size!
436
{$IFDEF X86ASM}
437
asm
438
      AND     ECX,ECX
439
      JZ      @@5
440
      PUSH    ESI
441
      PUSH    EDI
442
      MOV     ESI,EAX
443
      MOV     EDI,Dest
444
@@1:  TEST    ECX,3
445
      JNZ     @@3
446
@@2:  SUB     ECX,4
447
      JL      @@4
448
      MOV     EAX,[ESI + ECX]
449
      XOR     EAX,[EDX + ECX]
450
      MOV     [EDI + ECX],EAX
451
      JMP     @@2
452
@@3:  DEC     ECX
453
      MOV     AL,[ESI + ECX]
454
      XOR     AL,[EDX + ECX]
455
      MOV     [EDI + ECX],AL
456
      JMP     @@1
457
@@4:  POP     EDI
458
      POP     ESI
459
@@5:
460
end;
461
{$ELSE !X86ASM}
462
var
463
  P, Q, D: PByte;
464
  i: Integer;
465
begin
466
  P := @Left;
467
  Q := @Right;
468
  D := @Dest;
469
  for i := 0 to Size - 1 do
470
  begin
471
    D^ := P^ xor Q^;
472
    Inc(P);
473
    Inc(Q);
474
    Inc(D);
475
  end;
476
end;
477
{$ENDIF !X86ASM}
478
479
const
480
  WipeCount = 4;
481
  WipeBytes: array[0..WipeCount - 1] of Byte = (
482
    $55, // 0101 0101
483
    $AA, // 1010 1010
484
    $FF, // 1111 1111
485
    $00  // 0000 0000
486
  );
487
488
procedure ProtectBuffer(var Buffer; Size: NativeUInt);
489
var
490
  Count: Integer;
491
begin
492
  if Size > 0 then
493
  begin
494
    for Count := 0 to WipeCount - 1 do
495
      FillChar(Buffer, Size, WipeBytes[Count]);
496
  end;
497
end;
498
499
procedure ProtectStream(Stream: TStream; SizeToProtect: Int64 = 0);
500
const
501
  BufferSize = 512;
502
var
503
  Buffer: string;
504
  Count, Bytes, Size: Integer;
505
  Position: Integer;
506
begin
507
  Position := Stream.Position;
508
  Size := Stream.Size;
509
  if SizeToProtect <= 0 then
510
  begin
511
    SizeToProtect := Size;
512
    Position := 0;
513
  end else
514
  begin
515
    Dec(Size, Position);
516
    if SizeToProtect > Size then
517
      SizeToProtect := Size;
518
  end;
519
  SetLength(Buffer, BufferSize);
520
  for Count := 0 to WipeCount -1 do
521
  begin
522
    Stream.Position := Position;
523
    Size := SizeToProtect;
524
    {$IF CompilerVersion >= 24.0}
525
    FillChar(Buffer[Low(Buffer)], BufferSize, WipeBytes[Count]);
526
    {$ELSE}
527
    FillChar(Buffer[1], BufferSize, WipeBytes[Count]);
528
    {$IFEND}
529
    while Size > 0 do
530
    begin
531
      Bytes := Size;
532
      if Bytes > BufferSize then
533
        Bytes := BufferSize;
534
      {$IF CompilerVersion >= 24.0}
535
      Stream.Write(Buffer[Low(Buffer)], Bytes);
536
      {$ELSE}
537
      Stream.Write(Buffer[1], Bytes);
538
      {$IFEND}
539
      Dec(Size, Bytes);
540
    end;
541
  end;
542
end;
543
544
procedure ProtectBytes(var Source: TBytes);
545
begin
546
  if (Source <> nil) and (Length(Source) > 0) then
547
  begin
548
    ProtectBuffer(Source[0], Length(Source));
549
    SetLength(Source, 0);
550
  end;
551
end;
552
553
procedure ProtectString(var Source: string);
554
begin
555
  if Length(Source) > 0 then
556
  begin
557
    System.UniqueString(Source);
558
    {$IF CompilerVersion >= 24.0}
559
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
560
    {$ELSE}
561
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
562
    {$IFEND}
563
    Source := '';
564
  end;
565
end;
566
567
procedure ProtectString(var Source: RawByteString);
568
begin
569
  if Length(Source) > 0 then
570
  begin
571
    // UniqueString(Source); cannot be called with a RawByteString as there is
572
    // no overload for it, so we need to call our own one.
573
    DECUtilRawByteStringHelper.UniqueString(Source);
574
    {$IF CompilerVersion >= 24.0}
575
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
576
    {$ELSE}
577
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
578
    {$IFEND}
579
    Source := '';
580
  end;
581
end;
582
583
{$IFNDEF NEXTGEN}
584
procedure ProtectString(var Source: AnsiString); overload;
585
begin
586
  if Length(Source) > 0 then
587
  begin
588
    System.UniqueString(Source);
589
    {$IF CompilerVersion >= 24.0}
590
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
591
    {$ELSE}
592
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
593
    {$IFEND}
594
    Source := '';
595
  end;
596
end;
597
598
procedure ProtectString(var Source: WideString); overload;
599
begin
600
  if Length(Source) > 0 then
601
  begin
602
    System.UniqueString(Source); // for OS <> Win, WideString is not RefCounted on Win
603
    {$IF CompilerVersion >= 24.0}
604
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[Low(Source)]));
605
    {$ELSE}
606
    ProtectBuffer(Pointer(Source)^, Length(Source) * SizeOf(Source[1]));
607
    {$IFEND}
608
    Source := '';
609
  end;
610
end;
611
{$ENDIF}
612
613
function BytesToRawString(const Source: TBytes): RawByteString;
614
begin
615
  SetLength(Result, Length(Source));
616
  if Length(Source) > 0 then
617
  begin
618
    // determine lowest string index for handling of ZeroBasedStrings
619
    {$IF CompilerVersion >= 24.0}
620
    Move(Source[0], Result[Low(result)], Length(Source));
621
    {$ELSE}
622
    Move(Source[0], Result[1], Length(Source));
623
    {$IFEND}
624
  end;
625
end;
626
627
function IsEqual(const a, b : TBytes):Boolean;
628
begin
629
  if (length(a) <> length(b)) then
630
    Result := false
631
  else
632
    if (Length(a) > 0) then
633
      Result := CompareMem(@a[0], @b[0], length(a))
634
    else
635
      Result := true;
636
end;
637
638
end.
+ + diff --git a/Unit Tests/CodeCoverage/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html b/Unit Tests/CodeCoverage/U/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html similarity index 99% rename from Unit Tests/CodeCoverage/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html rename to Unit Tests/CodeCoverage/U/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html index 91076cbe..67610429 100644 --- a/Unit Tests/CodeCoverage/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html +++ b/Unit Tests/CodeCoverage/U/DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html @@ -1,179 +1,179 @@ - - - - - Delphi CodeCoverage Coverage Report - - - -

Coverage report for DECUtilRawByteStringHelper (D:\Projekte\DECGitMaster\Source\DECUtilRawByteStringHelper.pas).

-

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

-

Statistics for D:\Projekte\DECGitMaster\Source\DECUtilRawByteStringHelper.pas

-
Number of lines covered34
Number of lines with code gen38
Line coverage89%
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory of
6
  this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECUtilRawByteStringHelper;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
/// <summary>
24
///   System.pas does not contain a RawByteString compatible version of this
25
///   routine so we created our own, copying and adapting code from system.pas
26
///   for the NextGen compiler and using a solution from Remy Lebeau for the
27
///   Win32/Win64 compiler.
28
/// </summary>
29
/// <param name="str">
30
///   String to be processed
31
/// </param>
32
procedure UniqueString(var Str: RawByteString);
33
34
implementation
35
36
uses
37
  {$IFDEF FPC}
38
  SysUtils;
39
  {$ELSE}
40
  System.SysUtils;
41
  {$ENDIF}
42
43
type
44
  // Duplicate of the System.pas internal declaration. Needs to be kept in sync.
45
  PStrRec = ^StrRec;
46
  StrRec = packed record
47
  {$IFDEF CPU64BITS}
48
    _Padding: Integer; // Make 16 byte align for payload..
49
  {$ENDIF}
50
    codePage: Word;
51
    elemSize: Word;
52
    refCnt: Integer;
53
    length: Integer;
54
  end;
55
56
function _NewAnsiString(CharLength: Integer; CodePage: Word): Pointer;
57
var
58
  P: PStrRec;
59
begin
60
  Result := nil;
61
  if CharLength > 0 then
62
  begin
63
    // Alloc an extra null for strings with even length.  This has no actual
64
    // cost since the allocator will round up the request to an even size
65
    // anyway. All _WideStr allocations have even length, and need a double
66
    // null terminator.
67
    if CharLength >= MaxInt - SizeOf(StrRec) then
68
      raise EIntOverflow.Create(
69
        'IntOverflow in _NewAnsiString. CharLength: ' + IntToStr(CharLength));
70
71
    GetMem(P, CharLength + SizeOf(StrRec) + 1 + ((CharLength + 1) and 1));
72
    Result := Pointer(PByte(P) + SizeOf(StrRec));
73
    P.length := CharLength;
74
    P.refcnt := 1;
75
    if CodePage = 0 then
76
{$IFDEF NEXTGEN}
77
      CodePage := Word(CP_UTF8);
78
{$ELSE  NEXTGEN}
79
      CodePage := Word(DefaultSystemCodePage);
80
{$ENDIF NEXTGEN}
81
    P.codePage := CodePage;
82
    P.elemSize := 1;
83
    PWideChar(Result)[CharLength div 2] := #0;  // length guaranteed >= 2
84
  end;
85
end;
86
87
function _LStrClr(var S): Pointer;
88
var
89
  P: PStrRec;
90
begin
91
  if Pointer(S) <> nil then
92
  begin
93
    P := Pointer(PByte(S) - SizeOf(StrRec));
94
    Pointer(S) := nil;
95
    if P.refCnt > 0 then
96
    begin
97
      {$IFDEF FPC}
98
      if InterlockedDecrement(P.refCnt) = 0 then
99
      {$ELSE}
100
        {$IF CompilerVersion >= 24.0}
101
        if AtomicDecrement(P.refCnt) = 0 then
102
        {$ELSE}
103
        Dec(P.refCnt);
104
        if (P.refCnt = 0) then
105
        {$IFEND}
106
      {$ENDIF}
107
        FreeMem(P);
108
    end;
109
  end;
110
  Result := @S;
111
end;
112
113
function InternalUniqueStringA(var Str: RawByteString): Pointer;
114
var
115
  P: PStrRec;
116
begin
117
  Result := Pointer(Str);
118
  if Result <> nil then
119
  begin
120
    Result := Pointer(Str);
121
    P := Pointer(PByte(Str) - sizeof(StrRec));
122
    if P.refCnt <> 1 then
123
    begin
124
      Result := _NewAnsiString(P.length, P.codePage);
125
      Move(Pointer(Str)^, Pointer(Result)^, P.length);
126
      _LStrClr(Str);
127
      Pointer(Str) := Result;
128
    end;
129
  end;
130
end;
131
132
procedure UniqueString(var Str: RawByteString);
133
begin
134
  InternalUniqueStringA(Str);
135
end;
136
137
end.
- - + + + + + Delphi CodeCoverage Coverage Report + + + +

Coverage report for DECUtilRawByteStringHelper (D:\Projekte\DECGitMaster\Source\DECUtilRawByteStringHelper.pas).

+

Generated at 29.10.2021 18:49:30 by DelphiCodeCoverage - an open source tool for Delphi Code Coverage.

+

Statistics for D:\Projekte\DECGitMaster\Source\DECUtilRawByteStringHelper.pas

+
Number of lines covered34
Number of lines with code gen38
Line coverage89%
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1
{*****************************************************************************
2
  The DEC team (see file NOTICE.txt) licenses this file
3
  to you under the Apache License, Version 2.0 (the
4
  "License"); you may not use this file except in compliance
5
  with the License. A copy of this licence is found in the root directory of
6
  this project in the file LICENCE.txt or alternatively at
7
8
    http://www.apache.org/licenses/LICENSE-2.0
9
10
  Unless required by applicable law or agreed to in writing,
11
  software distributed under the License is distributed on an
12
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
  KIND, either express or implied.  See the License for the
14
  specific language governing permissions and limitations
15
  under the License.
16
*****************************************************************************}
17
unit DECUtilRawByteStringHelper;
18
19
interface
20
21
{$INCLUDE DECOptions.inc}
22
23
/// <summary>
24
///   System.pas does not contain a RawByteString compatible version of this
25
///   routine so we created our own, copying and adapting code from system.pas
26
///   for the NextGen compiler and using a solution from Remy Lebeau for the
27
///   Win32/Win64 compiler.
28
/// </summary>
29
/// <param name="str">
30
///   String to be processed
31
/// </param>
32
procedure UniqueString(var Str: RawByteString);
33
34
implementation
35
36
uses
37
  {$IFDEF FPC}
38
  SysUtils;
39
  {$ELSE}
40
  System.SysUtils;
41
  {$ENDIF}
42
43
type
44
  // Duplicate of the System.pas internal declaration. Needs to be kept in sync.
45
  PStrRec = ^StrRec;
46
  StrRec = packed record
47
  {$IFDEF CPU64BITS}
48
    _Padding: Integer; // Make 16 byte align for payload..
49
  {$ENDIF}
50
    codePage: Word;
51
    elemSize: Word;
52
    refCnt: Integer;
53
    length: Integer;
54
  end;
55
56
function _NewAnsiString(CharLength: Integer; CodePage: Word): Pointer;
57
var
58
  P: PStrRec;
59
begin
60
  Result := nil;
61
  if CharLength > 0 then
62
  begin
63
    // Alloc an extra null for strings with even length.  This has no actual
64
    // cost since the allocator will round up the request to an even size
65
    // anyway. All _WideStr allocations have even length, and need a double
66
    // null terminator.
67
    if CharLength >= MaxInt - SizeOf(StrRec) then
68
      raise EIntOverflow.Create(
69
        'IntOverflow in _NewAnsiString. CharLength: ' + IntToStr(CharLength));
70
71
    GetMem(P, CharLength + SizeOf(StrRec) + 1 + ((CharLength + 1) and 1));
72
    Result := Pointer(PByte(P) + SizeOf(StrRec));
73
    P.length := CharLength;
74
    P.refcnt := 1;
75
    if CodePage = 0 then
76
{$IFDEF NEXTGEN}
77
      CodePage := Word(CP_UTF8);
78
{$ELSE  NEXTGEN}
79
      CodePage := Word(DefaultSystemCodePage);
80
{$ENDIF NEXTGEN}
81
    P.codePage := CodePage;
82
    P.elemSize := 1;
83
    PWideChar(Result)[CharLength div 2] := #0;  // length guaranteed >= 2
84
  end;
85
end;
86
87
function _LStrClr(var S): Pointer;
88
var
89
  P: PStrRec;
90
begin
91
  if Pointer(S) <> nil then
92
  begin
93
    P := Pointer(PByte(S) - SizeOf(StrRec));
94
    Pointer(S) := nil;
95
    if P.refCnt > 0 then
96
    begin
97
      {$IFDEF FPC}
98
      if InterlockedDecrement(P.refCnt) = 0 then
99
      {$ELSE}
100
        {$IF CompilerVersion >= 24.0}
101
        if AtomicDecrement(P.refCnt) = 0 then
102
        {$ELSE}
103
        Dec(P.refCnt);
104
        if (P.refCnt = 0) then
105
        {$IFEND}
106
      {$ENDIF}
107
        FreeMem(P);
108
    end;
109
  end;
110
  Result := @S;
111
end;
112
113
function InternalUniqueStringA(var Str: RawByteString): Pointer;
114
var
115
  P: PStrRec;
116
begin
117
  Result := Pointer(Str);
118
  if Result <> nil then
119
  begin
120
    Result := Pointer(Str);
121
    P := Pointer(PByte(Str) - sizeof(StrRec));
122
    if P.refCnt <> 1 then
123
    begin
124
      Result := _NewAnsiString(P.length, P.codePage);
125
      Move(Pointer(Str)^, Pointer(Result)^, P.length);
126
      _LStrClr(Str);
127
      Pointer(Str) := Result;
128
    end;
129
  end;
130
end;
131
132
procedure UniqueString(var Str: RawByteString);
133
begin
134
  InternalUniqueStringA(Str);
135
end;
136
137
end.
+ + diff --git a/Unit Tests/DECDUnitTestSuite.dproj b/Unit Tests/DECDUnitTestSuite.dproj index 1e9c5ff6..a8962ac1 100644 --- a/Unit Tests/DECDUnitTestSuite.dproj +++ b/Unit Tests/DECDUnitTestSuite.dproj @@ -1,7 +1,7 @@  {4117BDAD-9849-4F6E-8968-BB6B92C8AE7B} - 19.4 + 19.5 DECDUnitTestSuite.dpr True Debug @@ -219,19 +219,9 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - DECDUnitTestSuite.exe - true - - - - - .\ - true - - + + + 1 @@ -254,16 +244,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -573,7 +553,7 @@ 1 .dylib - + 1 .dylib @@ -606,7 +586,7 @@ 1 .dylib - + 1 .dylib @@ -643,7 +623,7 @@ 0 - + 0 @@ -662,193 +642,234 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - + + + ..\ 1 - + + ..\ 1 - + + ..\ 1 - - + + + Contents 1 - + + Contents 1 - + + Contents 1 - - + + + Contents\Resources 1 - + + Contents\Resources 1 - + + Contents\Resources 1 - + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + 1 1 - + 1 - - - + 1 - + + Contents\MacOS 1 - + + Contents\MacOS + 1 + + + Contents\MacOS 1 + + 0 + - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\ 1 + ..\ 1 - + + ..\ 1 - + 1 1 - + 1 - + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + 1 1 - + 1 - - + + + Assets 1 - + + Assets 1 - + + + + Assets 1 - - - + + Assets 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -857,7 +878,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -867,7 +888,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -877,7 +898,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -887,7 +908,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -897,7 +918,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -907,460 +928,116 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 - - - - - 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - ..\ - 1 - - - - - Contents - 1 - - - Contents - 1 - - - Contents - 1 - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - Contents\MacOS - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - + diff --git a/Unit Tests/DECDUnitXTestSuite.dproj b/Unit Tests/DECDUnitXTestSuite.dproj index 66f5c043..df707a39 100644 --- a/Unit Tests/DECDUnitXTestSuite.dproj +++ b/Unit Tests/DECDUnitXTestSuite.dproj @@ -1,10 +1,10 @@  {FEE36113-01B3-4DE2-B2BC-B4858EAD04A3} - 19.4 + 19.5 DECDUnitXTestSuite.dpr True - GUI + Debug Win32 32787 Console @@ -227,61 +227,29 @@ DECDUnitXTestSuite.dpr - + + true - - - true - - true - - - true - - + true - - - true - - - - - DECDUnitXTestSuite.exe - true - - - - - DECDUnitXTestSuite.exe - true - - - - - .\ - true - - - - - .\ - true - - + + + + + 1 @@ -300,16 +268,6 @@ 64 - - - classes - 1 - - - classes - 1 - - res\xml @@ -633,7 +591,7 @@ 1 .dylib - + 1 .dylib @@ -667,7 +625,7 @@ 0 - + 0 @@ -683,161 +641,154 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset - 1 - - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\Resources 1 - - - + + Contents\Resources 1 - + + + + library\lib\armeabi-v7a 1 - + + library\lib\arm64-v8a 1 - - 1 1 - + 1 - - - - 1 - - + 1 - + 1 - - - + 1 - + 1 - - 1 + + 0 - - + + + library\lib\armeabi-v7a 1 - + + + 1 - + 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + + 1 1 - + 1 - - - 1 - - + + + Assets 1 - + + Assets 1 - - - 1 - - + + + Assets 1 - + + Assets 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -846,39 +797,17 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -888,7 +817,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -898,7 +827,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -908,7 +837,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -918,7 +847,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -928,191 +857,37 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -1122,7 +897,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 @@ -1132,7 +907,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1142,7 +917,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1152,7 +927,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1162,7 +937,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1172,7 +947,7 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -1182,133 +957,16 @@ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - 1 - - - 1 - - - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - - - - - 1 - - - 1 - - - 1 - - - - - - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - Contents\Resources - 1 - - - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 0 - - - - - library\lib\armeabi-v7a - 1 - - - - - 1 - - - 1 - - - - - Assets - 1 - - - Assets - 1 - - - - - Assets - 1 - - - Assets - 1 - - + diff --git a/Unit Tests/DECDUnitXTestSuite.dproj.local b/Unit Tests/DECDUnitXTestSuite.dproj.local index 53169ecb..cd86ea92 100644 --- a/Unit Tests/DECDUnitXTestSuite.dproj.local +++ b/Unit Tests/DECDUnitXTestSuite.dproj.local @@ -3,4 +3,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Unit Tests/HashTestDataGenerator/GenerateData.dproj b/Unit Tests/HashTestDataGenerator/GenerateData.dproj index bdbb15b2..d8f352ec 100644 --- a/Unit Tests/HashTestDataGenerator/GenerateData.dproj +++ b/Unit Tests/HashTestDataGenerator/GenerateData.dproj @@ -1,7 +1,7 @@  {84E1D523-B4D7-4EC3-84D9-AD83F9C02E34} - 19.4 + 19.5 None True Debug @@ -158,7 +158,7 @@ GenerateData.dpr - + true @@ -174,12 +174,7 @@ true - - - GenerateData.exe - true - - + 1 @@ -511,7 +506,7 @@ 1 .dylib - + 1 .dylib @@ -544,7 +539,7 @@ 1 .dylib - + 1 .dylib @@ -581,7 +576,7 @@ 0 - + 0 @@ -600,382 +595,394 @@ 0 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + ..\ + 1 + + + ..\ 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents + 1 + + + Contents 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + + Contents\Resources 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + Contents\Resources + 1 + + + Contents\Resources 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + library\lib\arm64-v8a + 1 + + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Contents\MacOS 1 + + 0 + - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + library\lib\armeabi-v7a 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + + 1 + + 1 - + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 - + + + ..\ + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + ..\ 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + + ..\ 1 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 - + - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + ..\$(PROJECTNAME).launchscreen + 64 - - ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset - 1 + + ..\$(PROJECTNAME).launchscreen + 64 - + + + 1 + - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + + Assets 1 - - ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + + Assets 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - + - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + - ..\ + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + - ..\$(PROJECTNAME).launchscreen - 64 - - - ..\$(PROJECTNAME).launchscreen - 64 + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 - - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - ..\ - 1 - - - ..\ + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - ..\ + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents - 1 - - - Contents + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - Contents\Resources - 1 - - - Contents\Resources + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - Contents\Resources + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - - - library\lib\armeabi-v7a - 1 - - - library\lib\arm64-v8a + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 1 - - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Contents\MacOS + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - 0 - - - - - library\lib\armeabi-v7a + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - - Assets + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 - - Assets + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1 @@ -983,6 +990,7 @@ + diff --git a/Unit Tests/Tests/TestDECHashMAC.pas b/Unit Tests/Tests/TestDECHashMAC.pas index 889d2988..a4776d9a 100644 --- a/Unit Tests/Tests/TestDECHashMAC.pas +++ b/Unit Tests/Tests/TestDECHashMAC.pas @@ -54,6 +54,10 @@ TestTHash_PBKDF2 = class(TTestCase) published procedure TestBytes; procedure TestRawByteString; + /// + /// Regression test for: https://github.com/MHumm/DelphiEncryptionCompendium/issues/46 + /// + procedure TestBug46; end; implementation @@ -160,6 +164,23 @@ procedure TestTHash_HMAC.TestRawByteString; { TestTHash_PBKDF2 } +procedure TestTHash_PBKDF2.TestBug46; +var + Result : string; +begin + Result := StringOf(ValidFormat(TFormat_HEXL).Encode(THash_SHA1.PBKDF2(BytesOf('PassWord'), + BytesOf('Salt'), 1000, 16))); + CheckEquals('05e7b33f93ea1d35', result, 'SHA1 password salt 1000 16'); + +// Result := StringOf(ValidFormat(TFormat_HEXL).Encode(THash_SHA1.PBKDF2(BytesOf('PassWord'), +// BytesOf('Salt'), 1000, 32))); +// CheckEquals('05e7b33f93ea1d35939b32ad5994ef63', result, 'SHA1 password salt 1000 32'); +// +// Result := StringOf(ValidFormat(TFormat_HEXL).Encode(THash_SHA1.PBKDF2(BytesOf('PassWord'), +// BytesOf('Salt'), 1000, 48))); +// CheckEquals('05e7b33f93ea1d35939b32ad5994ef6314f6170b191368e9', result, 'SHA1 password salt 1000 48'); +end; + procedure TestTHash_PBKDF2.TestBytes; var Result : string;